I Reverse-Engineered a Horror Game's Logic to Build an Open Source Ending Calculator (Astro + Tailwind)

Published: (January 19, 2026 at 08:05 AM EST)
2 min read
Source: Dev.to

Source: Dev.to

The Problem: Hidden Game Mechanics šŸ•µļøā€ā™‚ļø

I recently got obsessed with the indie horror RPG Dead Plate (by RachelDrawsThis). It’s a fantastic game about a waiter working for a cannibalistic chef, but it has one major frustration: opaque RNG.
The game relies on hidden stats like Suspicion and Affinity. Make one wrong dialogue choice in the first 10 minutes, and you’re locked out of the True Ending an hour later.

I got tired of alt‑tabbing to read 50‑page text walkthroughs that spoiled the story. I wanted a tool that could track my stats in real‑time. So, I built one.

HorrorHub – Interactive Ending Calculator & Character Database

I reverse‑engineered the decision tree of the game and built HorrorHub, an interactive ending calculator and character database.

The UI is styled to match the game’s dark, gritty aesthetic and is optimized for mobile use while playing on PC.

Technical Stack

Framework – Astro

I chose Astro for its Island Architecture. The majority of the site (lore pages, character bios) is static HTML (zero JS), making it incredibly performant.

Styling – Tailwind CSS v4

Tailwind allowed rapid prototyping of the ā€œClassified Archivesā€ aesthetic with complex gradients and dark‑mode logic.

State Management

For the calculator part, I used simple vanilla JS logic injected only where needed.

Data Structure

Instead of hard‑coding every path, I mapped the game’s logic into a JSON structure. Below is a simplified snippet:

{
  "event_id": "day_3_fridge",
  "choices": [
    {
      "text": "Check the freezer",
      "effect": { "suspicion": +10, "item": "key_fragment" }
    },
    {
      "text": "Ignore it",
      "effect": { "suspicion": -5 }
    }
  ]
}

The calculator traverses this JSON tree, summing the suspicion score to predict which of the four endings the player will receive.

Open Source Data šŸ¤

I believe game data should be accessible. The entire JSON dataset for Dead Plate is open‑sourced on GitHub. Feel free to use it for wikis, AI agents, or other projects.

What’s Next?

I plan to expand this into a hub for other mechanics‑heavy horror games (e.g., The Freak Circus).

If you are an Astro developer or a fan of indie horror, I’d love to hear your feedback on the UI or code structure.

Thanks for reading! šŸ’€

If you find a bug in the ending calculations, please open an issue on GitHub.

Tags: #astro #javascript #opensource #gamedev

Back to Blog

Related posts

Read more Ā»