Inspiration

Small streams have a quiet problem. Three people in chat, and nobody wants to talk first. We wanted a game where talking is the game: every message might be evidence, so lurkers start typing just to look innocent.

What it does

  • Viewers type !join and link a private card on their phone. No Twitch login needed: they get a four-letter code and type !claim CODE in chat.
  • One player becomes the Imposter and gets a secret word on their card. They have three minutes to slip it into chat in a real sentence. Hints (category, then first letter) arrive as time runs out.
  • Detectives can make one live accusation, !accuse name word. If they're right, the Imposter is busted on the spot.
  • At the end chat votes, and the reveal rewinds the chat on stream and stops on the one message that carried the word. Usually everyone read it, and nobody noticed.
  • The streamer plays too. With the mic on, their speech counts as messages, so the host can be the Imposter, hiding the word in what they say out loud.

Built for big chats too

A 4-person stream plays one table. When 30 or 200 people want in, Sus Word deals them into tables of up to 12 that play at the same time. The table on stream plays in Twitch chat; the rest talk in their own table chat inside the phone card, so the main chat stays readable. Viewers without a card become the crowd and can accuse and vote on the featured table. A FINAL button seats the best player from each table for one last round on stream.

How we built it (and how we used Codex)

  • One Codex thread from the first line to the last, in ten steps: game logic and tests, Twitch EventSub chat and OAuth, the overlay, the phone card and host page, streamer voice, the photo-real redesign, scaling, and tables.
  • We wrote a short spec before every step and handed Codex the approved design frames as images. Codex wrote the code and the tests; we reviewed every step on a live overlay, fixed what we found, and fed the next step back into the same thread.
  • Stack: Node 24, Express, ws, Twitch EventSub over WebSocket, Helix Send Chat Message, the Web Speech API, and plain HTML/CSS for an OBS browser source. Fonts and images are self-hosted, so nothing loads from a third party during a stream.
  • 61 tests cover word detection (plurals, possessives, "a word alone doesn't count"), the round state machine, ties, scoring, seating at 3, 12, 13, 30 and 200 players, accusations, and the claim flow.

Testing alone: mixed rehearsal

A brand-new channel has no regulars to test with, so we added npm run sim. It connects to the real channel and bot like a normal stream and seats a few simulated players inside the game. Their names start with "Sim", their lines show on the overlay and in the reveal, and they never post in Twitch chat. The rounds in our video were played this way: the chat, the bot and the romabuilds account are real, and the three other seats are simulated. The video labels them on screen.

Challenges

  • Keeping roles private without making viewers log in. The claim code is bound to one browser session and only works when the chat name matches the name typed on the card.
  • Fair word detection. The word has to sit inside a real sentence of three or more words; plurals and possessives count; commands don't.
  • The first live test on our channel caught a real bug: a three-way tie counted as a catch. Now the Imposter is caught only with the single highest vote, and a test pins it.
  • Ten tables in one chat would be unreadable, which is why side tables moved into the phone.

What's next

  • Tournament nights with brackets across several streams.
  • A "word pack" editor so streamers can theme a night around their game or community.
  • Optional AI word picks that fit the stream's category.

Judging criteria, plainly

  • Idea: a deduction game where chat itself is the board. It isn't a poll, a Twitch Plays, or a distraction tool.
  • Impact: it gives quiet viewers a reason to talk, works for 3 people or 200, and needs no game or extension.
  • Tech and Codex: EventSub chat, a claim-code identity trick, voice as game input, tables, and 61 tests, built in one Codex thread.
  • Fun to watch: a timer, hints, BUSTED stamps live, and a rewind reveal designed for the stream.

Built With

Share this project:

Updates

Submission history