Inspiration

We both watch a lot of story game streams, and it's the same thing every time. The streamer asks chat for no spoilers, and someone drops the twist anyway. Twitch still doesn't have spoiler tags, and the AI chat filters we found only know what game you're playing, not how far into it you are. So they either block normal talk or miss the real spoiler.

We wanted something that knows where the streamer actually is in the story, and that turns spoilers into something fun instead of just deleting them.

What it does

Spoiler Vault is a chat guard for Twitch streamers playing story games.

  • It knows your progress. Every chat message is checked against the story beats you've already reached and the ones still ahead. Talking about stuff you've seen goes through. Talking about stuff you haven't reached gets caught.
  • It seals spoilers instead of just deleting them. The spoiler is removed before chat sees it, and saved with the viewer's name. The bot replies "sealed until the reveal".
  • It opens the vault on stream. When the streamer reaches that part, the overlay plays the sealed message back with who called it and how long ago. Viewers earn Prophet points, and the first person to call it gets a bonus.
  • It has a hint jar. Backseat tips get held instead of shown. The streamer types !hint and gets the vaguest one first.
  • It works with any game. Type the game name and how far you are, and it builds a story map in the background. You only ever see "Beat 1, Beat 2...", so setup can't spoil you.
  • Every reveal becomes a clip. When the vault opens on a live stream, it creates a Twitch clip automatically.

How we built it

The trick is Twitch's own non-mod chat delay. Viewer messages wait six seconds before anyone sees them, but our bot sees them right away through EventSub. So we classify each message and delete spoilers inside that window. In our live test, a real spoiler got caught and deleted in about 1.3 seconds.

  • Twitch: OAuth, EventSub over WebSocket for chat, and Helix for deleting messages, sending bot replies, setting the chat delay and creating clips. It works on a regular, non-Affiliate channel.
  • Classifier: OpenAI with structured outputs. It gets the message, the beats already reached, and the secrets still ahead. If it's slow or fails, the message is held, never leaked.
  • App: Node 20 and TypeScript, SQLite for the vault, a streamer dashboard, and an OBS browser source overlay, all updating over a local WebSocket.
  • Demo game: we made our own short mystery, The Orison File, so our video has no copyrighted game footage.

We built almost all of it with OpenAI Codex in one main thread. We wrote a short brief and a contract first, so every piece agreed on the same data shapes. Then Codex built it step by step, wrote tests, and took Playwright screenshots that it checked against our design rules. Our job was the idea, the spec, and pushing back whenever the UI started looking generic.

Challenges we ran into

  • Timing. Everything has to happen inside six seconds, so the classifier has a hard timeout, and anything uncertain gets held instead of let through.
  • Not spoiling the streamer. Building a story map for a real game means the server knows the twists, so summaries and secrets never leave the server. We added a test to make sure of that.
  • Testing live. Twitch treats broadcaster and mod messages differently, so we had to test with a separate viewer account that isn't a mod.
  • Design. The first versions looked like every AI dashboard. We ended up writing exact colors, fonts and motion rules and making Codex check its own screenshots against them.

Accomplishments that we're proud of

  • A real spoiler got deleted from real Twitch chat before anyone saw it, and the bot replied on stream.
  • Spoilers turn into a game for chat instead of just getting deleted.
  • It works on a normal channel with no Affiliate features needed.
  • Judges can try it in about a minute with an offline replay that needs no keys.

What we learned

  • Moderation works better when it gives chat something back, not just a timeout.
  • Codex works best with a clear spec and real review. When we were vague, the output was generic.
  • Failing safe matters more than being fast.

What's next for Spoiler Vault

  • A review screen for held messages, so mods can release false positives.
  • Better story maps for real games, checked against known plots.
  • A Twitch Extension so viewers can see their own sealed predictions.

Built With

Share this project:

Updates

Submission history