Queste regole sono attualmente disponibili solo in inglese.

Adventure Game Type

Reference for the adventure game type — designer configuration and player rules.

For platform-level configuration shared across all game types, see Shared Game Configuration.


Game Parameter

ParameterDefaultDescription
Character lives3Number of lives a character has before being permanently removed from the run

Designer Configuration

How the World Fits Together

Game
  ├── Locations (the places characters can be)
  │     ├── Item placements (items initially found here)
  │     ├── Creature placements (creatures initially here)
  │     ├── Wandering monster spawn point (periodic random spawning)
  │     └── Location objects (interactive scenery)
  │             ├── Object states (e.g. locked, open, broken)
  │             └── Object effects (what happens when players act on the object)
  ├── Location links (paths between locations)
  │     └── Link requirements (conditions to see or use a path)
  ├── Items (things characters can carry)
  │     └── Item effects (what happens when players act on an item)
  ├── Creatures (monsters and NPCs)
  └── Wandering monster tables (reusable weighted creature lists)
        └── Entries (creature + weight)

Location

Named places in the adventure world. The world is built by connecting locations with links.

FieldDescription
NameDisplay name shown on turn sheets
DescriptionNarrative description shown to players when they are at this location
Starting locationIf enabled, new characters spawn here and dead characters respawn here

Requirement: at least one location must exist and at least one must be marked as the starting location before a run can be created.

A unique background image can be uploaded for each location to display on that location's turn sheets.


Location Link

Directed connections between locations (exits / paths). A link from A to B does not automatically create a link from B to A — both directions must be added separately for two-way movement.

FieldDescription
From locationThe origin location
To locationThe destination location
NameName of the exit shown to players (e.g. "North Door", "Rope Bridge")
DescriptionNarrative description of the link when it is visible and unlocked
Locked descriptionDescription shown when the link is locked or blocked
Traversal descriptionNarrative shown when a player successfully moves through this link

Writing conventions: Use neutral third-person for Name and Description — avoid player-relative direction words such as back, return, retreat, or again, since the player may never have visited the destination before. Name the exit by what it is or where it leads (e.g. "The Cemetery Gate", "Toward the Open Graves"), not by travel history (e.g. "Back to the Gate"). Traversal descriptions describe the act of moving; you may name the destination the player just chose.


Location Link Requirement

Conditions that control whether a link is visible to players or can be traversed. Multiple requirements on the same link and purpose all apply — every condition must be met.

FieldDescription
Purposetraverse — gates movement through the link; visible — gates whether the link appears on the sheet at all
ItemItem required (used with item-based conditions); maps to adventure_game_item_id
CreatureCreature required (used with creature-based conditions); maps to adventure_game_creature_id
SkillPlatform skill required (used with skill-based conditions like character_has_skill); maps to adventure_skill_id
ConditionThe condition that must be met (see below)
QuantityNumber of instances required to satisfy the condition

Item-based conditions:

ConditionMeaning
in_inventoryPlayer has the required number of this item in their inventory (unused)
equippedPlayer has the required number of this item equipped

Creature-based conditions:

ConditionMeaning
dead_at_locationAt least the required number of this creature are dead at the current location
none_alive_at_locationNo living instances of this creature exist at the current location
none_alive_in_gameNo living instances of this creature exist anywhere in the run

Skill-based conditions:

ConditionMeaning
character_has_skillThe character must have learned the specified platform skill

> Example: A crumbled staircase link uses character_has_skill with the Climb skill. Characters without Climb cannot traverse the link; it appears locked (or hidden if purpose is visible) on their Location sheet.

Effect on the turn sheet: if a visibility requirement is not met, the link is hidden entirely. If a traversal requirement is not met, the link is shown but marked as locked, displaying the locked description.


Location Object

Interactive scenery at a location. Objects can have discrete states and trigger effects when players perform actions on them.

FieldDescription
LocationThe location this object belongs to
NameName shown to players (e.g. "Locked Chest", "Ancient Lever")
DescriptionNarrative description
Initial stateThe state the object starts in for each new run; leave unset for a stateless object
HiddenIf enabled, the object is not visible until revealed by an effect

Location Object State

Discrete named states for a location object (e.g. "intact", "open", "broken", "activated"). States form a state machine — effects transition objects from one state to another.

FieldDescription
NameState name (e.g. "locked", "unlocked", "open")
DescriptionDescription shown when the object is in this state
Sort orderDisplay ordering for the states

Validation: the game validator checks for unreachable states, dead-end states, and objects whose initial state does not match any defined state.


Location Object Effect

Rules that define what happens when a player performs an action on an object. Multiple effects for the same action on the same object state all fire together.

FieldDescription
Action typeThe player action that triggers this effect (see action types below)
Required object stateThe object must be in this state for the effect to fire; leave unset to fire in any state
Required itemThe player must have this item in their inventory for the effect to fire
Result descriptionNarrative text shown to the player when the effect fires
Effect typeThe mechanical outcome (see effect types below)
Target stateFor state-change effects — the state to transition to
Target itemFor item effects — the item to give, remove, or place
Target linkFor link effects — the link to open or close
Target creatureFor summon effects — the creature to spawn
Target objectFor object effects — the object to reveal, hide, change, or remove
Target locationFor teleport and item-placement effects — the destination
Value (min)Minimum value for damage and heal effects
Value (max)Maximum value for damage and heal effects
RepeatableWhether the effect can fire more than once per run
Trigger chance1–100. Probability that this effect fires when its action is chosen. Default 100 (always fires). Use a lower value for traps and other probabilistic outcomes.

Action types:

ActionDescription
inspectLook at the object
touchTouch the object
openOpen the object
closeClose the object
lockLock the object
unlockUnlock the object
searchSearch the object
breakBreak the object
pushPush the object
pullPull the object
moveMove the object
burnBurn the object
readRead the object
takeTake from the object
listenListen to the object
insertInsert something into the object
pourPour something on or into the object
disarmDisarm the object (e.g. a trap)
climbClimb the object
useUse the object generically

Effect types:

EffectDescription
infoNarrative only — no mechanical change
nothingNo effect
change_stateChange this object to the target state
change_object_stateChange another object to the target state
give_itemAdd the target item to the player's inventory
remove_itemRemove the target item from the player's inventory
place_itemPlace the target item at the target location
open_linkRemove traversal restrictions from the target link
close_linkAdd a traversal restriction to the target link
reveal_objectMake the target object visible
hide_objectHide the target object
damageDeal damage to the player (random between value min and max)
healRestore the player's health (random between value min and max; cannot exceed 100)
summon_creatureSpawn the target creature at the player's current location
teleportMove the player to the target location
remove_objectPermanently remove this object from the run

Item

Item definitions. Items can be carried in inventory, equipped, and used. Items marked as starting items are given to every new character when a run starts.

FieldDescription
NameDisplay name
DescriptionNarrative description
Can be equippedWhether the item can be equipped to an equipment slot
Item categoryFree-text category for grouping (e.g. "weapon", "potion", "key")
Equipment slotThe slot the item occupies when equipped; required if the item can be equipped
Starting itemIf enabled, every new character starts the run with one of these

Equipment slot values:

SlotDescription
weaponWeapon slot — its deal_damage effects supply the wielder's typed damage packets
armorArmour slot — its mitigate_damage effects supply typed flat mitigation
clothingClothing slot
jewelryJewelry slot

A weapon or armour piece may also carry a required strength (required_strength). It is a hard equip gate: a character or creature whose effective STR is below the item's required strength cannot equip or attack with it (see Combat Model).


Effects (unified model)

All mechanical outcomes — weapon damage, armour mitigation, healing, buffs, status effects, and narrative outcomes — are authored as rows in the single adventure_game_effect table. An effect row is attached to an owner (item, object, set bonus, creature attack, or skill), and the same vocabulary is shared across all owners.

FieldDescription
Owner typeWhat the effect belongs to: item, object, set_bonus, creature_attack, or skill
Effect typeThe mechanical outcome (see effect types below)
ApplicationWhen it fires: passive (while equipped/known), on_use, on_attack, or on_tick
Damage typeFor damaging / mitigating effects (see Combat Model for the vocabulary)
Status kindFor apply_status — the timed status applied (see Combat Model)
Modifier statFor stat_modifierstrength, dexterity, or intelligence
Value (min)Minimum magnitude (damage, heal, hits stopped, stat delta, duration, etc.)
Value (max)Maximum magnitude for ranged effects (e.g. damage min–max)
Result descriptionNarrative text shown when the effect fires
Action type / required item / required locationGating fields for item-action and object-action effects
Target item / link / creature / object / location / stateTargets for the narrative effect types below
RepeatableWhether the effect can fire more than once

Combat effect types:

EffectTypical applicationDescription
deal_damageon_attack / on_useDeals a typed damage packet (value min–max) of the effect's damage type
damage_over_timeon_attack / on_useApplies a damage_over_time status: value (min) per turn for value (max) turns
healon_useRestores health (value min–max; capped at max HP)
heal_over_timeon_use / passiveApplies a heal_over_time status: value (min) HP per turn for value (max) turns
mitigate_damagepassiveFlat "hits stopped" of the effect's damage type while equipped; stacks additively
stat_modifierpassive / on_useAdjusts STR/DEX/INT by value (min); negative values model armour encumbrance
apply_statuson_attack / on_useApplies a timed status of the given status kind (e.g. stunned, held)
grant_lifestealpassive% of damage dealt that heals the attacker; stacks additively
grant_damage_reflectionpassive% of incoming damage reflected back to the attacker; stacks additively
grant_max_healthpassiveIncreases maximum HP above the base 100
grant_party_buffpassiveAdds flat mitigation to all characters at the same location
accuracy_bonuspassiveAdds to adjusted DEX for to-hit (weapon-mastery II / enchanted gear)

Narrative effect types (folded in from the retired item / object effect tables):

info, nothing, teleport, open_link, close_link, give_item, remove_item, summon_creature, change_state, change_object_state, reveal_object, hide_object, remove_object, place_item, advance_clock.

Item-action triggers (the action that fires an on_use item effect): use, equip, unequip, inspect, drop, pickup.

Notes:

  • Weapon damage and armour mitigation are typed — each deal_damage and mitigate_damage effect names a damage type. There is no longer an "untyped physical" fallback.
  • DoT / HoT with value (max) = 0 are permanent while equipped and are cleared when the item is unequipped.
  • Passive equip effects from individual items and from active set bonuses are resolved together at the start of each combat turn.

Item Sets

Item sets let the designer group equippable items into thematic collections that grant tiered bonuses when multiple pieces are worn simultaneously.

Item Set fields

FieldDescription
NameDisplay name shown on turn sheets when a set piece is discovered
DescriptionThematic flavour text describing the set's history or power

Set Bonus fields

FieldDescription
Item SetThe set this bonus belongs to
Pieces RequiredMinimum number of set pieces the character must have equipped (not just carried) for this tier to activate; minimum 2
Bonus TypeThe mechanical effect granted (uses the same effect-type vocabulary as items)
Bonus Value (min)Numeric value of the bonus (e.g. +3 for mitigate_damage); omitted for narrative bonuses
Bonus Value (max)Upper bound for ranged bonuses; omitted if not applicable
DescriptionNarrative description; required for purely narrative bonuses

Bonus type vocabulary — set bonuses are stored as adventure_game_effect rows with owner_type = set_bonus, so they use the same effect types as items. The combat-live grants (grant_max_health, grant_damage_reflection, grant_lifesteal, grant_party_buff) and mitigate_damage are the most common; narrative effect types describe text-only bonuses.

How sets work

  1. Assigning items to a set — each equippable item can belong to at most one set (optional field in the item form).
  2. Tier activation — at the start of every combat turn the engine counts how many pieces from each set the character has equipped. Every tier at or below that count activates simultaneously (e.g., 2-piece and 4-piece bonuses both apply when 4 pieces are equipped).
  3. Resolution — active set bonuses are summed together with individual item passive effects and applied as a combined stat block.

Turn sheet rendering

  • Set item names appear in gold/amber wherever they appear on turn sheets so players can recognise them at a glance.
  • When a player picks up a set piece, the turn sheet includes discovery narration:

> You find Warden's Iron Helm — part of the Crypt Warden set. Equip 2 pieces for: +2 physical mitigation. Equip 4 pieces for: +10 max health.

  • When a set tier is active during a combat encounter, the turn sheet shows a gold-coloured summary bar listing active bonuses.

Item Placement

Defines where items are initially found in the world when a run starts.

FieldDescription
ItemThe item to place
LocationThe location to place it at
Initial countHow many of this item are placed at this location

Creature

Creature definitions — monsters and NPCs. Includes combat stats, behaviour, territorial range, and how the creature is handled after death.

Creatures use the same combat mechanics as characters: STR/DEX/INT stats, typed attacks, typed mitigation, weapon proficiency and skills (see Combat Model). A creature's damaging attacks are authored as adventure_game_effect rows with owner_type = creature_attack; its innate mitigation and any stat modifiers are authored the same way. There are no scalar attack-damage / defense / attack-hit-bonus columns.

FieldDescription
NameDisplay name
DescriptionNarrative description
Strength / Dexterity / IntelligenceCore stats driving to-hit, equip gates, damage scaling and skills (default 10)
DispositionBehavioural disposition (see below)
Max healthMaximum health points
Attack methodHow the creature attacks — used in narrative descriptions
Attack descriptionNarrative describing the creature's attack
Movement descriptionNarrative shown to characters when a wandering instance of this creature enters their location (e.g. "A ghoul lurches in, grave-dirt falling from its claws."). If blank, the default "A {name} wanders in." is used.
Body decay turnsHow many turns after death the creature's corpse remains visible on encounter sheets
Respawn turnsHow many turns after death before a new instance of this creature spawns at its placement location (0 = no respawn)
Pursuit rangeHow many location hops a grudge-holding creature will chase its target from its home location (0 = stays put)

A creature with no authored damaging attack falls back to a default unarmed attack of 5 crushing damage.

Disposition values:

ValueCombat behaviour
aggressiveAttacks the player when encountered; retaliates without being provoked; deals damage when the player flees
inquisitiveDoes not attack first; becomes provoked if attacked
indifferentDoes not attack; does not retaliate even if attacked

Attack method values (narrative only — no mechanical effect):

claws, bite, sting, weapon, spell, slam, touch, breath, gaze

A portrait image can be uploaded for each creature.


Creature Placement

Defines where creatures initially appear in the world when a run starts.

FieldDescription
CreatureThe creature to place
LocationThe location to place it at
Initial countHow many of this creature are placed at this location

Wandering Monster Table

A reusable list of creatures that can randomly spawn from a spawn point. Tables are game-level resources and can be assigned to multiple spawn points across different locations.

FieldDescription
NameDesigner name for this table

Each table contains one or more entries:

Entry FieldDescription
CreatureThe creature type that may spawn
WeightRelative spawn probability. Higher weight = more common. The game picks a creature using weighted random selection across all entries in the table.

Example: a table with three entries — Skeleton (weight 3), Ghoul (weight 2), Wight (weight 1) — will produce Skeletons roughly 50% of the time, Ghouls 33%, and Wights 17%.


Wandering Monster Spawn Point

Configures a location as a source of wandering monsters. Each spawn point references a Wandering Monster Table and controls the timing, probability, and movement of the creatures it produces.

FieldDescription
LocationThe location where monsters initially appear
Monster TableThe Wandering Monster Table to draw from
Spawn Chance (%)1–100. Probability that a spawn attempt produces a creature.
Spawn Interval (turns)A spawn attempt is made every N turns (≥ 1).
Wander Range (hops)Maximum number of location hops a wandering creature may travel from this spawn point's home location.
Move Chance (%)1–100. Probability that each wandering creature moves to an adjacent location each turn (default 100).
Count ModeHow the live-creature cap is calculated: fixed uses Max Count directly; equal_player caps at the number of active players; half_player caps at half the active player count (rounded down).
Max CountThe cap value used when Count Mode = fixed.

Disabling guard: the spawn point configuration panel is disabled if no Wandering Monster Tables have been created for the game.


Wandering Monster Lifecycle

  1. Spawn attempt: every spawn_interval_turns turns the engine rolls a d100. If the roll ≤ spawn_chance and the number of live wandering creatures from this spawn point is below the cap, a creature is created from the table using weighted random selection. It appears at the spawn point's home location.
  2. Wander phase: after creature initiative each turn, every live wandering creature without an active grudge rolls a d100. If the roll ≤ move_chance and a random adjacent location is within wander_range hops of the home location, the creature moves there. Characters at the destination see the creature's movement description (or the default "A {name} wanders in.").
  3. Grudge priority: if the creature has any active grudge (e.g. from a combat encounter), standard pursuit rules take over entirely — wandering movement is skipped that turn.
  4. Death: when a wandering creature is killed it is not added to the respawn queue. The spawn point's next periodic check is the sole mechanism for re-entry.

Turn Sheets

Each turn a character receives a set of turn sheets to fill out. Sheets are presented to the player in a specific order, and processed by the game engine in a different order.

SheetProcessing orderPresentation orderNotes
Join gameSent when a player first joins; handled separately from regular turn processing
Skill Training0th (before all others)3rdIssued whenever skill_points_available > 0; processed first so newly learned skills apply to combat this turn
Inventory1st4thProcessed first among action sheets; taking inventory actions forfeits combat that turn
Actions2nd5thShown early so players see what they are facing before deciding on items
Speech— (global phase)6thSay / whisper / shout using curated phrase templates; resolved before movement when 2+ characters
Location3rd7thMovement is processed last so the flee penalty uses the final creature state
Turn recap2ndRead-only summary of previous turn events
Map1stRead-only explored locations map
CombatReserved — not yet available
PuzzleReserved — not yet available

Turn Sheet Background Images

When uploading a background image for an adventure game, select the sheet type the image should apply to.

SheetDescription
adventure_game_join_gameJoin game sheet — required; sent when a player first joins
adventure_game_location_choiceLocation sheet — movement and object interaction
adventure_game_inventory_managementInventory sheet
adventure_game_actionsActions sheet — attack, use item, or cast spell; always present when at least one action type is available
adventure_game_speechSpeech sheet — say, whisper, or shout to other characters (multiplayer only)
adventure_game_combat_(reserved — not yet available)_
adventure_game_puzzle_(reserved — not yet available)_

Player Rules

Character Stats

StatValueDescription
Starting health100Health assigned when a character joins a run
Respawn health50Health restored after a character dies
Unarmed attack damage5Crushing damage dealt when no weapon is equipped
Maximum health100Base maximum, before grant_max_health effects; healing cannot exceed the effective maximum

Core stats (STR / DEX / INT)

Every character and creature has three core stats:

StatDrives
Strength (STR)Weapon/armour equip gates (required_strength), STR-based skill access and effectiveness
Dexterity (DEX)The 3d6 roll-under to-hit target for all attacks; DEX-based skill access
Intelligence (INT)Spell/INT-based skill access and effectiveness

Allocation at first join: a character distributes exactly 32 points across STR/DEX/INT on the join sheet. Each stat must be between 6 and 16 at creation. Stats may later be raised through progression up to a lifetime ceiling of 20.


Location Sheet

Players choose where to move or interact with an object at their current location. Moving and interacting with an object are mutually exclusive — only one can be submitted per turn.

Speech

When a game instance has more than one alive character, each character receives a Speech sheet (web-submit only in v1). Players compose up to three utterances per turn from platform-curated phrase templates with typed slots filled only from in-game nouns offered on the sheet.

ModeAudienceNarrative
SayAll other visible characters at your location{name} says: {message}
WhisperOne chosen co-located character only (fully silent to bystanders){name} whispers: {message} to the target; if the target is no longer co-located at turn-start, the speaker sees They were not here to hear you.
ShoutYour location plus adjacent locations with an accessible back-link toward youAttributed at your location; anonymous and directional elsewhere: Someone shouts: {message} from {link name}

Speech resolves in a global phase before movement, using turn-start positions so co-location is deterministic. Received speech appears as turn events on the next turn's recap and play-sheet sidebars. Negatable templates offer a distinct negative phrasing per locale (not a mechanical "Do not" prefix). Social exclamations (Hello, Yes, Thanks, Goodbye, and similar) are fixed phrases in the catalog — not a separate greeting word slot. Party phrases (help requests, together/alone coordination) are grouped separately from Social greetings. Coordination questions (Should I go to {location}?, Should I attack the {creature}?, and similar) appear in the same category as their related statements (Movement, Objects, Warnings). Warning phrases include attack coordination (Attack the {creature}! / Do not attack the {creature}!) for telling other players which monster to fight or avoid — distinct from the mechanical attack action on the Actions sheet.

Movement rules:

  • The player selects one of the exits shown on their sheet
  • Available exits are pre-filtered by link visibility and traversal requirements
  • The character moves to the chosen location
  • If a traversal description is set on the link, it is shown in the turn narrative

Flee penalty:

  • If the character moves away from a location where aggressive creatures or grudge-holding creatures are alive, each such creature makes a free flee attack — provided it still has actions remaining in its turn budget
  • Each flee attack rolls 3d6 against the creature's adjusted DEX (it can miss); on a hit, damage = the creature's typed attack packets reduced by the character's typed mitigation
  • Indifferent creatures without a grudge do not deal flee damage

Object interaction:

  • Players can choose to act on a visible object at their location instead of moving
  • Available actions are determined by the object's current state and the effects defined on that state
  • If an effect requires a specific item, the player must have that item in their inventory (unused)
  • All matching effects for the chosen action fire at the same time

Combat Model

Combat uses a single typed, TFT-style resolver shared by characters and creatures.

To-hit — 3d6 roll-under adjusted DEX. Every attack rolls dice and hits when the total is ≤ the attacker's adjusted DEX.

  • Adjusted DEX = base DEX + stat modifiers (temporary buffs/curses and passive armour encumbrance) − status penalties (stunned/dazed/hit-chance penalty) + accuracy bonuses (weapon-mastery II / enchanted gear).
  • Dice count: 3d6 by default; +1 die if untrained with the weapon (no matching weapon-mastery skill, except natural/unarmed attacks which are always proficient); +1 die if the target is actively defending. Extra dice stack.
  • Critical hit: a natural total of 3 on 3d6 (only possible at 3 dice, so untrained/defended attacks cannot crit). A crit doubles each damage packet before mitigation.
  • Automatic miss: the natural maximum (numDice × 6) always misses, regardless of DEX.

Typed damage and mitigation. An attack produces one or more typed damage packets. Each packet is reduced by the defender's flat "hits stopped" mitigation of that damage type:

final = max(0, rolled[×2 if crit] − Σ hits_stopped matching the packet's damage type)

Same-type mitigation stacks additively with no cap. Negative hits-stopped represents vulnerability (extra damage taken). Mitigation comes from worn armour (mitigate_damage), innate creature mitigation, and active mitigation_buff statuses (e.g. Shield/Ward spells).

Damage types:

GroupTypes
Physicalpiercing, slashing, crushing
Elementalburning, freezing, corrosion, shocking, poisoning
Wildcards (mitigation only)physical, elemental — armour/buffs may stop a whole group; never a damage source

Equip gate. A weapon or armour piece with a required_strength cannot be equipped or used by an actor whose effective STR is below it.

Encumbrance. Armour DEX penalties are authored as passive stat_modifier effects (negative DEX), folded into adjusted DEX like any other modifier.

Status kinds (timed statuses applied by apply_status / DoT / HoT effects):

KindEffect
stunnedLocks the location sheet (no move/look/search/inspect/object interaction) and applies a DEX penalty (default 4)
heldBlocks movement; the actor may still fight, use items, and interact with objects
dazedDEX penalty (no movement lock)
hit_chance_penaltyDEX penalty only
stat_modifierAdjusts STR/DEX/INT for its duration
mitigation_buffAdds typed flat mitigation for its duration (Shield/Ward)
damage_over_timeDeals value (min) damage per turn for value (max) turns
heal_over_timeHeals value (min) HP per turn for value (max) turns

Actions Sheet

Players submit combat actions for creatures present at their location. This sheet is omitted if no creatures (alive or recently dead) are present.

Players submit up to 3 combat actions per turn. Each action is either do nothing or attack, with a choice of target creature.

Sheet display:

  • Alive creatures are always listed
  • Dead creatures remain visible for the number of turns set by the creature's body decay turns setting
  • If only corpses are present the sheet is read-only
  • Up to 3 combat actions are available when the sheet is interactive
  • The creature card and player bar show STR/DEX/INT, the to-hit target, the typed attack, and typed mitigation

Combat forfeiture: if the player picks up, drops, equips, or unequips items on their inventory sheet that turn, all combat is skipped and the encounter sheet explains why.

Attack resolution (processed in order per action, using the Combat Model above):

  1. Hit check: roll 3d6 (+1 die if untrained) against the attacker's adjusted DEX. On a miss, a miss event is emitted; no damage is dealt, no grudge is acquired, and no retaliation occurs.
  2. Damage: on a hit, each typed weapon packet (doubled on a natural-3 crit) is reduced by the creature's matching typed mitigation; the remainder is dealt. Any damage_over_time / apply_status effects on the weapon are applied to the target.
  3. Grudge: non-aggressive creatures acquire a grudge against the attacker on the first successful hit (see Grudge Aggression below).
  4. If the creature's health reaches 0: the creature is killed; any items it was carrying drop to the player's current location; all of its grudges are cleared.
  5. If the creature survives: it retaliates if aggressive or if it holds a grudge against this character.
  • Creature hit check: the creature rolls 3d6 against its own adjusted DEX. A miss emits a miss event and consumes 1 action from the creature's budget; no damage is dealt.
  • Retaliation damage: the creature's typed attack packets reduced by the character's typed mitigation.
  • Each retaliation (hit or miss) consumes 1 action from the creature's 3-action budget for the turn.

> Note: every attack — player actions, creature retaliation, creature initiative, and flee attacks — rolls 3d6 against the attacker's adjusted DEX and can miss.

Character death:

  • If character health reaches 0 the character is moved to the starting location
  • Health is restored to the respawn health (50)
  • All creature grudges targeting the dead character are cleared
  • A narrative event is generated

Inventory Sheet

Players manage their carried items — picking up items from the floor, dropping items, equipping and unequipping gear, using consumables, and giving items to other characters at the same location.

Players select items to pick up, drop, equip, unequip, use, or give.

Processing order within a single turn: unequip → drop → give → pick up → equip → use

Key rules:

  • No ground items when aggressive creatures are present: if alive aggressive creatures are at the location, ground items are not shown and pickup is not offered
  • No give targets when aggressive creatures are present: the give recipient list is also hidden when aggressive creatures are at the location; trading is blocked during combat
  • Auto-pickup on equip: if a player equips an item that is on the ground at their current location, it is automatically picked up first
  • Give auto-unequips: if a player gives an item that is currently equipped, it is automatically unequipped before transfer
  • Co-location required: a give only succeeds if giver and recipient are at the same location when the turn is processed; if the recipient has moved away the give fails with a warning narrative event
  • Capacity check: if the recipient's inventory is full the give fails silently with a warning narrative event; the item stays with the giver
  • Dead recipients: if the recipient is dead when the turn is processed the give fails with a warning narrative event
  • Multiple gives per turn: a player may give different items to different recipients in a single turn; each give action is independent
  • No chain gives: a character can only give items they held when the sheet was generated; items received from other players during the same turn processing cannot be re-given that turn

Grudge Aggression

Creatures remember who attacked them and become persistently hostile toward those characters for a limited number of turns.

How grudges work:

  • When a character attacks a creature (regardless of disposition), the creature acquires a grudge against that character
  • A grudge lasts for 3 turns after the last hit; attacking again refreshes the expiry
  • While a grudge is active the creature behaves as aggressive toward that specific character — it retaliates on their encounter sheet and may pursue them across locations
  • Grudges are cleared when the creature dies or when the target character dies
  • A narrative event is emitted on the encounter sheet when a creature with an active grudge is present

Creature Initiative and Action Budget

Each creature has an action budget of 3 actions per turn. Actions are consumed during encounter processing and post-turn phases.

Action budget usage:

  • Retaliation during a creature encounter consumes 1 action
  • A flee attack against a fleeing character consumes 1 action
  • An initiative attack (see below) consumes 1 action

Initiative attacks happen after all player turn sheets have been processed for the turn:

  • Any creature with actions remaining that has alive characters at its location will spend those actions attacking them
  • Aggressive creatures attack any character; grudge-holding creatures prioritise the characters they hold grudges against
  • Each initiative attack rolls 3d6 against the creature's adjusted DEX (it can miss); on a hit, damage = the creature's typed attack packets reduced by the character's typed mitigation
  • If a character's health reaches 0 from an initiative attack they are moved to the starting location, their health is restored to respawn health (50), and all creature grudges against them are cleared

Creature Pursuit and Territorial Range

Grudge-holding creatures with a pursuit_range > 0 will actively follow their highest-damage attacker across location boundaries.

Pursuit rules:

  • After all turn sheets are processed, a grudge-holding creature identifies the character that dealt the most damage to it that turn
  • If that character has moved to a different location and the creature's pursuit_range would permit reaching them, the creature moves one hop toward them along the shortest path
  • A creature will never enter the starting location (the safe zone) in pursuit
  • Pursuit is limited by pursuit_range: a creature cannot move to a location more hops away from its home location than its range allows
  • A creature's home location is the location it was placed at (or spawned at) when the run started

Return-home behaviour:

  • After pursuit is resolved, any creature that is away from its home location and has no living targets at its current location moves one hop back toward home
  • If a creature is back at its home location and has no targets, it stays put

Respawn:

  • When a creature respawns it returns to its home location, its grudge list is cleared, and its action budget is reset

Objectives are designer-authored goals that the engine evaluates each turn. They can be hidden until prerequisites are met, chain together through unlock rewards, grant in-world effects on completion or failure, and end the run when a terminal objective resolves.

Objective Fields

FieldDescription
TitleDisplay name shown to players (when visible)
DescriptionNarrative description of the goal
Categoryprimary, secondary, or optional — for display grouping
ScopeWho the objective tracks: game_instance (global), account_user (per player), or character (per character)
Visibilityvisible — shown immediately when the run starts; hidden_until_unlocked — hidden until an unlock_objective reward is applied
Sort orderDisplay ordering
Is repeatableWhether the objective can reset and be completed again after a reset_after_turns cooldown
Reset after turnsFor repeatable objectives: turns after completion before the objective resets; null means it resets the following turn
Is terminal successIf true, completing this objective ends the run as a success
Is terminal failureIf true, failing this objective ends the run as a failure
Completion modeinstance — one player completing it satisfies it globally; per_player — each player must complete it individually; contributory — multiple players contribute toward a shared total

Condition Phases

Each objective has three condition sets. All conditions in a set must be true simultaneously for the phase to trigger.

PhaseMeaning
unlockConditions that must be met for a hidden objective to become visible and active
completeConditions that mark the objective as completed
failConditions that mark the objective as failed; checked every turn regardless of phase

Condition Types

Shared (available for all game types):

TypeDescription
turn_number_at_leastCurrent turn number is at or above the given value
objective_status_isA named objective has a given status (unlocked, completed, failed)
game_instance_status_isThe run itself has a given status

Adventure-specific:

Typesubject_refDescription
adventure_item_in_inventoryItem IDAt least one character in the run is carrying this item
adventure_character_at_locationLocation IDAt least one character is currently at this location
adventure_object_state_isObject IDThe location object is in the specified state
adventure_creature_dead_at_locationCreature IDThis creature has no living instances anywhere in the run

Reward Types

Rewards fire when an objective transitions to a new phase. Multiple rewards can be attached; they fire in sort order. Reward target determines who receives the reward.

Shared (available for all game types):

TypeDescription
append_turn_eventAppend a narrative message to the current turn's event log
unlock_objectiveTransition a hidden objective to active
complete_game_instanceEnd the run as a success
fail_game_instanceEnd the run as a failure
advance_clockAdvance a named clock by a specified amount

Adventure-specific:

Typetarget_refDescription
adventure_give_itemItem IDPlace the item in the triggering character's inventory
adventure_open_linkLink IDRemove all traversal requirements from a location link
adventure_change_object_stateObject IDTransition a location object to the specified state
adventure_summon_creatureCreature IDSpawn the creature at a specified location
adventure_heal_characterRestore health to all characters in the run
adventure_damage_characterDeal damage to all characters in the run

Ending a Run

A run ends when any of the following occur:

  • An objective with is_terminal_success = true is completed
  • An objective with is_terminal_failure = true is failed
  • A complete_game_instance or fail_game_instance reward fires (attached to an objective or a clock threshold)
  • A clock threshold effect of type complete_game_instance or fail_game_instance fires (see Clocks below)

Clocks

Clocks are designer-authored pressure timers that advance automatically each turn and/or when objective rewards fire. When a clock crosses a designer-set threshold, it fires a message and one or more effects. Clocks count up from initial_value toward max_value.

Clock Fields

FieldDescription
TitleDisplay name
DescriptionNarrative description of what the clock represents
IconOptional emoji or symbol shown in turn event messages
Max valueThe ceiling the clock counts toward
Initial valueStarting value when a run begins
Advance per turnAmount added to the clock each turn automatically; use 0 for clocks that only advance via objective rewards
Visibilityvisible — players can see the clock; hidden_until_active — hidden until first threshold fires; always_hidden — never shown to players
Sort orderEvaluation ordering

Thresholds

Each clock can have multiple thresholds. When the clock's current value reaches or passes a threshold value for the first time, the threshold fires:

  1. Its message (if set) is appended to all players' turn event log
  2. Its effects are applied in sort order

Threshold Effect Types

Shared:

EffectDescription
append_turn_eventAppend a typed clock turn event; may be global or adventure-location scoped
advance_clockAdvance another (or the same) clock by a given amount
fail_objectiveForce a named objective to the failed status
complete_game_instanceEnd the run as a success
fail_game_instanceEnd the run as a failure

Adventure-specific:

Effecttarget_refDescription
adventure_change_object_stateObject IDTransition a location object to the specified state
adventure_summon_creatureCreature IDSpawn the creature at a specified location
adventure_damage_characterDeal damage to all characters in the run
adventure_open_linkLink IDRemove all traversal requirements from a location link
adventure_close_linkLink IDBlock a location link _(not yet implemented)_

Clock Turn Event Delivery

append_turn_event clock effect narrative is stored in game_clock_threshold_turn_event, not in game_clock_threshold_effect.value_json.

FieldDelivery behavior
adventure_game_location_id = NULLInstance-wide event; every player receives witness_message
adventure_game_location_id setCharacters at that location receive witness_message
ambient_hear_hops > 0Characters within that many location links receive ambient_message
ambient_hear_hops = 0No ambient delivery

If ambient_hear_hops > 0, ambient_message is required. If ambient_hear_hops = 0, leave ambient_message empty. This keeps local narrative local: a graveyard event should not appear on the turn sheet of a character deep in the cellar.


Character Progression

Characters earn experience points (XP) through exploration and combat. Accumulated XP drives level-ups, which award skill points that can be spent on new skills.

XP Sources

SourceHow XP is awarded
Creature killCharacter who delivers the killing blow receives the creature's xp_value
TreasureFirst time a character picks up an is_treasure item, they receive the item's xp_value

Level Table

LevelXP RequiredSkill Points Granted
102
21001
32501
44501
57001
61 0001
71 4001
81 9001
92 5001
103 2001

Characters start at level 1 with 2 skill points already available.

Level-up events are announced on the turn recap sheet. Only one level can be gained per turn.

Skill Training Sheet

When a character has skill_points_available > 0 at the start of a turn, a Skill Training turn sheet is issued. The player checks one or more skills they wish to learn. Each skill costs its skill tier in points (a tier-1 skill costs 1 point, a tier-2 skill costs 2, and so on); skill tier is the sole authority for skill cost.

  • The sheet lists only skills that are available in the game (enabled by the designer) and that the character does not already know.
  • Prerequisite chains are validated at submission time.
  • Unspent skill points carry over to future turns.

Skills Reference

The following skills are implemented in the first deliverable. All skills are defined by the platform and are read-only for designers; designers choose which subset to enable per game.

Physical Skills

SkillTypeEffect
ClimbTraversalCharacter can traverse location links with condition character_has_skill pointing to this skill
SwimTraversalCharacter can traverse location links with condition character_has_skill pointing to this skill

Mental Skills

_(No skills in the first deliverable.)_

Passive Defense

SkillTierTypeEffect
Dodge I2Passive DefenseDEX-gated defensive training (the active-defence die bonus is a deferred feature)

Spells (Spiritual / Arcane)

Spells are skills with skill_type = spell; they appear as an action on the Actions sheet when known, off cooldown, and affordable. Magnitudes scale gently with the caster's primary stat.

SkillTierPrimaryEffect
Heal I / II1 / 2INTRestore health to self or an ally
Shield I / II1 / 2STRmitigation_buff: stop physical hits for a few turns
Ward I / II1 / 2INTmitigation_buff: stop elemental hits for a few turns
Flame Touch I / Frost Bolt I / Lightning Arc I1INTDeal burning / freezing / shocking damage to a creature
Acid Splash I / Venom Dart I1INTDeal corrosion / poisoning damage plus a damage_over_time
Stun I / II1 / 2INTApply stunned to a creature
Hold I / II1 / 2INTApply held to a creature
Dispel I2INTRemove an active debuff from self or an ally

Weapon / Armor Mastery

SkillTypeApplies toEffect
Weapon Mastery (e.g. Sword Mastery I)Weapon Masteryweapon_typeGrants proficiency with that weapon type — attacks roll 3d6 instead of the untrained 4d6
Armor Mastery (e.g. Medium Armor Mastery I)Armor Masteryarmor_typeTraining in that armour class (numeric mitigation/encumbrance bonus is a deferred feature)

> Mastery skills match a weapon/armour item by its exact weapon_type / armor_type string; the proficiency die bonus is the live mechanical effect under the typed combat model.


Item Types

Assigning a type to an item enables skill mastery bonuses to apply.

FieldValuesPurpose
weapon_typesword, axe, club, dagger, spear, bow, staff, unarmedIdentifies the weapon category for mastery skills and proficiency. The blunt family is unified under club (the legacy mace/hammer types were retired).
armor_typelight, medium, heavy, shield, clothIdentifies the armor category for mastery skills
consumable_typepotion, food, scroll, key, toolIdentifies the consumable category (reserved for future skill gating)
is_treasurebooleanMarks the item as a reward; awards XP on first pickup
xp_valueintegerXP awarded when the item is picked up as treasure

Creature Properties

Assigning properties to a creature enables skills that target specific creature types.

PropertyDescription
undeadAnimated corpses, spectres, and similar
beastNatural animals and vermin
dragonDragon-kin
elementalElemental spirits
demonFiends and demonic entities
feyFey and magical beings
humanoidHumans, goblins, bandits, etc.
giantGiants and ogres
constructGolems and mechanical creatures
plantAnimated plant-life
aberrationAlien and unknowable entities

Creatures may have multiple properties.


Link Requirement: character\_has\_skill

A location link can require that a character knows a specific skill in order to traverse (or even see) the link.

FieldValue
conditioncharacter_has_skill
adventure_skill_idThe platform skill the character must know
purposetraverse (most common) or visible
quantityAlways 1 (ignored for skill checks)

> Example: A crumbled staircase link requires the Climb skill. Characters without Climb cannot attempt the link; it is filtered from their Location sheet.


Spell Casting

Spells are skills with skill_type = spell. They appear as an additional action on the Actions sheet when the character knows at least one combat spell and has sufficient HP to pay the cost.

FieldDescription
hp_costHP deducted from the caster when the spell is cast
effect_value_min/maxMagnitude of the spell's primary effect
duration_turnsHow many turns the effect persists (0 = instant)
cooldown_turnsMinimum turns before the spell can be cast again (0 = no cooldown)

Heal (the first deliverable spell):

  • Restores 20 HP to the caster (capped at max HP)
  • Costs 5 HP
  • Instant (no duration)
  • No cooldown — can be cast multiple times per turn within the 3-action budget
  • Context: combat

Deferred Features

The following progression features are documented in todos/adventure_game_progression_system.md and will be delivered incrementally:

  • Active-defence die bonus — wiring a Parry/Dodge action that forces an attacker to roll +1 die (the resolver supports TargetDefending; no action currently sets it)
  • Passive-defence and armor-mastery numeric bonuses — Dodge and Armor Mastery currently act as gates/flavour; their typed mitigation contribution is pending
  • AoE and multi-target spells
  • Category investment bonus (+2% per skill in a category)
  • Consumable type gating (Literacy, Herbalism, Alchemy, Traps)
  • Knowledge skills (Appraise)
  • Objective award_xp reward type