V1.1.0: gear levels, encounter overhaul, guided builder, trading, docs
Characters - Builder: pick-then-Next on every step with live preview, Back button, plain-language help throughout, and "Suggest for me" for ability scores - Motivation is picked from a list; new steps for special abilities, background and appearance, all composed from fixed lists and DM-only to edit afterwards - Copy a character to another campaign - Characters can give gold, weapons, items and spells to each other - Money tracker: gold only changes through a logged ledger - Fixes: level/XP/location are DM-only, HP stays within 0..max, physical dice ability rolls, every die is rolled once Gear - DM-managed item pool; weapons, items and spells are handed out by the DM - Starting-option flag per pool entry - Gear levels 1-9 per held copy with a damage ladder, growth rate and starting level; spells gated by spell level with a fixed damage value - Spell library carries default damage; damage is picked from a list Encounters - Battle and NPC quest modes, turn tracking, scene description, DM notes - NPCs, richer combatant cards, conditions from a list - Rewards (gold, weapons, items) lined up and awarded, with gold splitting - Character HP is shared between the sheet and the encounter - Monster stat blocks and NPC secrets are never sent to players Other - Dice roller on every page - Docs for characters, weapons, spells, items, encounters, monsters and NPCs, with full lists generated from the data (npm run docs:lists) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Binary file not shown.
@@ -0,0 +1,961 @@
|
||||
# Characters
|
||||
|
||||
How characters work in this app: how they are created, what is stored, how every
|
||||
number on the sheet is calculated, who can do what, and what is not modelled.
|
||||
|
||||
This describes the code as it stands. The formulas live in
|
||||
`backend/src/game/calculations.js`; the build flow lives in
|
||||
`backend/src/game/buildFlow.js` and `backend/src/routes/characters.routes.js`;
|
||||
the lists the story steps pick from are in
|
||||
`backend/src/game/data/characterOptions.js`.
|
||||
|
||||
Related: [WEAPONS.md](WEAPONS.md), [SPELLS.md](SPELLS.md),
|
||||
[ITEMS.md](ITEMS.md), [ENCOUNTERS.md](ENCOUNTERS.md),
|
||||
[MONSTERS.md](MONSTERS.md) and [NPCS.md](NPCS.md) cover those subjects in
|
||||
full. `GAME_RULES_REFERENCE.md` and `ROLL_YOUR_CHARACTER.md` are the original
|
||||
specifications the app was first built from; where they differ from this
|
||||
document (the story steps, gear levels, picking a motivation), this document
|
||||
is the current behaviour.
|
||||
|
||||
## Contents
|
||||
|
||||
1. [The basics](#1-the-basics)
|
||||
2. [Creating a character](#2-creating-a-character)
|
||||
3. [Species](#3-species)
|
||||
4. [Classes](#4-classes)
|
||||
5. [Ability scores and modifiers](#5-ability-scores-and-modifiers)
|
||||
6. [Level and XP](#6-level-and-xp)
|
||||
7. [Hit points](#7-hit-points)
|
||||
8. [Other derived stats](#8-other-derived-stats)
|
||||
9. [Saving throws and skills](#9-saving-throws-and-skills)
|
||||
10. [Gear pools, starting options and gear levels](#10-gear-pools-starting-options-and-gear-levels)
|
||||
11. [Weapons and spells](#11-weapons-and-spells)
|
||||
12. [Inventory and money](#12-inventory-and-money)
|
||||
13. [Story fields, location and notes](#13-story-fields-location-and-notes)
|
||||
14. [Where characters appear](#14-where-characters-appear)
|
||||
15. [Characters in encounters](#15-characters-in-encounters)
|
||||
16. [Copying to another campaign](#16-copying-to-another-campaign)
|
||||
17. [Permissions](#17-permissions)
|
||||
18. [Deleting](#18-deleting)
|
||||
19. [What is not modelled](#19-what-is-not-modelled)
|
||||
20. [Everything the builder offers](#20-everything-the-builder-offers)
|
||||
|
||||
---
|
||||
|
||||
## 1. The basics
|
||||
|
||||
- A character belongs to **exactly one campaign**. Its weapons, spells, items
|
||||
and location all come from that campaign's own lists.
|
||||
- A character has an **owner** (a user who is a member of the campaign) and a
|
||||
**creator** (whoever started it — the owner, or the DM on their behalf).
|
||||
- A user can have **any number of characters** in a campaign, and characters in
|
||||
many campaigns. Nothing limits it to one each.
|
||||
- A character is either **being built** or **complete**. Only a complete
|
||||
character has a sheet, quick stats, can join an encounter, or can be copied.
|
||||
|
||||
## 2. Creating a character
|
||||
|
||||
Any campaign member can start a character for themselves from the campaign
|
||||
page ("Roll a New Character"). The DM can also create one on behalf of another
|
||||
member through the API (the page itself always creates for the logged-in user).
|
||||
|
||||
A new character starts with the campaign's **starting gold** (recorded as the
|
||||
first entry in its money log) and goes straight into the builder.
|
||||
|
||||
### Dice mode
|
||||
|
||||
Chosen once, before the first roll, and then locked:
|
||||
|
||||
| Mode | How rolls happen |
|
||||
|---|---|
|
||||
| Digital (default) | The server rolls using a cryptographic random source. |
|
||||
| Physical | The player rolls real dice and types the results in; the server checks each value is in range for the die. |
|
||||
|
||||
### The build steps
|
||||
|
||||
| # | Step | What happens |
|
||||
|---|---|---|
|
||||
| 1 | Species | Roll a d6. Each result offers a pair to choose from; a 6 is a wildcard (any species). |
|
||||
| 2 | Class | Roll a d8. Each result offers a pair; a 7 means roll again; an 8 is a wildcard (any class). |
|
||||
| 3 | Motivation | Pick a story hook from a list of six, or press "Surprise me". No dice: it changes no numbers. Skipped entirely if the campaign has "skip the motivation step" on. |
|
||||
| 4 | Ability scores | Roll six scores (4d6, drop the lowest die, sum the other three), then assign each score to one ability. |
|
||||
| 5 | Skills | Skills are picked at random from the class's list the moment scores are locked in. The DM can override them at this step. |
|
||||
| 6 | Special abilities | See what the species and class grant automatically, then pick two talents from a list. |
|
||||
| 7 | Background | Answer five questions (upbringing, home, turning point, personality, flaw) by picking from lists. |
|
||||
| 8 | Appearance | Pick build, height, hair, eyes, skin, up to two distinguishing features, and usual clothing. |
|
||||
| 9 | Equipment | Pick starting weapons, items and spells from the ones the DM has marked as starting options, within the campaign's limits. |
|
||||
| — | Finalize | Everything is written to the character, saving throw proficiencies are set from the class, and current HP is set to max. |
|
||||
|
||||
**Species roll (d6)**
|
||||
|
||||
| Roll | Choose between |
|
||||
|---|---|
|
||||
| 1 | Human, Half-Elf |
|
||||
| 2 | Elf, Gnome |
|
||||
| 3 | Dwarf, Halfling |
|
||||
| 4 | Dragonborn, Tiefling |
|
||||
| 5 | Half-Orc, Orc |
|
||||
| 6 | Wildcard — any species |
|
||||
|
||||
**Class roll (d8)**
|
||||
|
||||
| Roll | Choose between |
|
||||
|---|---|
|
||||
| 1 | Fighter, Barbarian |
|
||||
| 2 | Rogue, Ranger |
|
||||
| 3 | Wizard, Sorcerer |
|
||||
| 4 | Cleric, Paladin |
|
||||
| 5 | Bard, Warlock |
|
||||
| 6 | Druid, Monk |
|
||||
| 7 | Roll again |
|
||||
| 8 | Wildcard — any class |
|
||||
|
||||
**Motivations to pick from**
|
||||
|
||||
- Revenge for a past wrong
|
||||
- Seeking fortune or wealth
|
||||
- Protecting someone they love
|
||||
- Redemption for a past mistake
|
||||
- Driven by curiosity or knowledge
|
||||
- Duty or oath to a cause or order
|
||||
|
||||
### The story steps
|
||||
|
||||
Steps 6 to 8 never involve typing. The player picks from fixed lists, and the
|
||||
app writes the text that appears on the sheet. Each has a "Surprise me" button
|
||||
that picks at random, which the player can then adjust.
|
||||
|
||||
**Special abilities** are listed one per line as "Name — what it does", in
|
||||
this order:
|
||||
|
||||
1. What the **species** grants automatically (for example Dwarf: Darkvision,
|
||||
Dwarven Resilience).
|
||||
2. What the **class** grants automatically at level 1 (for example Barbarian:
|
||||
Rage, Unarmored Defense).
|
||||
3. The **two talents** the player picked from a list of fourteen (Alert, Keen
|
||||
Eye, Silver Tongue, Field Medic, Tough as Nails, …).
|
||||
|
||||
These are table rules written in plain words for the DM to apply. The app
|
||||
does not calculate anything from them: Rage does not add damage by itself, and
|
||||
Unarmored Defense does not change AC unless the DM sets the armor bonus.
|
||||
|
||||
**Background** is five lines, one per question:
|
||||
|
||||
| Question | Picks |
|
||||
|---|---|
|
||||
| Upbringing — what were you before? | 1 of 14 (Soldier, Acolyte, Criminal, Noble, Scholar, Farmer, …) |
|
||||
| Home — where did you grow up? | 1 of 8 |
|
||||
| Turning point — what set you on the road? | 1 of 9 |
|
||||
| Personality — how do others describe you? | 1 or 2 of 14 |
|
||||
| Flaw — what gets you into trouble? | 1 of 9 |
|
||||
|
||||
**Appearance** is built the same way from build, height, hair, eyes, skin,
|
||||
distinguishing features (none, one or two) and usual clothing.
|
||||
|
||||
Once the character is finalized, **the player cannot change any of the three**.
|
||||
The DM can edit all of them on the sheet, which is how new abilities are added
|
||||
as a character levels up. Every option is listed in
|
||||
[section 20](#20-everything-the-builder-offers).
|
||||
|
||||
### Choosing versus committing
|
||||
|
||||
- A **dice roll is final** the moment it is made.
|
||||
- A **choice is not**: on every step, clicking an option only selects it. The
|
||||
live preview beside the steps shows what it would do, and the player can
|
||||
switch as often as they like. Nothing is saved until they press **Next**.
|
||||
- **Back** returns to the previous step so its choice can be changed. The
|
||||
step comes back with the same dice roll, the same options and the earlier
|
||||
pick still selected; nothing is re-rolled. Starting equipment is the one
|
||||
thing that has to be confirmed again on the way forward.
|
||||
- Skills are drawn once per class. Going back and forward again, or switching
|
||||
class and switching back, gives the same skills each time.
|
||||
- Back stops working once the character is finalized.
|
||||
|
||||
The builder explains itself as it goes: each step opens with a line on what it
|
||||
is for, every species and class option is a card describing what it is like to
|
||||
play and what it changes, and the ⓘ icons explain each number. On the ability
|
||||
score step, "Suggest for me" puts the best rolls where the chosen class needs
|
||||
them, and the player can still rearrange them.
|
||||
|
||||
### Rules the builder enforces
|
||||
|
||||
- Every die is rolled once: species, class (unless it landed on "roll again")
|
||||
and ability scores. Going back never gives a fresh roll.
|
||||
- Special abilities, background and appearance accept only entries from their
|
||||
lists, in the numbers each question allows.
|
||||
- A **Half-Elf** must pick two different abilities (not Charisma) for its
|
||||
flexible +1/+1.
|
||||
- All six rolled scores must be assigned, one per ability.
|
||||
- Only pool entries the DM has marked as a **starting option** can be picked
|
||||
(section 10).
|
||||
- **Starting weapons and items together** cannot exceed the campaign's
|
||||
starting item count.
|
||||
- **Starting spells** cannot exceed the campaign's starting spell count, only
|
||||
a class with a spellcasting ability can pick any, and a new (level 1)
|
||||
character can only start with cantrips and level 1 spells.
|
||||
- Starting weapons and items arrive at **gear level 1**, so one that starts at
|
||||
a higher level (section 10) cannot be picked even if it is ticked.
|
||||
|
||||
## 3. Species
|
||||
|
||||
Species sets ability bonuses and walking speed, which feed the calculations,
|
||||
and grants special abilities, which are written on the sheet for the DM to
|
||||
apply (section 2, "The story steps").
|
||||
|
||||
| Species | Ability bonuses | Speed | Special abilities granted |
|
||||
|---|---|---|---|
|
||||
| Human | +1 to all six | 30 | Versatile |
|
||||
| Half-Elf | +2 CHA, and +1 to two others of the player's choice | 30 | Darkvision, Fey Ancestry |
|
||||
| Elf | +2 DEX | 30 | Darkvision, Fey Ancestry, Trance |
|
||||
| Gnome | +2 INT | 25 | Darkvision, Gnome Cunning |
|
||||
| Dwarf | +2 CON | 25 | Darkvision, Dwarven Resilience |
|
||||
| Halfling | +2 DEX | 25 | Lucky, Brave |
|
||||
| Dragonborn | +2 STR, +1 CHA | 30 | Breath Weapon, Draconic Resistance |
|
||||
| Tiefling | +2 CHA, +1 INT | 30 | Darkvision, Hellish Resistance |
|
||||
| Half-Orc | +2 STR, +1 CON | 30 | Darkvision, Relentless Endurance |
|
||||
| Orc | +2 STR, +1 CON | 30 | Darkvision, Aggressive |
|
||||
|
||||
## 4. Classes
|
||||
|
||||
Class sets the hit die, the two saving throw proficiencies, the spellcasting
|
||||
ability (if any), and which skills can be picked. Each class also grants two
|
||||
special abilities at level 1, written on the sheet for the DM to apply:
|
||||
|
||||
| Class | Special abilities granted |
|
||||
|---|---|
|
||||
| Barbarian | Rage, Unarmored Defense |
|
||||
| Bard | Bardic Inspiration, Jack of Many Tales |
|
||||
| Cleric | Divine Domain, Healing Hands |
|
||||
| Druid | Druidic, Nature's Voice |
|
||||
| Fighter | Second Wind, Fighting Style |
|
||||
| Monk | Martial Arts, Unarmored Defense |
|
||||
| Paladin | Divine Sense, Lay on Hands |
|
||||
| Ranger | Favored Enemy, Natural Explorer |
|
||||
| Rogue | Sneak Attack, Thieves' Cant |
|
||||
| Sorcerer | Innate Magic, Wild Talent |
|
||||
| Warlock | Otherworldly Patron, Pact Magic |
|
||||
| Wizard | Spellbook, Arcane Recovery |
|
||||
|
||||
The numbers each class sets:
|
||||
|
||||
| Class | Hit die | Saves | Spellcasting | Skills |
|
||||
|---|---|---|---|---|
|
||||
| Barbarian | d12 | STR, CON | — | 2 from Animal Handling, Athletics, Intimidation, Nature, Perception, Survival |
|
||||
| Bard | d8 | DEX, CHA | CHA | 3 from any skill |
|
||||
| Cleric | d8 | WIS, CHA | WIS | 2 from History, Insight, Medicine, Persuasion, Religion |
|
||||
| Druid | d8 | INT, WIS | WIS | 2 from Arcana, Animal Handling, Insight, Medicine, Nature, Perception, Religion, Survival |
|
||||
| Fighter | d10 | STR, CON | — | 2 from Acrobatics, Animal Handling, Athletics, History, Insight, Intimidation, Perception, Survival |
|
||||
| Monk | d8 | STR, DEX | — | 2 from Acrobatics, Athletics, History, Insight, Religion, Stealth |
|
||||
| Paladin | d10 | WIS, CHA | CHA | 2 from Athletics, Insight, Intimidation, Medicine, Persuasion, Religion |
|
||||
| Ranger | d10 | STR, DEX | WIS | 3 from Animal Handling, Athletics, Insight, Investigation, Nature, Perception, Stealth, Survival |
|
||||
| Rogue | d8 | DEX, INT | — | 4 from Acrobatics, Athletics, Deception, Insight, Intimidation, Investigation, Perception, Performance, Persuasion, Sleight of Hand, Stealth |
|
||||
| Sorcerer | d6 | CON, CHA | CHA | 2 from Arcana, Deception, Insight, Intimidation, Persuasion, Religion |
|
||||
| Warlock | d8 | WIS, CHA | CHA | 2 from Arcana, Deception, History, Intimidation, Investigation, Nature, Religion |
|
||||
| Wizard | d6 | INT, WIS | INT | 2 from Arcana, History, Insight, Investigation, Medicine, Religion |
|
||||
|
||||
## 5. Ability scores and modifiers
|
||||
|
||||
The six abilities are Strength, Dexterity, Constitution, Intelligence, Wisdom
|
||||
and Charisma.
|
||||
|
||||
- The **rolled score** is what the dice gave (3–18). This is what is stored.
|
||||
- The **final score** is the rolled score plus the species bonus. This is what
|
||||
the sheet shows and what every calculation uses.
|
||||
- The **modifier** is `(final score − 10) ÷ 2`, rounded down.
|
||||
|
||||
| Final score | Modifier |
|
||||
|---|---|
|
||||
| 8–9 | −1 |
|
||||
| 10–11 | 0 |
|
||||
| 12–13 | +1 |
|
||||
| 14–15 | +2 |
|
||||
| 16–17 | +3 |
|
||||
| 18–19 | +4 |
|
||||
| 20 | +5 |
|
||||
|
||||
Ability scores cannot be changed after the build is finalized.
|
||||
|
||||
## 6. Level and XP
|
||||
|
||||
- Every character starts at **level 1**. The range is 1 to 20.
|
||||
- Levelling is **manual**: the DM changes the Level field on the sheet. Only
|
||||
the DM can change level or XP.
|
||||
- **XP** is stored but no screen shows or edits it, and it does not drive level.
|
||||
|
||||
Level feeds two things:
|
||||
|
||||
**Proficiency bonus** — `2 + (level − 1) ÷ 4`, rounded down.
|
||||
|
||||
| Level | Proficiency bonus |
|
||||
|---|---|
|
||||
| 1–4 | +2 |
|
||||
| 5–8 | +3 |
|
||||
| 9–12 | +4 |
|
||||
| 13–16 | +5 |
|
||||
| 17–20 | +6 |
|
||||
|
||||
**Max HP** — see the next section.
|
||||
|
||||
## 7. Hit points
|
||||
|
||||
**Max HP** is calculated, never stored:
|
||||
|
||||
- Level 1: the full hit die + CON modifier.
|
||||
- Each level after: the die's fixed average (half the die, plus 1) + CON modifier.
|
||||
|
||||
| Hit die | Level 1 | Each later level |
|
||||
|---|---|---|
|
||||
| d6 | 6 + CON | 4 + CON |
|
||||
| d8 | 8 + CON | 5 + CON |
|
||||
| d10 | 10 + CON | 6 + CON |
|
||||
| d12 | 12 + CON | 7 + CON |
|
||||
|
||||
Example: a Fighter (d10) with CON 14 (+2) has 12 at level 1 and 28 at level 3.
|
||||
|
||||
**Current HP** is a stored number, separate from max:
|
||||
|
||||
- Set to max when the build is finalized, and when a character is copied.
|
||||
- Changed with the Damage and Heal buttons on the sheet, or by the DM in an
|
||||
encounter (section 15). Both change the same number.
|
||||
- Always kept between **0 and max**: healing stops at max and damage stops at 0.
|
||||
- A level-up raises max but leaves current HP where it was; the DM clicks
|
||||
"Recompute Max HP" to set current HP to the new max (a full heal). If a
|
||||
level change lowers max below current HP, current HP drops to the new max.
|
||||
|
||||
**Temp HP** is a tracked number shown beside HP. Damage is not taken from it
|
||||
automatically.
|
||||
|
||||
## 8. Other derived stats
|
||||
|
||||
| Stat | Formula |
|
||||
|---|---|
|
||||
| Armor Class | 10 + DEX modifier + armor bonus |
|
||||
| Initiative | DEX modifier |
|
||||
| Speed | Species speed, unless a speed override is set |
|
||||
| Passive Perception | 10 + Perception skill bonus |
|
||||
| Hit dice | One per level, of the class's die size (shown only; not spent or tracked) |
|
||||
| Spell save DC | 8 + proficiency bonus + spellcasting ability modifier |
|
||||
| Spell attack bonus | Proficiency bonus + spellcasting ability modifier |
|
||||
|
||||
**Armor bonus** is a single number typed in on the sheet to stand for armor and
|
||||
shield. There are no armor items, and equipping an inventory item does not
|
||||
change AC.
|
||||
|
||||
**Speed override** exists in the data and API (DM only) but has no field on
|
||||
the sheet.
|
||||
|
||||
## 9. Saving throws and skills
|
||||
|
||||
**Saving throws:** ability modifier, plus proficiency bonus if the class is
|
||||
proficient in that save. Fixed by class; not editable.
|
||||
|
||||
**Skills:** governing ability modifier, plus proficiency bonus if proficient,
|
||||
or double the proficiency bonus with expertise.
|
||||
|
||||
| Ability | Skills |
|
||||
|---|---|
|
||||
| STR | Athletics |
|
||||
| DEX | Acrobatics, Sleight of Hand, Stealth |
|
||||
| INT | Arcana, History, Investigation, Nature, Religion |
|
||||
| WIS | Animal Handling, Insight, Medicine, Perception, Survival |
|
||||
| CHA | Deception, Intimidation, Performance, Persuasion |
|
||||
|
||||
Skill proficiencies are drawn at random during the build (step 5) and cannot
|
||||
be changed from the sheet afterwards. Expertise is supported by the
|
||||
calculations but is only ever set if the DM supplies it during step 5.
|
||||
|
||||
## 10. Gear pools, starting options and gear levels
|
||||
|
||||
Each campaign has three **pools**, managed by the DM on the campaign page:
|
||||
|
||||
| Pool | What an entry holds | How entries are added |
|
||||
|---|---|---|
|
||||
| Weapons | Name, base damage dice, damage type, attack ability, starting level, growth | By hand, or from the built-in library |
|
||||
| Spells | Name, level, school, optional damage | By hand, or from the built-in library (which supplies a default damage) |
|
||||
| Items | Name, optional description, optional base dice, starting level, growth | By hand |
|
||||
|
||||
Everything a character carries or knows is an entry from its campaign's pools.
|
||||
[WEAPONS.md](WEAPONS.md), [SPELLS.md](SPELLS.md) and [ITEMS.md](ITEMS.md)
|
||||
describe each pool in full; this section is the part that matters to a
|
||||
character.
|
||||
|
||||
- **Only the DM** adds to a pool, edits or removes entries, gives entries to
|
||||
characters from the pool, changes how many a character has, levels them up,
|
||||
and takes them away.
|
||||
- **The owning player** can tick and untick Equipped (weapons, items) and
|
||||
Prepared (spells) on gear their character can use, and can **give** what
|
||||
their character holds to another character (section 12).
|
||||
- Removing an entry from a pool removes it from every character holding it.
|
||||
|
||||
**Starting options.** Every pool entry has a "Starting" tick box. Only ticked
|
||||
entries are offered in the equipment step of the builder (step 9); everything
|
||||
else has to be given out by the DM later. New entries are **not** starting options until the DM
|
||||
ticks them.
|
||||
|
||||
### Gear levels
|
||||
|
||||
This is a house rule of this app, not standard D&D.
|
||||
|
||||
**Each weapon or item a character holds has its own level, 1 to 9.** The
|
||||
level belongs to that character's copy, not to the pool entry, so two
|
||||
characters can hold spears of different levels. Only the DM changes it, with
|
||||
the level picker next to it on the sheet. A character holds one stack of each
|
||||
weapon or item, and the whole stack shares one level.
|
||||
|
||||
**Starting level.** Each weapon and item in a pool has a level it starts at —
|
||||
1 for most, higher for gear that should only exist later (a greatsword that
|
||||
starts at level 3, say). A copy is given at that level unless the DM picks a
|
||||
higher one, and can never go below it. If the DM later raises an entry's
|
||||
starting level, copies below it are lifted to it and unequipped.
|
||||
|
||||
**Who can use what.** A character can use gear of their own level or lower:
|
||||
|
||||
| Character level | Can use gear of level |
|
||||
|---|---|
|
||||
| 1 | 1 |
|
||||
| 2 | 1–2 |
|
||||
| 3 | 1–3 |
|
||||
| … | … |
|
||||
|
||||
Gear above the character's level can still be **held**, but it shows
|
||||
"Requires level N", cannot be equipped, and is left out of quick stats and
|
||||
encounters. If the DM levels a piece of gear past its holder, or lowers the
|
||||
character's level, anything now out of reach is unequipped automatically.
|
||||
|
||||
**How damage grows.** The dice in the pool are the damage at the gear's
|
||||
**starting level**. Each level above that moves the dice up a fixed ladder, in
|
||||
the smallest steps the dice allow:
|
||||
|
||||
| Rung | Dice | Average |
|
||||
|---|---|---|
|
||||
| 1 | 1d4 | 2.5 |
|
||||
| 2 | 1d6 | 3.5 |
|
||||
| 3 | 1d8 | 4.5 |
|
||||
| 4 | 1d10 | 5.5 |
|
||||
| 5 | 1d12 | 6.5 |
|
||||
| 6 | 2d6 | 7 |
|
||||
| 7 | 1d6+1d8 | 8 |
|
||||
| 8 | 2d8 | 9 |
|
||||
| 9 | 1d8+1d10 | 10 |
|
||||
| 10 | 2d10 | 11 |
|
||||
| 11 | 1d10+1d12 | 12 |
|
||||
| 12 | 2d12 | 13 |
|
||||
| 13 | 3d8 | 13.5 |
|
||||
| 14 | 2d8+1d10 | 14.5 |
|
||||
| … | and so on, adding a die each time the current dice max out | |
|
||||
|
||||
Every rung is +1 average damage over the last, or +0.5 where a die is added.
|
||||
|
||||
Each weapon and item has a **growth** setting that says how many rungs it
|
||||
climbs per level:
|
||||
|
||||
| Growth | Rungs per level | A 1d6 weapon at levels 1, 2, 3, 4 | At level 9 |
|
||||
|---|---|---|---|
|
||||
| Standard | 1 | 1d6, 1d8, 1d10, 1d12 | 2d10 |
|
||||
| Powerful | 2 | 1d6, 1d10, 2d6, 2d8 | 1d10+2d12 |
|
||||
| Legendary | 3 | 1d6, 1d12, 2d8, 1d10+1d12 | 4d12 |
|
||||
|
||||
A 2d6 greatsword that starts at level 3 with Standard growth is 2d6 at level
|
||||
3, 1d6+1d8 at level 4, 2d8 at level 5, and so on.
|
||||
|
||||
- At its starting level, gear always shows the dice exactly as the DM typed
|
||||
them.
|
||||
- Dice that are not on the ladder (for example `2d4+2` or `1d4+1`) start
|
||||
climbing from the highest rung that is not stronger than them: `2d4+2`
|
||||
(average 7) continues from 2d6, so it becomes 1d6+1d8 one level up.
|
||||
- Dice the app cannot read (free text such as "special") never change.
|
||||
- Level changes the **dice only**. The attack bonus and the flat damage bonus
|
||||
still come from the character's ability scores and proficiency bonus.
|
||||
|
||||
**Spells** do not have a level of their own to raise. The classic spell level
|
||||
is the requirement: a character must be at least that level to prepare or use
|
||||
the spell, and cantrips are open to everyone. A spell can carry a damage
|
||||
value, which is fixed.
|
||||
|
||||
## 11. Weapons and spells
|
||||
|
||||
A character holds weapons, each with a quantity, a level and an equipped flag.
|
||||
|
||||
| Number | Formula |
|
||||
|---|---|
|
||||
| Attack bonus | Ability modifier + proficiency bonus |
|
||||
| Damage | The weapon's dice at the held copy's level (section 10) + ability modifier |
|
||||
|
||||
The ability depends on the weapon: Strength, Dexterity, or "finesse" (whichever
|
||||
of the two is higher).
|
||||
|
||||
- Characters are treated as **proficient with every weapon**.
|
||||
- Giving a weapon the character already has increases its quantity; the
|
||||
stack keeps the level it has.
|
||||
|
||||
A character knows spells, each with a prepared flag.
|
||||
|
||||
- The sheet's "Spells Known" card only appears when the campaign has at least
|
||||
one spell.
|
||||
- After the build, the DM can grant spells to **any class**; the "must be a
|
||||
spellcaster" rule applies only to starting spells.
|
||||
- A spell above the character's level can be known but not prepared, and is
|
||||
left out of encounters (section 10).
|
||||
- A spell's damage, if it has one, is shown beside it. It is fixed.
|
||||
- Spell save DC and attack bonus are shown only for classes with a
|
||||
spellcasting ability.
|
||||
- There are no spell slots.
|
||||
|
||||
## 12. Inventory and money
|
||||
|
||||
**Inventory** is the items a character holds from the campaign's item pool,
|
||||
each with a quantity, a level and an equipped flag. Giving an item the
|
||||
character already has adds to the stack. Items have no effect on any stat. An
|
||||
item can carry optional dice (a potion's healing, a bomb's damage) that grow
|
||||
with its level exactly like a weapon's (section 10).
|
||||
|
||||
**Money** is a single gold balance with a log behind it.
|
||||
|
||||
- The sheet's Money card shows the balance and every change to it: the amount,
|
||||
what it was for, who recorded it, when, and the balance afterwards.
|
||||
- The **owning player and the DM** can both record a gain or a spend. Other
|
||||
members can see the log but not add to it.
|
||||
- The balance **cannot go below zero**; a spend larger than the balance is
|
||||
refused.
|
||||
- The log is the only way the balance changes. Entries cannot be edited or
|
||||
deleted; to correct a mistake, record the opposite entry.
|
||||
- There is one currency (gold). Silver, copper and so on are not tracked.
|
||||
|
||||
### Giving to another character
|
||||
|
||||
The "Give to Another Character" card on the sheet lets a character's owner
|
||||
(or the DM) hand over something the character holds to another finished
|
||||
character in the same campaign.
|
||||
|
||||
| What | How much | What happens |
|
||||
|---|---|---|
|
||||
| Gold | Any amount up to the balance | Both money logs get an entry: "Gave to Bo" and "Received from Aria" |
|
||||
| A weapon or item | Some or all of the stack | It leaves the giver's stack and joins the recipient's |
|
||||
| A spell | The spell | The giver no longer knows it; the recipient does |
|
||||
|
||||
- **Giving always moves.** Nothing is copied: whatever is given, the giver no
|
||||
longer has. This keeps the DM in control of how much gear, gold and magic
|
||||
exists while letting the party share it out.
|
||||
- A weapon or item arrives at the **giver's level**, unequipped. If the
|
||||
recipient already holds some, theirs simply grows and keeps its own level.
|
||||
- The recipient may be too low a level to use it. They hold it anyway, marked
|
||||
"Requires level N" (section 10).
|
||||
- A spell cannot be given to someone who already knows it.
|
||||
- The recipient does not have to accept; it just arrives.
|
||||
|
||||
## 13. Story fields, location and notes
|
||||
|
||||
| Field | Who can see it | Who can edit it |
|
||||
|---|---|---|
|
||||
| Motivation | Everyone in the campaign | Set during the build only |
|
||||
| Background | Everyone in the campaign | Built from picks; afterwards the DM only |
|
||||
| Appearance | Everyone in the campaign | Built from picks; afterwards the DM only |
|
||||
| Special abilities | Everyone in the campaign (sheet and quick stats) | Built from picks; afterwards the DM only |
|
||||
| Private notes | **The owner only — not even the DM** | Owner only |
|
||||
| Current location | Everyone in the campaign | DM picks it on the sheet, from the campaign's locations |
|
||||
|
||||
**Character notes** are a separate, running log on the sheet:
|
||||
|
||||
- Any campaign member can post a note on any character.
|
||||
- Notes posted from the sheet are shared with the whole campaign.
|
||||
- The API also supports DM-only notes, visible to the DM and the author.
|
||||
- Only the author can delete a note.
|
||||
|
||||
## 14. Where characters appear
|
||||
|
||||
| Screen | What it shows |
|
||||
|---|---|
|
||||
| Campaign page | Character list: species, class, level, HP, AC, location. Players see their own first, then the rest of the party. |
|
||||
| Party overview | One table of every character with an HP bar, AC, gold and location. |
|
||||
| Character sheet | Everything in this document. |
|
||||
| Character builder | A character that is still being built (section 2). |
|
||||
| Quick stats drawer | A combat summary: HP, AC, initiative, speed, proficiency bonus, spellcasting numbers, special abilities, and each weapon's attack and damage. |
|
||||
| Encounter page | Characters taking part in a battle or quest (next section). |
|
||||
|
||||
Changes are pushed live to everyone who has the campaign open, so sheets and
|
||||
lists update without a refresh.
|
||||
|
||||
## 15. Characters in encounters
|
||||
|
||||
[ENCOUNTERS.md](ENCOUNTERS.md) covers encounters in full; this is the part
|
||||
that concerns characters.
|
||||
|
||||
An encounter is a scene the DM runs. It has a **mode**:
|
||||
|
||||
| Mode | What it is for | What the screen shows |
|
||||
|---|---|---|
|
||||
| Battle | A fight | Everyone in initiative order, a round counter, and whose turn it is |
|
||||
| NPC quest | A scene built around people and an objective | The NPCs, the party and any creatures as separate groups; no rounds or turns |
|
||||
|
||||
The DM can switch an encounter's mode at any time. Every encounter also has a
|
||||
description shown to everyone (the scene or the quest), and DM notes that
|
||||
players never receive.
|
||||
|
||||
**Who can be in one**
|
||||
|
||||
- **Characters.** A character's HP in an encounter **is its sheet HP**: damage
|
||||
or healing the DM applies there changes the sheet, and a change on the sheet
|
||||
shows in the encounter. Max HP always comes from the sheet.
|
||||
- **Monsters**, from the campaign's monster list ([MONSTERS.md](MONSTERS.md)).
|
||||
Each keeps its own HP per encounter, held between 0 and its max.
|
||||
- **NPCs**, from the campaign's NPC list ([NPCS.md](NPCS.md)). An NPC has a
|
||||
name, role, attitude (friendly, neutral or hostile), a description for
|
||||
players, and DM-only notes. Combat stats are optional; an NPC without hit
|
||||
points simply has no health bar.
|
||||
|
||||
**What each side sees**
|
||||
|
||||
| | DM | Players |
|
||||
|---|---|---|
|
||||
| A character | Level, species, class, HP, AC, speed, initiative bonus, passive perception, proficiency bonus, ability scores, saves, usable weapons and spells, special abilities | The same |
|
||||
| A monster | The full stat block: AC, speed, attack, damage, challenge, ability scores, trait, notes | Name, HP and conditions only |
|
||||
| An NPC | Everything, including DM notes and stats | Name, role, attitude and description |
|
||||
| Rewards | All of them | Only the ones that have been awarded |
|
||||
| DM notes | Yes | Never |
|
||||
|
||||
**Running a battle**
|
||||
|
||||
- Only the DM adds or removes combatants and changes HP, initiative or
|
||||
conditions. Initiative is typed in; the app does not roll it.
|
||||
- "Begin Battle" puts the highest initiative on turn. "Next Turn" passes the
|
||||
turn down the order, and going past the last combatant starts the next
|
||||
round. "Next Round" jumps straight to the top of the next round.
|
||||
- A combatant at 0 HP is marked Down but still takes its turn in the order.
|
||||
- Conditions (Prone, Poisoned, …) are picked from a list and removed with a
|
||||
click.
|
||||
|
||||
**Rewards**
|
||||
|
||||
The DM can line up rewards on any encounter: an amount of gold, or a weapon
|
||||
or item from the campaign pools at a chosen level and quantity.
|
||||
|
||||
- A reward does nothing until the DM **awards** it, and it can only be
|
||||
awarded once.
|
||||
- Awarding gold adds a "Reward: <encounter name>" entry to the character's
|
||||
money log. Gold can also be **split** evenly between the characters in the
|
||||
encounter; any remainder goes one gold each down the initiative order.
|
||||
- Awarding a weapon or item adds it to what the character holds, at the
|
||||
reward's level. A character below that level holds it but cannot use it yet
|
||||
(section 10).
|
||||
- A reward can go to any character in the campaign, not only those in the
|
||||
encounter.
|
||||
- Removing a reward from the list does not take back anything already awarded.
|
||||
|
||||
## 16. Copying to another campaign
|
||||
|
||||
A complete character can be copied into another campaign from the "Copy to
|
||||
Another Campaign" card on its sheet.
|
||||
|
||||
- **Who:** the owner, or the DM of the character's campaign. You must already
|
||||
be a member of the target campaign.
|
||||
- **Copied:** name, species, class, level, XP, ability scores, skill and save
|
||||
proficiencies, armor bonus, speed override, special abilities, gold (as a
|
||||
single opening entry in the copy's money log), background, appearance,
|
||||
motivation, inventory, weapons and spells, with each weapon's and item's
|
||||
level.
|
||||
- **Not copied:** location, character notes and encounter entries.
|
||||
- The copy arrives at **full HP** with no temp HP.
|
||||
- The copy is **owned by whoever made it**. If a DM copies a player's
|
||||
character, the DM owns the copy and the player's private notes are not
|
||||
carried over.
|
||||
- **Weapons, spells and items** are matched to the target campaign's pools by
|
||||
name (ignoring case). Any that are missing are added to the target's pool,
|
||||
never as starting options.
|
||||
- The copy is independent: the original is untouched and the two never sync.
|
||||
|
||||
## 17. Permissions
|
||||
|
||||
| Action | Owner | DM of the campaign | Other members |
|
||||
|---|---|---|---|
|
||||
| View the sheet and quick stats | Yes | Yes | Yes |
|
||||
| View private notes | Yes | No | No |
|
||||
| Run the builder | Yes | Yes | No |
|
||||
| Change HP, temp HP, armor bonus | Yes | Yes | No |
|
||||
| Edit special abilities, background, appearance (after the build) | No | Yes | No |
|
||||
| Tick Equipped / Prepared | Yes | Yes | No |
|
||||
| Give, remove or re-count weapons, spells and items | No | Yes | No |
|
||||
| Level a weapon or item up or down | No | Yes | No |
|
||||
| Record a gold gain or spend | Yes | Yes | No |
|
||||
| Give gold, weapons, items or spells to another character | Yes | Yes | No |
|
||||
| View the money log | Yes | Yes | Yes |
|
||||
| Change level, XP, location or speed override | No | Yes | No |
|
||||
| Post a character note | Yes | Yes | Yes |
|
||||
| Copy to another campaign | Yes | Yes | No |
|
||||
| Delete the character | No | Yes | No |
|
||||
|
||||
People outside the campaign cannot see a character at all.
|
||||
|
||||
## 18. Deleting
|
||||
|
||||
- Only the DM can delete a character (from the campaign page).
|
||||
- Deleting removes its proficiencies, inventory, weapon and spell assignments,
|
||||
money log and notes. Encounter entries that pointed at it stay in the
|
||||
encounter, with the name and the last HP seen, but lose everything else.
|
||||
- Deleting a **campaign** deletes every character in it.
|
||||
|
||||
## 19. What is not modelled
|
||||
|
||||
Use special abilities (via the DM), items or notes for these; the app does no
|
||||
calculations for them.
|
||||
|
||||
- The effects of special abilities: species traits and class features are
|
||||
written on the sheet for the DM to apply, but nothing is calculated from them
|
||||
- Class features beyond level 1 (the DM adds them to the sheet by hand),
|
||||
subclasses and multiclassing
|
||||
- Spell slots, spell preparation limits and concentration
|
||||
- Ability score increases and feats on level-up
|
||||
- Armor and shields as items (only the single armor bonus number)
|
||||
- Weapon proficiency (everyone is proficient with everything)
|
||||
- Rolling attacks, damage, saves or checks for a character (the dice roller,
|
||||
bottom left of every page, is a plain roller that knows nothing about the
|
||||
sheet)
|
||||
- Death saves, conditions on the sheet, and resting
|
||||
- Automatic levelling from XP
|
||||
- Alignment, languages, tool proficiencies and backgrounds-as-rules
|
||||
- Encumbrance and item weight
|
||||
- Currencies other than gold, and item prices
|
||||
|
||||
## 20. Everything the builder offers
|
||||
|
||||
Every motivation, special ability, talent, background answer and appearance
|
||||
answer a player can end up with.
|
||||
|
||||
This list is written from the app's own data by `npm run docs:lists` (in `/backend`). Re-run it after changing the data; do not edit the list by hand.
|
||||
|
||||
<!-- BEGIN GENERATED: builder-lists -->
|
||||
### Motivations
|
||||
|
||||
- Revenge for a past wrong
|
||||
- Seeking fortune or wealth
|
||||
- Protecting someone they love
|
||||
- Redemption for a past mistake
|
||||
- Driven by curiosity or knowledge
|
||||
- Duty or oath to a cause or order
|
||||
|
||||
### Special abilities granted by species
|
||||
|
||||
| Species | Abilities |
|
||||
|---|---|
|
||||
| Human | **Versatile** — Once per day, reroll one skill check you just failed and keep the new result. |
|
||||
| Half-Elf | **Darkvision** — See in dim light within 60 feet as if it were bright, and in darkness as if it were dim.<br>**Fey Ancestry** — Advantage on saves against being charmed, and magic cannot put you to sleep. |
|
||||
| Elf | **Darkvision** — See in dim light within 60 feet as if it were bright, and in darkness as if it were dim.<br>**Fey Ancestry** — Advantage on saves against being charmed, and magic cannot put you to sleep.<br>**Trance** — You do not sleep. Four hours of meditation rests you as well as a full night. |
|
||||
| Gnome | **Darkvision** — See in dim light within 60 feet as if it were bright, and in darkness as if it were dim.<br>**Gnome Cunning** — Advantage on Intelligence, Wisdom and Charisma saves against magic. |
|
||||
| Dwarf | **Darkvision** — See in dim light within 60 feet as if it were bright, and in darkness as if it were dim.<br>**Dwarven Resilience** — Advantage on saves against poison, and poison damage against you is halved. |
|
||||
| Halfling | **Lucky** — When you roll a 1 on a d20 for an attack, check or save, reroll it and use the new roll.<br>**Brave** — Advantage on saves against being frightened. |
|
||||
| Dragonborn | **Breath Weapon** — Once per rest, exhale destructive energy: creatures in a 15-foot cone take 2d6 damage (Dexterity save for half).<br>**Draconic Resistance** — Damage of your breath weapon’s type against you is halved. |
|
||||
| Tiefling | **Darkvision** — See in dim light within 60 feet as if it were bright, and in darkness as if it were dim.<br>**Hellish Resistance** — Fire damage against you is halved. |
|
||||
| Half-Orc | **Darkvision** — See in dim light within 60 feet as if it were bright, and in darkness as if it were dim.<br>**Relentless Endurance** — Once per day, when you would drop to 0 hit points, drop to 1 instead. |
|
||||
| Orc | **Darkvision** — See in dim light within 60 feet as if it were bright, and in darkness as if it were dim.<br>**Aggressive** — As a bonus action, move up to your speed toward an enemy you can see. |
|
||||
|
||||
### Special abilities granted by class
|
||||
|
||||
| Class | Abilities |
|
||||
|---|---|
|
||||
| Barbarian | **Rage** — Twice per day, for one minute: +2 melee damage, advantage on Strength checks and saves, and physical damage against you is halved.<br>**Unarmored Defense** — Without armor, add your Constitution modifier to your AC (ask your DM to set your armor bonus). |
|
||||
| Bard | **Bardic Inspiration** — A few times per day, as a bonus action, give an ally a d6 to add to one attack, check or save.<br>**Jack of Many Tales** — You have heard a story about nearly everything: ask your DM for one useful rumour per session. |
|
||||
| Cleric | **Divine Domain** — Choose with your DM what your god stands for (life, light, war, knowledge…). It shapes the favours you can ask.<br>**Healing Hands** — Once per rest, touch a creature to restore 1d8 + your Wisdom modifier hit points. |
|
||||
| Druid | **Druidic** — You know the secret language of druids and can leave hidden messages in it.<br>**Nature’s Voice** — You can calm and make simple requests of ordinary animals. |
|
||||
| Fighter | **Second Wind** — Once per rest, as a bonus action, recover 1d10 + your level hit points.<br>**Fighting Style** — Choose one with your DM: +2 to ranged attacks, +1 AC in armor, or +2 damage with a one-handed weapon. |
|
||||
| Monk | **Martial Arts** — Your unarmed strikes deal 1d4 damage and can use Dexterity. After attacking, make one unarmed strike as a bonus action.<br>**Unarmored Defense** — Without armor, add your Wisdom modifier to your AC (ask your DM to set your armor bonus). |
|
||||
| Paladin | **Divine Sense** — A few times per day, sense any celestial, fiend or undead within 60 feet.<br>**Lay on Hands** — A pool of healing equal to 5 × your level per day, spent by touch however you like. |
|
||||
| Ranger | **Favored Enemy** — Choose a kind of creature with your DM. Advantage on checks to track them and to recall what you know about them.<br>**Natural Explorer** — In the wild you cannot get lost, you find twice as much food, and difficult terrain does not slow your group. |
|
||||
| Rogue | **Sneak Attack** — Once per turn, deal an extra 1d6 damage to a target you have advantage against, or that has one of your allies next to it.<br>**Thieves’ Cant** — You know the secret slang and signs of the criminal underworld. |
|
||||
| Sorcerer | **Innate Magic** — Your magic comes from within: you need no spellbook and no prayers.<br>**Wild Talent** — Once per day, reroll the damage dice of one spell and keep the better result. |
|
||||
| Warlock | **Otherworldly Patron** — Choose with your DM who granted your power, and what they want in return.<br>**Pact Magic** — Your magic returns after a short rest, not only a long one. |
|
||||
| Wizard | **Spellbook** — Your spells are written in a book. You can copy new spells into it when you find them.<br>**Arcane Recovery** — Once per day, after a short rest, regain some of your spent magic. |
|
||||
|
||||
### Talents (pick 2)
|
||||
|
||||
| Talent | What it does |
|
||||
|---|---|
|
||||
| Alert | You cannot be surprised while you are awake. |
|
||||
| Keen Eye | Advantage on checks to spot hidden doors, traps and things out of place. |
|
||||
| Silver Tongue | Once per day, reroll a Persuasion or Deception check and keep the better result. |
|
||||
| Light Sleeper | You wake at the slightest sound, and keeping watch does not tire you. |
|
||||
| Iron Stomach | Advantage on saves against spoiled food, strong drink and swallowed poisons. |
|
||||
| Animal Friend | Ordinary animals are calm around you unless provoked. |
|
||||
| Quick Hands | Once per turn, draw, stow or pick up an object without using your action. |
|
||||
| Sure-Footed | Advantage on checks to keep your balance or avoid being knocked down. |
|
||||
| Linguist | You speak two extra languages of your choice, agreed with your DM. |
|
||||
| Field Medic | Steadying a dying creature is automatic for you; no roll needed. |
|
||||
| Strong Back | You can carry, lift and drag twice as much as your size suggests. |
|
||||
| Good Memory | You recall exactly anything you have seen or heard in the last month. |
|
||||
| Streetwise | In any town you can find a place to sleep, a rumour, and someone who buys things without asking questions. |
|
||||
| Tough as Nails | Once per day, shrug off a blow: reduce one instance of damage by 1d6. |
|
||||
|
||||
### Background questions
|
||||
|
||||
**Upbringing** — What were you before you became an adventurer? (pick 1)
|
||||
|
||||
| Option | What it adds |
|
||||
|---|---|
|
||||
| Soldier | Served in an army or militia, and still thinks in terms of orders and watches. |
|
||||
| Acolyte | Raised in a temple, tending shrines and copying scripture. |
|
||||
| Criminal | Made a living outside the law, and knows who to ask for what. |
|
||||
| Noble | Born to wealth and a family name that opens doors — and makes enemies. |
|
||||
| Scholar | Spent years among books, chasing answers to old questions. |
|
||||
| Farmer | Worked the land from dawn to dusk, and knows the value of a good harvest. |
|
||||
| Sailor | Grew up on deck, at home with rope, salt and bad weather. |
|
||||
| Guild artisan | Learned a craft in a workshop and takes pride in good work. |
|
||||
| Entertainer | Sang, juggled or acted for coin in taverns and market squares. |
|
||||
| Outlander | Raised far from towns, among hunters, herders or nomads. |
|
||||
| Urchin | Grew up alone on city streets, surviving on wits and quick feet. |
|
||||
| Hermit | Lived apart from the world for years, with only thoughts for company. |
|
||||
| Merchant | Travelled the trade roads buying low and selling high. |
|
||||
| Village healer | Set bones, brewed remedies and sat with the sick. |
|
||||
|
||||
**Home** — Where did you grow up? (pick 1)
|
||||
|
||||
| Option | What it adds |
|
||||
|---|---|
|
||||
| A crowded city | Noise, alleys and a thousand strangers. |
|
||||
| A small village | Everyone knew everyone, and nothing stayed secret. |
|
||||
| A harbour town | Ships, gulls and news from far away. |
|
||||
| A mountain hold | Thin air, stone halls and long winters. |
|
||||
| Deep in the forest | Under old trees, far from any road. |
|
||||
| A frontier fort | The last wall before the wild. |
|
||||
| On the road | Never in one place long enough to call it home. |
|
||||
| A remote monastery | Bells, silence and routine. |
|
||||
|
||||
**Turning point** — What set you on the road? (pick 1)
|
||||
|
||||
| Option | What it adds |
|
||||
|---|---|
|
||||
| Lost someone dear | And have not been the same since. |
|
||||
| Was betrayed | By someone they trusted completely. |
|
||||
| Survived a disaster | Fire, flood, plague or war — and walked away when others did not. |
|
||||
| Found a secret | Something they were never meant to see. |
|
||||
| Owes a debt | One that cannot be repaid by staying home. |
|
||||
| Was cast out | Rightly or wrongly, there is no going back. |
|
||||
| Was saved by a stranger | And means to pass the favour on. |
|
||||
| Heard a calling | A dream, a sign or a voice that would not let them rest. |
|
||||
| Could not stand the quiet | An ordinary life was never going to be enough. |
|
||||
|
||||
**Personality** — How do others describe you? Pick one or two. (pick 1 to 2)
|
||||
|
||||
| Option | What it adds |
|
||||
|---|---|
|
||||
| Brave | — |
|
||||
| Cautious | — |
|
||||
| Curious | — |
|
||||
| Kind | — |
|
||||
| Hot-headed | — |
|
||||
| Sarcastic | — |
|
||||
| Loyal | — |
|
||||
| Honest to a fault | — |
|
||||
| Cheerful | — |
|
||||
| Quiet | — |
|
||||
| Proud | — |
|
||||
| Superstitious | — |
|
||||
| Generous | — |
|
||||
| Stubborn | — |
|
||||
|
||||
**Flaw** — What gets you into trouble? (pick 1)
|
||||
|
||||
| Option | What it adds |
|
||||
|---|---|
|
||||
| Greedy | Cannot walk past treasure. |
|
||||
| Reckless | Acts first and thinks later. |
|
||||
| Holds grudges | Never forgets a slight. |
|
||||
| Too trusting | Believes a good story. |
|
||||
| Loses their nerve | When it matters most. |
|
||||
| Boastful | Promises more than they can deliver. |
|
||||
| Secretive | Keeps things even from friends. |
|
||||
| Soft-hearted | Cannot refuse someone in need. |
|
||||
| Short temper | Easily provoked. |
|
||||
|
||||
### Appearance questions
|
||||
|
||||
**Build** — What shape are you? (pick 1)
|
||||
|
||||
| Option | What it adds |
|
||||
|---|---|
|
||||
| Slight | — |
|
||||
| Lean | — |
|
||||
| Average | — |
|
||||
| Stocky | — |
|
||||
| Muscular | — |
|
||||
| Heavyset | — |
|
||||
|
||||
**Height** — For your species, are you… (pick 1)
|
||||
|
||||
| Option | What it adds |
|
||||
|---|---|
|
||||
| Short | — |
|
||||
| Average height | — |
|
||||
| Tall | — |
|
||||
| Towering | — |
|
||||
|
||||
**Hair** — Hair (or what you have instead). (pick 1)
|
||||
|
||||
| Option | What it adds |
|
||||
|---|---|
|
||||
| Black | — |
|
||||
| Brown | — |
|
||||
| Blonde | — |
|
||||
| Red | — |
|
||||
| Grey | — |
|
||||
| White | — |
|
||||
| An unusual colour | — |
|
||||
| Bald | — |
|
||||
| None — scales, horns or crest | — |
|
||||
|
||||
**Eyes** — Eye colour. (pick 1)
|
||||
|
||||
| Option | What it adds |
|
||||
|---|---|
|
||||
| Brown | — |
|
||||
| Blue | — |
|
||||
| Green | — |
|
||||
| Grey | — |
|
||||
| Amber | — |
|
||||
| Black | — |
|
||||
| Violet | — |
|
||||
| Mismatched | — |
|
||||
|
||||
**Skin** — Skin or scales. (pick 1)
|
||||
|
||||
| Option | What it adds |
|
||||
|---|---|
|
||||
| Pale | — |
|
||||
| Fair | — |
|
||||
| Tanned | — |
|
||||
| Brown | — |
|
||||
| Dark | — |
|
||||
| Weathered | — |
|
||||
| Ashen grey | — |
|
||||
| Green-tinged | — |
|
||||
| Deep red | — |
|
||||
| Scaled | — |
|
||||
|
||||
**Distinguishing features** — What would a stranger remember? Pick up to two, or none. (pick 0 to 2)
|
||||
|
||||
| Option | What it adds |
|
||||
|---|---|
|
||||
| A scar across the face | — |
|
||||
| A tattoo | — |
|
||||
| Freckles | — |
|
||||
| A broken nose | — |
|
||||
| An eyepatch | — |
|
||||
| A braided beard | — |
|
||||
| Piercings | — |
|
||||
| A birthmark | — |
|
||||
| An old burn | — |
|
||||
| A missing finger | — |
|
||||
| A slight limp | — |
|
||||
| An easy grin | — |
|
||||
|
||||
**Usually wears** — What are you usually seen in? (pick 1)
|
||||
|
||||
| Option | What it adds |
|
||||
|---|---|
|
||||
| Travel-worn leathers | — |
|
||||
| Well-kept armor | — |
|
||||
| A hooded cloak | — |
|
||||
| Fine clothes | — |
|
||||
| Patched and mended clothes | — |
|
||||
| Long robes | — |
|
||||
| Furs and hides | — |
|
||||
| Bright colours | — |
|
||||
| Plain, practical clothes | — |
|
||||
<!-- END GENERATED: builder-lists -->
|
||||
@@ -0,0 +1,215 @@
|
||||
# Encounters
|
||||
|
||||
How encounters work in this app: the two kinds of scene, who can be in one,
|
||||
how a battle is run, and how rewards are handed out.
|
||||
|
||||
This describes the code as it stands. The rules live in
|
||||
`backend/src/routes/encounters.routes.js`. Related:
|
||||
[CHARACTERS.md](CHARACTERS.md), [MONSTERS.md](MONSTERS.md),
|
||||
[NPCS.md](NPCS.md), [WEAPONS.md](WEAPONS.md), [ITEMS.md](ITEMS.md).
|
||||
|
||||
## Contents
|
||||
|
||||
1. [The basics](#1-the-basics)
|
||||
2. [Battle or quest](#2-battle-or-quest)
|
||||
3. [Status](#3-status)
|
||||
4. [The scene and DM notes](#4-the-scene-and-dm-notes)
|
||||
5. [Who is in the scene](#5-who-is-in-the-scene)
|
||||
6. [Hit points](#6-hit-points)
|
||||
7. [Initiative, turns and rounds](#7-initiative-turns-and-rounds)
|
||||
8. [Conditions](#8-conditions)
|
||||
9. [Rewards](#9-rewards)
|
||||
10. [What each side sees](#10-what-each-side-sees)
|
||||
11. [Permissions](#11-permissions)
|
||||
12. [What is not modelled](#12-what-is-not-modelled)
|
||||
|
||||
---
|
||||
|
||||
## 1. The basics
|
||||
|
||||
- An encounter is one **scene** the DM runs: a fight, or a meeting with
|
||||
people who want something.
|
||||
- Encounters belong to a campaign and are listed on the campaign page. The DM
|
||||
creates them; every member can open them.
|
||||
- The encounter page updates live for everyone who has it open.
|
||||
- The DM runs everything. Players watch, and see less than the DM does.
|
||||
|
||||
## 2. Battle or quest
|
||||
|
||||
Every encounter has a mode, chosen when it is created and switchable at any
|
||||
time from the top of the page.
|
||||
|
||||
| | Battle | NPC quest |
|
||||
|---|---|---|
|
||||
| For | A fight | A scene built around people and an objective |
|
||||
| Layout | Everyone in one list, in initiative order | Three groups: "People you meet", "The party", "Creatures" |
|
||||
| Rounds and turns | Yes | No |
|
||||
| Initiative | Typed in per combatant | Not shown |
|
||||
| Start button | Begin Battle | Begin Quest |
|
||||
| End button | End Battle | Complete Quest |
|
||||
|
||||
Everything else (hit points, conditions, rewards, the scene description, DM
|
||||
notes) works the same in both.
|
||||
|
||||
## 3. Status
|
||||
|
||||
| Status | Meaning | How to get there |
|
||||
|---|---|---|
|
||||
| Planning | Being set up | Every new encounter starts here |
|
||||
| In progress | Being played | Begin Battle / Begin Quest, or Reopen |
|
||||
| Complete | Finished | End Battle / Complete Quest |
|
||||
|
||||
Status is a label. Nothing is locked when an encounter is complete: the DM
|
||||
can still change HP, add people and award rewards. Encounters cannot be
|
||||
deleted or renamed from the screen.
|
||||
|
||||
## 4. The scene and DM notes
|
||||
|
||||
| Box | For | Who sees it |
|
||||
|---|---|---|
|
||||
| The Scene / Quest | Describing the battlefield, or what is being asked of the party | Everyone |
|
||||
| DM Notes | Tactics, secrets, what happens if the party fails | **DM only** |
|
||||
|
||||
Both save when the DM clicks out of the box.
|
||||
|
||||
## 5. Who is in the scene
|
||||
|
||||
The DM adds people from the "Add to the scene" panel.
|
||||
|
||||
| Kind | Comes from | Can be added more than once |
|
||||
|---|---|---|
|
||||
| Character | The campaign's finished characters | No |
|
||||
| Monster | The campaign's monster list ([MONSTERS.md](MONSTERS.md)) | Yes |
|
||||
| NPC | The campaign's NPC list ([NPCS.md](NPCS.md)) | No |
|
||||
|
||||
Each has a card. The card's left edge is coloured by kind, and it shows:
|
||||
|
||||
- **Characters:** level, species and class; HP, AC, speed, initiative bonus,
|
||||
passive perception, proficiency bonus and spell save DC. Under "details":
|
||||
ability scores, saves, the weapons and spells the character can use (with
|
||||
attack and damage numbers), and special abilities. The name links to the
|
||||
character sheet.
|
||||
- **Monsters:** for the DM, AC, speed, attack and damage, and under "details"
|
||||
ability scores, trait and notes.
|
||||
- **NPCs:** role, attitude and description; for the DM also AC, attack,
|
||||
damage and DM notes.
|
||||
|
||||
Details start open for the DM and closed for players. Weapons and spells
|
||||
above a character's level are left out, because the character cannot use
|
||||
them.
|
||||
|
||||
The DM removes someone with "Remove" on their card. Removing whoever is on
|
||||
turn passes the turn to the next combatant.
|
||||
|
||||
## 6. Hit points
|
||||
|
||||
The DM types an amount and clicks Damage or Heal on a card.
|
||||
|
||||
| Combatant | Where the HP lives |
|
||||
|---|---|
|
||||
| Character | On the **character sheet**. The encounter shows the sheet's HP and changes it directly, so the two always agree. Max HP comes from the sheet. |
|
||||
| Monster | In the encounter, per copy. Starts at the monster's max. |
|
||||
| NPC | In the encounter. An NPC with no HP set has no health bar. |
|
||||
|
||||
- HP always stays between 0 and max.
|
||||
- At 0 HP a combatant is marked **Down** and dimmed. It keeps its place in
|
||||
the order; nothing is removed automatically.
|
||||
- A character's temporary HP is shown beside its HP but is not used up
|
||||
automatically.
|
||||
|
||||
## 7. Initiative, turns and rounds
|
||||
|
||||
Battles only.
|
||||
|
||||
- The DM types each combatant's **initiative** when adding them, and can
|
||||
change it on the card. The app does not roll it. The list is ordered
|
||||
highest first; ties keep the order they were added in.
|
||||
- **Begin Battle** puts the first combatant on turn. Their card is
|
||||
highlighted and the header names them.
|
||||
- **Next Turn** passes the turn to the next in the order. After the last
|
||||
combatant it returns to the top and the **round** goes up by one.
|
||||
- **Next Round** skips straight to the top of the next round.
|
||||
|
||||
## 8. Conditions
|
||||
|
||||
The DM adds a condition to any card from the "+ Condition" list, and removes
|
||||
one by clicking its ✕. Everyone sees them.
|
||||
|
||||
The list: Blinded, Charmed, Deafened, Frightened, Grappled, Incapacitated,
|
||||
Invisible, Paralyzed, Petrified, Poisoned, Prone, Restrained, Stunned,
|
||||
Unconscious, Concentrating.
|
||||
|
||||
Conditions are labels to remind the table. They do not change any numbers,
|
||||
and they do not expire on their own.
|
||||
|
||||
## 9. Rewards
|
||||
|
||||
The DM lines up loot in the Rewards panel, on any encounter at any time.
|
||||
|
||||
| Reward | What the DM sets |
|
||||
|---|---|
|
||||
| Gold | An amount |
|
||||
| Weapon | A weapon from the pool, a level (not below its starting level), a quantity |
|
||||
| Item | An item from the pool, a level, a quantity |
|
||||
|
||||
Each can carry a short note ("Goblin chief's purse").
|
||||
|
||||
**A reward does nothing until it is awarded**, and it can be awarded once.
|
||||
|
||||
| Button | What happens |
|
||||
|---|---|
|
||||
| Award (pick a character) | The whole reward goes to that character. It can be any finished character in the campaign, not only those in the encounter. |
|
||||
| Split (gold only) | Shared evenly between the characters in the encounter. Any remainder goes one gold each, highest initiative first: 101 gold between two is 51 and 50. |
|
||||
|
||||
- **Gold** is added to the character's balance with a money-log entry reading
|
||||
"Reward: <encounter name>".
|
||||
- A **weapon or item** is added to what the character holds, at the reward's
|
||||
level, stacking with any they already have. If the character is below that
|
||||
level they hold it but cannot use it yet.
|
||||
- Removing a reward from the list does **not** take back what was awarded.
|
||||
- Spells cannot be rewards; the DM grants those on the character sheet.
|
||||
|
||||
Until a reward is awarded only the DM can see it. Afterwards players see what
|
||||
it was and who received it.
|
||||
|
||||
## 10. What each side sees
|
||||
|
||||
| | DM | Players |
|
||||
|---|---|---|
|
||||
| Scene description | Yes | Yes |
|
||||
| DM notes | Yes | Never |
|
||||
| Characters | Full card | Full card |
|
||||
| Monsters | Full stat block | Name, HP, conditions |
|
||||
| NPCs | Everything | Name, role, attitude, description, HP bar |
|
||||
| Rewards | All | Only awarded ones |
|
||||
| Controls (add, damage, turns, rewards) | Yes | None |
|
||||
|
||||
The server only sends a player what the right-hand column lists, so hidden
|
||||
information cannot be dug out of the page.
|
||||
|
||||
## 11. Permissions
|
||||
|
||||
| Action | DM | Players |
|
||||
|---|---|---|
|
||||
| Create an encounter | Yes | No |
|
||||
| Open an encounter | Yes | Yes |
|
||||
| Change mode, status, scene or DM notes | Yes | No |
|
||||
| Add or remove anyone | Yes | No |
|
||||
| Change HP, initiative or conditions | Yes | No |
|
||||
| Advance turns and rounds | Yes | No |
|
||||
| Add, remove or award rewards | Yes | No |
|
||||
|
||||
People outside the campaign cannot open its encounters.
|
||||
|
||||
## 12. What is not modelled
|
||||
|
||||
- Rolling initiative, attacks, damage or saves (use the dice roller, bottom
|
||||
left of every page)
|
||||
- Applying an attack's damage automatically
|
||||
- Death saves and stabilising
|
||||
- Conditions with durations or mechanical effects
|
||||
- Maps, positions, distances and areas of effect
|
||||
- Experience points and encounter difficulty
|
||||
- Spells as rewards
|
||||
- Deleting or renaming an encounter from the screen
|
||||
- A log of what happened during the encounter
|
||||
+151
@@ -0,0 +1,151 @@
|
||||
# Items and Inventory
|
||||
|
||||
How items work in this app: the campaign's item pool, what a character
|
||||
carries, item levels, and how items are handed out.
|
||||
|
||||
This describes the code as it stands. Related: [WEAPONS.md](WEAPONS.md) (items
|
||||
level up the same way weapons do), [SPELLS.md](SPELLS.md),
|
||||
[CHARACTERS.md](CHARACTERS.md) (money is covered there, in section 12).
|
||||
|
||||
## Contents
|
||||
|
||||
1. [The basics](#1-the-basics)
|
||||
2. [The item pool](#2-the-item-pool)
|
||||
3. [A character's inventory](#3-a-characters-inventory)
|
||||
4. [Item levels](#4-item-levels)
|
||||
5. [Dice on items](#5-dice-on-items)
|
||||
6. [Starting items](#6-starting-items)
|
||||
7. [Items as rewards](#7-items-as-rewards)
|
||||
8. [Permissions](#8-permissions)
|
||||
9. [What is not modelled](#9-what-is-not-modelled)
|
||||
|
||||
---
|
||||
|
||||
## 1. The basics
|
||||
|
||||
- Every campaign has its own **item pool**: rope, potions, keys, quest items,
|
||||
anything that is not a weapon or a spell.
|
||||
- A character's **inventory** is the items it holds from that pool. Players
|
||||
cannot type in items of their own.
|
||||
- The DM creates items and hands them out. Players can only tick Equipped.
|
||||
- Items are **descriptive**. Holding or equipping one never changes a number
|
||||
on the sheet.
|
||||
|
||||
## 2. The item pool
|
||||
|
||||
The pool is the "Items Pool" card on the campaign page (DM only).
|
||||
|
||||
| Field | What it is |
|
||||
|---|---|
|
||||
| Name | Free text, up to 120 characters |
|
||||
| Description | Optional. Shown under the item in a character's inventory |
|
||||
| Base dice | Optional dice such as `2d4+2`, for items that deal damage or heal (section 5) |
|
||||
| Starts at level | 1 to 9. The lowest level this item can be (section 4) |
|
||||
| Growth | Standard, Powerful or Legendary. Only matters if the item has dice |
|
||||
| Starting option | Whether a brand-new character may pick it in the builder (section 6) |
|
||||
|
||||
- **Adding:** the "+ Add Item" form. There is no built-in library of items.
|
||||
- **Changing:** starting level, growth (when the item has dice) and the
|
||||
starting-option tick box can be changed in the table. Name, description and
|
||||
dice cannot be changed on screen once created (the API accepts it); remove
|
||||
and re-add instead.
|
||||
- **Removing:** the ✕ button. This takes the item out of **every inventory**
|
||||
and off every encounter's reward list. There is no undo.
|
||||
|
||||
## 3. A character's inventory
|
||||
|
||||
On a character's sheet, the DM picks an item from the pool and clicks Give.
|
||||
|
||||
| Each held item has | Who changes it |
|
||||
|---|---|
|
||||
| Quantity | The DM, with the − and + buttons |
|
||||
| Level | The DM, with the level picker |
|
||||
| Equipped | The owning player or the DM |
|
||||
|
||||
- Giving an item the character already holds **adds to the stack**. A
|
||||
character holds one stack per item, and the whole stack shares one level.
|
||||
- Quantity cannot go below 1; to take the last one away the DM uses ✕.
|
||||
- **Using up** an item (drinking a potion) is not automatic: the DM lowers the
|
||||
quantity or removes it.
|
||||
- **Equipped** is a label. It does not change Armor Class or anything else;
|
||||
armor is represented by the single "armor bonus" number on the sheet.
|
||||
|
||||
**Passing items on.** A character's owner (or the DM) can give some or all of
|
||||
a held stack to another character in the campaign from the "Give to Another
|
||||
Character" card on the sheet. The items leave the giver and arrive with the
|
||||
recipient at the giver's level, unequipped. If the recipient already holds
|
||||
that item, their stack grows and keeps its own level. Gold is given the same
|
||||
way, and both characters' money logs record it.
|
||||
|
||||
## 4. Item levels
|
||||
|
||||
Items use the same level system as weapons (a house rule of this app):
|
||||
|
||||
- Each held stack has a **level from 1 to 9**, never below the pool entry's
|
||||
starting level.
|
||||
- A character must be **at least the item's level** to use it. A higher-level
|
||||
item is still held, but shows "Requires level N" and cannot be equipped.
|
||||
- Only the DM changes an item's level.
|
||||
- If the DM levels an item past its holder, or lowers the character's level,
|
||||
it is unequipped automatically.
|
||||
|
||||
For an item with no dice, the level is purely a requirement: a level 3 amulet
|
||||
is one a character cannot use until level 3.
|
||||
|
||||
## 5. Dice on items
|
||||
|
||||
An item can carry optional dice: a healing potion's `2d4+2`, a firebomb's
|
||||
`3d6`. The app does not know whether they heal or harm; the DM applies them.
|
||||
|
||||
The dice grow with the item's level exactly as a weapon's do, climbing the
|
||||
same ladder (1d4 → 1d6 → 1d8 → 1d10 → 1d12 → 2d6 → …) by one, two or three
|
||||
rungs per level depending on Growth. The full ladder is in
|
||||
[WEAPONS.md, section 6](WEAPONS.md#6-how-damage-grows).
|
||||
|
||||
| Healing Potion, `2d4+2`, Standard growth | Dice shown |
|
||||
|---|---|
|
||||
| Level 1 | 2d4+2 (as typed) |
|
||||
| Level 2 | 1d6+1d8 |
|
||||
| Level 3 | 2d8 |
|
||||
|
||||
The dice are shown beside the item in the inventory. Nothing is rolled or
|
||||
applied automatically; use the dice roller.
|
||||
|
||||
## 6. Starting items
|
||||
|
||||
In the builder's equipment step a new character can pick items that are:
|
||||
|
||||
- ticked as a **starting option** in the pool, and
|
||||
- **starting level 1**.
|
||||
|
||||
Starting items and starting weapons share the campaign's "starting items"
|
||||
allowance. Each arrives at level 1, quantity 1, unequipped.
|
||||
|
||||
## 7. Items as rewards
|
||||
|
||||
On an encounter the DM can line up an item as a reward, at a chosen level and
|
||||
quantity, and later award it to a character. Awarding adds it to the
|
||||
character's inventory, stacking with any they already hold. See
|
||||
[ENCOUNTERS.md](ENCOUNTERS.md).
|
||||
|
||||
## 8. Permissions
|
||||
|
||||
| Action | DM | Owning player | Other players |
|
||||
|---|---|---|---|
|
||||
| See the item pool | Yes | Yes | Yes |
|
||||
| Add, change or remove pool items | Yes | No | No |
|
||||
| Give an item from the pool, or take one away | Yes | No | No |
|
||||
| Give a held item to another character | Yes | Yes | No |
|
||||
| Change quantity or level | Yes | No | No |
|
||||
| Equip or unequip | Yes | Yes, if the character can use it | No |
|
||||
| See a character's inventory | Yes | Yes | Yes |
|
||||
|
||||
## 9. What is not modelled
|
||||
|
||||
- Any effect of an item on stats (AC, speed, abilities)
|
||||
- Armor and shields as items
|
||||
- Using up items automatically, charges, and attunement
|
||||
- Weight, carrying capacity and containers
|
||||
- Prices, buying and selling (record the gold change in the money log)
|
||||
- Swaps as a single step (each side gives separately), and asking the
|
||||
recipient to accept
|
||||
@@ -0,0 +1,170 @@
|
||||
# Monsters
|
||||
|
||||
How monsters work in this app: the campaign's monster list, the built-in
|
||||
bestiary, and how monsters behave in an encounter.
|
||||
|
||||
This describes the code as it stands. The built-in list is
|
||||
`backend/src/game/data/monstersLibrary.js`. Related:
|
||||
[ENCOUNTERS.md](ENCOUNTERS.md), [NPCS.md](NPCS.md).
|
||||
|
||||
## Contents
|
||||
|
||||
1. [The basics](#1-the-basics)
|
||||
2. [What a monster holds](#2-what-a-monster-holds)
|
||||
3. [Managing monsters](#3-managing-monsters)
|
||||
4. [The built-in bestiary](#4-the-built-in-bestiary)
|
||||
5. [Monsters in encounters](#5-monsters-in-encounters)
|
||||
6. [What players see](#6-what-players-see)
|
||||
7. [Permissions](#7-permissions)
|
||||
8. [What is not modelled](#8-what-is-not-modelled)
|
||||
|
||||
---
|
||||
|
||||
## 1. The basics
|
||||
|
||||
- Every campaign has its own **monster list**. Only the DM can see or change
|
||||
it.
|
||||
- A monster in the list is a **template**. Each time it is added to an
|
||||
encounter it becomes a separate combatant with its own hit points.
|
||||
- Stat blocks are the DM's. Players see a monster only as a name and a health
|
||||
bar in an encounter.
|
||||
|
||||
## 2. What a monster holds
|
||||
|
||||
| Field | What it is |
|
||||
|---|---|
|
||||
| Name | Up to 80 characters |
|
||||
| AC | Armor Class |
|
||||
| Max HP | Hit points each copy starts an encounter with |
|
||||
| Speed | In feet. 30 unless set otherwise |
|
||||
| Ability scores | STR, DEX, CON, INT, WIS, CHA. 10 unless set otherwise |
|
||||
| Attack bonus | Added to the monster's attack roll |
|
||||
| Damage | Dice for its main attack, e.g. `1d6+2` |
|
||||
| Challenge rating | A rough danger rating, e.g. `1/4`, `2` |
|
||||
| Special trait | A short note such as "Pack Tactics" |
|
||||
| Notes | Anything else: what it attacks with, how it behaves |
|
||||
|
||||
None of these are calculated or used in formulas. They are reference numbers
|
||||
shown to the DM during a fight. A monster's ability modifiers are worked out
|
||||
from its scores for display only.
|
||||
|
||||
## 3. Managing monsters
|
||||
|
||||
The list is the "Monsters" card on the campaign page (DM only).
|
||||
|
||||
- **Adding by hand:** "+ Add Monster" asks for name, AC, max HP, attack bonus
|
||||
and damage. Speed is set to 30 and every ability score to 10; challenge
|
||||
rating, trait and notes are left empty.
|
||||
- **Adding from the bestiary:** "📚 From Library" copies a complete stat block.
|
||||
- **Changing:** there is no edit form (the API accepts changes, but no screen
|
||||
offers them). Remove and re-add, or add from the library.
|
||||
- **Removing:** the ✕ button, immediately, with no confirmation. Copies
|
||||
already in encounters stay there with their name and HP, but lose their
|
||||
stat block.
|
||||
|
||||
## 4. The built-in bestiary
|
||||
|
||||
38 monsters, from harmless to dangerous. Each library row shows challenge
|
||||
rating, AC, HP, attack and damage, plus its trait and notes, before you add
|
||||
it. Adding copies the monster into your campaign; the copy is yours, and later
|
||||
changes to the library do not affect it.
|
||||
|
||||
The full bestiary, weakest first. "Attack" is the bonus added to the
|
||||
monster's attack roll.
|
||||
|
||||
This list is written from the app's own data by `npm run docs:lists` (in `/backend`). Re-run it after changing the data; do not edit the list by hand.
|
||||
|
||||
<!-- BEGIN GENERATED: monster-library -->
|
||||
| Monster | CR | AC | HP | Speed | Attack | Damage | STR / DEX / CON / INT / WIS / CHA | Trait | Notes |
|
||||
|---|---|---|---|---|---|---|---|---|---|
|
||||
| Commoner | 0 | 10 | 4 | 30 | +2 | 1d4 | 10 / 10 / 10 / 10 / 10 / 10 | — | An ordinary villager, armed with a club. |
|
||||
| Giant Rat | 1/8 | 12 | 7 | 30 | +4 | 1d4+2 | 7 / 15 / 11 / 2 / 10 / 4 | Pack Tactics | Bite, piercing damage. |
|
||||
| Kobold | 1/8 | 12 | 5 | 30 | +4 | 1d4+2 | 7 / 15 / 9 / 8 / 7 / 8 | Pack Tactics, Sunlight Sensitivity | Dagger, piercing damage. |
|
||||
| Bandit | 1/8 | 12 | 11 | 30 | +3 | 1d6+1 | 11 / 12 / 12 / 10 / 10 / 10 | — | Scimitar, slashing damage. |
|
||||
| Cultist | 1/8 | 12 | 9 | 30 | +3 | 1d6+1 | 11 / 12 / 10 / 10 / 11 / 10 | Dark Devotion | Scimitar, slashing damage. |
|
||||
| Stirge | 1/8 | 12 | 2 | 10 | +5 | 1d4 | 4 / 16 / 11 / 2 / 8 / 6 | Blood Drain | Proboscis; attaches and drains hp on a hit. |
|
||||
| Goblin | 1/4 | 15 | 7 | 30 | +4 | 1d6+2 | 8 / 14 / 10 / 10 / 8 / 8 | Nimble Escape | Scimitar, slashing damage. |
|
||||
| Skeleton | 1/4 | 13 | 13 | 30 | +4 | 1d6+2 | 10 / 14 / 15 / 6 / 8 / 5 | Undead — vulnerable to bludgeoning | Shortsword, piercing damage. |
|
||||
| Zombie | 1/4 | 8 | 22 | 20 | +3 | 1d6+1 | 13 / 6 / 16 / 3 / 6 / 5 | Undead Fortitude | Slam, bludgeoning damage. |
|
||||
| Wolf | 1/4 | 13 | 11 | 40 | +4 | 2d4+2 | 12 / 15 / 12 / 3 / 12 / 6 | Pack Tactics | Bite; can knock prone on a hit. |
|
||||
| Giant Wolf Spider | 1/4 | 13 | 11 | 40 | +3 | 1d6+1 | 12 / 16 / 13 / 3 / 12 / 4 | Poison bite | Spider climb; bite deals poison damage. |
|
||||
| Scout | 1/2 | 13 | 16 | 30 | +4 | 1d6+2 | 11 / 14 / 12 / 11 / 13 / 11 | Keen Hearing and Sight | Shortsword or longbow. |
|
||||
| Orc | 1/2 | 13 | 15 | 30 | +5 | 1d12+3 | 16 / 12 / 16 / 7 / 11 / 10 | Aggressive | Greataxe, slashing damage. |
|
||||
| Hobgoblin | 1/2 | 18 | 11 | 30 | +3 | 1d8+1 | 13 / 12 / 12 / 10 / 10 / 9 | Martial Advantage | Longsword, slashing damage. |
|
||||
| Thug | 1/2 | 11 | 32 | 30 | +4 | 1d6+2 | 15 / 11 / 14 / 10 / 10 / 11 | Pack Tactics | Mace, bludgeoning damage. |
|
||||
| Gnoll | 1/2 | 15 | 22 | 30 | +3 | 1d8+1 | 14 / 12 / 11 / 6 / 10 / 7 | Rampage | Spear, piercing damage. |
|
||||
| Lizardfolk | 1/2 | 15 | 22 | 30 | +3 | 1d6+1 | 15 / 10 / 13 / 7 / 12 / 7 | Hold Breath | Club or spear, piercing damage. |
|
||||
| Black Bear | 1/2 | 11 | 19 | 40 | +3 | 1d6+2 | 15 / 10 / 14 / 2 / 12 / 7 | Keen Smell | Bite and claw attacks. |
|
||||
| Giant Spider | 1 | 14 | 26 | 30 | +5 | 1d8+3 | 14 / 16 / 12 / 2 / 11 / 4 | Web, poison bite | Bite deals piercing plus poison damage. |
|
||||
| Ghoul | 1 | 12 | 22 | 30 | +2 | 2d6+2 | 13 / 15 / 10 / 7 / 10 / 6 | Claws paralyze on a hit | Undead. |
|
||||
| Dire Wolf | 1 | 14 | 37 | 50 | +5 | 2d6+3 | 17 / 15 / 15 / 3 / 12 / 7 | Pack Tactics | Bite; can knock prone on a hit. |
|
||||
| Brown Bear | 1 | 11 | 34 | 40 | +5 | 1d8+5 | 19 / 10 / 16 / 2 / 13 / 7 | Keen Smell | Multiattack: bite and claws. |
|
||||
| Harpy | 1 | 11 | 38 | 20 | +4 | 2d4+2 | 12 / 13 / 12 / 7 / 10 / 13 | Luring Song | Flying speed 40 ft; claws deal slashing damage. |
|
||||
| Ochre Jelly | 2 | 8 | 45 | 10 | +5 | 2d6+3 | 15 / 6 / 14 / 2 / 6 / 1 | Amorphous, splits when damaged by slashing | Pseudopod, bludgeoning plus acid damage. |
|
||||
| Ogre | 2 | 11 | 59 | 40 | +6 | 2d8+4 | 19 / 8 / 16 / 5 / 7 / 7 | — | Greatclub, bludgeoning damage. |
|
||||
| Griffon | 2 | 12 | 59 | 30 | +6 | 2d6+4 | 18 / 15 / 16 / 2 / 13 / 8 | Keen Sight | Flying speed 80 ft; multiattack beak and claws. |
|
||||
| Ankheg | 2 | 14 | 39 | 30 | +6 | 2d6+4 | 17 / 11 / 13 / 1 / 13 / 6 | Burrow speed 10 ft; can spit acid | Bite, piercing plus acid damage. |
|
||||
| Manticore | 3 | 14 | 68 | 30 | +5 | 1d8+3 | 17 / 16 / 17 / 7 / 12 / 8 | Tail spikes (ranged) | Flying speed 50 ft; multiattack claws or tail spikes. |
|
||||
| Basilisk | 3 | 15 | 52 | 20 | +5 | 2d6+3 | 16 / 8 / 15 / 2 / 8 / 7 | Petrifying Gaze | Bite, piercing damage. |
|
||||
| Owlbear | 3 | 13 | 59 | 40 | +7 | 1d10+5 | 20 / 12 / 17 / 3 / 12 / 7 | Keen Sight and Smell | Multiattack: beak and claws. |
|
||||
| Wight | 3 | 14 | 45 | 30 | +4 | 1d8+2 | 15 / 14 / 16 / 10 / 13 / 15 | Life Drain, Sunlight Sensitivity | Longsword or life-draining touch. |
|
||||
| Werewolf | 3 | 12 | 58 | 30 | +4 | 1d8+2 | 15 / 13 / 14 / 10 / 11 / 10 | Shapechanger, regeneration | Bite (hybrid/wolf form) or multiattack claws + bite. |
|
||||
| Doppelganger | 3 | 14 | 52 | 30 | +4 | 2d4+2 | 11 / 18 / 14 / 11 / 12 / 14 | Shapechanger, Ambusher | Multiattack slam. |
|
||||
| Displacer Beast | 3 | 13 | 85 | 40 | +7 | 2d6+4 | 18 / 15 / 16 / 6 / 12 / 8 | Displacement (attacks vs. it have disadvantage) | Multiattack: two tentacles. |
|
||||
| Ettin | 4 | 12 | 85 | 40 | +7 | 2d8+4 | 21 / 8 / 17 / 6 / 10 / 8 | Two heads — advantage on Perception, can’t be surprised easily | Multiattack: battleaxe and morningstar. |
|
||||
| Hill Giant | 5 | 13 | 105 | 40 | +8 | 3d8+5 | 21 / 8 / 19 / 5 / 9 / 6 | — | Greatclub, bludgeoning damage. |
|
||||
| Troll | 5 | 15 | 84 | 30 | +7 | 2d6+4 | 18 / 13 / 20 / 7 / 9 / 7 | Regeneration (vulnerable to fire/acid) | Multiattack: bite and two claws. |
|
||||
| Wraith | 5 | 13 | 67 | 0 | +6 | 4d8+4 | 6 / 16 / 16 / 12 / 14 / 15 | Incorporeal, life drain, flying 60 ft | Undead; life drain touch attack. |
|
||||
<!-- END GENERATED: monster-library -->
|
||||
|
||||
## 5. Monsters in encounters
|
||||
|
||||
On an encounter page, the DM chooses "Monster" in the "Add to the scene"
|
||||
panel, picks one, and types its initiative.
|
||||
|
||||
- The same monster can be added **any number of times**. Each copy has its
|
||||
own HP and conditions. Copies share the monster's name; the screen has no
|
||||
way to rename one (the API allows it).
|
||||
- A copy starts at the monster's max HP. Its HP stays between 0 and its max.
|
||||
- At 0 HP a copy is marked **Down** and dimmed, but keeps its place in the
|
||||
initiative order until the DM removes it.
|
||||
- HP belongs to the encounter: a monster starts fresh in the next one.
|
||||
|
||||
The DM's card for a monster shows AC, speed, attack bonus and damage at a
|
||||
glance, and under "details" its six ability scores with modifiers, its trait
|
||||
and its notes.
|
||||
|
||||
## 6. What players see
|
||||
|
||||
| Players see | Players never see |
|
||||
|---|---|
|
||||
| The monster's name | AC, speed, attack bonus, damage |
|
||||
| Its health bar and current/max HP | Ability scores, challenge rating |
|
||||
| Its conditions | Trait and notes |
|
||||
| Its place in the initiative order | The campaign's monster list |
|
||||
|
||||
This is enforced by the server: stat blocks are never sent to a player's
|
||||
browser.
|
||||
|
||||
Players do see a monster's exact HP numbers. If you would rather keep those
|
||||
secret, that is not currently possible.
|
||||
|
||||
## 7. Permissions
|
||||
|
||||
| Action | DM | Players |
|
||||
|---|---|---|
|
||||
| See the monster list and stat blocks | Yes | No |
|
||||
| Browse the built-in bestiary | Yes | Yes (it is standard reference material) |
|
||||
| Add or remove monsters | Yes | No |
|
||||
| Add a monster to an encounter | Yes | No |
|
||||
| Change a monster's HP, initiative or conditions | Yes | No |
|
||||
| See a monster in an encounter | Everything | Name, HP, conditions |
|
||||
|
||||
## 8. What is not modelled
|
||||
|
||||
- Multiple attacks, spells, legendary actions and resistances (use Notes)
|
||||
- Rolling a monster's attacks or damage (use the dice roller)
|
||||
- Saving throw bonuses and skills
|
||||
- Experience points for defeating monsters
|
||||
- Encounter difficulty calculated from challenge ratings
|
||||
- Monster hit dice, and rolling HP rather than using the fixed value
|
||||
+123
@@ -0,0 +1,123 @@
|
||||
# NPCs
|
||||
|
||||
How non-player characters work in this app: what the DM records about them,
|
||||
how they are brought into a scene, and what players can and cannot see.
|
||||
|
||||
This describes the code as it stands. Related: [ENCOUNTERS.md](ENCOUNTERS.md),
|
||||
[MONSTERS.md](MONSTERS.md).
|
||||
|
||||
## Contents
|
||||
|
||||
1. [The basics](#1-the-basics)
|
||||
2. [What an NPC holds](#2-what-an-npc-holds)
|
||||
3. [Managing NPCs](#3-managing-npcs)
|
||||
4. [NPCs in encounters](#4-npcs-in-encounters)
|
||||
5. [What players see](#5-what-players-see)
|
||||
6. [NPC or monster?](#6-npc-or-monster)
|
||||
7. [Permissions](#7-permissions)
|
||||
8. [What is not modelled](#8-what-is-not-modelled)
|
||||
|
||||
---
|
||||
|
||||
## 1. The basics
|
||||
|
||||
- An NPC is a person the DM plays: an innkeeper, a quest-giver, a rival, a
|
||||
villain.
|
||||
- Every campaign has its own **NPC list**. Only the DM can see or change it.
|
||||
- An NPC does nothing by sitting in the list. Players meet one when the DM
|
||||
**adds it to an encounter**.
|
||||
- NPCs are mainly for talking to. Combat stats are optional.
|
||||
|
||||
## 2. What an NPC holds
|
||||
|
||||
| Field | What it is | Who sees it |
|
||||
|---|---|---|
|
||||
| Name | Up to 80 characters | Everyone, once in an encounter |
|
||||
| Role | A few words: "Innkeeper", "Captain of the Watch" | Everyone |
|
||||
| Attitude | Friendly, Neutral or Hostile toward the party | Everyone |
|
||||
| Description | What the party can see and knows | Everyone |
|
||||
| DM notes | Secrets, motives, what they are hiding | **DM only** |
|
||||
| AC | Optional | DM only |
|
||||
| HP | Optional. Without it the NPC has no health bar | See section 5 |
|
||||
| Attack bonus | Optional | DM only |
|
||||
| Damage | Optional dice, e.g. `1d6` | DM only |
|
||||
|
||||
A new NPC is Neutral unless you choose otherwise.
|
||||
|
||||
## 3. Managing NPCs
|
||||
|
||||
The NPC list is the "NPCs" card on the campaign page (DM only).
|
||||
|
||||
- **Adding:** "+ Add NPC" opens a form with every field above. Only the name
|
||||
is required.
|
||||
- **Changing:** there is no edit form. To change an NPC, remove it and add it
|
||||
again (the API accepts changes, but no screen offers them).
|
||||
- **Removing:** the ✕ button, after a confirmation. This also **removes the
|
||||
NPC from every encounter** it was in.
|
||||
|
||||
## 4. NPCs in encounters
|
||||
|
||||
On an encounter page, the DM chooses "NPC" in the "Add to the scene" panel
|
||||
and picks one. Each NPC can be in an encounter once.
|
||||
|
||||
- In an **NPC quest** encounter, NPCs are listed first under "People you
|
||||
meet", ahead of the party and any creatures.
|
||||
- In a **battle**, an NPC takes its place in the initiative order like anyone
|
||||
else, using the initiative the DM types in.
|
||||
- An NPC with HP gets a health bar, and the DM can damage and heal it. This
|
||||
HP belongs to the encounter: the same NPC starts at full HP in the next one.
|
||||
- An NPC with no HP has no health bar and cannot be marked Down.
|
||||
- Conditions (Prone, Charmed…) can be put on an NPC like any combatant.
|
||||
|
||||
An NPC's card shows its attitude as a coloured badge, its role under its
|
||||
name, and its description in full. The DM's card also shows AC, attack,
|
||||
damage and the DM notes.
|
||||
|
||||
## 5. What players see
|
||||
|
||||
Players only ever see an NPC through an encounter it is in:
|
||||
|
||||
| Players see | Players never see |
|
||||
|---|---|
|
||||
| Name, role, attitude, description | DM notes |
|
||||
| Health bar and conditions, if the NPC has HP | AC, attack bonus, damage |
|
||||
|
||||
This is enforced by the server, not just hidden on screen: the hidden fields
|
||||
are never sent to a player's browser.
|
||||
|
||||
Changing an NPC's attitude changes what players see straight away, so
|
||||
flipping a "Friendly" NPC to "Hostile" is itself a reveal.
|
||||
|
||||
## 6. NPC or monster?
|
||||
|
||||
| | NPC | Monster |
|
||||
|---|---|---|
|
||||
| Meant for | People with names and motives | Things to fight |
|
||||
| Has a description players can read | Yes | No |
|
||||
| Has an attitude | Yes | No |
|
||||
| Has DM-only notes | Yes | Yes |
|
||||
| Combat stats | Optional, basic | Full stat block |
|
||||
| Can be in an encounter more than once | No | Yes (a pack of goblins) |
|
||||
| Built-in library | No | Yes |
|
||||
|
||||
A named villain the party will both talk to and fight works well as an NPC
|
||||
with HP, AC, attack and damage filled in.
|
||||
|
||||
## 7. Permissions
|
||||
|
||||
| Action | DM | Players |
|
||||
|---|---|---|
|
||||
| See the NPC list | Yes | No |
|
||||
| Add or remove NPCs | Yes | No |
|
||||
| Add an NPC to an encounter | Yes | No |
|
||||
| Change an NPC's HP or conditions in an encounter | Yes | No |
|
||||
| See an NPC in an encounter | Everything | Name, role, attitude, description, health bar |
|
||||
|
||||
## 8. What is not modelled
|
||||
|
||||
- Ability scores, saves, skills and spells for NPCs
|
||||
- NPC inventory, gold and shops
|
||||
- Where an NPC is (they are not tied to locations)
|
||||
- Relationships, reputation and attitude toward individual characters
|
||||
- A record of which NPCs the party has met, outside of encounters
|
||||
- Portraits
|
||||
+387
@@ -0,0 +1,387 @@
|
||||
# Spells
|
||||
|
||||
How spells work in this app: the campaign's spell list, how a character comes
|
||||
to know a spell, who can use which spells, and what the spellcasting numbers
|
||||
mean.
|
||||
|
||||
This describes the code as it stands. The built-in list is
|
||||
`backend/src/game/data/spellsLibrary.js`. Related: [WEAPONS.md](WEAPONS.md),
|
||||
[ITEMS.md](ITEMS.md), [CHARACTERS.md](CHARACTERS.md).
|
||||
|
||||
## Contents
|
||||
|
||||
1. [The basics](#1-the-basics)
|
||||
2. [The spell list](#2-the-spell-list)
|
||||
3. [The built-in library](#3-the-built-in-library)
|
||||
4. [Granting spells to characters](#4-granting-spells-to-characters)
|
||||
5. [Spell level and who can use it](#5-spell-level-and-who-can-use-it)
|
||||
6. [Damage](#6-damage)
|
||||
7. [Spellcasting numbers](#7-spellcasting-numbers)
|
||||
8. [Starting spells](#8-starting-spells)
|
||||
9. [Permissions](#9-permissions)
|
||||
10. [What is not modelled](#10-what-is-not-modelled)
|
||||
11. [The complete spell library](#11-the-complete-spell-library)
|
||||
|
||||
---
|
||||
|
||||
## 1. The basics
|
||||
|
||||
- Every campaign has its own **spell list**. A spell exists in one campaign
|
||||
only.
|
||||
- A character **knows** spells from that list, each with a Prepared tick box.
|
||||
- The DM runs the list and decides who learns what. Players can only prepare
|
||||
and unprepare the spells they know.
|
||||
- Unlike weapons and items, a spell has **no level of its own to raise**. Its
|
||||
level is fixed, and so is its damage.
|
||||
|
||||
## 2. The spell list
|
||||
|
||||
The list is the "Spell List" card on the campaign page (DM only).
|
||||
|
||||
| Field | What it is |
|
||||
|---|---|
|
||||
| Name | Free text, up to 80 characters |
|
||||
| Level | Cantrip, or level 1 to 9. Also the character level needed to use it (section 5) |
|
||||
| School | Free text: Evocation, Illusion… |
|
||||
| What it does | One sentence. Shown wherever the spell is shown |
|
||||
| Damage | Picked from a list, or "No damage". Fixed; it does not grow |
|
||||
| Starting option | Whether a brand-new character may pick it in the builder (section 8) |
|
||||
| Casting time, range, duration | Stored for library spells but not shown on any screen |
|
||||
|
||||
A cantrip is a spell of level 0. The app always calls it a **cantrip**, never
|
||||
"level 0" or "level 1".
|
||||
|
||||
- **Adding:** by hand with the "+ Add Spell" form (name, level, school,
|
||||
damage and what it does), or from the library.
|
||||
- **Changing:** damage (the drop-down in the table) and the starting-option
|
||||
tick box. Name, level, school and description cannot be changed on screen
|
||||
once created (the API accepts it); remove and re-add instead.
|
||||
- **Damage choices:** the drop-down offers "No damage", then 1 to 6, 8 or 10
|
||||
dice of d4, d6, d8, d10 or d12 (1d4 up to 10d12), plus the three unusual
|
||||
values the library uses (`3d4+3`, `2d8+4d6`, `20`).
|
||||
- **Removing:** the ✕ button. Every character who knows the spell forgets it.
|
||||
There is no undo.
|
||||
|
||||
## 3. The built-in library
|
||||
|
||||
"📚 From Library" offers 131 standard spells to copy into the list:
|
||||
|
||||
| Level | Spells |
|
||||
|---|---|
|
||||
| Cantrips | 26 |
|
||||
| 1 | 30 |
|
||||
| 2 | 26 |
|
||||
| 3 | 21 |
|
||||
| 4 | 13 |
|
||||
| 5 | 15 |
|
||||
|
||||
Before you add one, each row shows:
|
||||
|
||||
- whether it is a **cantrip** or its **level**, and who can use it;
|
||||
- its **default damage**, or "no damage";
|
||||
- its school;
|
||||
- **what it does**, in a sentence.
|
||||
|
||||
Every library spell is listed in full in
|
||||
[section 11](#11-the-complete-spell-library).
|
||||
|
||||
35 of the library spells deal damage and come with a default, taken from the
|
||||
standard rules at the spell's own level. For example:
|
||||
|
||||
| Spell | Level | Default damage |
|
||||
|---|---|---|
|
||||
| Fire Bolt | Cantrip | 1d10 |
|
||||
| Sacred Flame | Cantrip | 1d8 |
|
||||
| Magic Missile | 1 | 3d4+3 (all three darts together) |
|
||||
| Burning Hands | 1 | 3d6 |
|
||||
| Scorching Ray | 2 | 2d6 (per ray; there are three) |
|
||||
| Fireball | 3 | 8d6 |
|
||||
| Ice Storm | 4 | 2d8+4d6 |
|
||||
| Cone of Cold | 5 | 8d8 |
|
||||
|
||||
Spells that heal, protect or control (Cure Wounds, Shield, Hold Person…) have
|
||||
no default. Pick a value from the Damage drop-down after adding if you want
|
||||
one shown.
|
||||
|
||||
A spell added from the library is **not** a starting option until ticked. The
|
||||
library has nothing above level 5; add higher spells by hand.
|
||||
|
||||
## 4. Granting spells to characters
|
||||
|
||||
On a character's sheet, the DM picks a spell from the list and clicks Grant.
|
||||
|
||||
- Any class can be granted any spell. Whether a non-spellcaster should have
|
||||
one is the DM's call.
|
||||
- The DM can remove a known spell with ✕.
|
||||
- The owning player ticks **Prepared**. Prepared is a label: there is no limit
|
||||
on how many spells are prepared.
|
||||
- **Passing a spell on.** A character's owner (or the DM) can give a known
|
||||
spell to another character in the campaign from the "Give to Another
|
||||
Character" card on the sheet. The spell moves: the giver no longer knows
|
||||
it. It cannot be given to someone who already knows it, and a recipient
|
||||
below the spell's level knows it but cannot use it yet.
|
||||
- The "Spells Known" card only appears on a sheet when the campaign's spell
|
||||
list has at least one spell.
|
||||
- Each known spell shows its level (or "Cantrip"), its damage, and what it
|
||||
does.
|
||||
|
||||
## 5. Spell level and who can use it
|
||||
|
||||
This is a house rule of this app. In standard D&D a 3rd-level spell needs a
|
||||
5th-level caster; here the two numbers are the same.
|
||||
|
||||
**A character must be at least the spell's level to use it.** Cantrips are
|
||||
open to everyone.
|
||||
|
||||
| Spell | Who can use it |
|
||||
|---|---|
|
||||
| Cantrip | Any character |
|
||||
| Level 1 | Any character (everyone starts at level 1) |
|
||||
| Level 2 | Characters of level 2 and above |
|
||||
| Level 3 | Characters of level 3 and above |
|
||||
| … | … |
|
||||
| Level 9 | Characters of level 9 and above |
|
||||
|
||||
A spell above the character's level can still be **known**, but it shows
|
||||
"Requires level N", cannot be prepared, and is left out of encounters. If the
|
||||
DM lowers a character's level, spells now out of reach are unprepared
|
||||
automatically.
|
||||
|
||||
## 6. Damage
|
||||
|
||||
A spell's damage is whatever is picked in its Damage drop-down, shown beside
|
||||
the spell on the sheet and in encounters. It does not change with the character's
|
||||
level, and nothing is added to it.
|
||||
|
||||
## 7. Spellcasting numbers
|
||||
|
||||
Shown only for classes with a spellcasting ability:
|
||||
|
||||
| Class | Spellcasting ability |
|
||||
|---|---|
|
||||
| Wizard | Intelligence |
|
||||
| Cleric, Druid, Ranger | Wisdom |
|
||||
| Bard, Paladin, Sorcerer, Warlock | Charisma |
|
||||
| Barbarian, Fighter, Monk, Rogue | None |
|
||||
|
||||
| Number | Formula | Used when |
|
||||
|---|---|---|
|
||||
| Spell save DC | 8 + proficiency bonus + spellcasting ability modifier | A target rolls to resist your spell |
|
||||
| Spell attack bonus | Proficiency bonus + spellcasting ability modifier | You roll to hit with a spell |
|
||||
|
||||
A character without a spellcasting class can still be granted spells, but has
|
||||
no save DC or attack bonus shown.
|
||||
|
||||
## 8. Starting spells
|
||||
|
||||
In the builder's equipment step a new character can pick spells that are:
|
||||
|
||||
- ticked as a **starting option** in the list,
|
||||
- **cantrips or level 1** (a new character is level 1), and
|
||||
- only if the character's **class has a spellcasting ability**.
|
||||
|
||||
The number allowed is the campaign's "starting spells" setting. Starting
|
||||
spells arrive unprepared.
|
||||
|
||||
## 9. Permissions
|
||||
|
||||
| Action | DM | Owning player | Other players |
|
||||
|---|---|---|---|
|
||||
| See the spell list and the library | Yes | Yes | Yes |
|
||||
| Add, change or remove spells in the list | Yes | No | No |
|
||||
| Grant a spell from the list, or remove one | Yes | No | No |
|
||||
| Give a known spell to another character | Yes | Yes | No |
|
||||
| Prepare or unprepare | Yes | Yes, if the character can use it | No |
|
||||
| See a character's spells | Yes | Yes | Yes |
|
||||
|
||||
## 10. What is not modelled
|
||||
|
||||
- Spell slots, and casting a spell at a higher level
|
||||
- Cantrip damage increasing at higher character levels
|
||||
- Limits on how many spells can be prepared or known
|
||||
- Concentration, components, rituals
|
||||
- Class spell lists (any spell can be granted to anyone)
|
||||
- Healing amounts as a separate value (pick them in Damage if you want them
|
||||
shown)
|
||||
- Applying spell damage to a target automatically
|
||||
|
||||
## 11. The complete spell library
|
||||
|
||||
Every spell "📚 From Library" offers, with the damage it arrives with.
|
||||
|
||||
This list is written from the app's own data by `npm run docs:lists` (in `/backend`). Re-run it after changing the data; do not edit the list by hand.
|
||||
|
||||
<!-- BEGIN GENERATED: spell-library -->
|
||||
### Cantrips (26)
|
||||
|
||||
Usable by any character.
|
||||
|
||||
| Spell | School | Damage | What it does |
|
||||
|---|---|---|---|
|
||||
| Acid Splash | Conjuration | 1d6 | Hurl a bubble of acid at one or two creatures within 5 feet of each other. |
|
||||
| Blade Ward | Abjuration | — | Resist bludgeoning, piercing, and slashing damage until your next turn. |
|
||||
| Chill Touch | Necromancy | 1d8 | A ghostly hand deals necrotic damage and prevents healing. |
|
||||
| Dancing Lights | Illusion | — | Create up to four torch-sized lights that you can move. |
|
||||
| Druidcraft | Transmutation | — | A small, harmless nature-flavored effect: predict weather, sprout a seedling, and the like. |
|
||||
| Eldritch Blast | Evocation | 1d10 | A beam of crackling energy strikes one creature for force damage. |
|
||||
| Fire Bolt | Evocation | 1d10 | Hurl a mote of fire that deals fire damage on a hit. |
|
||||
| Friends | Enchantment | — | Advantage on Charisma checks against one creature for the duration. |
|
||||
| Guidance | Divination | — | Add 1d4 to one ability check of your choice. |
|
||||
| Light | Evocation | — | An object sheds bright light in a 20-foot radius. |
|
||||
| Mage Hand | Conjuration | — | A spectral hand manipulates objects, opens doors, and carries small items. |
|
||||
| Mending | Transmutation | — | Repairs a single break or tear in an object. |
|
||||
| Message | Transmutation | — | Whisper a message to a target that only they can hear, with a whispered reply. |
|
||||
| Minor Illusion | Illusion | — | Create a sound or an image of an object for the duration. |
|
||||
| Poison Spray | Conjuration | 1d12 | Project a puff of noxious gas that deals poison damage. |
|
||||
| Prestidigitation | Transmutation | — | A minor magical trick — light a candle, clean an object, chill or warm food, and the like. |
|
||||
| Produce Flame | Conjuration | 1d8 | A flickering flame in your hand sheds light and can be hurled for fire damage. |
|
||||
| Ray of Frost | Evocation | 1d8 | A ray of freezing energy deals cold damage and slows the target. |
|
||||
| Resistance | Abjuration | — | The target adds 1d4 to one saving throw of its choice. |
|
||||
| Sacred Flame | Evocation | 1d8 | Radiant flame descends on a creature that must succeed a Dexterity save or take damage. |
|
||||
| Shillelagh | Transmutation | — | Imbue a club or quarterstaff with magic, using Wisdom for its attack and damage. |
|
||||
| Shocking Grasp | Evocation | 1d8 | Lightning springs from your hand, dealing damage and preventing reactions. |
|
||||
| Spare the Dying | Necromancy | — | A creature you touch that has 0 hit points becomes stable. |
|
||||
| Thorn Whip | Transmutation | 1d6 | A vine-like whip deals damage and drags the target closer. |
|
||||
| True Strike | Divination | — | Gain advantage on your next attack roll against the target. |
|
||||
| Vicious Mockery | Enchantment | 1d4 | A string of insults deals psychic damage and imposes disadvantage on the target’s next attack. |
|
||||
|
||||
### Level 1 (30 spells)
|
||||
|
||||
Needs character level 1.
|
||||
|
||||
| Spell | School | Damage | What it does |
|
||||
|---|---|---|---|
|
||||
| Alarm | Abjuration | — | Set an audible or mental alarm against intruders. |
|
||||
| Animal Friendship | Enchantment | — | Convince a beast that you mean it no harm. |
|
||||
| Bane | Enchantment | — | Up to three creatures subtract 1d4 from attack rolls and saves. |
|
||||
| Bless | Enchantment | — | Up to three creatures add 1d4 to attack rolls and saves. |
|
||||
| Burning Hands | Evocation | 3d6 | A thin sheet of flame sweeps out from your hands. |
|
||||
| Charm Person | Enchantment | — | A humanoid you can see regards you as a friendly acquaintance. |
|
||||
| Color Spray | Illusion | — | A dazzling array of flashing colors can blind weak creatures. |
|
||||
| Command | Enchantment | — | Speak a one-word command a creature must obey. |
|
||||
| Comprehend Languages | Divination | — | Understand any spoken or written language. |
|
||||
| Cure Wounds | Evocation | — | A creature you touch regains hit points. |
|
||||
| Detect Magic | Divination | — | Sense the presence of magic within 30 feet. |
|
||||
| Disguise Self | Illusion | — | Change your appearance, including clothing and gear. |
|
||||
| Entangle | Conjuration | — | Grasping weeds and vines sprout in a 20-foot square. |
|
||||
| Faerie Fire | Evocation | — | Objects in a 20-foot cube are outlined in light, granting attackers advantage. |
|
||||
| Feather Fall | Transmutation | — | Falling creatures slow to a gentle descent. |
|
||||
| Fog Cloud | Conjuration | — | A 20-foot-radius sphere of fog heavily obscures the area. |
|
||||
| Guiding Bolt | Evocation | 4d6 | A flash of light streaks to a target, dealing radiant damage. |
|
||||
| Healing Word | Evocation | — | A creature you can see regains hit points. |
|
||||
| Hunter's Mark | Divination | 1d6 | Deal extra damage to a marked target and track it magically. |
|
||||
| Identify | Divination | — | Learn the properties of a magic item or the nature of a spell affecting a creature. |
|
||||
| Jump | Transmutation | — | A creature's jump distance triples. |
|
||||
| Longstrider | Transmutation | — | A creature's speed increases by 10 feet. |
|
||||
| Mage Armor | Abjuration | — | A protective magical force gives the target a base AC of 13 + Dex modifier. |
|
||||
| Magic Missile | Evocation | 3d4+3 | Three darts of magical force each strike a target unerringly. |
|
||||
| Protection from Evil and Good | Abjuration | — | Protect a creature from aberrations, celestials, elementals, fey, fiends, and undead. |
|
||||
| Shield | Abjuration | — | An invisible barrier grants +5 AC until the start of your next turn. |
|
||||
| Sleep | Enchantment | — | Creatures in a 20-foot radius fall unconscious, weakest hit points first. |
|
||||
| Speak with Animals | Divination | — | Comprehend and verbally communicate with beasts. |
|
||||
| Thunderwave | Evocation | 2d8 | A wave of thunderous force sweeps out, damaging and pushing creatures. |
|
||||
| Witch Bolt | Evocation | 1d12 | A beam of lightning forms a sustained arc that damages the target each turn. |
|
||||
|
||||
### Level 2 (26 spells)
|
||||
|
||||
Needs character level 2.
|
||||
|
||||
| Spell | School | Damage | What it does |
|
||||
|---|---|---|---|
|
||||
| Aid | Abjuration | — | Bolster allies with additional hit points. |
|
||||
| Alter Self | Transmutation | — | Assume a variety of minor physical changes. |
|
||||
| Animal Messenger | Enchantment | — | Send a tiny animal to deliver a short message. |
|
||||
| Blindness/Deafness | Necromancy | — | Blind or deafen a creature that fails a Constitution save. |
|
||||
| Blur | Illusion | — | Your outline blurs, giving attackers disadvantage. |
|
||||
| Darkvision | Transmutation | — | Grant a creature darkvision out to 60 feet. |
|
||||
| Enhance Ability | Transmutation | — | Grant advantage on checks with one chosen ability. |
|
||||
| Enlarge/Reduce | Transmutation | — | A creature or object doubles or halves in size. |
|
||||
| Flaming Sphere | Conjuration | 2d6 | A 5-foot-diameter sphere of fire rolls where you direct it. |
|
||||
| Gust of Wind | Evocation | — | A line of strong wind pushes creatures and extinguishes flames. |
|
||||
| Hold Person | Enchantment | — | Paralyze a humanoid that fails a Wisdom save. |
|
||||
| Invisibility | Illusion | — | A creature you touch becomes invisible. |
|
||||
| Lesser Restoration | Abjuration | — | End one disease or condition afflicting the target. |
|
||||
| Levitate | Transmutation | — | A creature or object rises vertically and can be moved. |
|
||||
| Mirror Image | Illusion | — | Three illusory duplicates of yourself spring into being. |
|
||||
| Misty Step | Conjuration | — | Teleport up to 30 feet in a burst of silvery mist. |
|
||||
| Moonbeam | Evocation | 2d10 | A silvery beam of pale light shines down in a 5-foot-radius cylinder. |
|
||||
| Pass without Trace | Abjuration | — | The party becomes exceptionally difficult to track. |
|
||||
| Scorching Ray | Evocation | 2d6 | Three rays of fire streak toward targets within range. |
|
||||
| Shatter | Evocation | 3d8 | A sudden loud ringing noise deals thunder damage in a 10-foot-radius sphere. |
|
||||
| Silence | Illusion | — | No sound can be created within or pass through a 20-foot-radius sphere. |
|
||||
| Spider Climb | Transmutation | — | A creature gains the ability to move on vertical surfaces and ceilings. |
|
||||
| Spiritual Weapon | Evocation | 1d8 | A spectral weapon attacks a target and can be moved each turn. |
|
||||
| Suggestion | Enchantment | — | Plant a reasonable-sounding suggestion in a creature’s mind. |
|
||||
| Web | Conjuration | — | Thick, sticky webs fill a 20-foot cube. |
|
||||
| Zone of Truth | Enchantment | — | Creatures in a 15-foot-radius sphere can’t speak a deliberate lie. |
|
||||
|
||||
### Level 3 (21 spells)
|
||||
|
||||
Needs character level 3.
|
||||
|
||||
| Spell | School | Damage | What it does |
|
||||
|---|---|---|---|
|
||||
| Animate Dead | Necromancy | — | Raise a skeleton or zombie from a corpse to fight for you. |
|
||||
| Beacon of Hope | Abjuration | — | Bolster creatures against despair, granting advantage on saves and max healing. |
|
||||
| Call Lightning | Conjuration | 3d10 | A storm cloud forms and you can call down bolts of lightning. |
|
||||
| Counterspell | Abjuration | — | Interrupt a creature casting a spell. |
|
||||
| Daylight | Evocation | — | A 60-foot-radius sphere of bright light spreads out. |
|
||||
| Dispel Magic | Abjuration | — | End one active spell affecting a creature, object, or effect. |
|
||||
| Fear | Illusion | — | Creatures in the cone become frightened and drop what they’re holding. |
|
||||
| Fireball | Evocation | 8d6 | A bright streak explodes into flame, dealing fire damage in a 20-foot radius. |
|
||||
| Fly | Transmutation | — | The target gains a flying speed of 60 feet. |
|
||||
| Haste | Transmutation | — | Double the target’s speed and grant an extra action. |
|
||||
| Lightning Bolt | Evocation | 8d6 | A stroke of lightning blasts out in a line, dealing lightning damage. |
|
||||
| Mass Healing Word | Evocation | — | Up to six creatures you can see regain hit points. |
|
||||
| Nondetection | Abjuration | — | Hide a target from divination magic. |
|
||||
| Protection from Energy | Abjuration | — | Resistance to one damage type of your choice. |
|
||||
| Remove Curse | Abjuration | — | Lift a curse from a creature or object. |
|
||||
| Revivify | Necromancy | — | A creature that died within the last minute returns to life with 1 hit point. |
|
||||
| Sleet Storm | Conjuration | — | Freezing rain falls in a 40-foot-radius cylinder, icing the ground. |
|
||||
| Slow | Transmutation | — | Up to six creatures are hindered, halving their speed and worse. |
|
||||
| Spirit Guardians | Conjuration | 3d8 | Protective spirits swirl around you, damaging enemies that enter. |
|
||||
| Stinking Cloud | Conjuration | — | A 20-foot-radius sphere of yellow, nauseating gas spreads out. |
|
||||
| Water Breathing | Transmutation | — | Up to ten creatures can breathe underwater. |
|
||||
|
||||
### Level 4 (13 spells)
|
||||
|
||||
Needs character level 4.
|
||||
|
||||
| Spell | School | Damage | What it does |
|
||||
|---|---|---|---|
|
||||
| Banishment | Abjuration | — | Send a creature to a harmless demiplane. |
|
||||
| Blight | Necromancy | 8d8 | Necromantic energy withers a creature, dealing necrotic damage. |
|
||||
| Confusion | Enchantment | — | Creatures in a 10-foot-radius sphere act randomly. |
|
||||
| Dimension Door | Conjuration | — | Teleport yourself (and possibly a companion) to a spot you can visualize. |
|
||||
| Fire Shield | Evocation | 2d8 | Wreathe yourself in flame that damages attackers and grants resistance. |
|
||||
| Freedom of Movement | Abjuration | — | The target’s movement is unaffected by difficult terrain and restraints. |
|
||||
| Greater Invisibility | Illusion | — | The target becomes invisible even while attacking. |
|
||||
| Guardian of Faith | Conjuration | 20 | A Large spectral guardian appears and attacks enemies near it. |
|
||||
| Ice Storm | Evocation | 2d8+4d6 | Hail hammers a 20-foot-radius cylinder, dealing bludgeoning and cold damage. |
|
||||
| Polymorph | Transmutation | — | Transform a creature into a new form. |
|
||||
| Stone Shape | Transmutation | — | Reshape a chunk of stone into a form you desire. |
|
||||
| Stoneskin | Abjuration | — | The target gains resistance to nonmagical bludgeoning, piercing, and slashing damage. |
|
||||
| Wall of Fire | Evocation | 5d8 | Conjure a wall of fire that damages creatures passing through it. |
|
||||
|
||||
### Level 5 (15 spells)
|
||||
|
||||
Needs character level 5.
|
||||
|
||||
| Spell | School | Damage | What it does |
|
||||
|---|---|---|---|
|
||||
| Animate Objects | Transmutation | — | Up to ten nonmagical objects animate and fight for you. |
|
||||
| Cloudkill | Conjuration | 5d8 | A 20-foot-radius sphere of poisonous, yellow-green fog billows out. |
|
||||
| Cone of Cold | Evocation | 8d8 | A blast of cold air deals cold damage to everything in the cone. |
|
||||
| Contagion | Necromancy | — | Infect a creature with a magical disease. |
|
||||
| Dispel Evil and Good | Abjuration | — | Protection and the ability to banish otherworldly creatures. |
|
||||
| Dominate Person | Enchantment | — | Attempt to beguile a humanoid and control its actions. |
|
||||
| Flame Strike | Evocation | 8d6 | A column of divine fire roars down, dealing fire and radiant damage. |
|
||||
| Greater Restoration | Abjuration | — | Undo a debilitating effect: reduced ability score, exhaustion, or curse. |
|
||||
| Hold Monster | Enchantment | — | Paralyze one creature that fails a Wisdom save. |
|
||||
| Insect Plague | Conjuration | 4d10 | A swarm of biting, stinging insects fills a 20-foot-radius sphere. |
|
||||
| Legend Lore | Divination | — | Learn what you know, or have heard, about a name, place, or object. |
|
||||
| Mass Cure Wounds | Evocation | — | Up to six creatures in a 30-foot-radius sphere regain hit points. |
|
||||
| Raise Dead | Necromancy | — | Return a dead creature to life, as long as its body is mostly intact. |
|
||||
| Wall of Force | Evocation | — | An invisible wall of force springs into existence, impenetrable to physical force. |
|
||||
| Wall of Stone | Evocation | — | A nonmagical wall of solid stone springs into existence. |
|
||||
<!-- END GENERATED: spell-library -->
|
||||
+280
@@ -0,0 +1,280 @@
|
||||
# Weapons
|
||||
|
||||
How weapons work in this app: the campaign's weapon pool, how a character
|
||||
comes to hold a weapon, weapon levels, and how attack and damage numbers are
|
||||
worked out.
|
||||
|
||||
This describes the code as it stands. The formulas live in
|
||||
`backend/src/game/calculations.js`; the built-in list is
|
||||
`backend/src/game/data/weaponsLibrary.js`. Related: [ITEMS.md](ITEMS.md),
|
||||
[SPELLS.md](SPELLS.md), [CHARACTERS.md](CHARACTERS.md).
|
||||
|
||||
## Contents
|
||||
|
||||
1. [The basics](#1-the-basics)
|
||||
2. [The weapon pool](#2-the-weapon-pool)
|
||||
3. [The built-in library](#3-the-built-in-library)
|
||||
4. [Giving weapons to characters](#4-giving-weapons-to-characters)
|
||||
5. [Weapon levels](#5-weapon-levels)
|
||||
6. [How damage grows](#6-how-damage-grows)
|
||||
7. [Attack and damage numbers](#7-attack-and-damage-numbers)
|
||||
8. [Starting weapons](#8-starting-weapons)
|
||||
9. [Weapons as rewards](#9-weapons-as-rewards)
|
||||
10. [Permissions](#10-permissions)
|
||||
11. [What is not modelled](#11-what-is-not-modelled)
|
||||
12. [The complete weapon library](#12-the-complete-weapon-library)
|
||||
|
||||
---
|
||||
|
||||
## 1. The basics
|
||||
|
||||
- Every campaign has its own **weapon pool**. A weapon exists in one campaign
|
||||
only.
|
||||
- A character never owns a free-standing weapon: it holds a **copy** of a pool
|
||||
entry, with its own quantity, level and equipped flag.
|
||||
- The DM runs the pool and decides who gets what. Players can only equip and
|
||||
unequip what they hold.
|
||||
|
||||
## 2. The weapon pool
|
||||
|
||||
The pool is the "Weapons Pool" card on the campaign page (DM only).
|
||||
|
||||
| Field | What it is |
|
||||
|---|---|
|
||||
| Name | Free text, up to 80 characters |
|
||||
| Base damage | Dice such as `1d8` or `2d6` — the damage at the weapon's starting level |
|
||||
| Damage type | Free text: slashing, piercing, fire… |
|
||||
| Attack ability | Strength, Dexterity, or Finesse (whichever of the two is higher for the wielder) |
|
||||
| Starts at level | 1 to 9. The lowest level this weapon can be (section 5) |
|
||||
| Growth | Standard, Powerful or Legendary: how fast the dice climb per level (section 6) |
|
||||
| Starting option | Whether a brand-new character may pick it in the builder (section 8) |
|
||||
| Properties, range | Stored for library weapons (light, thrown, 20/60 ft…) but not shown or used anywhere |
|
||||
|
||||
- **Adding:** by hand with the "+ Add Weapon" form, or from the library.
|
||||
- **Changing:** starting level, growth and the starting-option tick box can be
|
||||
changed in the table. Name, damage, type and ability cannot be changed on
|
||||
screen once created (the API accepts it); remove and re-add instead.
|
||||
- **Removing:** the ✕ button. This takes the weapon away from **every
|
||||
character holding it** and off every encounter's reward list. There is no
|
||||
undo.
|
||||
- The same weapon can be added twice; nothing stops duplicate names.
|
||||
|
||||
## 3. The built-in library
|
||||
|
||||
"📚 From Library" offers 37 standard weapons to copy into the pool:
|
||||
|
||||
| Category | Count | Examples |
|
||||
|---|---|---|
|
||||
| Simple melee | 10 | Club 1d4, Dagger 1d4, Mace 1d6, Spear 1d6 |
|
||||
| Simple ranged | 4 | Shortbow, Light Crossbow, Dart, Sling |
|
||||
| Martial melee | 18 | Longsword 1d8, Rapier 1d8, Greataxe 1d12, Greatsword 2d6 |
|
||||
| Martial ranged | 5 | Longbow, Heavy Crossbow, Hand Crossbow |
|
||||
|
||||
A weapon added from the library arrives with starting level 1, Standard
|
||||
growth, and **not** ticked as a starting option. Change those in the table
|
||||
afterwards. Every library weapon is listed in
|
||||
[section 12](#12-the-complete-weapon-library).
|
||||
|
||||
## 4. Giving weapons to characters
|
||||
|
||||
On a character's sheet, the DM picks a weapon from the pool and clicks Give.
|
||||
|
||||
- It arrives at the weapon's starting level, quantity 1, unequipped.
|
||||
- Giving a weapon the character already holds **adds to the stack**; the stack
|
||||
keeps the level it has. A character holds one stack per weapon, so two
|
||||
copies of the same weapon at different levels is not possible.
|
||||
- The DM can take a weapon away with ✕ on the sheet.
|
||||
- The owning player ticks **Equipped**. Equipped is a label only: unequipped
|
||||
weapons still show their numbers, and nothing limits how many are equipped.
|
||||
|
||||
**Passing a weapon on.** A character's owner (or the DM) can give a held
|
||||
weapon to another character in the campaign from the "Give to Another
|
||||
Character" card on the sheet. Some or all of the stack moves: it leaves the
|
||||
giver and arrives with the recipient at the giver's level, unequipped. If the
|
||||
recipient already holds that weapon, their stack grows and keeps its own
|
||||
level. A recipient below the weapon's level holds it but cannot use it yet.
|
||||
|
||||
## 5. Weapon levels
|
||||
|
||||
This is a house rule of this app, not standard D&D.
|
||||
|
||||
- Each held copy has a **level from 1 to 9**. Two characters can hold the same
|
||||
weapon at different levels.
|
||||
- Only the DM changes a copy's level, with the level picker beside it on the
|
||||
sheet. Each option shows the damage at that level.
|
||||
- A copy can never go below the pool entry's **starting level**. Raising a
|
||||
pool entry's starting level lifts any copies below it and unequips them.
|
||||
|
||||
**Who can use it.** A character must be at least the copy's level:
|
||||
|
||||
| Character level | Can use weapons of level |
|
||||
|---|---|
|
||||
| 1 | 1 |
|
||||
| 2 | 1–2 |
|
||||
| 5 | 1–5 |
|
||||
| 9 and above | 1–9 |
|
||||
|
||||
A weapon above its holder's level is still held, but it shows "Requires level
|
||||
N", cannot be equipped, and is left out of quick stats and encounters. If the
|
||||
DM levels a weapon past its holder, or lowers the character's level, it is
|
||||
unequipped automatically.
|
||||
|
||||
## 6. How damage grows
|
||||
|
||||
The dice in the pool are the damage at the weapon's starting level. Each level
|
||||
above that moves the dice up a fixed ladder, in the smallest steps dice allow:
|
||||
|
||||
| Rung | Dice | Average |
|
||||
|---|---|---|
|
||||
| 1 | 1d4 | 2.5 |
|
||||
| 2 | 1d6 | 3.5 |
|
||||
| 3 | 1d8 | 4.5 |
|
||||
| 4 | 1d10 | 5.5 |
|
||||
| 5 | 1d12 | 6.5 |
|
||||
| 6 | 2d6 | 7 |
|
||||
| 7 | 1d6+1d8 | 8 |
|
||||
| 8 | 2d8 | 9 |
|
||||
| 9 | 1d8+1d10 | 10 |
|
||||
| 10 | 2d10 | 11 |
|
||||
| 11 | 1d10+1d12 | 12 |
|
||||
| 12 | 2d12 | 13 |
|
||||
| 13 | 3d8 | 13.5 |
|
||||
| … | adding a die each time the current dice max out | |
|
||||
|
||||
Every rung is +1 average damage over the last, or +0.5 where a die is added.
|
||||
|
||||
**Growth** sets how many rungs a weapon climbs per level:
|
||||
|
||||
| Growth | Rungs per level | A 1d6 weapon at levels 1, 2, 3, 4 | At level 9 |
|
||||
|---|---|---|---|
|
||||
| Standard | 1 | 1d6, 1d8, 1d10, 1d12 | 2d10 |
|
||||
| Powerful | 2 | 1d6, 1d10, 2d6, 2d8 | 1d10+2d12 |
|
||||
| Legendary | 3 | 1d6, 1d12, 2d8, 1d10+1d12 | 4d12 |
|
||||
|
||||
A weapon with a higher starting level counts from there: a 2d6 greatsword that
|
||||
starts at level 3 with Standard growth is 2d6 at level 3, 1d6+1d8 at level 4
|
||||
and 2d8 at level 5.
|
||||
|
||||
- At its starting level a weapon always shows its dice exactly as typed.
|
||||
- Dice that are not on the ladder (`1d4+1`, `2d4+2`) climb from the highest
|
||||
rung that is not stronger than them: `2d4+2` (average 7) continues from 2d6.
|
||||
- Dice the app cannot read (free text such as "special") never change.
|
||||
|
||||
## 7. Attack and damage numbers
|
||||
|
||||
| Number | Formula |
|
||||
|---|---|
|
||||
| Attack bonus | Ability modifier + proficiency bonus |
|
||||
| Damage | The dice at the copy's level + ability modifier |
|
||||
|
||||
- The ability modifier is Strength, Dexterity, or the higher of the two for a
|
||||
Finesse weapon.
|
||||
- The weapon's level changes the **dice only**, never the bonuses.
|
||||
- Every character is treated as proficient with every weapon.
|
||||
|
||||
These numbers appear on the character sheet, in the quick-stats drawer, and
|
||||
on the character's card in an encounter.
|
||||
|
||||
## 8. Starting weapons
|
||||
|
||||
In the builder's equipment step a new character can pick weapons that are:
|
||||
|
||||
- ticked as a **starting option** in the pool, and
|
||||
- **starting level 1** (a new character is level 1).
|
||||
|
||||
Starting weapons and starting items share the campaign's "starting items"
|
||||
allowance. They arrive at level 1, unequipped.
|
||||
|
||||
## 9. Weapons as rewards
|
||||
|
||||
On an encounter the DM can line up a weapon as a reward, at a chosen level
|
||||
(not below its starting level) and quantity, and later award it to a
|
||||
character. Awarding adds it to what the character holds, exactly as giving it
|
||||
on the sheet would. See [ENCOUNTERS.md](ENCOUNTERS.md).
|
||||
|
||||
## 10. Permissions
|
||||
|
||||
| Action | DM | Owning player | Other players |
|
||||
|---|---|---|---|
|
||||
| See the pool and the library | Yes | Yes | Yes |
|
||||
| Add, change or remove pool entries | Yes | No | No |
|
||||
| Give a weapon from the pool, or take one away | Yes | No | No |
|
||||
| Give a held weapon to another character | Yes | Yes | No |
|
||||
| Change a held weapon's level or quantity | Yes | No | No |
|
||||
| Equip or unequip | Yes | Yes, if the character can use it | No |
|
||||
| See a character's weapons | Yes | Yes | Yes |
|
||||
|
||||
## 11. What is not modelled
|
||||
|
||||
- Weapon proficiency by class (everyone is proficient with everything)
|
||||
- Properties: two-handed, versatile, light, reach, loading, thrown
|
||||
- Range and ammunition
|
||||
- Critical hits, advantage, and rolling the attack itself (use the dice roller)
|
||||
- Magic bonuses such as +1 weapons (use a higher level or growth instead)
|
||||
- Price and weight
|
||||
|
||||
## 12. The complete weapon library
|
||||
|
||||
Every weapon "📚 From Library" offers. Base damage is the damage at level 1.
|
||||
Properties and range are carried into the campaign but not shown or used.
|
||||
|
||||
This list is written from the app's own data by `npm run docs:lists` (in `/backend`). Re-run it after changing the data; do not edit the list by hand.
|
||||
|
||||
<!-- BEGIN GENERATED: weapon-library -->
|
||||
### Simple Melee (10)
|
||||
|
||||
| Weapon | Base damage | Type | Attacks with | Properties | Range |
|
||||
|---|---|---|---|---|---|
|
||||
| Club | 1d4 | bludgeoning | Strength | light | — |
|
||||
| Dagger | 1d4 | piercing | Strength or Dexterity (finesse) | finesse, light, thrown | 20/60 ft |
|
||||
| Greatclub | 1d8 | bludgeoning | Strength | two-handed | — |
|
||||
| Handaxe | 1d6 | slashing | Strength | light, thrown | 20/60 ft |
|
||||
| Javelin | 1d6 | piercing | Strength | thrown | 30/120 ft |
|
||||
| Light Hammer | 1d4 | bludgeoning | Strength | light, thrown | 20/60 ft |
|
||||
| Mace | 1d6 | bludgeoning | Strength | — | — |
|
||||
| Quarterstaff | 1d6 | bludgeoning | Strength | versatile (1d8) | — |
|
||||
| Sickle | 1d4 | slashing | Strength | light | — |
|
||||
| Spear | 1d6 | piercing | Strength | thrown, versatile (1d8) | 20/60 ft |
|
||||
|
||||
### Simple Ranged (4)
|
||||
|
||||
| Weapon | Base damage | Type | Attacks with | Properties | Range |
|
||||
|---|---|---|---|---|---|
|
||||
| Light Crossbow | 1d8 | piercing | Dexterity | ammunition, loading, two-handed | 80/320 ft |
|
||||
| Dart | 1d4 | piercing | Strength or Dexterity (finesse) | finesse, thrown | 20/60 ft |
|
||||
| Shortbow | 1d6 | piercing | Dexterity | ammunition, two-handed | 80/320 ft |
|
||||
| Sling | 1d4 | bludgeoning | Dexterity | ammunition | 30/120 ft |
|
||||
|
||||
### Martial Melee (18)
|
||||
|
||||
| Weapon | Base damage | Type | Attacks with | Properties | Range |
|
||||
|---|---|---|---|---|---|
|
||||
| Battleaxe | 1d8 | slashing | Strength | versatile (1d10) | — |
|
||||
| Flail | 1d8 | bludgeoning | Strength | — | — |
|
||||
| Glaive | 1d10 | slashing | Strength | heavy, reach, two-handed | — |
|
||||
| Greataxe | 1d12 | slashing | Strength | heavy, two-handed | — |
|
||||
| Greatsword | 2d6 | slashing | Strength | heavy, two-handed | — |
|
||||
| Halberd | 1d10 | slashing | Strength | heavy, reach, two-handed | — |
|
||||
| Lance | 1d12 | piercing | Strength | reach, special | — |
|
||||
| Longsword | 1d8 | slashing | Strength | versatile (1d10) | — |
|
||||
| Maul | 2d6 | bludgeoning | Strength | heavy, two-handed | — |
|
||||
| Morningstar | 1d8 | piercing | Strength | — | — |
|
||||
| Pike | 1d10 | piercing | Strength | heavy, reach, two-handed | — |
|
||||
| Rapier | 1d8 | piercing | Strength or Dexterity (finesse) | finesse | — |
|
||||
| Scimitar | 1d6 | slashing | Strength or Dexterity (finesse) | finesse, light | — |
|
||||
| Shortsword | 1d6 | piercing | Strength or Dexterity (finesse) | finesse, light | — |
|
||||
| Trident | 1d6 | piercing | Strength | thrown, versatile (1d8) | 20/60 ft |
|
||||
| War Pick | 1d8 | piercing | Strength | — | — |
|
||||
| Warhammer | 1d8 | bludgeoning | Strength | versatile (1d10) | — |
|
||||
| Whip | 1d4 | slashing | Strength or Dexterity (finesse) | finesse, reach | — |
|
||||
|
||||
### Martial Ranged (5)
|
||||
|
||||
| Weapon | Base damage | Type | Attacks with | Properties | Range |
|
||||
|---|---|---|---|---|---|
|
||||
| Blowgun | 1 | piercing | Dexterity | ammunition, loading | 25/100 ft |
|
||||
| Hand Crossbow | 1d6 | piercing | Dexterity | ammunition, light, loading | 30/120 ft |
|
||||
| Heavy Crossbow | 1d10 | piercing | Dexterity | ammunition, heavy, loading, two-handed | 100/400 ft |
|
||||
| Longbow | 1d8 | piercing | Dexterity | ammunition, heavy, two-handed | 150/600 ft |
|
||||
| Net | - | special | Dexterity | special, thrown | 5/15 ft |
|
||||
<!-- END GENERATED: weapon-library -->
|
||||
Reference in New Issue
Block a user