This is an old revision of the document!
Table of Contents
Quests and Rumors
Builder reference for the guild board. Two coin-fed systems share one board prop: rumors (cheap, unreliable gossip) and quests (real, tracked commissions).
The board
A board is any item flagged data.questboard standing in a room (e.g. the Adventurer's Guild). Players feed it coins:
insert copper– prints a random rumor (true or false; buyer beware).insert silver– takes on a quest posted at this board.insert 3 silvertakes up to three at once.
Either way you're only charged for what's actually delivered – an empty rumor pool or a board with nothing new for you costs nothing.
To make a board: create a fixture item in the room and set item <ref> data questboard true.
Rumors (the copper pool)
Rumors are one-line strings, each tagged true or false – a pool tag the player never sees (insert copper returns a random one, true or false). The pool is global. Admin-only:
addrumor true|false <text>– post a rumor (stand at a board).remrumor <id>– remove one by id.rumors– list every rumor with its id and T/F tag (works anywhere).
Quests
A quest is authored as an ordinary item, then posted to a board. Everything the quest does lives in that item's data.
Authoring a quest
item create Rats!– the item name is the quest name.item Rats! desc <the overall goal>– shown at the top ofquest <name>.item Rats! data quest kill– mark it a quest (any non-empty type works as the marker).- set the step fields below with
item Rats! data <field> <value>. quest add Rats!– file it onto the board you're standing at (this consumes the staging item;quest removegets it back).
The step machine
A quest is a sequence of steps numbered from 0. Each player's ticket remembers their current step. Step N is described by these data fields (N is the step number):
| Field | What it does |
|---|---|
info_N | the “what to do now” line, shown in the quest list and in quest <name> while at step N |
cond_N | how to clear step N: find <item>, kill <mob>, or done |
pass_N | flavour line printed the instant cond_N is met |
reward_N | reward granted on clearing step N (first run) |
repeat_reward_N | replaces reward_N on a REPEAT run (see Repeatable) |
The quest completes the moment it reaches a step whose cond is done.
Conditions
find <item>– met while the player is holding a matching item. It fires on pickup, on loot, or immediately if they already carry it when they accept the quest. The item is not consumed – they keep it.kill <mob>– met when the player slays a matching mob (credited to the killer).
Matching is case-insensitive and by substring, so kill rat would trigger on any mob whose name contains “rat”. Name the target specifically – kill Lord of the Rats.
Rewards
A reward spec (used for reward_N / repeat_reward_N) is one of:
<n> xp– experience, e.g.1000 xp.<n> gold|silver|copper– coins, e.g.5 gold.[<n>] <item name>– item(s) copied from the item factory, e.g.gem of garaldoror3 healing potion. The factory is the canonical source, so the reward item is identical to the real thing (a Gem of Garaldor carries itsskillgemflag and turns in at Wizzy's exactly like a dropped one). If no factory template matches, the reward is silently skipped – soitemf addthe item first.
Repeatable quests
Set item <quest> data repeatable true. After a completion the player may take the quest again; it restarts at step 0. On every run after the first, each step pays repeat_reward_N if present, otherwise reward_N. Use this to give a one-time prize the first time and a lesser, farmable reward after – e.g. reward_1 a Gem of Garaldor, repeat_reward_1 1000 xp.
Lifecycle
- Abandon (
quest drop): the quest is hidden from the player's list, but its step is kept. Re-taking resumes exactly where they left off – so nobody can drop-and-retake to farm an early step's reward. - Repeat: re-taking a completed repeatable quest restarts it at step 0, and every step now uses its repeat reward.
- A non-repeatable quest, once complete, cannot be taken again.
Player commands
insert silver– take on an available quest at the board.quest– list your active quests, each with its current objective.quest <#|name>– the overall goal plus what to do now.quest drop <#|name>(orquest d) – set a quest aside.
Builder board commands
quest add <item>– post a held quest item onto the board here.quest remove <#|name>(orquest rem) – pull a posted quest back into your inventory as an editable item (revise, thenquest addagain).quest copy <#|name>– take a playable ticket of a posted quest, to test it end to end.examine <board>– lists the quests posted at that board with their numbers.
Worked example: Rats!
name: Rats!
desc: Kill the Lord of the Rats in the Mosgaard Sewers.
data:
quest kill
info_0 To find the Lord of the Rats, you may need a magic key.
They say there is one hidden in the gray wizard's tower.
cond_0 find magic key
pass_0 You found the magic key!
reward_0 1000 xp
info_1 Seek out the lair of the Lord of the Rats, deep beneath the sewers.
cond_1 kill Lord of the Rats
pass_1 You have slain the Lord of the Rats and received your reward!
reward_1 gem of garaldor
repeat_reward_1 1000 xp
cond_2 done
repeatable true
Play-through: accept the quest → holding a magic key clears step 0 for 1000 xp → slaying the Lord of the Rats clears step 1 for a Gem of Garaldor (or 1000 xp on repeats) → done.
Notes and limits
killcredit currently goes to the killer only – no party-wide credit yet.- Reward items must already exist in the item factory (
itemf add) or the reward is skipped. - Quest tickets are pure data (their own table), never real items – they can't be dropped, sold, or stored, and only show under
quest.
