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. Once posted you can also tune it in place – see Builder board commands below.
Authoring a quest
item create Cellar Pests– the item name is the quest name.item Cellar desc <the overall goal>– shown at the top ofquest <name>.item Cellar data quest kill– mark it a quest (any non-empty type works as the marker).- set the step fields below with
item Cellar data <field> <value>. quest add Cellar– 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>, kill <n> <mob>, kill all <a>|<b>, give <item> to <npc>, or done |
tally_N | (optional) the plural noun shown in a counted-kill's progress, e.g. “bats” |
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).kill <n> <mob>– a counted kill: slay n of the mob. Progress is tracked per player and printed on each kill ([Quest] 3/10 bats.); the step clears on the nth. Settally_Nto the noun (“bats”) for a tidy message.give <item> to <npc>– met when the player hands the named item to the named NPC (see Item turn-ins). The item is consumed. Both the item and the NPC match by substring.collect <n> <item>– met when the player is carrying at least n total of an item (stacks are summed), re-checked whenever they pick some up or are handed some. On clearing, n of the item are consumed. A bulk material turn-in / commodity sink – pair it with a coin reward to set a standing price for a material (e.g.collect 1000 woolrewarding1 goldpegs wool at 10 copper a unit, a de-facto auction-house floor).
Matching is case-insensitive and by substring, so kill rat would trigger on any mob whose name contains “rat”. Name the target specifically – kill goblin chief, not just kill goblin.
A counted kill can also accept several targets separated by | – any of them counts toward the tally. For example kill 10 lion|tiger|bear clears when the player has slain ten in any mix of lions, tigers and bears.
Where several targets must all be dealt with – a “clear both” objective – use kill all <a>|<b>[|<c>…] instead. This tracks each distinct target and clears only once every one has fallen, in any order, announcing progress as each goes down ([Quest] Fence down – 1/2.). So kill all fence|pickpocket needs both the fence and a pickpocket dead – where kill 2 fence|pickpocket would settle for any two kills between them.
Item turn-ins (give to an NPC)
An NPC will not take an item unless an active quest wants it – otherwise give <item> <npc> just gets “<NPC> doesn't want that item.” So a give <item> to <npc> step is only reachable while its quest is active: the player carries the item to that NPC and either gives it or sells it to them (both hand it in). On the turn-in the item is consumed, the step's pass_N prints (use it for the NPC's dialogue), and reward_N is granted.
To keep the quest item from being sold for coins at some other shop – and lost – mark it unsellable in its data (item <ref> data unsellable true, or on a spawn's data). No shopkeeper will buy an unsellable item; only the turn-in at the right NPC accepts it. (This is a dedicated no-shop flag – unlike junk, it has no recycle or auction side effects.)
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.healing potionor3 healing potion. The factory is the canonical source, so the reward item is identical to the real thing – any special data it carries (skill hooks, flags) comes along. If no factory template matches, the reward is silently skipped, soitemf addthe item first.
Bundle several rewards on one step by joining them with +: reward_0 = 250 xp + 5 silver grants both, each announced on its own line. Any mix works, e.g. 1000 xp + 10 silver + healing potion.
The level gate
Every quest has a minimum character level, data.level (default 1). A board never offers a player a quest above their level, and insert silver hands out a random eligible quest from the pool – so a single board can post a whole spread of levels and give each adventurer only what suits them. Unfinished quests come first: a repeatable you've already cleared is only handed back once there's nothing new or resumable left on the board, so you're never sent to re-grind a repeat while fresh content is waiting. If the only quests left are above the player's level, the board tells them to come back stronger (and charges nothing).
Set it while authoring (item <quest> data level 7) or on a posted quest (quest level <#|name> 7).
Repeats age out. The level gate has a ceiling on the repeat side: once a player is 5 levels past a quest's minimum, a repeatable quest stops being handed back for re-runs – a level-10 repeatable can be re-farmed at levels 10 through 14, but not from 15 on (you've outgrown the grind). This caps repeats only; the first run of a quest you've never finished is never aged out – it stays available until you actually complete it, however high you climb, so no story is lost by outleveling it. (An aged-out repeat is simply not offered; the board doesn't send you to “come back stronger” for it.)
Repeatable and unique quests
By default a quest can be taken once: after completion it can never be taken again.
- Repeatable (
data.repeatable true): after a completion the player may take it again; it restarts at step 0. On every run after the first, each step paysrepeat_reward_Nif present, otherwisereward_N. Use this to give a prized reward the first time and a lesser, farmable one after – a rare item on the first clear, say, and a handful of coins on every run after. (Re-runs are offered only while the player is within 5 levels of the quest's minimum – see The level gate above.) - Unique (
data.unique true): one-and-done forever – never handed out again once the player has completed it, even if it was also marked repeatable (unique wins). This is how one-per-character relic quests stay one-per-character.
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 counted kill's tally resets to zero for the new run.
- A once-only or unique quest, once complete, cannot be taken again.
Player commands
insert silver– take on a random eligible quest at the board.quest– list your active quests, each with its current objective.quest <#|name>– the overall goal plus what to do now (with counted-kill progress).quest drop <#|name>(orquest d) – set a quest aside.
Builder board commands
Stand at the board for all of these. Stock the board:
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.
Tune a posted quest in place – no remove / edit-item / re-add round-trip needed. Refer to the quest by its board number (from examine <board>) or by name:
quest raw <#|name>– dump the quest's description and every data field, so you can see what to change.quest level <#|name> <n>– set the minimum level.quest unique <#|name> [on|off]– flag it one-and-done (bare toggles).quest repeat <#|name> [on|off]– flag it repeatable (bare toggles).quest set <#|name> <field> <value>– set any data field (cond_0,reward_0,info_0,tally_0, …); the value may be several words.quest unset <#|name> <field>– remove a data field.
The tune commands read the first word as the quest reference, so a multi-word name like “Bat Cull” is matched by its first word (“bat”) or – more reliably – by its board number.
Worked example (a made-up quest)
A whole quest authored from scratch. Nothing here is a real Mossworld quest – it just shows the shape: a two-step find-then-kill, with per-step rewards and a repeat reward.
item create Cellar Pests item Cellar desc The innkeeper's cellar is overrun with rats. Clear it out. item Cellar data quest kill item Cellar data level 2 item Cellar data info_0 Ask the innkeeper for the key to the cellar. item Cellar data cond_0 find cellar key item Cellar data pass_0 The innkeeper hands you the cellar key. item Cellar data reward_0 25 copper item Cellar data info_1 Go down and clear ten rats out of the cellar. item Cellar data cond_1 kill 10 cellar rat item Cellar data tally_1 rats item Cellar data pass_1 The last of the rats is dealt with. item Cellar data reward_1 2 silver + 100 xp item Cellar data repeat_reward_1 50 copper item Cellar data cond_2 done item Cellar data repeatable true quest add Cellar
Play-through: the player insert silvers to take the quest (they must be level 2), gets the cellar key (step 0 clears – +25 copper), goes down and kills ten cellar rats (the board shows 3/10 rats as they go; step 1 clears – +2 silver and +100 xp, or +50 copper on repeats), and the quest completes.
To make it a one-and-done relic quest instead, drop the repeat line and mark it unique: quest unique Cellar.
Notes and limits
killcredit currently goes to the killer only – no party-wide credit yet, and one kill counts toward only one of your quests.- 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.
