aeedf0abb51f269a96b3cc403d499c66936b4f64
Real depth additions, not a reskin of another idle game:
- applyOfflineProgress: the cult continues while the tab is closed or
backgrounded (rAF throttles hard when hidden, so real time drifts
well past simulated time). Approximates tick()'s per-second rates
over the elapsed window, capped at 24h, with a narrative "while you
were away" log line scaled to how long that was. Can end the game
in a win or loss if the numbers would have gotten there. Re-checked
on every tab-visibility return too, not just page load.
- Tab-title haunting: document.title cycles short eerie lines
("Han väntar…", "Havet kallar…") while the tab is hidden, restores
on return.
- New late-game upgrade "Viskningen leder er" — once bought, the cult
visits map locations on its own occasionally without a click. A
small loss-of-agency horror beat, not just a QoL toggle.
- Log's newest line now types itself out, with characters
occasionally swapped for occult symbols (☿☠ψ) at a rate scaled to
current dread. Older lines stay static and legible — this never
applies retroactively.
- New "Sällskapet" character gallery: cards for every named recurring
character, locked to a silhouette + "???" until you've actually met
them (checked against usedEventIds). Portraits are optional — missing
art falls back to an initial-letter placeholder, so this works
incrementally as art gets added. First five real portraits included.
- Real bug fix: several Kaos events referenced characters (Göran,
Bengt-Åke, the Sydsvenskan journalist) as if already introduced,
but had no ordering dependency on the Standard event that actually
introduces them — so a fresh cultist could show up in the log
already "familiar" before you'd ever met them. Gated with
requires.completedEventId.
- More flavor text throughout: two new variants per location visit,
6 new Standard events, 4 new Kaos events.
Evaluated three other ideas from the same source and declined them:
a generic milestone-triggered log (Djupet's log already reacts to
real state, not arbitrary point totals), an investigator combat
minigame (hemlighet draining to zero already does this job, and
tower-defense clicking would fight the game's actual tone), and a
node-sequencing ritual minigame (real scope for a twitch mechanic
that doesn't match the rest of the game's pacing).
Verified: 15/15 tests passing, clean typecheck and production build,
and a real headless-browser pass — offline catch-up after a
simulated 5-hour gap, tab-title cycling and restore, and the
character gallery rendering real portraits alongside locked cards.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Djupet
Lovecraftian idle cult management game set in Malmö, Sweden.
You run a small cult in a basement in Rosengård. The goal is to complete the ritual before the investigators close in. The Turning Torso is involved. The ducks at Ribersborg know more than they let on.
Inspired by Anders Fager, Kult, and Call of Cthulhu.
Play: djupet.games.goonk.se
Stack
Vanilla TypeScript + Vite. No framework. Leaflet for the map.
Dev
npm install
npm run dev # localhost:5681
npm run typecheck
npm run build
Mechanics
- Andakt — passive income, spend on upgrades
- Dread — builds as the ritual deepens, unlocks areas and events
- Hemlighet — your exposure level; reaches zero and you lose
- Kaos — triggers chaotic events at 100, resets, repeat
- Ritual — reach 100 to win; unlocked via the Manuscript
Click locations on the Malmö map to visit them. There is a cooldown.
Docker
docker compose up -d
Serves on port 5684 by default. Override via HOST_PORT in .env.
Description
En kult-simulator i Malmö. Because varför inte. Änderna vid Ribban stirrar mot Turning Torso av en anledning.
Languages
TypeScript
89.7%
CSS
9.8%
HTML
0.3%
Dockerfile
0.2%