215
0

Script - Faerun Engine [Public Use]

Advanced Script

Quests, Weather, Locations, Reputation, Days.

About this script

Every coin counted. Every grudge remembered.

The World Engine plus a Party Ledger for fantasy RPG narrator cards: quest, threads, standing, health with real death saves, coin and inventory.

Made for Faerûn: narrator of the Sword Coast - D&D 5e prices and rules.

What It Does

Everything the World Engine does - story days, time skips, season-aware weather and the scene's location, carried in a footer - plus a Party Ledger the narrator writes just above the footer every reply. It's the player's character sheet and quest log in one, so a long adventure keeps track of who owes you, what you're carrying and how close you came to dying.

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.

✦ PARTY LEDGER ✦
Tamsin
Health: Hurt · Purse: 14 gp · 6 sp · Inventory: shortsword • rope • healing potion
✦ World Standing ✦
Sword Coast - Known
Harpers - Trusted | Zhentarim - Watched | Flaming Fist - Unknown ...
✦ Quests ✦
Main Quest: Reach Candlekeep · Next Step: find a ship · Threads: the halfling's debt (Day 3) · Completed: 1
~~~Day 4 (Autumn) | Weather: Rain | Location: Baldur's Gate Harbour~~~

The Pieces

Health: Unhurt, Bruised, Hurt, Wounded, Badly Wounded, Down, Dead. It drops by what actually lands, mends one step a reply on its own, faster with a potion, healing spell or rest - and Dead stays dead without revival magic.

Death saves: while you're Down the script rolls a real d20 each reply, D&D style - three passes and you're stable, three fails and you die, a 20 wakes you, a 1 counts twice. No roll while someone is healing or stabilising you.

Purse: platinum, gold, electrum, silver and copper, at D&D 5e prices. It can never go below zero - if you can't pay, you can't pay.

Inventory: only what you actually gained in the story, carried over even if the bot forgets it.

Standing: how the region and each faction see you, from Hunted to Renowned - one step per reply, every faction always listed, nothing ever reset.

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 (never in a chat's first few messages), the script offers the narrator an encounter that fits the place, the weather and your standing - hunters when you're hated, people asking for help when you're loved. It's an offer, never an order, and it never breaks a tender or tense moment.

Player Commands

[standing Flaming Fist: Hunted] - set any standing yourself (several at once, split by commas).

[health Wounded] - set your health.

[purse 15 gp] - set your coin.

[inventory rope • lantern • dagger] - set 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: Place~~~ - pick the season, weather and place your scene needs.

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. 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.

6. Encounters: the encounter table and the places it knows (sea, road, wild) are near the bottom of the script - replace them with your world's, or set ENC_RATE to 0 to switch them off.

Good To Know

Built and tested on JLLM. The ledger is long, so give the bot room: keep your card's Personality lean and let the lorebooks carry the world. Now and then the bot drops a line or the footer - the script restores what it can, and a swipe fixes the rest. Time skips are read from English phrasing. 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

Public codeContext depth 10

Please log in to see comments