Script - Heaven Engine [Public Use]
Advanced ScriptAbout this script
Heaven keeps its records. So does this.
The World Engine plus a Heaven Ledger for supernatural RPG narrator cards: goals, threads, standing, health, your kind and its power - divinity or hunger.
Made for Emptied Heaven: RPG Narrator, present day.
What It Does
Everything the World Engine does - story days, time skips, weather and place, carried in a footer - plus a Heaven Ledger the narrator writes above the footer every reply. On top of goals, standing, health and inventory, it tracks what kind of being the player is and the one thing that kind runs on: Divinity for angels and their kin, Hunger for blood-drinkers.
The script reads the ledger back every turn and holds the bot to the rules: standing moves one step at a time and is never dropped or reset, wounds mend slowly unless something heals them, the dead stay dead, and only a finished main goal counts as completed. If the bot forgets a line, the script puts it back. The narrator still writes the story - the script just keeps the books honest.
✦ HEAVEN LEDGER ✦
{{user}}
Kind: cambion · Health: Unhurt · Hunger: Restless (fed Day 1)
Inventory: long coat • purple glasses • blood flask
✦ World Standing ✦
Heaven and the fallen - Watched
Order of the Flaming Sword - Hunted | The Bloodless - Unknown ...
✦ Goals ✦
Main Goal: find the Marseille blade · Next Step: the blood bank · Threads: none · Completed: 0
~~~Day 7 (Autumn) | Weather: Overcast | Location: Marseille~~~
The Pieces
Kind: what the player is - in Emptied Heaven a Malak, Grigori, Daimon (and its line), Nephilim, cambion or human - read from the persona and never left off. Whole-animal traits the player claims for themselves (my hooves, I'm a kitsune) mark a Daimon of that line.
Divinity: Full, Steady, Low, Dim, Guttering - for celestial kinds. Real power spends it; rest and prayer bring it back a step at a time.
Hunger: Fed, Steady, Restless, Craving, Starving - for blood-drinkers. The script keeps the clock: it worsens a step every three story days without blood, and only blood drunk in the story resets it. As it worsens, the narrator shows it in the body and the world.
One kind, one meter: the script drops a Hunger line from an angel and Divinity from a blood-drinker, and adds the right one if it's missing.
Health: Unhurt down to Dead, with real d20 death saves while Down. Nothing brings the dead back.
Standing: how the celestial world and each faction see you, from Hunted to Sanctified - one step per reply, every faction always listed. A blood-drinker's first ledger starts no better than Watched with the hunters.
Threads: up to three side threads - help someone asked for, an enemy who got away, a lead, a debt or promise. Each carries the story day you last touched it; one left alone for five story days goes cold, and the world settles it off-screen so you hear how it turned out.
Random encounters: about one reply in seven, an encounter that fits the place and your standing is offered to the narrator - never forced, never breaking a tense or tender moment.
Player Commands
[kind Daimon (fox line)] - fix a wrong guess about what you are.
[divinity Low] or [hunger Fed] - set your meter.
[standing Halo: Trusted] - set any standing yourself.
[health Wounded] and [inventory phone • knife] - set health or what you carry.
[encounter] - call up a random encounter now.
Using It On Your Character
1. Attach: add the script to your narrator card and set Message Depth to 10, the maximum.
2. Footer: end every opening message with ~~~Day 1 (Autumn) | Weather: Fair | Location: City~~~.
3. Starting ledger: end every opening message with a ledger above the footer, with (from your persona) in the lines only the player knows - Inventory, and Purse or Kind where the engine has them - and every standing at Unknown. The script treats that as a template, so the bot's first real ledger fills it in from the player's persona.
4. Factions: at the top of the script, set WORLD (the region or world everyone's opinion is measured against), FACTIONS (up to six or so groups, always all listed) and LADDER (seven words, worst to best - keep Unknown in the middle as the starting rung, and Watched below it).
5. Kinds and meters: DLADDER, HUNLADDER and HUNGER_DAYS at the top set the two meters; the kind names, the traits that mark each line and what counts as rest or blood sit in the script's sentences and patterns - swap them for your world's vampires, angels or witches. Set POWER to 0 to drop both meters.
6. Wording: the setting's own words (place names, what hurts, what heals, what counts as an item) sit in plain-English sentences further down the script - search for this engine's place names and swap in yours. Settings like MAX_THREADS, THREAD_DAYS, HEALTH and WEATHER switch pieces on or off.
7. Encounters: the encounter table near the bottom is Emptied Heaven's - replace it, or set ENC_RATE to 0.
Good To Know
Built and tested on JLLM. Scripts can't see the player's persona, so the bot guesses the Kind from it - the player commands are there to fix a wrong guess or set what the bot can't know. Keep your card's Personality lean so the ledger has room. A swipe fixes a dropped line the script couldn't restore. Use one engine per card.
Free to clone and use on your own narrator cards. Weather builds on the idea behind @Eveline__'s Weather Engine; the ledger was inspired by the Constellation Court RPG. Built from the World Engine by @MirageAnne - a credit back to this page is always appreciated.
Script source
Please log in to see comments