I Reverse-Engineered a Horror Game's Logic to Build an Open Source Ending Calculator (Astro + Tailwind)
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.
- Live Demo: https://deadplate.net
- Source Code: https://github.com/Causalzap/dead-plate-interactive-matrix
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