Inspiration

We wanted to build something that tapped into the creeping dread of psychological thrillers—think the tension of Hereditary or Incantation—but wrapped it in a highly stylized Dark Vintage, Gothic Regency aesthetic. Standard social deduction games often rely on worn-out sci-fi or spy tropes. By leaning heavily into the "hidden heiress" narrative, we created a high-stakes, secret-identity drama that feels like an interactive period piece. We designed this to weaponize human paranoia and turn the Reddit comment section itself into a spectator sport.

What it does

The Manor is a multiplayer social deduction game built entirely within a Reddit post. Players join a flickering, rain-soaked 4-room manor as members of a household, with two hidden roles: the Heiress and the Saboteur.

  • Night Phase: Players secretly spend Action Points (AP) to move between rooms. The Saboteur gets exactly one chance in the entire game to blindly "STRIKE" a room in the dark.
  • Day Phase: Players are forced to testify in the Reddit comments about where they were hiding, forge alibis, and vote to banish suspects.
  • The Hook: When the game ends, the server drops the Ledger of Lies into the Reddit thread—a permanent Markdown table exposing exactly who claimed what, stamped violently with TRUTH or LIE, generating massive recurring debate in the comments.

How we built it

This was built with a deeply defensive, production-grade architecture to ensure cheating is structurally impossible:

  • Zero-Trust Backend (Devvit): We used a pure function (redact.ts) to ensure the client never receives role or room data for other players. Tampering with the client only breaks your own view; the true state lives exclusively in Redis.
  • Bulletproof Concurrency: Instead of relying on static crons, our scheduler.ts uses one-shot runAt jobs for per-subreddit cycle lengths. Double-fires are neutralized by hSetNX locks per cycle, ensuring race conditions never corrupt the board.
  • Zero-Asset Frontend (Phaser): To bypass loading screens and mobile connection drops, the entire UI is procedural. Stained glass rain particles and sine-wave candle flickers are generated entirely via code, ensuring instant interactivity.
  • Anti-Empty Lobbies: The server automatically pads any empty slots with functional AI NPCs (like the Cook or Mrs. Ashgrove) who play by the same engine rules and even lie in their testimony 20% of the time.

Challenges we ran into

Handling Devvit's API rate limits and execution quotas while maintaining a 3-second polling rate for a 13-player Phaser client required strict payload optimization. Additionally, rendering a responsive Phaser canvas inside the Reddit mobile webview was tricky. We solved this by forcing the Manor's 2x2 room grid to dynamically shift into a 1x4 vertical stack anytime the viewport drops under 520px, ensuring the "Vote" and "Testimony" panels never fall behind the native mobile keyboard.

What's next for The Manor

We plan to expand the Ledger of Lies to include specific spectator-betting mechanics, allowing users who arrive late to the thread to wager Reddit points on who they think the Saboteur is before the final cycle ticks over.

Share this project:

Updates