From 5737c6aacd46f82a25dda5aa1c68a75e2039c6b0 Mon Sep 17 00:00:00 2001 From: David Prothero Date: Sun, 10 Mar 2024 16:25:34 -0700 Subject: [PATCH] WIP: Upgraded remark libs --- 5e_Monster_Builder.json | 158 +- 5e_Monster_Builder.md | 420 ++--- LGMRD.md | 1674 ++++++++--------- README.md | 14 +- .../5e Quick Encounter Building.md | 30 + markdown_obsidian/Building an RPG Group.md | 49 + markdown_obsidian/Connecting Characters.md | 55 + .../Core Adventure Generators.md | 277 +++ .../Creating Secrets and Clues.md | 71 + markdown_obsidian/Example Strong Starts.md | 63 + .../Lazy Combat Encounter Building for 5e.md | 51 + markdown_obsidian/Lazy Solo 5e.md | 78 + markdown_obsidian/Monster Difficulty Dials.md | 37 + markdown_obsidian/Monster Templates.md | 79 + markdown_obsidian/NPC Generator.md | 107 ++ markdown_obsidian/Quest Templates.md | 43 + .../Quick Tricks for Lazier 5e Games.md | 49 + markdown_obsidian/Random Dungeon Monsters.md | 240 +++ markdown_obsidian/Random Items.md | 206 ++ markdown_obsidian/Random Monuments.md | 175 ++ markdown_obsidian/Random Town Events.md | 95 + markdown_obsidian/Random Traps.md | 91 + markdown_obsidian/Running Hordes.md | 50 + markdown_obsidian/Safety Tools.md | 76 + markdown_obsidian/Session Zero Checklist.md | 62 + .../Spiral Campaign Development.md | 110 ++ markdown_obsidian/Stress Effects.md | 75 + .../The Eight Steps of Lazy RPG Prep.md | 64 + .../The Lazy GM's Resource Document.md | 54 + .../The Lazy RPG Preparation Process.md | 57 + ...er of the Mind Guidelines (Abbreviated).md | 49 + ...eater of the Mind Guidelines (Extended).md | 72 + .../Tools for 5e Improvisation.md | 56 + markdown_obsidian/Treasure Generator.md | 84 + markdown_obsidian/Undead Templates.md | 57 + .../Wilderness Travel and Exploration.md | 49 + markdown_obsidian/Zone-Based Combat.md | 37 + .../Bosses and Minions.md | 54 + .../Building a Quick Monster.md | 130 ++ .../General-Use Combat Stat Blocks.md | 221 +++ .../Lazy Tricks for Running Monsters.md | 80 + .../Lightning Rods.md | 37 + ...nster Combinations for a Hard Challenge.md | 119 ++ .../Monster Roles.md | 91 + .../Monsters and the Tiers of Play.md | 49 + .../Monsters by Adventure Location.md | 178 ++ .../The Combat Encounter Checklist.md | 111 ++ .../The Lazy Encounter Benchmark.md | 86 + ...'s 5e Monster Builder Resource Document.md | 31 + markdown_separate/buildingagroup.md | 20 +- markdown_separate/connectingcharacters.md | 36 +- markdown_separate/coreadventuregenerators.md | 126 +- markdown_separate/creatingsecrets.md | 72 +- markdown_separate/eightsteps.md | 22 +- markdown_separate/index.md | 64 +- .../lazycombatencounterbuilding.md | 14 +- markdown_separate/lazysolo5e.md | 46 +- markdown_separate/monstertemplates.md | 34 +- markdown_separate/npcgenerator.md | 72 +- markdown_separate/prepprocess.md | 76 +- markdown_separate/quickencounterbuilding.md | 24 +- markdown_separate/quicktricks.md | 16 +- markdown_separate/randomdungeonmonsters.md | 180 +- markdown_separate/randomitems.md | 108 +- markdown_separate/randommonuments.md | 74 +- markdown_separate/randomtownevents.md | 72 +- markdown_separate/randomtraps.md | 54 +- markdown_separate/runninghordes.md | 22 +- markdown_separate/safetytools.md | 78 +- markdown_separate/sessionzerochecklist.md | 28 +- markdown_separate/spiralcampaigns.md | 84 +- markdown_separate/stresseffects.md | 58 +- markdown_separate/strongstarts.md | 72 +- markdown_separate/toolsforimprov.md | 28 +- markdown_separate/totm2.md | 44 +- markdown_separate/totmguidelines1.md | 36 +- markdown_separate/treasuregenerator.md | 36 +- markdown_separate/undeadtemplates.md | 42 +- markdown_separate/zonebasedcombat.md | 36 +- .../combatencounterchecklist.md | 98 +- markdown_separate_5e_monster_builder/index.md | 22 +- .../lazyencounterbenchmark.md | 40 +- .../lazytricksforrunningmonsters.md | 24 +- .../monstercombinationsforahardchallenge.md | 16 +- .../monstersbyadventurelocation.md | 220 +-- metadata/5e_Monster_Builder_mdast.json | 46 +- metadata/LGMRD_mdast.json | 122 +- metadata/updates.json | 12 +- packages/lgmmbrd/index.cjs | 138 +- packages/lgmmbrd/index.mjs | 138 +- .../abyssalkeep.cjs | 4 +- .../abyssalkeep.mjs | 4 +- .../ancientruins.cjs | 20 +- .../ancientruins.mjs | 20 +- .../citysewers.cjs | 4 +- .../citysewers.mjs | 4 +- .../cryptscatacombsnecropolises.cjs | 15 +- .../cryptscatacombsnecropolises.mjs | 15 +- .../darkforestsandfetidswamps.cjs | 16 +- .../darkforestsandfetidswamps.mjs | 16 +- .../deepcaverns.cjs | 18 +- .../deepcaverns.mjs | 18 +- .../frozenfortress.cjs | 4 +- .../frozenfortress.mjs | 4 +- .../hellishcitadel.cjs | 12 +- .../hellishcitadel.mjs | 12 +- .../seedycitystreets.cjs | 18 +- .../seedycitystreets.mjs | 18 +- .../sunkengrotto.cjs | 14 +- .../sunkengrotto.mjs | 14 +- .../volcanolair.cjs | 4 +- .../volcanolair.mjs | 4 +- .../wizardstower.cjs | 8 +- .../wizardstower.mjs | 8 +- src/formats/markdown.ts | 4 +- src/formats/markdownObsidian.ts | 68 + src/formats/markdownSeparate.ts | 26 +- src/index.ts | 9 + src/package-lock.json | 1418 ++++++++------ src/package.json | 19 +- src/utils/constants.ts | 9 + src/utils/markdown.ts | 25 + 122 files changed, 7634 insertions(+), 2969 deletions(-) create mode 100644 markdown_obsidian/5e Quick Encounter Building.md create mode 100644 markdown_obsidian/Building an RPG Group.md create mode 100644 markdown_obsidian/Connecting Characters.md create mode 100644 markdown_obsidian/Core Adventure Generators.md create mode 100644 markdown_obsidian/Creating Secrets and Clues.md create mode 100644 markdown_obsidian/Example Strong Starts.md create mode 100644 markdown_obsidian/Lazy Combat Encounter Building for 5e.md create mode 100644 markdown_obsidian/Lazy Solo 5e.md create mode 100644 markdown_obsidian/Monster Difficulty Dials.md create mode 100644 markdown_obsidian/Monster Templates.md create mode 100644 markdown_obsidian/NPC Generator.md create mode 100644 markdown_obsidian/Quest Templates.md create mode 100644 markdown_obsidian/Quick Tricks for Lazier 5e Games.md create mode 100644 markdown_obsidian/Random Dungeon Monsters.md create mode 100644 markdown_obsidian/Random Items.md create mode 100644 markdown_obsidian/Random Monuments.md create mode 100644 markdown_obsidian/Random Town Events.md create mode 100644 markdown_obsidian/Random Traps.md create mode 100644 markdown_obsidian/Running Hordes.md create mode 100644 markdown_obsidian/Safety Tools.md create mode 100644 markdown_obsidian/Session Zero Checklist.md create mode 100644 markdown_obsidian/Spiral Campaign Development.md create mode 100644 markdown_obsidian/Stress Effects.md create mode 100644 markdown_obsidian/The Eight Steps of Lazy RPG Prep.md create mode 100644 markdown_obsidian/The Lazy GM's Resource Document.md create mode 100644 markdown_obsidian/The Lazy RPG Preparation Process.md create mode 100644 markdown_obsidian/Theater of the Mind Guidelines (Abbreviated).md create mode 100644 markdown_obsidian/Theater of the Mind Guidelines (Extended).md create mode 100644 markdown_obsidian/Tools for 5e Improvisation.md create mode 100644 markdown_obsidian/Treasure Generator.md create mode 100644 markdown_obsidian/Undead Templates.md create mode 100644 markdown_obsidian/Wilderness Travel and Exploration.md create mode 100644 markdown_obsidian/Zone-Based Combat.md create mode 100644 markdown_obsidian_5e_monster_builder/Bosses and Minions.md create mode 100644 markdown_obsidian_5e_monster_builder/Building a Quick Monster.md create mode 100644 markdown_obsidian_5e_monster_builder/General-Use Combat Stat Blocks.md create mode 100644 markdown_obsidian_5e_monster_builder/Lazy Tricks for Running Monsters.md create mode 100644 markdown_obsidian_5e_monster_builder/Lightning Rods.md create mode 100644 markdown_obsidian_5e_monster_builder/Monster Combinations for a Hard Challenge.md create mode 100644 markdown_obsidian_5e_monster_builder/Monster Roles.md create mode 100644 markdown_obsidian_5e_monster_builder/Monsters and the Tiers of Play.md create mode 100644 markdown_obsidian_5e_monster_builder/Monsters by Adventure Location.md create mode 100644 markdown_obsidian_5e_monster_builder/The Combat Encounter Checklist.md create mode 100644 markdown_obsidian_5e_monster_builder/The Lazy Encounter Benchmark.md create mode 100644 markdown_obsidian_5e_monster_builder/The Lazy GM's 5e Monster Builder Resource Document.md create mode 100644 src/formats/markdownObsidian.ts create mode 100644 src/utils/markdown.ts diff --git a/5e_Monster_Builder.json b/5e_Monster_Builder.json index 27aac1f..f14db0a 100644 --- a/5e_Monster_Builder.json +++ b/5e_Monster_Builder.json @@ -1,5 +1,5 @@ { - "version": "2.3.0", + "version": "2.4.0", "sections": [ { "id": "bossesandminions", @@ -2316,7 +2316,7 @@ "data": [ { "level": "1st", - "example_encounters": "* A thug leads bandits intending to rob a caravan." + "example_encounters": "* A thug leads bandits intending to rob a caravan." } ] }, @@ -2325,8 +2325,14 @@ "order": 1, "data": [ { - "item": "A vengeful shadow shifts in the darkness among a handful of arisen skeletons. |\n| 2nd to 4th | * A pair of bugbear entrepreneurs use goblin actors as bait to seek adventurers as prey." - }, + "item": "A vengeful shadow shifts in the darkness among a handful of arisen skeletons. |\n| 2nd to 4th | - A pair of bugbear entrepreneurs use goblin actors as bait to seek adventurers as prey." + } + ] + }, + { + "type": "table", + "order": 2, + "data": [ { "item": "A sorrowful banshee orders specters to recreate their former beautiful life." }, @@ -2337,8 +2343,14 @@ "item": "A death dog protected by wolves lairs in a ruined cave." }, { - "item": "A lamia served by jackalweres dwells in an illusory paradise. |\n| 5th to 10th | * A wise bugbear chief leads bugbear and goblin soldiers from an obsidian throne." - }, + "item": "A lamia served by jackalweres dwells in an illusory paradise. |\n| 5th to 10th | * A wise bugbear chief leads bugbear and goblin soldiers from an obsidian throne." + } + ] + }, + { + "type": "table", + "order": 3, + "data": [ { "item": "A cyclops matriarch leads fanatically loyal ogres." }, @@ -2346,7 +2358,7 @@ "item": "A solitary medusa dwells in a mausoleum, surrounded by petrified heroes and protected by death dogs." }, { - "item": "A noble oni in a posh den is guarded by loyal spirit naga storytellers. |\n| 11th to 16th | * An adult blue dragon is guarded by clay golems in a jeweled lair. |\n| 17th to 20th | * An ancient blue dragon protected by stone golems and air elementals dwells in the shattered remains of a tower. |" + "item": "A noble oni in a posh den is guarded by loyal spirit naga storytellers. |\n| 11th to 16th | - An adult blue dragon is guarded by clay golems in a jeweled lair. |\n| 17th to 20th | * An ancient blue dragon protected by stone golems and air elementals dwells in the shattered remains of a tower. |" } ] } @@ -2367,11 +2379,11 @@ "data": [ { "level": "1st", - "example_encounters": "* A pair of skeletons rises from a pile of crawling claws." + "example_encounters": "* A pair of skeletons rises from a pile of crawling claws." }, { "level": "2nd to 4th", - "example_encounters": "* A lost ghost wanders, surrounded by specters." + "example_encounters": "- A lost ghost wanders, surrounded by specters." } ] }, @@ -2380,10 +2392,16 @@ "order": 1, "data": [ { - "item": "A bone naga rises from an obsidian sarcophagus to command a host of skeletons. |\n| 5th to 10th | * A mummy lord entombed in a cold-iron sarcophagus is guarded by mummies and wights." - }, + "item": "A bone naga rises from an obsidian sarcophagus to command a host of skeletons. |\n| 5th to 10th | * A mummy lord entombed in a cold-iron sarcophagus is guarded by mummies and wights." + } + ] + }, + { + "type": "table", + "order": 2, + "data": [ { - "item": "A pair of wraiths float above unholy urns surrounded by vengeful specters. |\n| 11th to 16th | * A vampire in a gilded tomb is guarded by howling dire wolves and served by vampire spawn. |\n| 17th to 20th | * A lich in an unhallowed laboratory is protected by loyal death knights and iron golems. |" + "item": "A pair of wraiths float above unholy urns surrounded by vengeful specters. |\n| 11th to 16th | - A vampire in a gilded tomb is guarded by howling dire wolves and served by vampire spawn. |\n| 17th to 20th | * A lich in an unhallowed laboratory is protected by loyal death knights and iron golems. |" } ] } @@ -2404,11 +2422,11 @@ "data": [ { "level": "1st", - "example_encounters": "* A wandering zombie is covered by a swarm of rats." + "example_encounters": "* A wandering zombie is covered by a swarm of rats." }, { "level": "2nd to 4th", - "example_encounters": "* An erudite ghast weaves fantastic tales to their ravenous ghoul followers." + "example_encounters": "- An erudite ghast weaves fantastic tales to their ravenous ghoul followers." } ] }, @@ -2444,7 +2462,7 @@ "data": [ { "level": "1st", - "example_encounters": "* A giant rat and the swarm of rats that travels with them are feeding on a dead body." + "example_encounters": "* A giant rat and the swarm of rats that travels with them are feeding on a dead body." } ] }, @@ -2453,14 +2471,26 @@ "order": 1, "data": [ { - "item": "A thug and a pack of bandit toadies are waiting for someone to rob. |\n| 2nd to 4th | * A spy assisted by thugs has been hired to steal something from the characters." - }, + "item": "A thug and a pack of bandit toadies are waiting for someone to rob. |\n| 2nd to 4th | - A spy assisted by thugs has been hired to steal something from the characters." + } + ] + }, + { + "type": "table", + "order": 2, + "data": [ { "item": "A bandit captain with berserker bodyguards and bandit followers is easily insulted." }, { - "item": "A cult fanatic leads cultists who have summoned ravenous dretches into the world. |\n| 5th to 10th | * A mage commanding veterans is seeking something the characters seek as well." - }, + "item": "A cult fanatic leads cultists who have summoned ravenous dretches into the world. |\n| 5th to 10th | * A mage commanding veterans is seeking something the characters seek as well." + } + ] + }, + { + "type": "table", + "order": 3, + "data": [ { "item": "A bandit captain protected by hired gladiators and veterans seeks the characters with an offer they can't refuse." }, @@ -2486,15 +2516,15 @@ "data": [ { "level": "1st", - "example_encounters": "* A loyal imp commands a squad of guardian flying swords." + "example_encounters": "* A loyal imp commands a squad of guardian flying swords." }, { "level": "2nd to 4th", - "example_encounters": "* A summoned succubus or incubus directs animated armor serving as guards." + "example_encounters": "- A summoned succubus or incubus directs animated armor serving as guards." }, { "level": "5th to 10th", - "example_encounters": "* Apprentice mages command elementals and flesh golems." + "example_encounters": "* Apprentice mages command elementals and flesh golems." } ] }, @@ -2503,7 +2533,7 @@ "order": 1, "data": [ { - "item": "An important chamber is guarded by two flameskulls and a number of helmed horrors. |\n| 11th to 16th | * An impatient archmage is protected by two stone golems in an arcane laboratory. |\n| 17th to 20th | * A lich studies the multiverse while protected by bound balors and iron golems. |" + "item": "An important chamber is guarded by two flameskulls and a number of helmed horrors. |\n| 11th to 16th | - An impatient archmage is protected by two stone golems in an arcane laboratory. |\n| 17th to 20th | * A lich studies the multiverse while protected by bound balors and iron golems. |" } ] } @@ -2524,7 +2554,7 @@ "data": [ { "level": "5th to 10th", - "example_encounters": "* A fire giant with pet hell hounds commands an azer to dig for them." + "example_encounters": "* A fire giant with pet hell hounds commands an azer to dig for them." } ] }, @@ -2533,7 +2563,7 @@ "order": 1, "data": [ { - "item": "A trapped efreeti uses fire elementals to fight for freedom. |\n| 11th to 16th | * An adult red dragon served by salamanders demands fealty from the characters. |\n| 17th to 20th | * An ancient red dragon worshiped by fire giants awakens from slumber. |" + "item": "A trapped efreeti uses fire elementals to fight for freedom. |\n| 11th to 16th | - An adult red dragon served by salamanders demands fealty from the characters. |\n| 17th to 20th | * An ancient red dragon worshiped by fire giants awakens from slumber. |" } ] } @@ -2554,7 +2584,7 @@ "data": [ { "level": "2nd to 4th", - "example_encounters": "* A night hag and their pet quasit schemes within a chamber guarded by hell hounds." + "example_encounters": "* A night hag and their pet quasit schemes within a chamber guarded by hell hounds." } ] }, @@ -2563,7 +2593,7 @@ "order": 1, "data": [ { - "item": "A summoning circle disgorges a barlgura and a gang of dretches. |\n| 5th to 10th | * A glabrezu commands from a throne flanked by chasmes. |\n| 11th to 16th | * A marilith, their cambion advisor, and a number of hezrou servants guard a planar gateway. |\n| 17th to 20th | * A balor, a servile archmage, and a squad of glabrezu soldiers guard an artifact. |" + "item": "A summoning circle disgorges a barlgura and a gang of dretches. |\n| 5th to 10th | - A glabrezu commands from a throne flanked by chasmes. |\n| 11th to 16th | * A marilith, their cambion advisor, and a number of hezrou servants guard a planar gateway. |\n| 17th to 20th | - A balor, a servile archmage, and a squad of glabrezu soldiers guard an artifact. |" } ] } @@ -2584,11 +2614,11 @@ "data": [ { "level": "1st", - "example_encounters": "* An elf cultist hunts prey with bloodthirsty wolves." + "example_encounters": "* An elf cultist hunts prey with bloodthirsty wolves." }, { "level": "2nd to 4th", - "example_encounters": "* Two ettercaps and their giant spiders stalk adventurers." + "example_encounters": "- Two ettercaps and their giant spiders stalk adventurers." } ] }, @@ -2603,13 +2633,19 @@ "item": "A green hag lurks in an old hut with a pet giant toad, and is guarded by loyal bullywugs." }, { - "item": "A werewolf prowls the shadows with their dire wolf companions. |\n| 5th to 10th | * An orc war chief commands a force of ettin and orc scouts based in a ruined keep. |\n| 11th to 16th | * An adult black dragon commands a host of trolls made loyal through fear." + "item": "A werewolf prowls the shadows with their dire wolf companions. |\n| 5th to 10th | * An orc war chief commands a force of ettin and orc scouts based in a ruined keep. |\n| 11th to 16th | - An adult black dragon commands a host of trolls made loyal through fear." }, { - "item": "An adult green dragon lurks in a dead forest, protected by shambling mounds. |\n| 17th to 20th | * An ancient black dragon dwells in a sunken bog filled with giant crocodiles." - }, + "item": "An adult green dragon lurks in a dead forest, protected by shambling mounds. |\n| 17th to 20th | * An ancient black dragon dwells in a sunken bog filled with giant crocodiles." + } + ] + }, + { + "type": "table", + "order": 2, + "data": [ { - "item": "An ancient green dragon rules from an ancient wooden throne guarded by loyal treants. |" + "item": "An ancient green dragon rules from an ancient wooden throne guarded by loyal treants. |" } ] } @@ -2630,7 +2666,7 @@ "data": [ { "level": "2nd to 4th", - "example_encounters": "* A bearded devil draws lemures through a portal connected to the river Styx." + "example_encounters": "* A bearded devil draws lemures through a portal connected to the river Styx." } ] }, @@ -2639,10 +2675,16 @@ "order": 1, "data": [ { - "item": "A barbed devil and a host of imps keep watch on enemy forces. |\n| 5th to 10th | * An armored erinyes commanding a host of spined devils prepares for war." - }, + "item": "A barbed devil and a host of imps keep watch on enemy forces. |\n| 5th to 10th | - An armored erinyes commanding a host of spined devils prepares for war." + } + ] + }, + { + "type": "table", + "order": 2, + "data": [ { - "item": "A horned devil leading bearded devil soldiers guards an oracular sphere. |\n| 11th to 16th | * Ice devil wardens and bone devil guards protect a valuable prisoner. |\n| 17th to 20th | * Pit fiend commanders and horned devil lieutenants use scrying crystals to get the drop on the characters. |" + "item": "A horned devil leading bearded devil soldiers guards an oracular sphere. |\n| 11th to 16th | * Ice devil wardens and bone devil guards protect a valuable prisoner. |\n| 17th to 20th | - Pit fiend commanders and horned devil lieutenants use scrying crystals to get the drop on the characters. |" } ] } @@ -2663,7 +2705,7 @@ "data": [ { "level": "5th to 10th", - "example_encounters": "* Frost giant hunters enjoy the sport of their remorhaz pet stalking commoners." + "example_encounters": "* Frost giant hunters enjoy the sport of their remorhaz pet stalking commoners." } ] }, @@ -2672,7 +2714,7 @@ "order": 1, "data": [ { - "item": "The bone-cluttered cave of an abominable yeti is guarded by winter wolves. |\n| 11th to 16th | * An adult white dragon is served by loyal frost giants. |\n| 17th to 20th | * An ancient white dragon lairing atop an inaccessible peak is worshiped by generations of abominable yetis. |" + "item": "The bone-cluttered cave of an abominable yeti is guarded by winter wolves. |\n| 11th to 16th | - An adult white dragon is served by loyal frost giants. |\n| 17th to 20th | * An ancient white dragon lairing atop an inaccessible peak is worshiped by generations of abominable yetis. |" } ] } @@ -2693,7 +2735,7 @@ "data": [ { "level": "1st", - "example_encounters": "* A cockatrice pecks at a crumbling statue, while stirges linger above." + "example_encounters": "* A cockatrice pecks at a crumbling statue, while stirges linger above." } ] }, @@ -2702,11 +2744,23 @@ "order": 1, "data": [ { - "item": "A giant bat surrounded by swarms of bats skulks in the shadows. |\n| 2nd to 4th | * Darkmantles and piercers lurk in pools of shadow." - }, + "item": "A giant bat surrounded by swarms of bats skulks in the shadows. |\n| 2nd to 4th | - Darkmantles and piercers lurk in pools of shadow." + } + ] + }, + { + "type": "table", + "order": 2, + "data": [ { - "item": "A worg-riding goblin boss commands a squad of goblin hunters. |\n| 5th to 10th | * Basilisks and cockatrices lair in a hall full of petrified adventurers." - }, + "item": "A worg-riding goblin boss commands a squad of goblin hunters. |\n| 5th to 10th | * Basilisks and cockatrices lair in a hall full of petrified adventurers." + } + ] + }, + { + "type": "table", + "order": 3, + "data": [ { "item": "A cloaker lurks above a pack of hook horrors disemboweling a dead bulette." }, @@ -2732,11 +2786,11 @@ "data": [ { "level": "1st", - "example_encounters": "* A lizardfolk hunter is teaching their trained giant crabs how to hunt." + "example_encounters": "* A lizardfolk hunter is teaching their trained giant crabs how to hunt." }, { "level": "2nd to 4th", - "example_encounters": "* A sea hag commands loyal kuo-toa to set up an effigy to a fictitious god." + "example_encounters": "- A sea hag commands loyal kuo-toa to set up an effigy to a fictitious god." } ] }, @@ -2745,13 +2799,19 @@ "order": 1, "data": [ { - "item": "A lizard king with a lizardfolk shaman advisor commands a clan of lizardfolk from a coral throne. |\n| 5th to 10th | * An aboleth in a swirling pool is guarded by chuuls and worshiped by enthralled veterans." - }, + "item": "A lizard king with a lizardfolk shaman advisor commands a clan of lizardfolk from a coral throne. |\n| 5th to 10th | * An aboleth in a swirling pool is guarded by chuuls and worshiped by enthralled veterans." + } + ] + }, + { + "type": "table", + "order": 2, + "data": [ { "item": "A sahuagin baron watches a pack of sahuagin fight water weirds." }, { - "item": "A corrupt sahuagin priestess feeds sacrificial victims to giant crocodiles. |\n| 11th to 16th | * A kraken rules a deep-sea trench, surrounded by reverent water elementals. |" + "item": "A corrupt sahuagin priestess feeds sacrificial victims to giant crocodiles. |\n| 11th to 16th | - A kraken rules a deep-sea trench, surrounded by reverent water elementals. |" } ] } diff --git a/5e_Monster_Builder.md b/5e_Monster_Builder.md index db3371e..2ea9c69 100644 --- a/5e_Monster_Builder.md +++ b/5e_Monster_Builder.md @@ -18,17 +18,17 @@ You can find several versions of this document including EPUB, Markdown, and JSO ### Table of Contents -* [Building a Quick Monster](#buildingaquickmonster) -* [General-Use Combat Stat Blocks](#generalusestatblocks) -* [Lazy Tricks for Running Monsters](#lazytricksforrunningmonsters) -* [Lightning Rods](#lightingrods) -* [Monster Roles](#monsterroles) -* [Bosses and Minions](#bossesandminions) -* [The Combat Encounter Checklist](#combatencounterchecklist) -* [Monster Combinations for a Hard Challenge](#monstercombinationsforahardchallenge) -* [The Lazy Encounter Benchmark](#lazyencounterbenchmark) -* [Monsters by Adventure Location](#monstersbyadventurelocation) -* [Monsters and the Tiers of Play](#monstersandthetiersofplay) +* [Building a Quick Monster](#buildingaquickmonster) +* [General-Use Combat Stat Blocks](#generalusestatblocks) +* [Lazy Tricks for Running Monsters](#lazytricksforrunningmonsters) +* [Lightning Rods](#lightingrods) +* [Monster Roles](#monsterroles) +* [Bosses and Minions](#bossesandminions) +* [The Combat Encounter Checklist](#combatencounterchecklist) +* [Monster Combinations for a Hard Challenge](#monstercombinationsforahardchallenge) +* [The Lazy Encounter Benchmark](#lazyencounterbenchmark) +* [Monsters by Adventure Location](#monstersbyadventurelocation) +* [Monsters and the Tiers of Play](#monstersandthetiersofplay) ## Building a Quick Monster @@ -431,13 +431,13 @@ This section presents a number of tricks and tips that can help you more easily First, choose a challenge rating for your monster, based on their perceived power in the encounter. When needed, compare your monster to existing monsters to find a suitable challenge rating. Then use the following guidelines to craft their baseline statistics: -* Armor Class = 12 + 1/2 CR -* Hit points = (15 × CR) + 15 -* Proficient saving throws and skills = 4 + 1/2 CR -* Nonproficient saving throws and abilities = −2 to +2, based on the monster's story -* Attack bonus = 4 + 1/2 CR -* DC for saving throws = 12 + 1/2 CR -* Total damage per round = (7 × CR) + 5 +* Armor Class = 12 + 1/2 CR +* Hit points = (15 × CR) + 15 +* Proficient saving throws and skills = 4 + 1/2 CR +* Nonproficient saving throws and abilities = −2 to +2, based on the monster's story +* Attack bonus = 4 + 1/2 CR +* DC for saving throws = 12 + 1/2 CR +* Total damage per round = (7 × CR) + 5 Start your monster out with one attack, then add one additional attack at CR 2, CR 7, CR 11, and CR 15. Split the total damage noted above across all attacks. @@ -494,11 +494,11 @@ You can also compute averages for dice expressions with simple equations you can Once you're in the middle of an encounter, you can make use of a number of other quick tricks to make running monsters easier, with more flexibility and greater speed. Try any of the following options at your table, and make use of any trick that helps your game: -* Use fixed initiative for monsters equal to 10 + each monster's Dexterity bonus. Even faster? Just have all monsters act on initiative count 12. -* Reduce hit points on the fly to allow monsters to drop or surrender more quickly, or increase a monster's number of attacks or damage if the characters are having too easy a time. -* Have foes flee or surrender when it makes sense to move the game forward. -* Have constructs and undead be destroyed when the creature controlling them dies. -* Run multiple waves of monsters for big battles. +* Use fixed initiative for monsters equal to 10 + each monster's Dexterity bonus. Even faster? Just have all monsters act on initiative count 12. +* Reduce hit points on the fly to allow monsters to drop or surrender more quickly, or increase a monster's number of attacks or damage if the characters are having too easy a time. +* Have foes flee or surrender when it makes sense to move the game forward. +* Have constructs and undead be destroyed when the creature controlling them dies. +* Run multiple waves of monsters for big battles. Include creatures designed to eat "save or suck" attacks such as *banishment* or *polymorph*. @@ -655,15 +655,15 @@ Sometimes all a game needs is an interesting location and some cool monsters to Sometimes we need more, though, particularly for big set-piece battles or boss fights. When it's time to build an interesting and dynamic encounter, the following checklist can help determine what options a big combat might need: -* Interesting monsters -* A fantastic location -* Zone-wide effects -* Traps and hazards -* Advantageous positions -* Interactive objects -* Cover -* Difficult or fantastic terrain -* A goal +* Interesting monsters +* A fantastic location +* Zone-wide effects +* Traps and hazards +* Advantageous positions +* Interactive objects +* Cover +* Difficult or fantastic terrain +* A goal No battle needs all these things, but it's worth running through the list to see which options fit the sort of combat scenario you're putting together. @@ -681,16 +681,16 @@ However, you want to ensure that your fantastic location isn't too big. It's no Sometimes a combat environment has a big ongoing effect—something that impacts all the creatures in the area, no matter where they are. Such zone-wide effects can make a fight more interesting, as with any of the following examples: -* Unholy energy in a crypt makes healing magic only half as effective as normal. -* Supernatural fire negates any creature's resistance to fire, and turns immunity to fire into resistance. -* Psychic wailing forces each character to succeed on a DC 10 Constitution check to successfully cast a spell. -* Periodic bolts of lightning strike, with each creature in combat having a 1-in-4 chance of being struck at the start of their turn. -* An arcane rift causes each damaging spell cast in a fight to deal an extra 2d6 force damage. -* An aura of bloody rage fills the area, granting each combatant advantage on attack rolls. -* A rift to a realm of chaos causes all spells to trigger a wild magic surge. -* The god of blood infuses all melee attacks with an extra die of damage. -* A rift in space-time lets a creature swap places with an enemy within 60 feet if that enemy fails a DC 12 Wisdom saving throw. -* A thick fog makes it impossible to see creatures more than 30 feet away. +* Unholy energy in a crypt makes healing magic only half as effective as normal. +* Supernatural fire negates any creature's resistance to fire, and turns immunity to fire into resistance. +* Psychic wailing forces each character to succeed on a DC 10 Constitution check to successfully cast a spell. +* Periodic bolts of lightning strike, with each creature in combat having a 1-in-4 chance of being struck at the start of their turn. +* An arcane rift causes each damaging spell cast in a fight to deal an extra 2d6 force damage. +* An aura of bloody rage fills the area, granting each combatant advantage on attack rolls. +* A rift to a realm of chaos causes all spells to trigger a wild magic surge. +* The god of blood infuses all melee attacks with an extra die of damage. +* A rift in space-time lets a creature swap places with an enemy within 60 feet if that enemy fails a DC 12 Wisdom saving throw. +* A thick fog makes it impossible to see creatures more than 30 feet away. Avoid zone-wide effects that are just plain annoying. Having creatures fall down a lot because of icy floors sounds fun—until all the characters are lying on their backs and the players are wishing they'd never entered the fight in the first place. @@ -712,16 +712,16 @@ Getting the characters to enter an arena (literal or metaphorical) and move arou Make sure that the battlefield features some interactive objects. This can include any physical features the characters can manipulate and use to their advantage in a fight, including things like the following: -* Crumbling statues that can be easily toppled -* Pillars that collapse part of the ceiling -* Chandeliers upon which to swing -* Ballistas the characters can use to fire upon their foes -* Obelisks infusing the villain with power until they're destroyed -* Levers that physically or magically transform parts of the battlefield -* Catapults that can hurl allies to the far side of the fight -* Cranes lifting heavy objects that can be dropped onto foes -* Fiery cauldrons or braziers ready to tip over -* Deep wells into which enemies can be dumped +* Crumbling statues that can be easily toppled +* Pillars that collapse part of the ceiling +* Chandeliers upon which to swing +* Ballistas the characters can use to fire upon their foes +* Obelisks infusing the villain with power until they're destroyed +* Levers that physically or magically transform parts of the battlefield +* Catapults that can hurl allies to the far side of the fight +* Cranes lifting heavy objects that can be dropped onto foes +* Fiery cauldrons or braziers ready to tip over +* Deep wells into which enemies can be dumped ### Cover @@ -735,31 +735,31 @@ Different areas of a location might have some sort of terrain feature that can i Any of the following terrain features can make a big battle location more interesting: -* A crumbling bridge over a deep crevasse -* Spikes of sharp glass that cut creatures when they fall or are forced to move through them -* Jets of flame that randomly erupt -* Swampy land that belches forth poisonous gas when crossed -* Oiled surfaces that cause creatures to slide across them uncontrollably. -* Electrified floors that deal damage to creatures at the start of each turn -* An area filled with antigravity magic that causes creatures to fall to the ceiling -* An ethereal rift where creatures become invisible and insubstantial -* Pockets of shadow where characters have their life energy drained away -* An area of antilife magic where living creatures gain vulnerability to necrotic damage +* A crumbling bridge over a deep crevasse +* Spikes of sharp glass that cut creatures when they fall or are forced to move through them +* Jets of flame that randomly erupt +* Swampy land that belches forth poisonous gas when crossed +* Oiled surfaces that cause creatures to slide across them uncontrollably. +* Electrified floors that deal damage to creatures at the start of each turn +* An area filled with antigravity magic that causes creatures to fall to the ceiling +* An ethereal rift where creatures become invisible and insubstantial +* Pockets of shadow where characters have their life energy drained away +* An area of antilife magic where living creatures gain vulnerability to necrotic damage ### A Goal Finally, think about what objective an encounter might have beyond simply taking out all the enemies. What might the characters do to "complete" the encounter? The following sorts of goals work well in a big set-piece encounter: -* Stop a ritual before cultists summon a demon. -* Recover an artifact and escape with it. -* Kill the boss, but don't worry about their minions. -* Activate a gateway and escape through it. -* Recover a prisoner. -* Steal secret plans. -* Destroy a powerful monument. -* Activate the four altars around a temple site. -* Close a magical gateway and prevent the villain's escape. -* Destroy a doomsday device before it blows up the multiverse. +* Stop a ritual before cultists summon a demon. +* Recover an artifact and escape with it. +* Kill the boss, but don't worry about their minions. +* Activate a gateway and escape through it. +* Recover a prisoner. +* Steal secret plans. +* Destroy a powerful monument. +* Activate the four altars around a temple site. +* Close a magical gateway and prevent the villain's escape. +* Destroy a doomsday device before it blows up the multiverse. ## Monster Combinations for a Hard Challenge @@ -785,19 +785,19 @@ The rightmost column under Boss Scenarios builds encounters with eight minions, To build encounters using the tables, follow these steps: -* Select the appropriate table, based on the number of characters in the party—four, five, or six. -* In the leftmost column of the selected table, find the row containing the average character level for all the characters. (To find the average, add up all the characters' levels, then divide by the number of characters and round down.) -* Follow that row to the column containing the encounter concept you wish to use. For example, to create an encounter with one boss and three lesser monsters, you'd go to the 1 Boss + 3 Monsters column. -* The entry you cross-referenced notes the challenge ratings of the creature or creatures in your encounter. If a multiplier is indicated, that's the number of monsters for the preceding CR. For example, wanting to challenge four 3rd-level characters with the encounter concept of one boss and three monsters yields an entry of "2 + 1/4 (×3)." This indicates that you want one CR 2 creature acting as the boss, and three CR 1/4 creatures acting as subordinates. -* Choose your monsters! If you're building a quick encounter, the recommendations in "Monsters by Adventure Location" are a good starting point. +* Select the appropriate table, based on the number of characters in the party—four, five, or six. +* In the leftmost column of the selected table, find the row containing the average character level for all the characters. (To find the average, add up all the characters' levels, then divide by the number of characters and round down.) +* Follow that row to the column containing the encounter concept you wish to use. For example, to create an encounter with one boss and three lesser monsters, you'd go to the 1 Boss + 3 Monsters column. +* The entry you cross-referenced notes the challenge ratings of the creature or creatures in your encounter. If a multiplier is indicated, that's the number of monsters for the preceding CR. For example, wanting to challenge four 3rd-level characters with the encounter concept of one boss and three monsters yields an entry of "2 + 1/4 (×3)." This indicates that you want one CR 2 creature acting as the boss, and three CR 1/4 creatures acting as subordinates. +* Choose your monsters! If you're building a quick encounter, the recommendations in "Monsters by Adventure Location" are a good starting point. #### Scaling Encounters Each of the tables is intended to build a hard encounter. However, you can easily build encounters with other challenge levels in mind by adding or subtracting a modifier to the party's average character level: -* For a deadly challenge: +1 or +2 -* For a medium challenge: −2 -* For an easy challenge: −4 +* For a deadly challenge: +1 or +2 +* For a medium challenge: −2 +* For an easy challenge: −4 For example, when building an encounter for four 10th-level characters, you could use the row for 8th-level characters to create a medium challenge. @@ -893,9 +893,9 @@ The primary calculation of the lazy encounter benchmark compares the challenge r What exactly does "deadly" mean in this context? In a deadly encounter: -* Most characters might lose more than half their hit points. -* Several characters might go unconscious. -* There's a chance that one or more characters might die. +* Most characters might lose more than half their hit points. +* Several characters might go unconscious. +* There's a chance that one or more characters might die. For example, imagine an encounter pitting five 4th-level characters against four ogres of CR 2. To see how dangerous this fight might be, add all the character levels together and divide by 4 (because they're lower than 5th level), giving a result of 20 ÷ 4 = 5. Now compare that result to the sum of monster challenge ratings, with four CR 2 ogres giving a total of 8. Because 8 is more than 5, this could be a potentially deadly encounter. @@ -935,26 +935,26 @@ For example, if a party in your campaign has companion NPCs who make combat easi Many circumstances can change how challenging an actual combat encounter might be. All of the following examples set up types of encounters that often play out more easily than the lazy encounter benchmark might suggest: -* The fight features significantly more characters than foes. -* The characters' goals in an encounter can be achieved without eliminating all the foes from the fight. -* The environment favors the characters. -* The monsters come in waves instead of all at once. -* Foes are distracted or in disadvantageous positions. -* The monsters are all surprised, or all act after the characters in initiative. -* The characters have spells or features well suited for taking out foes. -* The players engage in excellent tactical behavior and synergistic strategies. -* The characters are well rested and coming in fresh. -* The characters have an arsenal of powerful magic items. -* The characters have useful companions. +* The fight features significantly more characters than foes. +* The characters' goals in an encounter can be achieved without eliminating all the foes from the fight. +* The environment favors the characters. +* The monsters come in waves instead of all at once. +* Foes are distracted or in disadvantageous positions. +* The monsters are all surprised, or all act after the characters in initiative. +* The characters have spells or features well suited for taking out foes. +* The players engage in excellent tactical behavior and synergistic strategies. +* The characters are well rested and coming in fresh. +* The characters have an arsenal of powerful magic items. +* The characters have useful companions. Likewise, the monsters might be favored over the characters in the following types of encounters: -* The monsters outnumber the characters. -* The characters are surprised by the monsters. -* Foes have advantageous position. -* The terrain favors the foes. -* The monsters fight with a strong tactical synergy. -* The characters are coming in well worn by previous fights and have no chance to rest. +* The monsters outnumber the characters. +* The characters are surprised by the monsters. +* Foes have advantageous position. +* The terrain favors the foes. +* The monsters fight with a strong tactical synergy. +* The characters are coming in well worn by previous fights and have no chance to rest. As you make use of the benchmark, you'll soon come to recognize when the circumstances of a combat encounter might steer it toward an easier or harder fight. @@ -972,10 +972,10 @@ As you make use of the benchmark, you'll soon come to recognize when the circums This section offers quick starting points for building encounters, in the form of tables that cover a broad range of foes in twelve types of common adventure location. The tables serve four purposes: -* They show which creatures might inhabit a particular adventure location. -* They highlight foes appropriate for a given level range in that location. -* They show which foes might naturally pair up with other foes. -* They offer example relationships between creatures and suggest what they might be doing in a location. +* They show which creatures might inhabit a particular adventure location. +* They highlight foes appropriate for a given level range in that location. +* They show which foes might naturally pair up with other foes. +* They offer example relationships between creatures and suggest what they might be doing in a location. Though you can use the setups in the tables directly, you'll get even more value from them by customizing your own list of foes for these common locations and scenarios—or by adding environments and scenarios that fit the specifics of your campaign. @@ -985,145 +985,145 @@ Monsters who are in **bold** represent potential bosses for an encounter. ### Ancient Ruins -| Level | Example Encounters | -| ------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| 1st | * A **thug** leads bandits intending to rob a caravan. -* A vengeful **shadow** shifts in the darkness among a handful of arisen skeletons. | -| 2nd to 4th | * A pair of **bugbear** entrepreneurs use goblin actors as bait to seek adventurers as prey. -* A sorrowful **banshee** orders specters to recreate their former beautiful life. -* A **gnoll pack lord** bounty hunter leads gnolls and hyenas after an escaped prisoner. -* A **death dog** protected by wolves lairs in a ruined cave. -* A **lamia** served by jackalweres dwells in an illusory paradise. | -| 5th to 10th | * A wise **bugbear chief** leads bugbear and goblin soldiers from an obsidian throne. -* A **cyclops** matriarch leads fanatically loyal ogres. -* A solitary **medusa** dwells in a mausoleum, surrounded by petrified heroes and protected by death dogs. -* A noble **oni** in a posh den is guarded by loyal spirit naga storytellers. | -| 11th to 16th | * An **adult blue dragon** is guarded by clay golems in a jeweled lair. | -| 17th to 20th | * An **ancient blue dragon** protected by stone golems and air elementals dwells in the shattered remains of a tower. | +| Level | Example Encounters | +| ------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| 1st | * A **thug** leads bandits intending to rob a caravan. +* A vengeful **shadow** shifts in the darkness among a handful of arisen skeletons. | +| 2nd to 4th | - A pair of **bugbear** entrepreneurs use goblin actors as bait to seek adventurers as prey. +- A sorrowful **banshee** orders specters to recreate their former beautiful life. +- A **gnoll pack lord** bounty hunter leads gnolls and hyenas after an escaped prisoner. +- A **death dog** protected by wolves lairs in a ruined cave. +- A **lamia** served by jackalweres dwells in an illusory paradise. | +| 5th to 10th | * A wise **bugbear chief** leads bugbear and goblin soldiers from an obsidian throne. +* A **cyclops** matriarch leads fanatically loyal ogres. +* A solitary **medusa** dwells in a mausoleum, surrounded by petrified heroes and protected by death dogs. +* A noble **oni** in a posh den is guarded by loyal spirit naga storytellers. | +| 11th to 16th | - An **adult blue dragon** is guarded by clay golems in a jeweled lair. | +| 17th to 20th | * An **ancient blue dragon** protected by stone golems and air elementals dwells in the shattered remains of a tower. | ### Crypts, Catacombs, Necropolises -| Level | Example Encounters | -| ------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| 1st | * A pair of **skeletons** rises from a pile of crawling claws. | -| 2nd to 4th | * A lost **ghost** wanders, surrounded by specters. -* A **bone naga** rises from an obsidian sarcophagus to command a host of skeletons. | -| 5th to 10th | * A **mummy lord** entombed in a cold-iron sarcophagus is guarded by mummies and wights. -* A pair of **wraiths** float above unholy urns surrounded by vengeful specters. | -| 11th to 16th | * A **vampire** in a gilded tomb is guarded by howling dire wolves and served by vampire spawn. | -| 17th to 20th | * A **lich** in an unhallowed laboratory is protected by loyal death knights and iron golems. | +| Level | Example Encounters | +| ------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| 1st | * A pair of **skeletons** rises from a pile of crawling claws. | +| 2nd to 4th | - A lost **ghost** wanders, surrounded by specters. +- A **bone naga** rises from an obsidian sarcophagus to command a host of skeletons. | +| 5th to 10th | * A **mummy lord** entombed in a cold-iron sarcophagus is guarded by mummies and wights. +* A pair of **wraiths** float above unholy urns surrounded by vengeful specters. | +| 11th to 16th | - A **vampire** in a gilded tomb is guarded by howling dire wolves and served by vampire spawn. | +| 17th to 20th | * A **lich** in an unhallowed laboratory is protected by loyal death knights and iron golems. | ### City Sewers -| Level | Example Encounters | -| ---------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| 1st | * A wandering **zombie** is covered by a swarm of rats. | -| 2nd to 4th | * An erudite **ghast** weaves fantastic tales to their ravenous ghoul followers. -* A **spy** is guarded by unscrupulous bandits while awaiting the arrival of a contact. -* An **otyugh** luxuriates in a watery pit, surrounded by concealed gray oozes. -* **Wererats** try to be intimidating by threatening to feed prisoners to their giant rat pets. | +| Level | Example Encounters | +| ---------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| 1st | * A wandering **zombie** is covered by a swarm of rats. | +| 2nd to 4th | - An erudite **ghast** weaves fantastic tales to their ravenous ghoul followers. +- A **spy** is guarded by unscrupulous bandits while awaiting the arrival of a contact. +- An **otyugh** luxuriates in a watery pit, surrounded by concealed gray oozes. +- **Wererats** try to be intimidating by threatening to feed prisoners to their giant rat pets. | ### Seedy City Streets -| Level | Example Encounters | -| ----------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| 1st | * A **giant rat** and the swarm of rats that travels with them are feeding on a dead body. -* A **thug** and a pack of bandit toadies are waiting for someone to rob. | -| 2nd to 4th | * A **spy** assisted by thugs has been hired to steal something from the characters. -* A **bandit captain** with berserker bodyguards and bandit followers is easily insulted. -* A **cult fanatic** leads cultists who have summoned ravenous dretches into the world. | -| 5th to 10th | * A **mage** commanding veterans is seeking something the characters seek as well. -* A **bandit captain** protected by hired gladiators and veterans seeks the characters with an offer they can't refuse. -* A careful **assassin** backed up by spies and thugs hunts the characters. | +| Level | Example Encounters | +| ----------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| 1st | * A **giant rat** and the swarm of rats that travels with them are feeding on a dead body. +* A **thug** and a pack of bandit toadies are waiting for someone to rob. | +| 2nd to 4th | - A **spy** assisted by thugs has been hired to steal something from the characters. +- A **bandit captain** with berserker bodyguards and bandit followers is easily insulted. +- A **cult fanatic** leads cultists who have summoned ravenous dretches into the world. | +| 5th to 10th | * A **mage** commanding veterans is seeking something the characters seek as well. +* A **bandit captain** protected by hired gladiators and veterans seeks the characters with an offer they can't refuse. +* A careful **assassin** backed up by spies and thugs hunts the characters. | ### Wizard's Tower -| Level | Example Encounters | -| ------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------- | -| 1st | * A loyal **imp** commands a squad of guardian flying swords. | -| 2nd to 4th | * A summoned **succubus** or **incubus** directs animated armor serving as guards. | -| 5th to 10th | * Apprentice **mages** command elementals and flesh golems. -* An important chamber is guarded by two **flameskulls** and a number of helmed horrors. | -| 11th to 16th | * An impatient **archmage** is protected by two stone golems in an arcane laboratory. | -| 17th to 20th | * A **lich** studies the multiverse while protected by bound balors and iron golems. | +| Level | Example Encounters | +| ------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------- | +| 1st | * A loyal **imp** commands a squad of guardian flying swords. | +| 2nd to 4th | - A summoned **succubus** or **incubus** directs animated armor serving as guards. | +| 5th to 10th | * Apprentice **mages** command elementals and flesh golems. +* An important chamber is guarded by two **flameskulls** and a number of helmed horrors. | +| 11th to 16th | - An impatient **archmage** is protected by two stone golems in an arcane laboratory. | +| 17th to 20th | * A **lich** studies the multiverse while protected by bound balors and iron golems. | ### Volcano Lair -| Level | Example Encounters | -| ------------ | ------------------------------------------------------------------------------------------------------------------------------------------------ | -| 5th to 10th | * A **fire giant** with pet hell hounds commands an azer to dig for them. -* A trapped **efreeti** uses fire elementals to fight for freedom. | -| 11th to 16th | * An **adult red dragon** served by salamanders demands fealty from the characters. | -| 17th to 20th | * An **ancient red dragon** worshiped by fire giants awakens from slumber. | +| Level | Example Encounters | +| ------------ | -------------------------------------------------------------------------------------------------------------------------------------------- | +| 5th to 10th | * A **fire giant** with pet hell hounds commands an azer to dig for them. +* A trapped **efreeti** uses fire elementals to fight for freedom. | +| 11th to 16th | - An **adult red dragon** served by salamanders demands fealty from the characters. | +| 17th to 20th | * An **ancient red dragon** worshiped by fire giants awakens from slumber. | ### Abyssal Keep -| Level | Example Encounters | -| ------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| 2nd to 4th | * A **night hag** and their pet quasit schemes within a chamber guarded by hell hounds. -* A summoning circle disgorges a **barlgura** and a gang of dretches. | -| 5th to 10th | * A **glabrezu** commands from a throne flanked by chasmes. | -| 11th to 16th | * A **marilith**, their cambion advisor, and a number of hezrou servants guard a planar gateway. | -| 17th to 20th | * A **balor**, a servile archmage, and a squad of glabrezu soldiers guard an artifact. | +| Level | Example Encounters | +| ------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| 2nd to 4th | * A **night hag** and their pet quasit schemes within a chamber guarded by hell hounds. +* A summoning circle disgorges a **barlgura** and a gang of dretches. | +| 5th to 10th | - A **glabrezu** commands from a throne flanked by chasmes. | +| 11th to 16th | * A **marilith**, their cambion advisor, and a number of hezrou servants guard a planar gateway. | +| 17th to 20th | - A **balor**, a servile archmage, and a squad of glabrezu soldiers guard an artifact. | ### Dark Forests and Fetid Swamps -| Level | Example Encounters | -| ------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| 1st | * An elf **cultist** hunts prey with bloodthirsty wolves. | -| 2nd to 4th | * Two **ettercaps** and their giant spiders stalk adventurers. -* An **ettin** warlord commands a host of orc mercenaries. -* A **green hag** lurks in an old hut with a pet giant toad, and is guarded by loyal bullywugs. -* A **werewolf** prowls the shadows with their dire wolf companions. | -| 5th to 10th | * An **orc war chief** commands a force of ettin and orc scouts based in a ruined keep. | -| 11th to 16th | * An **adult black dragon** commands a host of trolls made loyal through fear. -* An **adult green dragon** lurks in a dead forest, protected by shambling mounds. | -| 17th to 20th | * An **ancient black dragon** dwells in a sunken bog filled with giant crocodiles. -* An **ancient green dragon** rules from an ancient wooden throne guarded by loyal treants. | +| Level | Example Encounters | +| ------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| 1st | * An elf **cultist** hunts prey with bloodthirsty wolves. | +| 2nd to 4th | - Two **ettercaps** and their giant spiders stalk adventurers. +- An **ettin** warlord commands a host of orc mercenaries. +- A **green hag** lurks in an old hut with a pet giant toad, and is guarded by loyal bullywugs. +- A **werewolf** prowls the shadows with their dire wolf companions. | +| 5th to 10th | * An **orc war chief** commands a force of ettin and orc scouts based in a ruined keep. | +| 11th to 16th | - An **adult black dragon** commands a host of trolls made loyal through fear. +- An **adult green dragon** lurks in a dead forest, protected by shambling mounds. | +| 17th to 20th | * An **ancient black dragon** dwells in a sunken bog filled with giant crocodiles. +* An **ancient green dragon** rules from an ancient wooden throne guarded by loyal treants. | ### Hellish Citadel -| Level | Example Encounters | -| ------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| 2nd to 4th | * A **bearded devil** draws lemures through a portal connected to the river Styx. -* A **barbed devil** and a host of imps keep watch on enemy forces. | -| 5th to 10th | * An armored **erinyes** commanding a host of spined devils prepares for war. -* A **horned devil** leading bearded devil soldiers guards an oracular sphere. | -| 11th to 16th | * **Ice devil** wardens and bone devil guards protect a valuable prisoner. | -| 17th to 20th | * **Pit fiend** commanders and horned devil lieutenants use scrying crystals to get the drop on the characters. | +| Level | Example Encounters | +| ------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| 2nd to 4th | * A **bearded devil** draws lemures through a portal connected to the river Styx. +* A **barbed devil** and a host of imps keep watch on enemy forces. | +| 5th to 10th | - An armored **erinyes** commanding a host of spined devils prepares for war. +- A **horned devil** leading bearded devil soldiers guards an oracular sphere. | +| 11th to 16th | * **Ice devil** wardens and bone devil guards protect a valuable prisoner. | +| 17th to 20th | - **Pit fiend** commanders and horned devil lieutenants use scrying crystals to get the drop on the characters. | ### Frozen Fortress -| Level | Example Encounters | -| ------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| 5th to 10th | * **Frost giant** hunters enjoy the sport of their remorhaz pet stalking commoners. -* The bone-cluttered cave of an **abominable yeti** is guarded by winter wolves. | -| 11th to 16th | * An **adult white dragon** is served by loyal frost giants. | -| 17th to 20th | * An **ancient white dragon** lairing atop an inaccessible peak is worshiped by generations of abominable yetis. | +| Level | Example Encounters | +| ------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| 5th to 10th | * **Frost giant** hunters enjoy the sport of their remorhaz pet stalking commoners. +* The bone-cluttered cave of an **abominable yeti** is guarded by winter wolves. | +| 11th to 16th | - An **adult white dragon** is served by loyal frost giants. | +| 17th to 20th | * An **ancient white dragon** lairing atop an inaccessible peak is worshiped by generations of abominable yetis. | ### Deep Caverns -| Level | Example Encounters | -| ----------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| 1st | * A **cockatrice** pecks at a crumbling statue, while stirges linger above. -* A **giant bat** surrounded by swarms of bats skulks in the shadows. | -| 2nd to 4th | * **Darkmantles** and piercers lurk in pools of shadow. -* A worg-riding **goblin boss** commands a squad of goblin hunters. | -| 5th to 10th | * **Basilisks** and cockatrices lair in a hall full of petrified adventurers. -* A **cloaker** lurks above a pack of hook horrors disemboweling a dead bulette. -* **Ropers** and darkmantles hang above a waterfall, competing for prey. | +| Level | Example Encounters | +| ----------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| 1st | * A **cockatrice** pecks at a crumbling statue, while stirges linger above. +* A **giant bat** surrounded by swarms of bats skulks in the shadows. | +| 2nd to 4th | - **Darkmantles** and piercers lurk in pools of shadow. +- A worg-riding **goblin boss** commands a squad of goblin hunters. | +| 5th to 10th | * **Basilisks** and cockatrices lair in a hall full of petrified adventurers. +* A **cloaker** lurks above a pack of hook horrors disemboweling a dead bulette. +* **Ropers** and darkmantles hang above a waterfall, competing for prey. | ### Sunken Grotto -| Level | Example Encounters | -| ------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| 1st | * A **lizardfolk** hunter is teaching their trained giant crabs how to hunt. | -| 2nd to 4th | * A **sea hag** commands loyal kuo-toa to set up an effigy to a fictitious god. -* A **lizard king** with a lizardfolk shaman advisor commands a clan of lizardfolk from a coral throne. | -| 5th to 10th | * An **aboleth** in a swirling pool is guarded by chuuls and worshiped by enthralled veterans. -* A **sahuagin baron** watches a pack of sahuagin fight water weirds. -* A corrupt **sahuagin priestess** feeds sacrificial victims to giant crocodiles. | -| 11th to 16th | * A **kraken** rules a deep-sea trench, surrounded by reverent water elementals. | +| Level | Example Encounters | +| ------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| 1st | * A **lizardfolk** hunter is teaching their trained giant crabs how to hunt. | +| 2nd to 4th | - A **sea hag** commands loyal kuo-toa to set up an effigy to a fictitious god. +- A **lizard king** with a lizardfolk shaman advisor commands a clan of lizardfolk from a coral throne. | +| 5th to 10th | * An **aboleth** in a swirling pool is guarded by chuuls and worshiped by enthralled veterans. +* A **sahuagin baron** watches a pack of sahuagin fight water weirds. +* A corrupt **sahuagin priestess** feeds sacrificial victims to giant crocodiles. | +| 11th to 16th | - A **kraken** rules a deep-sea trench, surrounded by reverent water elementals. | ## Monsters and the Tiers of Play diff --git a/LGMRD.md b/LGMRD.md index dcc7f90..3e832d9 100644 --- a/LGMRD.md +++ b/LGMRD.md @@ -20,51 +20,51 @@ You can find several versions of this document including EPUB, Markdown, and JSO ## Table of Contents -* [The Eight Steps of Lazy RPG Prep](#eightsteps) -* [The Lazy RPG Preparation Process](#prepprocess) -* [Example Strong Starts](#strongstarts) -* [Creating Secrets and Clues](#creatingsecrets) -* [Building an RPG Group](#buildingagroup) -* [Session Zero Checklist](#sessionzerochecklist) -* [Safety Tools](#safetytools) -* [Connecting Characters](#connectingcharacters) -* [Spiral Campaign Development](#spiralcampaigns) -* [Quest Templates](#questtemplates) -* [Tools for 5e Improvisation](#toolsforimprov) -* [Quick Tricks for Lazier 5e Games](#quicktricks) -* [5e Quick Encounter Building](#quickencounterbuilding) -* [Wilderness Travel and Exploration](#wildernesstravel) -* [Lazy Combat Encounter Building for 5e](#lazycombatencounterbuilding) -* [Theater of the Mind Guidelines (Extended)](#totmguidelines1) -* [Theater of the Mind Guidelines (Abbreviated)](#totm2) -* [Zone-Based Combat](#zonebasedcombat) -* [Monster Difficulty Dials](#monsterdifficultydials) -* [Monster Templates](#monstertemplates) -* [Undead Templates](#undeadtemplates) -* [Running Hordes](#runninghordes) -* [Stress Effects](#stresseffects) -* [Core Adventure Generators](#coreadventuregenerators) -* [NPC Generator](#npcgenerator) -* [Treasure Generator](#treasuregenerator) -* [Random Traps](#randomtraps) -* [Random Monuments](#randommonuments) -* [Random Items](#randomitems) -* [Random Town Events](#randomtownevents) -* [Random Dungeon Monsters](#randomdungeonmonsters) -* [Lazy Solo 5e](#lazysolo5e) +* [The Eight Steps of Lazy RPG Prep](#eightsteps) +* [The Lazy RPG Preparation Process](#prepprocess) +* [Example Strong Starts](#strongstarts) +* [Creating Secrets and Clues](#creatingsecrets) +* [Building an RPG Group](#buildingagroup) +* [Session Zero Checklist](#sessionzerochecklist) +* [Safety Tools](#safetytools) +* [Connecting Characters](#connectingcharacters) +* [Spiral Campaign Development](#spiralcampaigns) +* [Quest Templates](#questtemplates) +* [Tools for 5e Improvisation](#toolsforimprov) +* [Quick Tricks for Lazier 5e Games](#quicktricks) +* [5e Quick Encounter Building](#quickencounterbuilding) +* [Wilderness Travel and Exploration](#wildernesstravel) +* [Lazy Combat Encounter Building for 5e](#lazycombatencounterbuilding) +* [Theater of the Mind Guidelines (Extended)](#totmguidelines1) +* [Theater of the Mind Guidelines (Abbreviated)](#totm2) +* [Zone-Based Combat](#zonebasedcombat) +* [Monster Difficulty Dials](#monsterdifficultydials) +* [Monster Templates](#monstertemplates) +* [Undead Templates](#undeadtemplates) +* [Running Hordes](#runninghordes) +* [Stress Effects](#stresseffects) +* [Core Adventure Generators](#coreadventuregenerators) +* [NPC Generator](#npcgenerator) +* [Treasure Generator](#treasuregenerator) +* [Random Traps](#randomtraps) +* [Random Monuments](#randommonuments) +* [Random Items](#randomitems) +* [Random Town Events](#randomtownevents) +* [Random Dungeon Monsters](#randomdungeonmonsters) +* [Lazy Solo 5e](#lazysolo5e) ## The Eight Steps of Lazy RPG Prep For a typical game session, the Lazy RPG Prep checklist looks like this: -* Review the characters -* Create a strong start -* Outline potential scenes -* Define secrets and clues -* Develop fantastic locations -* Outline important NPCs -* Choose relevant monsters -* Select magic item rewards +* Review the characters +* Create a strong start +* Outline potential scenes +* Define secrets and clues +* Develop fantastic locations +* Outline important NPCs +* Choose relevant monsters +* Select magic item rewards Here's a brief summary of each of the steps. @@ -114,67 +114,67 @@ These steps and processes work just as well whether you interact with your playe If you have very little time, reduce the checklist to the most important things you can prepare before it's time to run the game. Here are three example steps. -* Create a strong start -* Define secrets and clues -* Develop fantastic locations +* Create a strong start +* Define secrets and clues +* Develop fantastic locations ## The Lazy RPG Preparation Process ### The Lazy RPG Prep Toolkit -* Dice, pencils, and dry-erase markers -* GM's notebook -* Campaign worksheet -* Curated random name list -* 3×5 index cards -* Numbered initiative cards -* GM screen or cheat sheet -* Dry-erase flip mat -* Published books and adventures -* Miniatures, maps, and terrain as needed +* Dice, pencils, and dry-erase markers +* GM's notebook +* Campaign worksheet +* Curated random name list +* 3×5 index cards +* Numbered initiative cards +* GM screen or cheat sheet +* Dry-erase flip mat +* Published books and adventures +* Miniatures, maps, and terrain as needed ### Building a Lazy Campaign -* Develop a spiral campaign with the characters at the center -* Build a campaign hook focusing on a single major goal -* State the six truths of your campaign -* Define three fronts incorporating goals and grim portents -* Run a session zero to help build the characters and tie them together +* Develop a spiral campaign with the characters at the center +* Build a campaign hook focusing on a single major goal +* State the six truths of your campaign +* Define three fronts incorporating goals and grim portents +* Run a session zero to help build the characters and tie them together ### Running Your Game -* Relax -* Focus on your strong start -* Listen to the players, and build off of the ideas they bring you -* Trust your preparation to help you run a creative, flexible game -* Ask the players to summarize the events of the previous game session -* Draw players into the story by asking them to describe killing blows, define monster characteristics, and describe interesting events during travel -* Imagine the world as a living place when building scenes and situations -* Let the world and the NPCs react to the characters' actions -* Use a mixture of combat styles, including theater of the mind, gridded maps, and abstract maps -* Maintain a good pace by staying close to the action -* Cycle between action and relaxation, and alternate upward and downward emotional beats -* Use specific hopeful or fearful beats to send the action in a specific direction +* Relax +* Focus on your strong start +* Listen to the players, and build off of the ideas they bring you +* Trust your preparation to help you run a creative, flexible game +* Ask the players to summarize the events of the previous game session +* Draw players into the story by asking them to describe killing blows, define monster characteristics, and describe interesting events during travel +* Imagine the world as a living place when building scenes and situations +* Let the world and the NPCs react to the characters' actions +* Use a mixture of combat styles, including theater of the mind, gridded maps, and abstract maps +* Maintain a good pace by staying close to the action +* Cycle between action and relaxation, and alternate upward and downward emotional beats +* Use specific hopeful or fearful beats to send the action in a specific direction ### Thinking About Your Game -* Prime your GM's brain with great books, movies, and TV shows -* Remind yourself of the player characters' names and backgrounds -* Ask what the villains and NPCs are doing right now +* Prime your GM's brain with great books, movies, and TV shows +* Remind yourself of the player characters' names and backgrounds +* Ask what the villains and NPCs are doing right now ### Embrace the GM's Truths -* Players don't care as much as you think -* Players want to see their characters do awesome things -* The GM is not the enemy of the characters -* Be a fan of the characters +* Players don't care as much as you think +* Players want to see their characters do awesome things +* The GM is not the enemy of the characters +* Be a fan of the characters ### Lazy RPG Tricks -* Award levels at key points in the story -* Improvise ability and skill checks -* Delegate certain tasks to the players -* Use static monster damage +* Award levels at key points in the story +* Improvise ability and skill checks +* Delegate certain tasks to the players +* Use static monster damage ## Example Strong Starts @@ -184,60 +184,60 @@ A strong start kicks your game off in the middle of the action. It helps the pla In a settlement, a strong start can make use of either combat or roleplaying. -1. The characters interrupt bandits breaking into a shop. -2. Something slithers out of a nearby sewer. -3. A noble lord bumps into one of the characters and threatens to have them arrested. -4. A group of cultists kindly ask for a sample of a character's blood. -5. A hooded patron visits the characters, asking the characters to kill them in two days. -6. A riot draws the local watch away, whereupon a squad of hired killers descends on the characters. -7. The campaign's main villain shows up and invites the characters for a drink. -8. A scarred explorer offers to sell one of the characters a map to a site of a lost or stolen ancestral heirloom. -9. A golem from a wizards' academy goes on a rampage. +1. The characters interrupt bandits breaking into a shop. +2. Something slithers out of a nearby sewer. +3. A noble lord bumps into one of the characters and threatens to have them arrested. +4. A group of cultists kindly ask for a sample of a character's blood. +5. A hooded patron visits the characters, asking the characters to kill them in two days. +6. A riot draws the local watch away, whereupon a squad of hired killers descends on the characters. +7. The campaign's main villain shows up and invites the characters for a drink. +8. A scarred explorer offers to sell one of the characters a map to a site of a lost or stolen ancestral heirloom. +9. A golem from a wizards' academy goes on a rampage. 10. The local monarch is assassinated and a villain takes over the government. ### Sewers A session that starts in a sewer can make use of numerous monsters and hazards. -1. A flood of poisonous water flows past the characters' position. -2. The sewer collapses into deeper tunnels sealed up for centuries. -3. A wererat approaches the characters, offering to sell valuable information. -4. A pack of ghouls chase a young couple reported missing days ago. -5. A legendary giant crocodile stealthily stalks the characters. -6. The characters find a powerful magical dagger sought by a guild of wraith assassins. -7. Swampy sewer gas gives one of the characters supernatural visions of the villain's master plan. -8. The characters meet an eccentric wizard farming mushrooms for spell components. -9. A wall collapses, revealing a hidden temple of the god of slimes and oozes. +1. A flood of poisonous water flows past the characters' position. +2. The sewer collapses into deeper tunnels sealed up for centuries. +3. A wererat approaches the characters, offering to sell valuable information. +4. A pack of ghouls chase a young couple reported missing days ago. +5. A legendary giant crocodile stealthily stalks the characters. +6. The characters find a powerful magical dagger sought by a guild of wraith assassins. +7. Swampy sewer gas gives one of the characters supernatural visions of the villain's master plan. +8. The characters meet an eccentric wizard farming mushrooms for spell components. +9. A wall collapses, revealing a hidden temple of the god of slimes and oozes. 10. A flood of water draws the characters into a dangerously large mechanical sluice system. ### Wilderness Wilderness locations can involve either action or mystery in a strong start. -1. A nearby tree opens up, and a satyr steps through and says "Hi!" -2. A rampaging werebear storms through the area, mistaking the characters for the hunters who killed their mate. -3. Night falls, revealing an alien starscape above. -4. The characters see a tall humanoid with antlers stalking from the shadows, carrying a large scythe in one hand and three humanoid heads in the other. -5. The ground suddenly churns, bringing the body of a long-lost elf king to the surface. The king's eyes open. -6. The characters stumble upon a nest of skeletal pixies surrounding a desecrated fey gate. -7. A golden-antlered stag leaps into the characters' camp and asks to be defended from the hunters chasing it. -8. An old woman greets the characters, offering them candy and baked treats if they will come to her nearby cottage. -9. A skeleton hanging from a tree begs the characters to right the wrong it committed while alive. +1. A nearby tree opens up, and a satyr steps through and says "Hi!" +2. A rampaging werebear storms through the area, mistaking the characters for the hunters who killed their mate. +3. Night falls, revealing an alien starscape above. +4. The characters see a tall humanoid with antlers stalking from the shadows, carrying a large scythe in one hand and three humanoid heads in the other. +5. The ground suddenly churns, bringing the body of a long-lost elf king to the surface. The king's eyes open. +6. The characters stumble upon a nest of skeletal pixies surrounding a desecrated fey gate. +7. A golden-antlered stag leaps into the characters' camp and asks to be defended from the hunters chasing it. +8. An old woman greets the characters, offering them candy and baked treats if they will come to her nearby cottage. +9. A skeleton hanging from a tree begs the characters to right the wrong it committed while alive. 10. A sinkhole opens up, revealing the tunnels of long-forgotten burial chambers. ### Dungeons, Caves, and Caverns Subterranean adventures lend themselves to the widest possible range of strong starts. -1. A vampire appears from a sudden rise of mist, introduces herself, and asks the characters for a favor. -2. An ancient statue turns its head toward the characters and whispers a valuable secret. -3. The floor collapses, revealing even deeper tunnels long forgotten. -4. Through a cracked wall, the characters spot a gateway flanked by two huge obsidian statues, and featuring a set of stairs leading down. -5. The characters come across two bands of goblins fighting each other for the favor of a hag named Auntie Chiptooth. -6. An eyestalk swells out from an oozy patch on the wall, beholds the characters, and then disappears back into the wall. -7. A wounded knight collapses near the characters, begging them to find her lost love before she dies. -8. The ground cracks open and a pillar of chipped obsidian juts out, projecting a prophecy in red Infernal glyphs on the walls of the chamber. -9. Stars swim in a moonlit well, then rise up to reveal themselves as will-o'-wisps. +1. A vampire appears from a sudden rise of mist, introduces herself, and asks the characters for a favor. +2. An ancient statue turns its head toward the characters and whispers a valuable secret. +3. The floor collapses, revealing even deeper tunnels long forgotten. +4. Through a cracked wall, the characters spot a gateway flanked by two huge obsidian statues, and featuring a set of stairs leading down. +5. The characters come across two bands of goblins fighting each other for the favor of a hag named Auntie Chiptooth. +6. An eyestalk swells out from an oozy patch on the wall, beholds the characters, and then disappears back into the wall. +7. A wounded knight collapses near the characters, begging them to find her lost love before she dies. +8. The ground cracks open and a pillar of chipped obsidian juts out, projecting a prophecy in red Infernal glyphs on the walls of the chamber. +9. Stars swim in a moonlit well, then rise up to reveal themselves as will-o'-wisps. 10. A spectral hound guides the characters to the camp of a reclusive mage. ## Creating Secrets and Clues @@ -250,15 +250,15 @@ The following prompts don't create specific secrets and clues. Rather, the quest Use character secrets to tie the characters to the world around them. These sorts of secrets might be revealed by NPCs, old journals or letters, suddenly recalled memories, or prophetic dreams. -1. What family history might be revealed? -2. What ties the character to this location? -3. What ghost or spirit haunts the character? -4. What dreams fill the character's rest? -5. What parasite secretly infests the character? -6. Which family member is involved in the adventure? -7. How is the villain related to the character? -8. What NPC who the character thinks is dead still lives? -9. What ritual was the character blessed with as a child? +1. What family history might be revealed? +2. What ties the character to this location? +3. What ghost or spirit haunts the character? +4. What dreams fill the character's rest? +5. What parasite secretly infests the character? +6. Which family member is involved in the adventure? +7. How is the villain related to the character? +8. What NPC who the character thinks is dead still lives? +9. What ritual was the character blessed with as a child? 10. What previous event ties the character to the story? ### Historical Secrets @@ -267,15 +267,15 @@ Use historical secrets to give the characters meaningful and useful information Historical secrets might be found as mosaics in ancient tombs, statues in old ruins, dusty tomes in ancient libraries, markings on strange weapons, or tales shared among elderly villagers. -1. What dead god has a connection to the area? -2. What armies once battled here? -3. What cruel lord was slain in this place? -4. What ancient civilization once thrived here? -5. What old empire's settlements lie buried here? -6. What alien creature or power is hidden here? -7. What rebellion took place here? -8. What primeval mysteries lay buried here? -9. What was this location's former purpose? +1. What dead god has a connection to the area? +2. What armies once battled here? +3. What cruel lord was slain in this place? +4. What ancient civilization once thrived here? +5. What old empire's settlements lie buried here? +6. What alien creature or power is hidden here? +7. What rebellion took place here? +8. What primeval mysteries lay buried here? +9. What was this location's former purpose? 10. What horrific monster once ruled here? ### NPC and Villain Secrets @@ -284,15 +284,15 @@ Use NPC and villain secrets to reveal information about these NPCs to the charac Characters might learn NPC or villain secrets from a villain's herald or sidekick, rumors at a local pub, recovered journals, a minion's last words, captured letters, or town gossip. -1. What dark history follows the NPC? -2. What makes the NPC think they're right? -3. What was the NPC's great accomplishment? -4. What foe did the NPC defeat? -5. What makes the NPC politically untouchable? -6. What great power does the NPC possess? -7. What does the NPC desire? -8. What regular routines does the NPC follow? -9. Who does the NPC love above all others? +1. What dark history follows the NPC? +2. What makes the NPC think they're right? +3. What was the NPC's great accomplishment? +4. What foe did the NPC defeat? +5. What makes the NPC politically untouchable? +6. What great power does the NPC possess? +7. What does the NPC desire? +8. What regular routines does the NPC follow? +9. Who does the NPC love above all others? 10. What secret does the NPC want to keep hidden? ### Plot and Story Secrets @@ -301,15 +301,15 @@ Use plot and story secrets to teach characters about the larger events going on Characters might learn these secrets from quest-giving NPCs, notes found on defeated foes, dreams or portents from the gods, NPCs fleeing a disaster, arcane feedback from an object, or psychic projections. -1. What villainous event will soon come to pass? -2. What disaster is about to befall the land? -3. What royal figure was just assassinated? -4. What dungeon entrance just became revealed? -5. What monsters recently appeared in the realm? -6. What armies just invaded the realm? -7. What dark sign or portent just appeared? -8. What natural disaster has recently struck the area? -9. What unnatural being has appeared in the world? +1. What villainous event will soon come to pass? +2. What disaster is about to befall the land? +3. What royal figure was just assassinated? +4. What dungeon entrance just became revealed? +5. What monsters recently appeared in the realm? +6. What armies just invaded the realm? +7. What dark sign or portent just appeared? +8. What natural disaster has recently struck the area? +9. What unnatural being has appeared in the world? 10. What unusual creature was seen walking the wilds? ## Building an RPG Group @@ -322,21 +322,21 @@ Finding and maintaining a solid group for roleplaying gaming remains the most di The first step to building an RPG group is finding players. Some of the most common ways to find players for a group include the following: -* Recruit friends and family -* Recruit coworkers -* Ask about putting a notice up at your local game store or library -* Join local organized play groups -* Seek LFG (Looking for Group) forums on Discord, Reddit, Meetup, Next Door, and other forums +* Recruit friends and family +* Recruit coworkers +* Ask about putting a notice up at your local game store or library +* Join local organized play groups +* Seek LFG (Looking for Group) forums on Discord, Reddit, Meetup, Next Door, and other forums ### Selecting Players Before you invite a player to your gaming group, ensure that they're the right fit for your game and the other players. Start by asking a prospective player questions about their commitment, play style, and reaction to your style of play. Example questions might include the following: -* Do they live nearby, and can they commit to the game's schedule? -* Do they consider themselves a more story-focused or more tactics-focused player? -* Are they okay playing with theater-of-the-mind combat or playing on a battle grid? -* What do they enjoy most about RPGs? -* How do they weight their enjoyment of the following: NPC interaction, exploration, world lore, character background, character optimization, and tactical combat? +* Do they live nearby, and can they commit to the game's schedule? +* Do they consider themselves a more story-focused or more tactics-focused player? +* Are they okay playing with theater-of-the-mind combat or playing on a battle grid? +* What do they enjoy most about RPGs? +* How do they weight their enjoyment of the following: NPC interaction, exploration, world lore, character background, character optimization, and tactical combat? Asking questions isn't about getting right or wrong answers. Rather, questions can help you identify players who will fit well into your game. They'll also help you determine if there are things a player desires that they're not going to find in your game. @@ -372,11 +372,11 @@ The following guidelines take you step-by-step through a session zero. Before your session zero, write out and deliver a one-page campaign guide to your players. Include the following information: -* The campaign's theme and flavor. Sell the campaign's story to your players so they're excited for the campaign. -* What separates this campaign from others? What are the main things about this campaign that the characters would know going in? This might be the "six truths" that separate your campaign from all others. -* What characters work best in the campaign? Talk about specific character options that are a good fit for the campaign, including classes, backgrounds, heritage, skills, and so forth. Then discuss what kinds of motivations will help the characters best enjoy the campaign? -* What potentially troubling themes might this campaign include? Write out a list so the players know what they might be getting into and can talk to you about it as you discuss your game's safety tools. -* What group patrons might the players select as a group? Who might serve as their primary quest giver? +* The campaign's theme and flavor. Sell the campaign's story to your players so they're excited for the campaign. +* What separates this campaign from others? What are the main things about this campaign that the characters would know going in? This might be the "six truths" that separate your campaign from all others. +* What characters work best in the campaign? Talk about specific character options that are a good fit for the campaign, including classes, backgrounds, heritage, skills, and so forth. Then discuss what kinds of motivations will help the characters best enjoy the campaign? +* What potentially troubling themes might this campaign include? Write out a list so the players know what they might be getting into and can talk to you about it as you discuss your game's safety tools. +* What group patrons might the players select as a group? Who might serve as their primary quest giver? Keep your campaign guide down to a single page so that the players can easily read and absorb it. @@ -400,15 +400,15 @@ If desired, you can connect the characters together with individual relationship ### Relationships -1. Adopted siblings -2. Mentor and student -3. Friendly rivals -4. Sage and scribe -5. Priest and acolyte -6. Fellow veterans -7. Ward and guardian -8. Spouses -9. Buddy cops +1. Adopted siblings +2. Mentor and student +3. Friendly rivals +4. Sage and scribe +5. Priest and acolyte +6. Fellow veterans +7. Ward and guardian +8. Spouses +9. Buddy cops 10. Childhood friends 11. Noble and bodyguard 12. Soul bound @@ -433,42 +433,42 @@ Safety tools help ensure that you and your players are always comfortable with t When you discuss safety tools, describe potentially sensitive topics that might come up in an adventure or campaign. The following list presents a number of topics that are good to talk about, but this is not an exhaustive list. -* Blood -* Body horror -* Burning -* Cancer -* Cannibalism -* Claustrophobia -* Death by exposure -* Freezing -* Gaslighting -* Genocide -* Gore -* Harm to animals -* Harm to children -* Homophobia -* Incest -* Insects -* Kidnapping -* Mental domination -* Murder -* Paralysis -* Physical restraint -* Racism -* Rats -* Real-world religion -* Ritual sacrifice -* Self-harm -* Sexism -* Sexual assault -* Sexual contact -* Slavery -* Spiders -* Starvation -* Terrorism -* Thirst -* Torture -* Transphobia +* Blood +* Body horror +* Burning +* Cancer +* Cannibalism +* Claustrophobia +* Death by exposure +* Freezing +* Gaslighting +* Genocide +* Gore +* Harm to animals +* Harm to children +* Homophobia +* Incest +* Insects +* Kidnapping +* Mental domination +* Murder +* Paralysis +* Physical restraint +* Racism +* Rats +* Real-world religion +* Ritual sacrifice +* Self-harm +* Sexism +* Sexual assault +* Sexual contact +* Slavery +* Spiders +* Starvation +* Terrorism +* Thirst +* Torture +* Transphobia Decide first what you are comfortable with as a GM before bringing a list of topics to your players. Add any topics you're not comfortable with to your own hard lines and off-screen content (see below). @@ -498,9 +498,9 @@ As the GM, think about using "pause for a second" regularly, so as to break the The following resources offer further options for RPG safety tools, and influenced the tools described above. -* [The X-Card](http://tinyurl.com/x-card-rpg) by John Stavropoulos -* [Script Change](https://briebeau.com/scriptchange) by Beau Jágr Sheldon -* [The TTRPG Safety Toolkit](https://drive.google.com/drive/folders/114jRmhzBpdqkAlhmveis0nmW73qkAZCj) by Kienna Shaw and Lauren Bryant-Monk +* [The X-Card](http://tinyurl.com/x-card-rpg) by John Stavropoulos +* [Script Change](https://briebeau.com/scriptchange) by Beau Jágr Sheldon +* [The TTRPG Safety Toolkit](https://drive.google.com/drive/folders/114jRmhzBpdqkAlhmveis0nmW73qkAZCj) by Kienna Shaw and Lauren Bryant-Monk ## Connecting Characters @@ -514,15 +514,15 @@ For single-session games, consider establishing a single group relationship for ### Group Connections -1. Mercenary company -2. Self-employed investigators -3. Official investigators -4. Royal advisors -5. Thieves' guild -6. Secret society -7. Religious investigators -8. Adventuring company -9. Business investigators +1. Mercenary company +2. Self-employed investigators +3. Official investigators +4. Royal advisors +5. Thieves' guild +6. Secret society +7. Religious investigators +8. Adventuring company +9. Business investigators 10. Assassins' guild 11. Wizarding school 12. Monastic students @@ -537,15 +537,15 @@ For single-session games, consider establishing a single group relationship for ### Character Connections -1. Sibling of -2. Saved by -3. Served with -4. Protected by -5. Adventured with -6. Friendly rival of -7. Childhood friend of -8. Magically bound to -9. Survived with +1. Sibling of +2. Saved by +3. Served with +4. Protected by +5. Adventured with +6. Friendly rival of +7. Childhood friend of +8. Magically bound to +9. Survived with 10. Escaped with 11. Apprentice of 12. Acolyte of @@ -568,15 +568,15 @@ Start off by describing the central theme of your campaign in a single sentence. ### Campaign Pitches -1. Prevent the summoning of the Dragon Queen -2. Prevent the coming of the Black Moon -3. End the dark reign of Elenda the lich queen -4. Break the political power of Vroth the death knight -5. Kill Veresyn the vampire lord and his horde -6. Restore light to the Vale of Nightmares -7. Restore the prison of Orlon the demon prince -8. Shatter the draconic Alliance of Five Claws -9. Save people from the blood feast of a gnoll war band +1. Prevent the summoning of the Dragon Queen +2. Prevent the coming of the Black Moon +3. End the dark reign of Elenda the lich queen +4. Break the political power of Vroth the death knight +5. Kill Veresyn the vampire lord and his horde +6. Restore light to the Vale of Nightmares +7. Restore the prison of Orlon the demon prince +8. Shatter the draconic Alliance of Five Claws +9. Save people from the blood feast of a gnoll war band 10. Restore light to the fallen celestial Ixyan 11. Dismantle the Empire of the White Blade 12. Find the seven keys to the gates of Ilumenia @@ -593,12 +593,12 @@ Start off by describing the central theme of your campaign in a single sentence. Once you have your pitch, identify six truths that set your campaign apart from others, then share them with your players. Here are six example truths for a campaign built around the coming of the Black Moon from above. -* Sages and cultists describe the coming of the Black Moon — an elder evil that will swallow the world. -* Monsters have been sighted along what were once the safest roads. The populations of whole villages are disappearing without a trace. -* A floating obsidian citadel has appeared above the Cragteeth Mountains to the north. -* Folk once had to deal with the coming of the Black Moon, but their secrets for surviving it were lost. -* The evil King Trex uses the chaos created by the coming of the Black Moon to wage war across the land. -* Prophecy speaks of the return of the Knights of the White Sun, who will restore light to the land. +* Sages and cultists describe the coming of the Black Moon — an elder evil that will swallow the world. +* Monsters have been sighted along what were once the safest roads. The populations of whole villages are disappearing without a trace. +* A floating obsidian citadel has appeared above the Cragteeth Mountains to the north. +* Folk once had to deal with the coming of the Black Moon, but their secrets for surviving it were lost. +* The evil King Trex uses the chaos created by the coming of the Black Moon to wage war across the land. +* Prophecy speaks of the return of the Knights of the White Sun, who will restore light to the land. ### Starting Location @@ -606,15 +606,15 @@ Spiral campaigns begin in a central location, often a small settlement from whic ### 1d10 Starting Locations -1. Adventurers' guild -2. Mining outpost -3. Recent shipwreck -4. Frontier outpost -5. Holy temple -6. Refugee camp -7. Fortress under siege -8. Great library -9. Planar hub city +1. Adventurers' guild +2. Mining outpost +3. Recent shipwreck +4. Frontier outpost +5. Holy temple +6. Refugee camp +7. Fortress under siege +8. Great library +9. Planar hub city 10. Crumbling fortress ### Campaign Fronts @@ -623,15 +623,15 @@ Campaign fronts are the external motivators in a campaign. Like a battlefront (f ### 1d20 Campaign Fronts -1. Thieves' guild -2. Dark necromancer -3. Armageddon cult -4. Mercenary army -5. Forgotten machine -6. Evil construct -7. Demon prince -8. Archdevil -9. Corrupt noble lord +1. Thieves' guild +2. Dark necromancer +3. Armageddon cult +4. Mercenary army +5. Forgotten machine +6. Evil construct +7. Demon prince +8. Archdevil +9. Corrupt noble lord 10. Rival adventurers 11. Mages' guild 12. Outlander horde @@ -648,15 +648,15 @@ Campaign fronts are the external motivators in a campaign. Like a battlefront (f As the campaign spirals outward, the characters will become aware of local adventuring locations. Drop three such adventure locations into the areas close by the starting location. And if you need help filling out an adventure location, look to later sections of this document. -1. Ancient crypt -2. Forgotten sewers -3. Haunted keep -4. Festering well -5. Rat-infested cellar -6. Unholy temple -7. Dangerous caves -8. Underground city -9. War-torn citadel +1. Ancient crypt +2. Forgotten sewers +3. Haunted keep +4. Festering well +5. Rat-infested cellar +6. Unholy temple +7. Dangerous caves +8. Underground city +9. War-torn citadel 10. Fey glade 11. Abandoned dungeon 12. Ruined watchtower @@ -723,8 +723,8 @@ For any given task or challenge, ask yourself how hard it is to accomplish. Then Decide on a challenge rating (CR) for the source of the damage, from CR 1 (low challenge) to CR 20 (very high challenge). Then roll a number of damage dice of a particular kind, as follows: -* Single-Target Damage: 7 × CR (or 2d6 per CR) -* Multiple-Target Damage: 3 × CR (or 1d6 per CR) +* Single-Target Damage: 7 × CR (or 2d6 per CR) +* Multiple-Target Damage: 3 × CR (or 1d6 per CR) This challenge rating can be thought of as roughly equivalent to the average level of a group of characters. However, don't automatically choose a challenge rating based on the level of the characters. Rather, the level of the challenge might be higher or lower than the characters, depending on the situation. @@ -732,12 +732,12 @@ This challenge rating can be thought of as roughly equivalent to the average lev Whenever you need to improvise Armor Class, attack modifiers, saving throw DCs, or other combat statistics for a creature, trap, object, or obstacle, use the following guidelines based on its challenge rating: -* AC = 12 + 1/2 CR -* DC = 12 + 1/2 CR -* Attack Bonus = 3 + 1/2 CR -* Damage = 7 × CR (or 2d6 per CR) -* Saving Throw with Proficiency = 3 + 1/2 CR -* Hit Points = 20 × CR +* AC = 12 + 1/2 CR +* DC = 12 + 1/2 CR +* Attack Bonus = 3 + 1/2 CR +* Damage = 7 × CR (or 2d6 per CR) +* Saving Throw with Proficiency = 3 + 1/2 CR +* Hit Points = 20 × CR When improvising statistics for traps and other objects that deal damage and can be attacked to destroy them, estimate the object's CR by comparing it to various creatures that produce the same sorts of effects in combat. @@ -745,12 +745,12 @@ When improvising statistics for traps and other objects that deal damage and can The following tricks can also help make it easier for you to improvise during your game: -* Use the story the players give to you, rather than forcing the characters to stick to a path you set. -* Use static monster damage. -* In combat, go around the table by player instead of rolling for initiative. -* Use advantage and disadvantage to reward unique approaches or clarify poor choices. -* Improve pacing by changing monster hit points on the fly to speed up or prolong a fight. -* Let the characters stumble upon two weak monsters, then see whether the monsters and characters want to fight or simply have a conversation. +* Use the story the players give to you, rather than forcing the characters to stick to a path you set. +* Use static monster damage. +* In combat, go around the table by player instead of rolling for initiative. +* Use advantage and disadvantage to reward unique approaches or clarify poor choices. +* Improve pacing by changing monster hit points on the fly to speed up or prolong a fight. +* Let the characters stumble upon two weak monsters, then see whether the monsters and characters want to fight or simply have a conversation. ### Deadly Encounter Benchmark @@ -800,8 +800,8 @@ For simple battles, use a passive initiative score for monsters, equal to 10 plu Every few games, take time to ask each player for their "stars and wishes" — a concept described on the Gauntlet RPG blog. Ask each player two questions: -* What have they enjoyed about the game so far? -* What do they want to see more of in future games? +* What have they enjoyed about the game so far? +* What do they want to see more of in future games? The answers to these questions can help you understand exactly what your players are getting from the game, and can give you ideas for how the game might unfold in the future. @@ -813,12 +813,12 @@ Throughout the game, offer players advantage on checks or attacks if they're wil The following tricks make excellent additions to every GM's toolbox: -* Keep a list of random names on hand to use for NPCs, villains, and monsters. -* Describe the world through the eyes of the characters, actively narrating what they see and know about the world around them. -* Don't ask for a d20 roll if there isn't a chance for failure, or if failure wouldn't be interesting. This can help you remember to never bury useful or vital information behind an ability check. -* Reskin bandit, thug, ogre, and giant stat blocks to make new hard-hitting monsters of all different sizes. -* Reveal monster ACs and the DCs for ability checks to the players, and help them calculate ahead of time what they'll need on their d20 roll to succeed. This lets the players focus on the excitement of the die roll rather than the math. -* When appropriate, roll on a character's behalf so the player doesn't know the result for something their character wouldn't know. +* Keep a list of random names on hand to use for NPCs, villains, and monsters. +* Describe the world through the eyes of the characters, actively narrating what they see and know about the world around them. +* Don't ask for a d20 roll if there isn't a chance for failure, or if failure wouldn't be interesting. This can help you remember to never bury useful or vital information behind an ability check. +* Reskin bandit, thug, ogre, and giant stat blocks to make new hard-hitting monsters of all different sizes. +* Reveal monster ACs and the DCs for ability checks to the players, and help them calculate ahead of time what they'll need on their d20 roll to succeed. This lets the players focus on the excitement of the die roll rather than the math. +* When appropriate, roll on a character's behalf so the player doesn't know the result for something their character wouldn't know. ## Wilderness Travel and Exploration @@ -876,24 +876,24 @@ When building encounters, start by choosing the type and number of monsters that ### For Characters of 1st Level -* CR 0 to 1/4: One monster per character -* CR 1/2: One monster per two characters -* CR 1: One monster per four characters +* CR 0 to 1/4: One monster per character +* CR 1/2: One monster per two characters +* CR 1: One monster per four characters ### For Characters of 2nd to 4th Level -* CR = 1/10 level: Two monsters per character -* CR = 1/4 level: One monster per character -* CR = 1/2 level: One monster per two characters -* CR = Level: One monster per four characters +* CR = 1/10 level: Two monsters per character +* CR = 1/4 level: One monster per character +* CR = 1/2 level: One monster per two characters +* CR = Level: One monster per four characters ### For characters of 5th to 20th Level -* CR = 1/10 level: Four monsters per character -* CR = 1/4 level: Two monsters per character -* CR = 1/2 level: One monster per character -* CR = 3/4 level: One monster per two characters -* CR = Level + 3: One monster per four characters +* CR = 1/10 level: Four monsters per character +* CR = 1/4 level: Two monsters per character +* CR = 1/2 level: One monster per character +* CR = 3/4 level: One monster per two characters +* CR = Level + 3: One monster per four characters Finally, tune encounters by adjusting the number of monsters, increasing or decreasing hit points, or making named or unique monsters more powerful. @@ -935,13 +935,13 @@ This benchmark assumes multiple monsters, and doesn't work well for gauging comb No chart, table, or equation works perfectly to judge encounter balance at any given level, because no such system can take into account the wide range of options that can affect combat. Any individual character's effective power in a fight can go well beyond what's expected for their given level, especially at higher levels. And other factors that can affect a character's power might include any of the following: -* Player experience -* Class synergy between different characters in the party -* Magic items -* Environmental and situational circumstances -* Feats and multiclassing -* The total number of actions on either side -* How well rested the characters are +* Player experience +* Class synergy between different characters in the party +* Magic items +* Environmental and situational circumstances +* Feats and multiclassing +* The total number of actions on either side +* How well rested the characters are So use the benchmarks for determining whether an encounter might be deadly as a starting point. Then trust that you'll be better able to gauge what your characters can handle in combat the more you see them in action during the game. @@ -967,21 +967,21 @@ When playing in the theater of the mind, both you and the players must worry les ### Summary Guidelines for the GM -* Each turn, describe the situation surrounding the characters. -* Ask for the players' intent and help them achieve it. -* Be generous. Give players the benefit of the doubt. -* Use ability checks to let the characters try crazy ideas. -* Ask the players to describe interesting physical characteristics of the monsters, and use these to identify monsters during combat. -* Bring characters into the story by asking them to describe their killing blows. -* When needed, use sketches, abstract maps, or miniatures to show complicated locations and relative positions. +* Each turn, describe the situation surrounding the characters. +* Ask for the players' intent and help them achieve it. +* Be generous. Give players the benefit of the doubt. +* Use ability checks to let the characters try crazy ideas. +* Ask the players to describe interesting physical characteristics of the monsters, and use these to identify monsters during combat. +* Bring characters into the story by asking them to describe their killing blows. +* When needed, use sketches, abstract maps, or miniatures to show complicated locations and relative positions. ### Summary Guidelines for Players -* Describe your intent. What you want to accomplish? -* Use the features of the area to your advantage. -* Don't worry about specific distances. Just describe what you want to do. -* Try awesome ideas based on the details of the location. -* Describe your character's actions within the story. +* Describe your intent. What you want to accomplish? +* Use the features of the area to your advantage. +* Don't worry about specific distances. Just describe what you want to do. +* Try awesome ideas based on the details of the location. +* Describe your character's actions within the story. ### Movement, Distance, and Range @@ -1001,12 +1001,12 @@ As you describe the features of the area, make a note of which ones can provide The following guidelines offer a rough baseline for determining the number of targets that fall within an area of effect. The circumstances of a battle can increase or decrease this number. For example, for larger monsters or monsters that are more spread out, an area of effect might target only half the normal number of creatures. For smaller monsters or monsters that are packed close together, an area of effect might include up to double the normal number of targets. -* **Tiny Area:** 1 or 2 creatures (*cloud of daggers*) -* **Small Area:** 2 creatures (*burning hands*, *thunderwave*) -* **Large Area:** 4 creatures (*cone of cold*, *fireball*) -* **Huge Area:** Everyone (*circle of death*, *earthquake*) -* **Short Line:** 2 creatures (*wall of fire*) -* **Long Line:** 3 creatures (*blade barrier*, *lightning bolt*) +* **Tiny Area:** 1 or 2 creatures (*cloud of daggers*) +* **Small Area:** 2 creatures (*burning hands*, *thunderwave*) +* **Large Area:** 4 creatures (*cone of cold*, *fireball*) +* **Huge Area:** Everyone (*circle of death*, *earthquake*) +* **Short Line:** 2 creatures (*wall of fire*) +* **Long Line:** 3 creatures (*blade barrier*, *lightning bolt*) Abilities like the evoker's Sculpt Spells feature can increase the number of affected enemies, usually by one or two. Likewise, an area of effect that targets both the characters and their enemies might affect more total targets — including an effect created by a character or monster willing to put allies in harm's way. If a spellcaster character wishes to place allies within an area of effect, you and the players should negotiate this before the spell is cast. @@ -1034,43 +1034,43 @@ This section offers abbreviated guidelines for running "theater of the mind" com Round-by-round combat played in the theater-of-the-mind style is built around three core principles: -* The GM describes the situation. -* Players describe their characters' intent. -* The GM helps the players achieve that intent and adjudicates how the situation unfolds as a result. +* The GM describes the situation. +* Players describe their characters' intent. +* The GM helps the players achieve that intent and adjudicates how the situation unfolds as a result. ### Common Understandings A GM running a theater-of-the-mind game should keep the following points in mind: -* Build theater-of-the-mind combat around the following ideals: The GM and the players are working together to share a story of high action and adventure. They are not opponents. -* The GM and players do not hide their intentions during combat. -* Players and GMs assume that the characters and their enemies all move cautiously, avoiding opportunity attacks whenever possible. -* The GM identifies when a character is taking a risk, such as provoking an opportunity attack, before the player chooses the character's action. +* Build theater-of-the-mind combat around the following ideals: The GM and the players are working together to share a story of high action and adventure. They are not opponents. +* The GM and players do not hide their intentions during combat. +* Players and GMs assume that the characters and their enemies all move cautiously, avoiding opportunity attacks whenever possible. +* The GM identifies when a character is taking a risk, such as provoking an opportunity attack, before the player chooses the character's action. ### Player Advice Players in a theater-of-the-mind game should keep the following points in mind: -* Describe your intent. Tell the GM what you want your character to do in the story that the combat encounter is building. Avoid a back-and-forth series of tactical questions. -* Tell the GM what special features your character has that you want to highlight. If you have crunchy tactical abilities you want to use, describe how you want them to work for the situation. For example: "I want to stay close to the cleric so I can use my Protection Fighting Style, but I'll keep 10 feet away from the orcs so I can use my Polearm Mastery feat to hit them on their way in." -* Describe specifically what you want to do. "I want to stay within the paladin's aura but still attack the hobgoblin ravager." -* Look for fun ways to use the environment described by the GM. -* Worry less about the mechanical details of the game and more on the high action and adventure of the story. One good way to do that is to imagine combat as a high-action battle in one of your favorite movies. +* Describe your intent. Tell the GM what you want your character to do in the story that the combat encounter is building. Avoid a back-and-forth series of tactical questions. +* Tell the GM what special features your character has that you want to highlight. If you have crunchy tactical abilities you want to use, describe how you want them to work for the situation. For example: "I want to stay close to the cleric so I can use my Protection Fighting Style, but I'll keep 10 feet away from the orcs so I can use my Polearm Mastery feat to hit them on their way in." +* Describe specifically what you want to do. "I want to stay within the paladin's aura but still attack the hobgoblin ravager." +* Look for fun ways to use the environment described by the GM. +* Worry less about the mechanical details of the game and more on the high action and adventure of the story. One good way to do that is to imagine combat as a high-action battle in one of your favorite movies. ### GM Advice A GM running a theater-of-the-mind game should keep the following points in mind: -* Work with the players, not against them. Err in favor of the characters as you help the players achieve their intent. -* Each turn, describe the situation surrounding the acting character. -* Adjudicate the number of targets in an area attack based on the situation, the assumed positions of the combatants, and the size of the area. -* Use evocative in-world narration to describe the characters, the monsters, the action, and the high adventure of the story as it plays out. -* Make bargains and deals with the players. "You can hit three orcs with *fireball*, or you can hit five orcs if one of your companions is willing to be hit as well." -* Describe the distances between combatants in feet to help players recognize what they can and can't do. Default to 25 feet if you don't really know. -* Run simpler encounters with useful environmental features, such as flipped tables, cracked stalagmites, cliff edges, bottomless pits, roaring fires, and hanging chandeliers. -* Ask the players to identify monsters by describing interesting physical characteristics. -* Give the players opportunities to show off their characters' skills and abilities. -* Some players can't visualize combat scenes in their head, a condition known as aphantasia. For these players, consider providing a quick sketch or other visual. +* Work with the players, not against them. Err in favor of the characters as you help the players achieve their intent. +* Each turn, describe the situation surrounding the acting character. +* Adjudicate the number of targets in an area attack based on the situation, the assumed positions of the combatants, and the size of the area. +* Use evocative in-world narration to describe the characters, the monsters, the action, and the high adventure of the story as it plays out. +* Make bargains and deals with the players. "You can hit three orcs with *fireball*, or you can hit five orcs if one of your companions is willing to be hit as well." +* Describe the distances between combatants in feet to help players recognize what they can and can't do. Default to 25 feet if you don't really know. +* Run simpler encounters with useful environmental features, such as flipped tables, cracked stalagmites, cliff edges, bottomless pits, roaring fires, and hanging chandeliers. +* Ask the players to identify monsters by describing interesting physical characteristics. +* Give the players opportunities to show off their characters' skills and abilities. +* Some players can't visualize combat scenes in their head, a condition known as aphantasia. For these players, consider providing a quick sketch or other visual. ### One Tool of Many @@ -1084,29 +1084,29 @@ Zone-based combat can help GMs run fast, dynamic, and high-action combat without The following guidelines establish the broad strokes of zone-based combat: -* Combat areas are made up of one or more zones, each of which is roughly 25 feet on a side but which can be any size. -* The GM defines zones using evocative descriptions, such as "a crumbling bridge over a bottomless gorge," "a blood-covered altar," or "a holy statue of light." -* The GM can write down or define these zones and their descriptions on paper, note cards, or erasable battle maps so the players can visualize the situation. Miniatures or tokens can mark out the positions of characters and monsters in zones. -* Players are encouraged to make use of features in a zone, whether by taking cover, climbing to an advantageous position, activating magical locations, and so forth. -* Most combat encounters occur in a single zone. Big battles might use two or more zones. -* On each of their turns, a character can move within a zone or can move from one zone to another. Characters with extra movement can move up to two zones away. -* Assume that all creatures in combat move cautiously, avoiding opportunity attacks when possible. The GM informs the players if a character risks an opportunity attack from their intended activity in the fight. -* Attacks with a range of 25 feet or greater can target creatures within a zone or one zone away. -* Attacks with a range of 50 feet or greater can also target creatures two or more zones away. -* If a character attacks with or is attacked by a melee attack with a 5-foot reach, that character will provoke opportunity attacks if they attempt to move away from their opponent. A character attacked by a melee attack with a 5-foot reach also has disadvantage on ranged attacks. -* Players can make best use of zone-based combat by describing their intent — for example, "I want to attack the orc chief with my glaive but stay out of his reach," or "I want to get between our wizard and the ogre." -* The GM then works with the players to help them achieve their intent. +* Combat areas are made up of one or more zones, each of which is roughly 25 feet on a side but which can be any size. +* The GM defines zones using evocative descriptions, such as "a crumbling bridge over a bottomless gorge," "a blood-covered altar," or "a holy statue of light." +* The GM can write down or define these zones and their descriptions on paper, note cards, or erasable battle maps so the players can visualize the situation. Miniatures or tokens can mark out the positions of characters and monsters in zones. +* Players are encouraged to make use of features in a zone, whether by taking cover, climbing to an advantageous position, activating magical locations, and so forth. +* Most combat encounters occur in a single zone. Big battles might use two or more zones. +* On each of their turns, a character can move within a zone or can move from one zone to another. Characters with extra movement can move up to two zones away. +* Assume that all creatures in combat move cautiously, avoiding opportunity attacks when possible. The GM informs the players if a character risks an opportunity attack from their intended activity in the fight. +* Attacks with a range of 25 feet or greater can target creatures within a zone or one zone away. +* Attacks with a range of 50 feet or greater can also target creatures two or more zones away. +* If a character attacks with or is attacked by a melee attack with a 5-foot reach, that character will provoke opportunity attacks if they attempt to move away from their opponent. A character attacked by a melee attack with a 5-foot reach also has disadvantage on ranged attacks. +* Players can make best use of zone-based combat by describing their intent — for example, "I want to attack the orc chief with my glaive but stay out of his reach," or "I want to get between our wizard and the ogre." +* The GM then works with the players to help them achieve their intent. ### Areas of Effect in Zones Many spells and features have areas of effect. GMs can use the following guidelines to adjudicate which targets are hit by such effects. These guidelines break out general descriptions of the size of an area of effect, how many creatures are typically affected in that area using zone-based combat, and examples of common spells and class features that use that size: -* **Tiny Area:** One or two creatures in the same zone (*cloud of daggers*) -* **Small Area:** Two or three creatures in the same zone (*burning hands*, *thunderwave*) -* **Large Area:** Four to six creatures in the same zone (*cone of cold*, *fireball*) -* **Huge Area:** Twelve creatures across two zones (*circle of death*, Turn Undead) -* **Short Line:** Two or three creatures in the same zone (*wall of fire*) -* **Large Line:** Two to four creatures across two zones (*lightning bolt*) +* **Tiny Area:** One or two creatures in the same zone (*cloud of daggers*) +* **Small Area:** Two or three creatures in the same zone (*burning hands*, *thunderwave*) +* **Large Area:** Four to six creatures in the same zone (*cone of cold*, *fireball*) +* **Huge Area:** Twelve creatures across two zones (*circle of death*, Turn Undead) +* **Short Line:** Two or three creatures in the same zone (*wall of fire*) +* **Large Line:** Two to four creatures across two zones (*lightning bolt*) GMs can adjudicate and adjust these numbers based on the current situation. For example, an area containing a horde of monsters might double the potential number of monsters affected. Whatever the circumstances, though, a GM should always adjudicate in favor of the characters. @@ -1173,10 +1173,10 @@ Apply this template to any monster to make an elemental version of that monster. Then choose one or more of the following traits to customize your monster, making use of the damage type determined by the elemental template: -* **Elemental Resistance.** The templated creature has resistance against its damage type. -* **Elemental Damage.** When the templated creature scores a hit using a weapon attack, the attack deals extra damage of its damage type. -* **Elemental Aura.** Any creature that starts their turn within an area surrounding the templated creature, or that enters that area for the first time on a turn, takes damage of the templated creature's type. -* **Elemental Shield.** Any creature that touches the templated creature or hits them with a melee attack while within 5 feet of them takes damage of the templated creature's type. +* **Elemental Resistance.** The templated creature has resistance against its damage type. +* **Elemental Damage.** When the templated creature scores a hit using a weapon attack, the attack deals extra damage of its damage type. +* **Elemental Aura.** Any creature that starts their turn within an area surrounding the templated creature, or that enters that area for the first time on a turn, takes damage of the templated creature's type. +* **Elemental Shield.** Any creature that touches the templated creature or hits them with a melee attack while within 5 feet of them takes damage of the templated creature's type. The amount of damage and the size of a templated creature's elemental aura is determined by the base creature's challenge rating. The damage noted is the same for both attacks and the creature's aura. @@ -1194,24 +1194,24 @@ This elemental template increases a monster's challenge rating by 1 or 2. Dire monsters are particularly large and dangerous versions of typical monsters, and can be created using the following guidelines: -* The monster's hit points are doubled. -* The monster's size increases one category. -* The monster gains a +2 bonus to attack rolls. -* The monster can use one or more of its standard attacks multiple times on its attack action. Use your best judgment to choose which of the monster's attacks to use for multiple attacks. -* The monster's challenge rating increases by 2 or 3. +* The monster's hit points are doubled. +* The monster's size increases one category. +* The monster gains a +2 bonus to attack rolls. +* The monster can use one or more of its standard attacks multiple times on its attack action. Use your best judgment to choose which of the monster's attacks to use for multiple attacks. +* The monster's challenge rating increases by 2 or 3. ### Fiendish Monsters Infernal or abyssal variants of existing monsters are endlessly spawned across the Lower Planes. This template can turn any monster into a fiendish variant: -* The monster's type becomes fiend. -* The monster has advantage on saving throws against spells and other magical effects. -* The monster has resistance to bludgeoning, piercing, and slashing damage from nonmagical attacks. -* The monster has resistance to cold and fire damage. -* The monster has immunity to poison damage and the poisoned condition. -* The monster's weapon attacks are magical. -* The monster has darkvision out to a range of 120 feet. -* The monster's challenge rating increases by 1. +* The monster's type becomes fiend. +* The monster has advantage on saving throws against spells and other magical effects. +* The monster has resistance to bludgeoning, piercing, and slashing damage from nonmagical attacks. +* The monster has resistance to cold and fire damage. +* The monster has immunity to poison damage and the poisoned condition. +* The monster's weapon attacks are magical. +* The monster has darkvision out to a range of 120 feet. +* The monster's challenge rating increases by 1. ### Spell-Infused Monsters @@ -1240,47 +1240,47 @@ Death comes to all things, but not even death can keep a good monster down. You All creatures that take on one of these templates gain the following universal changes: -* The creature's type becomes undead. -* The creature has darkvision out to a range of 60 feet. -* Any new trait of the creature's that requires a saving throw uses a DC of 12 + one-half the undead creature's challenge rating. +* The creature's type becomes undead. +* The creature has darkvision out to a range of 60 feet. +* Any new trait of the creature's that requires a saving throw uses a DC of 12 + one-half the undead creature's challenge rating. Then apply the traits and actions of any of the following specific templates. ### Skeleton -* Vulnerability to bludgeoning damage. -* Immunity to poison damage, to exhaustion, and to the poisoned condition. +* Vulnerability to bludgeoning damage. +* Immunity to poison damage, to exhaustion, and to the poisoned condition. ### Zombie -* Immunity to poison damage and the poisoned condition. -* **Undead Fortitude.** If damage reduces the creature to 0 hit points, it must make a Constitution saving throw with a DC of 5 + the damage taken, unless the damage is radiant or from a critical hit. On a success, the creature drops to 1 hit point instead. +* Immunity to poison damage and the poisoned condition. +* **Undead Fortitude.** If damage reduces the creature to 0 hit points, it must make a Constitution saving throw with a DC of 5 + the damage taken, unless the damage is radiant or from a critical hit. On a success, the creature drops to 1 hit point instead. ### Ghoul -* Immunity to poison damage, to exhaustion, and to the charmed and poisoned conditions. -* **Paralyzing Touch.** When this creature hits with a melee attack using a natural weapon, the target must succeed on a Constitution saving throw or be paralyzed for 1 minute. The target can repeat the saving throw at the end of each of its turns, ending the effect on itself on a success. Elves and undead are immune to this effect. +* Immunity to poison damage, to exhaustion, and to the charmed and poisoned conditions. +* **Paralyzing Touch.** When this creature hits with a melee attack using a natural weapon, the target must succeed on a Constitution saving throw or be paralyzed for 1 minute. The target can repeat the saving throw at the end of each of its turns, ending the effect on itself on a success. Elves and undead are immune to this effect. ### Wight -* Resistance to necrotic and poison damage, and to bludgeoning, piercing, and slashing damage from nonmagical attacks that aren't silvered. -* Immunity to exhaustion and the poisoned condition. -* **Life Drain.** When this creature hits with a melee attack using a natural weapon, the attack deals necrotic damage equal to 1d6 + one-half the creature's challenge rating, and the target must succeed on a Constitution saving throw or have its hit point maximum reduced by an amount equal to the damage taken. This reduction lasts until the target finishes a long rest. The target dies if this effect reduces its hit point maximum to 0. +* Resistance to necrotic and poison damage, and to bludgeoning, piercing, and slashing damage from nonmagical attacks that aren't silvered. +* Immunity to exhaustion and the poisoned condition. +* **Life Drain.** When this creature hits with a melee attack using a natural weapon, the attack deals necrotic damage equal to 1d6 + one-half the creature's challenge rating, and the target must succeed on a Constitution saving throw or have its hit point maximum reduced by an amount equal to the damage taken. This reduction lasts until the target finishes a long rest. The target dies if this effect reduces its hit point maximum to 0. ### Wraith -* Resistance to acid, cold, fire, lightning, and thunder damage, and to bludgeoning, piercing, and slashing damage from nonmagical attacks that aren't silvered. -* Immunity to necrotic and poison damage, to exhaustion, and to the charmed, grappled, paralyzed, petrified, prone, and restrained conditions. -* The creature has the wraith's Incorporeal Movement and Sunlight Sensitivity traits. -* The creature gains the following trait: Life Drain. When this creature hits with a melee attack using a natural weapon, the attack deals necrotic damage equal to 1d6 + one-half the creature's challenge rating, and the target must succeed on a Constitution saving throw or have its hit point maximum reduced by an amount equal to the damage taken. This reduction lasts until the target finishes a long rest. The target dies if this effect reduces its hit point maximum to 0. +* Resistance to acid, cold, fire, lightning, and thunder damage, and to bludgeoning, piercing, and slashing damage from nonmagical attacks that aren't silvered. +* Immunity to necrotic and poison damage, to exhaustion, and to the charmed, grappled, paralyzed, petrified, prone, and restrained conditions. +* The creature has the wraith's Incorporeal Movement and Sunlight Sensitivity traits. +* The creature gains the following trait: Life Drain. When this creature hits with a melee attack using a natural weapon, the attack deals necrotic damage equal to 1d6 + one-half the creature's challenge rating, and the target must succeed on a Constitution saving throw or have its hit point maximum reduced by an amount equal to the damage taken. This reduction lasts until the target finishes a long rest. The target dies if this effect reduces its hit point maximum to 0. ### Vampire Spawn -* Resistance to necrotic, bludgeoning, piercing, and slashing damage from nonmagical attacks. -* The creature has the vampire spawn's Spider Climb, Vampire Weaknesses, and Regeneration traits. -* **Bite.** Melee Weapon Attack: 4 + one-half the creature's CR to hit, reach 5 ft., one willing creature, or a creature that is grappled by the vampire spawn creature, incapacitated, or restrained. Hit: piercing damage equal to 1d6 + one-half the creature's CR, plus necrotic damage equal to 1d6 per one- half the creature's CR (minimum 1d6). The target's hit point maximum is reduced by an amount equal to the necrotic damage taken, and the templated creature regains hit points equal to that amount. The reduction lasts until the target finishes a long rest. The target dies if this effect reduces its hit point maximum to 0. -* The creature can grapple a target instead of dealing damage with any of its attacks. If it makes multiple attacks, it can replace one of those attacks with the Bite action. -* If you want your vampire spawn creature to feel even more vampiric, give it the ability to cast the misty step, command, or hold person spells at will as a bonus action. +* Resistance to necrotic, bludgeoning, piercing, and slashing damage from nonmagical attacks. +* The creature has the vampire spawn's Spider Climb, Vampire Weaknesses, and Regeneration traits. +* **Bite.** Melee Weapon Attack: 4 + one-half the creature's CR to hit, reach 5 ft., one willing creature, or a creature that is grappled by the vampire spawn creature, incapacitated, or restrained. Hit: piercing damage equal to 1d6 + one-half the creature's CR, plus necrotic damage equal to 1d6 per one- half the creature's CR (minimum 1d6). The target's hit point maximum is reduced by an amount equal to the necrotic damage taken, and the templated creature regains hit points equal to that amount. The reduction lasts until the target finishes a long rest. The target dies if this effect reduces its hit point maximum to 0. +* The creature can grapple a target instead of dealing damage with any of its attacks. If it makes multiple attacks, it can replace one of those attacks with the Bite action. +* If you want your vampire spawn creature to feel even more vampiric, give it the ability to cast the misty step, command, or hold person spells at will as a bonus action. ### Powerful Undead Templates @@ -1326,20 +1326,20 @@ If you prefer to roll dice, roll twice when a group of monsters all make attacks Adjudicate the number of creatures caught up in an area of effect based on the circumstances, but leaning toward more creatures rather than fewer. You can use the following as a baseline for the number of tightly packed creatures in a horde that are affected in a given area: -* **Tiny Area (5-foot radius):** Two creatures -* **Small Area (10- to 15-foot radius):** Four creatures -* **Large Area (20-foot radius):** Sixteen creatures -* **Huge Area (30-foot radius or more):** Thirty-two or more creatures -* **Short Line (60 feet):** Six creatures -* **Long Line (120 feet):** Eight creatures +* **Tiny Area (5-foot radius):** Two creatures +* **Small Area (10- to 15-foot radius):** Four creatures +* **Large Area (20-foot radius):** Sixteen creatures +* **Huge Area (30-foot radius or more):** Thirty-two or more creatures +* **Short Line (60 feet):** Six creatures +* **Long Line (120 feet):** Eight creatures ### Tips and Tricks -* Describe these horde combat rules to the players so everyone understands how they work. Always adjudicate combat to the characters' benefit, and help the players achieve their goals. -* Use evocative descriptions to flavor a horde. Worry less about the mechanics and more about the feeling involved in fighting a huge horde of monsters. -* Avoid using hordes with monsters of different types in a single battle. Instead, use a single stat block and describe any physical differences between monsters narratively. -* Augment a horde with a handful of more powerful monsters when desired. Track the hit points and attacks of these powerful monsters normally. -* As hordes diminish to a manageable level, return to tracking individual hit points, attacks, and saving throws normally. +* Describe these horde combat rules to the players so everyone understands how they work. Always adjudicate combat to the characters' benefit, and help the players achieve their goals. +* Use evocative descriptions to flavor a horde. Worry less about the mechanics and more about the feeling involved in fighting a huge horde of monsters. +* Avoid using hordes with monsters of different types in a single battle. Instead, use a single stat block and describe any physical differences between monsters narratively. +* Augment a horde with a handful of more powerful monsters when desired. Track the hit points and attacks of these powerful monsters normally. +* As hordes diminish to a manageable level, return to tracking individual hit points, attacks, and saving throws normally. ## Stress Effects @@ -1355,26 +1355,26 @@ When amplifying a sense of stress or horror in a game, ensure that you have the Some things are beyond the ability of the mortal mind to comprehend. When witnessing alien or horrific entities, locations, and events, even the most powerful heroes might find their ability to process what unfolds around them shut down, forcing them to make a stress check. Such a check might be warranted by any of the following situations: -* Witnessing a ghoul devouring a body -* Beholding a bloody sacrificial altar -* Watching the raising of the dead -* Witnessing a ritual sacrifice -* Hearing the sermon of a dark priest -* Reading words from a forbidden tome -* Reading glyphs describing an elder evil -* Seeing a parasite burst free from its host -* Beholding unholy primordial cave paintings -* Touching an unholy artifact -* Peering through a portal into the Nine Hells -* Staring into a scrying pool showing the Abyss -* Discovering the ruins of a sentient alien vessel -* Watching depraved acts of cannibalism -* Seeing the true form of an abomination -* Falling into the depths of the Astral Plane -* Staring into the tumultuous extents of Limbo -* Standing in the presence of a demon prince -* Beholding an alien city of elder evils -* Witnessing the death of a god +* Witnessing a ghoul devouring a body +* Beholding a bloody sacrificial altar +* Watching the raising of the dead +* Witnessing a ritual sacrifice +* Hearing the sermon of a dark priest +* Reading words from a forbidden tome +* Reading glyphs describing an elder evil +* Seeing a parasite burst free from its host +* Beholding unholy primordial cave paintings +* Touching an unholy artifact +* Peering through a portal into the Nine Hells +* Staring into a scrying pool showing the Abyss +* Discovering the ruins of a sentient alien vessel +* Watching depraved acts of cannibalism +* Seeing the true form of an abomination +* Falling into the depths of the Astral Plane +* Staring into the tumultuous extents of Limbo +* Standing in the presence of a demon prince +* Beholding an alien city of elder evils +* Witnessing the death of a god ### Stress Results @@ -1382,15 +1382,15 @@ Whenever a character witnesses a potential stress event, you can ask for a Chari ### 1d20 Stress Results -1. You slip into a mental vision of a restful place. -2. You whisper in a tongue no mortal understands. -3. Blood flows from your eyes. -4. You collapse as you lose all strength. -5. A screaming whine fills your hearing. -6. Your heart seems to stop in your chest. -7. The faces of your friends hideously contort. -8. Your heartbeat hammers in your ears. -9. You hear strange, discordant music. +1. You slip into a mental vision of a restful place. +2. You whisper in a tongue no mortal understands. +3. Blood flows from your eyes. +4. You collapse as you lose all strength. +5. A screaming whine fills your hearing. +6. Your heart seems to stop in your chest. +7. The faces of your friends hideously contort. +8. Your heartbeat hammers in your ears. +9. You hear strange, discordant music. 10. You fall asleep and dream of darkness. 11. A terrible memory of your past comes to mind. 12. Physical pain and burning wracks your body. @@ -1456,15 +1456,15 @@ Any quests the characters are asked to fulfill might be distilled down to one of ### 1d20 Quests -1. Find an item -2. Kill a villain -3. Rescue an NPC -4. Uncover a secret -5. Clear out monsters -6. Protect a monument -7. Protect an NPC -8. Steal an item -9. Return an item +1. Find an item +2. Kill a villain +3. Rescue an NPC +4. Uncover a secret +5. Clear out monsters +6. Protect a monument +7. Protect an NPC +8. Steal an item +9. Return an item 10. Close a gate 11. Open a gate 12. Activate a monument @@ -1537,15 +1537,15 @@ Use this list when you need to define the purpose of a chamber in a dungeon, kee ### 1d20 Chambers -1. Armory -2. Prison -3. Throne room -4. Crypt -5. Treasury -6. Barracks -7. Monstrous lair -8. Storeroom -9. Charnel pit +1. Armory +2. Prison +3. Throne room +4. Crypt +5. Treasury +6. Barracks +7. Monstrous lair +8. Storeroom +9. Charnel pit 10. Museum 11. Torture chamber 12. Bedchamber @@ -1564,15 +1564,15 @@ Add useful discoveries such as the following to your adventure, to create upward ### 1d20 Discoveries -1. Helpful NPC -2. Holy fountain -3. Inspiring statue -4. Revealing mosaic -5. Radiant shrine -6. Friendly spirit -7. Hidden campsite -8. Edible mushrooms -9. Explorer's pack +1. Helpful NPC +2. Holy fountain +3. Inspiring statue +4. Revealing mosaic +5. Radiant shrine +6. Friendly spirit +7. Hidden campsite +8. Edible mushrooms +9. Explorer's pack 10. Spy hole 11. Adventurer's journal 12. Escape tunnel @@ -1593,15 +1593,15 @@ For foes such as bandits and cultists, you can also roll for ancestry on the NPC ### 1d20 Monsters -1. Giant rats -2. Bandits -3. Cultists -4. Acolytes -5. Stirges -6. Guards -7. Skeletons -8. Oozes -9. Shadows +1. Giant rats +2. Bandits +3. Cultists +4. Acolytes +5. Stirges +6. Guards +7. Skeletons +8. Oozes +9. Shadows 10. Spies 11. Ghouls 12. Specters @@ -1620,15 +1620,15 @@ Add traps as they make sense for the adventure. At 1st through 4th level, traps ### 1d20 Traps and Hazards -1. Spiked pit -2. Lightning blasts -3. Poisoned darts -4. Swarms of insects -5. Explosive runes -6. Radiant pillars -7. Flame-jet idols -8. Force beams -9. Crippling caltrops +1. Spiked pit +2. Lightning blasts +3. Poisoned darts +4. Swarms of insects +5. Explosive runes +6. Radiant pillars +7. Flame-jet idols +8. Force beams +9. Crippling caltrops 10. Acidic pools 11. Bear traps 12. Ghostly haunting @@ -1647,15 +1647,15 @@ This list lets you add treasure to the adventure as appropriate. Roll a d10 to d ### 1d20 Treasures -1. Coins -2. Bag of gemstones -3. Platinum jewelry -4. Rune-scribed gem -5. Golden goblet -6. Ancient tome -7. Treasure map -8. Ancient relic -9. Fantastic art +1. Coins +2. Bag of gemstones +3. Platinum jewelry +4. Rune-scribed gem +5. Golden goblet +6. Ancient tome +7. Treasure map +8. Ancient relic +9. Fantastic art 10. Jeweled idol 11. Potion of healing 12. Other potion @@ -1674,15 +1674,15 @@ Some commonly discovered relics might grant a single- use spell, while less comm ### 1d20 Spells -1. *Magic missile* -2. *Burning hands* -3. *Shield* -4. *Cure wounds* -5. *Guiding bolt* -6. *Invisibility* -7. *Scorching ray* -8. *Shatter* -9. *Aid* +1. *Magic missile* +2. *Burning hands* +3. *Shield* +4. *Cure wounds* +5. *Guiding bolt* +6. *Invisibility* +7. *Scorching ray* +8. *Shatter* +9. *Aid* 10. *Misty step* 11. *Spiritual weapon* 12. *Lesser restoration* @@ -1711,15 +1711,15 @@ Use the following table to choose a random ancestry for your NPC. ### 1d10 Ancestries -1. Human -2. Elf -3. Dwarf -4. Halfling -5. Goblin -6. Kobold -7. Gnome -8. Orc -9. Dragonborn +1. Human +2. Elf +3. Dwarf +4. Halfling +5. Goblin +6. Kobold +7. Gnome +8. Orc +9. Dragonborn 10. Tiefling ### Worldview @@ -1728,15 +1728,15 @@ An NPC's worldview can help determine how they initially react to the characters ### 1d20 Worldviews -1. Surly -2. Friendly -3. Brash -4. Elitist -5. Suspicious -6. Carefree -7. Loyal -8. Opportunistic -9. Wide-eyed +1. Surly +2. Friendly +3. Brash +4. Elitist +5. Suspicious +6. Carefree +7. Loyal +8. Opportunistic +9. Wide-eyed 10. Humorous 11. Cautious 12. Roisterous @@ -1755,15 +1755,15 @@ NPCs will often be most easily remembered by the players based on some unique as ### 1d20 Appearances and Mannerisms -1. Wild hair -2. Scarred cheek -3. Body tattoos -4. Smokes a pipe -5. Golden teeth -6. Walks with a limp -7. Dashing clothes -8. Picks teeth -9. Missing eye +1. Wild hair +2. Scarred cheek +3. Body tattoos +4. Smokes a pipe +5. Golden teeth +6. Walks with a limp +7. Dashing clothes +8. Picks teeth +9. Missing eye 10. Multicolored eyes 11. Feathered earring 12. Missing hand @@ -1782,15 +1782,15 @@ Assign a profession to your NPC to add color to their stat block. The commoner i ### 1d20 Professions -1. Farmer -2. Blacksmith -3. Clerk -4. Merchant -5. Apothecary -6. Bandit -7. Guide -8. Entertainer -9. Guard +1. Farmer +2. Blacksmith +3. Clerk +4. Merchant +5. Apothecary +6. Bandit +7. Guide +8. Entertainer +9. Guard 10. Soldier 11. Acolyte 12. Sailor @@ -1826,15 +1826,15 @@ As desired, you can augment monetary treasure with consumable magic items from t ### 1d12 Consumable Treasure -1. *Potion of healing* -2. *Potion of greater healing* -3. *Oil of slipperiness* -4. *Potion of animal friendship* -5. *Potion of climbing* -6. *Potion of growth* -7. *Potion of mind reading* -8. *Potion of poison* -9. *Potion of resistance* +1. *Potion of healing* +2. *Potion of greater healing* +3. *Oil of slipperiness* +4. *Potion of animal friendship* +5. *Potion of climbing* +6. *Potion of growth* +7. *Potion of mind reading* +8. *Potion of poison* +9. *Potion of resistance* 10. *Potion of water breathing* 11. *Dust of disappearance* 12. *Dust of dryness* @@ -1847,15 +1847,15 @@ Permanent magic items can be included with treasure as desired, with the uncommo ### 40 Magical Treasures -1. *Weapon +1* -2. *Armor +1* -3. *Ammunition +1* -4. *Amulet of proof against detection and location* -5. *Bag of holding* -6. *Bag of tricks* -7. *Boots of elvenkind* -8. *Boots of striding and springing* -9. *Boots of the winterlands* +1. *Weapon +1* +2. *Armor +1* +3. *Ammunition +1* +4. *Amulet of proof against detection and location* +5. *Bag of holding* +6. *Bag of tricks* +7. *Boots of elvenkind* +8. *Boots of striding and springing* +9. *Boots of the winterlands* 10. *Bracers of archery* 11. *Brooch of shielding* 12. *Broom of flying* @@ -1896,15 +1896,15 @@ To generate a simple trap, just roll on the Type list and the Trigger table. For ### 1d20 Flavors -1. Fiery -2. Freezing -3. Necrotic -4. Poisonous -5. Acidic -6. Thunderous -7. Lightning -8. Forceful -9. Diseased +1. Fiery +2. Freezing +3. Necrotic +4. Poisonous +5. Acidic +6. Thunderous +7. Lightning +8. Forceful +9. Diseased 10. Stunning 11. Blinding 12. Deafening @@ -1919,15 +1919,15 @@ To generate a simple trap, just roll on the Type list and the Trigger table. For ### 1d20 Types -1. Bolts -2. Spears -3. Scythes -4. Bolos -5. Spiked chains -6. Pit -7. Rolling ball -8. Crushing pillars -9. Darts +1. Bolts +2. Spears +3. Scythes +4. Bolos +5. Spiked chains +6. Pit +7. Rolling ball +8. Crushing pillars +9. Darts 10. Glyphs 11. Swords 12. Axes @@ -1942,15 +1942,15 @@ To generate a simple trap, just roll on the Type list and the Trigger table. For ### 1d20 Triggers -1. Door -2. Floor plate -3. Tripwire -4. Throne -5. Corpse -6. Chest -7. Old book -8. Child's toy -9. Jeweled skull +1. Door +2. Floor plate +3. Tripwire +4. Throne +5. Corpse +6. Chest +7. Old book +8. Child's toy +9. Jeweled skull 10. Beams of light 11. Golden angelic statue 12. Crystal goblet on pedestal @@ -1986,15 +1986,15 @@ Filling the various chambers and locations in your game with interesting feature ### 1d20 Origins -1. Draconic -2. Dwarven -3. Elven -4. Primeval -5. Divine -6. Unholy -7. Abyssal -8. Otherworldly -9. Orcish +1. Draconic +2. Dwarven +3. Elven +4. Primeval +5. Divine +6. Unholy +7. Abyssal +8. Otherworldly +9. Orcish 10. Undead 11. Goblinoid 12. Ghoulish @@ -2009,15 +2009,15 @@ Filling the various chambers and locations in your game with interesting feature ### 1d20 Conditions -1. Crumbling -2. Sunken -3. Pristine -4. Excavated -5. Vine-covered -6. Ruined -7. Cracked -8. Shattered -9. Buried +1. Crumbling +2. Sunken +3. Pristine +4. Excavated +5. Vine-covered +6. Ruined +7. Cracked +8. Shattered +9. Buried 10. Gore-covered 11. Bloody 12. Glyph-marked @@ -2032,15 +2032,15 @@ Filling the various chambers and locations in your game with interesting feature ### 1d20 Unusual Effects -1. Undeath -2. Fire -3. Madness -4. Water -5. Radiance -6. Arcane -7. Poison -8. Acid -9. Disease +1. Undeath +2. Fire +3. Madness +4. Water +5. Radiance +6. Arcane +7. Poison +8. Acid +9. Disease 10. Psionics 11. Frost 12. Lightning @@ -2055,15 +2055,15 @@ Filling the various chambers and locations in your game with interesting feature ### 100 Monument Structures -1. Aerie -2. Altar -3. Aqueduct -4. Arcane circle -5. Archway -6. Aviary -7. Barrow -8. Battlefield -9. Bell +1. Aerie +2. Altar +3. Aqueduct +4. Arcane circle +5. Archway +6. Aviary +7. Barrow +8. Battlefield +9. Bell 10. Bone pile 11. Boneyard 12. Bonfire @@ -2154,7 +2154,7 @@ Filling the various chambers and locations in your game with interesting feature 97. Wall 98. Waymarker 99. Well -100. Windmill +100. Windmill ## Random Items @@ -2166,15 +2166,15 @@ Also included is a table noting the four types of *healing potions* and how many ### 1d20 Weapon Types -1. Dagger -2. Mace -3. Quarterstaff -4. Spear -5. Light crossbow -6. Shortbow -7. Battleaxe -8. Flail -9. Glaive +1. Dagger +2. Mace +3. Quarterstaff +4. Spear +5. Light crossbow +6. Shortbow +7. Battleaxe +8. Flail +9. Glaive 10. Greataxe 11. Greatsword 12. Longsword @@ -2189,15 +2189,15 @@ Also included is a table noting the four types of *healing potions* and how many ### 1d20 Item Origins -1. Draconic -2. Dwarven -3. Elven -4. Primeval -5. Divine -6. Unholy -7. Abyssal -8. Otherworldly -9. Orcish +1. Draconic +2. Dwarven +3. Elven +4. Primeval +5. Divine +6. Unholy +7. Abyssal +8. Otherworldly +9. Orcish 10. Undead 11. Goblinoid 12. Ghoulish @@ -2212,15 +2212,15 @@ Also included is a table noting the four types of *healing potions* and how many ### 1d20 Item Conditions -1. Grimy -2. Chipped -3. Rough -4. Smooth -5. Ancient -6. Crumbling -7. Pristine -8. Cool -9. Ornate +1. Grimy +2. Chipped +3. Rough +4. Smooth +5. Ancient +6. Crumbling +7. Pristine +8. Cool +9. Ornate 10. Plain 11. Rune-scribed 12. Carved @@ -2235,30 +2235,30 @@ Also included is a table noting the four types of *healing potions* and how many ### 1d12 Armor Types -1. Leather -2. Studded leather -3. Hide -4. Chain shirt -5. Scale mail -6. Breastplate -7. Half plate -8. Ring mail -9. Chain mail +1. Leather +2. Studded leather +3. Hide +4. Chain shirt +5. Scale mail +6. Breastplate +7. Half plate +8. Ring mail +9. Chain mail 10. Splint 11. Plate 12. Shield ### 50 Mundane Items -1. Amulet -2. Arrowhead -3. Bell -4. Bird skull -5. Bone -6. Bowl -7. Box -8. Bracelet -9. Brooch +1. Amulet +2. Arrowhead +3. Bell +4. Bird skull +5. Bone +6. Bowl +7. Box +8. Bracelet +9. Brooch 10. Buckle 11. Candle 12. Coin @@ -2303,15 +2303,15 @@ Also included is a table noting the four types of *healing potions* and how many ### 50 Spell Effect -1. *Acid arrow* -2. *Acid splash* -3. *Bane* -4. *Banishment* -5. *Bestow curse* -6. *Black tentacles* -7. *Bless* -8. *Blight* -9. *Blindness/ deafness* +1. *Acid arrow* +2. *Acid splash* +3. *Bane* +4. *Banishment* +5. *Bestow curse* +6. *Black tentacles* +7. *Bless* +8. *Blight* +9. *Blindness/ deafness* 10. *Burning hands* 11. *Charm person* 12. *Cloudkill* @@ -2369,15 +2369,15 @@ Whenever the characters enter a new town or start a new session there, adding so ### 1d20 Town Sentiments -1. Happy -2. Elated -3. Uncaring -4. Joyful -5. Optimistic -6. Pessimistic -7. Downtrodden -8. Frightened -9. Horrified +1. Happy +2. Elated +3. Uncaring +4. Joyful +5. Optimistic +6. Pessimistic +7. Downtrodden +8. Frightened +9. Horrified 10. Concerned 11. Unconcerned 12. Harried @@ -2392,15 +2392,15 @@ Whenever the characters enter a new town or start a new session there, adding so ### 1d20 Mundane Events -1. Wedding -2. Funeral -3. Preparing for war -4. Seasonal celebration -5. Burning of an effigy -6. Death of a noble lord -7. Day of drunkenness -8. Celebration of lovers -9. Great feast +1. Wedding +2. Funeral +3. Preparing for war +4. Seasonal celebration +5. Burning of an effigy +6. Death of a noble lord +7. Day of drunkenness +8. Celebration of lovers +9. Great feast 10. Execution 11. Market day 12. Parade of vanquished foes @@ -2415,15 +2415,15 @@ Whenever the characters enter a new town or start a new session there, adding so ### 1d20 Notable Weather Condtions -1. Fog -2. Heavy mist -3. New moon -4. Full moon -5. Hot day -6. Chilly day -7. Light rain -8. Moderate rain -9. Heavy rain +1. Fog +2. Heavy mist +3. New moon +4. Full moon +5. Hot day +6. Chilly day +7. Light rain +8. Moderate rain +9. Heavy rain 10. Windstorm 11. Hailstorm 12. Ice storm @@ -2438,15 +2438,15 @@ Whenever the characters enter a new town or start a new session there, adding so ### 1d20 Fantastic Events -1. The stars have disappeared from the sky -2. An unexpected solar eclipse -3. The blood moon rises -4. Swarms of stinging insects descend -5. Acidic fog rolls in -6. A second sun appears in the sky -7. A storm of arcane energy -8. The arrival of a servant of a god -9. Meteor shower +1. The stars have disappeared from the sky +2. An unexpected solar eclipse +3. The blood moon rises +4. Swarms of stinging insects descend +5. Acidic fog rolls in +6. A second sun appears in the sky +7. A storm of arcane energy +8. The arrival of a servant of a god +9. Meteor shower 10. A cyclopean behemoth rises 11. Swarms of mischievous devils 12. Tentacles appear in the sky @@ -2490,15 +2490,15 @@ Before the number of monsters is set, you can gauge whether your intended encoun ### Monster List 1 (CR 1/8—1/4) -1. Bandit -2. Cultist -3. Flying snake -4. Giant crab -5. Giant rat -6. Kobold -7. Poisonous snake -8. Stirge -9. Tribal warrior +1. Bandit +2. Cultist +3. Flying snake +4. Giant crab +5. Giant rat +6. Kobold +7. Poisonous snake +8. Stirge +9. Tribal warrior 10. Axe beak 11. Blink dog 12. Dretch @@ -2513,15 +2513,15 @@ Before the number of monsters is set, you can gauge whether your intended encoun ### Monster List 2 (CR 1/4—1) -1. Wolf -2. Zombie -3. Cockatrice -4. Darkmantle -5. Gnoll -6. Gray ooze -7. Hobgoblin -8. Lizardfolk -9. Magmin +1. Wolf +2. Zombie +3. Cockatrice +4. Darkmantle +5. Gnoll +6. Gray ooze +7. Hobgoblin +8. Lizardfolk +9. Magmin 10. Orc 11. Rust monster 12. Sahuagin @@ -2536,15 +2536,15 @@ Before the number of monsters is set, you can gauge whether your intended encoun ### Monster List 3 (CR 1—2) -1. Dire wolf -2. Duergar -3. Ghoul -4. Giant spider -5. Giant toad -6. Harpy -7. Imp -8. Specter -9. Spy +1. Dire wolf +2. Duergar +3. Ghoul +4. Giant spider +5. Giant toad +6. Harpy +7. Imp +8. Specter +9. Spy 10. Ankheg 11. Bandit captain 12. Berserker @@ -2559,15 +2559,15 @@ Before the number of monsters is set, you can gauge whether your intended encoun ### Monster List 4 (CR 2—3) -1. Azer -2. Green dragon wyrmling -3. Grick -4. Griffon -5. Merrow -6. Mimic -7. Minotaur skeleton -8. Ochre jelly -9. Ogre +1. Azer +2. Green dragon wyrmling +3. Grick +4. Griffon +5. Merrow +6. Mimic +7. Minotaur skeleton +8. Ochre jelly +9. Ogre 10. Ogre zombie 11. Priest 12. Rug of smothering @@ -2582,15 +2582,15 @@ Before the number of monsters is set, you can gauge whether your intended encoun ### Monster List 5 (CR 3—4) -1. Doppelganger -2. Giant scorpion -3. Green hag -4. Hell hound -5. Knight -6. Manticore -7. Minotaur -8. Mummy -9. Nightmare +1. Doppelganger +2. Giant scorpion +3. Green hag +4. Hell hound +5. Knight +6. Manticore +7. Minotaur +8. Mummy +9. Nightmare 10. Owlbear 11. Phase spider 12. Veteran @@ -2605,15 +2605,15 @@ Before the number of monsters is set, you can gauge whether your intended encoun ### Monster List 6 (CR 4—5) -1. Lamia -2. Red dragon wyrmling -3. Succubus/incubus -4. Wereboar -5. Air elemental -6. Barbed devil -7. Bulette -8. Earth elemental -9. Fire elemental +1. Lamia +2. Red dragon wyrmling +3. Succubus/incubus +4. Wereboar +5. Air elemental +6. Barbed devil +7. Bulette +8. Earth elemental +9. Fire elemental 10. Flesh golem 11. Giant crocodile 12. Gladiator @@ -2628,15 +2628,15 @@ Before the number of monsters is set, you can gauge whether your intended encoun ### Monster List 7 (CR 5—8) -1. Salamander -2. Vampire spawn -3. Water elemental -4. Wraith -5. Xorn -6. Chimera -7. Drider -8. Invisible stalker -9. Mage +1. Salamander +2. Vampire spawn +3. Water elemental +4. Wraith +5. Xorn +6. Chimera +7. Drider +8. Invisible stalker +9. Mage 10. Medusa 11. Vrock 12. Wyvern @@ -2651,15 +2651,15 @@ Before the number of monsters is set, you can gauge whether your intended encoun ### Monster List 8 (CR 8—12) -1. Frost giant -2. Hezrou -3. Hydra -4. Spirit naga -5. Young green dragon -6. Bone devil -7. Clay golem -8. Cloud giant -9. Fire giant +1. Frost giant +2. Hezrou +3. Hydra +4. Spirit naga +5. Young green dragon +6. Bone devil +7. Clay golem +8. Cloud giant +9. Fire giant 10. Glabrezu 11. Young blue dragon 12. Aboleth @@ -2674,30 +2674,30 @@ Before the number of monsters is set, you can gauge whether your intended encoun ### Monster List 9 (CR 12—16) -1. Erinyes -2. Adult white dragon -3. Nalfeshnee -4. Rakshasa -5. Storm giant -6. Vampire -7. Adult black dragon -8. Ice devil -9. Adult green dragon +1. Erinyes +2. Adult white dragon +3. Nalfeshnee +4. Rakshasa +5. Storm giant +6. Vampire +7. Adult black dragon +8. Ice devil +9. Adult green dragon 10. Mummy lord 11. Purple worm 12. Adult blue dragon ### Monster List 10 (CR 16—24) -1. Iron golem -2. Marilith -3. Adult red dragon -4. Balor -5. Ancient white dragon -6. Pit fiend -7. Anclent black dragon -8. Lich -9. Ancient blue dragon +1. Iron golem +2. Marilith +3. Adult red dragon +4. Balor +5. Ancient white dragon +6. Pit fiend +7. Anclent black dragon +8. Lich +9. Ancient blue dragon 10. Ancient red dragon ## Lazy Solo 5e @@ -2726,15 +2726,15 @@ Each time your roll comes up 4, 5, 6, or 7, indicated by "QP" below, your quest On your fourth roll of quest progress, you reach the final challenge of the quest. If you succeed, you have completed the quest and gain a new level. -1. Trap or hazard -2. Trap or hazard -3. Monster and harmful monument -4. Monster and harmful monument (QP) -5. Monster and neutral monument (QP) -6. Monster and neutral monument (QP) -7. Monster and helpful monument (QP) -8. Monster and helpful monument -9. Healing font (restore 2d6 hit points). +1. Trap or hazard +2. Trap or hazard +3. Monster and harmful monument +4. Monster and harmful monument (QP) +5. Monster and neutral monument (QP) +6. Monster and neutral monument (QP) +7. Monster and helpful monument (QP) +8. Monster and helpful monument +9. Healing font (restore 2d6 hit points). 10. Unguarded treasure ### Traps and Hazards @@ -2753,12 +2753,12 @@ Each monster encounter includes a helpful, neutral, or harmful monument. Generat Roll a d6 to determine the effect of the monument. -1. +1 to AC -2. +1 to attacks and save DCs -3. +1 AC and saving throws -4. +1 temp hit point per character level (minimum 5) -5. +1d6 damage per five character levels -6. Advantage on attack rolls +1. +1 to AC +2. +1 to attacks and save DCs +3. +1 AC and saving throws +4. +1 temp hit point per character level (minimum 5) +5. +1d6 damage per five character levels +6. Advantage on attack rolls Helpful monuments provide this benefit to your character. Harmful monuments provide this benefit to monsters. For neutral monuments, your character can roll a DC 12 Intelligence (Arcana or Religion) check. On a success, your character gains the benefit. On a failure, the monster gains the benefit. @@ -2768,13 +2768,13 @@ When you defeat a monster or enter a chamber with unguarded treasure, roll on th ### 1d8 Treasures -1. No treasure -2. No treasure -3. 3d12 gp -4. 3d12 gp -5. *Potion of healing* -6. *Potion of healing* -7. Consumable item -8. Permanent item +1. No treasure +2. No treasure +3. 3d12 gp +4. 3d12 gp +5. *Potion of healing* +6. *Potion of healing* +7. Consumable item +8. Permanent item For consumable and permanent items, roll on the tables in the "[Treasure Generator](#treasuregenerator)" section or a random treasure table of your choice. You can replace any consumable magic item with a *potion of healing*. You can replace any permanent magic item with a *+1 weapon* of your choice. diff --git a/README.md b/README.md index ed557da..af62fe8 100644 --- a/README.md +++ b/README.md @@ -11,8 +11,9 @@ LGMRD is officially pronounced "Lymm Grid" and LGMMBRD "Lymm Bard". ### The Lazy GM's Resource Document - [HTML](https://github.com/crit-tech/LGMRD/blob/main/LGMRD.html) **Updated: Thu, 08 Feb 2024 02:14:22 GMT** -- [All-in-one Markdown](https://github.com/crit-tech/LGMRD/blob/main/LGMRD.md) **Updated: Thu, 08 Feb 2024 02:14:26 GMT** -- [Separate Markdown](https://github.com/crit-tech/LGMRD/tree/main/markdown_separate) files **Updated: Thu, 08 Feb 2024 02:14:26 GMT** +- [All-in-one Markdown](https://github.com/crit-tech/LGMRD/blob/main/LGMRD.md) **Updated: Sun, 10 Mar 2024 23:21:26 GMT** +- [Separate Markdown](https://github.com/crit-tech/LGMRD/tree/main/markdown_separate) files **Updated: Sun, 10 Mar 2024 23:21:26 GMT** +- [Markdown for Obsidian](https://github.com/crit-tech/LGMRD/tree/main/markdown_obsidian) **Updated: Sun, 10 Mar 2024 23:21:53 GMT** - [JSON](https://github.com/crit-tech/LGMRD/blob/main/LGMRD.json) **Updated: Thu, 08 Feb 2024 02:14:27 GMT** - [NPM](https://www.npmjs.com/package/@crit-tech/lgmrd) **Updated: Thu, 08 Feb 2024 02:14:27 GMT** - [PDF](https://github.com/crit-tech/LGMRD/blob/main/LGMRD.pdf) **Updated: Thu, 08 Feb 2024 02:14:24 GMT** @@ -22,10 +23,11 @@ LGMRD is officially pronounced "Lymm Grid" and LGMMBRD "Lymm Bard". ### The Lazy GM's 5e Monster Builder Resource Document - [HTML](https://github.com/crit-tech/LGMRD/blob/main/5e_Monster_Builder.html) **Updated: Sat, 10 Feb 2024 00:52:43 GMT** -- [All-in-one Markdown](https://github.com/crit-tech/LGMRD/blob/main/5e_Monster_Builder.md) **Updated: Sat, 10 Feb 2024 00:52:45 GMT** -- [Separate Markdown](https://github.com/crit-tech/LGMRD/tree/main/markdown_separate_5e_monster_builder) files **Updated: Sat, 10 Feb 2024 00:52:45 GMT** -- [JSON](https://github.com/crit-tech/LGMRD/blob/main/5e_Monster_Builder.json) **Updated: Sat, 10 Feb 2024 00:52:45 GMT** -- [NPM](https://www.npmjs.com/package/@crit-tech/lgmmbrd) **Updated: Sat, 10 Feb 2024 00:52:45 GMT** +- [All-in-one Markdown](https://github.com/crit-tech/LGMRD/blob/main/5e_Monster_Builder.md) **Updated: Sun, 10 Mar 2024 23:21:27 GMT** +- [Separate Markdown](https://github.com/crit-tech/LGMRD/tree/main/markdown_separate_5e_monster_builder) files **Updated: Sun, 10 Mar 2024 23:21:27 GMT** +- [Markdown for Obsidian](https://github.com/crit-tech/LGMRD/tree/main/markdown_obsidian_5e_monster_builder) **Updated: Sun, 10 Mar 2024 23:21:27 GMT** +- [JSON](https://github.com/crit-tech/LGMRD/blob/main/5e_Monster_Builder.json) **Updated: Sun, 10 Mar 2024 23:21:54 GMT** +- [NPM](https://www.npmjs.com/package/@crit-tech/lgmmbrd) **Updated: Sun, 10 Mar 2024 23:21:54 GMT** - [PDF](https://github.com/crit-tech/LGMRD/blob/main/5e_Monster_Builder.pdf) **Updated: Sat, 10 Feb 2024 00:52:44 GMT** - [EPUB](https://github.com/crit-tech/LGMRD/blob/main/5e_Monster_Builder.epub) **Updated: Sat, 10 Feb 2024 00:52:44 GMT** - [BRAILLE](https://github.com/crit-tech/LGMRD/blob/main/The_Lazy_GMs_5e_Monster_Builder_Resource_Document.brf) **Updated: Sat, 10 Feb 2024 00:52:44 GMT** diff --git a/markdown_obsidian/5e Quick Encounter Building.md b/markdown_obsidian/5e Quick Encounter Building.md new file mode 100644 index 0000000..c2d6e0b --- /dev/null +++ b/markdown_obsidian/5e Quick Encounter Building.md @@ -0,0 +1,30 @@ +# 5e Quick Encounter Building + +When building encounters, start by choosing the type and number of monsters that make sense for the situation. Then use the following guidelines to compare the challenge rating of the monsters, the level of the characters, and the ratio of monsters to characters. If the quantity of monsters or their challenge rating is beyond the indicated guidelines, the encounter might be deadly. Be especially careful with potentially deadly encounters when the characters are 1st level. + +## For Characters of 1st Level + +* CR 0 to 1/4: One monster per character +* CR 1/2: One monster per two characters +* CR 1: One monster per four characters + +## For Characters of 2nd to 4th Level + +* CR = 1/10 level: Two monsters per character +* CR = 1/4 level: One monster per character +* CR = 1/2 level: One monster per two characters +* CR = Level: One monster per four characters + +## For characters of 5th to 20th Level + +* CR = 1/10 level: Four monsters per character +* CR = 1/4 level: Two monsters per character +* CR = 1/2 level: One monster per character +* CR = 3/4 level: One monster per two characters +* CR = Level + 3: One monster per four characters + +Finally, tune encounters by adjusting the number of monsters, increasing or decreasing hit points, or making named or unique monsters more powerful. + +**Hit Points:** Standard monster hit points are an average of the monster's HD range. You can increase or decrease hit points within that range to model particularly weak or particularly strong monsters. To make a fight easier, you can also treat monsters as "instant minions," ignoring their usual hit points and letting a single attack kill them. Having a few enemies die quickly can turn the tide in favor of the characters and keep a battle from feeling stale. + +**Named Monsters:** Adding an extra attack or maximizing damage can make a named monster or unique foe more challenging. Named monsters can also be given legendary actions or the Legendary Resistance feature to make the fight more interesting. diff --git a/markdown_obsidian/Building an RPG Group.md b/markdown_obsidian/Building an RPG Group.md new file mode 100644 index 0000000..48defcb --- /dev/null +++ b/markdown_obsidian/Building an RPG Group.md @@ -0,0 +1,49 @@ +# Building an RPG Group + +## Finding and Maintaining a Solid Group + +Finding and maintaining a solid group for roleplaying gaming remains the most difficult task for many GMs. This section offers suggestions for finding players that fit well with your group, and for keeping that group going for years to come. + +## Finding Players + +The first step to building an RPG group is finding players. Some of the most common ways to find players for a group include the following: + +* Recruit friends and family +* Recruit coworkers +* Ask about putting a notice up at your local game store or library +* Join local organized play groups +* Seek LFG (Looking for Group) forums on Discord, Reddit, Meetup, Next Door, and other forums + +## Selecting Players + +Before you invite a player to your gaming group, ensure that they're the right fit for your game and the other players. Start by asking a prospective player questions about their commitment, play style, and reaction to your style of play. Example questions might include the following: + +* Do they live nearby, and can they commit to the game's schedule? +* Do they consider themselves a more story-focused or more tactics-focused player? +* Are they okay playing with theater-of-the-mind combat or playing on a battle grid? +* What do they enjoy most about RPGs? +* How do they weight their enjoyment of the following: NPC interaction, exploration, world lore, character background, character optimization, and tactical combat? + +Asking questions isn't about getting right or wrong answers. Rather, questions can help you identify players who will fit well into your game. They'll also help you determine if there are things a player desires that they're not going to find in your game. + +Take the time to meet one-on-one with a prospective player and talk to them about what they want from your game and what experiences they've had with other groups. Go with your gut judgment on whether each player you meet will be a good fit for your group. + +If they seem like a good fit, invite a player to a single-session game or a short series of games at a different time than your regularly scheduled session, ideally with one or more regular players from your group. See how they fit in during an actual game. If they don't fit, you don't have to invite them to another game. But if they do feel like a good fit, you can invite them to your regular game and see how things go. + +## Flexible Numbers of Players and On-Call Players + +Decide on the minimum and maximum number of players for any given session. A minimum of three and maximum of six is often ideal. While seeking players, you might find some who can't commit to a regularly scheduled game, but who can come from time to time. Put these players on an "on-call" list so that if you have an open chair, you can ask them if they're able to fill it. Putting prospective new players on an on-call list is also a good way to see if they're a good fit for the group before they become a regular player. + +## Choose a Regular Schedule + +Rather than attempting to schedule games from session to session, find a set day and time to run your games and stick to it. Run games every week if possible. Otherwise, try every other week at the same day and time. Choose regular, shorter games rather than longer, more infrequent games to help with scheduling. + +## The Game Must Go On + +Run the game as regularly as you can. Don't cancel games if one or two players can't make it. If you're able to play with as few as three and have a regular group of six, it should take four players canceling before you have to call off a game. The more consistent the game, the more likely that the players will make it a part of their regular schedule. + +If you find that certain players are regularly missing the game, ask if they would prefer to be on your on-call list, and then seek a new player with better availability. + +## Let Absent Characters Fade into the Background + +Don't worry about what happens to characters in-game when a player misses the session. If there is an easy way for the character to step out of the story, take it. Otherwise, just let the character fade into the background. Your players will understand why you're taking such liberties with the universe, and that in-world consistency isn't as important as making allowances for the realities of people's lives. diff --git a/markdown_obsidian/Connecting Characters.md b/markdown_obsidian/Connecting Characters.md new file mode 100644 index 0000000..d43078a --- /dev/null +++ b/markdown_obsidian/Connecting Characters.md @@ -0,0 +1,55 @@ +# Connecting Characters + +During your session zero of a new campaign, or if you're running a single-session one-shot game, consider establishing connections between the characters to help build a cohesive bond between them before the game begins. This can help prevent ham-fisted and convoluted attempts to build a story that connects the characters, when all the players already know perfectly well that they're coming together simply for the adventure. + +This section presents two potential approaches to connecting characters. First, all the characters can be previously connected through a single organization, faction, or patron, using ideas from the Group Connections table. Alternatively, each character can establish a connection to one or more other characters through a personal relationship and history, using ideas from the Character Connections table. Players can work together to come up with these shared histories based on the overall themes of the campaign, or the group can randomly select potential relationships and tweak the results as desired. + +For individual connections, each player can roll on the Character Connections table to establish a relationship with the character of the player on their right. Going once around the game table this way means that every character will have two relationships-one with the player on their right and one with the player on their left. + +For single-session games, consider establishing a single group relationship for all the characters before the game begins. This relationship can directly tie into the story of the adventure, and will speed up the game by eliminating lengthy discussions about how the characters got together. + +## Group Connections + +1. Mercenary company +2. Self-employed investigators +3. Official investigators +4. Royal advisors +5. Thieves' guild +6. Secret society +7. Religious investigators +8. Adventuring company +9. Business investigators +10. Assassins' guild +11. Wizarding school +12. Monastic students +13. Gladiator school +14. Military specialists +15. Spy network +16. Constabulary +17. Magically bound servants +18. Divinely inspired +19. Protectors of the common folk +20. Seekers of vengeance + +## Character Connections + +1. Sibling of +2. Saved by +3. Served with +4. Protected by +5. Adventured with +6. Friendly rival of +7. Childhood friend of +8. Magically bound to +9. Survived with +10. Escaped with +11. Apprentice of +12. Acolyte of +13. Idolizes +14. Drinking buddies with +15. Business associate of +16. Lost a bet to +17. Indebted to +18. Trained by +19. Dueling partner of +20. On the run with diff --git a/markdown_obsidian/Core Adventure Generators.md b/markdown_obsidian/Core Adventure Generators.md new file mode 100644 index 0000000..b8b8532 --- /dev/null +++ b/markdown_obsidian/Core Adventure Generators.md @@ -0,0 +1,277 @@ +# Core Adventure Generators + +The tables in this section can help you generate a core fantasy adventure based on the traditional concept of getting hired by a patron or other NPC to take on a quest in a specific location. Often these adventures take place in small settlements surrounded by ancient ruins and monstrous lairs on the edge of civilization. + +Use these tables together to generate and inspire full adventures, or use individual tables to fill in the details of other adventures you create or play. This generator (and specifically, the Dungeon Monsters table and the Treasure table) is set up for characters of 1st to 4th level, but can be easily modified for higher-level adventures. + +## Patrons and NPCs + +Use these tables to generate a patron or NPC for your adventure, applying an NPC stat block to create villains, hirelings, rivals, or heralds. + +| d20 | Behavior | Ancestry | +| --- | ------------- | ----------------- | +| 1 | Enthusiastic | Human | +| 2 | Flighty | Elf | +| 3 | Shifty | Dwarf | +| 4 | Optimistic | Halfling | +| 5 | Paranoid | Orc | +| 6 | Well spoken | Drow | +| 7 | Superior | Tiefling | +| 8 | Haughty | Dragonborn | +| 9 | Pessimistic | Fey | +| 10 | Suspicious | Goblin | +| 11 | Worried | Construct | +| 12 | Greedy | Celestial | +| 13 | Brave | Ghost | +| 14 | Stern | Wizard's familiar | +| 15 | Sly | Talking animal | +| 16 | Wise | Avian | +| 17 | Reserved | Lizardfolk | +| 18 | Cheery | Catfolk | +| 19 | Opportunistic | Lycanthrope | +| 20 | Soft spoken | Artifact | + +## Quests + +Any quests the characters are asked to fulfill might be distilled down to one of the following starting points. + +## 1d20 Quests + +1. Find an item +2. Kill a villain +3. Rescue an NPC +4. Uncover a secret +5. Clear out monsters +6. Protect a monument +7. Protect an NPC +8. Steal an item +9. Return an item +10. Close a gate +11. Open a gate +12. Activate a monument +13. Disable an artifact +14. Recover an item +15. Convince an NPC +16. Awaken a monster +17. Put a monster to sleep +18. Bury a secret +19. Discover a monument +20. Dig up an artifact + +## Locations, Monuments, and Items + +The location of the quest might also contain specific monuments or items tied to the adventure's goals. + +| d20 | Location | Monument | Item | +| --- | ------------ | ------------- | -------- | +| 1 | Tower | Sarcophagus | Coin | +| 2 | Crypts | Obelisk | Figurine | +| 3 | Keep | Orb | Gemstone | +| 4 | Cairn | Bone pile | Amulet | +| 5 | Giant statue | Skull | Earring | +| 6 | Caves | Megalith | Bell | +| 7 | Sewers | Pillars | Bone | +| 8 | Temple | Throne | Bowl | +| 9 | Mines | Statues | Candle | +| 10 | Mansion | Well | Ring | +| 11 | Academy | Orrery | Circlet | +| 12 | Dungeon | Effigy | Bracelet | +| 13 | Barrow | Arcane circle | Dagger | +| 14 | Vault | Spire | Goblet | +| 15 | Tomb | Altar | Key | +| 16 | Warren | Pit | Lamp | +| 17 | Ship | Fountain | Brooch | +| 18 | Sanctum | Archway | Skull | +| 19 | Cove | Cage | Mask | +| 20 | Castle | Brazier | Necklace | + +## Condition, Description, and Origin + +Locations, monuments, or items can be flavored by determining their condition, description, and origin. + +| d20 | Condition | Description | Origin | +| --- | ----------- | ----------- | ---------- | +| 1 | Smoky | Ruined | Human | +| 2 | Acidic | Decrepit | Elven | +| 3 | Bloodied | Obsidian | Dwarven | +| 4 | Burning | Haunted | Halfling | +| 5 | Frozen | Unholy | Gnomish | +| 6 | Poisonous | Sunken | Tiefling | +| 7 | Necrotic | Forgotten | Dragonborn | +| 8 | Thunderous | Macabre | Orc | +| 9 | Ringing | Ancient | Goblinoid | +| 10 | Lightning | Festering | Undead | +| 11 | Radiant | Monstrous | Celestial | +| 12 | Shadowed | Golden | Fey | +| 13 | Oozing | Spired | Elemental | +| 14 | Ethereal | Towering | Giant | +| 15 | Whispering | Forsaken | Fiendish | +| 16 | Windswept | Gloomy | Unseelie | +| 17 | Drenched | Horrific | Aberrant | +| 18 | Diseased | Colossal | Shadow | +| 19 | Crystalline | Overgrown | Ethereal | +| 20 | Silvered | Shattered | Abyssal | + +## Chambers + +Use this list when you need to define the purpose of a chamber in a dungeon, keep, or similar site. Reflavor any chamber to suit the theme of the adventure. + +## 1d20 Chambers + +1. Armory +2. Prison +3. Throne room +4. Crypt +5. Treasury +6. Barracks +7. Monstrous lair +8. Storeroom +9. Charnel pit +10. Museum +11. Torture chamber +12. Bedchamber +13. Gallery +14. Dining hall +15. Library +16. Pantry +17. Laboratory +18. Cesspit +19. Bone yard +20. Scrying chamber + +## Dungeon Discoveries + +Add useful discoveries such as the following to your adventure, to create upward beats in the characters' story. + +## 1d20 Discoveries + +1. Helpful NPC +2. Holy fountain +3. Inspiring statue +4. Revealing mosaic +5. Radiant shrine +6. Friendly spirit +7. Hidden campsite +8. Edible mushrooms +9. Explorer's pack +10. Spy hole +11. Adventurer's journal +12. Escape tunnel +13. Useful teleporter +14. Enlightening mural +15. Healing spring +16. Wounded enemy +17. Well-stocked armory +18. Friendly creature +19. Useful machinery +20. Historical library + +## Dungeon Monsters + +You can add monsters and other foes to your adventure by consulting the following list. Roll a d8 for easy monsters, roll a d12 to expand the range into hard monsters, or roll a d20 to also include dangerous monsters. If you decide to use a monster as a boss monster, give it double hit points and let it take an extra action each turn. + +For foes such as bandits and cultists, you can also roll for ancestry on the NPC creation lists if those foes having a common origin makes sense for your narrative. + +## 1d20 Monsters + +1. Giant rats +2. Bandits +3. Cultists +4. Acolytes +5. Stirges +6. Guards +7. Skeletons +8. Oozes +9. Shadows +10. Spies +11. Ghouls +12. Specters +13. Cult fanatics +14. Gelatinous cubes +15. Ogres +16. Wererats +17. Basilisks +18. Green hags +19. Hell hounds +20. Mummies + +## Traps and Hazards + +Add traps as they make sense for the adventure. At 1st through 4th level, traps often have a DC of 13, and deal 7 (2d6) damage for easy traps or 11 (2d10) damage for hard traps. + +## 1d20 Traps and Hazards + +1. Spiked pit +2. Lightning blasts +3. Poisoned darts +4. Swarms of insects +5. Explosive runes +6. Radiant pillars +7. Flame-jet idols +8. Force beams +9. Crippling caltrops +10. Acidic pools +11. Bear traps +12. Ghostly haunting +13. Poisoned gas +14. Magical instability +15. Barbed spears +16. Dense fog +17. Psychic feedback +18. Greasy floor +19. Thick webs +20. Freezing jets + +## Treasure + +This list lets you add treasure to the adventure as appropriate. Roll a d10 to determine monetary treasure, or a d20 for monetary and magical treasure. + +## 1d20 Treasures + +1. Coins +2. Bag of gemstones +3. Platinum jewelry +4. Rune-scribed gem +5. Golden goblet +6. Ancient tome +7. Treasure map +8. Ancient relic +9. Fantastic art +10. Jeweled idol +11. Potion of healing +12. Other potion +13. Scroll or spell scroll +14. Bag of holding +15. Wondrous item +16. Wand or rod +17. Magic light weapon +18. Magic heavy weapon +19. Magic ranged weapon +20. Magic armor + +## Spells + +Some commonly discovered relics might grant a single- use spell, while less common magic items might allow their wielder to cast a spell daily. Use the list of common spells below or choose specialized spells to create unique magic item rewards. + +## 1d20 Spells + +1. *Magic missile* +2. *Burning hands* +3. *Shield* +4. *Cure wounds* +5. *Guiding bolt* +6. *Invisibility* +7. *Scorching ray* +8. *Shatter* +9. *Aid* +10. *Misty step* +11. *Spiritual weapon* +12. *Lesser restoration* +13. *Daylight* +14. *Mass healing word* +15. *Revivify* +16. *Lightning bolt* +17. *Fireball* +18. *Dispel magic* +19. *Haste* +20. *Fly* diff --git a/markdown_obsidian/Creating Secrets and Clues.md b/markdown_obsidian/Creating Secrets and Clues.md new file mode 100644 index 0000000..cc0bd37 --- /dev/null +++ b/markdown_obsidian/Creating Secrets and Clues.md @@ -0,0 +1,71 @@ +# Creating Secrets and Clues + +Secrets and clues are short pieces of information the characters might discover during an adventure. Secrets and clues are initially written without regard to the method by which they might be discovered. Instead, we improvise their discovery as the characters engage with the adventure's locations and NPCs. + +The following prompts don't create specific secrets and clues. Rather, the questions they ask are meant to inspire the creation of your own secrets for your campaign. Keep in mind that secrets are meant to serve you. Don't overthink them or worry about making them perfect. There's no wrong way to use secrets and clues as long as they help you run your game. + +## Character Secrets + +Use character secrets to tie the characters to the world around them. These sorts of secrets might be revealed by NPCs, old journals or letters, suddenly recalled memories, or prophetic dreams. + +1. What family history might be revealed? +2. What ties the character to this location? +3. What ghost or spirit haunts the character? +4. What dreams fill the character's rest? +5. What parasite secretly infests the character? +6. Which family member is involved in the adventure? +7. How is the villain related to the character? +8. What NPC who the character thinks is dead still lives? +9. What ritual was the character blessed with as a child? +10. What previous event ties the character to the story? + +## Historical Secrets + +Use historical secrets to give the characters meaningful and useful information as they explore the setting of the campaign. Secrets of this kind should provide characters and players alike with bite-sized pieces of local or world history. + +Historical secrets might be found as mosaics in ancient tombs, statues in old ruins, dusty tomes in ancient libraries, markings on strange weapons, or tales shared among elderly villagers. + +1. What dead god has a connection to the area? +2. What armies once battled here? +3. What cruel lord was slain in this place? +4. What ancient civilization once thrived here? +5. What old empire's settlements lie buried here? +6. What alien creature or power is hidden here? +7. What rebellion took place here? +8. What primeval mysteries lay buried here? +9. What was this location's former purpose? +10. What horrific monster once ruled here? + +## NPC and Villain Secrets + +Use NPC and villain secrets to reveal information about these NPCs to the characters, especially as a means of introducing villains before they face the characters. + +Characters might learn NPC or villain secrets from a villain's herald or sidekick, rumors at a local pub, recovered journals, a minion's last words, captured letters, or town gossip. + +1. What dark history follows the NPC? +2. What makes the NPC think they're right? +3. What was the NPC's great accomplishment? +4. What foe did the NPC defeat? +5. What makes the NPC politically untouchable? +6. What great power does the NPC possess? +7. What does the NPC desire? +8. What regular routines does the NPC follow? +9. Who does the NPC love above all others? +10. What secret does the NPC want to keep hidden? + +## Plot and Story Secrets + +Use plot and story secrets to teach characters about the larger events going on in the world, and to move the characters forward in the story of your campaign. + +Characters might learn these secrets from quest-giving NPCs, notes found on defeated foes, dreams or portents from the gods, NPCs fleeing a disaster, arcane feedback from an object, or psychic projections. + +1. What villainous event will soon come to pass? +2. What disaster is about to befall the land? +3. What royal figure was just assassinated? +4. What dungeon entrance just became revealed? +5. What monsters recently appeared in the realm? +6. What armies just invaded the realm? +7. What dark sign or portent just appeared? +8. What natural disaster has recently struck the area? +9. What unnatural being has appeared in the world? +10. What unusual creature was seen walking the wilds? diff --git a/markdown_obsidian/Example Strong Starts.md b/markdown_obsidian/Example Strong Starts.md new file mode 100644 index 0000000..08654ae --- /dev/null +++ b/markdown_obsidian/Example Strong Starts.md @@ -0,0 +1,63 @@ +# Example Strong Starts + +A strong start kicks your game off in the middle of the action. It helps the players to let go of the real world and fall into the story unfolding at the table. Depending on where your adventure takes place, you can use any of the following strong starts in your own game, whether running a single-session adventure or a longer campaign. + +## Cities and Towns + +In a settlement, a strong start can make use of either combat or roleplaying. + +1. The characters interrupt bandits breaking into a shop. +2. Something slithers out of a nearby sewer. +3. A noble lord bumps into one of the characters and threatens to have them arrested. +4. A group of cultists kindly ask for a sample of a character's blood. +5. A hooded patron visits the characters, asking the characters to kill them in two days. +6. A riot draws the local watch away, whereupon a squad of hired killers descends on the characters. +7. The campaign's main villain shows up and invites the characters for a drink. +8. A scarred explorer offers to sell one of the characters a map to a site of a lost or stolen ancestral heirloom. +9. A golem from a wizards' academy goes on a rampage. +10. The local monarch is assassinated and a villain takes over the government. + +## Sewers + +A session that starts in a sewer can make use of numerous monsters and hazards. + +1. A flood of poisonous water flows past the characters' position. +2. The sewer collapses into deeper tunnels sealed up for centuries. +3. A wererat approaches the characters, offering to sell valuable information. +4. A pack of ghouls chase a young couple reported missing days ago. +5. A legendary giant crocodile stealthily stalks the characters. +6. The characters find a powerful magical dagger sought by a guild of wraith assassins. +7. Swampy sewer gas gives one of the characters supernatural visions of the villain's master plan. +8. The characters meet an eccentric wizard farming mushrooms for spell components. +9. A wall collapses, revealing a hidden temple of the god of slimes and oozes. +10. A flood of water draws the characters into a dangerously large mechanical sluice system. + +## Wilderness + +Wilderness locations can involve either action or mystery in a strong start. + +1. A nearby tree opens up, and a satyr steps through and says "Hi!" +2. A rampaging werebear storms through the area, mistaking the characters for the hunters who killed their mate. +3. Night falls, revealing an alien starscape above. +4. The characters see a tall humanoid with antlers stalking from the shadows, carrying a large scythe in one hand and three humanoid heads in the other. +5. The ground suddenly churns, bringing the body of a long-lost elf king to the surface. The king's eyes open. +6. The characters stumble upon a nest of skeletal pixies surrounding a desecrated fey gate. +7. A golden-antlered stag leaps into the characters' camp and asks to be defended from the hunters chasing it. +8. An old woman greets the characters, offering them candy and baked treats if they will come to her nearby cottage. +9. A skeleton hanging from a tree begs the characters to right the wrong it committed while alive. +10. A sinkhole opens up, revealing the tunnels of long-forgotten burial chambers. + +## Dungeons, Caves, and Caverns + +Subterranean adventures lend themselves to the widest possible range of strong starts. + +1. A vampire appears from a sudden rise of mist, introduces herself, and asks the characters for a favor. +2. An ancient statue turns its head toward the characters and whispers a valuable secret. +3. The floor collapses, revealing even deeper tunnels long forgotten. +4. Through a cracked wall, the characters spot a gateway flanked by two huge obsidian statues, and featuring a set of stairs leading down. +5. The characters come across two bands of goblins fighting each other for the favor of a hag named Auntie Chiptooth. +6. An eyestalk swells out from an oozy patch on the wall, beholds the characters, and then disappears back into the wall. +7. A wounded knight collapses near the characters, begging them to find her lost love before she dies. +8. The ground cracks open and a pillar of chipped obsidian juts out, projecting a prophecy in red Infernal glyphs on the walls of the chamber. +9. Stars swim in a moonlit well, then rise up to reveal themselves as will-o'-wisps. +10. A spectral hound guides the characters to the camp of a reclusive mage. diff --git a/markdown_obsidian/Lazy Combat Encounter Building for 5e.md b/markdown_obsidian/Lazy Combat Encounter Building for 5e.md new file mode 100644 index 0000000..af6a933 --- /dev/null +++ b/markdown_obsidian/Lazy Combat Encounter Building for 5e.md @@ -0,0 +1,51 @@ +# Lazy Combat Encounter Building for 5e + +This section helps you build and improvise dynamic combat encounters based on the fiction of the game. + +## Start with the Story + +Good combat encounters begin with the story. Instead of building combat encounters as fixed components of the game, let combat encounters evolve naturally from the story taking place at the table. + +Begin by asking the following question: What monsters make sense given the current location and situation? Then let that question guide you in the creation of a list of monsters and NPCs that might show up at a given location, and in what quantity. + +Instead of predefining scenes as combat, roleplaying, or exploration, let the characters' approach determine what happens. Maybe they fight the guards at the gatehouse. Maybe they sneak past. Maybe they try to play the part of hired mercenaries. But let whatever happens come from the choices of the players. + +## Average Character Hit Points + +Gauging the level of challenge in an encounter often comes down to comparing the amount of damage a monster can deal to the hit points of the characters. Hit points vary widely between classes, but you can use the following formula to estimate an average character's hit points at a given level: (Level × 7) + 3. + +By giving you a rough estimation of how tough characters of a given level are, this formula can help you gauge how dangerous a specific monster will be, as well as judging the potential deadliness of traps, hazards, and other effects that deal damage. + +## Potential Deadliness + +Assuming that your chosen monsters aren't dealing damage that easily overwhelms the characters' hit points, you can usually not worry about an encounter's difficulty — unless the encounter is potentially deadly. You can gauge an encounter's potential deadliness with the following benchmark: + +**An encounter might be deadly if the total of all the monsters' challenge ratings is greater than one quarter of the total of all the characters' levels, or one half of their levels if the characters are 5th level or higher.** + +To use this benchmark for characters of 1st through 4th level, add up the challenge ratings of all monsters in the encounter. Then add up the levels of all of the characters and divide that number by 4. If the challenge level summation is greater than the sum of character levels divided by 4, the encounter might be deadly. If the characters are above 5th level, use the same process but divide the total character levels by 2 instead of 4. + +Each time the characters gain a new level, calculate this deadly benchmark score and jot it down in your preparation notes so you have it on hand. If you find that the characters in your game often have an easy time with potentially deadly encounters, treat the characters as though they are one or more levels higher. This will raise the benchmark at which an encounter might become deadly, making the calculation more accurate. + +This benchmark assumes multiple monsters, and doesn't work well for gauging combat against a single monster. For legendary monsters-those with legendary actions and possibly lair actions-an encounter is generally deadly if the monster's challenge rating is 5 or more higher than the characters' average level. + +## Character Capabilities Vary + +No chart, table, or equation works perfectly to judge encounter balance at any given level, because no such system can take into account the wide range of options that can affect combat. Any individual character's effective power in a fight can go well beyond what's expected for their given level, especially at higher levels. And other factors that can affect a character's power might include any of the following: + +* Player experience +* Class synergy between different characters in the party +* Magic items +* Environmental and situational circumstances +* Feats and multiclassing +* The total number of actions on either side +* How well rested the characters are + +So use the benchmarks for determining whether an encounter might be deadly as a starting point. Then trust that you'll be better able to gauge what your characters can handle in combat the more you see them in action during the game. + +## Scaling for Higher Levels + +As characters reach 11th level and higher, the deadly encounter benchmark becomes less useful for accurately representing a deadly encounter. Depending on the capabilities of those higher-level characters, monsters might pose even less of a threat than their challenge rating denotes. As such, you can further adjust the deadly encounter benchmark to account for this power with the following optional guideline: + +At 11th level and higher, an encounter might be deadly if the total of all the monsters' challenge ratings is greater than three quarters of the total of all the characters' levels, or if it is equal to the total of their levels if the characters are 17th level or higher. + +This sets up encounters of a much greater challenge than the baseline benchmark, but it might work more accurately for higher-powered characters. diff --git a/markdown_obsidian/Lazy Solo 5e.md b/markdown_obsidian/Lazy Solo 5e.md new file mode 100644 index 0000000..09fcb68 --- /dev/null +++ b/markdown_obsidian/Lazy Solo 5e.md @@ -0,0 +1,78 @@ +# Lazy Solo 5e + +These rules let you play a solo game of 5e using lists in this document. With these guidelines, a single character explores a dungeon to complete quests. Let your imagination take over as you fill in the story and details of the quest, location, and adventure. + +This scenario begins at 1st level, and your character gains a level after each successful quest. + +## Building the Quest + +First, build a quest-giving NPC by rolling for behavior and ancestry in the "[Core Adventure Generators](coreadventuregenerators.md)" section of this document. Choose a name and any other details from the "[NPC Generator](npcgenerator.md)" section. + +Next, roll on the Quests in "[Core Adventure Generators](coreadventuregenerators.md)". Determine the location by rolling on the Condition, Description, Origin, and Location table. + +Choose a map for the location from your favorite online source of maps or any other maps you have on hand. Choose a map that fits the location. Maps with fifteen or more rooms work best for adventures created with these guidelines. + +You can then fill in additional quest details from the other tables in "[Core Adventure Generators](coreadventuregenerators.md)". Examples include required keys, monuments, villains, lieutenants, and other quest goals. + +Choose a starting room on the map that makes sense. + +## Exploring the Dungeon + +Each time you enter a chamber, roll to determine what you find there. + +Each time your roll comes up 4, 5, 6, or 7, indicated by "QP" below, your quest progresses one step. You might acquire a needed key or face a villain's lieutenant. You decide what type of progress you make. + +On your fourth roll of quest progress, you reach the final challenge of the quest. If you succeed, you have completed the quest and gain a new level. + +1. Trap or hazard +2. Trap or hazard +3. Monster and harmful monument +4. Monster and harmful monument (QP) +5. Monster and neutral monument (QP) +6. Monster and neutral monument (QP) +7. Monster and helpful monument (QP) +8. Monster and helpful monument +9. Healing font (restore 2d6 hit points). +10. Unguarded treasure + +## Traps and Hazards + +Roll for the trap type on the Traps and Hazards table in the "[Core Adventure Generators](coreadventuregenerators.md)" section. Then make a DC 12 Wisdom (Perception) check to locate the trap or hazard. Roll the most applicable ability check or saving throw vs DC 12 to avoid the trap or hazard. Failure on either roll results in 1d6 damage per character level of a type appropriate for the trap. + +## Monster Encounter + +Roll for a random monster on the Monster table in the "[Random Dungeon Monsters](randomdungeonmonsters.md)" section, selecting a dungeon level equal to your character level. + +Assume the monster starts 25 feet away from you. Roll for initiative, with the monster using a static initiative score of 10 + the monster's Dexterity bonus. Adjudicate combat as you desire, assuming the monster acts as they would given their fiction. + +## Monuments + +Each monster encounter includes a helpful, neutral, or harmful monument. Generate monuments using the Locations, Monuments, and Items table, and the Condition, Description, and Origin table in the "[Core Adventure Generators](coreadventuregenerators.md)" section. + +Roll a d6 to determine the effect of the monument. + +1. +1 to AC +2. +1 to attacks and save DCs +3. +1 AC and saving throws +4. +1 temp hit point per character level (minimum 5) +5. +1d6 damage per five character levels +6. Advantage on attack rolls + +Helpful monuments provide this benefit to your character. Harmful monuments provide this benefit to monsters. For neutral monuments, your character can roll a DC 12 Intelligence (Arcana or Religion) check. On a success, your character gains the benefit. On a failure, the monster gains the benefit. + +## Treasure + +When you defeat a monster or enter a chamber with unguarded treasure, roll on the following list: + +## 1d8 Treasures + +1. No treasure +2. No treasure +3. 3d12 gp +4. 3d12 gp +5. *Potion of healing* +6. *Potion of healing* +7. Consumable item +8. Permanent item + +For consumable and permanent items, roll on the tables in the "[Treasure Generator](treasuregenerator.md)" section or a random treasure table of your choice. You can replace any consumable magic item with a *potion of healing*. You can replace any permanent magic item with a *+1 weapon* of your choice. diff --git a/markdown_obsidian/Monster Difficulty Dials.md b/markdown_obsidian/Monster Difficulty Dials.md new file mode 100644 index 0000000..1bfea57 --- /dev/null +++ b/markdown_obsidian/Monster Difficulty Dials.md @@ -0,0 +1,37 @@ +# Monster Difficulty Dials + +Balancing combat encounters is notoriously difficult. Different groups of characters can bring very different capabilities to each battle, even at the same level. However, because monsters as they are typically presented are the average of their type, you can adjust the averages to subtly or dramatically change the difficulty of a given monster or group of monsters. By turning these "difficulty dials" for monsters, you can easily shift the tone of combat even in the middle of a battle. + +## "Hit Point" Dial + +Hit points given for monsters are the average of their Hit Dice. This means you can adjust hit points within the minimum and maximum of a monster's Hit Dice formula based on the individual story for that particular monster, the current pacing of the battle, or both. + +For example, an average ogre has 59 hit points from 7d10 + 21 Hit Dice. This means a weak ogre might have as few as 28 hit points, while a particularly strong ogre might have 91. This lets you easily set up fights in which minion ogres might have fewer hit points while boss ogres have more. (As an even lazier rule of thumb, you can halve or double a monster's average hit points to give you a weaker or stronger version of that monster.) + +You can turn this dial before a battle begins or even during the battle itself. If a battle drags, reduce the hit points of a monster to get it out of the fight earlier. If a battle feels like it will be over too quickly, increase the monster's hit points to make it hold up longer. Start with average hit points, and then turn the hit point dial one way or the other whenever doing so can make the game more fun. + +## "Number of Monsters" Dial + +The "number of monsters in a battle" dial alters combat challenge the most dramatically of all the dials — but because it's so clearly visible to players, this dial is also sometimes difficult to change during a fight. + +If circumstances allow for it, some monsters might flee or automatically fall depending on the events of a fight. Undead might break if their necromancer master is killed, and many intelligent creatures will flee a fight they can't win. Other times, more monsters might enter the fray in a second wave if the first wave isn't standing up to the characters. + +When developing a combat encounter in which you think you might turn this dial, consider beforehand how monsters might leave the battle or how other monsters might join the fight as reinforcements in a realistic way. + +## "Damage" Dial + +Increasing the amount of damage a monster deals on each attack increases the monster's threat and can make a dull fight more fun. In the same way, decreasing monster damage can help prevent a fight from becoming overwhelming if the characters are having trouble. + +The static damage value noted in a monster's stat block represents the average of the damage formula for the monster's attack. If you use average damage, you can adjust the damage based on that formula. For example, an ogre deals 13 (2d8 + 4) bludgeoning damage with their greatclub attack, so you can set this damage at anywhere from 6 to 20 and still be within the range of what you might roll. + +If you're a GM who rolls for damage, you can also turn the damage dial up by adding one or more additional damage dice. If you like, you can have an in-game reason for this increase. Perhaps an ogre sets its club on fire to deal an additional 4 (1d8) or 7 (2d6) fire damage. Or a particularly dangerous vampire with an unholy sword might deal an extra 27 (6d8) necrotic damage if you so choose. Adding these kinds of effects to a monster's attack is an excellent way of increasing a monster's threat in a way the players can clearly understand — and it has no upper limit. + +## "Number of Attacks" Dial + +Increasing or decreasing the number of attacks a monster makes has a larger effect on its threat than increasing its damage. You can increase a monster's number of attacks if it's badly threatened by the characters, just as you can reduce its attacks if the characters are having an easy time. An angry ogre left alone after its friends have fallen to the heroes might start swinging its club twice per Attack action instead of just once. Single creatures facing an entire party of adventurers often benefit from increasing their number of attacks. + +## Mix and Match + +You can turn any or all of these dials to tune a combat encounter and bring the most excitement to your game. Don't turn the dials just to make every battle harder, though. Sometimes cutting through great swaths of easy monsters is exactly the sort of situation players love. + +Turning several dials together can change combat dramatically, helping to keep things feeling fresh. For example, a group of starving ogres might be weakened (lowering the hit point dial) but also frenzied in combat (turning up the attack dial). By adjusting these dials when designing encounters and during your game, you can keep the pacing of combat exciting and fun. diff --git a/markdown_obsidian/Monster Templates.md b/markdown_obsidian/Monster Templates.md new file mode 100644 index 0000000..f97c87b --- /dev/null +++ b/markdown_obsidian/Monster Templates.md @@ -0,0 +1,79 @@ +# Monster Templates + +The following monster templates can help you customize existing monsters into new unique variants that can fit a variety of locations and circumstances. With just a few templates in hand, your core monster books can become much more useful. + +## Challenge Rating Increase? + +The challenge ratings described in these templates are loose guides, so use your best judgment with them. Apply these templates only when you have a good handle on your characters' capabilities, and be prepared to tune your new monsters accordingly. + +## Elemental Monsters + +Apply this template to any monster to make an elemental version of that monster. Choose from or roll on the following table to determine the type of elemental template you want to apply: + +| d8 | Elemental Template | d8 | Elemental Template | +| -- | ------------------ | -- | ------------------ | +| 1 | Fire | 5 | Poison | +| 2 | Cold | 6 | Necrotic | +| 3 | Lighting | 7 | Radiant | +| 4 | Acid | 8 | Thunder | + +Then choose one or more of the following traits to customize your monster, making use of the damage type determined by the elemental template: + +* **Elemental Resistance.** The templated creature has resistance against its damage type. +* **Elemental Damage.** When the templated creature scores a hit using a weapon attack, the attack deals extra damage of its damage type. +* **Elemental Aura.** Any creature that starts their turn within an area surrounding the templated creature, or that enters that area for the first time on a turn, takes damage of the templated creature's type. +* **Elemental Shield.** Any creature that touches the templated creature or hits them with a melee attack while within 5 feet of them takes damage of the templated creature's type. + +The amount of damage and the size of a templated creature's elemental aura is determined by the base creature's challenge rating. The damage noted is the same for both attacks and the creature's aura. + +| CR | Damage | Aura Size | +| ----- | -------- | --------- | +| 0-1 | 3 (1d6) | 5 feet | +| 2-5 | 7 (2d6) | 10 feet | +| 6-10 | 10 (3d6) | 15 feet | +| 11-15 | 14 (4d6) | 20 feet | +| 16+ | 21 (6d6) | 25 feet | + +This elemental template increases a monster's challenge rating by 1 or 2. + +## Dire Monsters + +Dire monsters are particularly large and dangerous versions of typical monsters, and can be created using the following guidelines: + +* The monster's hit points are doubled. +* The monster's size increases one category. +* The monster gains a +2 bonus to attack rolls. +* The monster can use one or more of its standard attacks multiple times on its attack action. Use your best judgment to choose which of the monster's attacks to use for multiple attacks. +* The monster's challenge rating increases by 2 or 3. + +## Fiendish Monsters + +Infernal or abyssal variants of existing monsters are endlessly spawned across the Lower Planes. This template can turn any monster into a fiendish variant: + +* The monster's type becomes fiend. +* The monster has advantage on saving throws against spells and other magical effects. +* The monster has resistance to bludgeoning, piercing, and slashing damage from nonmagical attacks. +* The monster has resistance to cold and fire damage. +* The monster has immunity to poison damage and the poisoned condition. +* The monster's weapon attacks are magical. +* The monster has darkvision out to a range of 120 feet. +* The monster's challenge rating increases by 1. + +## Spell-Infused Monsters + +Some monsters can innately cast magical spells. Spell-infused monsters typically have a spell attack bonus of 3 + one-half the monster's challenge rating, and a spell save DC of 12 + one-half the monster's challenge rating (rounded down in both cases). + +Spell-infused creatures do not require components to cast their spells. They typically use each of their spells once, recovering the ability to do so when they finish a long rest. Roll for or choose from the table to determine which spells a creature can use. Spells that deal high damage can affect a creature's challenge rating. + +| d20 | Spell | d20 | Spell | +| --- | -------------- | --- | ---------------- | +| 1 | Burning hands | 11 | Invisibility | +| 2 | Magic missile | 12 | Misty step | +| 3 | Disguise self | 13 | Scorching ray | +| 4 | Fog cloud | 14 | Shatter | +| 5 | Shield | 15 | Spirit guardians | +| 6 | Inflict wounds | 16 | Dispel magic | +| 7 | Faerie fire | 17 | Fly | +| 8 | Thunderwave | 18 | Gaseous form | +| 9 | Blur | 19 | Lightning bolt | +| 10 | Darkness | 20 | Fireball | diff --git a/markdown_obsidian/NPC Generator.md b/markdown_obsidian/NPC Generator.md new file mode 100644 index 0000000..561cdf7 --- /dev/null +++ b/markdown_obsidian/NPC Generator.md @@ -0,0 +1,107 @@ +# NPC Generator + +NPCs bring our game worlds to life. You can use the generator in this section to quickly build NPCs to drop into your game, rolling on the tables below to generate baseline characteristics. To really bring the NPC to life, you can then model their personality and roleplaying off characters from your favorite books, TV shows, or movies, switching up gender and other traits to make them feel fresh. + +## Names + +Osborne, Halstein, Rycheld, Symond, Sysley, Tansa, Levi, Beneger, Hailey, Jayce, Vesta, Savannah, Avelin, Claudia, Sighard, Timothy, Somerhild, Radolf, Denston, Judithe, Nireus, Sulen, Teukros, Cullive, Arnald, Guinevere, Madison, Stella, Edmund, Goddard, Paul, Gerland, Eupalamos, Sebastian, Anthonette, Lowell, Dauid, Halia, Colton, Bellinda, Roger, Chase, Pulmia, Sadie, Leofwen, Hildegard, Thelexion, Latisha, Raffe, Sydnee, Nicholas, Lausus, Johannes, Derkos, Boyle, Hudson, Meryll, Peter, Godebert, Randwulf, Aegipan, Bryde, Josiah, Sabra, Hilda, Lapithes, Reothine, Jeger, Sybaris, Cared, Clifton, Annabel, Kaylee, Neale, Bayard, Albin, Maronne, Jocelyn, Isemeine, Toril, Aisa, Franny, Turstin, Chulisa, Samantha, Poine, Sanche, Maya, Nicholina, Margry, Drew, Parnell, Taran, Cunovin, Ryan, Caroline, Halisera, Florens, Tantalos, Wynefreede + +Brightwhisper, Redspur, Hollyfang, Goosewalker, Goldbane, Ebondazer, Emeraldstorm, Monsterthumb, Goblinchaser, Thornhelm, Lionfall, Swordbuckle, Earthdancer, Graywillow, Cloudlover, Sharpwhisker, Glasscleaver, Macebound, Icebrood, Fireheart, Angelbright, Anvilcloud, Heromaker, Lightblade, Shieldrazor, Whitetail, Spiderhunter, Shadowblood, Doombrissle, Bronzestone, Moongazer, Catfinger, Lawknocker, Rainsoother, Swiftcaller, Mudteeth, Wyrmriver, Dragonknee, Flamestar, Millhand + +## Ancestry + +Use the following table to choose a random ancestry for your NPC. + +## 1d10 Ancestries + +1. Human +2. Elf +3. Dwarf +4. Halfling +5. Goblin +6. Kobold +7. Gnome +8. Orc +9. Dragonborn +10. Tiefling + +## Worldview + +An NPC's worldview can help determine how they initially react to the characters, adjusted by how the characters approach them. Improvise DCs for social interaction ability checks based on that approach, with checks usually ranging between DC 10 (easy) and DC 20 (very hard). A default of DC 12 is usually a good choice. + +## 1d20 Worldviews + +1. Surly +2. Friendly +3. Brash +4. Elitist +5. Suspicious +6. Carefree +7. Loyal +8. Opportunistic +9. Wide-eyed +10. Humorous +11. Cautious +12. Roisterous +13. Optimistic +14. Ignorant +15. Selfless +16. Brazen +17. Loving +18. Ambitious +19. Greedy +20. Outgoing + +## Appearance and Mannerisms + +NPCs will often be most easily remembered by the players based on some unique aspect of their appearance or manners. + +## 1d20 Appearances and Mannerisms + +1. Wild hair +2. Scarred cheek +3. Body tattoos +4. Smokes a pipe +5. Golden teeth +6. Walks with a limp +7. Dashing clothes +8. Picks teeth +9. Missing eye +10. Multicolored eyes +11. Feathered earring +12. Missing hand +13. Spits a lot +14. Shifty eyes +15. Intense stare +16. Snorts often +17. Facial tattoos +18. Heavy beard +19. Missing fingers +20. Half-shaved head + +## Profession + +Assign a profession to your NPC to add color to their stat block. The commoner is the default stat block for NPCs of this type. + +## 1d20 Professions + +1. Farmer +2. Blacksmith +3. Clerk +4. Merchant +5. Apothecary +6. Bandit +7. Guide +8. Entertainer +9. Guard +10. Soldier +11. Acolyte +12. Sailor +13. Mercenary +14. Sage +15. Noble +16. Artisan +17. Priest +18. Veteran +19. Knight +20. Mage diff --git a/markdown_obsidian/Quest Templates.md b/markdown_obsidian/Quest Templates.md new file mode 100644 index 0000000..35c5ed8 --- /dev/null +++ b/markdown_obsidian/Quest Templates.md @@ -0,0 +1,43 @@ +# Quest Templates + +Quest templates are general-purpose designs around which you can build specific quests for your own game, using adventure archetypes that have been standard for more than forty years in RPGs. This section offers ten quest templates you can customize for your own adventures. If generating a random adventure, just roll a d10 to determine which quest template to use, then fill in the details of the quest with your own ideas or by making use of the adventure generators found later in this document. + +## 1. Kill the Boss + +In this simple quest design, the characters are hired or conscripted to hunt down a particular monster or villain in a location, then permanently end their threat. The boss might be protected by lieutenants or other minions. + +## 2. Find Something + +The characters are charged with finding an item, whether they have to steal it or hunt for it in a dangerous location. The item might be protected by a boss monster and could have many different purposes, such as opening a portal to another location, removing a curse, compelling servants to return it to its rightful owner, and so on. In a variant of this quest, the characters can be charged with returning an object to a location rather than seeking one. + +## 3. Rescue Someone + +In this common quest, the characters are sent to a location in order to rescue someone-a captured spy, a wayward prince, a missing child, and so forth. In a variant of this quest, the characters must escort someone to a location, defending them every step of the way. + +## 4. Kill the Lieutenants + +In this variant of the "Kill the Boss" quest, the characters hunt down multiple sub-bosses or lieutenants, either eliminating, capturing, or converting them as the story demands. Each of these lieutenants might reside in different parts of a single location (a dungeon, a headquarters, and so forth) or at multiple locations across the land. Dealing with an appropriate number of lieutenants might lead to a final "Kill the Boss" quest. + +## 5. Destroy Something + +With this variant of the "Find Something" quest, the characters enter a hostile location to destroy a particular object-an ancient evil obelisk, the catalyst of a dark ritual, a weapon of great power, and so forth. + +## 6. Steal Something + +The characters have to obtain an object from a location where the challenge is more about intrigue than the dangers of a "Find Something" quest. Players must first plan their approach, then engage in the heist. Stealth and subterfuge are often required, and you should be ready to let the characters "fail forward" so that a single bad ability check doesn't ruin the entire plan. Likewise, the location should have multiple entry and exit paths such as sewers and rooftops in addition to a main entrance. + +## 7. Clear the Dangers + +In this simple quest template, the characters enter a hostile location and clear it of any dangers. A dwarf clan might need their ancestral mines emptied of monsters, a local lord might want to take over a haunted keep, and so forth. This quest focuses on the characters exploring an entire location to ensure that the danger has been dealt with, as opposed to taking on just a single known foe. + +## 8. Collect the Keys + +This quest template works for both small adventures and large campaigns, and sees the characters hunting for a number of keys before another group can get them first. This quest works best if it requires a majority of keys instead of all the keys. That way, no one side can thwart the other by possessing only one key. A setup where the characters search for three of five keys, four of seven keys, or five of nine keys works well. These keys might be hidden in a single dungeon for a small adventure, or spread across the entire multiverse for a huge campaign. + +## 9. Defend a Location + +The characters must defend a location from oncoming enemies. As with the "Steal Something" quest, the players will spend time preparing for the quest, shoring up their defenses and perhaps positioning NPC groups to handle parts of the defense under their direction. Though it's tempting to run this sort of scenario as a large-scale mass battle, that kind of combat is best handled "off-screen" while you focus the spotlight on the characters and their individual roles in the defense. + +## 10. End the Ritual + +In this quest template, the characters must end an ongoing ritual. Doing so usually requires the disruption of multiple components, such as destroying glyph-marked pillars or corrupting magic pools. Suitable rituals might include those dedicated to opening or closing a gate, summoning a fiend, resurrecting a dead god, and so forth. In a variant of this quest template, the characters must defend those performing a ritual against other forces that seek to stop it. diff --git a/markdown_obsidian/Quick Tricks for Lazier 5e Games.md b/markdown_obsidian/Quick Tricks for Lazier 5e Games.md new file mode 100644 index 0000000..d40c8f2 --- /dev/null +++ b/markdown_obsidian/Quick Tricks for Lazier 5e Games.md @@ -0,0 +1,49 @@ +# Quick Tricks for Lazier 5e Games + +## Start with Inspiration + +Award inspiration to each character at the beginning of a session. This takes some of the weight off of needing to remember to reward inspiration during the game. You can still award it again during the game if players have used it. + +## Use Index Cards for Initiative + +Index cards can be used to track initiative in two potential ways. First, fold them over into "table tents" and number them from 1 to 9. Then hand them out to the players in the order of their characters' initiative. Alternatively, write the characters' names on one side of the card and put character info useful for you on the other. Fold them over the top of your GM screen, then set them out in initiative order each time combat begins. + +## Average Handfuls of Dice + +You can reduce the size of huge handfuls of dice by removing pairs of dice from the pile and adding their average as a static number. For every two dice you remove, just add the maximum value on a single die plus one to the static bonus. So 2d4 becomes 5, 2d6 becomes 7, 2d8 becomes 9, 2d10 becomes 11, and 2d12 becomes 13. This way, rolling 8d6 can instead become 2d6 + 21 or 8d8 can become 2d8 + 27. + +## Use Passive Scores + +Continually calling for checks in the middle of the narrative can disrupt the flow of the story. Instead, keep the characters' passive Perception, passive Insight, and passive Investigation scores in front of you on a cheat sheet or on index cards. Then use those passive scores to describe what the characters see or experience while exploring the scene. + +## Campsite Stories + +During rests, ask the players to tell a story of their character or describe how their character feels about what's been going on in the campaign. This can help players dig into their characters' thoughts and expose those thoughts to you and the other players. Players might want to describe their characters' conversations while on watch in the same manner. + +## Passive Monster Initiative + +For simple battles, use a passive initiative score for monsters, equal to 10 plus the monster's Dexterity bonus. This typically puts monsters in the middle of the initiative order, rather than risking them being too high or too low. + +## Stars and Wishes + +Every few games, take time to ask each player for their "stars and wishes" — a concept described on the Gauntlet RPG blog. Ask each player two questions: + +* What have they enjoyed about the game so far? +* What do they want to see more of in future games? + +The answers to these questions can help you understand exactly what your players are getting from the game, and can give you ideas for how the game might unfold in the future. + +## Offer Cinematic Advantage + +Throughout the game, offer players advantage on checks or attacks if they're willing to undertake high-action moves. For example, a character might leap up and swing from a chandelier to stab at a foe down below. Call for an ability check, granting advantage on the character's next attack with a successful check. But on a failed check, the character's move goes awry and they fall. Most characters will focus on moves that use ability checks they're good at, making success more likely than failure. A slight chance of failure can make winning advantage feel that much sweeter, but keep failure conditions fairly minor so that going for cinematic advantage doesn't seem too risky to the players. + +## Other Quick Tricks + +The following tricks make excellent additions to every GM's toolbox: + +* Keep a list of random names on hand to use for NPCs, villains, and monsters. +* Describe the world through the eyes of the characters, actively narrating what they see and know about the world around them. +* Don't ask for a d20 roll if there isn't a chance for failure, or if failure wouldn't be interesting. This can help you remember to never bury useful or vital information behind an ability check. +* Reskin bandit, thug, ogre, and giant stat blocks to make new hard-hitting monsters of all different sizes. +* Reveal monster ACs and the DCs for ability checks to the players, and help them calculate ahead of time what they'll need on their d20 roll to succeed. This lets the players focus on the excitement of the die roll rather than the math. +* When appropriate, roll on a character's behalf so the player doesn't know the result for something their character wouldn't know. diff --git a/markdown_obsidian/Random Dungeon Monsters.md b/markdown_obsidian/Random Dungeon Monsters.md new file mode 100644 index 0000000..06fc703 --- /dev/null +++ b/markdown_obsidian/Random Dungeon Monsters.md @@ -0,0 +1,240 @@ +# Random Dungeon Monsters + +The following tables let you randomly select monsters based on "dungeon level." Although these charts are built for old-school dungeon delving, you can use them to generate randomly encountered monsters in just about any setting - a ruin, an old church, caves, catacombs, an old wizard's tower, or some other forgotten lair. + +To use these tables, first decide what dungeon level the characters are on. This might correspond to the level of the characters but it doesn't have to. If 2nd-level characters decide to descend to dungeon level 5, so be it. + +Once you have a dungeon level selected, roll a d20 and look across to see which monster table you should use. For example, if the characters are on dungeon level 4 and you roll a 12, you'll use monster table 3. Then go to the indicated monster table and roll a d20 again, to determine which monster might show up. Using the above example, consulting monster table 3 and rolling a 3 gives a result of 'Ghoul.' Instead of using dungeon levels, you can just jump to whichever monster table feels right for the circumstances. If you know you're looking for a monster with a challenge rating of 4 or 5, just roll on Monster Table 6. You can also use these tables to quickly look up monsters at particular challenge ratings. Even if you absolutely hate random encounters, you can use the tables to generate encounter ideas you might never think of otherwise. + +There are a few ways to choose the number of monsters in an encounter. First, think about what makes sense. Ghouls travel in packs, but a rug of smothering is probably found alone. You might roll dice to determine the number of monsters-for example, 3d6 ghouls. You might also choose to have one monster leading others-a pack of ghouls led by a ghast, for example. + +Before the number of monsters is set, you can gauge whether your intended encounter is deadly or not by using the "[5e Quick Encounter Building](quickencounterbuilding.md)" section of this document. + +| | Monster List | | | | | | | | | | +| ------------- | ------------ | ----- | ----- | ----- | ----- | ----- | ----- | ----- | ----- | ----- | +| Dungeon Level | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | +| 1 | 1—16 | 17—19 | 20 | — | — | — | — | — | — | | +| 2 | 1—12 | 13—16 | 17—18 | 19 | 20 | — | — | — | — | | +| 3 | 1—12 | 13—16 | 17—18 | 19 | 20 | — | — | — | — | | +| 4 | 1—5 | 6—10 | 11—16 | 17—18 | 19 | 20 | — | — | — | | +| 5 | 1—3 | 4—6 | 7—12 | 13—16 | 17—18 | 19 | 20 | — | — | | +| 6 | 1—2 | 3—4 | 5—6 | 7—12 | 13—16 | 17—18 | 19 | 20 | — | | +| 7 | 1 | 2—3 | 4—5 | 6—10 | 11—14 | 15—16 | 17—18 | 19 | 20 | — | +| 8 | 1 | 2 | 3—4 | 5—7 | 8—10 | 11—14 | 15—16 | 17—18 | 19 | 20 | +| 9 | 1 | 2 | 3 | 4—5 | 6—8 | 9—12 | 13—15 | 16—17 | 18—19 | 20 | +| 10—11 | 1 | 2 | 3 | 4 | 5—6 | 7—9 | 10—12 | 13—16 | 17—19 | 20 | +| 12—13 | 1 | 2 | 3 | 4 | 5 | 6—7 | 8—9 | 10—12 | 13—18 | 19—20 | +| 14—15 | 1 | 2 | 3 | 4 | 5 | 6 | 7—8 | 9—11 | 12—17 | 18—20 | +| 16+ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8—10 | 11—16 | 17—20 | + +## Monster List 1 (CR 1/8—1/4) + +1. Bandit +2. Cultist +3. Flying snake +4. Giant crab +5. Giant rat +6. Kobold +7. Poisonous snake +8. Stirge +9. Tribal warrior +10. Axe beak +11. Blink dog +12. Dretch +13. Drow +14. Giant bat +15. Giant frog +16. Giant wolf spider +17. Goblin +18. Skeleton +19. Swarm of bats +20. Swarm of rats + +## Monster List 2 (CR 1/4—1) + +1. Wolf +2. Zombie +3. Cockatrice +4. Darkmantle +5. Gnoll +6. Gray ooze +7. Hobgoblin +8. Lizardfolk +9. Magmin +10. Orc +11. Rust monster +12. Sahuagin +13. Scout +14. Shadow +15. Swarm of insects +16. Thug +17. Worg +18. Animated armor +19. Bugbear +20. Death dog + +## Monster List 3 (CR 1—2) + +1. Dire wolf +2. Duergar +3. Ghoul +4. Giant spider +5. Giant toad +6. Harpy +7. Imp +8. Specter +9. Spy +10. Ankheg +11. Bandit captain +12. Berserker +13. Black dragon wyrmling +14. Cult fanatic +15. Ettercap +16. Gargoyle +17. Gelatinous cube +18. Ghast +19. Giant constrictor snake +20. Gibbering mouther + +## Monster List 4 (CR 2—3) + +1. Azer +2. Green dragon wyrmling +3. Grick +4. Griffon +5. Merrow +6. Mimic +7. Minotaur skeleton +8. Ochre jelly +9. Ogre +10. Ogre zombie +11. Priest +12. Rug of smothering +13. Sea hag +14. Swarm of poisonous snakes +15. Wererat +16. White dragon wyrmling +17. Will-o'-wisp +18. Basilisk +19. Bearded devil +20. Blue dragon wyrmling + +## Monster List 5 (CR 3—4) + +1. Doppelganger +2. Giant scorpion +3. Green hag +4. Hell hound +5. Knight +6. Manticore +7. Minotaur +8. Mummy +9. Nightmare +10. Owlbear +11. Phase spider +12. Veteran +13. Werewolf +14. Wight +15. Winter wolf +16. Black pudding +17. Chuul +18. Couatl +19. Ettin +20. Ghost + +## Monster List 6 (CR 4—5) + +1. Lamia +2. Red dragon wyrmling +3. Succubus/incubus +4. Wereboar +5. Air elemental +6. Barbed devil +7. Bulette +8. Earth elemental +9. Fire elemental +10. Flesh golem +11. Giant crocodile +12. Gladiator +13. Gorgon +14. Half-red dragon veteran +15. Hill giant +16. Night hag +17. Otyugh +18. Roper +19. Shambling mound +20. Troll + +## Monster List 7 (CR 5—8) + +1. Salamander +2. Vampire spawn +3. Water elemental +4. Wraith +5. Xorn +6. Chimera +7. Drider +8. Invisible stalker +9. Mage +10. Medusa +11. Vrock +12. Wyvern +13. Young white dragon +14. Oni +15. Shield guardian +16. Stone giant +17. Young black dragon +18. Assassin +19. Chain devil +20. Cloaker + +## Monster List 8 (CR 8—12) + +1. Frost giant +2. Hezrou +3. Hydra +4. Spirit naga +5. Young green dragon +6. Bone devil +7. Clay golem +8. Cloud giant +9. Fire giant +10. Glabrezu +11. Young blue dragon +12. Aboleth +13. Guardian naga +14. Stone golem +15. Young red dragon +16. Behir +17. Ereeti +18. Horned devil +19. Remorhaz +20. Archmage + +## Monster List 9 (CR 12—16) + +1. Erinyes +2. Adult white dragon +3. Nalfeshnee +4. Rakshasa +5. Storm giant +6. Vampire +7. Adult black dragon +8. Ice devil +9. Adult green dragon +10. Mummy lord +11. Purple worm +12. Adult blue dragon + +## Monster List 10 (CR 16—24) + +1. Iron golem +2. Marilith +3. Adult red dragon +4. Balor +5. Ancient white dragon +6. Pit fiend +7. Anclent black dragon +8. Lich +9. Ancient blue dragon +10. Ancient red dragon diff --git a/markdown_obsidian/Random Items.md b/markdown_obsidian/Random Items.md new file mode 100644 index 0000000..8da9b51 --- /dev/null +++ b/markdown_obsidian/Random Items.md @@ -0,0 +1,206 @@ +# Random Items + +The following lists allow you to generate useful relics and objects, from mundane discoveries to powerful magical artifacts. If you want to come up with an interesting magic weapon, for example, you might roll on the Item Condition, Item Origin, Weapon, and Spell Effect tables. If you just want a weird mundane item, roll on the Item Condition, Item Origin, and Mundane Item tables without adding any effect. + +Some strange relics might allow a single use of a powerful magical spell. Roll on the Item Condition, Item Origin, Mundane Item, and Spell Effect table to generate a unique single-use magical relic. + +Also included is a table noting the four types of *healing potions* and how many hit points each potion restores. + +## 1d20 Weapon Types + +1. Dagger +2. Mace +3. Quarterstaff +4. Spear +5. Light crossbow +6. Shortbow +7. Battleaxe +8. Flail +9. Glaive +10. Greataxe +11. Greatsword +12. Longsword +13. Maul +14. Morningstar +15. Rapier +16. Scimitar +17. Shortsword +18. Warhammer +19. Heavy crossbow +20. Longbow + +## 1d20 Item Origins + +1. Draconic +2. Dwarven +3. Elven +4. Primeval +5. Divine +6. Unholy +7. Abyssal +8. Otherworldly +9. Orcish +10. Undead +11. Goblinoid +12. Ghoulish +13. Vampiric +14. Dark elven +15. Astral +16. Ethereal +17. Hellish +18. Demonic +19. Elemental +20. Gnomish + +## 1d20 Item Conditions + +1. Grimy +2. Chipped +3. Rough +4. Smooth +5. Ancient +6. Crumbling +7. Pristine +8. Cool +9. Ornate +10. Plain +11. Rune-scribed +12. Carved +13. Decorated +14. Delicate +15. Burned +16. Oily +17. Pulsing +18. Glowing +19. Shining +20. Smoldering + +## 1d12 Armor Types + +1. Leather +2. Studded leather +3. Hide +4. Chain shirt +5. Scale mail +6. Breastplate +7. Half plate +8. Ring mail +9. Chain mail +10. Splint +11. Plate +12. Shield + +## 50 Mundane Items + +1. Amulet +2. Arrowhead +3. Bell +4. Bird skull +5. Bone +6. Bowl +7. Box +8. Bracelet +9. Brooch +10. Buckle +11. Candle +12. Coin +13. Crown +14. Cup +15. Dagger +16. Disc +17. Earring +18. Figurine +19. Finger bone +20. Flute +21. Forked rod +22. Gemstone +23. Glove +24. Goblet +25. Hammer +26. Idol +27. Jewelry box +28. Key +29. Lamp +30. Mask +31. Medallion +32. Mirror +33. Necklace +34. Opal +35. Orb +36. Pipe +37. Quill +38. Ring +39. Rod +40. Skull +41. Sphere +42. Spike +43. Statue +44. Stone +45. String of beads +46. Symbol +47. Tiara +48. Tooth +49. Vial +50. Wand + +## 50 Spell Effect + +1. *Acid arrow* +2. *Acid splash* +3. *Bane* +4. *Banishment* +5. *Bestow curse* +6. *Black tentacles* +7. *Bless* +8. *Blight* +9. *Blindness/ deafness* +10. *Burning hands* +11. *Charm person* +12. *Cloudkill* +13. *Color spray* +14. *Comprehend languages* +15. *Cone of cold* +16. *Cure wounds* +17. *Detect evil and good* +18. *Detect magic* +19. *Disintegrate* +20. *Dispel magic* +21. *Fear* +22. *Fire shield* +23. *Firebolt* +24. *Flame strike* +25. *Fly* +26. *Fog cloud* +27. *Gaseous form* +28. *Guiding bolt* +29. *Haste* +30. *Ice storm* +31. *Inflict wounds* +32. *Insect plague* +33. *Invisibility* +34. *Jump* +35. *Light* +36. *Lightning bolt* +37. *Misty step* +38. *Ray of enfeeblement* +39. *Scorching ray* +40. *Shatter* +41. *Shield of faith* +42. *Shocking grasp* +43. *Silence* +44. *Sleep* +45. *Slow* +46. *Stinking cloud* +47. *Stoneskin* +48. *Thunderwave* +49. *True strike* +50. *Web* + +## Potions of Healing + +| d20 | Potion of | Rarity | HP Regained | +| ------- | ---------------- | --------- | ----------- | +| 1 - 12 | Healing | Common | 2d4 + 2 | +| 13 - 16 | Greater healing | Uncommon | 4d4 + 4 | +| 17 - 19 | Superior healing | Rare | 8d4 + 8 | +| 20 | Supreme healing | Very rare | 10d4 + 20 | diff --git a/markdown_obsidian/Random Monuments.md b/markdown_obsidian/Random Monuments.md new file mode 100644 index 0000000..ad41a62 --- /dev/null +++ b/markdown_obsidian/Random Monuments.md @@ -0,0 +1,175 @@ +# Random Monuments + +Filling the various chambers and locations in your game with interesting features is always a challenge — and can be even more difficult to improvise. The following four "Monuments" lists can help you generate fantastic features with a number of potential effects. You don't need to roll on every table each time you want to generate a feature. Sometimes, just establishing the condition and the type of a feature is enough to give you a starting point. Then you can let the story or even the background of one of the characters guide the feature's additional elements. + +## 1d20 Origins + +1. Draconic +2. Dwarven +3. Elven +4. Primeval +5. Divine +6. Unholy +7. Abyssal +8. Otherworldly +9. Orcish +10. Undead +11. Goblinoid +12. Ghoulish +13. Vampiric +14. Dark elven +15. Astral +16. Ethereal +17. Hellish +18. Demonic +19. Elemental +20. Gnomish + +## 1d20 Conditions + +1. Crumbling +2. Sunken +3. Pristine +4. Excavated +5. Vine-covered +6. Ruined +7. Cracked +8. Shattered +9. Buried +10. Gore-covered +11. Bloody +12. Glyph-marked +13. Rune-scribed +14. Obsidian +15. Metallic +16. Ornate +17. Desecrated +18. Ancient +19. Decorated +20. Floating + +## 1d20 Unusual Effects + +1. Undeath +2. Fire +3. Madness +4. Water +5. Radiance +6. Arcane +7. Poison +8. Acid +9. Disease +10. Psionics +11. Frost +12. Lightning +13. Antimagic +14. Ooze +15. Charming +16. Fear +17. Domination +18. Sleep +19. Thunder +20. Tentacles + +## 100 Monument Structures + +1. Aerie +2. Altar +3. Aqueduct +4. Arcane circle +5. Archway +6. Aviary +7. Barrow +8. Battlefield +9. Bell +10. Bone pile +11. Boneyard +12. Bonfire +13. Brazier +14. Bridge +15. Cage +16. Cairn +17. Campsite +18. Canal +19. Carcass +20. Carriage +21. Cauldron +22. Cave +23. Cenotaph +24. Cesspit +25. Charnel pit +26. Columns +27. Crater +28. Crossroads +29. Crystal +30. Dome +31. Doorway +32. Earthmote +33. Effigy +34. Fighting pit +35. Firepit +36. Fossil +37. Fountain +38. Gallows +39. Gateway +40. Geode +41. Geyser +42. Graveyard +43. Gravestone +44. Grotto +45. Grove +46. Hollow +47. Huge skull +48. Idol +49. Illusion +50. Keep +51. Lantern +52. Machine +53. Mausoleum +54. Megalith +55. Meteorite +56. Midden +57. Mill +58. Mine +59. Mirror +60. Monolith +61. Monument +62. Mosaic +63. Nest +64. Obelisk +65. Orb +66. Orrery +67. Oubliette +68. Petrified creature +69. Pillar +70. Pit +71. Planar rift +72. Platform +73. Podium +74. Pool +75. Rock +76. Ruin +77. Sacred circle +78. Sarcophagus +79. Shipwreck +80. Shrine +81. Sigil +82. Sinkhole +83. Slab +84. Spell effect +85. Sphere +86. Spire +87. Statue +88. Stone circle +89. Stone tablets +90. Sundial +91. Throne +92. Tomb +93. Totem +94. Tower +95. Trash heap +96. Tree +97. Wall +98. Waymarker +99. Well +100. Windmill diff --git a/markdown_obsidian/Random Town Events.md b/markdown_obsidian/Random Town Events.md new file mode 100644 index 0000000..fd1ba68 --- /dev/null +++ b/markdown_obsidian/Random Town Events.md @@ -0,0 +1,95 @@ +# Random Town Events + +Whenever the characters enter a new town or start a new session there, adding some detail and context to the setting can help bring things to life. These "Town Events" lists help determine what might be going on in a town, how the townsfolk are currently feeling, what the weather is, and what mundane or fantastic event might be taking place. + +## 1d20 Town Sentiments + +1. Happy +2. Elated +3. Uncaring +4. Joyful +5. Optimistic +6. Pessimistic +7. Downtrodden +8. Frightened +9. Horrified +10. Concerned +11. Unconcerned +12. Harried +13. Sleep-deprived +14. Dazed +15. Hyperactive +16. Purposeful +17. Lazy +18. Melancholy +19. Busy +20. Suspicious + +## 1d20 Mundane Events + +1. Wedding +2. Funeral +3. Preparing for war +4. Seasonal celebration +5. Burning of an effigy +6. Death of a noble lord +7. Day of drunkenness +8. Celebration of lovers +9. Great feast +10. Execution +11. Market day +12. Parade of vanquished foes +13. Celebration of the dead +14. Religious holiday +15. Wild boar hat festival +16. Robbery +17. Brawl +18. Visit by the circus +19. Wrangling of rampaging beasts +20. Festival of kites + +## 1d20 Notable Weather Condtions + +1. Fog +2. Heavy mist +3. New moon +4. Full moon +5. Hot day +6. Chilly day +7. Light rain +8. Moderate rain +9. Heavy rain +10. Windstorm +11. Hailstorm +12. Ice storm +13. Cloudy day +14. Sunny day +15. Humid day +16. Dry day +17. Windy day +18. Light snowfall +19. Moderate snowfall +20. Snowstorm + +## 1d20 Fantastic Events + +1. The stars have disappeared from the sky +2. An unexpected solar eclipse +3. The blood moon rises +4. Swarms of stinging insects descend +5. Acidic fog rolls in +6. A second sun appears in the sky +7. A storm of arcane energy +8. The arrival of a servant of a god +9. Meteor shower +10. A cyclopean behemoth rises +11. Swarms of mischievous devils +12. Tentacles appear in the sky +13. The dancing dead come to life +14. Volcanic eruption +15. Collapsing sinkhole reveals ancient ruins below +16. The sun does not rise +17. A great floating tower appears +18. The lord's castle disappears +19. The border to the fey realm grows thin +20. The world of shadow bleeds over into the material realm diff --git a/markdown_obsidian/Random Traps.md b/markdown_obsidian/Random Traps.md new file mode 100644 index 0000000..de8d5bf --- /dev/null +++ b/markdown_obsidian/Random Traps.md @@ -0,0 +1,91 @@ +# Random Traps + +Use these lists to generate simple or complex traps, incorporating multiple features, plus energy damage or conditions. + +To generate a simple trap, just roll on the Type list and the Trigger table. For a more dangerous trap, add an effect from the Flavor table to put a unique twist on the damage or impose a debilitating condition. For a really devious trap, you can roll on the Flavor table and Type table twice, combining features into deadly combinations such as 'sleep-inducing bolos and thunderous crushing pillars, triggered by an onyx demon's skull.' + +## 1d20 Flavors + +1. Fiery +2. Freezing +3. Necrotic +4. Poisonous +5. Acidic +6. Thunderous +7. Lightning +8. Forceful +9. Diseased +10. Stunning +11. Blinding +12. Deafening +13. Weakening +14. Draining +15. Sleep-inducing +16. Binding +17. Dominating +18. Psychic +19. Maddening +20. Confusing + +## 1d20 Types + +1. Bolts +2. Spears +3. Scythes +4. Bolos +5. Spiked chains +6. Pit +7. Rolling ball +8. Crushing pillars +9. Darts +10. Glyphs +11. Swords +12. Axes +13. Tendrils +14. Whips +15. Nets +16. Bear traps +17. Cages +18. Beams +19. Hammers +20. Shurikens + +## 1d20 Triggers + +1. Door +2. Floor plate +3. Tripwire +4. Throne +5. Corpse +6. Chest +7. Old book +8. Child's toy +9. Jeweled skull +10. Beams of light +11. Golden angelic statue +12. Crystal goblet on pedestal +13. Onyx demonic skull +14. Jeweled pillar +15. Steep stair +16. Jeweled crown +17. Gilded sarcophagus +18. Bound prisoner +19. Weapon on an altar +20. Idol on pedestal + +## Damage Severity by Level + +| Character Level | Setback | Dangerous | Deadly | +| --------------- | ---------- | ---------- | ----------- | +| 1st - 4th | 5 (1d10) | 11 (2d10) | 22 (4d10) | +| 5th - 10th | 11 (2d10) | 22 (4d10) | 55 (10d10) | +| 11-16th | 22 (4d10) | 55 (10d10) | 99 (18d10) | +| 17th - 20th | 55 (10d10) | 99 (18d10) | 132 (24d10) | + +## Trap Save DCs and Attack Bonuses + +| Trap Danger | Save DC | Attack Bonus | +| ----------- | ------- | ------------ | +| Setback | 10 - 11 | +3 to +5 | +| Dangerous | 12 - 15 | +6 to +8 | +| Deadly | 16 - 20 | +9 to +12 | diff --git a/markdown_obsidian/Running Hordes.md b/markdown_obsidian/Running Hordes.md new file mode 100644 index 0000000..21632ac --- /dev/null +++ b/markdown_obsidian/Running Hordes.md @@ -0,0 +1,50 @@ +# Running Hordes + +This section helps you more easily run battles in which the characters face large numbers of monsters. + +To accommodate running horde combat, we change the rules for running monsters in two ways: adjusting how we track damage done to monsters in a horde, and how we adjudicate attack rolls and saving throws for the horde. You can use these approaches individually or together when running large numbers of monsters. + +## Pooling Damage + +Pooling damage means that instead of tracking the damage dealt to individual monsters, you track damage dealt to the horde as a whole. Add up the damage of each attack, regardless of which monster in the horde is hit. Then every time the total of damage taken is higher than the hit points of a single monster in the horde, remove the last monster hit and reset the damage dealt to zero. + +If enough damage is dealt with a single attack to kill multiple monsters, remove that number of monsters, subtracting their hit points from the damage dealt until there isn't enough damage remaining to kill another monster. + +To make this math even easier, you can round each monster's hit points to the nearest 5 or 10. + +If the horde is hit by a damage-dealing area effect (including spells), remove any creatures that took damage equal to or greater than their hit points after determining their saving throw results. If the damage isn't enough to kill a single monster, tally up the total damage done and remove monsters one at a time, subtracting their hit points from the damage until all damage is accounted for. + +For even easier adjudication, you can simply remove any monsters that fail their saving throws, without worrying about their hit points. + +## Determine Targets + +The circumstances of the encounter dictate how many members of the horde can attack the characters. Unless the circumstances dictate otherwise, assume the horde evenly spreads its attacks across all characters. If certain characters step ahead of the rest of the party or block choke points that prevent the horde from reaching other characters, you can redirect the horde's attacks to the characters stepping forward. + +## Adjudicating Attacks and Saving Throws + +Whenever rolling individual attacks or saving throws would be a burden, assume that one quarter of attacks or saving throws rolled by the horde succeed. Round up or down depending on the circumstances, such as when determining how many attacks succeed against characters with wildly different ACs. + +If all the creatures in a horde have advantage on an attack or saving throw, increase the number of successful attacks or saving throws to one half. If the horde has disadvantage, reduce the number to one in ten. + +If any member of the horde is affected by an effect that leaves them incapacitated, remove them from play. + +If you prefer to roll dice, roll twice when a group of monsters all make attacks or saving throws. On each success, one quarter of the monster attacks or saving throws succeed. If both rolls fail, no attacks or saving throws succeed. + +## Adjudicating Areas of Effect + +Adjudicate the number of creatures caught up in an area of effect based on the circumstances, but leaning toward more creatures rather than fewer. You can use the following as a baseline for the number of tightly packed creatures in a horde that are affected in a given area: + +* **Tiny Area (5-foot radius):** Two creatures +* **Small Area (10- to 15-foot radius):** Four creatures +* **Large Area (20-foot radius):** Sixteen creatures +* **Huge Area (30-foot radius or more):** Thirty-two or more creatures +* **Short Line (60 feet):** Six creatures +* **Long Line (120 feet):** Eight creatures + +## Tips and Tricks + +* Describe these horde combat rules to the players so everyone understands how they work. Always adjudicate combat to the characters' benefit, and help the players achieve their goals. +* Use evocative descriptions to flavor a horde. Worry less about the mechanics and more about the feeling involved in fighting a huge horde of monsters. +* Avoid using hordes with monsters of different types in a single battle. Instead, use a single stat block and describe any physical differences between monsters narratively. +* Augment a horde with a handful of more powerful monsters when desired. Track the hit points and attacks of these powerful monsters normally. +* As hordes diminish to a manageable level, return to tracking individual hit points, attacks, and saving throws normally. diff --git a/markdown_obsidian/Safety Tools.md b/markdown_obsidian/Safety Tools.md new file mode 100644 index 0000000..9773ae8 --- /dev/null +++ b/markdown_obsidian/Safety Tools.md @@ -0,0 +1,76 @@ +# Safety Tools + +Safety tools help ensure that you and your players are always comfortable with the subject matter of the games you run — especially when that subject matter involves potentially troubling tropes or themes. The safety tools presented in this section can be used individually or together to make sure that everyone is comfortable with the material in the game, even as that material evolves during play. You can choose which safety tools work well for you and your group, and discuss their use early in your game. Usually this means discussing safety tools during your campaign's session zero, or at the beginning of a single-session game. + +## Potentially Sensitive Topics + +When you discuss safety tools, describe potentially sensitive topics that might come up in an adventure or campaign. The following list presents a number of topics that are good to talk about, but this is not an exhaustive list. + +* Blood +* Body horror +* Burning +* Cancer +* Cannibalism +* Claustrophobia +* Death by exposure +* Freezing +* Gaslighting +* Genocide +* Gore +* Harm to animals +* Harm to children +* Homophobia +* Incest +* Insects +* Kidnapping +* Mental domination +* Murder +* Paralysis +* Physical restraint +* Racism +* Rats +* Real-world religion +* Ritual sacrifice +* Self-harm +* Sexism +* Sexual assault +* Sexual contact +* Slavery +* Spiders +* Starvation +* Terrorism +* Thirst +* Torture +* Transphobia + +Decide first what you are comfortable with as a GM before bringing a list of topics to your players. Add any topics you're not comfortable with to your own hard lines and off-screen content (see below). + +When describing these topics, ensure that the players are comfortable with them. But also ensure that you identify which topics they are not comfortable with, so you can omit that material from your game. + +## Hard Lines and Off-Screen Content + +The concept of hard lines and off-screen content allows you to set parameters for handling sensitive topics in your game. Once you've had a discussion with your players on those topics, talk about whether individual topics should be a hard line (material that should never come up) and which can be described vaguely and handled off-screen. For example, after discussion, you and your players might come up with something like the following: + +**Hard Lines:** Sexual assault, non-consensual sexual contact or behavior, violence toward children, abuse toward children or animals, inter-character betrayal, character-driven torture, non-consensual violence or betrayal between characters + +**Off-screen Content:** Consensual sex and sexual contact, torture, racism, slavery + +Discuss hard lines and off-screen content in an open, nonjudgmental conversation with your players, and capture each player's individual hard lines and off-screen content along with your own. + +## Pause for a Second + +"Pause for a second" is a verbal cue that players and GMs can use to interrupt the current in-world scene, have everyone break character, and discuss the current situation as players. It's specifically designed to work well with both online and in-person games. + +This safety tool can "pause" the game to discuss any issues out of character and ensures all the players are comfortable with shifts in the game's story. To use it, you or any other player can say, "Pause for a second" to interrupt the current state of play and break character. + +It can be used to edit content ("Pause for a second. I'm not comfortable beating a helpless character for information.") or to check in with the group ("Pause for a second. Are we okay making a deal with a vampire?"). + +As the GM, think about using "pause for a second" regularly, so as to break the stigma of using it only for the most extreme circumstances — which might cause players to avoid using it at all. + +## Other Resources + +The following resources offer further options for RPG safety tools, and influenced the tools described above. + +* [The X-Card](http://tinyurl.com/x-card-rpg) by John Stavropoulos +* [Script Change](https://briebeau.com/scriptchange) by Beau Jágr Sheldon +* [The TTRPG Safety Toolkit](https://drive.google.com/drive/folders/114jRmhzBpdqkAlhmveis0nmW73qkAZCj) by Kienna Shaw and Lauren Bryant-Monk diff --git a/markdown_obsidian/Session Zero Checklist.md b/markdown_obsidian/Session Zero Checklist.md new file mode 100644 index 0000000..1e39655 --- /dev/null +++ b/markdown_obsidian/Session Zero Checklist.md @@ -0,0 +1,62 @@ +# Session Zero Checklist + +Session zero is a vital tool for getting players and GMs on the same page about a new campaign. A session zero takes place before the first session of a campaign. This special session gives you time to ensure that the players are on board with the themes of the campaign, and that their characters will integrate well together and with the adventures to come. + +The following guidelines take you step-by-step through a session zero. + +## Write a One-Page Guide + +Before your session zero, write out and deliver a one-page campaign guide to your players. Include the following information: + +* The campaign's theme and flavor. Sell the campaign's story to your players so they're excited for the campaign. +* What separates this campaign from others? What are the main things about this campaign that the characters would know going in? This might be the "six truths" that separate your campaign from all others. +* What characters work best in the campaign? Talk about specific character options that are a good fit for the campaign, including classes, backgrounds, heritage, skills, and so forth. Then discuss what kinds of motivations will help the characters best enjoy the campaign? +* What potentially troubling themes might this campaign include? Write out a list so the players know what they might be getting into and can talk to you about it as you discuss your game's safety tools. +* What group patrons might the players select as a group? Who might serve as their primary quest giver? + +Keep your campaign guide down to a single page so that the players can easily read and absorb it. + +## Describe the Theme + +Once you and your players are sitting around the table or gathered online for session zero, start by describing the theme of the campaign and going over the details of the one-page campaign guide. Use this time to get the players excited for the campaign. + +## Discuss Safety Tools + +Discuss any potentially troubling themes of the campaign and its adventures, establishing hard lines and off-screen content you and your players have for the campaign. Write these things down. Discuss what tools you and your players can use to pause the game and break character whenever it becomes necessary to talk about the campaign's themes and content. + +## Decide on a Group Patron + +A group patron is any NPC tied to all of the characters, and who can help propel the characters forward in an adventure or campaign. Describe potential group patrons that the players can choose from in your campaign, and let them discuss which ones they like. Work toward a consensus where all players are happy with the chosen patron. Don't let this choice alienate any players. + +## Build Characters Together + +Work with the players to develop their characters, reinforcing the themes of the campaign and establishing the character motivations that will work best to fit the characters into the campaign. Mention if any skills or backgrounds are an especially good fit for the campaign. All this work is to ensure that the characters are motivated to adventure together to solve the campaign's goal. + +If desired, you can connect the characters together with individual relationships. Allow the players to roll on the following list, or to use it as inspiration for a unique relationship of their own devising. + +## Relationships + +1. Adopted siblings +2. Mentor and student +3. Friendly rivals +4. Sage and scribe +5. Priest and acolyte +6. Fellow veterans +7. Ward and guardian +8. Spouses +9. Buddy cops +10. Childhood friends +11. Noble and bodyguard +12. Soul bound +13. Former prisoners +14. Former criminals +15. Hunted quarry +16. Pact bound +17. Apocalypse survivors +18. Savior and saved +19. Business partners +20. Master and servant + +## Run a Short Adventure + +Once the characters are built and your players are ready, you can run a short adventure at the end of session zero to introduce the characters to the campaign in a fast and exciting way. You might choose to run a single combat encounter with some added negotiation and exploration, after which the characters advance to 2nd level and are ready to fully engage with the story of the campaign. diff --git a/markdown_obsidian/Spiral Campaign Development.md b/markdown_obsidian/Spiral Campaign Development.md new file mode 100644 index 0000000..71883bb --- /dev/null +++ b/markdown_obsidian/Spiral Campaign Development.md @@ -0,0 +1,110 @@ +# Spiral Campaign Development + +Spiral campaign development builds campaign worlds starting in the area immediately surrounding the characters, then spirals out, expanding the world as the characters experience it. This section offers suggestions and inspiration for building a spiral campaign. + +## Campaign Pitch + +Start off by describing the central theme of your campaign in a single sentence. This campaign pitch becomes the main focus of the campaign, and might be given to the players during your session zero so they can build their characters around it. Use the following campaign pitches as a starting point for a campaign, or as inspiration for pitches of your own. + +## Campaign Pitches + +1. Prevent the summoning of the Dragon Queen +2. Prevent the coming of the Black Moon +3. End the dark reign of Elenda the lich queen +4. Break the political power of Vroth the death knight +5. Kill Veresyn the vampire lord and his horde +6. Restore light to the Vale of Nightmares +7. Restore the prison of Orlon the demon prince +8. Shatter the draconic Alliance of Five Claws +9. Save people from the blood feast of a gnoll war band +10. Restore light to the fallen celestial Ixyan +11. Dismantle the Empire of the White Blade +12. Find the seven keys to the gates of Ilumenia +13. Prevent the resurrection of the sorcerer king +14. Stop the cult of the Red Ocean +15. Save the heir of the sapphire throne +16. Find and seal the vault of the world serpent +17. Close the gateway to the Outside +18. Destroy the Sword of the Black Sun +19. Slay the ancient dragon Larthyx Flametongue +20. End the dark pact of Karthyn the archdevil + +## Six Truths + +Once you have your pitch, identify six truths that set your campaign apart from others, then share them with your players. Here are six example truths for a campaign built around the coming of the Black Moon from above. + +* Sages and cultists describe the coming of the Black Moon — an elder evil that will swallow the world. +* Monsters have been sighted along what were once the safest roads. The populations of whole villages are disappearing without a trace. +* A floating obsidian citadel has appeared above the Cragteeth Mountains to the north. +* Folk once had to deal with the coming of the Black Moon, but their secrets for surviving it were lost. +* The evil King Trex uses the chaos created by the coming of the Black Moon to wage war across the land. +* Prophecy speaks of the return of the Knights of the White Sun, who will restore light to the land. + +## Starting Location + +Spiral campaigns begin in a central location, often a small settlement from which the characters set out to explore neighboring lands. A village always works well as a starting location, but there are many alternatives. + +## 1d10 Starting Locations + +1. Adventurers' guild +2. Mining outpost +3. Recent shipwreck +4. Frontier outpost +5. Holy temple +6. Refugee camp +7. Fortress under siege +8. Great library +9. Planar hub city +10. Crumbling fortress + +## Campaign Fronts + +Campaign fronts are the external motivators in a campaign. Like a battlefront (from which they're named), a front is a point of conflict that advances and retreats as the campaign develops. Fronts are often villains, but might also be external forces such as natural disasters or grim fate. Campaigns might have up to three fronts at any given time, including any of the following. + +## 1d20 Campaign Fronts + +1. Thieves' guild +2. Dark necromancer +3. Armageddon cult +4. Mercenary army +5. Forgotten machine +6. Evil construct +7. Demon prince +8. Archdevil +9. Corrupt noble lord +10. Rival adventurers +11. Mages' guild +12. Outlander horde +13. Meteor storm +14. Planar invaders +15. Powerful archmage +16. Ancient lich +17. Blood-raging cannibals +18. Unseelie fey lord +19. Draconic terror +20. Undead prince + +## Local Adventure Locations + +As the campaign spirals outward, the characters will become aware of local adventuring locations. Drop three such adventure locations into the areas close by the starting location. And if you need help filling out an adventure location, look to later sections of this document. + +1. Ancient crypt +2. Forgotten sewers +3. Haunted keep +4. Festering well +5. Rat-infested cellar +6. Unholy temple +7. Dangerous caves +8. Underground city +9. War-torn citadel +10. Fey glade +11. Abandoned dungeon +12. Ruined watchtower +13. Huge hollow statue +14. Sunken catacombs +15. Obsidian ziggurat +16. Haunted forest +17. Otherworldly rift +18. Submerged grotto +19. Dead hollow tree +20. Sundered shipwreck diff --git a/markdown_obsidian/Stress Effects.md b/markdown_obsidian/Stress Effects.md new file mode 100644 index 0000000..7e33b72 --- /dev/null +++ b/markdown_obsidian/Stress Effects.md @@ -0,0 +1,75 @@ +# Stress Effects + +The guidelines in this section replace the madness rules found in other books. The concept of "madness" has long been used to malign and marginalize complex psychological symptoms and the individuals coping with them. + +This new approach works with explicitly supernatural hindrances to break away from those stereotypes. + +These effects represent dire reactions to a character witnessing something so alien and horrific that it has a lasting effect. You can use these descriptions to replace the more general frightened, stunned, or incapacitated conditions as desired. + +When amplifying a sense of stress or horror in a game, ensure that you have the players' permission ahead of time and that proper safety tools (referenced earlier in this document) are in place. + +## Using Stress Effects + +Some things are beyond the ability of the mortal mind to comprehend. When witnessing alien or horrific entities, locations, and events, even the most powerful heroes might find their ability to process what unfolds around them shut down, forcing them to make a stress check. Such a check might be warranted by any of the following situations: + +* Witnessing a ghoul devouring a body +* Beholding a bloody sacrificial altar +* Watching the raising of the dead +* Witnessing a ritual sacrifice +* Hearing the sermon of a dark priest +* Reading words from a forbidden tome +* Reading glyphs describing an elder evil +* Seeing a parasite burst free from its host +* Beholding unholy primordial cave paintings +* Touching an unholy artifact +* Peering through a portal into the Nine Hells +* Staring into a scrying pool showing the Abyss +* Discovering the ruins of a sentient alien vessel +* Watching depraved acts of cannibalism +* Seeing the true form of an abomination +* Falling into the depths of the Astral Plane +* Staring into the tumultuous extents of Limbo +* Standing in the presence of a demon prince +* Beholding an alien city of elder evils +* Witnessing the death of a god + +## Stress Results + +Whenever a character witnesses a potential stress event, you can ask for a Charisma saving throw with a DC based on the severity of the event, from DC 10 (easy) to DC 20 (hard). On a failed save, the character suffers a roleplaying effect from the Stress Effects list. Make sure you review the effects on the table during session zero to ensure they don't cross any players' lines of comfort. + +## 1d20 Stress Results + +1. You slip into a mental vision of a restful place. +2. You whisper in a tongue no mortal understands. +3. Blood flows from your eyes. +4. You collapse as you lose all strength. +5. A screaming whine fills your hearing. +6. Your heart seems to stop in your chest. +7. The faces of your friends hideously contort. +8. Your heartbeat hammers in your ears. +9. You hear strange, discordant music. +10. You fall asleep and dream of darkness. +11. A terrible memory of your past comes to mind. +12. Physical pain and burning wracks your body. +13. You find yourself unable to move or speak. +14. Unbound shadows seem to crawl toward you. +15. You hear the echoing sound of children crying. +16. You lose control of your bodily functions. +17. Your vision fills with twisted geometric shapes. +18. You hear the whispers of an otherworldly being. +19. You scream as blood flows from your mouth. +20. You feel as though all your bones begin to crack. + +You determine how long the effect lasts and can add mechanical hindrances inspired by the effect at your discretion. Alternatively, you can add the following mechanical effect: + +On a failed save, the character becomes stunned for 1 minute. The character can repeat the saving throw at the end of each of their turns and whenever they take damage, ending the effect on themself on a success. If the character's saving throw is successful or if the effect ends for it, the character is immune to this effect for the next 24 hours. A character can also choose to break this effect at the start of their turn by taking 4 (1d8) psychic damage per two character levels. A *lesser restoration* or equivalent effect likewise negates a stress effect. + +(You can also apply this mechanism for breaking an effect by taking psychic damage to characters who are frightened, stunned, or incapacitated.) + +## Long-Term Effects + +GMs and players can work together to determine whether stress effects have longer-term ramifications. Any such long-term results should reflect not just the character and the situation, but also the players' desires. + +Be mindful to avoid terms such as "madness" or "crazy" to describe the long-term effects of stressful encounters. Consider instead the otherworldly nature of the situation and effect, and focus on how the character might respond to such a stressful experience. + +Special thanks to Dr. Megan Connell and Dr. Michael Mallen for their feedback on this section. diff --git a/markdown_obsidian/The Eight Steps of Lazy RPG Prep.md b/markdown_obsidian/The Eight Steps of Lazy RPG Prep.md new file mode 100644 index 0000000..e5b09fa --- /dev/null +++ b/markdown_obsidian/The Eight Steps of Lazy RPG Prep.md @@ -0,0 +1,64 @@ +# The Eight Steps of Lazy RPG Prep + +For a typical game session, the Lazy RPG Prep checklist looks like this: + +* Review the characters +* Create a strong start +* Outline potential scenes +* Define secrets and clues +* Develop fantastic locations +* Outline important NPCs +* Choose relevant monsters +* Select magic item rewards + +Here's a brief summary of each of the steps. + +## Review the Characters + +Before we do anything else, it helps to spend a few minutes reviewing the player characters. What are their names? What do they want? What plays into their backgrounds? What do the players of these characters enjoy at the table? + +You might not even write anything down during this step, but reviewing the characters helps wire them into your mind — and ensures that the rest of your preparation fits around them. + +## Create a Strong Start + +How a game starts is likely the most important piece of preparation we can do. Setting the stage for the session determines a great deal about how the rest of the game will go. When you define where a game session starts, you figure out what's going on, what the initial focus of the session is, and how you can get close to the action. When in doubt, start with a fight. Example strong starts can be found later in this document. + +## Outline Potential Scenes + +With a strong start in hand, we can then outline a short list of potential scenes that might unfold. This step exists mostly to make you feel as though you have a handle on the game before you start. However, as GMs, all of us must always be ready to throw our potential scenes away when the game goes in a different direction — as it often does. Usually, it's enough to come up with only a few words per scene, and to expect one or two scenes per hour of play. At other times, you might skip this step completely if you don't think you need it. + +## Define Secrets and Clues + +The next step is second only in importance to the strong start, and is one of the most powerful tools available to GMs. Secrets and clues are single short sentences that describe a clue, a piece of the story, or a piece of the world that the characters can discover during the game. You don't know exactly *how* the characters will discover these clues. As such, you'll want to **keep these secrets and clues abstract from their place of discovery** so that you can drop them into the game wherever it makes sense. This lets the game flow freely, while still allowing you to reveal important pieces of the story at any point where the characters might discover them. During this step, you might write down ten such secrets or clues. Example secrets and clues are offered later in this document. + +## Develop Fantastic Locations + +Building evocative locations isn't easily improvised. As such, it's worth spending time writing out a handful of fantastic locations that the characters might discover and explore during the game. Each location can be thought of as a set, a room, or a backdrop for a single scene in your adventure. + +Describe each location with a short evocative title such as "The Sunspire." Then write down three fantastic aspects for it, along the lines of: "Blazing beam of light shining to the heavens," "Moat of molten rock," or "Huge elven glyphs carved into ancient stone." Ultimately, whole dungeons can be built from a series of connected fantastic locations, with each location representing a large area or chamber. A specific location might not come up during the game for which you prepare it, but it will be ready for a later session as the characters explore. + +## Outline Important NPCs + +During our preparation, we'll outline those NPCs (nonplayer characters) most critical to the adventure, focusing on a name and a connection to the adventure, then wrapping the NPC in a character archetype from popular fiction. Many other NPCs — maybe even most of them — can be improvised right at the table. + +## Choose Relevant Monsters + +What monsters are the characters most likely to face? What monsters make sense for a specific location and situation? We're using the term "monster" loosely here, so as to include enemy NPCs as well as truly monstrous foes. Whatever type of enemy you need, reading through books of monsters can give you the fuel to choose the right creatures for the right situation. + +Additionally, understanding the loose relationship between monster challenge rating and character level can help you understand how a battle might go. Most of the time, you can just list a number of monsters and improvise encounters based on what's happening in the adventure. For boss battles, you might have to do more work. See [Lazy Combat Encounter Building](lazycombatencounterbuilding.md) for more information. + +## Select Magic Item Rewards + +Players love magic items, and it's worthwhile to spend time preparing items they'll find interesting. This step also helps to directly impact the characters — by dropping an interesting part of the story literally into their hands. You can use a mixture of techniques to reward magic items, from selecting items randomly to selecting specific items based on the themes of the characters and the desires of the players. Magic items are also a great mechanism for delivering secrets and clues. + +## The Lazy RPG Prep Checklist and Online Play + +These steps and processes work just as well whether you interact with your players online or around the table. However you play, the Lazy RPG Prep checklist still works. + +## The 5-Minute Reduced Checklist + +If you have very little time, reduce the checklist to the most important things you can prepare before it's time to run the game. Here are three example steps. + +* Create a strong start +* Define secrets and clues +* Develop fantastic locations diff --git a/markdown_obsidian/The Lazy GM's Resource Document.md b/markdown_obsidian/The Lazy GM's Resource Document.md new file mode 100644 index 0000000..3c7151d --- /dev/null +++ b/markdown_obsidian/The Lazy GM's Resource Document.md @@ -0,0 +1,54 @@ +# The Lazy GM's Resource Document + +Michael E. Shea, [SlyFlourish.com](https://slyflourish.com). + +Updated 10 September 2023 + +This document includes resources and guidelines for preparing and running 5e and other fantasy roleplaying games taken from several books written by Michael E. Shea and available at [SlyFlourish.com](https://slyflourish.com). Much of this material is useful for any fantasy RPG but some is specific to the 5th edition of the world's most popular roleplaying game. + +This work is licensed under a [Creative Commons Attribution 4.0 International License](http://creativecommons.org/licenses/by/4.0/). You are free to use this content in any manner permitted by that license as long as you include the following attribution statement in your own work: + +> This work includes material taken from the [Lazy GM's Resource Document](https://slyflourish.com/lazy_gm_resource_document.html) by Michael E. Shea of [SlyFlourish.com](https://slyflourish.com), available under a [Creative Commons Attribution 4.0 International License](http://creativecommons.org/licenses/by/4.0/). + +This work includes material taken from the System Reference Document 5.1 ("SRD 5.1") by Wizards of the Coast LLC and available at . The SRD 5.1 is licensed under the Creative Commons Attribution 4.0 International License available at . + +The publication and release of this document is made possible by [patrons of Sly Flourish](https://www.patreon.com/slyflourish). Thank you for your support! + +This document is a single self-contained HTML file. To save an offline local copy, "save as" either the page source or HTML in your browser. Use tools such as [Calibre](https://calibre-ebook.com) and [Pandoc](https://pandoc.org) to convert this document to markdown, PDF, ePub or another format of your choice. Use [Send to Kindle](https://www.amazon.com/sendtokindle) to send a version to your Kindle. + +You can find several versions of this document including EPUB, Markdown, and JSON on [Crit.Tech's LGMRD Github Repo](https://github.com/crit-tech/LGMRD). + +## Table of Contents + +* [The Eight Steps of Lazy RPG Prep](eightsteps.md) +* [The Lazy RPG Preparation Process](prepprocess.md) +* [Example Strong Starts](strongstarts.md) +* [Creating Secrets and Clues](creatingsecrets.md) +* [Building an RPG Group](buildingagroup.md) +* [Session Zero Checklist](sessionzerochecklist.md) +* [Safety Tools](safetytools.md) +* [Connecting Characters](connectingcharacters.md) +* [Spiral Campaign Development](spiralcampaigns.md) +* [Quest Templates](questtemplates.md) +* [Tools for 5e Improvisation](toolsforimprov.md) +* [Quick Tricks for Lazier 5e Games](quicktricks.md) +* [5e Quick Encounter Building](quickencounterbuilding.md) +* [Wilderness Travel and Exploration](wildernesstravel.md) +* [Lazy Combat Encounter Building for 5e](lazycombatencounterbuilding.md) +* [Theater of the Mind Guidelines (Extended)](totmguidelines1.md) +* [Theater of the Mind Guidelines (Abbreviated)](totm2.md) +* [Zone-Based Combat](zonebasedcombat.md) +* [Monster Difficulty Dials](monsterdifficultydials.md) +* [Monster Templates](monstertemplates.md) +* [Undead Templates](undeadtemplates.md) +* [Running Hordes](runninghordes.md) +* [Stress Effects](stresseffects.md) +* [Core Adventure Generators](coreadventuregenerators.md) +* [NPC Generator](npcgenerator.md) +* [Treasure Generator](treasuregenerator.md) +* [Random Traps](randomtraps.md) +* [Random Monuments](randommonuments.md) +* [Random Items](randomitems.md) +* [Random Town Events](randomtownevents.md) +* [Random Dungeon Monsters](randomdungeonmonsters.md) +* [Lazy Solo 5e](lazysolo5e.md) diff --git a/markdown_obsidian/The Lazy RPG Preparation Process.md b/markdown_obsidian/The Lazy RPG Preparation Process.md new file mode 100644 index 0000000..d4cdfb7 --- /dev/null +++ b/markdown_obsidian/The Lazy RPG Preparation Process.md @@ -0,0 +1,57 @@ +# The Lazy RPG Preparation Process + +## The Lazy RPG Prep Toolkit + +* Dice, pencils, and dry-erase markers +* GM's notebook +* Campaign worksheet +* Curated random name list +* 3×5 index cards +* Numbered initiative cards +* GM screen or cheat sheet +* Dry-erase flip mat +* Published books and adventures +* Miniatures, maps, and terrain as needed + +## Building a Lazy Campaign + +* Develop a spiral campaign with the characters at the center +* Build a campaign hook focusing on a single major goal +* State the six truths of your campaign +* Define three fronts incorporating goals and grim portents +* Run a session zero to help build the characters and tie them together + +## Running Your Game + +* Relax +* Focus on your strong start +* Listen to the players, and build off of the ideas they bring you +* Trust your preparation to help you run a creative, flexible game +* Ask the players to summarize the events of the previous game session +* Draw players into the story by asking them to describe killing blows, define monster characteristics, and describe interesting events during travel +* Imagine the world as a living place when building scenes and situations +* Let the world and the NPCs react to the characters' actions +* Use a mixture of combat styles, including theater of the mind, gridded maps, and abstract maps +* Maintain a good pace by staying close to the action +* Cycle between action and relaxation, and alternate upward and downward emotional beats +* Use specific hopeful or fearful beats to send the action in a specific direction + +## Thinking About Your Game + +* Prime your GM's brain with great books, movies, and TV shows +* Remind yourself of the player characters' names and backgrounds +* Ask what the villains and NPCs are doing right now + +## Embrace the GM's Truths + +* Players don't care as much as you think +* Players want to see their characters do awesome things +* The GM is not the enemy of the characters +* Be a fan of the characters + +## Lazy RPG Tricks + +* Award levels at key points in the story +* Improvise ability and skill checks +* Delegate certain tasks to the players +* Use static monster damage diff --git a/markdown_obsidian/Theater of the Mind Guidelines (Abbreviated).md b/markdown_obsidian/Theater of the Mind Guidelines (Abbreviated).md new file mode 100644 index 0000000..b032b1f --- /dev/null +++ b/markdown_obsidian/Theater of the Mind Guidelines (Abbreviated).md @@ -0,0 +1,49 @@ +# Theater of the Mind Guidelines (Abbreviated) + +This section offers abbreviated guidelines for running "theater of the mind" combat — no maps or miniatures, making use only of narrative and your players' imaginations. Share these guidelines with your players so that everyone has a common understanding of how this style of playing out combat works at the table. + +## Core Principles + +Round-by-round combat played in the theater-of-the-mind style is built around three core principles: + +* The GM describes the situation. +* Players describe their characters' intent. +* The GM helps the players achieve that intent and adjudicates how the situation unfolds as a result. + +## Common Understandings + +A GM running a theater-of-the-mind game should keep the following points in mind: + +* Build theater-of-the-mind combat around the following ideals: The GM and the players are working together to share a story of high action and adventure. They are not opponents. +* The GM and players do not hide their intentions during combat. +* Players and GMs assume that the characters and their enemies all move cautiously, avoiding opportunity attacks whenever possible. +* The GM identifies when a character is taking a risk, such as provoking an opportunity attack, before the player chooses the character's action. + +## Player Advice + +Players in a theater-of-the-mind game should keep the following points in mind: + +* Describe your intent. Tell the GM what you want your character to do in the story that the combat encounter is building. Avoid a back-and-forth series of tactical questions. +* Tell the GM what special features your character has that you want to highlight. If you have crunchy tactical abilities you want to use, describe how you want them to work for the situation. For example: "I want to stay close to the cleric so I can use my Protection Fighting Style, but I'll keep 10 feet away from the orcs so I can use my Polearm Mastery feat to hit them on their way in." +* Describe specifically what you want to do. "I want to stay within the paladin's aura but still attack the hobgoblin ravager." +* Look for fun ways to use the environment described by the GM. +* Worry less about the mechanical details of the game and more on the high action and adventure of the story. One good way to do that is to imagine combat as a high-action battle in one of your favorite movies. + +## GM Advice + +A GM running a theater-of-the-mind game should keep the following points in mind: + +* Work with the players, not against them. Err in favor of the characters as you help the players achieve their intent. +* Each turn, describe the situation surrounding the acting character. +* Adjudicate the number of targets in an area attack based on the situation, the assumed positions of the combatants, and the size of the area. +* Use evocative in-world narration to describe the characters, the monsters, the action, and the high adventure of the story as it plays out. +* Make bargains and deals with the players. "You can hit three orcs with *fireball*, or you can hit five orcs if one of your companions is willing to be hit as well." +* Describe the distances between combatants in feet to help players recognize what they can and can't do. Default to 25 feet if you don't really know. +* Run simpler encounters with useful environmental features, such as flipped tables, cracked stalagmites, cliff edges, bottomless pits, roaring fires, and hanging chandeliers. +* Ask the players to identify monsters by describing interesting physical characteristics. +* Give the players opportunities to show off their characters' skills and abilities. +* Some players can't visualize combat scenes in their head, a condition known as aphantasia. For these players, consider providing a quick sketch or other visual. + +## One Tool of Many + +Add theater of the mind to your collection of ways to run combat, including abstract maps, zone-based combat (described later in this document), gridded combat, or 3D terrain. Choose the right style of combat for the pace and complexity of the scene. Keep each approach as a tool in your GM's toolbox to help you share exciting tales of action and high adventure. diff --git a/markdown_obsidian/Theater of the Mind Guidelines (Extended).md b/markdown_obsidian/Theater of the Mind Guidelines (Extended).md new file mode 100644 index 0000000..70b84e1 --- /dev/null +++ b/markdown_obsidian/Theater of the Mind Guidelines (Extended).md @@ -0,0 +1,72 @@ +# Theater of the Mind Guidelines (Extended) + +The following guidelines can help Gamemasters run combat in the "theater of the mind," without the need for a gridded battle map or miniatures. This style of combat takes the emphasis away from tactical features such as distance, range, and the specific size of areas of effect. Instead, it focuses on the in-game action, the intent of the characters, and what happens in the story. + +This style of combat works just like any other scene in your game. On each player's turn, you describe the current situation, the players describe their intent, and you adjudicate what happens as a result. + +Theater-of-the-mind combat requires that the players trust you as the Gamemaster, knowing that you'll describe the situation and adjudicate the results of the characters' actions fairly. As the GM, you'll earn this trust by favoring the players whenever possible, and by focusing on sharing an action-packed story. + +Running theater-of-the-mind combat removes agency from the players. It takes away their ability to control every aspect of how their characters move and what they do. As the GM, you can mitigate this by asking each player for their intent each turn, then helping them meet that intent. For example, a player who says "I move close to the orcs" potentially leaves too many possibilities open. So encourage the player to focus their intent more — perhaps along the lines of, "I want to position myself so that at least two orcs are within the reach of my glaive." + +When playing in the theater of the mind, both you and the players must worry less about the mechanical details of the game. Instead, everyone will focus on the action and the story. + +## Summary Guidelines for the GM + +* Each turn, describe the situation surrounding the characters. +* Ask for the players' intent and help them achieve it. +* Be generous. Give players the benefit of the doubt. +* Use ability checks to let the characters try crazy ideas. +* Ask the players to describe interesting physical characteristics of the monsters, and use these to identify monsters during combat. +* Bring characters into the story by asking them to describe their killing blows. +* When needed, use sketches, abstract maps, or miniatures to show complicated locations and relative positions. + +## Summary Guidelines for Players + +* Describe your intent. What you want to accomplish? +* Use the features of the area to your advantage. +* Don't worry about specific distances. Just describe what you want to do. +* Try awesome ideas based on the details of the location. +* Describe your character's actions within the story. + +## Movement, Distance, and Range + +At the beginning of combat, you describe the situation, features, distances, and arrangements of the creatures in the area. Assuming a moderately sized combat area, any creature can generally move within 5 feet of any other creature, and every creature is within range of every other creature making ranged attacks. You'll make it clear whenever this isn't true, such as when an enemy is farther away or behind a front line of protective allies. + +Characters with fast movement might have opportunities to move places other characters can't. + +## Positioning, Opportunity Attacks, and Cover + +On each player's turn, they describe how they intend to position themselves. Examples of movement in the theater of the mind might include moving next to an ally, moving next to two enemies, or staying out of reach while attacking with a polearm. + +If a creature is within an enemy's reach, it will likely provoke an opportunity attack if it tries to move away from that enemy. Creatures able to disengage can do so and avoid opportunity attacks. + +As you describe the features of the area, make a note of which ones can provide cover to the characters or their enemies, and how much cover. + +## Areas of Effect + +The following guidelines offer a rough baseline for determining the number of targets that fall within an area of effect. The circumstances of a battle can increase or decrease this number. For example, for larger monsters or monsters that are more spread out, an area of effect might target only half the normal number of creatures. For smaller monsters or monsters that are packed close together, an area of effect might include up to double the normal number of targets. + +* **Tiny Area:** 1 or 2 creatures (*cloud of daggers*) +* **Small Area:** 2 creatures (*burning hands*, *thunderwave*) +* **Large Area:** 4 creatures (*cone of cold*, *fireball*) +* **Huge Area:** Everyone (*circle of death*, *earthquake*) +* **Short Line:** 2 creatures (*wall of fire*) +* **Long Line:** 3 creatures (*blade barrier*, *lightning bolt*) + +Abilities like the evoker's Sculpt Spells feature can increase the number of affected enemies, usually by one or two. Likewise, an area of effect that targets both the characters and their enemies might affect more total targets — including an effect created by a character or monster willing to put allies in harm's way. If a spellcaster character wishes to place allies within an area of effect, you and the players should negotiate this before the spell is cast. + +## Locations, Features, Environment, and Terrain + +When first describing the combat encounter, describe notable locations, objects, environmental features, and terrain features. Write these down and keep them in front of the players if it helps them visualize the battlefield. Let the players know that they can interact with these environmental features, through such actions as swinging from magical chandeliers, climbing up obsidian cliffs to advantageous positions, or hiding behind ruined statues. If any feature or effect creates difficult terrain, let the players know how this might affect them, such as requiring that they use the Dash action to get out of the area. + +## Randomly Selected Targets + +Avoid biases — whether perceived or actual — by randomly selecting targets when it isn't clear which character a monster would attack. Rolling randomly for targets in the open can help build trust between you and the players, letting them know that the GM isn't picking on anyone. Monsters aren't idiots, though. If it's clear that a monster would attack a particular character, such as a wizard concentrating on a dangerous spell, the monster will do so. When this happens, just describe why the monster chose that particular character, so the players understand. + +## Physical Traits and Identifying Enemies + +Ask each player to describe the physical traits of a monster their character is attacking. This helps identify the monster, opens up all the players' imaginations to the battle, and helps everyone know which monster is which using in-story descriptions. Write these physical traits down on a 3×5 index card or on a dry-erase flip mat so everyone can see which monsters are in play. + +## Going Big with Descriptions + +Theater-of-the-mind combat can go stale if you don't continually reinforce the story of what's happening. Go big with your descriptions of the location and the action. Ask players to describe their attacks and killing blows. Between turns, describe the current situation using in-story language. These descriptions are vital to keeping the scene interesting. diff --git a/markdown_obsidian/Tools for 5e Improvisation.md b/markdown_obsidian/Tools for 5e Improvisation.md new file mode 100644 index 0000000..5646441 --- /dev/null +++ b/markdown_obsidian/Tools for 5e Improvisation.md @@ -0,0 +1,56 @@ +# Tools for 5e Improvisation + +## Difficulty Checks + +For any given task or challenge, ask yourself how hard it is to accomplish. Then assign a DC from 10 (easy) to 20 (very hard). If a task is trivial, don't bother asking for a roll. Rather, the characters automatically succeed. Likewise, reserve DCs above 20 for superhuman challenges. + +## Improvised Damage + +Decide on a challenge rating (CR) for the source of the damage, from CR 1 (low challenge) to CR 20 (very high challenge). Then roll a number of damage dice of a particular kind, as follows: + +* Single-Target Damage: 7 × CR (or 2d6 per CR) +* Multiple-Target Damage: 3 × CR (or 1d6 per CR) + +This challenge rating can be thought of as roughly equivalent to the average level of a group of characters. However, don't automatically choose a challenge rating based on the level of the characters. Rather, the level of the challenge might be higher or lower than the characters, depending on the situation. + +## Improvised Statistics + +Whenever you need to improvise Armor Class, attack modifiers, saving throw DCs, or other combat statistics for a creature, trap, object, or obstacle, use the following guidelines based on its challenge rating: + +* AC = 12 + 1/2 CR +* DC = 12 + 1/2 CR +* Attack Bonus = 3 + 1/2 CR +* Damage = 7 × CR (or 2d6 per CR) +* Saving Throw with Proficiency = 3 + 1/2 CR +* Hit Points = 20 × CR + +When improvising statistics for traps and other objects that deal damage and can be attacked to destroy them, estimate the object's CR by comparing it to various creatures that produce the same sorts of effects in combat. + +## Other Improv Tricks + +The following tricks can also help make it easier for you to improvise during your game: + +* Use the story the players give to you, rather than forcing the characters to stick to a path you set. +* Use static monster damage. +* In combat, go around the table by player instead of rolling for initiative. +* Use advantage and disadvantage to reward unique approaches or clarify poor choices. +* Improve pacing by changing monster hit points on the fly to speed up or prolong a fight. +* Let the characters stumble upon two weak monsters, then see whether the monsters and characters want to fight or simply have a conversation. + +## Deadly Encounter Benchmark + +Choose monsters that make sense for the location, the situation, and the story. Don't worry about whether an encounter is "balanced" — except to determine if it might be deadly. An encounter might be deadly if the total of all the monsters' challenge ratings is greater than one quarter of the total of all the characters' levels, or one half of the characters' levels if the characters are 5th level or higher. + +If an encounter might be deadly, warn the players — and make sure the characters have a chance to escape. A more detailed version of the benchmark can be found in [Lazy Combat Encounter Building for 5e](lazycombatencounterbuilding.md) later in this document. + +## Running Hordes + +When running large numbers of creatures, instead of rolling independent attack rolls or saving throws, assume that one-quarter of those rolls succeed. Increase or decrease that number depending on the situation (for example, if many creatures in the horde have advantage or disadvantage). Additionally, instead of tracking individual hit points for a horde, you can tally the damage done to the entire horde when any of its creatures are hit. Every time the tally becomes equal to or higher than the hit points of any individual creature in the horde, remove a creature from the horde and reset the tally. Round monster hit points to the nearest 5 or 10 to make things easier. A more detailed version of these guidelines can be found in "[Running Hordes](runninghordes.md)" later in this document. + +## Names + +You can never have enough names on hand while improvising your game. Here are a few you can use whenever an NPC, location, business, or other part of your game needs a name. + +First Names: Shum, Agtos, Edbert, Josiane, Olaugh, Rosaline, Pearson, Boyle, Typhon, Satyros, Ronald, Brice, Wilford, Circe, Surbag, Kayla, Latona, Cecily, Shuzug, Moth, Dolly, Minerva, Prutha, Esmour, Tristan, Lake, Stewart, Hebub, Lanos, Ingram, Orvist, Daud, Metope + +Last Names/Organization Names: Lionstone, Treeson, Oakhelm, Gentleheart, Whitesong, Starharp, Nightchaser, Shadowstinger, Catclaw, Faeriebound, Leafwing, Goldrock, Darkslicer, Gravewalker, Rainbright, Needleflinger, Goosechaser, Steelclaw, Scalerazor, Glasscutter, Ironhouse, Eboncloud. More names can be found in the "[NPC Generator](npcgenerator.md)" section later in this document. diff --git a/markdown_obsidian/Treasure Generator.md b/markdown_obsidian/Treasure Generator.md new file mode 100644 index 0000000..e9d9e49 --- /dev/null +++ b/markdown_obsidian/Treasure Generator.md @@ -0,0 +1,84 @@ +# Treasure Generator + +Piles of coins, shining gems, and powerful relics hidden away in the depths of the world await adventurers brave enough to seek them. This section offers a simple set of tables and guidelines that let you quickly reward treasure for your fantasy RPG, and which work well alongside the more detailed treasure rules of the game. + +## Gold Per Level + +Use the following gold parcels to quickly reward adventuring groups based on the characters' average level. Reward four such parcels each level, or add parcels together to create larger rewards. + +| Level | Gold per Parcel | +| ----------- | --------------------------- | +| 1st - 4th | 100 gp (3d6 × 10 gp) | +| 5th - 10th | 1,300 gp (3d8 × 100 gp) | +| 11th - 16th | 7,000 gp (2d6 × 1,000 gp) | +| 17th - 20th | 70,000 gp (2d6 × 10,000 gp) | + +This earned wealth can take the form of coins, gemstones, jewelry, and art objects as desired. You can also adjust the numbers slightly to keep hoards from looking too uniform. For example, you might turn two 1,300 gp parcels into 1,145 gp and 1,422 gp. + +## Consumable Treasure + +As desired, you can augment monetary treasure with consumable magic items from the following table. + +## 1d12 Consumable Treasure + +1. *Potion of healing* +2. *Potion of greater healing* +3. *Oil of slipperiness* +4. *Potion of animal friendship* +5. *Potion of climbing* +6. *Potion of growth* +7. *Potion of mind reading* +8. *Potion of poison* +9. *Potion of resistance* +10. *Potion of water breathing* +11. *Dust of disappearance* +12. *Dust of dryness* + +Rather than standard consumable items, you can also award powerful single-use magic items generated using the Spells table from the "Core Adventure Generator" included in this document. You can also use the Condition, Description, and Origin table in that section to give an item a unique flavor. + +## Magical Treasure + +Permanent magic items can be included with treasure as desired, with the uncommon items on the following table suitable for characters of all levels. Choose specific weapons and armor that fit the proficiencies and desires of the characters. You can use the Condition, Description, and Origin table from the core adventure generator to give such items additional flavor. + +## 40 Magical Treasures + +1. *Weapon +1* +2. *Armor +1* +3. *Ammunition +1* +4. *Amulet of proof against detection and location* +5. *Bag of holding* +6. *Bag of tricks* +7. *Boots of elvenkind* +8. *Boots of striding and springing* +9. *Boots of the winterlands* +10. *Bracers of archery* +11. *Brooch of shielding* +12. *Broom of flying* +13. *Circlet of blasting* +14. *Cloak of elvenkind* +15. *Cloak of protection* +16. *Cloak of the manta ray* +17. *Eversmoking bottle* +18. *Eyes of charming* +19. *Eyes of the eagle* +20. *Figurine of wondrous power (silver raven)* +21. *Gauntlets of ogre power* +22. *Gloves of missile snaring* +23. *Gloves of swimming and climbing* +24. *Goggles of night* +25. *Hat of disguise* +26. *Headband of intellect* +27. *Helm of comprehending languages* +28. *Helm of telepathy* +29. *Immovable rod* +30. *Javelin of lightning* +31. *Lantern of revealing* +32. *Medallion of thoughts* +33. *Necklace of adaptation* +34. *Pearl of power* +35. *Ring of mind shielding* +36. *Rope of climbing* +37. *Slippers of spider climbing* +38. *Stone of good luck* +39. *Wand of magic missiles* +40. *Wand of web* diff --git a/markdown_obsidian/Undead Templates.md b/markdown_obsidian/Undead Templates.md new file mode 100644 index 0000000..6035bac --- /dev/null +++ b/markdown_obsidian/Undead Templates.md @@ -0,0 +1,57 @@ +# Undead Templates + +Death comes to all things, but not even death can keep a good monster down. You can easily create an undead variant of any monster simply by giving it the undead type and describing its undead appearance, letting the narrative feed the players' impression of fighting undead without requiring any mechanical changes. But for even more realistic undead, you can use any of the following templates to give a monster some of the properties and attributes of a specific type of undead creature. + +## Undead Templates + +All creatures that take on one of these templates gain the following universal changes: + +* The creature's type becomes undead. +* The creature has darkvision out to a range of 60 feet. +* Any new trait of the creature's that requires a saving throw uses a DC of 12 + one-half the undead creature's challenge rating. + +Then apply the traits and actions of any of the following specific templates. + +## Skeleton + +* Vulnerability to bludgeoning damage. +* Immunity to poison damage, to exhaustion, and to the poisoned condition. + +## Zombie + +* Immunity to poison damage and the poisoned condition. +* **Undead Fortitude.** If damage reduces the creature to 0 hit points, it must make a Constitution saving throw with a DC of 5 + the damage taken, unless the damage is radiant or from a critical hit. On a success, the creature drops to 1 hit point instead. + +## Ghoul + +* Immunity to poison damage, to exhaustion, and to the charmed and poisoned conditions. +* **Paralyzing Touch.** When this creature hits with a melee attack using a natural weapon, the target must succeed on a Constitution saving throw or be paralyzed for 1 minute. The target can repeat the saving throw at the end of each of its turns, ending the effect on itself on a success. Elves and undead are immune to this effect. + +## Wight + +* Resistance to necrotic and poison damage, and to bludgeoning, piercing, and slashing damage from nonmagical attacks that aren't silvered. +* Immunity to exhaustion and the poisoned condition. +* **Life Drain.** When this creature hits with a melee attack using a natural weapon, the attack deals necrotic damage equal to 1d6 + one-half the creature's challenge rating, and the target must succeed on a Constitution saving throw or have its hit point maximum reduced by an amount equal to the damage taken. This reduction lasts until the target finishes a long rest. The target dies if this effect reduces its hit point maximum to 0. + +## Wraith + +* Resistance to acid, cold, fire, lightning, and thunder damage, and to bludgeoning, piercing, and slashing damage from nonmagical attacks that aren't silvered. +* Immunity to necrotic and poison damage, to exhaustion, and to the charmed, grappled, paralyzed, petrified, prone, and restrained conditions. +* The creature has the wraith's Incorporeal Movement and Sunlight Sensitivity traits. +* The creature gains the following trait: Life Drain. When this creature hits with a melee attack using a natural weapon, the attack deals necrotic damage equal to 1d6 + one-half the creature's challenge rating, and the target must succeed on a Constitution saving throw or have its hit point maximum reduced by an amount equal to the damage taken. This reduction lasts until the target finishes a long rest. The target dies if this effect reduces its hit point maximum to 0. + +## Vampire Spawn + +* Resistance to necrotic, bludgeoning, piercing, and slashing damage from nonmagical attacks. +* The creature has the vampire spawn's Spider Climb, Vampire Weaknesses, and Regeneration traits. +* **Bite.** Melee Weapon Attack: 4 + one-half the creature's CR to hit, reach 5 ft., one willing creature, or a creature that is grappled by the vampire spawn creature, incapacitated, or restrained. Hit: piercing damage equal to 1d6 + one-half the creature's CR, plus necrotic damage equal to 1d6 per one- half the creature's CR (minimum 1d6). The target's hit point maximum is reduced by an amount equal to the necrotic damage taken, and the templated creature regains hit points equal to that amount. The reduction lasts until the target finishes a long rest. The target dies if this effect reduces its hit point maximum to 0. +* The creature can grapple a target instead of dealing damage with any of its attacks. If it makes multiple attacks, it can replace one of those attacks with the Bite action. +* If you want your vampire spawn creature to feel even more vampiric, give it the ability to cast the misty step, command, or hold person spells at will as a bonus action. + +## Powerful Undead Templates + +To build variants of creatures modeled after more powerful undead, use the undead creature's stat block and add traits from the base creature. It's easier to apply the traits and actions of a stone giant to a lich or vampire stat block than it is to apply lich or vampire traits to a stone giant stat block. + +## Ability Modifications + +Ability score modifications to undead creatures aren't covered in these templates. For example, skeletons might have reductions to Dexterity and Charisma, and vampire spawn might have boosted Strength, Dexterity, and Constitution scores. Most of the time, you can safely skip such changes, simply improvising adjustments to the baseline abilities of the monster when needed. diff --git a/markdown_obsidian/Wilderness Travel and Exploration.md b/markdown_obsidian/Wilderness Travel and Exploration.md new file mode 100644 index 0000000..99697c9 --- /dev/null +++ b/markdown_obsidian/Wilderness Travel and Exploration.md @@ -0,0 +1,49 @@ +# Wilderness Travel and Exploration + +This section offers a systematic approach for handling travel through wild lands filled with potential dangers, and can be used with both point crawls (see the previous page) or hex crawls. + +As the characters travel overland, they undertake specific activities related to the journey. Select appropriate DCs for those activities, with checks usually ranging between DC 10 (easy) and DC 20 (very hard). A default of DC 12 is usually a good choice. + +## Character Roles + +When the characters choose to travel through the wilderness, each player chooses a role for their character to take on. If two characters feel like good choices for a particular role, one character can use the Help action to assist the other, granting advantage on the check. + +### Trailhand + +**Applicable Skills:** Nature, Survival + +A trailhand ensures that the party follows the right path to reach an intended destination, masterfully navigating the natural or constructed paths that crisscross the wilds. With a successful check, the characters stay on the correct paths. On a failure, they might become lost, stumbling into a hostile area or losing resources. Characters might also be subject to exhaustion as they try to make their way back to the correct path, or might find it difficult to take a short or long rest until they do. + +### Scout + +**Applicable Skills:** Insight, Investigation, Nature, Perception, Survival + +A scout keeps an eye out for potentially hostile creatures during the characters' journey. These might be creatures stalking the characters, creatures that have earlier crossed the characters' path, or creatures that are traveling in the same direction and overtake the party. With a successful check, the characters spot the potentially hostile creatures and can plan their response. On a failure, the scout might unknowingly lead the party into a hostile encounter or an ambush. + +### Quartermaster + +**Applicable Skills:** Medicine, Survival + +A quartermaster ensures that the characters remain well fed and hydrated during their journey. They ensure that provisions remain unspoiled, and help forage for additional resources along the way. Shorter journeys might not require a character to take on this role. + +With a successful check, the characters have plenty of food and water for the journey, with provisions remaining unspoiled. On a failure, the characters might lose precious resources of food and water (potentially leading to exhaustion), or need to spend additional time searching for resources. + +## Group Stealth + +If the characters decide to move stealthily through the wilderness, doing so doubles the length of their travel time and might impose disadvantage on other checks at your discretion. To move stealthily through the wilderness, the characters make a group Dexterity (Stealth) check and compare that result to the passive Wisdom (Perception) scores of any potentially hostile creatures that might spot or hear them. + +## Creating the Wilderness + +When an adventure sees the characters trekking across the wilds, use the following steps to create an adventure framework for that wilderness journey. You can use random tables to generate locations for wilderness journeys, including encounter ideas and suggestions for landmarks. + +### Determine the Weather + +Choose or randomly select potential weather for the characters' journey. Weather mostly adds to the in-world atmosphere, but harsh weather can change the DCs of the characters' activities as they travel if you wish. + +### Determine Potential Encounters + +As the characters travel through the wilderness, choose or randomly select potential encounters. These might be face-to-face encounters with denizens of the wilderness, but not all such encounters need to be hostile. The characters could run into friendly travelers, fearful monsters, weak foes, or signs of a previous battle. Likewise, they might spot the tracks of creatures recently passed by, or that are heading in the party's direction. + +### Place Notable Landmarks + +Use notable landmarks to mark key points along the characters' journey. Such landmarks can serve as a backdrop for random encounters or as places to rest. They might also serve as a source of secrets and clues that the characters can discover. diff --git a/markdown_obsidian/Zone-Based Combat.md b/markdown_obsidian/Zone-Based Combat.md new file mode 100644 index 0000000..b2e8a2e --- /dev/null +++ b/markdown_obsidian/Zone-Based Combat.md @@ -0,0 +1,37 @@ +# Zone-Based Combat + +Zone-based combat can help GMs run fast, dynamic, and high-action combat without worrying about all the details of tactical combat played out on a grid. It supports multiple combat styles, including pure narrative theater-of-the-mind combat, quickly drawn abstract sketches, or miniatures used with detailed maps or 3D terrain. Using zone-based combat means you have to worry less about the details of a 5-foot-per-square grid and can focus more on big heroic action. Zone-based combat simply requires that the GM and the players work together with the shared goal of creating fantastic stories of high adventure. + +## Zone Rules + +The following guidelines establish the broad strokes of zone-based combat: + +* Combat areas are made up of one or more zones, each of which is roughly 25 feet on a side but which can be any size. +* The GM defines zones using evocative descriptions, such as "a crumbling bridge over a bottomless gorge," "a blood-covered altar," or "a holy statue of light." +* The GM can write down or define these zones and their descriptions on paper, note cards, or erasable battle maps so the players can visualize the situation. Miniatures or tokens can mark out the positions of characters and monsters in zones. +* Players are encouraged to make use of features in a zone, whether by taking cover, climbing to an advantageous position, activating magical locations, and so forth. +* Most combat encounters occur in a single zone. Big battles might use two or more zones. +* On each of their turns, a character can move within a zone or can move from one zone to another. Characters with extra movement can move up to two zones away. +* Assume that all creatures in combat move cautiously, avoiding opportunity attacks when possible. The GM informs the players if a character risks an opportunity attack from their intended activity in the fight. +* Attacks with a range of 25 feet or greater can target creatures within a zone or one zone away. +* Attacks with a range of 50 feet or greater can also target creatures two or more zones away. +* If a character attacks with or is attacked by a melee attack with a 5-foot reach, that character will provoke opportunity attacks if they attempt to move away from their opponent. A character attacked by a melee attack with a 5-foot reach also has disadvantage on ranged attacks. +* Players can make best use of zone-based combat by describing their intent — for example, "I want to attack the orc chief with my glaive but stay out of his reach," or "I want to get between our wizard and the ogre." +* The GM then works with the players to help them achieve their intent. + +## Areas of Effect in Zones + +Many spells and features have areas of effect. GMs can use the following guidelines to adjudicate which targets are hit by such effects. These guidelines break out general descriptions of the size of an area of effect, how many creatures are typically affected in that area using zone-based combat, and examples of common spells and class features that use that size: + +* **Tiny Area:** One or two creatures in the same zone (*cloud of daggers*) +* **Small Area:** Two or three creatures in the same zone (*burning hands*, *thunderwave*) +* **Large Area:** Four to six creatures in the same zone (*cone of cold*, *fireball*) +* **Huge Area:** Twelve creatures across two zones (*circle of death*, Turn Undead) +* **Short Line:** Two or three creatures in the same zone (*wall of fire*) +* **Large Line:** Two to four creatures across two zones (*lightning bolt*) + +GMs can adjudicate and adjust these numbers based on the current situation. For example, an area containing a horde of monsters might double the potential number of monsters affected. Whatever the circumstances, though, a GM should always adjudicate in favor of the characters. + +## Handling Edge Cases + +Zone-based combat doesn't account for a wide range of features that make use of specific distances. In those cases, it's up to the GM to work with a player's intent to help them make use of those features. In all cases, the GM should ask what the player wants to do, then help them figure out how to do it. diff --git a/markdown_obsidian_5e_monster_builder/Bosses and Minions.md b/markdown_obsidian_5e_monster_builder/Bosses and Minions.md new file mode 100644 index 0000000..01151d4 --- /dev/null +++ b/markdown_obsidian_5e_monster_builder/Bosses and Minions.md @@ -0,0 +1,54 @@ +# Bosses and Minions + +When creating a boss battle, thinking about which bosses pair well with which minions can be a great starting point. You can use the table below to match up minions and bosses in a number of classic adventure environments. + +| Boss CR | Boss | Environments | Minions | +| ------- | -------------------- | ------------------------------------ | --------------------------------------------------------------------- | +| 1 | Goblin boss | Caves, mountains | Goblins, worgs | +| 2 | Bandit captain | Cities, sewers, ruins | Bandits, spies, thugs, berserkers, gladiators | +| 2 | Cult fanatic | Cities, ruins | Cultists, bandits, thugs, dretches | +| 2 | Ettercap | Caves, ruins | Giant spiders | +| 2 | Ghast | Ruins, crypts, cities, sewers | Ghouls, zombies | +| 2 | Gnoll pack lord | Plains, caves, ruins | Gnolls, hyenas | +| 2 | Ogre | Ruins, caves | Orcs, goblins | +| 2 | Sea hag | Coves, swamps, grottos | Giant constrictor snakes, crocodiles | +| 3 | Bugbear chief | Keeps, fortresses, ruins, caves | Bugbears, goblins, worgs | +| 3 | Green hag | Forests, swamps | Bullywugs, giant toads, giant constrictor snakes, imps, quasits | +| 3 | Winter wolf | Frozen mountains, frozen ruins | Dire wolves, ice mephits | +| 4 | Banshee | Ruins, crypts | Specters, skeletons | +| 4 | Bone naga | Ruins, crypts | Skeletons, specters, wights | +| 4 | Ettin | Mountains, ruins, caves | Ogres, orcs | +| 4 | Lamia | Ruins, towers, caves | Jackalweres | +| 4 | Lizard king/queen | Swamps, sunken grottos | Lizardfolk shamans, lizardfolk, monitor lizards | +| 5 | Hill giant | Mountains, ruins, caves | Ogres, orcs, bugbears, goblins, cave bears | +| 5 | Night hag | Ruins, crypts, Lower Planes | Hell hounds, quasits, manes, shadow demons | +| 5 | Sahuagin baron | Coves, grottos, underwater ruins | Sahuagin priestesses, sahuagin, reef sharks, giant octopuses, krakens | +| 5 | Wraith | Ruins, crypts | Flameskulls, specters, wights | +| 6 | Hobgoblin warlord | Ruins, keeps, fortresses | Hobgoblin captains, hobgoblins, bugbears, goblins, worgs | +| 6 | Mage | Towers, cities | Animated armor, imps, acolytes, flesh golems, veterans | +| 6 | Medusa | Ruins, caves | Basilisks, giant constrictor snakes, death dogs | +| 7 | Oni | Ruins, caves, cities | Hobgoblins, orcs | +| 8 | Frost giant | Frozen mountains, frozen ruins | Yetis, young white dragons, polar bears, winter wolves | +| 9 | Fire giant | Volcanoes, caverns | Hell hounds, young red dragons, salamanders, azers, fire mephits | +| 9 | Glabrezu | Lower Planes, ruins, towers | Barlguras, chasmes | +| 10 | Aboleth | Caverns, coves, lakes | Chuuls, cult fanatics, hydras, NPCs (enthralled), sea hags | +| 11 | Efreeti | Ruins, volcanoes, cities, deserts | Fire elementals, salamanders, fire snakes | +| 11 | Horned devil | Lower Planes, ruins, towers | Barbed devils, bearded devils, spined devils | +| 12 | Archmage | Towers, cities | Animated armor, imps, cambions, demons (any), elementals, golems | +| 13 | Adult white dragon | Frozen mountains, frozen ruins | Yetis | +| 13 | Vampire | Ruins, crypts | Vampire spawn, giant bats, dire wolves, specters, wights | +| 14 | Adult black dragon | Swamps, sunken grottos | Giant crocodiles, trolls, bullywugs, lizardfolk, kuo-toa | +| 15 | Adult green dragon | Forests, ruins, caverns | Treants, elves | +| 15 | Mummy lord | Ruins, crypts | Mummies, skeletons, wights, cult fanatics | +| 16 | Adult blue dragon | Deserts, ruins, towers | Air elementals, mages | +| 16 | Marilith | Lower Planes, ruins, towers | Hezrous, vrocks | +| 17 | Adult red dragon | Mountains, volcanoes, ruins, caverns | Fire elementals, kobolds | +| 17 | Death knight | Crypts, ruins, Lower Planes | Wights, wraiths, liches, flameskulls, nightmares, revenants | +| 19 | Balor | Lower planes, ruins | Mariliths, glabrezus, goristros, cambions, cult fanatics | +| 20 | Ancient white dragon | Frozen mountains, frozen ruins | Abominable yetis | +| 20 | Pit fiend | Lower planes, ruins, towers | Horned devils, bone devils, erinyes | +| 21 | Ancient black dragon | Swamps, sunken grottos | Giant crocodiles, trolls, bullywugs, lizardfolk | +| 21 | Lich | Ruins, towers, crypts, caves | Death knights, iron golems, wraiths, mages | +| 22 | Ancient green dragon | Forests, ruins, caverns | Treants, elves | +| 23 | Ancient blue dragon | Deserts, ruins, towers | Air elementals, mages | +| 24 | Ancient red dragon | Mountains, volcanoes, ruins, caverns | Fire giants, fire elementals, kobolds | diff --git a/markdown_obsidian_5e_monster_builder/Building a Quick Monster.md b/markdown_obsidian_5e_monster_builder/Building a Quick Monster.md new file mode 100644 index 0000000..e29d83f --- /dev/null +++ b/markdown_obsidian_5e_monster_builder/Building a Quick Monster.md @@ -0,0 +1,130 @@ +# Building a Quick Monster + +Sometimes you need a monster right now but you don't have the right one handy. Maybe the creature you're imagining doesn't exist in any given book of published monsters, or you simply don't have the time to look it up. Maybe you're in the middle of your game and want some quick statistics for a creature you didn't think you'd need. For all these problems, this section offers solutions. + +The core tool for building a quick monster for a 5e game is the Monster Statistics by Challenge Rating table, which offers you a set of statistics that can be used to build and run a quick monster of any challenge rating (CR). You then have two paths for customizing a monster built from these baseline statistics—with flavor and description during the game, or with a refinement of the creature's mechanics. + +It's worth your time to review and understand how this table works before you start using it in your game. Read the column descriptions. Understand the relationship between a monster's challenge rating and equivalent character level. Once you've internalized how this table works, you can use it in seconds to build a monster and throw that foe into your game. + +## Column Descriptions + +The table includes the following columns, which will become more familiar to you as you build your monsters. + +***Monster CR.*** The challenge ratings presented in the CR column are the baseline measure to determine the relative difficulty of a monster in combat. You'll almost always reference this column first when building a quick monster. + +***Equivalent Character Level.*** This column describes the roughly equivalent level of a single character facing a single monster of this challenge rating in a hard encounter. This gives you a quick way to determine how difficult this monster will be when facing characters of a particular level. + +As you can see from the table, matching character level to challenge rating isn't a simple mathematical process. There are a number of character levels missing from the table where certain challenge ratings represent a large jump in how tough a monster is. + +***AC/DC.*** This column indicates the typical Armor Class of a monster of the indicated challenge rating. It also describes the typical Difficulty Class if this monster uses a DC for any of their attacks or other features. + +***Hit Points.*** This column offers the baseline hit points of a monster of a given challenge rating. Feel free to add or subtract hit points within the suggested range based on the monster's in-world features or physiology, or the pacing you want to maintain during a battle. + +***Proficient Ability Bonus.*** This column gives the expected bonus for abilities with which the monster is proficient, adding the monster's ability score modifier and proficiency bonus together. This number can be used as an attack bonus, or as a bonus for proficient saving throws and ability checks. (Ability-based modifiers without proficiency are fixed values between −2 and +4, based on the monster's story.) + +***Damage per Round.*** This column contains the total expected damage that a monster can deal in a round. Higher-CR monsters typically split this total damage among a number of attacks, instead of doing one big attack that either deals a tremendous amount of damage or misses completely. If a single effect targets two or more characters, such as a fiery breath weapon, the damage for that effect should be half the indicated number. + +***Number of Attacks.*** This column notes the number of attacks a monster of a particular challenge rating typically makes per round. The damage per round from the previous column is divided among these multiple attacks in the following column. + +***Damage per Attack.*** This column shows the baseline amount of damage a monster deals per attack when using the default number of attacks in the previous column. It includes both average damage and a dice equation. + +***Example Monsters.*** This column offers example monsters for each challenge rating. This can help you gauge where your monster fits among a sampling of existing 5e monsters. + +## Building a Monster + +With the Monster Statistics by Challenge Rating table at hand, you can use the following quick steps to build a custom monster from scratch. The first four steps alone let you easily create a monster ready to run in your game. The optional steps that follow then let you fill out the monster's details and custom mechanics as desired. + +### Step 1: Determine Challenge Rating + +Begin by determining the challenge rating for your quick monster based on that creature's fiction in the world. When considering the challenge rating of a custom monster, you might compare them to existing creatures on the table. If the in-world power of your monster compares well to a skeleton, the monster might have a challenge rating of 1/4. If they're more like a fire giant, they might have a challenge rating of 9. Look at the list of example monsters and ask yourself which monster makes the best comparison to yours. Then assign your creature that monster's challenge rating. + +### Alternatively, What Challenge Rating Do You Need? + +You might also want to choose a challenge rating based on the level of the characters, using the Equivalent Character Level column of the table. If you want an encounter with four monsters who are roughly equal in power to four characters, this column lets you figure out those monsters' statistics. It also helps you build NPCs—knights, mages, thieves, and so forth—intended to be a match for characters of a particular level. + +### Step 2: Write Down the Baseline Statistics + +Once you've determined a challenge rating for your monster, write down their statistics. You might jot them on an index card, in a text editor on your computer, or wherever you keep notes for your adventures and campaigns. You might end up customizing those statistics, though, so be ready to change them. + +### Step 3: Determine Proficient Abilities + +Next, determine which abilities—Strength, Dexterity, Constitution, Intelligence, Wisdom, or Charisma—a monster is proficient in, using the Proficient Ability Bonus column on the table. This sets up the bonus a monster has when using any ability with which they're proficient, and is largely based on the monster's story. A big, beefy monster might be proficient in skills or saving throws involving Strength and Constitution. A mastermind monster might be proficient in Wisdom- and Intelligence-based skills and saving throws. A fast monster might be proficient in Dexterity (Acrobatics) checks and Dexterity saving throws, while an otherworldly monster might be proficient in Charisma-based skills and saves. + +The bonus indicated in the table is what the monster uses to make saving throws and ability checks with those proficient abilities. Just remember that the number on the table already includes a monster's proficiency bonus, in addition to their ability score modifier. + +### Step 4: Determine Remaining Abilities + +Next, you can determine the modifier (either a penalty or a bonus) that a monster uses for their nonproficient abilities. This is for all the ability checks and saving throws a monster isn't great at, and can be determined by asking yourself how strong a monster feels in those abilities. The bonus can range anywhere from −2 to +4, and is independent of a monster's challenge rating. Even a high-challenge monster might have a lousy Dexterity saving throw. When in doubt, or to speed things up, use a modifier of +0 for these nonproficient abilities. You can always change this during the game if a higher or lower number makes sense. + +A creature's Dexterity modifier is also used to determine their initiative modifier. Or you can skip your improvised creature's initiative roll and use a static initiative of 12. + +### You're Ready to Go + +At this point, you have enough information on hand to run your monster in a game, with little else needed. However, you can also continue with a few more quick steps to further customize your monster, making them more distinct. + +## Monster Statistics by Challenge Rating + +| CR | Eqv Char Lvl | AC/DC | HP | Prof Bonus | Damage per Round | # Attacks | Damage | Example Monster | +| --- | ------------ | ----- | ------------- | ---------- | ---------------- | --------- | -------------- | ------------------------------------------- | +| 0 | < 1 | 10 | 3 (2-4) | +2 | 2 | 1 | 2 (1d4) | Commoner, rat, spider | +| 1/8 | < 1 | 11 | 9 (7-11) | +3 | 3 | 1 | 4 (1d6 + 1) | Bandit, cultist, giant rat | +| 1/4 | 1 | 11 | 13 (10-16) | +3 | 5 | 1 | 5 (1d6 + 2) | Acolyte, skeleton, wolf | +| 1/2 | 2 | 12 | 22 (17-28) | +4 | 8 | 2 | 4 (1d4 + 2) | Black bear, scout, shadow | +| 1 | 3 | 12 | 33 (25-41) | +5 | 12 | 2 | 6 (1d8 + 2) | Dire wolf, specter, spy | +| 2 | 5 | 13 | 45 (34-56) | +5 | 17 | 2 | 9 (2d6 + 2) | Ghast, ogre, priest | +| 3 | 7 | 13 | 65 (49-81) | +5 | 23 | 2 | 12 (2d8 + 3) | Knight, mummy, werewolf | +| 4 | 9 | 14 | 84 (64-106) | +6 | 28 | 2 | 14 (3d8 + 1) | Ettin, ghost | +| 5 | 10 | 15 | 95 (71-119) | +7 | 35 | 3 | 12 (3d6 + 2) | Elemental, gladiator, vampire spawn | +| 6 | 11 | 15 | 112 (84-140) | +7 | 41 | 3 | 14 (3d6 + 4) | Mage, medusa, wyvern | +| 7 | 12 | 15 | 130 (98-162) | +7 | 47 | 3 | 16 (3d8 + 3) | Stone giant, young black dragon | +| 8 | 13 | 15 | 136 (102-170) | +7 | 53 | 3 | 18 (3d10 + 2) | Assassin, frost giant | +| 9 | 15 | 16 | 145 (109-181) | +8 | 59 | 3 | 19 (3d10 + 3) | Bone devil, fire giant, young blue dragon | +| 10 | 16 | 17 | 155 (116-194) | +9 | 65 | 4 | 16 (3d8 + 3) | Stone golem, young red dragon | +| 11 | 17 | 17 | 165 (124-206) | +9 | 71 | 4 | 18 (3d10 + 2) | Djinni, efreeti, horned devil | +| 12 | 18 | 17 | 175 (131-219) | +9 | 77 | 4 | 19 (3d10 + 3) | Archmage, erinyes | +| 13 | 19 | 18 | 184 (138-230) | +10 | 83 | 4 | 21 (4d8 + 3) | Adult white dragon, storm giant, vampire | +| 14 | 20 | 19 | 196 (147-245) | +11 | 89 | 4 | 22 (4d10) | Adult black dragon, ice devil | +| 15 | > 20 | 19 | 210 (158-263) | +11 | 95 | 5 | 19 (3d10 + 3) | Adult green dragon, mummy lord, purple worm | +| 16 | > 20 | 19 | 229 (172-286) | +11 | 101 | 5 | 21 (4d8 + 3) | Adult blue dragon, iron golem, marilith | +| 17 | > 20 | 20 | 246 (185-308) | +12 | 107 | 5 | 22 (3d12 + 3) | Adult red dragon | +| 18 | > 20 | 21 | 266 (200-333) | +13 | 113 | 5 | 23 (4d10 + 1) | Demilich | +| 19 | > 20 | 21 | 285 (214-356) | +13 | 119 | 5 | 24 (4d10 + 2) | Balor | +| 20 | > 20 | 21 | 300 (225-375) | +13 | 132 | 5 | 26 (4d12) | Ancient white dragon, pit fiend | +| 21 | > 20 | 22 | 325 (244-406) | +14 | 150 | 5 | 30 (4d12 + 4) | Ancient black dragon, lich, solar | +| 22 | > 20 | 23 | 350 (263-438) | +15 | 168 | 5 | 34 (4d12 + 8) | Ancient green dragon | +| 23 | > 20 | 23 | 375 (281-469) | +15 | 186 | 5 | 37 (6d10 + 4) | Ancient blue dragon, kraken | +| 24 | > 20 | 23 | 400 (300-500) | +15 | 204 | 5 | 41 (6d10 + 8) | Ancient red dragon | +| 25 | > 20 | 24 | 430 (323-538) | +16 | 222 | 5 | 44 (6d10 + 11) | | +| 26 | > 20 | 25 | 460 (345-575) | +17 | 240 | 5 | 48 (6d10 + 15) | | +| 27 | > 20 | 25 | 490 (368-613) | +17 | 258 | 5 | 52 (6d10 + 19) | | +| 28 | > 20 | 25 | 540 (405-675) | +17 | 276 | 5 | 55 (6d10 + 22) | | +| 29 | > 20 | 26 | 600 (450-750) | +18 | 294 | 5 | 59 (6d10 + 26) | | +| 30 | > 20 | 27 | 666 (500-833) | +19 | 312 | 5 | 62 (6d10 + 29) | Tarrasque | + +### Optional Step: Consider Armor Class + +Though the Monster Statistics by Challenge Rating table offers a value for Armor Class that increases with challenge rating, you can modify a monster's Armor Class further based on their story. A big beefy titan set up as a CR 16 monster might still be easy to hit—maybe with an Armor Class of 14. + +It's easiest to think of Armor Class on a scale of 10 to 20, with 10 being the equivalent of an unarmored opponent with no Dexterity bonus, and 20 being an opponent wearing plate armor with a shield. (Armor Class can go above 20 or below 10, though.) + +Keep in mind that missing an opponent isn't much fun for a player. Lower-AC opponents, even those with more hit points, are often more fun to fight than high-AC opponents with fewer hit points. + +### Optional Step: Customize Attacks + +The table includes a recommended number of attacks for a monster, an attack bonus, and the amount of damage those attacks should deal. If desired, tailor this damage to fit the monster's story. Choose a creature's damage type, such as fire for a flaming Greatsword attack, or necrotic for a Death Blast attack. You can also mix up multiple damage types, so that a CR 10 hell knight might have a Longsword attack dealing both slashing and fire damage. + +Consider the ranged attacks a monster might have as well. You can use the same attack bonus, number of attacks, and damage. Or you could give a creature weaker ranged attacks (attacking once instead of twice, for example). Depending on the creature's story, the flavor of those attacks might be physical (hurling javelins or rocks) or arcane (firing energy blasts). + +To further customize a monster, you can divide up their total damage per round into a different number of attacks than indicated on the table, if that makes sense for the monster's story. (As noted above, for attacks that target two or more opponents, use half the indicated damage.) + +### Optional Step: Further Modify Statistics + +Depending on the story of your monster, you can make general adjustments to their baseline statistics however you see fit. For example, you might lower a monster's hit points and increase the damage they deal to create a dangerous foe who drops out of the fight quickly. However, always consider whether such changes make a combat encounter more fun to play. It might make sense to create a monster with high hit points and a higher Armor Class who deals less damage, thinking that those two things balance out. But fighting such a monster can easily become a slog. Likewise, a monster with significantly fewer hit points that deals high damage might end up being inadvertently deadly if too many characters roll low on attacks, or could feel pointless if the monster is killed too quickly. + +### Optional Step: Add Monster Types and Features + +To further flesh out your monster, add monster types and features found for monsters similar to the one you're building such as extra weapon damage types, breath weapons, auras, damage shields, and other traits and features that better define your monster in the story and situation. + +## Using the Table with Published Monsters + +While the Monster Statistics by Challenge Rating table is intended to let you build monsters from scratch, it can easily be used as a reference to better understand how a published monster might act in combat. If a published CR 4 monster has 30 hit points but deals 35 damage per round, you can see from the table that their hit points are low but their damage is high compared to the creature's baseline challenge rating. Such a monster hits hard for their challenge rating, but when they're hit in turn, they go down fast. diff --git a/markdown_obsidian_5e_monster_builder/General-Use Combat Stat Blocks.md b/markdown_obsidian_5e_monster_builder/General-Use Combat Stat Blocks.md new file mode 100644 index 0000000..3681c0d --- /dev/null +++ b/markdown_obsidian_5e_monster_builder/General-Use Combat Stat Blocks.md @@ -0,0 +1,221 @@ +# General-Use Combat Stat Blocks + +This section contains several general-use stat blocks specifically built for reskinning into whatever monsters you need for your combat encounters. + +Each stat block uses d8 Hit Dice, but can be used for creatures in a range of sizes. Each focuses on a primary ability score, but you can shift abilities as needed to better fit the story of the creature the stat block represents. Swap Strength and Intelligence to run a spellcaster instead of a melee combatant, or switch Dexterity and Strength to turn a shifty rogue into a powerful fighter. + +A stat block's attack lets you choose the most appropriate type of damage for a creature, and you can easily increase an attack's reach or range. Ranges for attacks are given as a single number indicating maximum range, but you can modify that range or replace it with the normal and long range of a specific weapon as you wish. + +The spread of challenge ratings of these stat blocks provides options for weak, moderate, and strong foes at any character level. Each stat block description includes comparisons between the stat block and characters of different levels, providing guidelines for when a stat block can serve as a boss, an elite foe (suitable for two characters against one creature), or a one-on-one combatant, or in larger groups of two to four monsters per character. All these setups are geared toward a hard encounter, but one that the characters should definitely be able to win. + +## Minion (CR 1/8) + +The low-CR minions represented by this stat block might include ravenous rats, weak skeletons, shifty bandits, or low-ranking cultists. A minion can serve as a one-on-one combatant against 1st-level characters, or can be deployed in large groups at 4th level or above. This stat block focuses on Dexterity as its primary ability. + +**MINION** + +Small or Medium Creature + +**Armor Class** 11 + +**Hit Points** 9 (2d8) + +**Speed** 30 ft. + +| STR | DEX | CON | INT | WIS | CHA | +| ------- | ------- | ------- | ------- | ------- | ------- | +| 10 (+0) | 12 (+1) | 10 (+0) | 10 (+0) | 12 (+1) | 10 (+0) | + +**Senses** passive Perception 11 + +**Challenge** 1/8 (25 XP) **Proficiency Bonus** +2 + +**ACTIONS** + +***Attack.*** *Melee or Ranged Weapon Attack:* +3 to hit, reach 5 ft. or range 60 ft., one target. *Hit:* 4 (1d6 + 1) damage. + +## Soldier (CR 1/2) + +Representing seasoned guards, trained soldiers, powerful bandits, murderous humanoids, or armed undead, the soldier stat block works well as a boss at 1st level, an elite foe for two 2nd-level characters, or one-on-one combatants at 4th level, or in large groups at 6th level and above. Strength is this stat block's primary ability. + +**SOLDIER** + +Medium Creature + +**Armor Class** 12 (leather armor or natural armor) + +**Hit Points** 22 (4d8 + 4) + +**Speed** 30 ft. + +| STR | DEX | CON | INT | WIS | CHA | +| ------- | ------- | ------- | ------- | ------- | ------- | +| 14 (+2) | 12 (+1) | 12 (+1) | 10 (+0) | 10 (+0) | 10 (+0) | + +**Senses** passive Perception 10 + +**Challenge** 1/2 (100 XP) **Proficiency Bonus** +2 + +**ACTIONS** + +***Attack.*** *Melee or Ranged Weapon Attack:* +4 to hit, reach 5 ft. or range 60 ft., one target. *Hit:* 8 (1d12 + 2) damage. + +## Brute (CR 2) + +Heavy-hitting veterans, capable bodyguards, low-ranking demons or devils, dangerous monsters in the wild, and powerful humanoids can all be represented by this stat block. A brute can serve as a boss against 2nd-level characters, an elite foe against two 4th-level characters, or a one-on-one opponent at 5th level, or in large groups at 10th level. This stat block relies on Strength. + +**BRUTE** + +Medium or Large Creature + +**Armor Class** 13 (studded leather or natural armor) + +**Hit Points** 45 (7d8 + 14) + +**Speed** 30 ft. + +| STR | DEX | CON | INT | WIS | CHA | +| ------- | ------- | ------- | ------- | ------- | ------ | +| 16 (+3) | 12 (+1) | 14 (+2) | 10 (+0) | 10 (+0) | 8 (−1) | + +**Saving Throws** Con +4 + +**Skills** Athletics +5 + +**Senses** passive Perception 10 + +**Challenge** 2 (450 XP) **Proficiency Bonus** +2 + +**ACTIONS** + +***Multiattack.*** The brute makes two attacks. + +***Attack.*** *Melee or Ranged Weapon Attack:* +5 to hit, reach 5 ft. or range 60 ft., one target. *Hit:* 9 (1d12 + 3) damage. + +## Specialist (CR 4) + +This stat block can represent spies, assassins, hunters, and trained elite forces. The specialist serves as a boss for 4th-level characters, an elite opponent versus two 5th-level characters, or a one-on-one combatant for 10th-level characters, or in large groups against 16th-level characters. Dexterity is this stat block's primary ability. + +**SPECIALIST** + +Medium Creature + +**Armor Class** 14 + +**Hit Points** 84 (13d8 + 26) + +**Speed** 30 ft. + +| STR | DEX | CON | INT | WIS | CHA | +| ------- | ------- | ------- | ------- | ------- | ------- | +| 12 (+1) | 18 (+4) | 14 (+2) | 10 (+0) | 14 (+2) | 12 (+1) | + +**Saving Throws** Dex +6, Wis +4 + +**Skills** Acrobatics +6, Perception +4, Stealth +6 + +**Senses** passive Perception 14 + +**Challenge** 4 (1,100 XP) **Proficiency Bonus** +2 + +**ACTIONS** + +***Multiattack.*** The specialist makes two attacks. + +***Attack.*** *Melee or Ranged Weapon Attack:* +6 to hit, reach 5 ft. or range 60 ft., one target. *Hit:* 14 (3d6 + 4) damage. + +## Myrmidon (CR 7) + +Powerful elite bodyguards, high priests, wizards, warlocks, sorcerers, demons, and devils can all be represented by this stat block. A myrmidon can serve as a boss monster for 5th-level characters, an elite combatant against two characters of 7th level, or a one-on-one combatant against 14th-level characters, or in large groups against 20th-level characters. This stat block focuses on Intelligence. + +**MYRMIDON** + +Medium or Large creature + +**Armor Class** 15 (chain shirt or natural armor) + +**Hit Points** 130 (20d8 + 40) + +**Speed** 30 ft. + +| STR | DEX | CON | INT | WIS | CHA | +| ------- | ------- | ------- | ------- | ------- | ------- | +| 10 (+0) | 14 (+2) | 14 (+2) | 18 (+4) | 14 (+2) | 10 (+0) | + +**Saving Throws** Dex +5, Wis +5 + +**Skills** Perception +5 + +**Senses** passive Perception 15 + +**Challenge** 7 (2,900 XP) **Proficiency Bonus** +3 + +**ACTIONS** + +***Multiattack.*** The myrmidon makes three attacks. + +***Attack.*** *Melee or Ranged Weapon Attack:* +7 to hit, reach 5 ft. or range 60 ft., one target. *Hit:* 17 (3d8 + 4) damage. + +## Sentinel (CR 11) + +This stat block is a good fit for strong, often-otherworldly creatures such as demons, devils, impressive beings of the Outer Planes, guardian constructs, or powerful undead. The sentinel can serve as a boss for 7th-level characters, an elite foe against two 12th-level characters, or can stand one-on-one against 16th-level characters. This stat block focuses on Strength. + +**SENTINEL** + +Medium, Large, or Huge Creature + +**Armor Class** 17 (natural armor or magical protection) + +**Hit Points** 165 (22d8 + 66) + +**Speed** 30 ft. + +| STR | DEX | CON | INT | WIS | CHA | +| ------- | ------- | ------- | ------- | ------- | ------- | +| 20 (+5) | 16 (+3) | 16 (+3) | 10 (+0) | 14 (+2) | 10 (+0) | + +**Saving Throws** Str +9, Dex +7 + +**Skills** Perception +6 + +**Senses** passive Perception 16 + +**Challenge** 11 (7,200 XP) **Proficiency Bonus** +4 + +**ACTIONS** + +***Multiattack.*** The sentinel makes four attacks. + +***Attack.*** *Melee or Ranged Weapon Attack:* +9 to hit, reach 5 ft. or range 60 ft., one target. *Hit:* 18 (3d8 + 5) damage. + +## Champion (CR 15) + +Representing greater demons, devils, vampires, liches, or powerful spellcasters, the champion serves as a boss for 11th-level characters, an elite foe for two 15th-level characters, or a one-on-one challenge against 17th-level characters. This stat block focuses on Charisma. + +**CHAMPION** + +Medium, Large, or Huge Creature + +**Armor Class** 19 (natural armor or magical protection) + +**Hit Points** 212 (25d8 + 100) + +**Speed** 30 ft. + +| STR | DEX | CON | INT | WIS | CHA | +| ------- | ------- | ------- | ------- | ------- | ------- | +| 10 (+0) | 12 (+1) | 18 (+4) | 12 (+1) | 16 (+3) | 22 (+6) | + +**Saving Throws** Wis +8, Cha +11 + +**Skills** Perception +8 + +**Senses** passive Perception 18 + +**Challenge** 15 (13,000 XP) **Proficiency Bonus** +5 + +**ACTIONS** + +***Multiattack.*** The champion makes four attacks. + +***Attack.*** *Melee or Ranged Weapon Attack:* +11 to hit, reach 5 ft. or range 60 ft., one target. *Hit:* 24 (4d8 + 6) damage. diff --git a/markdown_obsidian_5e_monster_builder/Lazy Tricks for Running Monsters.md b/markdown_obsidian_5e_monster_builder/Lazy Tricks for Running Monsters.md new file mode 100644 index 0000000..ffffdff --- /dev/null +++ b/markdown_obsidian_5e_monster_builder/Lazy Tricks for Running Monsters.md @@ -0,0 +1,80 @@ +# Lazy Tricks for Running Monsters + +This section presents a number of tricks and tips that can help you more easily prepare and run monsters during your games. We call them "lazy tricks" not because they're about cheating or doing less work overall, but because they're meant to let you quickly accomplish things when your game is in progress and you don't have a lot of extra time. + +## Quick Monster Statistics + +"Building a Quick Monster" provides great guidelines for creating a foe for your game in just a few minutes. But you can come up with an even quicker set of monster statistics using the following steps. + +First, choose a challenge rating for your monster, based on their perceived power in the encounter. When needed, compare your monster to existing monsters to find a suitable challenge rating. Then use the following guidelines to craft their baseline statistics: + +* Armor Class = 12 + 1/2 CR +* Hit points = (15 × CR) + 15 +* Proficient saving throws and skills = 4 + 1/2 CR +* Nonproficient saving throws and abilities = −2 to +2, based on the monster's story +* Attack bonus = 4 + 1/2 CR +* DC for saving throws = 12 + 1/2 CR +* Total damage per round = (7 × CR) + 5 + +Start your monster out with one attack, then add one additional attack at CR 2, CR 7, CR 11, and CR 15. Split the total damage noted above across all attacks. + +With a solid set of combat statistics at hand, you can then use narrative descriptions to make your monster unique, interesting, and evocative. + +## Ten Useful Monster Features + +Give any custom monster impactful features and attacks that make sense for their place in the game. When a monster feature deals damage, choose a damage type appropriate to the creature's physiology, theme, or story. A creature channeling magical power might deal acid, cold, fire, lightning, force, poison, psychic, necrotic, radiant, or thunder damage. A creature making use of spines, spikes, or projectiles might deal bludgeoning, piercing, or slashing damage. + +***Damaging Blast.*** This creature has one or more single-target ranged attacks using the attack bonus and damage calculated above, and which deal damage of an appropriate type. + +***Damage Reflection.*** Whenever a creature within 5 feet of this creature hits them with a melee attack, the attacker takes damage in return of a type appropriate to the creature. The damage dealt is equal to half the damage of one of this creature's attacks. If you give a creature this feature, give them one less attack than normal. + +***Misty Step.*** As a bonus action, this creature can teleport up to 30 feet to an unoccupied space they can see. + +***Knockdown.*** When this creature hits a target with a melee attack, the target must succeed on a Strength saving throw or be knocked prone. + +***Restraining Grab.*** When this creature hits a target with a melee attack, the target is grappled (escape DC based on this creature's Strength or Dexterity modifier). While grappled, the target is restrained. + +***Damaging Burst.*** As an action, this creature can create a burst of energy, magic, spines, or some other effect in a 10-foot-radius sphere, either around themself or at a point within 120 feet. Each creature in that area must make a Dexterity, Constitution, or Wisdom saving throw (your choice, based on the type of burst). On a failure, a target takes damage of an appropriate type equal to half this creature's total damage per round. On a success, a target takes half as much damage. + +***Cunning Action***. On each of their turns, this creature can use a bonus action to take the Dash, Disengage, or Hide action. + +***Damaging Aura.*** Each creature who starts their turn within 10 feet of this creature takes damage of a type appropriate to the creature. The damage dealt is equal to half the damage of one of this creature's attacks. If you give a creature this feature, give them one less attack than normal. + +***Energy Weapons.*** The creature's weapon attacks deal extra damage of an appropriate type. You can add this damage on top of the creature's regular damage output to give them a combat boost, or you can replace some of the creature's normal weapon damage with this energy damage. + +***Damage Transference.*** When this creature takes damage, they can transfer half or all of that damage (your choice) to a willing creature within 30 or 60 feet of them. This feature is particularly good for boss monsters. + +## Using Averages + +By default, 5e monster stat blocks calculate the average damage for any attack's dice expression, as with "13 (2d8 + 4) bludgeoning damage" for an ogre's Greatclub attack. Using average damage for a monster's attacks is one of the best ways to speed up combat. + +Sometimes, though, you need to roll damage for effects that aren't in a stat block. When you do, you can use the following table to quickly look up the average value of various dice equations. Simply find the number of dice in the leftmost column, then go across to the appropriate die type. As can be seen in the table, you can add up averages to get an average value for higher numbers of dice—for example, adding the average of 2d10 and 6d10 to get the average of 8d10. You can use this approach to find the average for rolling more than twelve dice, so that if you need an average for 24d10, you can simply look at the 12d10 average and double it. + +| # of dice | d4 | d6 | d8 | d10 | d12 | +| --------- | -- | -- | -- | --- | --- | +| 1 | 2 | 3 | 4 | 5 | 6 | +| 2 | 5 | 7 | 9 | 11 | 13 | +| 3 | 7 | 10 | 13 | 16 | 19 | +| 4 | 10 | 14 | 18 | 22 | 26 | +| 5 | 12 | 17 | 22 | 27 | 32 | +| 6 | 15 | 21 | 27 | 33 | 39 | +| 7 | 17 | 24 | 31 | 38 | 45 | +| 8 | 20 | 28 | 36 | 44 | 52 | +| 9 | 22 | 31 | 40 | 49 | 58 | +| 10 | 25 | 35 | 45 | 55 | 65 | +| 11 | 27 | 38 | 49 | 60 | 71 | +| 12 | 30 | 42 | 54 | 66 | 78 | + +You can also compute averages for dice expressions with simple equations you can keep in your head. The average of two dice is the maximum value of one of those dice + 1, so that the average of 2d12 is 13. Then double that number for multiples of two, so that the average of 2d8 is 9, the average of 4d8 is 18, and so forth. Likewise, the average of a single die is half the size of the die, so add that number to a two-dice average to get odd numbers. For example, the average of 4d6 is 14, so the average of 5d6 is 17. (The average of one die is actually half the size of the die plus 0.5, which is why the average of two dice is the maximum value of the die +1.) + +## Other Lazy Monster Tricks + +Once you're in the middle of an encounter, you can make use of a number of other quick tricks to make running monsters easier, with more flexibility and greater speed. Try any of the following options at your table, and make use of any trick that helps your game: + +* Use fixed initiative for monsters equal to 10 + each monster's Dexterity bonus. Even faster? Just have all monsters act on initiative count 12. +* Reduce hit points on the fly to allow monsters to drop or surrender more quickly, or increase a monster's number of attacks or damage if the characters are having too easy a time. +* Have foes flee or surrender when it makes sense to move the game forward. +* Have constructs and undead be destroyed when the creature controlling them dies. +* Run multiple waves of monsters for big battles. + +Include creatures designed to eat "save or suck" attacks such as *banishment* or *polymorph*. diff --git a/markdown_obsidian_5e_monster_builder/Lightning Rods.md b/markdown_obsidian_5e_monster_builder/Lightning Rods.md new file mode 100644 index 0000000..7583533 --- /dev/null +++ b/markdown_obsidian_5e_monster_builder/Lightning Rods.md @@ -0,0 +1,37 @@ +# Lightning Rods + +When characters rise above 4th level, their ability to deal with powerful foes makes a huge jump. But challenging characters of 5th level and higher isn't just about making things hard. It's easy for GMs to fall into the trap of thwarting the coolest things the heroes can do, by giving monsters immunities to certain conditions, increasing their hit points to offset the high damage a character can deal, or running monsters with tactics clearly built to bypass the characters' best attacks. But thwarting the characters' best features can be frustrating to the players, for obvious reasons. + +So instead of shutting down the characters, build your encounters around monsters specifically designed to show off—by eating up—the characters' cool new capabilities as they rise in level. You can think of these monsters as "lightning rods"—intended victims ready to take the full effect of a character's most powerful attacks and features. + +## Watch What the Characters Bring + +When running encounters challenging enough for the characters to use their top-tier features and attacks, pay attention to what they do. Does the wizard blast enemies with high-damage spells like *fireball*? Does the cleric make liberal use of Turn Undead when faced with those monsters? Do spells like *polymorph* or *banishment* come into play to get rid of bosses and elite threats? + +Note which features the players enjoy having their characters use, and think about how to build for those features in your next big battle. If you aren't sure what features the characters have, ask the players. Each time the characters level, start the session by having the players talk about what new attacks, spells, and special abilities they've picked up. Then build encounters to show off those features, not avoid them. + +For example, at higher levels, a monk gains the ability to stun creatures with a single strike, effectively taking a monster out of the fight for a round or more. So when you know a player's monk has this feature, add monsters into big battles that you specifically want the monk to stun. A smack-talking spellcaster with a low Constitution saving throw, and who only a monk can reach with their enhanced movement, is just begging to have a hero leap up and punch them in the face. + +### Run Hordes for Area Effects + +At 5th level and above, characters get access to spells and class features with large areas of effect, including *hypnotic pattern*, *fireball*, and Destroy Undead. When you know the characters have such features at their disposal, add hordes of low-CR creatures who can charge at them, all grouped up and ready to be blasted away. + +Ignore the fact that it might be more tactically appropriate for such creatures to spread out, instead thinking of yourself as the director of an action movie. What's the coolest outcome for the scene—a group of careful zombies staying 20 feet away from one another, or a huge mob of undead in perfect position to be turned to ash or blown to pieces with a well-placed *fireball*? + +### Expendable Lieutenants + +Many legendary monsters can use Legendary Resistance to avoid being taken out with a single casting of *banishment* or *polymorph*, but their lieutenants have no such advantage. When the characters have access to such spells, add powerful monsters into your encounters specifically designed to be banished, polymorphed, or otherwise controlled or incapacitated. Monsters with the bruiser or defender role are often perfect targets for such spells (see "Monster Roles"), especially those with terrible Wisdom and Charisma saving throws. + +Keep in mind, though, that if you add one or two hard-hitting foes to an encounter who don't get controlled, things can go south for the characters quickly. + +### Fragile Damage-Dealers + +For stunning-strike monks, hard-hitting paladins, sharpshooter rangers, or great-weapon fighters, fragile foes who deal a ton of damage make fantastic targets. These are creatures with a low Armor Class, low hit points, and a low Constitution save, but who are deadly until taken out. (Creatures with the artillery or skirmisher role are great choices; see "Monster Roles.") It's always rewarding for a character to reach such a foe and cut them down with a single powerful attack. + +### Play to the Characters' Strengths + +Players and their characters love to outsmart their foes. You can help with this by placing artillery in locations that the foes assume will be hard to reach, but which you know present just a minor challenge to characters who can climb, fly, or short-range teleport. Likewise, add hidden ambushers when you know that some of the characters will be able to easily perceive them. These sorts of setups let the characters show off, and reward the players for choosing those specific tactical capabilities. + +## Telegraphing Lightning Rods + +Less tactically minded players might need help, or even direct advice, to recognize the danger of not dealing with lightning rods. If you intend for a fire giant bodyguard of the hobgoblin king to be banished and the characters don't pick up on that, they might be in trouble when the giant starts pounding them into the ground like tent pegs. If the characters are focused on the boss while getting pelted by the fiery rays of flameskulls just begging to be stunned, blasted, or turned, be prepared to project or reveal outright to the players the dangers their characters face, and how they might deal with them. diff --git a/markdown_obsidian_5e_monster_builder/Monster Combinations for a Hard Challenge.md b/markdown_obsidian_5e_monster_builder/Monster Combinations for a Hard Challenge.md new file mode 100644 index 0000000..6638cb4 --- /dev/null +++ b/markdown_obsidian_5e_monster_builder/Monster Combinations for a Hard Challenge.md @@ -0,0 +1,119 @@ +# Monster Combinations for a Hard Challenge + +When GMs design encounters, we often have a concept that includes the number of foes the characters will face. An encounter might feature a squad of four monsters going against the characters one-to-one, or perhaps a larger force of six or eight swarming the heroes. Or maybe we want a stronger creature, acting as a boss or captain, with only a few other creatures to back them up. And, of course, it's always fun for characters to face a single dangerous foe. + +This section provides guidelines for combining creatures of different challenge ratings to enable these various concepts. Simply pick your concept, consult the appropriate table for the number of characters in your game, look up their average character level, and you have the monster challenge ratings you need to build different types of encounters and boss scenarios. You can then use the other tips in this document to make encounters unique. + +## Hard Challenge Level Monster Combinations + +The challenge ratings in the tables are geared toward creating encounters that are a hard challenge. The encounter concepts are set up along specific lines, reflecting some of the most common—and fun—combinations of foes. + +***One Monster.*** The leftmost column notes the challenge rating expected for a solo creature whose statistics and capabilities can build a hard challenge. Running an encounter for a single solo monster is always tricky, so make sure an intended solo creature is up to the challenge. + +***Two, Four, Six, Eight, or Twelve Monsters.*** The other columns under Monsters of the Same CR allow you to challenge the characters with a number of creatures of the same CR, and usually of the same type. For example, a hard challenge for four 4th-level characters could constitute six scouts (CR 1/2) or two ogres (CR 2). + +Using creatures of the same type allows you to quickly and simply tell a story as the characters find themselves in an ogre market cavern, a caravan under attack, the room with mimics, and so forth. Using the same monsters also lets you focus on a single stat block for ease of play. + +***One Boss + X Monsters.*** Encounter concepts often suggest a group of creatures led by a more formidable leader. Each of the Boss Scenarios columns pairs up one boss and a number of subordinates of lower challenge rating. For example, a group of four 3rd-level characters could face one boss of CR 2 and two subordinates of CR 1/2-perhaps an ogre explorer and the two rust monsters they've befriended. + +The rightmost column under Boss Scenarios builds encounters with eight minions, two lieutenants of a higher challenge rating, and one boss whose CR is higher again. + +### Using the Tables + +To build encounters using the tables, follow these steps: + +* Select the appropriate table, based on the number of characters in the party—four, five, or six. +* In the leftmost column of the selected table, find the row containing the average character level for all the characters. (To find the average, add up all the characters' levels, then divide by the number of characters and round down.) +* Follow that row to the column containing the encounter concept you wish to use. For example, to create an encounter with one boss and three lesser monsters, you'd go to the 1 Boss + 3 Monsters column. +* The entry you cross-referenced notes the challenge ratings of the creature or creatures in your encounter. If a multiplier is indicated, that's the number of monsters for the preceding CR. For example, wanting to challenge four 3rd-level characters with the encounter concept of one boss and three monsters yields an entry of "2 + 1/4 (×3)." This indicates that you want one CR 2 creature acting as the boss, and three CR 1/4 creatures acting as subordinates. +* Choose your monsters! If you're building a quick encounter, the recommendations in "Monsters by Adventure Location" are a good starting point. + +### Scaling Encounters + +Each of the tables is intended to build a hard encounter. However, you can easily build encounters with other challenge levels in mind by adding or subtracting a modifier to the party's average character level: + +* For a deadly challenge: +1 or +2 +* For a medium challenge: −2 +* For an easy challenge: −4 + +For example, when building an encounter for four 10th-level characters, you could use the row for 8th-level characters to create a medium challenge. + +In all cases, be cautious with scaling. Encounters of certain types and at certain levels will be harder or easier than the approximation would indicate. Always be prepared to adjust encounters on the fly. + +## Four Characters (Hard Challenges) + +| | Monsters of the Same CR | | | | | | Boss Scenarios | | | | +| --------------- | ----------------------- | --- | --- | --- | --- | --- | ------------------- | ------------------- | --------------------- | ---------------------------------- | +| Character Level | 1 | 2 | 4 | 6 | 8 | 12 | 1 Boss + 2 Monsters | 1 Boss + 3 Monsters | 1 Boss + 4 Underlings | 1 Boss + 2 Lieutenants + 8 Minions | +| 1 | 1 | 1/2 | 1/8 | 1/8 | 0 | - | 1/2 + 1/8 (x2) | 1/2 + 1/8 (x3) | 1/4 + 1/8 (x4) | - | +| 2 | 3 | 1 | 1/2 | 1/4 | 1/8 | 0 | 1 + 1/4 (x2) | 1 + 1/4 (x3) | 1 + 1/8 (x4) | 1/2 + 1/4 (x2) + 0 (x8) | +| 3 | 4 | 2 | 1/2 | 1/2 | 1/4 | 1/8 | 2 + 1/2 (x2) | 2 + 1/4 (x3) | 2 + 1/4 (x4) | 1 + 1/4 (x2) + 0 (x8) | +| 4 | 5 | 2 | 1 | 1/2 | 1/2 | 1/4 | 2 + 1 (x2) | 2 + 1/2 (x3) | 3 + 1/4 (x4) | 2 + 1/4 (x2) + 0 (x8) | +| 5 | 8 | 4 | 2 | 1 | 1 | 1/2 | 4 + 2 (x2) | 4 + 1 (x3) | 4 + 1 (x4) | 3 + 1/2 (x2) + 1/4 (x8) | +| 6 | 9 | 5 | 3 | 2 | 1 | 1/2 | 5 + 2 (x2) | 4 + 2 (x3) | 5 + 1 (x4) | 4 + 1 (x2) + 1/4 (x8) | +| 7 | 10 | 6 | 3 | 2 | 1 | 1/2 | 5 + 3 (x2) | 5 + 2 (x3) | 6 + 1 (x4) | 4 + 1 (x2) + 1/2 (x8) | +| 8 | 12 | 7 | 3 | 3 | 2 | 1 | 7 + 3 (x2) | 5 + 3 (x3) | 6 + 2 (x4) | 4 + 2 (x2) + 1/2 (x8) | +| 9 | 12 | 8 | 4 | 3 | 2 | 1 | 7 + 4 (x2) | 6 + 3 (x3) | 6 + 3 (x4) | 5 + 2 (x2) + 1/2 (x8) | +| 10 | 14 | 8 | 4 | 3 | 2 | 2 | 7 + 5 (x2) | 6 + 4 (x3) | 7 + 3 (x4) | 5 + 2 (x2) + 1 (x8) | +| 11 | 16 | 9 | 5 | 4 | 3 | 2 | 8 + 5 (x2) | 6 + 5 (x3) | 9 + 3 (x4) | 6 + 3 (x2) + 1 (x8) | +| 12 | 18 | 11 | 6 | 5 | 4 | 2 | 9 + 7 (x2) | 8 + 5 (x3) | 8 + 5 (x4) | 7 + 4 (x2) + 1 (x8) | +| 13 | 19 | 12 | 7 | 5 | 4 | 3 | 11 + 7 (x2) | 10 + 6 (x3) | 10 + 5 (x4) | 8 + 4 (x2) + 2 (x8) | +| 14 | 20 | 13 | 8 | 6 | 4 | 3 | 11 + 8 (x2) | 10 + 7 (x3) | 10 + 6 (x4) | 8 + 5 (x2) + 2 (x8) | +| 15 | 21 | 14 | 8 | 7 | 5 | 4 | 12 + 9 (x2) | 10 + 8 (x3) | 10 + 7 (x4) | 9 + 5 (x2) + 2 (x8) | +| 16 | 22 | 15 | 9 | 7 | 5 | 4 | 12 + 10 (x2) | 11 + 8 (x3) | 11 + 7 (x4) | 10 + 6 (x2) + 3 (x8) | +| 17 | 24 | 16 | 10 | 8 | 5 | 5 | 14 + 10 (x2) | 11 + 9 (x3) | 11 + 8 (x4) | 12 + 6 (x2) + 3 (x8) | +| 18 | 26 | 17 | 11 | 8 | 6 | 5 | 14 + 12 (x2) | 12 + 10 (x3) | 12 + 9 (x4) | 13 + 7 (x2) + 4 (x8) | +| 19 | 27 | 19 | 11 | 9 | 7 | 5 | 15 + 12 (x2) | 14 + 10 (x3) | 13 + 9 (x4) | 13 + 8 (x2) + 4 (x8) | +| 20 | 29 | 19 | 12 | 9 | 7 | 5 | 15 + 13 (x2) | 14 + 11 (x3) | 13 + 10 (x4) | 14 + 8 (x2) + 5 (x8) | + +## Five Characters (Hard Challenges) + +| | Monsters of the Same CR | | | | | | Boss Scenarios | | | | +| --------------- | ----------------------- | --- | --- | --- | --- | --- | ------------------- | ------------------- | --------------------- | ---------------------------------- | +| Character Level | 1 | 2 | 4 | 6 | 8 | 12 | 1 Boss + 2 Monsters | 1 Boss + 3 Monsters | 1 Boss + 4 Underlings | 1 Boss + 2 Lieutenants + 8 Minions | +| 1 | 1 | 1/2 | 1/4 | 1/8 | 0 | 0 | 1/2 + 1/4 (x2) | 1/2 + 1/8 (x3) | 1/4 + 1/8 (x4) | - | +| 2 | 4 | 1 | 1/2 | 1/4 | 1/8 | 0 | 1 + 1/2 (x2) | 1 + 1/4 (x3) | 1 + 1/8 (x4) | 1/2 + 1/4 (x2) + 0 (x8) | +| 3 | 5 | 2 | 1 | 1/2 | 1/2 | 1/4 | 2 + 1/2 (x2) | 2 + 1/4 (x3) | 2 + 1/4 (x4) | 1 + 1/4 (x2) + 1/8 (x8) | +| 4 | 6 | 3 | 1 | 1 | 1/2 | 1/4 | 3 + 1 (x2) | 3 + 1/2 (x3) | 3 + 1/2 (x4) | 2 + 1/4 (x2) + 1/8 (x8) | +| 5 | 9 | 5 | 2 | 2 | 1 | 1/2 | 5 + 2 (x2) | 4 + 2 (x3) | 5 + 1 (x4) | 3 + 1 (x2) + 1/2 (x8) | +| 6 | 11 | 6 | 3 | 2 | 1 | 1/2 | 6 + 3 (x2) | 5 + 2 (x3) | 6 + 2 (x4) | 4 + 1 (x2) + 1/2 (x8) | +| 7 | 12 | 7 | 4 | 3 | 1 | 1 | 7 + 3 (x2) | 5 + 3 (x3) | 6 + 2 (x4) | 4 + 2 (x2) + 1 (x8) | +| 8 | 13 | 8 | 4 | 3 | 2 | 1 | 7 + 4 (x2) | 7 + 3 (x3) | 6 + 3 (x4) | 5 + 2 (x2) + 1 (x8) | +| 9 | 14 | 8 | 5 | 3 | 2 | 1 | 8 + 4 (x2) | 7 + 4 (x3) | 7 + 3 (x4) | 6 + 2 (x2) + 1 (x8) | +| 10 | 15 | 9 | 5 | 4 | 3 | 2 | 8 + 5 (x2) | 8 + 4 (x3) | 8 + 4 (x4) | 6 + 3 (x2) + 1 (x8) | +| 11 | 17 | 11 | 6 | 5 | 4 | 2 | 10 + 6 (x2) | 9 + 5 (x3) | 8 + 5 (x4) | 6 + 4 (x2) + 2 (x8) | +| 12 | 19 | 12 | 7 | 6 | 4 | 3 | 11 + 7 (x2) | 10 + 6 (x3) | 9 + 5 (x4) | 8 + 4 (x2) + 2 (x8) | +| 13 | 20 | 13 | 8 | 7 | 5 | 3 | 11 + 8 (x2) | 11 + 7 (x3) | 10 + 6 (x4) | 9 + 4 (x2) + 2 (x8) | +| 14 | 22 | 14 | 9 | 7 | 5 | 4 | 11 + 9 (x2) | 12 + 7 (x3) | 10 + 7 (x4) | 10 + 5 (x2) + 2 (x8) | +| 15 | 22 | 15 | 9 | 7 | 5 | 4 | 12 + 10 (x2) | 12 + 8 (x3) | 12 + 7 (x4) | 11 + 5 (x2) + 2 (x8) | +| 16 | 24 | 16 | 10 | 8 | 6 | 4 | 12 + 11 (x2) | 11 + 9 (x3) | 11 + 8 (x4) | 11 + 7 (x2) + 2 (x8) | +| 17 | 25 | 17 | 11 | 9 | 7 | 5 | 15 + 11 (x2) | 13 + 10 (x3) | 14 + 8 (x4) | 12 + 7 (x2) + 3 (x8) | +| 18 | 27 | 18 | 11 | 9 | 7 | 5 | 15 + 12 (x2) | 14 + 10 (x3) | 13 + 9 (x4) | 12 + 8 (x2) + 4 (x8) | +| 19 | 28 | 20 | 12 | 10 | 8 | 6 | 15 + 13 (x2) | 14 + 11 (x3) | 13 + 10 (x4) | 13 + 9 (x2) + 4 (x8) | +| 20 | 29 | 20 | 13 | 10 | 8 | 6 | 16 + 14 (x2) | 15 + 12 (x3) | 14 + 11 (x4) | 14 + 9 (x2) + 5 (x8) | + +## Six Characters (Hard Challenges) + +| | Monsters of the Same CR | | | | | | Boss Scenarios | | | | +| --------------- | ----------------------- | -- | --- | --- | --- | --- | ------------------- | ------------------- | --------------------- | ---------------------------------- | +| Character Level | 1 | 2 | 4 | 6 | 8 | 12 | 1 Boss + 2 Monsters | 1 Boss + 3 Monsters | 1 Boss + 4 Underlings | 1 Boss + 2 Lieutenants + 8 Minions | +| 1 | 1 | 1 | 1/4 | 1/4 | 1/8 | 0 | 1 + 1/4 (x2) | 1 + 1/4 (x3) | 1 + 1/8 (x4) | - | +| 2 | 5 | 2 | 1/2 | 1/2 | 1/4 | 1/8 | 2 + 1/2 (x2) | 2 + 1/4 (x3) | 2 + 1/4 (x4) | 1/2 + 1/4 (x2) + 1/8 (x8) | +| 3 | 7 | 3 | 1 | 1 | 1/2 | 1/4 | 3 + 1 (x2) | 3 + 1/2 (x3) | 3 + 1/2 (x4) | 1 + 1/2 (x2) + 1/4 (x8) | +| 4 | 8 | 4 | 2 | 1 | 1/2 | 1/2 | 4 + 2 (x2) | 4 + 1 (x3) | 4 + 1/2 (x4) | 2 + 1/2 (x2) + 1/4 (x8) | +| 5 | 10 | 6 | 3 | 3 | 1 | 1 | 7 + 3 (x2) | 7 + 2 (x3) | 6 + 2 (x4) | 3 + 1 (x2) + 1/2 (x8) | +| 6 | 12 | 8 | 4 | 3 | 2 | 1 | 7 + 4 (x2) | 6 + 4 (x3) | 6 + 3 (x4) | 3 + 2 (x2) + 1 (x8) | +| 7 | 13 | 9 | 5 | 4 | 2 | 1 | 8 + 5 (x2) | 7 + 5 (x3) | 7 + 4 (x4) | 5 + 2 (x2) + 1 (x8) | +| 8 | 15 | 11 | 6 | 4 | 3 | 2 | 8 + 6 (x2) | 8 + 5 (x3) | 8 + 4 (x4) | 6 + 3 (x2) + 1 (x8) | +| 9 | 16 | 12 | 6 | 4 | 3 | 2 | 9 + 6 (x2) | 8 + 6 (x3) | 10 + 4 (x4) | 6 + 4 (x2) + 1 (x8) | +| 10 | 17 | 13 | 7 | 5 | 4 | 2 | 10 + 7 (x2) | 9 + 6 (x3) | 10 + 5 (x4) | 7 + 4 (x2) + 1 (x8) | +| 11 | 19 | 14 | 8 | 6 | 4 | 3 | 12 + 8 (x2) | 11 + 7 (x3) | 12 + 5 (x4) | 8 + 4 (x2) + 2 (x8) | +| 12 | 20 | 16 | 9 | 7 | 5 | 3 | 14 + 9 (x2) | 13 + 8 (x3) | 12 + 7 (x4) | 9 + 5 (x2) + 2 (x8) | +| 13 | 21 | 17 | 10 | 8 | 6 | 4 | 14 + 10 (x2) | 13 + 9 (x3) | 12 + 8 (x4) | 10 + 6 (x2) + 2 (x8) | +| 14 | 23 | 17 | 10 | 8 | 6 | 4 | 15 + 10 (x2) | 15 + 8 (x3) | 13 + 8 (x4) | 9 + 7 (x2) + 2 (x8) | +| 15 | 24 | 18 | 11 | 8 | 6 | 4 | 15 + 11 (x2) | 15 + 9 (x3) | 12 + 9 (x4) | 9 + 7 (x2) + 3 (x8) | +| 16 | 25 | 19 | 11 | 9 | 7 | 4 | 15 + 12 (x2) | 15 + 10 (x3) | 13 + 9 (x4) | 11 + 7 (x2) + 3 (x8) | +| 17 | 27 | 20 | 12 | 10 | 7 | 5 | 16 + 13 (x2) | 16 + 11 (x3) | 15 + 10 (x4) | 11 + 7 (x2) + 4 (x8) | +| 18 | 28 | 21 | 13 | 11 | 8 | 5 | 18 + 14 (x2) | 17 + 12 (x3) | 15 + 11 (x4) | 12 + 8 (x2) + 4 (x8) | +| 19 | 29 | 21 | 14 | 11 | 8 | 6 | 18 + 15 (x2) | 16 + 13 (x3) | 15 + 12 (x4) | 13 + 9 (x2) + 4 (x8) | +| 20 | 30 | 22 | 15 | 13 | 9 | 7 | 20 + 16 (x2) | 18 + 14 (x3) | 16 + 13 (x4) | 13 + 10 (x2) + 5 (x8) | diff --git a/markdown_obsidian_5e_monster_builder/Monster Roles.md b/markdown_obsidian_5e_monster_builder/Monster Roles.md new file mode 100644 index 0000000..e8dbb6f --- /dev/null +++ b/markdown_obsidian_5e_monster_builder/Monster Roles.md @@ -0,0 +1,91 @@ +# Monster Roles + +Thinking about the roles that creatures play in combat helps to create better encounters. A monster who has tons of hit points can stand up front, soaking up damage while the more vulnerable evil wizard launches devastating spells from behind cover. Skirmisher monsters can dart in from the sides and back away, forcing the characters to spread out and leaving them open to an ambusher. Foes of different roles complement each other, creating an effective team. + +Monsters in 5e don't have defined roles with connections to specific mechanics and tactics, as the creatures in some fantasy RPGs do. However, many 5e foes either already fit a specific role or are flexible enough to allow us to assign roles to them. For example, a harpy is a highly effective controller, and a spy is an excellent skirmisher or ambusher. We can also modify monsters to enable them to play a role. By assigning a role to a foe, you enable a specific set of tactics that allow you to challenge the characters more effectively. + +## Defining Roles + +The following roles capture the most important tactical concepts in 5e combat, and cover virtually all the foes you might make use of in a 5e game. + +### Ambusher + +Ambushers have special features that allow them to hide, dart out of danger, render targets senseless, or otherwise prevent characters from attacking them easily. An ambusher often deals more damage when hidden, and might engage in a pattern of hiding, attacking, and hiding again. Ambusher foes are often less effective when they can't hide, which incentivizes characters to force them into the open. Many ambushers have low hit points. + +***When to Use Them.*** Because ambushers can result in longer, drawn-out fights, you want to use them sparingly. However, they can be a good choice for a villain who needs to get away. Ambushers are likewise an excellent choice if a combat encounter is preceded by a free-form roleplaying or social encounter, with foes hiding in plain sight before the fight breaks out. + +***Placement and Tactics.*** An ambusher is usually most effective when they start out hidden, revealing themself only when they attack. Some ambushers start out in the open, then disappear and reposition once characters have moved toward them. + +***Example Ambushers.*** Dust mephit, ghost, mimic, phase spider, spy. + +### Artillery + +Artillery typically have a high attack bonus and deal good damage at range, but have lower hit points or AC than other foes. Sacrificing survivability can be fun, allowing these monsters to hit hard and die quickly. This creates tension and pressure early in an encounter, followed by increasing confidence as the heroes reach the artillery and quickly defeat them. + +Artillery creatures might strike at single targets or an area, and their high accuracy lets them deal consistent damage. Because they operate at range, you might focus the attacks of artillery foes on characters who usually stay out of trouble, using the flexibility of range to put them in peril. Alternatively, you can put their accuracy to use against the characters with the highest defenses. + +***When to Use Them.*** Artillery creatures work well in most encounters. Because of their placement at range, they draw attention away from other important targets such as controllers, leaders, or bosses. Artillery foes encourage characters to use resources to reach them, finish them off, and heal from their long-range damage. + +***Placement and Tactics.*** Artillery creatures seek cover and elevation from which to rain down destruction. They stand behind other monsters and blocking terrain so that characters can't easily get to them. They might also be placed without cover and to the sides of the battle, forcing characters who want to attack them to spread out—so that ambushers or skirmishers can pick those characters off. Place artillery closer to the action when you want them to be easy to reach and to draw attention deliberately away from other foes. + +Artillery creatures like to focus fire and group up on one target when possible. However, you want to change up that tactic if you start rolling too well, which can make artillery creatures extremely dangerous even in relatively easy encounters. Make sure getting to artillery foes is fun and not frustrating. A good rule of thumb is that characters shouldn't need to spend more than 1 round of movement to engage an artillery creature. + +***Example Artillery.*** Hill giant, mage, manticore, scout, solar. Of all the roles, artillery creatures are generally the least represented in typical 5e monster books. + +### Bruiser + +A bruiser foe deals higher-than-average melee damage, bringing the pain up close. But that focus on damage often comes with lower AC, lower attack accuracy, or lower hit points. Bruisers draw attention with their damage, and make fun opponents because they're often easy to hit, or die quickly. + +When a bruiser has low accuracy, a battle often feels swingy, with a sense of impending doom as each attack roll creates tension. Even when an attack misses, the players are usually watching that roll and wincing as they think about what would have happened if it hit. + +***When to Use Them.*** Bruisers should be used in most encounters, surprising players with their impressive damage. However, they should be used with care in encounters against 1st-level characters, who are particularly susceptible to being dropped with a single lucky blow. + +Like artillery, bruisers can be used to draw attention away from other important targets such as controllers, leaders, and bosses. Bruisers encourage characters to use resources, first to finish off the bruiser more quickly, then to heal up in the aftermath. + +***Placement and Tactics.*** Melee bruisers should be in the front lines, where they can deal damage as soon as possible. They might come out of side passages or otherwise surprise characters in the rear ranks, but bruisers seldom switch targets unless a different target is obviously easier to kill. Bruisers like to focus fire and group up on one target when possible, so keep an eye on their damage output to ensure that a few lucky attack rolls don't push the challenge level of an encounter too high. + +***Example Bruisers.*** Ettin, flesh golem, owlbear, shambling mound, wolf. + +### Controller + +Controller creatures use their attacks and features to impose conditions or otherwise impede characters from being their most effective. This role covers many different types of foes, and the extent of their control can vary. Some controller creatures grapple, swallow, or otherwise lock down targets, preventing movement. They might impose disadvantage on attacks through conditions such as poisoned or restrained, or use magic such as the *confusion* or *hold person* spells to limit actions. + +***When to Use Them.*** Controllers create dilemmas for a party to contend with. How do the characters change tactics when the fighter is poisoned and the cleric is inside a creature's gullet? These situations can be exciting and challenging, forcing characters to expend resources and think of clever solutions. However, used too often, too extensively, or too effectively, controller foes can feel like punishment. Be wary of a character rendered ineffective for several rounds, or of more than a couple of characters being ineffective for longer than 1 round. When a control effect feels clearly frustrating, try to change targets over the course of combat so that the same character isn't being controlled round after round. + +***Placement and Tactics.*** Controllers should be placed where they can't be easily reached, but close to prospective targets based on the range of their powers. Spellcaster controllers might be careful to always start farther than 60 feet from the characters—beyond the range of *counterspell*. A controller pairs well with a defender whose job is to keep the controller safe, or with skirmishers who can easily move around controlled characters. Controllers usually have trouble defeating characters one-on-one, due to their lower damage, but they work well with bruisers and artillery who can deal high damage to controlled characters. + +***Example Controllers.*** Black pudding, cockatrice, ettercap, harpy. + +### Defender + +Defender foes soak up hits and damage. They might deal lower-than-average damage or be less accurate with attacks, but have higher AC, saving throws, and hit points. They often look big and imposing, drawing attention to themselves by issuing challenges and making threats. + +Some defenders have attacks or features that pin characters in place—often referred to as "sticky" features that make the defender hard to get away from once engaged. Stickiness can also take the form of imposing penalties to attack any creatures other than the defender, or similar features that help the defender soak up the heroes' attacks. + +***When to Use Them.*** Defenders should be used sparingly, as too many defenders in an encounter or too many encounters featuring defenders can make combats longer and less interesting. Use them in fights where other vulnerable foes need assistance to prevent being taken down too quickly. Defenders work well with skirmishers or ambushers, who can surprise characters focused on the defender. They excel at protecting key villains, especially artillery or controller spellcasters. + +***Placement and Tactics.*** Defenders are often placed in the front lines to tie down characters. However, you can also place them farther back, closer to another creature they defend. Make sure defenders won't lock down all the characters at once, though. Combat works best when most characters can move around the encounter area and discover all it has to offer. You don't want to design an amazing encounter and then have the characters spend all their time locked down in specific locations. + +***Example Defenders.*** Animated armor, chuul, gelatinous cube, knight, shambling mound. + +### Leader + +A leader has features that help other creatures. They might heal, boost statistics such as attack modifiers or saving throws, or move other creatures, and they often have lower-than-average hit points, damage output, or accuracy. + +***When to Use Them.*** Leaders are most interesting when used sparingly, though they can be used more often when they are of different types. For example, a hobgoblin priest NPC focused on healing feels different from a duergar war priest who boosts their allies' attacks. + +***Placement and Tactics.*** Leaders can be placed according to the focus of their useful features, letting them help as many of their allies as possible. Because the characters often want to target them, leaders operate best in the center or slightly back from the center of the encounter area. + +Leaders make good bosses, or can act as lieutenants for bosses. Be careful when using them with skirmishers and ambushers, though, since characters moving to pursue those foes might go after the leader instead. A good default setup is to have one or two defenders protecting a leader. + +***Example Leaders.*** Couatl, knight, priest. + +### Skirmisher + +Skirmishers dance around the battlefield, using high mobility to dart in for an attack and then get away. They might have lower AC or hit points than other foes, but possess features that let them evade blows, retreat, or counterattack. Skirmishers are usually accurate, having a high attack bonus, and their damage might be especially high when using their mobility features. + +***When to Use Them.*** Use skirmishers to liven up battles. They can draw characters farther into an area of combat, making good use of areas that have dividing features such as interior walls, side chambers, or more than one level. + +***Placement and Tactics.*** Skirmishers should usually start far enough from the characters to show off their ability to move in and then move back out, forcing characters to reposition themselves. Skirmishers with high speed or supernatural movement can avoid or surpass terrain that challenges pursuing characters, who might trigger traps or spread out so other foes can surround them. + +***Example Skirmishers.*** Bulette, copper dragon, goblin, spy, wraith. diff --git a/markdown_obsidian_5e_monster_builder/Monsters and the Tiers of Play.md b/markdown_obsidian_5e_monster_builder/Monsters and the Tiers of Play.md new file mode 100644 index 0000000..8be84b4 --- /dev/null +++ b/markdown_obsidian_5e_monster_builder/Monsters and the Tiers of Play.md @@ -0,0 +1,49 @@ +# Monsters and the Tiers of Play + +How combat plays out against specific types of monsters in other 5e games changes depending on the level of the characters. Character power progression isn't smooth and linear across levels. Rather, it spikes at particular levels, potentially changing the outcome of a battle dramatically. As an example, the jump from 4th to 5th level gives melee characters twice as many attacks, while spellcasters gain access to spells such as *fireball*, significantly raising a party's damage output overnight. Recognizing when and how these changes take place can help GMs understand and prepare for these shifts in game play. + +## 1st Level + +Though not identified as its own tier of play in the fifth edition core rules, games at 1st level are entirely different from games at later levels. Characters of 1st level have few resources—hit points in particular. Creatures of CR 1/2 can kill 1st-level characters with a single critical hit, and 1st-level spellcasters have few spells able to control more than one or two monsters. + +When designing combat encounters at 1st level, be wary of using foes higher than CR 1/4, and lean toward running fewer monsters than characters. A CR 1/2 creature might make a decent boss monster for 1st-level characters, but a CR 1 monster might knock characters unconscious with a single hit-or even kill them completely. + +Even when running a published adventure for 1st-level characters, take note of the encounters it offers. Many such adventures include potentially deadly encounters at 1st level, so adjust them accordingly by running lower-CR monsters and fewer of them. + +Creatures of CR 1/8 to CR 1/2 work well for 1st-level characters, including bandits, cultists, and skeletons, with maybe a thug for a boss. + +## 2nd through 4th Level + +At 2nd through 4th level, encounters most often play out as expected for a heroic fantasy roleplaying game. Characters are robust enough to face a range of monsters and not get killed. Most characters have a single attack, or sometimes two if they fight with a weapon in each hand. Spells usually target one or two creatures. + +Combat encounters of 2nd to 4th level are often the easiest to balance compared to other levels of play. Characters of 2nd through 4th level can typically handle a group of monsters from challenge rating 1/8 to CR 1, a pair of monsters of CR 2 or 3, or a single monster up to about CR 5. + +Great foes at these levels include all of those appropriate for 1st-level characters, along with ogres, scouts, dire wolves, and veterans. Cult fanatics, hags, vampire spawn, ettins, and lamias can work well for bosses at this tier. + +## 5th to 10th Level + +At 5th level, character power spikes up. Fighters can attack twice, and can double that double attack with Action Surge. Spellcasters gain access to spells such as *fireball*, *spirit guardians*, and *hypnotic pattern*. As characters rise above 5th level, their capabilities increase quickly. Monks get Stunning Strike. Spellcasters learn spells able to take out a foe with a single failed saving throw, including *banishment* and *polymorph*. + +At 5th level and above, you can no longer trust a lone nonlegendary monster to challenge a group of characters. Often a single spell, class feature, or volley of attacks can incapacitate or kill any such creature. Against large groups of foes, a casting of *fireball* or a use of Turn Undead can end the fight. Get comfortable with this change to how your encounters are going to play out, and use lightning rod monsters to let the characters show off these potent capabilities without ruining your fun. + +At these levels, the heroes' defensive capabilities increase as well. Characters can fly, turn invisible, or block off entire sections of the battlefield with spells like *wall of fire*. Healing becomes plentiful. Paladins can protect entire parties with their defensive features. Even lower-level defensive features such as the *shield* spell can be used more often with a larger number of available spell slots. + +At 5th level and above, a GM's understanding of the capabilities of the characters and how those capabilities relate to a monster's stat block is vital to building challenging encounters. Creatures who challenge characters at 5th level and above (roughly CR 4 and up) are usually more complicated than those of lower challenge ratings. Hard encounters put together using default encounter-building rules might be less challenging than expected. + +Characters of 5th to 10th level can often take on hordes of foes of CR 1/4 to CR 1. They can usually survive battles against groups of CR 2 to CR 5 monsters, small groups of CR 6 to CR 10 foes, and single monsters up to CR 15. + +Great foes at this tier include young dragons, giants, mages, and lower-CR demons and devils. Bosses can include medusas, lower-CR adult dragons, mid-CR demons and devils, and maybe even an archmage. + +## 11th to 16th level + +At 11th level, characters become superheroes. They have huge amounts of resources at their disposal to handle the hardest monsters in the game. The heroes' ability to control or incapacitate foes continues to increase, along with their ability to dish out tremendous amounts of damage. + +The variance in power and capabilities between different groups at these levels of play is wide. Challenging battles can take significantly longer to run than those of lower levels. Monsters who feel like a good challenge often end up easier to defeat than expected, and characters at this level can often take out a single powerful boss with ease. Likewise, the characters have numerous options to mitigate the damage their foes deal—made worse by the fact that many published monsters appropriate for these levels deal too little damage for their challenge rating. + +Characters at these levels can often take on large groups of monsters of up to CR 3, medium-sized groups of CR 6 to CR 10, small groups of CR 11 to CR 14, and single opponents of up to CR 21. Good foes at this tier include all of those mentioned previously, along with ancient dragons, higher-CR giants, liches, and high-CR demons and devils. And even at a high CR, a boss monster almost certainly wants some friends to defend against the characters. + +## 17th to 20th level + +From 17th level up, the characters are just short of godlike. They travel across worlds. They can often easily defeat any single monster of any challenge rating, unless the GM customizes that monster to face them. Characters at the highest levels have the strongest defenses imaginable, letting them absorb tremendous amounts of damage and wave off most detrimental effects. To build challenging encounters at these levels, GMs must customize those encounters around the powers and capabilities of the characters, and such battles can take a long time to run. + +At these levels, characters can take on huge numbers of foes below CR 5, large groups of CR 6 to CR 10, medium-sized groups of CR 11 to CR 15, and bosses of CR 22 and above. Characters at these levels can fight—and triumph over—any monster in 5e, even when partnered with other monsters. diff --git a/markdown_obsidian_5e_monster_builder/Monsters by Adventure Location.md b/markdown_obsidian_5e_monster_builder/Monsters by Adventure Location.md new file mode 100644 index 0000000..8b6ede8 --- /dev/null +++ b/markdown_obsidian_5e_monster_builder/Monsters by Adventure Location.md @@ -0,0 +1,178 @@ +# Monsters by Adventure Location + +This section offers quick starting points for building encounters, in the form of tables that cover a broad range of foes in twelve types of common adventure location. The tables serve four purposes: + +* They show which creatures might inhabit a particular adventure location. +* They highlight foes appropriate for a given level range in that location. +* They show which foes might naturally pair up with other foes. +* They offer example relationships between creatures and suggest what they might be doing in a location. + +Though you can use the setups in the tables directly, you'll get even more value from them by customizing your own list of foes for these common locations and scenarios—or by adding environments and scenarios that fit the specifics of your campaign. + +Each line in the "Example Encounters" column contains an example encounter with multiple monsters. You can decide how many monsters are appropriate given the scenario, the number of characters, and their level. + +Monsters who are in **bold** represent potential bosses for an encounter. + +## Ancient Ruins + +| Level | Example Encounters | +| ----- | ------------------------------------------------------- | +| 1st | \* A **thug** leads bandits intending to rob a caravan. | + +* A vengeful **shadow** shifts in the darkness among a handful of arisen skeletons. | + \| 2nd to 4th | - A pair of **bugbear** entrepreneurs use goblin actors as bait to seek adventurers as prey. + +- A sorrowful **banshee** orders specters to recreate their former beautiful life. +- A **gnoll pack lord** bounty hunter leads gnolls and hyenas after an escaped prisoner. +- A **death dog** protected by wolves lairs in a ruined cave. +- A **lamia** served by jackalweres dwells in an illusory paradise. | + \| 5th to 10th | \* A wise **bugbear chief** leads bugbear and goblin soldiers from an obsidian throne. + +* A **cyclops** matriarch leads fanatically loyal ogres. +* A solitary **medusa** dwells in a mausoleum, surrounded by petrified heroes and protected by death dogs. +* A noble **oni** in a posh den is guarded by loyal spirit naga storytellers. | + \| 11th to 16th | - An **adult blue dragon** is guarded by clay golems in a jeweled lair. | + \| 17th to 20th | \* An **ancient blue dragon** protected by stone golems and air elementals dwells in the shattered remains of a tower. | + +## Crypts, Catacombs, Necropolises + +| Level | Example Encounters | +| ---------- | --------------------------------------------------------------- | +| 1st | \* A pair of **skeletons** rises from a pile of crawling claws. | +| 2nd to 4th | - A lost **ghost** wanders, surrounded by specters. | + +* A **bone naga** rises from an obsidian sarcophagus to command a host of skeletons. | + \| 5th to 10th | \* A **mummy lord** entombed in a cold-iron sarcophagus is guarded by mummies and wights. + +- A pair of **wraiths** float above unholy urns surrounded by vengeful specters. | + \| 11th to 16th | - A **vampire** in a gilded tomb is guarded by howling dire wolves and served by vampire spawn. | + \| 17th to 20th | \* A **lich** in an unhallowed laboratory is protected by loyal death knights and iron golems. | + +## City Sewers + +| Level | Example Encounters | +| ---------- | -------------------------------------------------------------------------------- | +| 1st | \* A wandering **zombie** is covered by a swarm of rats. | +| 2nd to 4th | - An erudite **ghast** weaves fantastic tales to their ravenous ghoul followers. | + +* A **spy** is guarded by unscrupulous bandits while awaiting the arrival of a contact. +* An **otyugh** luxuriates in a watery pit, surrounded by concealed gray oozes. +* **Wererats** try to be intimidating by threatening to feed prisoners to their giant rat pets. | + +## Seedy City Streets + +| Level | Example Encounters | +| ----- | ------------------------------------------------------------------------------------------- | +| 1st | \* A **giant rat** and the swarm of rats that travels with them are feeding on a dead body. | + +* A **thug** and a pack of bandit toadies are waiting for someone to rob. | + \| 2nd to 4th | - A **spy** assisted by thugs has been hired to steal something from the characters. + +- A **bandit captain** with berserker bodyguards and bandit followers is easily insulted. +- A **cult fanatic** leads cultists who have summoned ravenous dretches into the world. | + \| 5th to 10th | \* A **mage** commanding veterans is seeking something the characters seek as well. + +* A **bandit captain** protected by hired gladiators and veterans seeks the characters with an offer they can't refuse. +* A careful **assassin** backed up by spies and thugs hunts the characters. | + +## Wizard's Tower + +| Level | Example Encounters | +| ----------- | ---------------------------------------------------------------------------------- | +| 1st | \* A loyal **imp** commands a squad of guardian flying swords. | +| 2nd to 4th | - A summoned **succubus** or **incubus** directs animated armor serving as guards. | +| 5th to 10th | \* Apprentice **mages** command elementals and flesh golems. | + +* An important chamber is guarded by two **flameskulls** and a number of helmed horrors. | + \| 11th to 16th | - An impatient **archmage** is protected by two stone golems in an arcane laboratory. | + \| 17th to 20th | \* A **lich** studies the multiverse while protected by bound balors and iron golems. | + +## Volcano Lair + +| Level | Example Encounters | +| ----------- | -------------------------------------------------------------------------- | +| 5th to 10th | \* A **fire giant** with pet hell hounds commands an azer to dig for them. | + +* A trapped **efreeti** uses fire elementals to fight for freedom. | + \| 11th to 16th | - An **adult red dragon** served by salamanders demands fealty from the characters. | + \| 17th to 20th | \* An **ancient red dragon** worshiped by fire giants awakens from slumber. | + +## Abyssal Keep + +| Level | Example Encounters | +| ---------- | ---------------------------------------------------------------------------------------- | +| 2nd to 4th | \* A **night hag** and their pet quasit schemes within a chamber guarded by hell hounds. | + +* A summoning circle disgorges a **barlgura** and a gang of dretches. | + \| 5th to 10th | - A **glabrezu** commands from a throne flanked by chasmes. | + \| 11th to 16th | \* A **marilith**, their cambion advisor, and a number of hezrou servants guard a planar gateway. | + \| 17th to 20th | - A **balor**, a servile archmage, and a squad of glabrezu soldiers guard an artifact. | + +## Dark Forests and Fetid Swamps + +| Level | Example Encounters | +| ---------- | -------------------------------------------------------------- | +| 1st | \* An elf **cultist** hunts prey with bloodthirsty wolves. | +| 2nd to 4th | - Two **ettercaps** and their giant spiders stalk adventurers. | + +* An **ettin** warlord commands a host of orc mercenaries. +* A **green hag** lurks in an old hut with a pet giant toad, and is guarded by loyal bullywugs. +* A **werewolf** prowls the shadows with their dire wolf companions. | + \| 5th to 10th | \* An **orc war chief** commands a force of ettin and orc scouts based in a ruined keep. | + \| 11th to 16th | - An **adult black dragon** commands a host of trolls made loyal through fear. +* An **adult green dragon** lurks in a dead forest, protected by shambling mounds. | + \| 17th to 20th | \* An **ancient black dragon** dwells in a sunken bog filled with giant crocodiles. + +- An **ancient green dragon** rules from an ancient wooden throne guarded by loyal treants. | + +## Hellish Citadel + +| Level | Example Encounters | +| ---------- | ---------------------------------------------------------------------------------- | +| 2nd to 4th | \* A **bearded devil** draws lemures through a portal connected to the river Styx. | + +* A **barbed devil** and a host of imps keep watch on enemy forces. | + \| 5th to 10th | - An armored **erinyes** commanding a host of spined devils prepares for war. + +- A **horned devil** leading bearded devil soldiers guards an oracular sphere. | + \| 11th to 16th | \* **Ice devil** wardens and bone devil guards protect a valuable prisoner. | + \| 17th to 20th | - **Pit fiend** commanders and horned devil lieutenants use scrying crystals to get the drop on the characters. | + +## Frozen Fortress + +| Level | Example Encounters | +| ----------- | ------------------------------------------------------------------------------------ | +| 5th to 10th | \* **Frost giant** hunters enjoy the sport of their remorhaz pet stalking commoners. | + +* The bone-cluttered cave of an **abominable yeti** is guarded by winter wolves. | + \| 11th to 16th | - An **adult white dragon** is served by loyal frost giants. | + \| 17th to 20th | \* An **ancient white dragon** lairing atop an inaccessible peak is worshiped by generations of abominable yetis. | + +## Deep Caverns + +| Level | Example Encounters | +| ----- | ---------------------------------------------------------------------------- | +| 1st | \* A **cockatrice** pecks at a crumbling statue, while stirges linger above. | + +* A **giant bat** surrounded by swarms of bats skulks in the shadows. | + \| 2nd to 4th | - **Darkmantles** and piercers lurk in pools of shadow. + +- A worg-riding **goblin boss** commands a squad of goblin hunters. | + \| 5th to 10th | \* **Basilisks** and cockatrices lair in a hall full of petrified adventurers. + +* A **cloaker** lurks above a pack of hook horrors disemboweling a dead bulette. +* **Ropers** and darkmantles hang above a waterfall, competing for prey. | + +## Sunken Grotto + +| Level | Example Encounters | +| ---------- | ------------------------------------------------------------------------------- | +| 1st | \* A **lizardfolk** hunter is teaching their trained giant crabs how to hunt. | +| 2nd to 4th | - A **sea hag** commands loyal kuo-toa to set up an effigy to a fictitious god. | + +* A **lizard king** with a lizardfolk shaman advisor commands a clan of lizardfolk from a coral throne. | + \| 5th to 10th | \* An **aboleth** in a swirling pool is guarded by chuuls and worshiped by enthralled veterans. + +- A **sahuagin baron** watches a pack of sahuagin fight water weirds. +- A corrupt **sahuagin priestess** feeds sacrificial victims to giant crocodiles. | + \| 11th to 16th | - A **kraken** rules a deep-sea trench, surrounded by reverent water elementals. | diff --git a/markdown_obsidian_5e_monster_builder/The Combat Encounter Checklist.md b/markdown_obsidian_5e_monster_builder/The Combat Encounter Checklist.md new file mode 100644 index 0000000..c541047 --- /dev/null +++ b/markdown_obsidian_5e_monster_builder/The Combat Encounter Checklist.md @@ -0,0 +1,111 @@ +# The Combat Encounter Checklist + +Sometimes all a game needs is an interesting location and some cool monsters to fight, setting up a combat encounter that a GM might build right at the table. The characters go somewhere, everyone decides it's time for a fun fight, and you whip something up. Or you determine that, given the circumstances going on in the story, it's time for the characters to run into some opposition, and you're off to the races. + +Sometimes we need more, though, particularly for big set-piece battles or boss fights. When it's time to build an interesting and dynamic encounter, the following checklist can help determine what options a big combat might need: + +* Interesting monsters +* A fantastic location +* Zone-wide effects +* Traps and hazards +* Advantageous positions +* Interactive objects +* Cover +* Difficult or fantastic terrain +* A goal + +No battle needs all these things, but it's worth running through the list to see which options fit the sort of combat scenario you're putting together. + +## Interesting Monsters + +For a big, self-contained combat encounter, a single monster usually won't do it. Even several monsters of the same type might not prove interesting enough for a big fight. Complex, climactic battles often work best with two or three creature types that work well together—big bruisers up front and powerful artillery in the back, for example.However, having more than three types of creatures in any one battle is going to be hard to manage. As such, designing a big set-piece battle is also a great time to think about waves of monsters. + +## A Fantastic Location + +An empty, 50-foot-square room doesn't lend itself to an interesting set-piece battle. We want fantastic rooms with interesting shapes, lots of room to move around, and a cool environment for the characters to spend time in. Great self-contained fights are like theme parks where the characters can climb up big statues, swing from chandeliers, and dance across elevated platforms. Whether you're playing online or in person, you can purchase battle maps showing off interesting locations, or might find maps that cartographers have released for free. Build a library of cool maps that inspire your players to enjoy the scenery while they're kicking ass. + +However, you want to ensure that your fantastic location isn't too big. It's no fun to have a character spend multiple rounds running to the far side of an arena—only to arrive just in time to watch the other characters drop the big bad to the mat. Let all the characters get to the meaty part of a location in two moves at most. + +## Zone-Wide Effects + +Sometimes a combat environment has a big ongoing effect—something that impacts all the creatures in the area, no matter where they are. Such zone-wide effects can make a fight more interesting, as with any of the following examples: + +* Unholy energy in a crypt makes healing magic only half as effective as normal. +* Supernatural fire negates any creature's resistance to fire, and turns immunity to fire into resistance. +* Psychic wailing forces each character to succeed on a DC 10 Constitution check to successfully cast a spell. +* Periodic bolts of lightning strike, with each creature in combat having a 1-in-4 chance of being struck at the start of their turn. +* An arcane rift causes each damaging spell cast in a fight to deal an extra 2d6 force damage. +* An aura of bloody rage fills the area, granting each combatant advantage on attack rolls. +* A rift to a realm of chaos causes all spells to trigger a wild magic surge. +* The god of blood infuses all melee attacks with an extra die of damage. +* A rift in space-time lets a creature swap places with an enemy within 60 feet if that enemy fails a DC 12 Wisdom saving throw. +* A thick fog makes it impossible to see creatures more than 30 feet away. + +Avoid zone-wide effects that are just plain annoying. Having creatures fall down a lot because of icy floors sounds fun—until all the characters are lying on their backs and the players are wishing they'd never entered the fight in the first place. + +Likewise, certain effects hurt some classes more than others. Disadvantage on attack rolls hurts martial combatants more than spellcasters. Limiting movement hurts melee attackers, while limiting visibility hurts ranged attackers. Be aware of when a zone-wide effect affects some characters more than others, so that you can change it up if needed. + +## Traps and Hazards + +Certain parts of a battlefield might contain traps or hazards. Some of these might be easily seen, such as bladed pillars or spike-lined pits. Others might come as a surprise, such as a trap door over an acid pool. + +Characters with high passive Wisdom (Perception) scores might notice hidden traps automatically, or you might give each character a chance to make a Wisdom (Perception) check requiring no action—maybe even rolling on their behalf—to detect a trap before stumbling into it. + +Make sure these traps matter if you're going to put them in an encounter. Traps that are too far out of the way might never come into play. Likewise, it can be fun for players to spring traps on their opponents, so don't use them only as a threat against the characters. + +## Advantageous Positions + +Getting the characters to enter an arena (literal or metaphorical) and move around can be hard. Advantageous positions give them a reason to do so. Areas of high ground where they can gain cover against their foes—and perhaps advantage on attacks—are highly sought after by ranged attackers. Arcane circles that infuse a spellcaster's magic with greater power might draw wizards into a room. This approach can turn a whole encounter into a fun game of "king of the hill" as the characters and their enemies fight for superior position. + +## Interactive Objects + +Make sure that the battlefield features some interactive objects. This can include any physical features the characters can manipulate and use to their advantage in a fight, including things like the following: + +* Crumbling statues that can be easily toppled +* Pillars that collapse part of the ceiling +* Chandeliers upon which to swing +* Ballistas the characters can use to fire upon their foes +* Obelisks infusing the villain with power until they're destroyed +* Levers that physically or magically transform parts of the battlefield +* Catapults that can hurl allies to the far side of the fight +* Cranes lifting heavy objects that can be dropped onto foes +* Fiery cauldrons or braziers ready to tip over +* Deep wells into which enemies can be dumped + +## Cover + +Shattered pillars, crumbling statues, destroyed furniture, fallen trees, and other forms of cover can help break up the otherwise open terrain of a big battleground. When you drop in these elements of cover, be sure that the players understand the advantages of hiding behind them. + +For bonus points, tie the history of the location and other secrets and clues to these elements of cover. It's not just a statue—it's a statue of the forgotten god Gan, lost in history and now seeking just one follower to pull their spark of divinity from the edges of infinite darkness. + +## Difficult or Fantastic Terrain + +Different areas of a location might have some sort of terrain feature that can impact the fight. Difficult terrain is the easiest option, making it challenging but not impossible to take certain routes across the battlefield. But other areas of interesting terrain can also shake up a physical encounter. Icy floors where the characters might slip don't work well as a zone-wide effect. But they can be great in specific areas, forcing the characters to avoid those areas as they move. + +Any of the following terrain features can make a big battle location more interesting: + +* A crumbling bridge over a deep crevasse +* Spikes of sharp glass that cut creatures when they fall or are forced to move through them +* Jets of flame that randomly erupt +* Swampy land that belches forth poisonous gas when crossed +* Oiled surfaces that cause creatures to slide across them uncontrollably. +* Electrified floors that deal damage to creatures at the start of each turn +* An area filled with antigravity magic that causes creatures to fall to the ceiling +* An ethereal rift where creatures become invisible and insubstantial +* Pockets of shadow where characters have their life energy drained away +* An area of antilife magic where living creatures gain vulnerability to necrotic damage + +## A Goal + +Finally, think about what objective an encounter might have beyond simply taking out all the enemies. What might the characters do to "complete" the encounter? The following sorts of goals work well in a big set-piece encounter: + +* Stop a ritual before cultists summon a demon. +* Recover an artifact and escape with it. +* Kill the boss, but don't worry about their minions. +* Activate a gateway and escape through it. +* Recover a prisoner. +* Steal secret plans. +* Destroy a powerful monument. +* Activate the four altars around a temple site. +* Close a magical gateway and prevent the villain's escape. +* Destroy a doomsday device before it blows up the multiverse. diff --git a/markdown_obsidian_5e_monster_builder/The Lazy Encounter Benchmark.md b/markdown_obsidian_5e_monster_builder/The Lazy Encounter Benchmark.md new file mode 100644 index 0000000..990244c --- /dev/null +++ b/markdown_obsidian_5e_monster_builder/The Lazy Encounter Benchmark.md @@ -0,0 +1,86 @@ +# The Lazy Encounter Benchmark + +This section sets out a simple calculation you can keep in your head to give you a gauge of the difficulty of an encounter. This "lazy encounter benchmark" isn't perfect or precise. Rather, it's a tool for getting a rough sense of the potential challenge of a combat encounter–and for recognizing when an encounter crosses over from challenging to potentially deadly. Think of it like a tachometer measuring how fast the engine is running in a car. If you go beyond the limit defined by the benchmark, you're "in the red"–pushing to a point where your encounter might be more than the characters can handle. + +## Using the Benchmark + +The primary calculation of the lazy encounter benchmark compares the challenge ratings of monsters with the levels of the characters in the following way: + +**An encounter might be deadly if the sum total of monster challenge ratings is greater than 1/4 of the sum total of character levels, for characters of 1st to 4th level; or greater than 1/2 of the sum total of character levels, for characters of 5th level or higher.** + +What exactly does "deadly" mean in this context? In a deadly encounter: + +* Most characters might lose more than half their hit points. +* Several characters might go unconscious. +* There's a chance that one or more characters might die. + +For example, imagine an encounter pitting five 4th-level characters against four ogres of CR 2. To see how dangerous this fight might be, add all the character levels together and divide by 4 (because they're lower than 5th level), giving a result of 20 ÷ 4 = 5. Now compare that result to the sum of monster challenge ratings, with four CR 2 ogres giving a total of 8. Because 8 is more than 5, this could be a potentially deadly encounter. + +Above 4th level, you divide character levels by 2 instead of 4 because of the extra resources and synergies characters gain at 5th level and higher. Going back to the previous example, if the characters were 5th level instead of 4th, their total levels would be 25. The benchmark gives a result of 25 ÷ 2 = 12 (rounded down, as usual in the game). The four ogres still have a total CR of 8, and with 8 less than 12, these fifth-level characters aren't likely to find this a deadly fight. + +As another example, consider six 8th-level characters facing three CR 11 horned devils. Dividing the total character levels of 48 by 2 gives a result of 24. Adding up the challenge ratings of the horned devils gives you 33. So with 33 much higher than 24, that's a potentially deadly fight. + +Still, even when a calculated benchmark suggests that an encounter might be too tough, that doesn't mean you should automatically change things up. The lazy encounter benchmark is there to give you a warning sign that your encounter might be into the danger zone where it becomes more than the characters can handle. But your own experiences with the characters and players should ultimately tell you whether you should change things up or not. + +The lazy encounter benchmark intentionally doesn't provide specific measurements for easy, medium, or hard encounters. Instead, think of it like an analog gauge. The lower the total monster challenge ratings are compared to the benchmark calculation from character levels, the easier the battle might be. The higher the total monster challenge ratings are above the benchmark, the deadlier the battle might be. + +> ***Write Down the Benchmark Result*** + +> Because the benchmark result only changes when the characters increase in level, you can write it down and keep it in your notes. If you're going to have five 8th-level characters in your next several sessions, you can write down "Lazy Encounter Benchmark: 20" and reference that when throwing monsters together for an encounter. It's especially useful to keep this number in front of you when improvising encounters during a session. + +## Optional Scaling for Higher Levels + +As characters rise in level above 10th, their increased power and synergies mean that you might find the benchmark becomes less accurate about representing the potential deadliness of encounters. If this is the case in your games, you can scale up the benchmark equation for higher-level characters with the following variation: + +**An encounter might be deadly if the sum total of monster challenge ratings is greater than 3/4 of the sum total of character levels, for characters of 11th to 16th level; or equal to the sum total of character levels, for characters of 17th level or higher.** + +Explore this option only if it feels as though encounters assessed using the original benchmark are consistently underpowered for your group. But if you need it, this option sets the benchmark for truly dangerous encounters at the highest levels, where characters of great heroic capability might face several powerful creatures in a single battle. + +## The CR Cap for a Single Monster + +Although the lazy encounter benchmark uses the total challenge ratings of all monsters in an encounter, it doesn't take into consideration the maximum challenge rating for any single monster, either alone or with a group. For that, you can use a different benchmark calculation to describe when a single monster of a particular challenge rating might represent a deadly challenge for characters of a given level, whether battled alone or in a group: + +**A single monster might be deadly if their challenge rating is equal to or higher than the average level of the characters, or 1.5 times the average level of the characters if the characters are 5th level or higher.** + +## Tuning the Benchmark + +Given the many different circumstances that can affect character power and encounter difficulty, you might want to tune the benchmark calculation up or down to serve as a more accurate guideline for your own group. To do so, simply increase or decrease the number of characters you use to calculate the sum total of character levels, treating that as a dial for tuning the benchmark for your own group. + +For example, if a party in your campaign has companion NPCs who make combat easier, or if characters employ spells that often remove monsters from combat, you can pretend the group consists of six characters instead of their actual five and calculate the benchmark that way. Likewise, if a group regularly gets into trouble in encounters where the sum total of monster CR is well below the benchmark, pretend the party has four characters instead of five. + +## Other Considerations + +Many circumstances can change how challenging an actual combat encounter might be. All of the following examples set up types of encounters that often play out more easily than the lazy encounter benchmark might suggest: + +* The fight features significantly more characters than foes. +* The characters' goals in an encounter can be achieved without eliminating all the foes from the fight. +* The environment favors the characters. +* The monsters come in waves instead of all at once. +* Foes are distracted or in disadvantageous positions. +* The monsters are all surprised, or all act after the characters in initiative. +* The characters have spells or features well suited for taking out foes. +* The players engage in excellent tactical behavior and synergistic strategies. +* The characters are well rested and coming in fresh. +* The characters have an arsenal of powerful magic items. +* The characters have useful companions. + +Likewise, the monsters might be favored over the characters in the following types of encounters: + +* The monsters outnumber the characters. +* The characters are surprised by the monsters. +* Foes have advantageous position. +* The terrain favors the foes. +* The monsters fight with a strong tactical synergy. +* The characters are coming in well worn by previous fights and have no chance to rest. + +As you make use of the benchmark, you'll soon come to recognize when the circumstances of a combat encounter might steer it toward an easier or harder fight. + +> ***Alternative Benchmark*** + +> An alternative approach to the lazy encounter benchmark lets you compare monster challenge ratings and character levels with a single straightforward formula, as follows: + +> To assess the strength of the characters relative to the monsters they face, take the sum total of all character levels and divide by 4. Then multiply that number by the characters' tier. + +> At 1st tier (levels 1 to 4), the benchmark is simply the total of all character levels divided by 4. But as characters rise in level and across the tiers of play, they experience three distinct bumps in power at 5th level (the start of the second tier, multiplying the benchmark by 2), 11th level (the start of the third tier, for a ×3 multiplier), and 17th level (the start of the fourth tier, for a ×4 multiplier). + +> In a broad sense, characters of the second tier can be thought of as effectively twice as powerful as characters of the first tier, with characters of the third and fourth tiers increasing in power yet again. However, as with the default versions of the benchmarks, it's important to remember that increasing the multipliers for the third and fourth tier is optional, and should be done only if you find that encounters created with the ×2 multiplier aren't keeping up to the characters. diff --git a/markdown_obsidian_5e_monster_builder/The Lazy GM's 5e Monster Builder Resource Document.md b/markdown_obsidian_5e_monster_builder/The Lazy GM's 5e Monster Builder Resource Document.md new file mode 100644 index 0000000..0e5619d --- /dev/null +++ b/markdown_obsidian_5e_monster_builder/The Lazy GM's 5e Monster Builder Resource Document.md @@ -0,0 +1,31 @@ +# The Lazy GM's 5e Monster Builder Resource Document + +Scott Fitzgerald Gray, Teos Abadía, Michael E. Shea. + +Updated 18 January 2024 + +This document includes tools and material for building, modifying, and running monsters for your 5th edition fantasy roleplaying games. + +The material in this document is copyright 2023 Scott Fitzgerald Gray, Teos Abadía, and Michael E. Shea and is licensed under a [Creative Commons Attribution 4.0 International License](http://creativecommons.org/licenses/by/4.0/). You are free to use this content in any manner permitted by that license as long as you include the following attribution statement in your own work: + +> This work includes material taken from the [Lazy GM's 5e Monster Builder Resource Document](https://slyflourish.com/lazy_5e_monster_building_resource_document.html) written by Teos Abadía of [Alphastream.org](https://alphastream.org), Scott Fitzgerald Gray of [Insaneangel.com](https://insaneangel.com), and Michael E. Shea of [SlyFlourish.com](https://slyflourish.com), available under a [Creative Commons Attribution 4.0 International License](http://creativecommons.org/licenses/by/4.0/). + +This work includes material taken from the System Reference Document 5.1 ("SRD 5.1") by Wizards of the Coast LLC and available at . The SRD 5.1 is licensed under the Creative Commons Attribution 4.0 International License available at . + +This document is a single self-contained HTML file. To save an offline local copy, "save as" either the page source or HTML in your browser. Use tools such as [Calibre](https://calibre-ebook.com) and [Pandoc](https://pandoc.org) to convert this document to markdown, PDF, ePub or another format of your choice. Use [Send to Kindle](https://www.amazon.com/sendtokindle) to send a version to your Kindle. + +You can find several versions of this document including EPUB, Markdown, and JSON on [Crit.Tech's LGMRD Github Repo](https://github.com/crit-tech/LGMRD). + +### Table of Contents + +* [Building a Quick Monster](buildingaquickmonster.md) +* [General-Use Combat Stat Blocks](generalusestatblocks.md) +* [Lazy Tricks for Running Monsters](lazytricksforrunningmonsters.md) +* [Lightning Rods](lightingrods.md) +* [Monster Roles](monsterroles.md) +* [Bosses and Minions](bossesandminions.md) +* [The Combat Encounter Checklist](combatencounterchecklist.md) +* [Monster Combinations for a Hard Challenge](monstercombinationsforahardchallenge.md) +* [The Lazy Encounter Benchmark](lazyencounterbenchmark.md) +* [Monsters by Adventure Location](monstersbyadventurelocation.md) +* [Monsters and the Tiers of Play](monstersandthetiersofplay.md) diff --git a/markdown_separate/buildingagroup.md b/markdown_separate/buildingagroup.md index 93e18ee..48defcb 100644 --- a/markdown_separate/buildingagroup.md +++ b/markdown_separate/buildingagroup.md @@ -8,21 +8,21 @@ Finding and maintaining a solid group for roleplaying gaming remains the most di The first step to building an RPG group is finding players. Some of the most common ways to find players for a group include the following: -* Recruit friends and family -* Recruit coworkers -* Ask about putting a notice up at your local game store or library -* Join local organized play groups -* Seek LFG (Looking for Group) forums on Discord, Reddit, Meetup, Next Door, and other forums +* Recruit friends and family +* Recruit coworkers +* Ask about putting a notice up at your local game store or library +* Join local organized play groups +* Seek LFG (Looking for Group) forums on Discord, Reddit, Meetup, Next Door, and other forums ## Selecting Players Before you invite a player to your gaming group, ensure that they're the right fit for your game and the other players. Start by asking a prospective player questions about their commitment, play style, and reaction to your style of play. Example questions might include the following: -* Do they live nearby, and can they commit to the game's schedule? -* Do they consider themselves a more story-focused or more tactics-focused player? -* Are they okay playing with theater-of-the-mind combat or playing on a battle grid? -* What do they enjoy most about RPGs? -* How do they weight their enjoyment of the following: NPC interaction, exploration, world lore, character background, character optimization, and tactical combat? +* Do they live nearby, and can they commit to the game's schedule? +* Do they consider themselves a more story-focused or more tactics-focused player? +* Are they okay playing with theater-of-the-mind combat or playing on a battle grid? +* What do they enjoy most about RPGs? +* How do they weight their enjoyment of the following: NPC interaction, exploration, world lore, character background, character optimization, and tactical combat? Asking questions isn't about getting right or wrong answers. Rather, questions can help you identify players who will fit well into your game. They'll also help you determine if there are things a player desires that they're not going to find in your game. diff --git a/markdown_separate/connectingcharacters.md b/markdown_separate/connectingcharacters.md index 235a7f4..d43078a 100644 --- a/markdown_separate/connectingcharacters.md +++ b/markdown_separate/connectingcharacters.md @@ -10,15 +10,15 @@ For single-session games, consider establishing a single group relationship for ## Group Connections -1. Mercenary company -2. Self-employed investigators -3. Official investigators -4. Royal advisors -5. Thieves' guild -6. Secret society -7. Religious investigators -8. Adventuring company -9. Business investigators +1. Mercenary company +2. Self-employed investigators +3. Official investigators +4. Royal advisors +5. Thieves' guild +6. Secret society +7. Religious investigators +8. Adventuring company +9. Business investigators 10. Assassins' guild 11. Wizarding school 12. Monastic students @@ -33,15 +33,15 @@ For single-session games, consider establishing a single group relationship for ## Character Connections -1. Sibling of -2. Saved by -3. Served with -4. Protected by -5. Adventured with -6. Friendly rival of -7. Childhood friend of -8. Magically bound to -9. Survived with +1. Sibling of +2. Saved by +3. Served with +4. Protected by +5. Adventured with +6. Friendly rival of +7. Childhood friend of +8. Magically bound to +9. Survived with 10. Escaped with 11. Apprentice of 12. Acolyte of diff --git a/markdown_separate/coreadventuregenerators.md b/markdown_separate/coreadventuregenerators.md index 3965818..b8b8532 100644 --- a/markdown_separate/coreadventuregenerators.md +++ b/markdown_separate/coreadventuregenerators.md @@ -37,15 +37,15 @@ Any quests the characters are asked to fulfill might be distilled down to one of ## 1d20 Quests -1. Find an item -2. Kill a villain -3. Rescue an NPC -4. Uncover a secret -5. Clear out monsters -6. Protect a monument -7. Protect an NPC -8. Steal an item -9. Return an item +1. Find an item +2. Kill a villain +3. Rescue an NPC +4. Uncover a secret +5. Clear out monsters +6. Protect a monument +7. Protect an NPC +8. Steal an item +9. Return an item 10. Close a gate 11. Open a gate 12. Activate a monument @@ -118,15 +118,15 @@ Use this list when you need to define the purpose of a chamber in a dungeon, kee ## 1d20 Chambers -1. Armory -2. Prison -3. Throne room -4. Crypt -5. Treasury -6. Barracks -7. Monstrous lair -8. Storeroom -9. Charnel pit +1. Armory +2. Prison +3. Throne room +4. Crypt +5. Treasury +6. Barracks +7. Monstrous lair +8. Storeroom +9. Charnel pit 10. Museum 11. Torture chamber 12. Bedchamber @@ -145,15 +145,15 @@ Add useful discoveries such as the following to your adventure, to create upward ## 1d20 Discoveries -1. Helpful NPC -2. Holy fountain -3. Inspiring statue -4. Revealing mosaic -5. Radiant shrine -6. Friendly spirit -7. Hidden campsite -8. Edible mushrooms -9. Explorer's pack +1. Helpful NPC +2. Holy fountain +3. Inspiring statue +4. Revealing mosaic +5. Radiant shrine +6. Friendly spirit +7. Hidden campsite +8. Edible mushrooms +9. Explorer's pack 10. Spy hole 11. Adventurer's journal 12. Escape tunnel @@ -174,15 +174,15 @@ For foes such as bandits and cultists, you can also roll for ancestry on the NPC ## 1d20 Monsters -1. Giant rats -2. Bandits -3. Cultists -4. Acolytes -5. Stirges -6. Guards -7. Skeletons -8. Oozes -9. Shadows +1. Giant rats +2. Bandits +3. Cultists +4. Acolytes +5. Stirges +6. Guards +7. Skeletons +8. Oozes +9. Shadows 10. Spies 11. Ghouls 12. Specters @@ -201,15 +201,15 @@ Add traps as they make sense for the adventure. At 1st through 4th level, traps ## 1d20 Traps and Hazards -1. Spiked pit -2. Lightning blasts -3. Poisoned darts -4. Swarms of insects -5. Explosive runes -6. Radiant pillars -7. Flame-jet idols -8. Force beams -9. Crippling caltrops +1. Spiked pit +2. Lightning blasts +3. Poisoned darts +4. Swarms of insects +5. Explosive runes +6. Radiant pillars +7. Flame-jet idols +8. Force beams +9. Crippling caltrops 10. Acidic pools 11. Bear traps 12. Ghostly haunting @@ -228,15 +228,15 @@ This list lets you add treasure to the adventure as appropriate. Roll a d10 to d ## 1d20 Treasures -1. Coins -2. Bag of gemstones -3. Platinum jewelry -4. Rune-scribed gem -5. Golden goblet -6. Ancient tome -7. Treasure map -8. Ancient relic -9. Fantastic art +1. Coins +2. Bag of gemstones +3. Platinum jewelry +4. Rune-scribed gem +5. Golden goblet +6. Ancient tome +7. Treasure map +8. Ancient relic +9. Fantastic art 10. Jeweled idol 11. Potion of healing 12. Other potion @@ -255,15 +255,15 @@ Some commonly discovered relics might grant a single- use spell, while less comm ## 1d20 Spells -1. *Magic missile* -2. *Burning hands* -3. *Shield* -4. *Cure wounds* -5. *Guiding bolt* -6. *Invisibility* -7. *Scorching ray* -8. *Shatter* -9. *Aid* +1. *Magic missile* +2. *Burning hands* +3. *Shield* +4. *Cure wounds* +5. *Guiding bolt* +6. *Invisibility* +7. *Scorching ray* +8. *Shatter* +9. *Aid* 10. *Misty step* 11. *Spiritual weapon* 12. *Lesser restoration* diff --git a/markdown_separate/creatingsecrets.md b/markdown_separate/creatingsecrets.md index f1c9e54..cc0bd37 100644 --- a/markdown_separate/creatingsecrets.md +++ b/markdown_separate/creatingsecrets.md @@ -8,15 +8,15 @@ The following prompts don't create specific secrets and clues. Rather, the quest Use character secrets to tie the characters to the world around them. These sorts of secrets might be revealed by NPCs, old journals or letters, suddenly recalled memories, or prophetic dreams. -1. What family history might be revealed? -2. What ties the character to this location? -3. What ghost or spirit haunts the character? -4. What dreams fill the character's rest? -5. What parasite secretly infests the character? -6. Which family member is involved in the adventure? -7. How is the villain related to the character? -8. What NPC who the character thinks is dead still lives? -9. What ritual was the character blessed with as a child? +1. What family history might be revealed? +2. What ties the character to this location? +3. What ghost or spirit haunts the character? +4. What dreams fill the character's rest? +5. What parasite secretly infests the character? +6. Which family member is involved in the adventure? +7. How is the villain related to the character? +8. What NPC who the character thinks is dead still lives? +9. What ritual was the character blessed with as a child? 10. What previous event ties the character to the story? ## Historical Secrets @@ -25,15 +25,15 @@ Use historical secrets to give the characters meaningful and useful information Historical secrets might be found as mosaics in ancient tombs, statues in old ruins, dusty tomes in ancient libraries, markings on strange weapons, or tales shared among elderly villagers. -1. What dead god has a connection to the area? -2. What armies once battled here? -3. What cruel lord was slain in this place? -4. What ancient civilization once thrived here? -5. What old empire's settlements lie buried here? -6. What alien creature or power is hidden here? -7. What rebellion took place here? -8. What primeval mysteries lay buried here? -9. What was this location's former purpose? +1. What dead god has a connection to the area? +2. What armies once battled here? +3. What cruel lord was slain in this place? +4. What ancient civilization once thrived here? +5. What old empire's settlements lie buried here? +6. What alien creature or power is hidden here? +7. What rebellion took place here? +8. What primeval mysteries lay buried here? +9. What was this location's former purpose? 10. What horrific monster once ruled here? ## NPC and Villain Secrets @@ -42,15 +42,15 @@ Use NPC and villain secrets to reveal information about these NPCs to the charac Characters might learn NPC or villain secrets from a villain's herald or sidekick, rumors at a local pub, recovered journals, a minion's last words, captured letters, or town gossip. -1. What dark history follows the NPC? -2. What makes the NPC think they're right? -3. What was the NPC's great accomplishment? -4. What foe did the NPC defeat? -5. What makes the NPC politically untouchable? -6. What great power does the NPC possess? -7. What does the NPC desire? -8. What regular routines does the NPC follow? -9. Who does the NPC love above all others? +1. What dark history follows the NPC? +2. What makes the NPC think they're right? +3. What was the NPC's great accomplishment? +4. What foe did the NPC defeat? +5. What makes the NPC politically untouchable? +6. What great power does the NPC possess? +7. What does the NPC desire? +8. What regular routines does the NPC follow? +9. Who does the NPC love above all others? 10. What secret does the NPC want to keep hidden? ## Plot and Story Secrets @@ -59,13 +59,13 @@ Use plot and story secrets to teach characters about the larger events going on Characters might learn these secrets from quest-giving NPCs, notes found on defeated foes, dreams or portents from the gods, NPCs fleeing a disaster, arcane feedback from an object, or psychic projections. -1. What villainous event will soon come to pass? -2. What disaster is about to befall the land? -3. What royal figure was just assassinated? -4. What dungeon entrance just became revealed? -5. What monsters recently appeared in the realm? -6. What armies just invaded the realm? -7. What dark sign or portent just appeared? -8. What natural disaster has recently struck the area? -9. What unnatural being has appeared in the world? +1. What villainous event will soon come to pass? +2. What disaster is about to befall the land? +3. What royal figure was just assassinated? +4. What dungeon entrance just became revealed? +5. What monsters recently appeared in the realm? +6. What armies just invaded the realm? +7. What dark sign or portent just appeared? +8. What natural disaster has recently struck the area? +9. What unnatural being has appeared in the world? 10. What unusual creature was seen walking the wilds? diff --git a/markdown_separate/eightsteps.md b/markdown_separate/eightsteps.md index 29a8558..e5b09fa 100644 --- a/markdown_separate/eightsteps.md +++ b/markdown_separate/eightsteps.md @@ -2,14 +2,14 @@ For a typical game session, the Lazy RPG Prep checklist looks like this: -* Review the characters -* Create a strong start -* Outline potential scenes -* Define secrets and clues -* Develop fantastic locations -* Outline important NPCs -* Choose relevant monsters -* Select magic item rewards +* Review the characters +* Create a strong start +* Outline potential scenes +* Define secrets and clues +* Develop fantastic locations +* Outline important NPCs +* Choose relevant monsters +* Select magic item rewards Here's a brief summary of each of the steps. @@ -59,6 +59,6 @@ These steps and processes work just as well whether you interact with your playe If you have very little time, reduce the checklist to the most important things you can prepare before it's time to run the game. Here are three example steps. -* Create a strong start -* Define secrets and clues -* Develop fantastic locations +* Create a strong start +* Define secrets and clues +* Develop fantastic locations diff --git a/markdown_separate/index.md b/markdown_separate/index.md index 54b4d46..3c7151d 100644 --- a/markdown_separate/index.md +++ b/markdown_separate/index.md @@ -20,35 +20,35 @@ You can find several versions of this document including EPUB, Markdown, and JSO ## Table of Contents -* [The Eight Steps of Lazy RPG Prep](eightsteps.md) -* [The Lazy RPG Preparation Process](prepprocess.md) -* [Example Strong Starts](strongstarts.md) -* [Creating Secrets and Clues](creatingsecrets.md) -* [Building an RPG Group](buildingagroup.md) -* [Session Zero Checklist](sessionzerochecklist.md) -* [Safety Tools](safetytools.md) -* [Connecting Characters](connectingcharacters.md) -* [Spiral Campaign Development](spiralcampaigns.md) -* [Quest Templates](questtemplates.md) -* [Tools for 5e Improvisation](toolsforimprov.md) -* [Quick Tricks for Lazier 5e Games](quicktricks.md) -* [5e Quick Encounter Building](quickencounterbuilding.md) -* [Wilderness Travel and Exploration](wildernesstravel.md) -* [Lazy Combat Encounter Building for 5e](lazycombatencounterbuilding.md) -* [Theater of the Mind Guidelines (Extended)](totmguidelines1.md) -* [Theater of the Mind Guidelines (Abbreviated)](totm2.md) -* [Zone-Based Combat](zonebasedcombat.md) -* [Monster Difficulty Dials](monsterdifficultydials.md) -* [Monster Templates](monstertemplates.md) -* [Undead Templates](undeadtemplates.md) -* [Running Hordes](runninghordes.md) -* [Stress Effects](stresseffects.md) -* [Core Adventure Generators](coreadventuregenerators.md) -* [NPC Generator](npcgenerator.md) -* [Treasure Generator](treasuregenerator.md) -* [Random Traps](randomtraps.md) -* [Random Monuments](randommonuments.md) -* [Random Items](randomitems.md) -* [Random Town Events](randomtownevents.md) -* [Random Dungeon Monsters](randomdungeonmonsters.md) -* [Lazy Solo 5e](lazysolo5e.md) +* [The Eight Steps of Lazy RPG Prep](eightsteps.md) +* [The Lazy RPG Preparation Process](prepprocess.md) +* [Example Strong Starts](strongstarts.md) +* [Creating Secrets and Clues](creatingsecrets.md) +* [Building an RPG Group](buildingagroup.md) +* [Session Zero Checklist](sessionzerochecklist.md) +* [Safety Tools](safetytools.md) +* [Connecting Characters](connectingcharacters.md) +* [Spiral Campaign Development](spiralcampaigns.md) +* [Quest Templates](questtemplates.md) +* [Tools for 5e Improvisation](toolsforimprov.md) +* [Quick Tricks for Lazier 5e Games](quicktricks.md) +* [5e Quick Encounter Building](quickencounterbuilding.md) +* [Wilderness Travel and Exploration](wildernesstravel.md) +* [Lazy Combat Encounter Building for 5e](lazycombatencounterbuilding.md) +* [Theater of the Mind Guidelines (Extended)](totmguidelines1.md) +* [Theater of the Mind Guidelines (Abbreviated)](totm2.md) +* [Zone-Based Combat](zonebasedcombat.md) +* [Monster Difficulty Dials](monsterdifficultydials.md) +* [Monster Templates](monstertemplates.md) +* [Undead Templates](undeadtemplates.md) +* [Running Hordes](runninghordes.md) +* [Stress Effects](stresseffects.md) +* [Core Adventure Generators](coreadventuregenerators.md) +* [NPC Generator](npcgenerator.md) +* [Treasure Generator](treasuregenerator.md) +* [Random Traps](randomtraps.md) +* [Random Monuments](randommonuments.md) +* [Random Items](randomitems.md) +* [Random Town Events](randomtownevents.md) +* [Random Dungeon Monsters](randomdungeonmonsters.md) +* [Lazy Solo 5e](lazysolo5e.md) diff --git a/markdown_separate/lazycombatencounterbuilding.md b/markdown_separate/lazycombatencounterbuilding.md index 7baccf3..af6a933 100644 --- a/markdown_separate/lazycombatencounterbuilding.md +++ b/markdown_separate/lazycombatencounterbuilding.md @@ -32,13 +32,13 @@ This benchmark assumes multiple monsters, and doesn't work well for gauging comb No chart, table, or equation works perfectly to judge encounter balance at any given level, because no such system can take into account the wide range of options that can affect combat. Any individual character's effective power in a fight can go well beyond what's expected for their given level, especially at higher levels. And other factors that can affect a character's power might include any of the following: -* Player experience -* Class synergy between different characters in the party -* Magic items -* Environmental and situational circumstances -* Feats and multiclassing -* The total number of actions on either side -* How well rested the characters are +* Player experience +* Class synergy between different characters in the party +* Magic items +* Environmental and situational circumstances +* Feats and multiclassing +* The total number of actions on either side +* How well rested the characters are So use the benchmarks for determining whether an encounter might be deadly as a starting point. Then trust that you'll be better able to gauge what your characters can handle in combat the more you see them in action during the game. diff --git a/markdown_separate/lazysolo5e.md b/markdown_separate/lazysolo5e.md index d10cdbe..09fcb68 100644 --- a/markdown_separate/lazysolo5e.md +++ b/markdown_separate/lazysolo5e.md @@ -24,15 +24,15 @@ Each time your roll comes up 4, 5, 6, or 7, indicated by "QP" below, your quest On your fourth roll of quest progress, you reach the final challenge of the quest. If you succeed, you have completed the quest and gain a new level. -1. Trap or hazard -2. Trap or hazard -3. Monster and harmful monument -4. Monster and harmful monument (QP) -5. Monster and neutral monument (QP) -6. Monster and neutral monument (QP) -7. Monster and helpful monument (QP) -8. Monster and helpful monument -9. Healing font (restore 2d6 hit points). +1. Trap or hazard +2. Trap or hazard +3. Monster and harmful monument +4. Monster and harmful monument (QP) +5. Monster and neutral monument (QP) +6. Monster and neutral monument (QP) +7. Monster and helpful monument (QP) +8. Monster and helpful monument +9. Healing font (restore 2d6 hit points). 10. Unguarded treasure ## Traps and Hazards @@ -51,12 +51,12 @@ Each monster encounter includes a helpful, neutral, or harmful monument. Generat Roll a d6 to determine the effect of the monument. -1. +1 to AC -2. +1 to attacks and save DCs -3. +1 AC and saving throws -4. +1 temp hit point per character level (minimum 5) -5. +1d6 damage per five character levels -6. Advantage on attack rolls +1. +1 to AC +2. +1 to attacks and save DCs +3. +1 AC and saving throws +4. +1 temp hit point per character level (minimum 5) +5. +1d6 damage per five character levels +6. Advantage on attack rolls Helpful monuments provide this benefit to your character. Harmful monuments provide this benefit to monsters. For neutral monuments, your character can roll a DC 12 Intelligence (Arcana or Religion) check. On a success, your character gains the benefit. On a failure, the monster gains the benefit. @@ -66,13 +66,13 @@ When you defeat a monster or enter a chamber with unguarded treasure, roll on th ## 1d8 Treasures -1. No treasure -2. No treasure -3. 3d12 gp -4. 3d12 gp -5. *Potion of healing* -6. *Potion of healing* -7. Consumable item -8. Permanent item +1. No treasure +2. No treasure +3. 3d12 gp +4. 3d12 gp +5. *Potion of healing* +6. *Potion of healing* +7. Consumable item +8. Permanent item For consumable and permanent items, roll on the tables in the "[Treasure Generator](treasuregenerator.md)" section or a random treasure table of your choice. You can replace any consumable magic item with a *potion of healing*. You can replace any permanent magic item with a *+1 weapon* of your choice. diff --git a/markdown_separate/monstertemplates.md b/markdown_separate/monstertemplates.md index 383a70b..f97c87b 100644 --- a/markdown_separate/monstertemplates.md +++ b/markdown_separate/monstertemplates.md @@ -19,10 +19,10 @@ Apply this template to any monster to make an elemental version of that monster. Then choose one or more of the following traits to customize your monster, making use of the damage type determined by the elemental template: -* **Elemental Resistance.** The templated creature has resistance against its damage type. -* **Elemental Damage.** When the templated creature scores a hit using a weapon attack, the attack deals extra damage of its damage type. -* **Elemental Aura.** Any creature that starts their turn within an area surrounding the templated creature, or that enters that area for the first time on a turn, takes damage of the templated creature's type. -* **Elemental Shield.** Any creature that touches the templated creature or hits them with a melee attack while within 5 feet of them takes damage of the templated creature's type. +* **Elemental Resistance.** The templated creature has resistance against its damage type. +* **Elemental Damage.** When the templated creature scores a hit using a weapon attack, the attack deals extra damage of its damage type. +* **Elemental Aura.** Any creature that starts their turn within an area surrounding the templated creature, or that enters that area for the first time on a turn, takes damage of the templated creature's type. +* **Elemental Shield.** Any creature that touches the templated creature or hits them with a melee attack while within 5 feet of them takes damage of the templated creature's type. The amount of damage and the size of a templated creature's elemental aura is determined by the base creature's challenge rating. The damage noted is the same for both attacks and the creature's aura. @@ -40,24 +40,24 @@ This elemental template increases a monster's challenge rating by 1 or 2. Dire monsters are particularly large and dangerous versions of typical monsters, and can be created using the following guidelines: -* The monster's hit points are doubled. -* The monster's size increases one category. -* The monster gains a +2 bonus to attack rolls. -* The monster can use one or more of its standard attacks multiple times on its attack action. Use your best judgment to choose which of the monster's attacks to use for multiple attacks. -* The monster's challenge rating increases by 2 or 3. +* The monster's hit points are doubled. +* The monster's size increases one category. +* The monster gains a +2 bonus to attack rolls. +* The monster can use one or more of its standard attacks multiple times on its attack action. Use your best judgment to choose which of the monster's attacks to use for multiple attacks. +* The monster's challenge rating increases by 2 or 3. ## Fiendish Monsters Infernal or abyssal variants of existing monsters are endlessly spawned across the Lower Planes. This template can turn any monster into a fiendish variant: -* The monster's type becomes fiend. -* The monster has advantage on saving throws against spells and other magical effects. -* The monster has resistance to bludgeoning, piercing, and slashing damage from nonmagical attacks. -* The monster has resistance to cold and fire damage. -* The monster has immunity to poison damage and the poisoned condition. -* The monster's weapon attacks are magical. -* The monster has darkvision out to a range of 120 feet. -* The monster's challenge rating increases by 1. +* The monster's type becomes fiend. +* The monster has advantage on saving throws against spells and other magical effects. +* The monster has resistance to bludgeoning, piercing, and slashing damage from nonmagical attacks. +* The monster has resistance to cold and fire damage. +* The monster has immunity to poison damage and the poisoned condition. +* The monster's weapon attacks are magical. +* The monster has darkvision out to a range of 120 feet. +* The monster's challenge rating increases by 1. ## Spell-Infused Monsters diff --git a/markdown_separate/npcgenerator.md b/markdown_separate/npcgenerator.md index 1f1e499..561cdf7 100644 --- a/markdown_separate/npcgenerator.md +++ b/markdown_separate/npcgenerator.md @@ -14,15 +14,15 @@ Use the following table to choose a random ancestry for your NPC. ## 1d10 Ancestries -1. Human -2. Elf -3. Dwarf -4. Halfling -5. Goblin -6. Kobold -7. Gnome -8. Orc -9. Dragonborn +1. Human +2. Elf +3. Dwarf +4. Halfling +5. Goblin +6. Kobold +7. Gnome +8. Orc +9. Dragonborn 10. Tiefling ## Worldview @@ -31,15 +31,15 @@ An NPC's worldview can help determine how they initially react to the characters ## 1d20 Worldviews -1. Surly -2. Friendly -3. Brash -4. Elitist -5. Suspicious -6. Carefree -7. Loyal -8. Opportunistic -9. Wide-eyed +1. Surly +2. Friendly +3. Brash +4. Elitist +5. Suspicious +6. Carefree +7. Loyal +8. Opportunistic +9. Wide-eyed 10. Humorous 11. Cautious 12. Roisterous @@ -58,15 +58,15 @@ NPCs will often be most easily remembered by the players based on some unique as ## 1d20 Appearances and Mannerisms -1. Wild hair -2. Scarred cheek -3. Body tattoos -4. Smokes a pipe -5. Golden teeth -6. Walks with a limp -7. Dashing clothes -8. Picks teeth -9. Missing eye +1. Wild hair +2. Scarred cheek +3. Body tattoos +4. Smokes a pipe +5. Golden teeth +6. Walks with a limp +7. Dashing clothes +8. Picks teeth +9. Missing eye 10. Multicolored eyes 11. Feathered earring 12. Missing hand @@ -85,15 +85,15 @@ Assign a profession to your NPC to add color to their stat block. The commoner i ## 1d20 Professions -1. Farmer -2. Blacksmith -3. Clerk -4. Merchant -5. Apothecary -6. Bandit -7. Guide -8. Entertainer -9. Guard +1. Farmer +2. Blacksmith +3. Clerk +4. Merchant +5. Apothecary +6. Bandit +7. Guide +8. Entertainer +9. Guard 10. Soldier 11. Acolyte 12. Sailor diff --git a/markdown_separate/prepprocess.md b/markdown_separate/prepprocess.md index 822b0e5..d4cdfb7 100644 --- a/markdown_separate/prepprocess.md +++ b/markdown_separate/prepprocess.md @@ -2,56 +2,56 @@ ## The Lazy RPG Prep Toolkit -* Dice, pencils, and dry-erase markers -* GM's notebook -* Campaign worksheet -* Curated random name list -* 3×5 index cards -* Numbered initiative cards -* GM screen or cheat sheet -* Dry-erase flip mat -* Published books and adventures -* Miniatures, maps, and terrain as needed +* Dice, pencils, and dry-erase markers +* GM's notebook +* Campaign worksheet +* Curated random name list +* 3×5 index cards +* Numbered initiative cards +* GM screen or cheat sheet +* Dry-erase flip mat +* Published books and adventures +* Miniatures, maps, and terrain as needed ## Building a Lazy Campaign -* Develop a spiral campaign with the characters at the center -* Build a campaign hook focusing on a single major goal -* State the six truths of your campaign -* Define three fronts incorporating goals and grim portents -* Run a session zero to help build the characters and tie them together +* Develop a spiral campaign with the characters at the center +* Build a campaign hook focusing on a single major goal +* State the six truths of your campaign +* Define three fronts incorporating goals and grim portents +* Run a session zero to help build the characters and tie them together ## Running Your Game -* Relax -* Focus on your strong start -* Listen to the players, and build off of the ideas they bring you -* Trust your preparation to help you run a creative, flexible game -* Ask the players to summarize the events of the previous game session -* Draw players into the story by asking them to describe killing blows, define monster characteristics, and describe interesting events during travel -* Imagine the world as a living place when building scenes and situations -* Let the world and the NPCs react to the characters' actions -* Use a mixture of combat styles, including theater of the mind, gridded maps, and abstract maps -* Maintain a good pace by staying close to the action -* Cycle between action and relaxation, and alternate upward and downward emotional beats -* Use specific hopeful or fearful beats to send the action in a specific direction +* Relax +* Focus on your strong start +* Listen to the players, and build off of the ideas they bring you +* Trust your preparation to help you run a creative, flexible game +* Ask the players to summarize the events of the previous game session +* Draw players into the story by asking them to describe killing blows, define monster characteristics, and describe interesting events during travel +* Imagine the world as a living place when building scenes and situations +* Let the world and the NPCs react to the characters' actions +* Use a mixture of combat styles, including theater of the mind, gridded maps, and abstract maps +* Maintain a good pace by staying close to the action +* Cycle between action and relaxation, and alternate upward and downward emotional beats +* Use specific hopeful or fearful beats to send the action in a specific direction ## Thinking About Your Game -* Prime your GM's brain with great books, movies, and TV shows -* Remind yourself of the player characters' names and backgrounds -* Ask what the villains and NPCs are doing right now +* Prime your GM's brain with great books, movies, and TV shows +* Remind yourself of the player characters' names and backgrounds +* Ask what the villains and NPCs are doing right now ## Embrace the GM's Truths -* Players don't care as much as you think -* Players want to see their characters do awesome things -* The GM is not the enemy of the characters -* Be a fan of the characters +* Players don't care as much as you think +* Players want to see their characters do awesome things +* The GM is not the enemy of the characters +* Be a fan of the characters ## Lazy RPG Tricks -* Award levels at key points in the story -* Improvise ability and skill checks -* Delegate certain tasks to the players -* Use static monster damage +* Award levels at key points in the story +* Improvise ability and skill checks +* Delegate certain tasks to the players +* Use static monster damage diff --git a/markdown_separate/quickencounterbuilding.md b/markdown_separate/quickencounterbuilding.md index 0a3756e..c2d6e0b 100644 --- a/markdown_separate/quickencounterbuilding.md +++ b/markdown_separate/quickencounterbuilding.md @@ -4,24 +4,24 @@ When building encounters, start by choosing the type and number of monsters that ## For Characters of 1st Level -* CR 0 to 1/4: One monster per character -* CR 1/2: One monster per two characters -* CR 1: One monster per four characters +* CR 0 to 1/4: One monster per character +* CR 1/2: One monster per two characters +* CR 1: One monster per four characters ## For Characters of 2nd to 4th Level -* CR = 1/10 level: Two monsters per character -* CR = 1/4 level: One monster per character -* CR = 1/2 level: One monster per two characters -* CR = Level: One monster per four characters +* CR = 1/10 level: Two monsters per character +* CR = 1/4 level: One monster per character +* CR = 1/2 level: One monster per two characters +* CR = Level: One monster per four characters ## For characters of 5th to 20th Level -* CR = 1/10 level: Four monsters per character -* CR = 1/4 level: Two monsters per character -* CR = 1/2 level: One monster per character -* CR = 3/4 level: One monster per two characters -* CR = Level + 3: One monster per four characters +* CR = 1/10 level: Four monsters per character +* CR = 1/4 level: Two monsters per character +* CR = 1/2 level: One monster per character +* CR = 3/4 level: One monster per two characters +* CR = Level + 3: One monster per four characters Finally, tune encounters by adjusting the number of monsters, increasing or decreasing hit points, or making named or unique monsters more powerful. diff --git a/markdown_separate/quicktricks.md b/markdown_separate/quicktricks.md index d653008..d40c8f2 100644 --- a/markdown_separate/quicktricks.md +++ b/markdown_separate/quicktricks.md @@ -28,8 +28,8 @@ For simple battles, use a passive initiative score for monsters, equal to 10 plu Every few games, take time to ask each player for their "stars and wishes" — a concept described on the Gauntlet RPG blog. Ask each player two questions: -* What have they enjoyed about the game so far? -* What do they want to see more of in future games? +* What have they enjoyed about the game so far? +* What do they want to see more of in future games? The answers to these questions can help you understand exactly what your players are getting from the game, and can give you ideas for how the game might unfold in the future. @@ -41,9 +41,9 @@ Throughout the game, offer players advantage on checks or attacks if they're wil The following tricks make excellent additions to every GM's toolbox: -* Keep a list of random names on hand to use for NPCs, villains, and monsters. -* Describe the world through the eyes of the characters, actively narrating what they see and know about the world around them. -* Don't ask for a d20 roll if there isn't a chance for failure, or if failure wouldn't be interesting. This can help you remember to never bury useful or vital information behind an ability check. -* Reskin bandit, thug, ogre, and giant stat blocks to make new hard-hitting monsters of all different sizes. -* Reveal monster ACs and the DCs for ability checks to the players, and help them calculate ahead of time what they'll need on their d20 roll to succeed. This lets the players focus on the excitement of the die roll rather than the math. -* When appropriate, roll on a character's behalf so the player doesn't know the result for something their character wouldn't know. +* Keep a list of random names on hand to use for NPCs, villains, and monsters. +* Describe the world through the eyes of the characters, actively narrating what they see and know about the world around them. +* Don't ask for a d20 roll if there isn't a chance for failure, or if failure wouldn't be interesting. This can help you remember to never bury useful or vital information behind an ability check. +* Reskin bandit, thug, ogre, and giant stat blocks to make new hard-hitting monsters of all different sizes. +* Reveal monster ACs and the DCs for ability checks to the players, and help them calculate ahead of time what they'll need on their d20 roll to succeed. This lets the players focus on the excitement of the die roll rather than the math. +* When appropriate, roll on a character's behalf so the player doesn't know the result for something their character wouldn't know. diff --git a/markdown_separate/randomdungeonmonsters.md b/markdown_separate/randomdungeonmonsters.md index c4a66dc..06fc703 100644 --- a/markdown_separate/randomdungeonmonsters.md +++ b/markdown_separate/randomdungeonmonsters.md @@ -29,15 +29,15 @@ Before the number of monsters is set, you can gauge whether your intended encoun ## Monster List 1 (CR 1/8—1/4) -1. Bandit -2. Cultist -3. Flying snake -4. Giant crab -5. Giant rat -6. Kobold -7. Poisonous snake -8. Stirge -9. Tribal warrior +1. Bandit +2. Cultist +3. Flying snake +4. Giant crab +5. Giant rat +6. Kobold +7. Poisonous snake +8. Stirge +9. Tribal warrior 10. Axe beak 11. Blink dog 12. Dretch @@ -52,15 +52,15 @@ Before the number of monsters is set, you can gauge whether your intended encoun ## Monster List 2 (CR 1/4—1) -1. Wolf -2. Zombie -3. Cockatrice -4. Darkmantle -5. Gnoll -6. Gray ooze -7. Hobgoblin -8. Lizardfolk -9. Magmin +1. Wolf +2. Zombie +3. Cockatrice +4. Darkmantle +5. Gnoll +6. Gray ooze +7. Hobgoblin +8. Lizardfolk +9. Magmin 10. Orc 11. Rust monster 12. Sahuagin @@ -75,15 +75,15 @@ Before the number of monsters is set, you can gauge whether your intended encoun ## Monster List 3 (CR 1—2) -1. Dire wolf -2. Duergar -3. Ghoul -4. Giant spider -5. Giant toad -6. Harpy -7. Imp -8. Specter -9. Spy +1. Dire wolf +2. Duergar +3. Ghoul +4. Giant spider +5. Giant toad +6. Harpy +7. Imp +8. Specter +9. Spy 10. Ankheg 11. Bandit captain 12. Berserker @@ -98,15 +98,15 @@ Before the number of monsters is set, you can gauge whether your intended encoun ## Monster List 4 (CR 2—3) -1. Azer -2. Green dragon wyrmling -3. Grick -4. Griffon -5. Merrow -6. Mimic -7. Minotaur skeleton -8. Ochre jelly -9. Ogre +1. Azer +2. Green dragon wyrmling +3. Grick +4. Griffon +5. Merrow +6. Mimic +7. Minotaur skeleton +8. Ochre jelly +9. Ogre 10. Ogre zombie 11. Priest 12. Rug of smothering @@ -121,15 +121,15 @@ Before the number of monsters is set, you can gauge whether your intended encoun ## Monster List 5 (CR 3—4) -1. Doppelganger -2. Giant scorpion -3. Green hag -4. Hell hound -5. Knight -6. Manticore -7. Minotaur -8. Mummy -9. Nightmare +1. Doppelganger +2. Giant scorpion +3. Green hag +4. Hell hound +5. Knight +6. Manticore +7. Minotaur +8. Mummy +9. Nightmare 10. Owlbear 11. Phase spider 12. Veteran @@ -144,15 +144,15 @@ Before the number of monsters is set, you can gauge whether your intended encoun ## Monster List 6 (CR 4—5) -1. Lamia -2. Red dragon wyrmling -3. Succubus/incubus -4. Wereboar -5. Air elemental -6. Barbed devil -7. Bulette -8. Earth elemental -9. Fire elemental +1. Lamia +2. Red dragon wyrmling +3. Succubus/incubus +4. Wereboar +5. Air elemental +6. Barbed devil +7. Bulette +8. Earth elemental +9. Fire elemental 10. Flesh golem 11. Giant crocodile 12. Gladiator @@ -167,15 +167,15 @@ Before the number of monsters is set, you can gauge whether your intended encoun ## Monster List 7 (CR 5—8) -1. Salamander -2. Vampire spawn -3. Water elemental -4. Wraith -5. Xorn -6. Chimera -7. Drider -8. Invisible stalker -9. Mage +1. Salamander +2. Vampire spawn +3. Water elemental +4. Wraith +5. Xorn +6. Chimera +7. Drider +8. Invisible stalker +9. Mage 10. Medusa 11. Vrock 12. Wyvern @@ -190,15 +190,15 @@ Before the number of monsters is set, you can gauge whether your intended encoun ## Monster List 8 (CR 8—12) -1. Frost giant -2. Hezrou -3. Hydra -4. Spirit naga -5. Young green dragon -6. Bone devil -7. Clay golem -8. Cloud giant -9. Fire giant +1. Frost giant +2. Hezrou +3. Hydra +4. Spirit naga +5. Young green dragon +6. Bone devil +7. Clay golem +8. Cloud giant +9. Fire giant 10. Glabrezu 11. Young blue dragon 12. Aboleth @@ -213,28 +213,28 @@ Before the number of monsters is set, you can gauge whether your intended encoun ## Monster List 9 (CR 12—16) -1. Erinyes -2. Adult white dragon -3. Nalfeshnee -4. Rakshasa -5. Storm giant -6. Vampire -7. Adult black dragon -8. Ice devil -9. Adult green dragon +1. Erinyes +2. Adult white dragon +3. Nalfeshnee +4. Rakshasa +5. Storm giant +6. Vampire +7. Adult black dragon +8. Ice devil +9. Adult green dragon 10. Mummy lord 11. Purple worm 12. Adult blue dragon ## Monster List 10 (CR 16—24) -1. Iron golem -2. Marilith -3. Adult red dragon -4. Balor -5. Ancient white dragon -6. Pit fiend -7. Anclent black dragon -8. Lich -9. Ancient blue dragon +1. Iron golem +2. Marilith +3. Adult red dragon +4. Balor +5. Ancient white dragon +6. Pit fiend +7. Anclent black dragon +8. Lich +9. Ancient blue dragon 10. Ancient red dragon diff --git a/markdown_separate/randomitems.md b/markdown_separate/randomitems.md index 6f99a33..8da9b51 100644 --- a/markdown_separate/randomitems.md +++ b/markdown_separate/randomitems.md @@ -8,15 +8,15 @@ Also included is a table noting the four types of *healing potions* and how many ## 1d20 Weapon Types -1. Dagger -2. Mace -3. Quarterstaff -4. Spear -5. Light crossbow -6. Shortbow -7. Battleaxe -8. Flail -9. Glaive +1. Dagger +2. Mace +3. Quarterstaff +4. Spear +5. Light crossbow +6. Shortbow +7. Battleaxe +8. Flail +9. Glaive 10. Greataxe 11. Greatsword 12. Longsword @@ -31,15 +31,15 @@ Also included is a table noting the four types of *healing potions* and how many ## 1d20 Item Origins -1. Draconic -2. Dwarven -3. Elven -4. Primeval -5. Divine -6. Unholy -7. Abyssal -8. Otherworldly -9. Orcish +1. Draconic +2. Dwarven +3. Elven +4. Primeval +5. Divine +6. Unholy +7. Abyssal +8. Otherworldly +9. Orcish 10. Undead 11. Goblinoid 12. Ghoulish @@ -54,15 +54,15 @@ Also included is a table noting the four types of *healing potions* and how many ## 1d20 Item Conditions -1. Grimy -2. Chipped -3. Rough -4. Smooth -5. Ancient -6. Crumbling -7. Pristine -8. Cool -9. Ornate +1. Grimy +2. Chipped +3. Rough +4. Smooth +5. Ancient +6. Crumbling +7. Pristine +8. Cool +9. Ornate 10. Plain 11. Rune-scribed 12. Carved @@ -77,30 +77,30 @@ Also included is a table noting the four types of *healing potions* and how many ## 1d12 Armor Types -1. Leather -2. Studded leather -3. Hide -4. Chain shirt -5. Scale mail -6. Breastplate -7. Half plate -8. Ring mail -9. Chain mail +1. Leather +2. Studded leather +3. Hide +4. Chain shirt +5. Scale mail +6. Breastplate +7. Half plate +8. Ring mail +9. Chain mail 10. Splint 11. Plate 12. Shield ## 50 Mundane Items -1. Amulet -2. Arrowhead -3. Bell -4. Bird skull -5. Bone -6. Bowl -7. Box -8. Bracelet -9. Brooch +1. Amulet +2. Arrowhead +3. Bell +4. Bird skull +5. Bone +6. Bowl +7. Box +8. Bracelet +9. Brooch 10. Buckle 11. Candle 12. Coin @@ -145,15 +145,15 @@ Also included is a table noting the four types of *healing potions* and how many ## 50 Spell Effect -1. *Acid arrow* -2. *Acid splash* -3. *Bane* -4. *Banishment* -5. *Bestow curse* -6. *Black tentacles* -7. *Bless* -8. *Blight* -9. *Blindness/ deafness* +1. *Acid arrow* +2. *Acid splash* +3. *Bane* +4. *Banishment* +5. *Bestow curse* +6. *Black tentacles* +7. *Bless* +8. *Blight* +9. *Blindness/ deafness* 10. *Burning hands* 11. *Charm person* 12. *Cloudkill* diff --git a/markdown_separate/randommonuments.md b/markdown_separate/randommonuments.md index c2e484e..ad41a62 100644 --- a/markdown_separate/randommonuments.md +++ b/markdown_separate/randommonuments.md @@ -4,15 +4,15 @@ Filling the various chambers and locations in your game with interesting feature ## 1d20 Origins -1. Draconic -2. Dwarven -3. Elven -4. Primeval -5. Divine -6. Unholy -7. Abyssal -8. Otherworldly -9. Orcish +1. Draconic +2. Dwarven +3. Elven +4. Primeval +5. Divine +6. Unholy +7. Abyssal +8. Otherworldly +9. Orcish 10. Undead 11. Goblinoid 12. Ghoulish @@ -27,15 +27,15 @@ Filling the various chambers and locations in your game with interesting feature ## 1d20 Conditions -1. Crumbling -2. Sunken -3. Pristine -4. Excavated -5. Vine-covered -6. Ruined -7. Cracked -8. Shattered -9. Buried +1. Crumbling +2. Sunken +3. Pristine +4. Excavated +5. Vine-covered +6. Ruined +7. Cracked +8. Shattered +9. Buried 10. Gore-covered 11. Bloody 12. Glyph-marked @@ -50,15 +50,15 @@ Filling the various chambers and locations in your game with interesting feature ## 1d20 Unusual Effects -1. Undeath -2. Fire -3. Madness -4. Water -5. Radiance -6. Arcane -7. Poison -8. Acid -9. Disease +1. Undeath +2. Fire +3. Madness +4. Water +5. Radiance +6. Arcane +7. Poison +8. Acid +9. Disease 10. Psionics 11. Frost 12. Lightning @@ -73,15 +73,15 @@ Filling the various chambers and locations in your game with interesting feature ## 100 Monument Structures -1. Aerie -2. Altar -3. Aqueduct -4. Arcane circle -5. Archway -6. Aviary -7. Barrow -8. Battlefield -9. Bell +1. Aerie +2. Altar +3. Aqueduct +4. Arcane circle +5. Archway +6. Aviary +7. Barrow +8. Battlefield +9. Bell 10. Bone pile 11. Boneyard 12. Bonfire @@ -172,4 +172,4 @@ Filling the various chambers and locations in your game with interesting feature 97. Wall 98. Waymarker 99. Well -100. Windmill +100. Windmill diff --git a/markdown_separate/randomtownevents.md b/markdown_separate/randomtownevents.md index 7d453c4..fd1ba68 100644 --- a/markdown_separate/randomtownevents.md +++ b/markdown_separate/randomtownevents.md @@ -4,15 +4,15 @@ Whenever the characters enter a new town or start a new session there, adding so ## 1d20 Town Sentiments -1. Happy -2. Elated -3. Uncaring -4. Joyful -5. Optimistic -6. Pessimistic -7. Downtrodden -8. Frightened -9. Horrified +1. Happy +2. Elated +3. Uncaring +4. Joyful +5. Optimistic +6. Pessimistic +7. Downtrodden +8. Frightened +9. Horrified 10. Concerned 11. Unconcerned 12. Harried @@ -27,15 +27,15 @@ Whenever the characters enter a new town or start a new session there, adding so ## 1d20 Mundane Events -1. Wedding -2. Funeral -3. Preparing for war -4. Seasonal celebration -5. Burning of an effigy -6. Death of a noble lord -7. Day of drunkenness -8. Celebration of lovers -9. Great feast +1. Wedding +2. Funeral +3. Preparing for war +4. Seasonal celebration +5. Burning of an effigy +6. Death of a noble lord +7. Day of drunkenness +8. Celebration of lovers +9. Great feast 10. Execution 11. Market day 12. Parade of vanquished foes @@ -50,15 +50,15 @@ Whenever the characters enter a new town or start a new session there, adding so ## 1d20 Notable Weather Condtions -1. Fog -2. Heavy mist -3. New moon -4. Full moon -5. Hot day -6. Chilly day -7. Light rain -8. Moderate rain -9. Heavy rain +1. Fog +2. Heavy mist +3. New moon +4. Full moon +5. Hot day +6. Chilly day +7. Light rain +8. Moderate rain +9. Heavy rain 10. Windstorm 11. Hailstorm 12. Ice storm @@ -73,15 +73,15 @@ Whenever the characters enter a new town or start a new session there, adding so ## 1d20 Fantastic Events -1. The stars have disappeared from the sky -2. An unexpected solar eclipse -3. The blood moon rises -4. Swarms of stinging insects descend -5. Acidic fog rolls in -6. A second sun appears in the sky -7. A storm of arcane energy -8. The arrival of a servant of a god -9. Meteor shower +1. The stars have disappeared from the sky +2. An unexpected solar eclipse +3. The blood moon rises +4. Swarms of stinging insects descend +5. Acidic fog rolls in +6. A second sun appears in the sky +7. A storm of arcane energy +8. The arrival of a servant of a god +9. Meteor shower 10. A cyclopean behemoth rises 11. Swarms of mischievous devils 12. Tentacles appear in the sky diff --git a/markdown_separate/randomtraps.md b/markdown_separate/randomtraps.md index 79fc887..de8d5bf 100644 --- a/markdown_separate/randomtraps.md +++ b/markdown_separate/randomtraps.md @@ -6,15 +6,15 @@ To generate a simple trap, just roll on the Type list and the Trigger table. For ## 1d20 Flavors -1. Fiery -2. Freezing -3. Necrotic -4. Poisonous -5. Acidic -6. Thunderous -7. Lightning -8. Forceful -9. Diseased +1. Fiery +2. Freezing +3. Necrotic +4. Poisonous +5. Acidic +6. Thunderous +7. Lightning +8. Forceful +9. Diseased 10. Stunning 11. Blinding 12. Deafening @@ -29,15 +29,15 @@ To generate a simple trap, just roll on the Type list and the Trigger table. For ## 1d20 Types -1. Bolts -2. Spears -3. Scythes -4. Bolos -5. Spiked chains -6. Pit -7. Rolling ball -8. Crushing pillars -9. Darts +1. Bolts +2. Spears +3. Scythes +4. Bolos +5. Spiked chains +6. Pit +7. Rolling ball +8. Crushing pillars +9. Darts 10. Glyphs 11. Swords 12. Axes @@ -52,15 +52,15 @@ To generate a simple trap, just roll on the Type list and the Trigger table. For ## 1d20 Triggers -1. Door -2. Floor plate -3. Tripwire -4. Throne -5. Corpse -6. Chest -7. Old book -8. Child's toy -9. Jeweled skull +1. Door +2. Floor plate +3. Tripwire +4. Throne +5. Corpse +6. Chest +7. Old book +8. Child's toy +9. Jeweled skull 10. Beams of light 11. Golden angelic statue 12. Crystal goblet on pedestal diff --git a/markdown_separate/runninghordes.md b/markdown_separate/runninghordes.md index 6ca0dfa..21632ac 100644 --- a/markdown_separate/runninghordes.md +++ b/markdown_separate/runninghordes.md @@ -34,17 +34,17 @@ If you prefer to roll dice, roll twice when a group of monsters all make attacks Adjudicate the number of creatures caught up in an area of effect based on the circumstances, but leaning toward more creatures rather than fewer. You can use the following as a baseline for the number of tightly packed creatures in a horde that are affected in a given area: -* **Tiny Area (5-foot radius):** Two creatures -* **Small Area (10- to 15-foot radius):** Four creatures -* **Large Area (20-foot radius):** Sixteen creatures -* **Huge Area (30-foot radius or more):** Thirty-two or more creatures -* **Short Line (60 feet):** Six creatures -* **Long Line (120 feet):** Eight creatures +* **Tiny Area (5-foot radius):** Two creatures +* **Small Area (10- to 15-foot radius):** Four creatures +* **Large Area (20-foot radius):** Sixteen creatures +* **Huge Area (30-foot radius or more):** Thirty-two or more creatures +* **Short Line (60 feet):** Six creatures +* **Long Line (120 feet):** Eight creatures ## Tips and Tricks -* Describe these horde combat rules to the players so everyone understands how they work. Always adjudicate combat to the characters' benefit, and help the players achieve their goals. -* Use evocative descriptions to flavor a horde. Worry less about the mechanics and more about the feeling involved in fighting a huge horde of monsters. -* Avoid using hordes with monsters of different types in a single battle. Instead, use a single stat block and describe any physical differences between monsters narratively. -* Augment a horde with a handful of more powerful monsters when desired. Track the hit points and attacks of these powerful monsters normally. -* As hordes diminish to a manageable level, return to tracking individual hit points, attacks, and saving throws normally. +* Describe these horde combat rules to the players so everyone understands how they work. Always adjudicate combat to the characters' benefit, and help the players achieve their goals. +* Use evocative descriptions to flavor a horde. Worry less about the mechanics and more about the feeling involved in fighting a huge horde of monsters. +* Avoid using hordes with monsters of different types in a single battle. Instead, use a single stat block and describe any physical differences between monsters narratively. +* Augment a horde with a handful of more powerful monsters when desired. Track the hit points and attacks of these powerful monsters normally. +* As hordes diminish to a manageable level, return to tracking individual hit points, attacks, and saving throws normally. diff --git a/markdown_separate/safetytools.md b/markdown_separate/safetytools.md index 43032ff..9773ae8 100644 --- a/markdown_separate/safetytools.md +++ b/markdown_separate/safetytools.md @@ -6,42 +6,42 @@ Safety tools help ensure that you and your players are always comfortable with t When you discuss safety tools, describe potentially sensitive topics that might come up in an adventure or campaign. The following list presents a number of topics that are good to talk about, but this is not an exhaustive list. -* Blood -* Body horror -* Burning -* Cancer -* Cannibalism -* Claustrophobia -* Death by exposure -* Freezing -* Gaslighting -* Genocide -* Gore -* Harm to animals -* Harm to children -* Homophobia -* Incest -* Insects -* Kidnapping -* Mental domination -* Murder -* Paralysis -* Physical restraint -* Racism -* Rats -* Real-world religion -* Ritual sacrifice -* Self-harm -* Sexism -* Sexual assault -* Sexual contact -* Slavery -* Spiders -* Starvation -* Terrorism -* Thirst -* Torture -* Transphobia +* Blood +* Body horror +* Burning +* Cancer +* Cannibalism +* Claustrophobia +* Death by exposure +* Freezing +* Gaslighting +* Genocide +* Gore +* Harm to animals +* Harm to children +* Homophobia +* Incest +* Insects +* Kidnapping +* Mental domination +* Murder +* Paralysis +* Physical restraint +* Racism +* Rats +* Real-world religion +* Ritual sacrifice +* Self-harm +* Sexism +* Sexual assault +* Sexual contact +* Slavery +* Spiders +* Starvation +* Terrorism +* Thirst +* Torture +* Transphobia Decide first what you are comfortable with as a GM before bringing a list of topics to your players. Add any topics you're not comfortable with to your own hard lines and off-screen content (see below). @@ -71,6 +71,6 @@ As the GM, think about using "pause for a second" regularly, so as to break the The following resources offer further options for RPG safety tools, and influenced the tools described above. -* [The X-Card](http://tinyurl.com/x-card-rpg) by John Stavropoulos -* [Script Change](https://briebeau.com/scriptchange) by Beau Jágr Sheldon -* [The TTRPG Safety Toolkit](https://drive.google.com/drive/folders/114jRmhzBpdqkAlhmveis0nmW73qkAZCj) by Kienna Shaw and Lauren Bryant-Monk +* [The X-Card](http://tinyurl.com/x-card-rpg) by John Stavropoulos +* [Script Change](https://briebeau.com/scriptchange) by Beau Jágr Sheldon +* [The TTRPG Safety Toolkit](https://drive.google.com/drive/folders/114jRmhzBpdqkAlhmveis0nmW73qkAZCj) by Kienna Shaw and Lauren Bryant-Monk diff --git a/markdown_separate/sessionzerochecklist.md b/markdown_separate/sessionzerochecklist.md index 83f338f..1e39655 100644 --- a/markdown_separate/sessionzerochecklist.md +++ b/markdown_separate/sessionzerochecklist.md @@ -8,11 +8,11 @@ The following guidelines take you step-by-step through a session zero. Before your session zero, write out and deliver a one-page campaign guide to your players. Include the following information: -* The campaign's theme and flavor. Sell the campaign's story to your players so they're excited for the campaign. -* What separates this campaign from others? What are the main things about this campaign that the characters would know going in? This might be the "six truths" that separate your campaign from all others. -* What characters work best in the campaign? Talk about specific character options that are a good fit for the campaign, including classes, backgrounds, heritage, skills, and so forth. Then discuss what kinds of motivations will help the characters best enjoy the campaign? -* What potentially troubling themes might this campaign include? Write out a list so the players know what they might be getting into and can talk to you about it as you discuss your game's safety tools. -* What group patrons might the players select as a group? Who might serve as their primary quest giver? +* The campaign's theme and flavor. Sell the campaign's story to your players so they're excited for the campaign. +* What separates this campaign from others? What are the main things about this campaign that the characters would know going in? This might be the "six truths" that separate your campaign from all others. +* What characters work best in the campaign? Talk about specific character options that are a good fit for the campaign, including classes, backgrounds, heritage, skills, and so forth. Then discuss what kinds of motivations will help the characters best enjoy the campaign? +* What potentially troubling themes might this campaign include? Write out a list so the players know what they might be getting into and can talk to you about it as you discuss your game's safety tools. +* What group patrons might the players select as a group? Who might serve as their primary quest giver? Keep your campaign guide down to a single page so that the players can easily read and absorb it. @@ -36,15 +36,15 @@ If desired, you can connect the characters together with individual relationship ## Relationships -1. Adopted siblings -2. Mentor and student -3. Friendly rivals -4. Sage and scribe -5. Priest and acolyte -6. Fellow veterans -7. Ward and guardian -8. Spouses -9. Buddy cops +1. Adopted siblings +2. Mentor and student +3. Friendly rivals +4. Sage and scribe +5. Priest and acolyte +6. Fellow veterans +7. Ward and guardian +8. Spouses +9. Buddy cops 10. Childhood friends 11. Noble and bodyguard 12. Soul bound diff --git a/markdown_separate/spiralcampaigns.md b/markdown_separate/spiralcampaigns.md index 8074ef3..71883bb 100644 --- a/markdown_separate/spiralcampaigns.md +++ b/markdown_separate/spiralcampaigns.md @@ -8,15 +8,15 @@ Start off by describing the central theme of your campaign in a single sentence. ## Campaign Pitches -1. Prevent the summoning of the Dragon Queen -2. Prevent the coming of the Black Moon -3. End the dark reign of Elenda the lich queen -4. Break the political power of Vroth the death knight -5. Kill Veresyn the vampire lord and his horde -6. Restore light to the Vale of Nightmares -7. Restore the prison of Orlon the demon prince -8. Shatter the draconic Alliance of Five Claws -9. Save people from the blood feast of a gnoll war band +1. Prevent the summoning of the Dragon Queen +2. Prevent the coming of the Black Moon +3. End the dark reign of Elenda the lich queen +4. Break the political power of Vroth the death knight +5. Kill Veresyn the vampire lord and his horde +6. Restore light to the Vale of Nightmares +7. Restore the prison of Orlon the demon prince +8. Shatter the draconic Alliance of Five Claws +9. Save people from the blood feast of a gnoll war band 10. Restore light to the fallen celestial Ixyan 11. Dismantle the Empire of the White Blade 12. Find the seven keys to the gates of Ilumenia @@ -33,12 +33,12 @@ Start off by describing the central theme of your campaign in a single sentence. Once you have your pitch, identify six truths that set your campaign apart from others, then share them with your players. Here are six example truths for a campaign built around the coming of the Black Moon from above. -* Sages and cultists describe the coming of the Black Moon — an elder evil that will swallow the world. -* Monsters have been sighted along what were once the safest roads. The populations of whole villages are disappearing without a trace. -* A floating obsidian citadel has appeared above the Cragteeth Mountains to the north. -* Folk once had to deal with the coming of the Black Moon, but their secrets for surviving it were lost. -* The evil King Trex uses the chaos created by the coming of the Black Moon to wage war across the land. -* Prophecy speaks of the return of the Knights of the White Sun, who will restore light to the land. +* Sages and cultists describe the coming of the Black Moon — an elder evil that will swallow the world. +* Monsters have been sighted along what were once the safest roads. The populations of whole villages are disappearing without a trace. +* A floating obsidian citadel has appeared above the Cragteeth Mountains to the north. +* Folk once had to deal with the coming of the Black Moon, but their secrets for surviving it were lost. +* The evil King Trex uses the chaos created by the coming of the Black Moon to wage war across the land. +* Prophecy speaks of the return of the Knights of the White Sun, who will restore light to the land. ## Starting Location @@ -46,15 +46,15 @@ Spiral campaigns begin in a central location, often a small settlement from whic ## 1d10 Starting Locations -1. Adventurers' guild -2. Mining outpost -3. Recent shipwreck -4. Frontier outpost -5. Holy temple -6. Refugee camp -7. Fortress under siege -8. Great library -9. Planar hub city +1. Adventurers' guild +2. Mining outpost +3. Recent shipwreck +4. Frontier outpost +5. Holy temple +6. Refugee camp +7. Fortress under siege +8. Great library +9. Planar hub city 10. Crumbling fortress ## Campaign Fronts @@ -63,15 +63,15 @@ Campaign fronts are the external motivators in a campaign. Like a battlefront (f ## 1d20 Campaign Fronts -1. Thieves' guild -2. Dark necromancer -3. Armageddon cult -4. Mercenary army -5. Forgotten machine -6. Evil construct -7. Demon prince -8. Archdevil -9. Corrupt noble lord +1. Thieves' guild +2. Dark necromancer +3. Armageddon cult +4. Mercenary army +5. Forgotten machine +6. Evil construct +7. Demon prince +8. Archdevil +9. Corrupt noble lord 10. Rival adventurers 11. Mages' guild 12. Outlander horde @@ -88,15 +88,15 @@ Campaign fronts are the external motivators in a campaign. Like a battlefront (f As the campaign spirals outward, the characters will become aware of local adventuring locations. Drop three such adventure locations into the areas close by the starting location. And if you need help filling out an adventure location, look to later sections of this document. -1. Ancient crypt -2. Forgotten sewers -3. Haunted keep -4. Festering well -5. Rat-infested cellar -6. Unholy temple -7. Dangerous caves -8. Underground city -9. War-torn citadel +1. Ancient crypt +2. Forgotten sewers +3. Haunted keep +4. Festering well +5. Rat-infested cellar +6. Unholy temple +7. Dangerous caves +8. Underground city +9. War-torn citadel 10. Fey glade 11. Abandoned dungeon 12. Ruined watchtower diff --git a/markdown_separate/stresseffects.md b/markdown_separate/stresseffects.md index 76fe104..7e33b72 100644 --- a/markdown_separate/stresseffects.md +++ b/markdown_separate/stresseffects.md @@ -12,26 +12,26 @@ When amplifying a sense of stress or horror in a game, ensure that you have the Some things are beyond the ability of the mortal mind to comprehend. When witnessing alien or horrific entities, locations, and events, even the most powerful heroes might find their ability to process what unfolds around them shut down, forcing them to make a stress check. Such a check might be warranted by any of the following situations: -* Witnessing a ghoul devouring a body -* Beholding a bloody sacrificial altar -* Watching the raising of the dead -* Witnessing a ritual sacrifice -* Hearing the sermon of a dark priest -* Reading words from a forbidden tome -* Reading glyphs describing an elder evil -* Seeing a parasite burst free from its host -* Beholding unholy primordial cave paintings -* Touching an unholy artifact -* Peering through a portal into the Nine Hells -* Staring into a scrying pool showing the Abyss -* Discovering the ruins of a sentient alien vessel -* Watching depraved acts of cannibalism -* Seeing the true form of an abomination -* Falling into the depths of the Astral Plane -* Staring into the tumultuous extents of Limbo -* Standing in the presence of a demon prince -* Beholding an alien city of elder evils -* Witnessing the death of a god +* Witnessing a ghoul devouring a body +* Beholding a bloody sacrificial altar +* Watching the raising of the dead +* Witnessing a ritual sacrifice +* Hearing the sermon of a dark priest +* Reading words from a forbidden tome +* Reading glyphs describing an elder evil +* Seeing a parasite burst free from its host +* Beholding unholy primordial cave paintings +* Touching an unholy artifact +* Peering through a portal into the Nine Hells +* Staring into a scrying pool showing the Abyss +* Discovering the ruins of a sentient alien vessel +* Watching depraved acts of cannibalism +* Seeing the true form of an abomination +* Falling into the depths of the Astral Plane +* Staring into the tumultuous extents of Limbo +* Standing in the presence of a demon prince +* Beholding an alien city of elder evils +* Witnessing the death of a god ## Stress Results @@ -39,15 +39,15 @@ Whenever a character witnesses a potential stress event, you can ask for a Chari ## 1d20 Stress Results -1. You slip into a mental vision of a restful place. -2. You whisper in a tongue no mortal understands. -3. Blood flows from your eyes. -4. You collapse as you lose all strength. -5. A screaming whine fills your hearing. -6. Your heart seems to stop in your chest. -7. The faces of your friends hideously contort. -8. Your heartbeat hammers in your ears. -9. You hear strange, discordant music. +1. You slip into a mental vision of a restful place. +2. You whisper in a tongue no mortal understands. +3. Blood flows from your eyes. +4. You collapse as you lose all strength. +5. A screaming whine fills your hearing. +6. Your heart seems to stop in your chest. +7. The faces of your friends hideously contort. +8. Your heartbeat hammers in your ears. +9. You hear strange, discordant music. 10. You fall asleep and dream of darkness. 11. A terrible memory of your past comes to mind. 12. Physical pain and burning wracks your body. diff --git a/markdown_separate/strongstarts.md b/markdown_separate/strongstarts.md index 9bc8468..08654ae 100644 --- a/markdown_separate/strongstarts.md +++ b/markdown_separate/strongstarts.md @@ -6,58 +6,58 @@ A strong start kicks your game off in the middle of the action. It helps the pla In a settlement, a strong start can make use of either combat or roleplaying. -1. The characters interrupt bandits breaking into a shop. -2. Something slithers out of a nearby sewer. -3. A noble lord bumps into one of the characters and threatens to have them arrested. -4. A group of cultists kindly ask for a sample of a character's blood. -5. A hooded patron visits the characters, asking the characters to kill them in two days. -6. A riot draws the local watch away, whereupon a squad of hired killers descends on the characters. -7. The campaign's main villain shows up and invites the characters for a drink. -8. A scarred explorer offers to sell one of the characters a map to a site of a lost or stolen ancestral heirloom. -9. A golem from a wizards' academy goes on a rampage. +1. The characters interrupt bandits breaking into a shop. +2. Something slithers out of a nearby sewer. +3. A noble lord bumps into one of the characters and threatens to have them arrested. +4. A group of cultists kindly ask for a sample of a character's blood. +5. A hooded patron visits the characters, asking the characters to kill them in two days. +6. A riot draws the local watch away, whereupon a squad of hired killers descends on the characters. +7. The campaign's main villain shows up and invites the characters for a drink. +8. A scarred explorer offers to sell one of the characters a map to a site of a lost or stolen ancestral heirloom. +9. A golem from a wizards' academy goes on a rampage. 10. The local monarch is assassinated and a villain takes over the government. ## Sewers A session that starts in a sewer can make use of numerous monsters and hazards. -1. A flood of poisonous water flows past the characters' position. -2. The sewer collapses into deeper tunnels sealed up for centuries. -3. A wererat approaches the characters, offering to sell valuable information. -4. A pack of ghouls chase a young couple reported missing days ago. -5. A legendary giant crocodile stealthily stalks the characters. -6. The characters find a powerful magical dagger sought by a guild of wraith assassins. -7. Swampy sewer gas gives one of the characters supernatural visions of the villain's master plan. -8. The characters meet an eccentric wizard farming mushrooms for spell components. -9. A wall collapses, revealing a hidden temple of the god of slimes and oozes. +1. A flood of poisonous water flows past the characters' position. +2. The sewer collapses into deeper tunnels sealed up for centuries. +3. A wererat approaches the characters, offering to sell valuable information. +4. A pack of ghouls chase a young couple reported missing days ago. +5. A legendary giant crocodile stealthily stalks the characters. +6. The characters find a powerful magical dagger sought by a guild of wraith assassins. +7. Swampy sewer gas gives one of the characters supernatural visions of the villain's master plan. +8. The characters meet an eccentric wizard farming mushrooms for spell components. +9. A wall collapses, revealing a hidden temple of the god of slimes and oozes. 10. A flood of water draws the characters into a dangerously large mechanical sluice system. ## Wilderness Wilderness locations can involve either action or mystery in a strong start. -1. A nearby tree opens up, and a satyr steps through and says "Hi!" -2. A rampaging werebear storms through the area, mistaking the characters for the hunters who killed their mate. -3. Night falls, revealing an alien starscape above. -4. The characters see a tall humanoid with antlers stalking from the shadows, carrying a large scythe in one hand and three humanoid heads in the other. -5. The ground suddenly churns, bringing the body of a long-lost elf king to the surface. The king's eyes open. -6. The characters stumble upon a nest of skeletal pixies surrounding a desecrated fey gate. -7. A golden-antlered stag leaps into the characters' camp and asks to be defended from the hunters chasing it. -8. An old woman greets the characters, offering them candy and baked treats if they will come to her nearby cottage. -9. A skeleton hanging from a tree begs the characters to right the wrong it committed while alive. +1. A nearby tree opens up, and a satyr steps through and says "Hi!" +2. A rampaging werebear storms through the area, mistaking the characters for the hunters who killed their mate. +3. Night falls, revealing an alien starscape above. +4. The characters see a tall humanoid with antlers stalking from the shadows, carrying a large scythe in one hand and three humanoid heads in the other. +5. The ground suddenly churns, bringing the body of a long-lost elf king to the surface. The king's eyes open. +6. The characters stumble upon a nest of skeletal pixies surrounding a desecrated fey gate. +7. A golden-antlered stag leaps into the characters' camp and asks to be defended from the hunters chasing it. +8. An old woman greets the characters, offering them candy and baked treats if they will come to her nearby cottage. +9. A skeleton hanging from a tree begs the characters to right the wrong it committed while alive. 10. A sinkhole opens up, revealing the tunnels of long-forgotten burial chambers. ## Dungeons, Caves, and Caverns Subterranean adventures lend themselves to the widest possible range of strong starts. -1. A vampire appears from a sudden rise of mist, introduces herself, and asks the characters for a favor. -2. An ancient statue turns its head toward the characters and whispers a valuable secret. -3. The floor collapses, revealing even deeper tunnels long forgotten. -4. Through a cracked wall, the characters spot a gateway flanked by two huge obsidian statues, and featuring a set of stairs leading down. -5. The characters come across two bands of goblins fighting each other for the favor of a hag named Auntie Chiptooth. -6. An eyestalk swells out from an oozy patch on the wall, beholds the characters, and then disappears back into the wall. -7. A wounded knight collapses near the characters, begging them to find her lost love before she dies. -8. The ground cracks open and a pillar of chipped obsidian juts out, projecting a prophecy in red Infernal glyphs on the walls of the chamber. -9. Stars swim in a moonlit well, then rise up to reveal themselves as will-o'-wisps. +1. A vampire appears from a sudden rise of mist, introduces herself, and asks the characters for a favor. +2. An ancient statue turns its head toward the characters and whispers a valuable secret. +3. The floor collapses, revealing even deeper tunnels long forgotten. +4. Through a cracked wall, the characters spot a gateway flanked by two huge obsidian statues, and featuring a set of stairs leading down. +5. The characters come across two bands of goblins fighting each other for the favor of a hag named Auntie Chiptooth. +6. An eyestalk swells out from an oozy patch on the wall, beholds the characters, and then disappears back into the wall. +7. A wounded knight collapses near the characters, begging them to find her lost love before she dies. +8. The ground cracks open and a pillar of chipped obsidian juts out, projecting a prophecy in red Infernal glyphs on the walls of the chamber. +9. Stars swim in a moonlit well, then rise up to reveal themselves as will-o'-wisps. 10. A spectral hound guides the characters to the camp of a reclusive mage. diff --git a/markdown_separate/toolsforimprov.md b/markdown_separate/toolsforimprov.md index 9153a7e..5646441 100644 --- a/markdown_separate/toolsforimprov.md +++ b/markdown_separate/toolsforimprov.md @@ -8,8 +8,8 @@ For any given task or challenge, ask yourself how hard it is to accomplish. Then Decide on a challenge rating (CR) for the source of the damage, from CR 1 (low challenge) to CR 20 (very high challenge). Then roll a number of damage dice of a particular kind, as follows: -* Single-Target Damage: 7 × CR (or 2d6 per CR) -* Multiple-Target Damage: 3 × CR (or 1d6 per CR) +* Single-Target Damage: 7 × CR (or 2d6 per CR) +* Multiple-Target Damage: 3 × CR (or 1d6 per CR) This challenge rating can be thought of as roughly equivalent to the average level of a group of characters. However, don't automatically choose a challenge rating based on the level of the characters. Rather, the level of the challenge might be higher or lower than the characters, depending on the situation. @@ -17,12 +17,12 @@ This challenge rating can be thought of as roughly equivalent to the average lev Whenever you need to improvise Armor Class, attack modifiers, saving throw DCs, or other combat statistics for a creature, trap, object, or obstacle, use the following guidelines based on its challenge rating: -* AC = 12 + 1/2 CR -* DC = 12 + 1/2 CR -* Attack Bonus = 3 + 1/2 CR -* Damage = 7 × CR (or 2d6 per CR) -* Saving Throw with Proficiency = 3 + 1/2 CR -* Hit Points = 20 × CR +* AC = 12 + 1/2 CR +* DC = 12 + 1/2 CR +* Attack Bonus = 3 + 1/2 CR +* Damage = 7 × CR (or 2d6 per CR) +* Saving Throw with Proficiency = 3 + 1/2 CR +* Hit Points = 20 × CR When improvising statistics for traps and other objects that deal damage and can be attacked to destroy them, estimate the object's CR by comparing it to various creatures that produce the same sorts of effects in combat. @@ -30,12 +30,12 @@ When improvising statistics for traps and other objects that deal damage and can The following tricks can also help make it easier for you to improvise during your game: -* Use the story the players give to you, rather than forcing the characters to stick to a path you set. -* Use static monster damage. -* In combat, go around the table by player instead of rolling for initiative. -* Use advantage and disadvantage to reward unique approaches or clarify poor choices. -* Improve pacing by changing monster hit points on the fly to speed up or prolong a fight. -* Let the characters stumble upon two weak monsters, then see whether the monsters and characters want to fight or simply have a conversation. +* Use the story the players give to you, rather than forcing the characters to stick to a path you set. +* Use static monster damage. +* In combat, go around the table by player instead of rolling for initiative. +* Use advantage and disadvantage to reward unique approaches or clarify poor choices. +* Improve pacing by changing monster hit points on the fly to speed up or prolong a fight. +* Let the characters stumble upon two weak monsters, then see whether the monsters and characters want to fight or simply have a conversation. ## Deadly Encounter Benchmark diff --git a/markdown_separate/totm2.md b/markdown_separate/totm2.md index bcfee70..b032b1f 100644 --- a/markdown_separate/totm2.md +++ b/markdown_separate/totm2.md @@ -6,43 +6,43 @@ This section offers abbreviated guidelines for running "theater of the mind" com Round-by-round combat played in the theater-of-the-mind style is built around three core principles: -* The GM describes the situation. -* Players describe their characters' intent. -* The GM helps the players achieve that intent and adjudicates how the situation unfolds as a result. +* The GM describes the situation. +* Players describe their characters' intent. +* The GM helps the players achieve that intent and adjudicates how the situation unfolds as a result. ## Common Understandings A GM running a theater-of-the-mind game should keep the following points in mind: -* Build theater-of-the-mind combat around the following ideals: The GM and the players are working together to share a story of high action and adventure. They are not opponents. -* The GM and players do not hide their intentions during combat. -* Players and GMs assume that the characters and their enemies all move cautiously, avoiding opportunity attacks whenever possible. -* The GM identifies when a character is taking a risk, such as provoking an opportunity attack, before the player chooses the character's action. +* Build theater-of-the-mind combat around the following ideals: The GM and the players are working together to share a story of high action and adventure. They are not opponents. +* The GM and players do not hide their intentions during combat. +* Players and GMs assume that the characters and their enemies all move cautiously, avoiding opportunity attacks whenever possible. +* The GM identifies when a character is taking a risk, such as provoking an opportunity attack, before the player chooses the character's action. ## Player Advice Players in a theater-of-the-mind game should keep the following points in mind: -* Describe your intent. Tell the GM what you want your character to do in the story that the combat encounter is building. Avoid a back-and-forth series of tactical questions. -* Tell the GM what special features your character has that you want to highlight. If you have crunchy tactical abilities you want to use, describe how you want them to work for the situation. For example: "I want to stay close to the cleric so I can use my Protection Fighting Style, but I'll keep 10 feet away from the orcs so I can use my Polearm Mastery feat to hit them on their way in." -* Describe specifically what you want to do. "I want to stay within the paladin's aura but still attack the hobgoblin ravager." -* Look for fun ways to use the environment described by the GM. -* Worry less about the mechanical details of the game and more on the high action and adventure of the story. One good way to do that is to imagine combat as a high-action battle in one of your favorite movies. +* Describe your intent. Tell the GM what you want your character to do in the story that the combat encounter is building. Avoid a back-and-forth series of tactical questions. +* Tell the GM what special features your character has that you want to highlight. If you have crunchy tactical abilities you want to use, describe how you want them to work for the situation. For example: "I want to stay close to the cleric so I can use my Protection Fighting Style, but I'll keep 10 feet away from the orcs so I can use my Polearm Mastery feat to hit them on their way in." +* Describe specifically what you want to do. "I want to stay within the paladin's aura but still attack the hobgoblin ravager." +* Look for fun ways to use the environment described by the GM. +* Worry less about the mechanical details of the game and more on the high action and adventure of the story. One good way to do that is to imagine combat as a high-action battle in one of your favorite movies. ## GM Advice A GM running a theater-of-the-mind game should keep the following points in mind: -* Work with the players, not against them. Err in favor of the characters as you help the players achieve their intent. -* Each turn, describe the situation surrounding the acting character. -* Adjudicate the number of targets in an area attack based on the situation, the assumed positions of the combatants, and the size of the area. -* Use evocative in-world narration to describe the characters, the monsters, the action, and the high adventure of the story as it plays out. -* Make bargains and deals with the players. "You can hit three orcs with *fireball*, or you can hit five orcs if one of your companions is willing to be hit as well." -* Describe the distances between combatants in feet to help players recognize what they can and can't do. Default to 25 feet if you don't really know. -* Run simpler encounters with useful environmental features, such as flipped tables, cracked stalagmites, cliff edges, bottomless pits, roaring fires, and hanging chandeliers. -* Ask the players to identify monsters by describing interesting physical characteristics. -* Give the players opportunities to show off their characters' skills and abilities. -* Some players can't visualize combat scenes in their head, a condition known as aphantasia. For these players, consider providing a quick sketch or other visual. +* Work with the players, not against them. Err in favor of the characters as you help the players achieve their intent. +* Each turn, describe the situation surrounding the acting character. +* Adjudicate the number of targets in an area attack based on the situation, the assumed positions of the combatants, and the size of the area. +* Use evocative in-world narration to describe the characters, the monsters, the action, and the high adventure of the story as it plays out. +* Make bargains and deals with the players. "You can hit three orcs with *fireball*, or you can hit five orcs if one of your companions is willing to be hit as well." +* Describe the distances between combatants in feet to help players recognize what they can and can't do. Default to 25 feet if you don't really know. +* Run simpler encounters with useful environmental features, such as flipped tables, cracked stalagmites, cliff edges, bottomless pits, roaring fires, and hanging chandeliers. +* Ask the players to identify monsters by describing interesting physical characteristics. +* Give the players opportunities to show off their characters' skills and abilities. +* Some players can't visualize combat scenes in their head, a condition known as aphantasia. For these players, consider providing a quick sketch or other visual. ## One Tool of Many diff --git a/markdown_separate/totmguidelines1.md b/markdown_separate/totmguidelines1.md index 7f08a2b..70b84e1 100644 --- a/markdown_separate/totmguidelines1.md +++ b/markdown_separate/totmguidelines1.md @@ -12,21 +12,21 @@ When playing in the theater of the mind, both you and the players must worry les ## Summary Guidelines for the GM -* Each turn, describe the situation surrounding the characters. -* Ask for the players' intent and help them achieve it. -* Be generous. Give players the benefit of the doubt. -* Use ability checks to let the characters try crazy ideas. -* Ask the players to describe interesting physical characteristics of the monsters, and use these to identify monsters during combat. -* Bring characters into the story by asking them to describe their killing blows. -* When needed, use sketches, abstract maps, or miniatures to show complicated locations and relative positions. +* Each turn, describe the situation surrounding the characters. +* Ask for the players' intent and help them achieve it. +* Be generous. Give players the benefit of the doubt. +* Use ability checks to let the characters try crazy ideas. +* Ask the players to describe interesting physical characteristics of the monsters, and use these to identify monsters during combat. +* Bring characters into the story by asking them to describe their killing blows. +* When needed, use sketches, abstract maps, or miniatures to show complicated locations and relative positions. ## Summary Guidelines for Players -* Describe your intent. What you want to accomplish? -* Use the features of the area to your advantage. -* Don't worry about specific distances. Just describe what you want to do. -* Try awesome ideas based on the details of the location. -* Describe your character's actions within the story. +* Describe your intent. What you want to accomplish? +* Use the features of the area to your advantage. +* Don't worry about specific distances. Just describe what you want to do. +* Try awesome ideas based on the details of the location. +* Describe your character's actions within the story. ## Movement, Distance, and Range @@ -46,12 +46,12 @@ As you describe the features of the area, make a note of which ones can provide The following guidelines offer a rough baseline for determining the number of targets that fall within an area of effect. The circumstances of a battle can increase or decrease this number. For example, for larger monsters or monsters that are more spread out, an area of effect might target only half the normal number of creatures. For smaller monsters or monsters that are packed close together, an area of effect might include up to double the normal number of targets. -* **Tiny Area:** 1 or 2 creatures (*cloud of daggers*) -* **Small Area:** 2 creatures (*burning hands*, *thunderwave*) -* **Large Area:** 4 creatures (*cone of cold*, *fireball*) -* **Huge Area:** Everyone (*circle of death*, *earthquake*) -* **Short Line:** 2 creatures (*wall of fire*) -* **Long Line:** 3 creatures (*blade barrier*, *lightning bolt*) +* **Tiny Area:** 1 or 2 creatures (*cloud of daggers*) +* **Small Area:** 2 creatures (*burning hands*, *thunderwave*) +* **Large Area:** 4 creatures (*cone of cold*, *fireball*) +* **Huge Area:** Everyone (*circle of death*, *earthquake*) +* **Short Line:** 2 creatures (*wall of fire*) +* **Long Line:** 3 creatures (*blade barrier*, *lightning bolt*) Abilities like the evoker's Sculpt Spells feature can increase the number of affected enemies, usually by one or two. Likewise, an area of effect that targets both the characters and their enemies might affect more total targets — including an effect created by a character or monster willing to put allies in harm's way. If a spellcaster character wishes to place allies within an area of effect, you and the players should negotiate this before the spell is cast. diff --git a/markdown_separate/treasuregenerator.md b/markdown_separate/treasuregenerator.md index 0705d53..e9d9e49 100644 --- a/markdown_separate/treasuregenerator.md +++ b/markdown_separate/treasuregenerator.md @@ -21,15 +21,15 @@ As desired, you can augment monetary treasure with consumable magic items from t ## 1d12 Consumable Treasure -1. *Potion of healing* -2. *Potion of greater healing* -3. *Oil of slipperiness* -4. *Potion of animal friendship* -5. *Potion of climbing* -6. *Potion of growth* -7. *Potion of mind reading* -8. *Potion of poison* -9. *Potion of resistance* +1. *Potion of healing* +2. *Potion of greater healing* +3. *Oil of slipperiness* +4. *Potion of animal friendship* +5. *Potion of climbing* +6. *Potion of growth* +7. *Potion of mind reading* +8. *Potion of poison* +9. *Potion of resistance* 10. *Potion of water breathing* 11. *Dust of disappearance* 12. *Dust of dryness* @@ -42,15 +42,15 @@ Permanent magic items can be included with treasure as desired, with the uncommo ## 40 Magical Treasures -1. *Weapon +1* -2. *Armor +1* -3. *Ammunition +1* -4. *Amulet of proof against detection and location* -5. *Bag of holding* -6. *Bag of tricks* -7. *Boots of elvenkind* -8. *Boots of striding and springing* -9. *Boots of the winterlands* +1. *Weapon +1* +2. *Armor +1* +3. *Ammunition +1* +4. *Amulet of proof against detection and location* +5. *Bag of holding* +6. *Bag of tricks* +7. *Boots of elvenkind* +8. *Boots of striding and springing* +9. *Boots of the winterlands* 10. *Bracers of archery* 11. *Brooch of shielding* 12. *Broom of flying* diff --git a/markdown_separate/undeadtemplates.md b/markdown_separate/undeadtemplates.md index e17996e..6035bac 100644 --- a/markdown_separate/undeadtemplates.md +++ b/markdown_separate/undeadtemplates.md @@ -6,47 +6,47 @@ Death comes to all things, but not even death can keep a good monster down. You All creatures that take on one of these templates gain the following universal changes: -* The creature's type becomes undead. -* The creature has darkvision out to a range of 60 feet. -* Any new trait of the creature's that requires a saving throw uses a DC of 12 + one-half the undead creature's challenge rating. +* The creature's type becomes undead. +* The creature has darkvision out to a range of 60 feet. +* Any new trait of the creature's that requires a saving throw uses a DC of 12 + one-half the undead creature's challenge rating. Then apply the traits and actions of any of the following specific templates. ## Skeleton -* Vulnerability to bludgeoning damage. -* Immunity to poison damage, to exhaustion, and to the poisoned condition. +* Vulnerability to bludgeoning damage. +* Immunity to poison damage, to exhaustion, and to the poisoned condition. ## Zombie -* Immunity to poison damage and the poisoned condition. -* **Undead Fortitude.** If damage reduces the creature to 0 hit points, it must make a Constitution saving throw with a DC of 5 + the damage taken, unless the damage is radiant or from a critical hit. On a success, the creature drops to 1 hit point instead. +* Immunity to poison damage and the poisoned condition. +* **Undead Fortitude.** If damage reduces the creature to 0 hit points, it must make a Constitution saving throw with a DC of 5 + the damage taken, unless the damage is radiant or from a critical hit. On a success, the creature drops to 1 hit point instead. ## Ghoul -* Immunity to poison damage, to exhaustion, and to the charmed and poisoned conditions. -* **Paralyzing Touch.** When this creature hits with a melee attack using a natural weapon, the target must succeed on a Constitution saving throw or be paralyzed for 1 minute. The target can repeat the saving throw at the end of each of its turns, ending the effect on itself on a success. Elves and undead are immune to this effect. +* Immunity to poison damage, to exhaustion, and to the charmed and poisoned conditions. +* **Paralyzing Touch.** When this creature hits with a melee attack using a natural weapon, the target must succeed on a Constitution saving throw or be paralyzed for 1 minute. The target can repeat the saving throw at the end of each of its turns, ending the effect on itself on a success. Elves and undead are immune to this effect. ## Wight -* Resistance to necrotic and poison damage, and to bludgeoning, piercing, and slashing damage from nonmagical attacks that aren't silvered. -* Immunity to exhaustion and the poisoned condition. -* **Life Drain.** When this creature hits with a melee attack using a natural weapon, the attack deals necrotic damage equal to 1d6 + one-half the creature's challenge rating, and the target must succeed on a Constitution saving throw or have its hit point maximum reduced by an amount equal to the damage taken. This reduction lasts until the target finishes a long rest. The target dies if this effect reduces its hit point maximum to 0. +* Resistance to necrotic and poison damage, and to bludgeoning, piercing, and slashing damage from nonmagical attacks that aren't silvered. +* Immunity to exhaustion and the poisoned condition. +* **Life Drain.** When this creature hits with a melee attack using a natural weapon, the attack deals necrotic damage equal to 1d6 + one-half the creature's challenge rating, and the target must succeed on a Constitution saving throw or have its hit point maximum reduced by an amount equal to the damage taken. This reduction lasts until the target finishes a long rest. The target dies if this effect reduces its hit point maximum to 0. ## Wraith -* Resistance to acid, cold, fire, lightning, and thunder damage, and to bludgeoning, piercing, and slashing damage from nonmagical attacks that aren't silvered. -* Immunity to necrotic and poison damage, to exhaustion, and to the charmed, grappled, paralyzed, petrified, prone, and restrained conditions. -* The creature has the wraith's Incorporeal Movement and Sunlight Sensitivity traits. -* The creature gains the following trait: Life Drain. When this creature hits with a melee attack using a natural weapon, the attack deals necrotic damage equal to 1d6 + one-half the creature's challenge rating, and the target must succeed on a Constitution saving throw or have its hit point maximum reduced by an amount equal to the damage taken. This reduction lasts until the target finishes a long rest. The target dies if this effect reduces its hit point maximum to 0. +* Resistance to acid, cold, fire, lightning, and thunder damage, and to bludgeoning, piercing, and slashing damage from nonmagical attacks that aren't silvered. +* Immunity to necrotic and poison damage, to exhaustion, and to the charmed, grappled, paralyzed, petrified, prone, and restrained conditions. +* The creature has the wraith's Incorporeal Movement and Sunlight Sensitivity traits. +* The creature gains the following trait: Life Drain. When this creature hits with a melee attack using a natural weapon, the attack deals necrotic damage equal to 1d6 + one-half the creature's challenge rating, and the target must succeed on a Constitution saving throw or have its hit point maximum reduced by an amount equal to the damage taken. This reduction lasts until the target finishes a long rest. The target dies if this effect reduces its hit point maximum to 0. ## Vampire Spawn -* Resistance to necrotic, bludgeoning, piercing, and slashing damage from nonmagical attacks. -* The creature has the vampire spawn's Spider Climb, Vampire Weaknesses, and Regeneration traits. -* **Bite.** Melee Weapon Attack: 4 + one-half the creature's CR to hit, reach 5 ft., one willing creature, or a creature that is grappled by the vampire spawn creature, incapacitated, or restrained. Hit: piercing damage equal to 1d6 + one-half the creature's CR, plus necrotic damage equal to 1d6 per one- half the creature's CR (minimum 1d6). The target's hit point maximum is reduced by an amount equal to the necrotic damage taken, and the templated creature regains hit points equal to that amount. The reduction lasts until the target finishes a long rest. The target dies if this effect reduces its hit point maximum to 0. -* The creature can grapple a target instead of dealing damage with any of its attacks. If it makes multiple attacks, it can replace one of those attacks with the Bite action. -* If you want your vampire spawn creature to feel even more vampiric, give it the ability to cast the misty step, command, or hold person spells at will as a bonus action. +* Resistance to necrotic, bludgeoning, piercing, and slashing damage from nonmagical attacks. +* The creature has the vampire spawn's Spider Climb, Vampire Weaknesses, and Regeneration traits. +* **Bite.** Melee Weapon Attack: 4 + one-half the creature's CR to hit, reach 5 ft., one willing creature, or a creature that is grappled by the vampire spawn creature, incapacitated, or restrained. Hit: piercing damage equal to 1d6 + one-half the creature's CR, plus necrotic damage equal to 1d6 per one- half the creature's CR (minimum 1d6). The target's hit point maximum is reduced by an amount equal to the necrotic damage taken, and the templated creature regains hit points equal to that amount. The reduction lasts until the target finishes a long rest. The target dies if this effect reduces its hit point maximum to 0. +* The creature can grapple a target instead of dealing damage with any of its attacks. If it makes multiple attacks, it can replace one of those attacks with the Bite action. +* If you want your vampire spawn creature to feel even more vampiric, give it the ability to cast the misty step, command, or hold person spells at will as a bonus action. ## Powerful Undead Templates diff --git a/markdown_separate/zonebasedcombat.md b/markdown_separate/zonebasedcombat.md index b1839df..b2e8a2e 100644 --- a/markdown_separate/zonebasedcombat.md +++ b/markdown_separate/zonebasedcombat.md @@ -6,29 +6,29 @@ Zone-based combat can help GMs run fast, dynamic, and high-action combat without The following guidelines establish the broad strokes of zone-based combat: -* Combat areas are made up of one or more zones, each of which is roughly 25 feet on a side but which can be any size. -* The GM defines zones using evocative descriptions, such as "a crumbling bridge over a bottomless gorge," "a blood-covered altar," or "a holy statue of light." -* The GM can write down or define these zones and their descriptions on paper, note cards, or erasable battle maps so the players can visualize the situation. Miniatures or tokens can mark out the positions of characters and monsters in zones. -* Players are encouraged to make use of features in a zone, whether by taking cover, climbing to an advantageous position, activating magical locations, and so forth. -* Most combat encounters occur in a single zone. Big battles might use two or more zones. -* On each of their turns, a character can move within a zone or can move from one zone to another. Characters with extra movement can move up to two zones away. -* Assume that all creatures in combat move cautiously, avoiding opportunity attacks when possible. The GM informs the players if a character risks an opportunity attack from their intended activity in the fight. -* Attacks with a range of 25 feet or greater can target creatures within a zone or one zone away. -* Attacks with a range of 50 feet or greater can also target creatures two or more zones away. -* If a character attacks with or is attacked by a melee attack with a 5-foot reach, that character will provoke opportunity attacks if they attempt to move away from their opponent. A character attacked by a melee attack with a 5-foot reach also has disadvantage on ranged attacks. -* Players can make best use of zone-based combat by describing their intent — for example, "I want to attack the orc chief with my glaive but stay out of his reach," or "I want to get between our wizard and the ogre." -* The GM then works with the players to help them achieve their intent. +* Combat areas are made up of one or more zones, each of which is roughly 25 feet on a side but which can be any size. +* The GM defines zones using evocative descriptions, such as "a crumbling bridge over a bottomless gorge," "a blood-covered altar," or "a holy statue of light." +* The GM can write down or define these zones and their descriptions on paper, note cards, or erasable battle maps so the players can visualize the situation. Miniatures or tokens can mark out the positions of characters and monsters in zones. +* Players are encouraged to make use of features in a zone, whether by taking cover, climbing to an advantageous position, activating magical locations, and so forth. +* Most combat encounters occur in a single zone. Big battles might use two or more zones. +* On each of their turns, a character can move within a zone or can move from one zone to another. Characters with extra movement can move up to two zones away. +* Assume that all creatures in combat move cautiously, avoiding opportunity attacks when possible. The GM informs the players if a character risks an opportunity attack from their intended activity in the fight. +* Attacks with a range of 25 feet or greater can target creatures within a zone or one zone away. +* Attacks with a range of 50 feet or greater can also target creatures two or more zones away. +* If a character attacks with or is attacked by a melee attack with a 5-foot reach, that character will provoke opportunity attacks if they attempt to move away from their opponent. A character attacked by a melee attack with a 5-foot reach also has disadvantage on ranged attacks. +* Players can make best use of zone-based combat by describing their intent — for example, "I want to attack the orc chief with my glaive but stay out of his reach," or "I want to get between our wizard and the ogre." +* The GM then works with the players to help them achieve their intent. ## Areas of Effect in Zones Many spells and features have areas of effect. GMs can use the following guidelines to adjudicate which targets are hit by such effects. These guidelines break out general descriptions of the size of an area of effect, how many creatures are typically affected in that area using zone-based combat, and examples of common spells and class features that use that size: -* **Tiny Area:** One or two creatures in the same zone (*cloud of daggers*) -* **Small Area:** Two or three creatures in the same zone (*burning hands*, *thunderwave*) -* **Large Area:** Four to six creatures in the same zone (*cone of cold*, *fireball*) -* **Huge Area:** Twelve creatures across two zones (*circle of death*, Turn Undead) -* **Short Line:** Two or three creatures in the same zone (*wall of fire*) -* **Large Line:** Two to four creatures across two zones (*lightning bolt*) +* **Tiny Area:** One or two creatures in the same zone (*cloud of daggers*) +* **Small Area:** Two or three creatures in the same zone (*burning hands*, *thunderwave*) +* **Large Area:** Four to six creatures in the same zone (*cone of cold*, *fireball*) +* **Huge Area:** Twelve creatures across two zones (*circle of death*, Turn Undead) +* **Short Line:** Two or three creatures in the same zone (*wall of fire*) +* **Large Line:** Two to four creatures across two zones (*lightning bolt*) GMs can adjudicate and adjust these numbers based on the current situation. For example, an area containing a horde of monsters might double the potential number of monsters affected. Whatever the circumstances, though, a GM should always adjudicate in favor of the characters. diff --git a/markdown_separate_5e_monster_builder/combatencounterchecklist.md b/markdown_separate_5e_monster_builder/combatencounterchecklist.md index fc4a871..c541047 100644 --- a/markdown_separate_5e_monster_builder/combatencounterchecklist.md +++ b/markdown_separate_5e_monster_builder/combatencounterchecklist.md @@ -4,15 +4,15 @@ Sometimes all a game needs is an interesting location and some cool monsters to Sometimes we need more, though, particularly for big set-piece battles or boss fights. When it's time to build an interesting and dynamic encounter, the following checklist can help determine what options a big combat might need: -* Interesting monsters -* A fantastic location -* Zone-wide effects -* Traps and hazards -* Advantageous positions -* Interactive objects -* Cover -* Difficult or fantastic terrain -* A goal +* Interesting monsters +* A fantastic location +* Zone-wide effects +* Traps and hazards +* Advantageous positions +* Interactive objects +* Cover +* Difficult or fantastic terrain +* A goal No battle needs all these things, but it's worth running through the list to see which options fit the sort of combat scenario you're putting together. @@ -30,16 +30,16 @@ However, you want to ensure that your fantastic location isn't too big. It's no Sometimes a combat environment has a big ongoing effect—something that impacts all the creatures in the area, no matter where they are. Such zone-wide effects can make a fight more interesting, as with any of the following examples: -* Unholy energy in a crypt makes healing magic only half as effective as normal. -* Supernatural fire negates any creature's resistance to fire, and turns immunity to fire into resistance. -* Psychic wailing forces each character to succeed on a DC 10 Constitution check to successfully cast a spell. -* Periodic bolts of lightning strike, with each creature in combat having a 1-in-4 chance of being struck at the start of their turn. -* An arcane rift causes each damaging spell cast in a fight to deal an extra 2d6 force damage. -* An aura of bloody rage fills the area, granting each combatant advantage on attack rolls. -* A rift to a realm of chaos causes all spells to trigger a wild magic surge. -* The god of blood infuses all melee attacks with an extra die of damage. -* A rift in space-time lets a creature swap places with an enemy within 60 feet if that enemy fails a DC 12 Wisdom saving throw. -* A thick fog makes it impossible to see creatures more than 30 feet away. +* Unholy energy in a crypt makes healing magic only half as effective as normal. +* Supernatural fire negates any creature's resistance to fire, and turns immunity to fire into resistance. +* Psychic wailing forces each character to succeed on a DC 10 Constitution check to successfully cast a spell. +* Periodic bolts of lightning strike, with each creature in combat having a 1-in-4 chance of being struck at the start of their turn. +* An arcane rift causes each damaging spell cast in a fight to deal an extra 2d6 force damage. +* An aura of bloody rage fills the area, granting each combatant advantage on attack rolls. +* A rift to a realm of chaos causes all spells to trigger a wild magic surge. +* The god of blood infuses all melee attacks with an extra die of damage. +* A rift in space-time lets a creature swap places with an enemy within 60 feet if that enemy fails a DC 12 Wisdom saving throw. +* A thick fog makes it impossible to see creatures more than 30 feet away. Avoid zone-wide effects that are just plain annoying. Having creatures fall down a lot because of icy floors sounds fun—until all the characters are lying on their backs and the players are wishing they'd never entered the fight in the first place. @@ -61,16 +61,16 @@ Getting the characters to enter an arena (literal or metaphorical) and move arou Make sure that the battlefield features some interactive objects. This can include any physical features the characters can manipulate and use to their advantage in a fight, including things like the following: -* Crumbling statues that can be easily toppled -* Pillars that collapse part of the ceiling -* Chandeliers upon which to swing -* Ballistas the characters can use to fire upon their foes -* Obelisks infusing the villain with power until they're destroyed -* Levers that physically or magically transform parts of the battlefield -* Catapults that can hurl allies to the far side of the fight -* Cranes lifting heavy objects that can be dropped onto foes -* Fiery cauldrons or braziers ready to tip over -* Deep wells into which enemies can be dumped +* Crumbling statues that can be easily toppled +* Pillars that collapse part of the ceiling +* Chandeliers upon which to swing +* Ballistas the characters can use to fire upon their foes +* Obelisks infusing the villain with power until they're destroyed +* Levers that physically or magically transform parts of the battlefield +* Catapults that can hurl allies to the far side of the fight +* Cranes lifting heavy objects that can be dropped onto foes +* Fiery cauldrons or braziers ready to tip over +* Deep wells into which enemies can be dumped ## Cover @@ -84,28 +84,28 @@ Different areas of a location might have some sort of terrain feature that can i Any of the following terrain features can make a big battle location more interesting: -* A crumbling bridge over a deep crevasse -* Spikes of sharp glass that cut creatures when they fall or are forced to move through them -* Jets of flame that randomly erupt -* Swampy land that belches forth poisonous gas when crossed -* Oiled surfaces that cause creatures to slide across them uncontrollably. -* Electrified floors that deal damage to creatures at the start of each turn -* An area filled with antigravity magic that causes creatures to fall to the ceiling -* An ethereal rift where creatures become invisible and insubstantial -* Pockets of shadow where characters have their life energy drained away -* An area of antilife magic where living creatures gain vulnerability to necrotic damage +* A crumbling bridge over a deep crevasse +* Spikes of sharp glass that cut creatures when they fall or are forced to move through them +* Jets of flame that randomly erupt +* Swampy land that belches forth poisonous gas when crossed +* Oiled surfaces that cause creatures to slide across them uncontrollably. +* Electrified floors that deal damage to creatures at the start of each turn +* An area filled with antigravity magic that causes creatures to fall to the ceiling +* An ethereal rift where creatures become invisible and insubstantial +* Pockets of shadow where characters have their life energy drained away +* An area of antilife magic where living creatures gain vulnerability to necrotic damage ## A Goal Finally, think about what objective an encounter might have beyond simply taking out all the enemies. What might the characters do to "complete" the encounter? The following sorts of goals work well in a big set-piece encounter: -* Stop a ritual before cultists summon a demon. -* Recover an artifact and escape with it. -* Kill the boss, but don't worry about their minions. -* Activate a gateway and escape through it. -* Recover a prisoner. -* Steal secret plans. -* Destroy a powerful monument. -* Activate the four altars around a temple site. -* Close a magical gateway and prevent the villain's escape. -* Destroy a doomsday device before it blows up the multiverse. +* Stop a ritual before cultists summon a demon. +* Recover an artifact and escape with it. +* Kill the boss, but don't worry about their minions. +* Activate a gateway and escape through it. +* Recover a prisoner. +* Steal secret plans. +* Destroy a powerful monument. +* Activate the four altars around a temple site. +* Close a magical gateway and prevent the villain's escape. +* Destroy a doomsday device before it blows up the multiverse. diff --git a/markdown_separate_5e_monster_builder/index.md b/markdown_separate_5e_monster_builder/index.md index 3fcce04..0e5619d 100644 --- a/markdown_separate_5e_monster_builder/index.md +++ b/markdown_separate_5e_monster_builder/index.md @@ -18,14 +18,14 @@ You can find several versions of this document including EPUB, Markdown, and JSO ### Table of Contents -* [Building a Quick Monster](buildingaquickmonster.md) -* [General-Use Combat Stat Blocks](generalusestatblocks.md) -* [Lazy Tricks for Running Monsters](lazytricksforrunningmonsters.md) -* [Lightning Rods](lightingrods.md) -* [Monster Roles](monsterroles.md) -* [Bosses and Minions](bossesandminions.md) -* [The Combat Encounter Checklist](combatencounterchecklist.md) -* [Monster Combinations for a Hard Challenge](monstercombinationsforahardchallenge.md) -* [The Lazy Encounter Benchmark](lazyencounterbenchmark.md) -* [Monsters by Adventure Location](monstersbyadventurelocation.md) -* [Monsters and the Tiers of Play](monstersandthetiersofplay.md) +* [Building a Quick Monster](buildingaquickmonster.md) +* [General-Use Combat Stat Blocks](generalusestatblocks.md) +* [Lazy Tricks for Running Monsters](lazytricksforrunningmonsters.md) +* [Lightning Rods](lightingrods.md) +* [Monster Roles](monsterroles.md) +* [Bosses and Minions](bossesandminions.md) +* [The Combat Encounter Checklist](combatencounterchecklist.md) +* [Monster Combinations for a Hard Challenge](monstercombinationsforahardchallenge.md) +* [The Lazy Encounter Benchmark](lazyencounterbenchmark.md) +* [Monsters by Adventure Location](monstersbyadventurelocation.md) +* [Monsters and the Tiers of Play](monstersandthetiersofplay.md) diff --git a/markdown_separate_5e_monster_builder/lazyencounterbenchmark.md b/markdown_separate_5e_monster_builder/lazyencounterbenchmark.md index cc4e1e5..990244c 100644 --- a/markdown_separate_5e_monster_builder/lazyencounterbenchmark.md +++ b/markdown_separate_5e_monster_builder/lazyencounterbenchmark.md @@ -10,9 +10,9 @@ The primary calculation of the lazy encounter benchmark compares the challenge r What exactly does "deadly" mean in this context? In a deadly encounter: -* Most characters might lose more than half their hit points. -* Several characters might go unconscious. -* There's a chance that one or more characters might die. +* Most characters might lose more than half their hit points. +* Several characters might go unconscious. +* There's a chance that one or more characters might die. For example, imagine an encounter pitting five 4th-level characters against four ogres of CR 2. To see how dangerous this fight might be, add all the character levels together and divide by 4 (because they're lower than 5th level), giving a result of 20 ÷ 4 = 5. Now compare that result to the sum of monster challenge ratings, with four CR 2 ogres giving a total of 8. Because 8 is more than 5, this could be a potentially deadly encounter. @@ -52,26 +52,26 @@ For example, if a party in your campaign has companion NPCs who make combat easi Many circumstances can change how challenging an actual combat encounter might be. All of the following examples set up types of encounters that often play out more easily than the lazy encounter benchmark might suggest: -* The fight features significantly more characters than foes. -* The characters' goals in an encounter can be achieved without eliminating all the foes from the fight. -* The environment favors the characters. -* The monsters come in waves instead of all at once. -* Foes are distracted or in disadvantageous positions. -* The monsters are all surprised, or all act after the characters in initiative. -* The characters have spells or features well suited for taking out foes. -* The players engage in excellent tactical behavior and synergistic strategies. -* The characters are well rested and coming in fresh. -* The characters have an arsenal of powerful magic items. -* The characters have useful companions. +* The fight features significantly more characters than foes. +* The characters' goals in an encounter can be achieved without eliminating all the foes from the fight. +* The environment favors the characters. +* The monsters come in waves instead of all at once. +* Foes are distracted or in disadvantageous positions. +* The monsters are all surprised, or all act after the characters in initiative. +* The characters have spells or features well suited for taking out foes. +* The players engage in excellent tactical behavior and synergistic strategies. +* The characters are well rested and coming in fresh. +* The characters have an arsenal of powerful magic items. +* The characters have useful companions. Likewise, the monsters might be favored over the characters in the following types of encounters: -* The monsters outnumber the characters. -* The characters are surprised by the monsters. -* Foes have advantageous position. -* The terrain favors the foes. -* The monsters fight with a strong tactical synergy. -* The characters are coming in well worn by previous fights and have no chance to rest. +* The monsters outnumber the characters. +* The characters are surprised by the monsters. +* Foes have advantageous position. +* The terrain favors the foes. +* The monsters fight with a strong tactical synergy. +* The characters are coming in well worn by previous fights and have no chance to rest. As you make use of the benchmark, you'll soon come to recognize when the circumstances of a combat encounter might steer it toward an easier or harder fight. diff --git a/markdown_separate_5e_monster_builder/lazytricksforrunningmonsters.md b/markdown_separate_5e_monster_builder/lazytricksforrunningmonsters.md index c942ca6..ffffdff 100644 --- a/markdown_separate_5e_monster_builder/lazytricksforrunningmonsters.md +++ b/markdown_separate_5e_monster_builder/lazytricksforrunningmonsters.md @@ -8,13 +8,13 @@ This section presents a number of tricks and tips that can help you more easily First, choose a challenge rating for your monster, based on their perceived power in the encounter. When needed, compare your monster to existing monsters to find a suitable challenge rating. Then use the following guidelines to craft their baseline statistics: -* Armor Class = 12 + 1/2 CR -* Hit points = (15 × CR) + 15 -* Proficient saving throws and skills = 4 + 1/2 CR -* Nonproficient saving throws and abilities = −2 to +2, based on the monster's story -* Attack bonus = 4 + 1/2 CR -* DC for saving throws = 12 + 1/2 CR -* Total damage per round = (7 × CR) + 5 +* Armor Class = 12 + 1/2 CR +* Hit points = (15 × CR) + 15 +* Proficient saving throws and skills = 4 + 1/2 CR +* Nonproficient saving throws and abilities = −2 to +2, based on the monster's story +* Attack bonus = 4 + 1/2 CR +* DC for saving throws = 12 + 1/2 CR +* Total damage per round = (7 × CR) + 5 Start your monster out with one attack, then add one additional attack at CR 2, CR 7, CR 11, and CR 15. Split the total damage noted above across all attacks. @@ -71,10 +71,10 @@ You can also compute averages for dice expressions with simple equations you can Once you're in the middle of an encounter, you can make use of a number of other quick tricks to make running monsters easier, with more flexibility and greater speed. Try any of the following options at your table, and make use of any trick that helps your game: -* Use fixed initiative for monsters equal to 10 + each monster's Dexterity bonus. Even faster? Just have all monsters act on initiative count 12. -* Reduce hit points on the fly to allow monsters to drop or surrender more quickly, or increase a monster's number of attacks or damage if the characters are having too easy a time. -* Have foes flee or surrender when it makes sense to move the game forward. -* Have constructs and undead be destroyed when the creature controlling them dies. -* Run multiple waves of monsters for big battles. +* Use fixed initiative for monsters equal to 10 + each monster's Dexterity bonus. Even faster? Just have all monsters act on initiative count 12. +* Reduce hit points on the fly to allow monsters to drop or surrender more quickly, or increase a monster's number of attacks or damage if the characters are having too easy a time. +* Have foes flee or surrender when it makes sense to move the game forward. +* Have constructs and undead be destroyed when the creature controlling them dies. +* Run multiple waves of monsters for big battles. Include creatures designed to eat "save or suck" attacks such as *banishment* or *polymorph*. diff --git a/markdown_separate_5e_monster_builder/monstercombinationsforahardchallenge.md b/markdown_separate_5e_monster_builder/monstercombinationsforahardchallenge.md index 2ea7d3f..6638cb4 100644 --- a/markdown_separate_5e_monster_builder/monstercombinationsforahardchallenge.md +++ b/markdown_separate_5e_monster_builder/monstercombinationsforahardchallenge.md @@ -22,19 +22,19 @@ The rightmost column under Boss Scenarios builds encounters with eight minions, To build encounters using the tables, follow these steps: -* Select the appropriate table, based on the number of characters in the party—four, five, or six. -* In the leftmost column of the selected table, find the row containing the average character level for all the characters. (To find the average, add up all the characters' levels, then divide by the number of characters and round down.) -* Follow that row to the column containing the encounter concept you wish to use. For example, to create an encounter with one boss and three lesser monsters, you'd go to the 1 Boss + 3 Monsters column. -* The entry you cross-referenced notes the challenge ratings of the creature or creatures in your encounter. If a multiplier is indicated, that's the number of monsters for the preceding CR. For example, wanting to challenge four 3rd-level characters with the encounter concept of one boss and three monsters yields an entry of "2 + 1/4 (×3)." This indicates that you want one CR 2 creature acting as the boss, and three CR 1/4 creatures acting as subordinates. -* Choose your monsters! If you're building a quick encounter, the recommendations in "Monsters by Adventure Location" are a good starting point. +* Select the appropriate table, based on the number of characters in the party—four, five, or six. +* In the leftmost column of the selected table, find the row containing the average character level for all the characters. (To find the average, add up all the characters' levels, then divide by the number of characters and round down.) +* Follow that row to the column containing the encounter concept you wish to use. For example, to create an encounter with one boss and three lesser monsters, you'd go to the 1 Boss + 3 Monsters column. +* The entry you cross-referenced notes the challenge ratings of the creature or creatures in your encounter. If a multiplier is indicated, that's the number of monsters for the preceding CR. For example, wanting to challenge four 3rd-level characters with the encounter concept of one boss and three monsters yields an entry of "2 + 1/4 (×3)." This indicates that you want one CR 2 creature acting as the boss, and three CR 1/4 creatures acting as subordinates. +* Choose your monsters! If you're building a quick encounter, the recommendations in "Monsters by Adventure Location" are a good starting point. ### Scaling Encounters Each of the tables is intended to build a hard encounter. However, you can easily build encounters with other challenge levels in mind by adding or subtracting a modifier to the party's average character level: -* For a deadly challenge: +1 or +2 -* For a medium challenge: −2 -* For an easy challenge: −4 +* For a deadly challenge: +1 or +2 +* For a medium challenge: −2 +* For an easy challenge: −4 For example, when building an encounter for four 10th-level characters, you could use the row for 8th-level characters to create a medium challenge. diff --git a/markdown_separate_5e_monster_builder/monstersbyadventurelocation.md b/markdown_separate_5e_monster_builder/monstersbyadventurelocation.md index b977efc..60a222f 100644 --- a/markdown_separate_5e_monster_builder/monstersbyadventurelocation.md +++ b/markdown_separate_5e_monster_builder/monstersbyadventurelocation.md @@ -2,10 +2,10 @@ This section offers quick starting points for building encounters, in the form of tables that cover a broad range of foes in twelve types of common adventure location. The tables serve four purposes: -* They show which creatures might inhabit a particular adventure location. -* They highlight foes appropriate for a given level range in that location. -* They show which foes might naturally pair up with other foes. -* They offer example relationships between creatures and suggest what they might be doing in a location. +* They show which creatures might inhabit a particular adventure location. +* They highlight foes appropriate for a given level range in that location. +* They show which foes might naturally pair up with other foes. +* They offer example relationships between creatures and suggest what they might be doing in a location. Though you can use the setups in the tables directly, you'll get even more value from them by customizing your own list of foes for these common locations and scenarios—or by adding environments and scenarios that fit the specifics of your campaign. @@ -15,142 +15,142 @@ Monsters who are in **bold** represent potential bosses for an encounter. ## Ancient Ruins -| Level | Example Encounters | -| ------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| 1st | * A **thug** leads bandits intending to rob a caravan. -* A vengeful **shadow** shifts in the darkness among a handful of arisen skeletons. | -| 2nd to 4th | * A pair of **bugbear** entrepreneurs use goblin actors as bait to seek adventurers as prey. -* A sorrowful **banshee** orders specters to recreate their former beautiful life. -* A **gnoll pack lord** bounty hunter leads gnolls and hyenas after an escaped prisoner. -* A **death dog** protected by wolves lairs in a ruined cave. -* A **lamia** served by jackalweres dwells in an illusory paradise. | -| 5th to 10th | * A wise **bugbear chief** leads bugbear and goblin soldiers from an obsidian throne. -* A **cyclops** matriarch leads fanatically loyal ogres. -* A solitary **medusa** dwells in a mausoleum, surrounded by petrified heroes and protected by death dogs. -* A noble **oni** in a posh den is guarded by loyal spirit naga storytellers. | -| 11th to 16th | * An **adult blue dragon** is guarded by clay golems in a jeweled lair. | -| 17th to 20th | * An **ancient blue dragon** protected by stone golems and air elementals dwells in the shattered remains of a tower. | +| Level | Example Encounters | +| ------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| 1st | * A **thug** leads bandits intending to rob a caravan. +* A vengeful **shadow** shifts in the darkness among a handful of arisen skeletons. | +| 2nd to 4th | - A pair of **bugbear** entrepreneurs use goblin actors as bait to seek adventurers as prey. +- A sorrowful **banshee** orders specters to recreate their former beautiful life. +- A **gnoll pack lord** bounty hunter leads gnolls and hyenas after an escaped prisoner. +- A **death dog** protected by wolves lairs in a ruined cave. +- A **lamia** served by jackalweres dwells in an illusory paradise. | +| 5th to 10th | * A wise **bugbear chief** leads bugbear and goblin soldiers from an obsidian throne. +* A **cyclops** matriarch leads fanatically loyal ogres. +* A solitary **medusa** dwells in a mausoleum, surrounded by petrified heroes and protected by death dogs. +* A noble **oni** in a posh den is guarded by loyal spirit naga storytellers. | +| 11th to 16th | - An **adult blue dragon** is guarded by clay golems in a jeweled lair. | +| 17th to 20th | * An **ancient blue dragon** protected by stone golems and air elementals dwells in the shattered remains of a tower. | ## Crypts, Catacombs, Necropolises -| Level | Example Encounters | -| ------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| 1st | * A pair of **skeletons** rises from a pile of crawling claws. | -| 2nd to 4th | * A lost **ghost** wanders, surrounded by specters. -* A **bone naga** rises from an obsidian sarcophagus to command a host of skeletons. | -| 5th to 10th | * A **mummy lord** entombed in a cold-iron sarcophagus is guarded by mummies and wights. -* A pair of **wraiths** float above unholy urns surrounded by vengeful specters. | -| 11th to 16th | * A **vampire** in a gilded tomb is guarded by howling dire wolves and served by vampire spawn. | -| 17th to 20th | * A **lich** in an unhallowed laboratory is protected by loyal death knights and iron golems. | +| Level | Example Encounters | +| ------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| 1st | * A pair of **skeletons** rises from a pile of crawling claws. | +| 2nd to 4th | - A lost **ghost** wanders, surrounded by specters. +- A **bone naga** rises from an obsidian sarcophagus to command a host of skeletons. | +| 5th to 10th | * A **mummy lord** entombed in a cold-iron sarcophagus is guarded by mummies and wights. +* A pair of **wraiths** float above unholy urns surrounded by vengeful specters. | +| 11th to 16th | - A **vampire** in a gilded tomb is guarded by howling dire wolves and served by vampire spawn. | +| 17th to 20th | * A **lich** in an unhallowed laboratory is protected by loyal death knights and iron golems. | ## City Sewers -| Level | Example Encounters | -| ---------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| 1st | * A wandering **zombie** is covered by a swarm of rats. | -| 2nd to 4th | * An erudite **ghast** weaves fantastic tales to their ravenous ghoul followers. -* A **spy** is guarded by unscrupulous bandits while awaiting the arrival of a contact. -* An **otyugh** luxuriates in a watery pit, surrounded by concealed gray oozes. -* **Wererats** try to be intimidating by threatening to feed prisoners to their giant rat pets. | +| Level | Example Encounters | +| ---------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| 1st | * A wandering **zombie** is covered by a swarm of rats. | +| 2nd to 4th | - An erudite **ghast** weaves fantastic tales to their ravenous ghoul followers. +- A **spy** is guarded by unscrupulous bandits while awaiting the arrival of a contact. +- An **otyugh** luxuriates in a watery pit, surrounded by concealed gray oozes. +- **Wererats** try to be intimidating by threatening to feed prisoners to their giant rat pets. | ## Seedy City Streets -| Level | Example Encounters | -| ----------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| 1st | * A **giant rat** and the swarm of rats that travels with them are feeding on a dead body. -* A **thug** and a pack of bandit toadies are waiting for someone to rob. | -| 2nd to 4th | * A **spy** assisted by thugs has been hired to steal something from the characters. -* A **bandit captain** with berserker bodyguards and bandit followers is easily insulted. -* A **cult fanatic** leads cultists who have summoned ravenous dretches into the world. | -| 5th to 10th | * A **mage** commanding veterans is seeking something the characters seek as well. -* A **bandit captain** protected by hired gladiators and veterans seeks the characters with an offer they can't refuse. -* A careful **assassin** backed up by spies and thugs hunts the characters. | +| Level | Example Encounters | +| ----------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| 1st | * A **giant rat** and the swarm of rats that travels with them are feeding on a dead body. +* A **thug** and a pack of bandit toadies are waiting for someone to rob. | +| 2nd to 4th | - A **spy** assisted by thugs has been hired to steal something from the characters. +- A **bandit captain** with berserker bodyguards and bandit followers is easily insulted. +- A **cult fanatic** leads cultists who have summoned ravenous dretches into the world. | +| 5th to 10th | * A **mage** commanding veterans is seeking something the characters seek as well. +* A **bandit captain** protected by hired gladiators and veterans seeks the characters with an offer they can't refuse. +* A careful **assassin** backed up by spies and thugs hunts the characters. | ## Wizard's Tower -| Level | Example Encounters | -| ------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------- | -| 1st | * A loyal **imp** commands a squad of guardian flying swords. | -| 2nd to 4th | * A summoned **succubus** or **incubus** directs animated armor serving as guards. | -| 5th to 10th | * Apprentice **mages** command elementals and flesh golems. -* An important chamber is guarded by two **flameskulls** and a number of helmed horrors. | -| 11th to 16th | * An impatient **archmage** is protected by two stone golems in an arcane laboratory. | -| 17th to 20th | * A **lich** studies the multiverse while protected by bound balors and iron golems. | +| Level | Example Encounters | +| ------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------- | +| 1st | * A loyal **imp** commands a squad of guardian flying swords. | +| 2nd to 4th | - A summoned **succubus** or **incubus** directs animated armor serving as guards. | +| 5th to 10th | * Apprentice **mages** command elementals and flesh golems. +* An important chamber is guarded by two **flameskulls** and a number of helmed horrors. | +| 11th to 16th | - An impatient **archmage** is protected by two stone golems in an arcane laboratory. | +| 17th to 20th | * A **lich** studies the multiverse while protected by bound balors and iron golems. | ## Volcano Lair -| Level | Example Encounters | -| ------------ | ------------------------------------------------------------------------------------------------------------------------------------------------ | -| 5th to 10th | * A **fire giant** with pet hell hounds commands an azer to dig for them. -* A trapped **efreeti** uses fire elementals to fight for freedom. | -| 11th to 16th | * An **adult red dragon** served by salamanders demands fealty from the characters. | -| 17th to 20th | * An **ancient red dragon** worshiped by fire giants awakens from slumber. | +| Level | Example Encounters | +| ------------ | -------------------------------------------------------------------------------------------------------------------------------------------- | +| 5th to 10th | * A **fire giant** with pet hell hounds commands an azer to dig for them. +* A trapped **efreeti** uses fire elementals to fight for freedom. | +| 11th to 16th | - An **adult red dragon** served by salamanders demands fealty from the characters. | +| 17th to 20th | * An **ancient red dragon** worshiped by fire giants awakens from slumber. | ## Abyssal Keep -| Level | Example Encounters | -| ------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| 2nd to 4th | * A **night hag** and their pet quasit schemes within a chamber guarded by hell hounds. -* A summoning circle disgorges a **barlgura** and a gang of dretches. | -| 5th to 10th | * A **glabrezu** commands from a throne flanked by chasmes. | -| 11th to 16th | * A **marilith**, their cambion advisor, and a number of hezrou servants guard a planar gateway. | -| 17th to 20th | * A **balor**, a servile archmage, and a squad of glabrezu soldiers guard an artifact. | +| Level | Example Encounters | +| ------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| 2nd to 4th | * A **night hag** and their pet quasit schemes within a chamber guarded by hell hounds. +* A summoning circle disgorges a **barlgura** and a gang of dretches. | +| 5th to 10th | - A **glabrezu** commands from a throne flanked by chasmes. | +| 11th to 16th | * A **marilith**, their cambion advisor, and a number of hezrou servants guard a planar gateway. | +| 17th to 20th | - A **balor**, a servile archmage, and a squad of glabrezu soldiers guard an artifact. | ## Dark Forests and Fetid Swamps -| Level | Example Encounters | -| ------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| 1st | * An elf **cultist** hunts prey with bloodthirsty wolves. | -| 2nd to 4th | * Two **ettercaps** and their giant spiders stalk adventurers. -* An **ettin** warlord commands a host of orc mercenaries. -* A **green hag** lurks in an old hut with a pet giant toad, and is guarded by loyal bullywugs. -* A **werewolf** prowls the shadows with their dire wolf companions. | -| 5th to 10th | * An **orc war chief** commands a force of ettin and orc scouts based in a ruined keep. | -| 11th to 16th | * An **adult black dragon** commands a host of trolls made loyal through fear. -* An **adult green dragon** lurks in a dead forest, protected by shambling mounds. | -| 17th to 20th | * An **ancient black dragon** dwells in a sunken bog filled with giant crocodiles. -* An **ancient green dragon** rules from an ancient wooden throne guarded by loyal treants. | +| Level | Example Encounters | +| ------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| 1st | * An elf **cultist** hunts prey with bloodthirsty wolves. | +| 2nd to 4th | - Two **ettercaps** and their giant spiders stalk adventurers. +- An **ettin** warlord commands a host of orc mercenaries. +- A **green hag** lurks in an old hut with a pet giant toad, and is guarded by loyal bullywugs. +- A **werewolf** prowls the shadows with their dire wolf companions. | +| 5th to 10th | * An **orc war chief** commands a force of ettin and orc scouts based in a ruined keep. | +| 11th to 16th | - An **adult black dragon** commands a host of trolls made loyal through fear. +- An **adult green dragon** lurks in a dead forest, protected by shambling mounds. | +| 17th to 20th | * An **ancient black dragon** dwells in a sunken bog filled with giant crocodiles. +* An **ancient green dragon** rules from an ancient wooden throne guarded by loyal treants. | ## Hellish Citadel -| Level | Example Encounters | -| ------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| 2nd to 4th | * A **bearded devil** draws lemures through a portal connected to the river Styx. -* A **barbed devil** and a host of imps keep watch on enemy forces. | -| 5th to 10th | * An armored **erinyes** commanding a host of spined devils prepares for war. -* A **horned devil** leading bearded devil soldiers guards an oracular sphere. | -| 11th to 16th | * **Ice devil** wardens and bone devil guards protect a valuable prisoner. | -| 17th to 20th | * **Pit fiend** commanders and horned devil lieutenants use scrying crystals to get the drop on the characters. | +| Level | Example Encounters | +| ------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| 2nd to 4th | * A **bearded devil** draws lemures through a portal connected to the river Styx. +* A **barbed devil** and a host of imps keep watch on enemy forces. | +| 5th to 10th | - An armored **erinyes** commanding a host of spined devils prepares for war. +- A **horned devil** leading bearded devil soldiers guards an oracular sphere. | +| 11th to 16th | * **Ice devil** wardens and bone devil guards protect a valuable prisoner. | +| 17th to 20th | - **Pit fiend** commanders and horned devil lieutenants use scrying crystals to get the drop on the characters. | ## Frozen Fortress -| Level | Example Encounters | -| ------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| 5th to 10th | * **Frost giant** hunters enjoy the sport of their remorhaz pet stalking commoners. -* The bone-cluttered cave of an **abominable yeti** is guarded by winter wolves. | -| 11th to 16th | * An **adult white dragon** is served by loyal frost giants. | -| 17th to 20th | * An **ancient white dragon** lairing atop an inaccessible peak is worshiped by generations of abominable yetis. | +| Level | Example Encounters | +| ------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| 5th to 10th | * **Frost giant** hunters enjoy the sport of their remorhaz pet stalking commoners. +* The bone-cluttered cave of an **abominable yeti** is guarded by winter wolves. | +| 11th to 16th | - An **adult white dragon** is served by loyal frost giants. | +| 17th to 20th | * An **ancient white dragon** lairing atop an inaccessible peak is worshiped by generations of abominable yetis. | ## Deep Caverns -| Level | Example Encounters | -| ----------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| 1st | * A **cockatrice** pecks at a crumbling statue, while stirges linger above. -* A **giant bat** surrounded by swarms of bats skulks in the shadows. | -| 2nd to 4th | * **Darkmantles** and piercers lurk in pools of shadow. -* A worg-riding **goblin boss** commands a squad of goblin hunters. | -| 5th to 10th | * **Basilisks** and cockatrices lair in a hall full of petrified adventurers. -* A **cloaker** lurks above a pack of hook horrors disemboweling a dead bulette. -* **Ropers** and darkmantles hang above a waterfall, competing for prey. | +| Level | Example Encounters | +| ----------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| 1st | * A **cockatrice** pecks at a crumbling statue, while stirges linger above. +* A **giant bat** surrounded by swarms of bats skulks in the shadows. | +| 2nd to 4th | - **Darkmantles** and piercers lurk in pools of shadow. +- A worg-riding **goblin boss** commands a squad of goblin hunters. | +| 5th to 10th | * **Basilisks** and cockatrices lair in a hall full of petrified adventurers. +* A **cloaker** lurks above a pack of hook horrors disemboweling a dead bulette. +* **Ropers** and darkmantles hang above a waterfall, competing for prey. | ## Sunken Grotto -| Level | Example Encounters | -| ------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| 1st | * A **lizardfolk** hunter is teaching their trained giant crabs how to hunt. | -| 2nd to 4th | * A **sea hag** commands loyal kuo-toa to set up an effigy to a fictitious god. -* A **lizard king** with a lizardfolk shaman advisor commands a clan of lizardfolk from a coral throne. | -| 5th to 10th | * An **aboleth** in a swirling pool is guarded by chuuls and worshiped by enthralled veterans. -* A **sahuagin baron** watches a pack of sahuagin fight water weirds. -* A corrupt **sahuagin priestess** feeds sacrificial victims to giant crocodiles. | -| 11th to 16th | * A **kraken** rules a deep-sea trench, surrounded by reverent water elementals. | +| Level | Example Encounters | +| ------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| 1st | * A **lizardfolk** hunter is teaching their trained giant crabs how to hunt. | +| 2nd to 4th | - A **sea hag** commands loyal kuo-toa to set up an effigy to a fictitious god. +- A **lizard king** with a lizardfolk shaman advisor commands a clan of lizardfolk from a coral throne. | +| 5th to 10th | * An **aboleth** in a swirling pool is guarded by chuuls and worshiped by enthralled veterans. +* A **sahuagin baron** watches a pack of sahuagin fight water weirds. +* A corrupt **sahuagin priestess** feeds sacrificial victims to giant crocodiles. | +| 11th to 16th | - A **kraken** rules a deep-sea trench, surrounded by reverent water elementals. | diff --git a/metadata/5e_Monster_Builder_mdast.json b/metadata/5e_Monster_Builder_mdast.json index 62a3c89..a2357f1 100644 --- a/metadata/5e_Monster_Builder_mdast.json +++ b/metadata/5e_Monster_Builder_mdast.json @@ -47,8 +47,8 @@ }, { "type": "link", - "title": null, "url": "http://creativecommons.org/licenses/by/4.0/", + "title": null, "children": [ { "type": "text", @@ -74,8 +74,8 @@ }, { "type": "link", - "title": null, "url": "https://slyflourish.com/lazy_5e_monster_building_resource_document.html", + "title": null, "children": [ { "type": "text", @@ -89,8 +89,8 @@ }, { "type": "link", - "title": null, "url": "https://alphastream.org", + "title": null, "children": [ { "type": "text", @@ -104,8 +104,8 @@ }, { "type": "link", - "title": null, "url": "https://insaneangel.com", + "title": null, "children": [ { "type": "text", @@ -119,8 +119,8 @@ }, { "type": "link", - "title": null, "url": "https://slyflourish.com", + "title": null, "children": [ { "type": "text", @@ -134,8 +134,8 @@ }, { "type": "link", - "title": null, "url": "http://creativecommons.org/licenses/by/4.0/", + "title": null, "children": [ { "type": "text", @@ -160,8 +160,8 @@ }, { "type": "link", - "title": null, "url": "https://dnd.wizards.com/resources/systems-reference-document", + "title": null, "children": [ { "type": "text", @@ -175,8 +175,8 @@ }, { "type": "link", - "title": null, "url": "https://creativecommons.org/licenses/by/4.0/legalcode", + "title": null, "children": [ { "type": "text", @@ -199,8 +199,8 @@ }, { "type": "link", - "title": null, "url": "https://calibre-ebook.com", + "title": null, "children": [ { "type": "text", @@ -214,8 +214,8 @@ }, { "type": "link", - "title": null, "url": "https://pandoc.org", + "title": null, "children": [ { "type": "text", @@ -229,8 +229,8 @@ }, { "type": "link", - "title": null, "url": "https://www.amazon.com/sendtokindle", + "title": null, "children": [ { "type": "text", @@ -253,8 +253,8 @@ }, { "type": "link", - "title": null, "url": "https://github.com/crit-tech/LGMRD", + "title": null, "children": [ { "type": "text", @@ -294,8 +294,8 @@ "children": [ { "type": "link", - "title": null, "url": "#buildingaquickmonster", + "title": null, "children": [ { "type": "text", @@ -317,8 +317,8 @@ "children": [ { "type": "link", - "title": null, "url": "#generalusestatblocks", + "title": null, "children": [ { "type": "text", @@ -340,8 +340,8 @@ "children": [ { "type": "link", - "title": null, "url": "#lazytricksforrunningmonsters", + "title": null, "children": [ { "type": "text", @@ -363,8 +363,8 @@ "children": [ { "type": "link", - "title": null, "url": "#lightingrods", + "title": null, "children": [ { "type": "text", @@ -386,8 +386,8 @@ "children": [ { "type": "link", - "title": null, "url": "#monsterroles", + "title": null, "children": [ { "type": "text", @@ -409,8 +409,8 @@ "children": [ { "type": "link", - "title": null, "url": "#bossesandminions", + "title": null, "children": [ { "type": "text", @@ -432,8 +432,8 @@ "children": [ { "type": "link", - "title": null, "url": "#combatencounterchecklist", + "title": null, "children": [ { "type": "text", @@ -455,8 +455,8 @@ "children": [ { "type": "link", - "title": null, "url": "#monstercombinationsforahardchallenge", + "title": null, "children": [ { "type": "text", @@ -478,8 +478,8 @@ "children": [ { "type": "link", - "title": null, "url": "#lazyencounterbenchmark", + "title": null, "children": [ { "type": "text", @@ -501,8 +501,8 @@ "children": [ { "type": "link", - "title": null, "url": "#monstersbyadventurelocation", + "title": null, "children": [ { "type": "text", @@ -524,8 +524,8 @@ "children": [ { "type": "link", - "title": null, "url": "#monstersandthetiersofplay", + "title": null, "children": [ { "type": "text", diff --git a/metadata/LGMRD_mdast.json b/metadata/LGMRD_mdast.json index 2754e1e..90bdd56 100644 --- a/metadata/LGMRD_mdast.json +++ b/metadata/LGMRD_mdast.json @@ -20,8 +20,8 @@ }, { "type": "link", - "title": null, "url": "https://slyflourish.com", + "title": null, "children": [ { "type": "text", @@ -53,8 +53,8 @@ }, { "type": "link", - "title": null, "url": "https://slyflourish.com", + "title": null, "children": [ { "type": "text", @@ -77,8 +77,8 @@ }, { "type": "link", - "title": null, "url": "http://creativecommons.org/licenses/by/4.0/", + "title": null, "children": [ { "type": "text", @@ -104,8 +104,8 @@ }, { "type": "link", - "title": null, "url": "https://slyflourish.com/lazy_gm_resource_document.html", + "title": null, "children": [ { "type": "text", @@ -119,8 +119,8 @@ }, { "type": "link", - "title": null, "url": "https://slyflourish.com", + "title": null, "children": [ { "type": "text", @@ -134,8 +134,8 @@ }, { "type": "link", - "title": null, "url": "http://creativecommons.org/licenses/by/4.0/", + "title": null, "children": [ { "type": "text", @@ -160,8 +160,8 @@ }, { "type": "link", - "title": null, "url": "https://dnd.wizards.com/resources/systems-reference-document", + "title": null, "children": [ { "type": "text", @@ -175,8 +175,8 @@ }, { "type": "link", - "title": null, "url": "https://creativecommons.org/licenses/by/4.0/legalcode", + "title": null, "children": [ { "type": "text", @@ -199,8 +199,8 @@ }, { "type": "link", - "title": null, "url": "https://www.patreon.com/slyflourish", + "title": null, "children": [ { "type": "text", @@ -223,8 +223,8 @@ }, { "type": "link", - "title": null, "url": "https://calibre-ebook.com", + "title": null, "children": [ { "type": "text", @@ -238,8 +238,8 @@ }, { "type": "link", - "title": null, "url": "https://pandoc.org", + "title": null, "children": [ { "type": "text", @@ -253,8 +253,8 @@ }, { "type": "link", - "title": null, "url": "https://www.amazon.com/sendtokindle", + "title": null, "children": [ { "type": "text", @@ -277,8 +277,8 @@ }, { "type": "link", - "title": null, "url": "https://github.com/crit-tech/LGMRD", + "title": null, "children": [ { "type": "text", @@ -318,8 +318,8 @@ "children": [ { "type": "link", - "title": null, "url": "#eightsteps", + "title": null, "children": [ { "type": "text", @@ -341,8 +341,8 @@ "children": [ { "type": "link", - "title": null, "url": "#prepprocess", + "title": null, "children": [ { "type": "text", @@ -364,8 +364,8 @@ "children": [ { "type": "link", - "title": null, "url": "#strongstarts", + "title": null, "children": [ { "type": "text", @@ -387,8 +387,8 @@ "children": [ { "type": "link", - "title": null, "url": "#creatingsecrets", + "title": null, "children": [ { "type": "text", @@ -410,8 +410,8 @@ "children": [ { "type": "link", - "title": null, "url": "#buildingagroup", + "title": null, "children": [ { "type": "text", @@ -433,8 +433,8 @@ "children": [ { "type": "link", - "title": null, "url": "#sessionzerochecklist", + "title": null, "children": [ { "type": "text", @@ -456,8 +456,8 @@ "children": [ { "type": "link", - "title": null, "url": "#safetytools", + "title": null, "children": [ { "type": "text", @@ -479,8 +479,8 @@ "children": [ { "type": "link", - "title": null, "url": "#connectingcharacters", + "title": null, "children": [ { "type": "text", @@ -502,8 +502,8 @@ "children": [ { "type": "link", - "title": null, "url": "#spiralcampaigns", + "title": null, "children": [ { "type": "text", @@ -525,8 +525,8 @@ "children": [ { "type": "link", - "title": null, "url": "#questtemplates", + "title": null, "children": [ { "type": "text", @@ -548,8 +548,8 @@ "children": [ { "type": "link", - "title": null, "url": "#toolsforimprov", + "title": null, "children": [ { "type": "text", @@ -571,8 +571,8 @@ "children": [ { "type": "link", - "title": null, "url": "#quicktricks", + "title": null, "children": [ { "type": "text", @@ -594,8 +594,8 @@ "children": [ { "type": "link", - "title": null, "url": "#quickencounterbuilding", + "title": null, "children": [ { "type": "text", @@ -617,8 +617,8 @@ "children": [ { "type": "link", - "title": null, "url": "#wildernesstravel", + "title": null, "children": [ { "type": "text", @@ -640,8 +640,8 @@ "children": [ { "type": "link", - "title": null, "url": "#lazycombatencounterbuilding", + "title": null, "children": [ { "type": "text", @@ -663,8 +663,8 @@ "children": [ { "type": "link", - "title": null, "url": "#totmguidelines1", + "title": null, "children": [ { "type": "text", @@ -686,8 +686,8 @@ "children": [ { "type": "link", - "title": null, "url": "#totm2", + "title": null, "children": [ { "type": "text", @@ -709,8 +709,8 @@ "children": [ { "type": "link", - "title": null, "url": "#zonebasedcombat", + "title": null, "children": [ { "type": "text", @@ -732,8 +732,8 @@ "children": [ { "type": "link", - "title": null, "url": "#monsterdifficultydials", + "title": null, "children": [ { "type": "text", @@ -755,8 +755,8 @@ "children": [ { "type": "link", - "title": null, "url": "#monstertemplates", + "title": null, "children": [ { "type": "text", @@ -778,8 +778,8 @@ "children": [ { "type": "link", - "title": null, "url": "#undeadtemplates", + "title": null, "children": [ { "type": "text", @@ -801,8 +801,8 @@ "children": [ { "type": "link", - "title": null, "url": "#runninghordes", + "title": null, "children": [ { "type": "text", @@ -824,8 +824,8 @@ "children": [ { "type": "link", - "title": null, "url": "#stresseffects", + "title": null, "children": [ { "type": "text", @@ -847,8 +847,8 @@ "children": [ { "type": "link", - "title": null, "url": "#coreadventuregenerators", + "title": null, "children": [ { "type": "text", @@ -870,8 +870,8 @@ "children": [ { "type": "link", - "title": null, "url": "#npcgenerator", + "title": null, "children": [ { "type": "text", @@ -893,8 +893,8 @@ "children": [ { "type": "link", - "title": null, "url": "#treasuregenerator", + "title": null, "children": [ { "type": "text", @@ -916,8 +916,8 @@ "children": [ { "type": "link", - "title": null, "url": "#randomtraps", + "title": null, "children": [ { "type": "text", @@ -939,8 +939,8 @@ "children": [ { "type": "link", - "title": null, "url": "#randommonuments", + "title": null, "children": [ { "type": "text", @@ -962,8 +962,8 @@ "children": [ { "type": "link", - "title": null, "url": "#randomitems", + "title": null, "children": [ { "type": "text", @@ -985,8 +985,8 @@ "children": [ { "type": "link", - "title": null, "url": "#randomtownevents", + "title": null, "children": [ { "type": "text", @@ -1008,8 +1008,8 @@ "children": [ { "type": "link", - "title": null, "url": "#randomdungeonmonsters", + "title": null, "children": [ { "type": "text", @@ -1031,8 +1031,8 @@ "children": [ { "type": "link", - "title": null, "url": "#lazysolo5e", + "title": null, "children": [ { "type": "text", @@ -1400,8 +1400,8 @@ }, { "type": "link", - "title": null, "url": "#lazycombatencounterbuilding", + "title": null, "children": [ { "type": "text", @@ -5574,8 +5574,8 @@ "children": [ { "type": "link", - "title": null, "url": "http://tinyurl.com/x-card-rpg", + "title": null, "children": [ { "type": "text", @@ -5601,8 +5601,8 @@ "children": [ { "type": "link", - "title": null, "url": "https://briebeau.com/scriptchange", + "title": null, "children": [ { "type": "text", @@ -5628,8 +5628,8 @@ "children": [ { "type": "link", - "title": null, "url": "https://drive.google.com/drive/folders/114jRmhzBpdqkAlhmveis0nmW73qkAZCj", + "title": null, "children": [ { "type": "text", @@ -8374,8 +8374,8 @@ }, { "type": "link", - "title": null, "url": "#lazycombatencounterbuilding", + "title": null, "children": [ { "type": "text", @@ -8408,8 +8408,8 @@ }, { "type": "link", - "title": null, "url": "#runninghordes", + "title": null, "children": [ { "type": "text", @@ -8460,8 +8460,8 @@ }, { "type": "link", - "title": null, "url": "#npcgenerator", + "title": null, "children": [ { "type": "text", @@ -31609,8 +31609,8 @@ }, { "type": "link", - "title": null, "url": "#quickencounterbuilding", + "title": null, "children": [ { "type": "text", @@ -36265,8 +36265,8 @@ }, { "type": "link", - "title": null, "url": "#coreadventuregenerators", + "title": null, "children": [ { "type": "text", @@ -36280,8 +36280,8 @@ }, { "type": "link", - "title": null, "url": "#npcgenerator", + "title": null, "children": [ { "type": "text", @@ -36304,8 +36304,8 @@ }, { "type": "link", - "title": null, "url": "#coreadventuregenerators", + "title": null, "children": [ { "type": "text", @@ -36337,8 +36337,8 @@ }, { "type": "link", - "title": null, "url": "#coreadventuregenerators", + "title": null, "children": [ { "type": "text", @@ -36585,8 +36585,8 @@ }, { "type": "link", - "title": null, "url": "#coreadventuregenerators", + "title": null, "children": [ { "type": "text", @@ -36619,8 +36619,8 @@ }, { "type": "link", - "title": null, "url": "#randomdungeonmonsters", + "title": null, "children": [ { "type": "text", @@ -36662,8 +36662,8 @@ }, { "type": "link", - "title": null, "url": "#coreadventuregenerators", + "title": null, "children": [ { "type": "text", @@ -36983,8 +36983,8 @@ }, { "type": "link", - "title": null, "url": "#treasuregenerator", + "title": null, "children": [ { "type": "text", diff --git a/metadata/updates.json b/metadata/updates.json index b36a905..5776d12 100644 --- a/metadata/updates.json +++ b/metadata/updates.json @@ -1,6 +1,6 @@ { - "markdown": "2024-02-08T02:14:26.007Z", - "markdown_separate": "2024-02-08T02:14:26.309Z", + "markdown": "2024-03-10T23:21:26.543Z", + "markdown_separate": "2024-03-10T23:21:26.769Z", "json": "2024-02-08T02:14:27.231Z", "html": "2024-02-08T02:14:22.742Z", "pdf": "2024-02-08T02:14:24.868Z", @@ -8,7 +8,9 @@ "mb-html": "2024-02-10T00:52:43.574Z", "mb-pdf": "2024-02-10T00:52:44.478Z", "mb-epub": "2024-02-10T00:52:44.982Z", - "mb-markdown": "2024-02-10T00:52:45.224Z", - "mb-markdown_separate": "2024-02-10T00:52:45.397Z", - "mb-json": "2024-02-10T00:52:45.808Z" + "mb-markdown": "2024-03-10T23:21:27.774Z", + "mb-markdown_separate": "2024-03-10T23:21:27.918Z", + "mb-json": "2024-03-10T23:21:54.715Z", + "markdown_obsidian": "2024-03-10T23:21:53.352Z", + "mb-markdown_obsidian": "2024-03-10T23:21:54.425Z" } \ No newline at end of file diff --git a/packages/lgmmbrd/index.cjs b/packages/lgmmbrd/index.cjs index 354b375..b4c8275 100644 --- a/packages/lgmmbrd/index.cjs +++ b/packages/lgmmbrd/index.cjs @@ -16,7 +16,7 @@ */ module.exports = { - version: "2.3.0", + version: "2.4.0", sections: [ { id: "bossesandminions", @@ -2290,7 +2290,7 @@ module.exports = { { level: "1st", example_encounters: - "* A thug leads bandits intending to rob a caravan.", + "* A thug leads bandits intending to rob a caravan.", }, ], }, @@ -2299,8 +2299,14 @@ module.exports = { order: 1, data: [ { - item: "A vengeful shadow shifts in the darkness among a handful of arisen skeletons. |\n| 2nd to 4th | * A pair of bugbear entrepreneurs use goblin actors as bait to seek adventurers as prey.", + item: "A vengeful shadow shifts in the darkness among a handful of arisen skeletons. |\n| 2nd to 4th | - A pair of bugbear entrepreneurs use goblin actors as bait to seek adventurers as prey.", }, + ], + }, + { + type: "table", + order: 2, + data: [ { item: "A sorrowful banshee orders specters to recreate their former beautiful life.", }, @@ -2311,14 +2317,20 @@ module.exports = { item: "A death dog protected by wolves lairs in a ruined cave.", }, { - item: "A lamia served by jackalweres dwells in an illusory paradise. |\n| 5th to 10th | * A wise bugbear chief leads bugbear and goblin soldiers from an obsidian throne.", + item: "A lamia served by jackalweres dwells in an illusory paradise. |\n| 5th to 10th | * A wise bugbear chief leads bugbear and goblin soldiers from an obsidian throne.", }, + ], + }, + { + type: "table", + order: 3, + data: [ { item: "A cyclops matriarch leads fanatically loyal ogres." }, { item: "A solitary medusa dwells in a mausoleum, surrounded by petrified heroes and protected by death dogs.", }, { - item: "A noble oni in a posh den is guarded by loyal spirit naga storytellers. |\n| 11th to 16th | * An adult blue dragon is guarded by clay golems in a jeweled lair. |\n| 17th to 20th | * An ancient blue dragon protected by stone golems and air elementals dwells in the shattered remains of a tower. |", + item: "A noble oni in a posh den is guarded by loyal spirit naga storytellers. |\n| 11th to 16th | - An adult blue dragon is guarded by clay golems in a jeweled lair. |\n| 17th to 20th | * An ancient blue dragon protected by stone golems and air elementals dwells in the shattered remains of a tower. |", }, ], }, @@ -2340,12 +2352,12 @@ module.exports = { { level: "1st", example_encounters: - "* A pair of skeletons rises from a pile of crawling claws.", + "* A pair of skeletons rises from a pile of crawling claws.", }, { level: "2nd to 4th", example_encounters: - "* A lost ghost wanders, surrounded by specters.", + "- A lost ghost wanders, surrounded by specters.", }, ], }, @@ -2354,10 +2366,16 @@ module.exports = { order: 1, data: [ { - item: "A bone naga rises from an obsidian sarcophagus to command a host of skeletons. |\n| 5th to 10th | * A mummy lord entombed in a cold-iron sarcophagus is guarded by mummies and wights.", + item: "A bone naga rises from an obsidian sarcophagus to command a host of skeletons. |\n| 5th to 10th | * A mummy lord entombed in a cold-iron sarcophagus is guarded by mummies and wights.", }, + ], + }, + { + type: "table", + order: 2, + data: [ { - item: "A pair of wraiths float above unholy urns surrounded by vengeful specters. |\n| 11th to 16th | * A vampire in a gilded tomb is guarded by howling dire wolves and served by vampire spawn. |\n| 17th to 20th | * A lich in an unhallowed laboratory is protected by loyal death knights and iron golems. |", + item: "A pair of wraiths float above unholy urns surrounded by vengeful specters. |\n| 11th to 16th | - A vampire in a gilded tomb is guarded by howling dire wolves and served by vampire spawn. |\n| 17th to 20th | * A lich in an unhallowed laboratory is protected by loyal death knights and iron golems. |", }, ], }, @@ -2379,12 +2397,12 @@ module.exports = { { level: "1st", example_encounters: - "* A wandering zombie is covered by a swarm of rats.", + "* A wandering zombie is covered by a swarm of rats.", }, { level: "2nd to 4th", example_encounters: - "* An erudite ghast weaves fantastic tales to their ravenous ghoul followers.", + "- An erudite ghast weaves fantastic tales to their ravenous ghoul followers.", }, ], }, @@ -2421,7 +2439,7 @@ module.exports = { { level: "1st", example_encounters: - "* A giant rat and the swarm of rats that travels with them are feeding on a dead body.", + "* A giant rat and the swarm of rats that travels with them are feeding on a dead body.", }, ], }, @@ -2430,14 +2448,26 @@ module.exports = { order: 1, data: [ { - item: "A thug and a pack of bandit toadies are waiting for someone to rob. |\n| 2nd to 4th | * A spy assisted by thugs has been hired to steal something from the characters.", + item: "A thug and a pack of bandit toadies are waiting for someone to rob. |\n| 2nd to 4th | - A spy assisted by thugs has been hired to steal something from the characters.", }, + ], + }, + { + type: "table", + order: 2, + data: [ { item: "A bandit captain with berserker bodyguards and bandit followers is easily insulted.", }, { - item: "A cult fanatic leads cultists who have summoned ravenous dretches into the world. |\n| 5th to 10th | * A mage commanding veterans is seeking something the characters seek as well.", + item: "A cult fanatic leads cultists who have summoned ravenous dretches into the world. |\n| 5th to 10th | * A mage commanding veterans is seeking something the characters seek as well.", }, + ], + }, + { + type: "table", + order: 3, + data: [ { item: "A bandit captain protected by hired gladiators and veterans seeks the characters with an offer they can't refuse.", }, @@ -2464,17 +2494,17 @@ module.exports = { { level: "1st", example_encounters: - "* A loyal imp commands a squad of guardian flying swords.", + "* A loyal imp commands a squad of guardian flying swords.", }, { level: "2nd to 4th", example_encounters: - "* A summoned succubus or incubus directs animated armor serving as guards.", + "- A summoned succubus or incubus directs animated armor serving as guards.", }, { level: "5th to 10th", example_encounters: - "* Apprentice mages command elementals and flesh golems.", + "* Apprentice mages command elementals and flesh golems.", }, ], }, @@ -2483,7 +2513,7 @@ module.exports = { order: 1, data: [ { - item: "An important chamber is guarded by two flameskulls and a number of helmed horrors. |\n| 11th to 16th | * An impatient archmage is protected by two stone golems in an arcane laboratory. |\n| 17th to 20th | * A lich studies the multiverse while protected by bound balors and iron golems. |", + item: "An important chamber is guarded by two flameskulls and a number of helmed horrors. |\n| 11th to 16th | - An impatient archmage is protected by two stone golems in an arcane laboratory. |\n| 17th to 20th | * A lich studies the multiverse while protected by bound balors and iron golems. |", }, ], }, @@ -2505,7 +2535,7 @@ module.exports = { { level: "5th to 10th", example_encounters: - "* A fire giant with pet hell hounds commands an azer to dig for them.", + "* A fire giant with pet hell hounds commands an azer to dig for them.", }, ], }, @@ -2514,7 +2544,7 @@ module.exports = { order: 1, data: [ { - item: "A trapped efreeti uses fire elementals to fight for freedom. |\n| 11th to 16th | * An adult red dragon served by salamanders demands fealty from the characters. |\n| 17th to 20th | * An ancient red dragon worshiped by fire giants awakens from slumber. |", + item: "A trapped efreeti uses fire elementals to fight for freedom. |\n| 11th to 16th | - An adult red dragon served by salamanders demands fealty from the characters. |\n| 17th to 20th | * An ancient red dragon worshiped by fire giants awakens from slumber. |", }, ], }, @@ -2536,7 +2566,7 @@ module.exports = { { level: "2nd to 4th", example_encounters: - "* A night hag and their pet quasit schemes within a chamber guarded by hell hounds.", + "* A night hag and their pet quasit schemes within a chamber guarded by hell hounds.", }, ], }, @@ -2545,7 +2575,7 @@ module.exports = { order: 1, data: [ { - item: "A summoning circle disgorges a barlgura and a gang of dretches. |\n| 5th to 10th | * A glabrezu commands from a throne flanked by chasmes. |\n| 11th to 16th | * A marilith, their cambion advisor, and a number of hezrou servants guard a planar gateway. |\n| 17th to 20th | * A balor, a servile archmage, and a squad of glabrezu soldiers guard an artifact. |", + item: "A summoning circle disgorges a barlgura and a gang of dretches. |\n| 5th to 10th | - A glabrezu commands from a throne flanked by chasmes. |\n| 11th to 16th | * A marilith, their cambion advisor, and a number of hezrou servants guard a planar gateway. |\n| 17th to 20th | - A balor, a servile archmage, and a squad of glabrezu soldiers guard an artifact. |", }, ], }, @@ -2567,12 +2597,12 @@ module.exports = { { level: "1st", example_encounters: - "* An elf cultist hunts prey with bloodthirsty wolves.", + "* An elf cultist hunts prey with bloodthirsty wolves.", }, { level: "2nd to 4th", example_encounters: - "* Two ettercaps and their giant spiders stalk adventurers.", + "- Two ettercaps and their giant spiders stalk adventurers.", }, ], }, @@ -2587,13 +2617,19 @@ module.exports = { item: "A green hag lurks in an old hut with a pet giant toad, and is guarded by loyal bullywugs.", }, { - item: "A werewolf prowls the shadows with their dire wolf companions. |\n| 5th to 10th | * An orc war chief commands a force of ettin and orc scouts based in a ruined keep. |\n| 11th to 16th | * An adult black dragon commands a host of trolls made loyal through fear.", + item: "A werewolf prowls the shadows with their dire wolf companions. |\n| 5th to 10th | * An orc war chief commands a force of ettin and orc scouts based in a ruined keep. |\n| 11th to 16th | - An adult black dragon commands a host of trolls made loyal through fear.", }, { - item: "An adult green dragon lurks in a dead forest, protected by shambling mounds. |\n| 17th to 20th | * An ancient black dragon dwells in a sunken bog filled with giant crocodiles.", + item: "An adult green dragon lurks in a dead forest, protected by shambling mounds. |\n| 17th to 20th | * An ancient black dragon dwells in a sunken bog filled with giant crocodiles.", }, + ], + }, + { + type: "table", + order: 2, + data: [ { - item: "An ancient green dragon rules from an ancient wooden throne guarded by loyal treants. |", + item: "An ancient green dragon rules from an ancient wooden throne guarded by loyal treants. |", }, ], }, @@ -2615,7 +2651,7 @@ module.exports = { { level: "2nd to 4th", example_encounters: - "* A bearded devil draws lemures through a portal connected to the river Styx.", + "* A bearded devil draws lemures through a portal connected to the river Styx.", }, ], }, @@ -2624,10 +2660,16 @@ module.exports = { order: 1, data: [ { - item: "A barbed devil and a host of imps keep watch on enemy forces. |\n| 5th to 10th | * An armored erinyes commanding a host of spined devils prepares for war.", + item: "A barbed devil and a host of imps keep watch on enemy forces. |\n| 5th to 10th | - An armored erinyes commanding a host of spined devils prepares for war.", }, + ], + }, + { + type: "table", + order: 2, + data: [ { - item: "A horned devil leading bearded devil soldiers guards an oracular sphere. |\n| 11th to 16th | * Ice devil wardens and bone devil guards protect a valuable prisoner. |\n| 17th to 20th | * Pit fiend commanders and horned devil lieutenants use scrying crystals to get the drop on the characters. |", + item: "A horned devil leading bearded devil soldiers guards an oracular sphere. |\n| 11th to 16th | * Ice devil wardens and bone devil guards protect a valuable prisoner. |\n| 17th to 20th | - Pit fiend commanders and horned devil lieutenants use scrying crystals to get the drop on the characters. |", }, ], }, @@ -2649,7 +2691,7 @@ module.exports = { { level: "5th to 10th", example_encounters: - "* Frost giant hunters enjoy the sport of their remorhaz pet stalking commoners.", + "* Frost giant hunters enjoy the sport of their remorhaz pet stalking commoners.", }, ], }, @@ -2658,7 +2700,7 @@ module.exports = { order: 1, data: [ { - item: "The bone-cluttered cave of an abominable yeti is guarded by winter wolves. |\n| 11th to 16th | * An adult white dragon is served by loyal frost giants. |\n| 17th to 20th | * An ancient white dragon lairing atop an inaccessible peak is worshiped by generations of abominable yetis. |", + item: "The bone-cluttered cave of an abominable yeti is guarded by winter wolves. |\n| 11th to 16th | - An adult white dragon is served by loyal frost giants. |\n| 17th to 20th | * An ancient white dragon lairing atop an inaccessible peak is worshiped by generations of abominable yetis. |", }, ], }, @@ -2680,7 +2722,7 @@ module.exports = { { level: "1st", example_encounters: - "* A cockatrice pecks at a crumbling statue, while stirges linger above.", + "* A cockatrice pecks at a crumbling statue, while stirges linger above.", }, ], }, @@ -2689,11 +2731,23 @@ module.exports = { order: 1, data: [ { - item: "A giant bat surrounded by swarms of bats skulks in the shadows. |\n| 2nd to 4th | * Darkmantles and piercers lurk in pools of shadow.", + item: "A giant bat surrounded by swarms of bats skulks in the shadows. |\n| 2nd to 4th | - Darkmantles and piercers lurk in pools of shadow.", }, + ], + }, + { + type: "table", + order: 2, + data: [ { - item: "A worg-riding goblin boss commands a squad of goblin hunters. |\n| 5th to 10th | * Basilisks and cockatrices lair in a hall full of petrified adventurers.", + item: "A worg-riding goblin boss commands a squad of goblin hunters. |\n| 5th to 10th | * Basilisks and cockatrices lair in a hall full of petrified adventurers.", }, + ], + }, + { + type: "table", + order: 3, + data: [ { item: "A cloaker lurks above a pack of hook horrors disemboweling a dead bulette.", }, @@ -2720,12 +2774,12 @@ module.exports = { { level: "1st", example_encounters: - "* A lizardfolk hunter is teaching their trained giant crabs how to hunt.", + "* A lizardfolk hunter is teaching their trained giant crabs how to hunt.", }, { level: "2nd to 4th", example_encounters: - "* A sea hag commands loyal kuo-toa to set up an effigy to a fictitious god.", + "- A sea hag commands loyal kuo-toa to set up an effigy to a fictitious god.", }, ], }, @@ -2734,13 +2788,19 @@ module.exports = { order: 1, data: [ { - item: "A lizard king with a lizardfolk shaman advisor commands a clan of lizardfolk from a coral throne. |\n| 5th to 10th | * An aboleth in a swirling pool is guarded by chuuls and worshiped by enthralled veterans.", + item: "A lizard king with a lizardfolk shaman advisor commands a clan of lizardfolk from a coral throne. |\n| 5th to 10th | * An aboleth in a swirling pool is guarded by chuuls and worshiped by enthralled veterans.", }, + ], + }, + { + type: "table", + order: 2, + data: [ { item: "A sahuagin baron watches a pack of sahuagin fight water weirds.", }, { - item: "A corrupt sahuagin priestess feeds sacrificial victims to giant crocodiles. |\n| 11th to 16th | * A kraken rules a deep-sea trench, surrounded by reverent water elementals. |", + item: "A corrupt sahuagin priestess feeds sacrificial victims to giant crocodiles. |\n| 11th to 16th | - A kraken rules a deep-sea trench, surrounded by reverent water elementals. |", }, ], }, diff --git a/packages/lgmmbrd/index.mjs b/packages/lgmmbrd/index.mjs index 86cef5e..58733b4 100644 --- a/packages/lgmmbrd/index.mjs +++ b/packages/lgmmbrd/index.mjs @@ -16,7 +16,7 @@ */ export default { - version: "2.3.0", + version: "2.4.0", sections: [ { id: "bossesandminions", @@ -2290,7 +2290,7 @@ export default { { level: "1st", example_encounters: - "* A thug leads bandits intending to rob a caravan.", + "* A thug leads bandits intending to rob a caravan.", }, ], }, @@ -2299,8 +2299,14 @@ export default { order: 1, data: [ { - item: "A vengeful shadow shifts in the darkness among a handful of arisen skeletons. |\n| 2nd to 4th | * A pair of bugbear entrepreneurs use goblin actors as bait to seek adventurers as prey.", + item: "A vengeful shadow shifts in the darkness among a handful of arisen skeletons. |\n| 2nd to 4th | - A pair of bugbear entrepreneurs use goblin actors as bait to seek adventurers as prey.", }, + ], + }, + { + type: "table", + order: 2, + data: [ { item: "A sorrowful banshee orders specters to recreate their former beautiful life.", }, @@ -2311,14 +2317,20 @@ export default { item: "A death dog protected by wolves lairs in a ruined cave.", }, { - item: "A lamia served by jackalweres dwells in an illusory paradise. |\n| 5th to 10th | * A wise bugbear chief leads bugbear and goblin soldiers from an obsidian throne.", + item: "A lamia served by jackalweres dwells in an illusory paradise. |\n| 5th to 10th | * A wise bugbear chief leads bugbear and goblin soldiers from an obsidian throne.", }, + ], + }, + { + type: "table", + order: 3, + data: [ { item: "A cyclops matriarch leads fanatically loyal ogres." }, { item: "A solitary medusa dwells in a mausoleum, surrounded by petrified heroes and protected by death dogs.", }, { - item: "A noble oni in a posh den is guarded by loyal spirit naga storytellers. |\n| 11th to 16th | * An adult blue dragon is guarded by clay golems in a jeweled lair. |\n| 17th to 20th | * An ancient blue dragon protected by stone golems and air elementals dwells in the shattered remains of a tower. |", + item: "A noble oni in a posh den is guarded by loyal spirit naga storytellers. |\n| 11th to 16th | - An adult blue dragon is guarded by clay golems in a jeweled lair. |\n| 17th to 20th | * An ancient blue dragon protected by stone golems and air elementals dwells in the shattered remains of a tower. |", }, ], }, @@ -2340,12 +2352,12 @@ export default { { level: "1st", example_encounters: - "* A pair of skeletons rises from a pile of crawling claws.", + "* A pair of skeletons rises from a pile of crawling claws.", }, { level: "2nd to 4th", example_encounters: - "* A lost ghost wanders, surrounded by specters.", + "- A lost ghost wanders, surrounded by specters.", }, ], }, @@ -2354,10 +2366,16 @@ export default { order: 1, data: [ { - item: "A bone naga rises from an obsidian sarcophagus to command a host of skeletons. |\n| 5th to 10th | * A mummy lord entombed in a cold-iron sarcophagus is guarded by mummies and wights.", + item: "A bone naga rises from an obsidian sarcophagus to command a host of skeletons. |\n| 5th to 10th | * A mummy lord entombed in a cold-iron sarcophagus is guarded by mummies and wights.", }, + ], + }, + { + type: "table", + order: 2, + data: [ { - item: "A pair of wraiths float above unholy urns surrounded by vengeful specters. |\n| 11th to 16th | * A vampire in a gilded tomb is guarded by howling dire wolves and served by vampire spawn. |\n| 17th to 20th | * A lich in an unhallowed laboratory is protected by loyal death knights and iron golems. |", + item: "A pair of wraiths float above unholy urns surrounded by vengeful specters. |\n| 11th to 16th | - A vampire in a gilded tomb is guarded by howling dire wolves and served by vampire spawn. |\n| 17th to 20th | * A lich in an unhallowed laboratory is protected by loyal death knights and iron golems. |", }, ], }, @@ -2379,12 +2397,12 @@ export default { { level: "1st", example_encounters: - "* A wandering zombie is covered by a swarm of rats.", + "* A wandering zombie is covered by a swarm of rats.", }, { level: "2nd to 4th", example_encounters: - "* An erudite ghast weaves fantastic tales to their ravenous ghoul followers.", + "- An erudite ghast weaves fantastic tales to their ravenous ghoul followers.", }, ], }, @@ -2421,7 +2439,7 @@ export default { { level: "1st", example_encounters: - "* A giant rat and the swarm of rats that travels with them are feeding on a dead body.", + "* A giant rat and the swarm of rats that travels with them are feeding on a dead body.", }, ], }, @@ -2430,14 +2448,26 @@ export default { order: 1, data: [ { - item: "A thug and a pack of bandit toadies are waiting for someone to rob. |\n| 2nd to 4th | * A spy assisted by thugs has been hired to steal something from the characters.", + item: "A thug and a pack of bandit toadies are waiting for someone to rob. |\n| 2nd to 4th | - A spy assisted by thugs has been hired to steal something from the characters.", }, + ], + }, + { + type: "table", + order: 2, + data: [ { item: "A bandit captain with berserker bodyguards and bandit followers is easily insulted.", }, { - item: "A cult fanatic leads cultists who have summoned ravenous dretches into the world. |\n| 5th to 10th | * A mage commanding veterans is seeking something the characters seek as well.", + item: "A cult fanatic leads cultists who have summoned ravenous dretches into the world. |\n| 5th to 10th | * A mage commanding veterans is seeking something the characters seek as well.", }, + ], + }, + { + type: "table", + order: 3, + data: [ { item: "A bandit captain protected by hired gladiators and veterans seeks the characters with an offer they can't refuse.", }, @@ -2464,17 +2494,17 @@ export default { { level: "1st", example_encounters: - "* A loyal imp commands a squad of guardian flying swords.", + "* A loyal imp commands a squad of guardian flying swords.", }, { level: "2nd to 4th", example_encounters: - "* A summoned succubus or incubus directs animated armor serving as guards.", + "- A summoned succubus or incubus directs animated armor serving as guards.", }, { level: "5th to 10th", example_encounters: - "* Apprentice mages command elementals and flesh golems.", + "* Apprentice mages command elementals and flesh golems.", }, ], }, @@ -2483,7 +2513,7 @@ export default { order: 1, data: [ { - item: "An important chamber is guarded by two flameskulls and a number of helmed horrors. |\n| 11th to 16th | * An impatient archmage is protected by two stone golems in an arcane laboratory. |\n| 17th to 20th | * A lich studies the multiverse while protected by bound balors and iron golems. |", + item: "An important chamber is guarded by two flameskulls and a number of helmed horrors. |\n| 11th to 16th | - An impatient archmage is protected by two stone golems in an arcane laboratory. |\n| 17th to 20th | * A lich studies the multiverse while protected by bound balors and iron golems. |", }, ], }, @@ -2505,7 +2535,7 @@ export default { { level: "5th to 10th", example_encounters: - "* A fire giant with pet hell hounds commands an azer to dig for them.", + "* A fire giant with pet hell hounds commands an azer to dig for them.", }, ], }, @@ -2514,7 +2544,7 @@ export default { order: 1, data: [ { - item: "A trapped efreeti uses fire elementals to fight for freedom. |\n| 11th to 16th | * An adult red dragon served by salamanders demands fealty from the characters. |\n| 17th to 20th | * An ancient red dragon worshiped by fire giants awakens from slumber. |", + item: "A trapped efreeti uses fire elementals to fight for freedom. |\n| 11th to 16th | - An adult red dragon served by salamanders demands fealty from the characters. |\n| 17th to 20th | * An ancient red dragon worshiped by fire giants awakens from slumber. |", }, ], }, @@ -2536,7 +2566,7 @@ export default { { level: "2nd to 4th", example_encounters: - "* A night hag and their pet quasit schemes within a chamber guarded by hell hounds.", + "* A night hag and their pet quasit schemes within a chamber guarded by hell hounds.", }, ], }, @@ -2545,7 +2575,7 @@ export default { order: 1, data: [ { - item: "A summoning circle disgorges a barlgura and a gang of dretches. |\n| 5th to 10th | * A glabrezu commands from a throne flanked by chasmes. |\n| 11th to 16th | * A marilith, their cambion advisor, and a number of hezrou servants guard a planar gateway. |\n| 17th to 20th | * A balor, a servile archmage, and a squad of glabrezu soldiers guard an artifact. |", + item: "A summoning circle disgorges a barlgura and a gang of dretches. |\n| 5th to 10th | - A glabrezu commands from a throne flanked by chasmes. |\n| 11th to 16th | * A marilith, their cambion advisor, and a number of hezrou servants guard a planar gateway. |\n| 17th to 20th | - A balor, a servile archmage, and a squad of glabrezu soldiers guard an artifact. |", }, ], }, @@ -2567,12 +2597,12 @@ export default { { level: "1st", example_encounters: - "* An elf cultist hunts prey with bloodthirsty wolves.", + "* An elf cultist hunts prey with bloodthirsty wolves.", }, { level: "2nd to 4th", example_encounters: - "* Two ettercaps and their giant spiders stalk adventurers.", + "- Two ettercaps and their giant spiders stalk adventurers.", }, ], }, @@ -2587,13 +2617,19 @@ export default { item: "A green hag lurks in an old hut with a pet giant toad, and is guarded by loyal bullywugs.", }, { - item: "A werewolf prowls the shadows with their dire wolf companions. |\n| 5th to 10th | * An orc war chief commands a force of ettin and orc scouts based in a ruined keep. |\n| 11th to 16th | * An adult black dragon commands a host of trolls made loyal through fear.", + item: "A werewolf prowls the shadows with their dire wolf companions. |\n| 5th to 10th | * An orc war chief commands a force of ettin and orc scouts based in a ruined keep. |\n| 11th to 16th | - An adult black dragon commands a host of trolls made loyal through fear.", }, { - item: "An adult green dragon lurks in a dead forest, protected by shambling mounds. |\n| 17th to 20th | * An ancient black dragon dwells in a sunken bog filled with giant crocodiles.", + item: "An adult green dragon lurks in a dead forest, protected by shambling mounds. |\n| 17th to 20th | * An ancient black dragon dwells in a sunken bog filled with giant crocodiles.", }, + ], + }, + { + type: "table", + order: 2, + data: [ { - item: "An ancient green dragon rules from an ancient wooden throne guarded by loyal treants. |", + item: "An ancient green dragon rules from an ancient wooden throne guarded by loyal treants. |", }, ], }, @@ -2615,7 +2651,7 @@ export default { { level: "2nd to 4th", example_encounters: - "* A bearded devil draws lemures through a portal connected to the river Styx.", + "* A bearded devil draws lemures through a portal connected to the river Styx.", }, ], }, @@ -2624,10 +2660,16 @@ export default { order: 1, data: [ { - item: "A barbed devil and a host of imps keep watch on enemy forces. |\n| 5th to 10th | * An armored erinyes commanding a host of spined devils prepares for war.", + item: "A barbed devil and a host of imps keep watch on enemy forces. |\n| 5th to 10th | - An armored erinyes commanding a host of spined devils prepares for war.", }, + ], + }, + { + type: "table", + order: 2, + data: [ { - item: "A horned devil leading bearded devil soldiers guards an oracular sphere. |\n| 11th to 16th | * Ice devil wardens and bone devil guards protect a valuable prisoner. |\n| 17th to 20th | * Pit fiend commanders and horned devil lieutenants use scrying crystals to get the drop on the characters. |", + item: "A horned devil leading bearded devil soldiers guards an oracular sphere. |\n| 11th to 16th | * Ice devil wardens and bone devil guards protect a valuable prisoner. |\n| 17th to 20th | - Pit fiend commanders and horned devil lieutenants use scrying crystals to get the drop on the characters. |", }, ], }, @@ -2649,7 +2691,7 @@ export default { { level: "5th to 10th", example_encounters: - "* Frost giant hunters enjoy the sport of their remorhaz pet stalking commoners.", + "* Frost giant hunters enjoy the sport of their remorhaz pet stalking commoners.", }, ], }, @@ -2658,7 +2700,7 @@ export default { order: 1, data: [ { - item: "The bone-cluttered cave of an abominable yeti is guarded by winter wolves. |\n| 11th to 16th | * An adult white dragon is served by loyal frost giants. |\n| 17th to 20th | * An ancient white dragon lairing atop an inaccessible peak is worshiped by generations of abominable yetis. |", + item: "The bone-cluttered cave of an abominable yeti is guarded by winter wolves. |\n| 11th to 16th | - An adult white dragon is served by loyal frost giants. |\n| 17th to 20th | * An ancient white dragon lairing atop an inaccessible peak is worshiped by generations of abominable yetis. |", }, ], }, @@ -2680,7 +2722,7 @@ export default { { level: "1st", example_encounters: - "* A cockatrice pecks at a crumbling statue, while stirges linger above.", + "* A cockatrice pecks at a crumbling statue, while stirges linger above.", }, ], }, @@ -2689,11 +2731,23 @@ export default { order: 1, data: [ { - item: "A giant bat surrounded by swarms of bats skulks in the shadows. |\n| 2nd to 4th | * Darkmantles and piercers lurk in pools of shadow.", + item: "A giant bat surrounded by swarms of bats skulks in the shadows. |\n| 2nd to 4th | - Darkmantles and piercers lurk in pools of shadow.", }, + ], + }, + { + type: "table", + order: 2, + data: [ { - item: "A worg-riding goblin boss commands a squad of goblin hunters. |\n| 5th to 10th | * Basilisks and cockatrices lair in a hall full of petrified adventurers.", + item: "A worg-riding goblin boss commands a squad of goblin hunters. |\n| 5th to 10th | * Basilisks and cockatrices lair in a hall full of petrified adventurers.", }, + ], + }, + { + type: "table", + order: 3, + data: [ { item: "A cloaker lurks above a pack of hook horrors disemboweling a dead bulette.", }, @@ -2720,12 +2774,12 @@ export default { { level: "1st", example_encounters: - "* A lizardfolk hunter is teaching their trained giant crabs how to hunt.", + "* A lizardfolk hunter is teaching their trained giant crabs how to hunt.", }, { level: "2nd to 4th", example_encounters: - "* A sea hag commands loyal kuo-toa to set up an effigy to a fictitious god.", + "- A sea hag commands loyal kuo-toa to set up an effigy to a fictitious god.", }, ], }, @@ -2734,13 +2788,19 @@ export default { order: 1, data: [ { - item: "A lizard king with a lizardfolk shaman advisor commands a clan of lizardfolk from a coral throne. |\n| 5th to 10th | * An aboleth in a swirling pool is guarded by chuuls and worshiped by enthralled veterans.", + item: "A lizard king with a lizardfolk shaman advisor commands a clan of lizardfolk from a coral throne. |\n| 5th to 10th | * An aboleth in a swirling pool is guarded by chuuls and worshiped by enthralled veterans.", }, + ], + }, + { + type: "table", + order: 2, + data: [ { item: "A sahuagin baron watches a pack of sahuagin fight water weirds.", }, { - item: "A corrupt sahuagin priestess feeds sacrificial victims to giant crocodiles. |\n| 11th to 16th | * A kraken rules a deep-sea trench, surrounded by reverent water elementals. |", + item: "A corrupt sahuagin priestess feeds sacrificial victims to giant crocodiles. |\n| 11th to 16th | - A kraken rules a deep-sea trench, surrounded by reverent water elementals. |", }, ], }, diff --git a/packages/lgmmbrd/sections/monstersbyadventurelocation/abyssalkeep.cjs b/packages/lgmmbrd/sections/monstersbyadventurelocation/abyssalkeep.cjs index a1ee2f4..4bf92c0 100644 --- a/packages/lgmmbrd/sections/monstersbyadventurelocation/abyssalkeep.cjs +++ b/packages/lgmmbrd/sections/monstersbyadventurelocation/abyssalkeep.cjs @@ -27,7 +27,7 @@ module.exports = { { level: "2nd to 4th", example_encounters: - "* A night hag and their pet quasit schemes within a chamber guarded by hell hounds.", + "* A night hag and their pet quasit schemes within a chamber guarded by hell hounds.", }, ], }, @@ -36,7 +36,7 @@ module.exports = { order: 1, data: [ { - item: "A summoning circle disgorges a barlgura and a gang of dretches. |\n| 5th to 10th | * A glabrezu commands from a throne flanked by chasmes. |\n| 11th to 16th | * A marilith, their cambion advisor, and a number of hezrou servants guard a planar gateway. |\n| 17th to 20th | * A balor, a servile archmage, and a squad of glabrezu soldiers guard an artifact. |", + item: "A summoning circle disgorges a barlgura and a gang of dretches. |\n| 5th to 10th | - A glabrezu commands from a throne flanked by chasmes. |\n| 11th to 16th | * A marilith, their cambion advisor, and a number of hezrou servants guard a planar gateway. |\n| 17th to 20th | - A balor, a servile archmage, and a squad of glabrezu soldiers guard an artifact. |", }, ], }, diff --git a/packages/lgmmbrd/sections/monstersbyadventurelocation/abyssalkeep.mjs b/packages/lgmmbrd/sections/monstersbyadventurelocation/abyssalkeep.mjs index cf7a7ad..41bf7ce 100644 --- a/packages/lgmmbrd/sections/monstersbyadventurelocation/abyssalkeep.mjs +++ b/packages/lgmmbrd/sections/monstersbyadventurelocation/abyssalkeep.mjs @@ -27,7 +27,7 @@ export default { { level: "2nd to 4th", example_encounters: - "* A night hag and their pet quasit schemes within a chamber guarded by hell hounds.", + "* A night hag and their pet quasit schemes within a chamber guarded by hell hounds.", }, ], }, @@ -36,7 +36,7 @@ export default { order: 1, data: [ { - item: "A summoning circle disgorges a barlgura and a gang of dretches. |\n| 5th to 10th | * A glabrezu commands from a throne flanked by chasmes. |\n| 11th to 16th | * A marilith, their cambion advisor, and a number of hezrou servants guard a planar gateway. |\n| 17th to 20th | * A balor, a servile archmage, and a squad of glabrezu soldiers guard an artifact. |", + item: "A summoning circle disgorges a barlgura and a gang of dretches. |\n| 5th to 10th | - A glabrezu commands from a throne flanked by chasmes. |\n| 11th to 16th | * A marilith, their cambion advisor, and a number of hezrou servants guard a planar gateway. |\n| 17th to 20th | - A balor, a servile archmage, and a squad of glabrezu soldiers guard an artifact. |", }, ], }, diff --git a/packages/lgmmbrd/sections/monstersbyadventurelocation/ancientruins.cjs b/packages/lgmmbrd/sections/monstersbyadventurelocation/ancientruins.cjs index ab1c917..72715fa 100644 --- a/packages/lgmmbrd/sections/monstersbyadventurelocation/ancientruins.cjs +++ b/packages/lgmmbrd/sections/monstersbyadventurelocation/ancientruins.cjs @@ -27,7 +27,7 @@ module.exports = { { level: "1st", example_encounters: - "* A thug leads bandits intending to rob a caravan.", + "* A thug leads bandits intending to rob a caravan.", }, ], }, @@ -36,8 +36,14 @@ module.exports = { order: 1, data: [ { - item: "A vengeful shadow shifts in the darkness among a handful of arisen skeletons. |\n| 2nd to 4th | * A pair of bugbear entrepreneurs use goblin actors as bait to seek adventurers as prey.", + item: "A vengeful shadow shifts in the darkness among a handful of arisen skeletons. |\n| 2nd to 4th | - A pair of bugbear entrepreneurs use goblin actors as bait to seek adventurers as prey.", }, + ], + }, + { + type: "table", + order: 2, + data: [ { item: "A sorrowful banshee orders specters to recreate their former beautiful life.", }, @@ -46,14 +52,20 @@ module.exports = { }, { item: "A death dog protected by wolves lairs in a ruined cave." }, { - item: "A lamia served by jackalweres dwells in an illusory paradise. |\n| 5th to 10th | * A wise bugbear chief leads bugbear and goblin soldiers from an obsidian throne.", + item: "A lamia served by jackalweres dwells in an illusory paradise. |\n| 5th to 10th | * A wise bugbear chief leads bugbear and goblin soldiers from an obsidian throne.", }, + ], + }, + { + type: "table", + order: 3, + data: [ { item: "A cyclops matriarch leads fanatically loyal ogres." }, { item: "A solitary medusa dwells in a mausoleum, surrounded by petrified heroes and protected by death dogs.", }, { - item: "A noble oni in a posh den is guarded by loyal spirit naga storytellers. |\n| 11th to 16th | * An adult blue dragon is guarded by clay golems in a jeweled lair. |\n| 17th to 20th | * An ancient blue dragon protected by stone golems and air elementals dwells in the shattered remains of a tower. |", + item: "A noble oni in a posh den is guarded by loyal spirit naga storytellers. |\n| 11th to 16th | - An adult blue dragon is guarded by clay golems in a jeweled lair. |\n| 17th to 20th | * An ancient blue dragon protected by stone golems and air elementals dwells in the shattered remains of a tower. |", }, ], }, diff --git a/packages/lgmmbrd/sections/monstersbyadventurelocation/ancientruins.mjs b/packages/lgmmbrd/sections/monstersbyadventurelocation/ancientruins.mjs index e07e8c7..cf52c79 100644 --- a/packages/lgmmbrd/sections/monstersbyadventurelocation/ancientruins.mjs +++ b/packages/lgmmbrd/sections/monstersbyadventurelocation/ancientruins.mjs @@ -27,7 +27,7 @@ export default { { level: "1st", example_encounters: - "* A thug leads bandits intending to rob a caravan.", + "* A thug leads bandits intending to rob a caravan.", }, ], }, @@ -36,8 +36,14 @@ export default { order: 1, data: [ { - item: "A vengeful shadow shifts in the darkness among a handful of arisen skeletons. |\n| 2nd to 4th | * A pair of bugbear entrepreneurs use goblin actors as bait to seek adventurers as prey.", + item: "A vengeful shadow shifts in the darkness among a handful of arisen skeletons. |\n| 2nd to 4th | - A pair of bugbear entrepreneurs use goblin actors as bait to seek adventurers as prey.", }, + ], + }, + { + type: "table", + order: 2, + data: [ { item: "A sorrowful banshee orders specters to recreate their former beautiful life.", }, @@ -46,14 +52,20 @@ export default { }, { item: "A death dog protected by wolves lairs in a ruined cave." }, { - item: "A lamia served by jackalweres dwells in an illusory paradise. |\n| 5th to 10th | * A wise bugbear chief leads bugbear and goblin soldiers from an obsidian throne.", + item: "A lamia served by jackalweres dwells in an illusory paradise. |\n| 5th to 10th | * A wise bugbear chief leads bugbear and goblin soldiers from an obsidian throne.", }, + ], + }, + { + type: "table", + order: 3, + data: [ { item: "A cyclops matriarch leads fanatically loyal ogres." }, { item: "A solitary medusa dwells in a mausoleum, surrounded by petrified heroes and protected by death dogs.", }, { - item: "A noble oni in a posh den is guarded by loyal spirit naga storytellers. |\n| 11th to 16th | * An adult blue dragon is guarded by clay golems in a jeweled lair. |\n| 17th to 20th | * An ancient blue dragon protected by stone golems and air elementals dwells in the shattered remains of a tower. |", + item: "A noble oni in a posh den is guarded by loyal spirit naga storytellers. |\n| 11th to 16th | - An adult blue dragon is guarded by clay golems in a jeweled lair. |\n| 17th to 20th | * An ancient blue dragon protected by stone golems and air elementals dwells in the shattered remains of a tower. |", }, ], }, diff --git a/packages/lgmmbrd/sections/monstersbyadventurelocation/citysewers.cjs b/packages/lgmmbrd/sections/monstersbyadventurelocation/citysewers.cjs index b5ad051..86596de 100644 --- a/packages/lgmmbrd/sections/monstersbyadventurelocation/citysewers.cjs +++ b/packages/lgmmbrd/sections/monstersbyadventurelocation/citysewers.cjs @@ -27,12 +27,12 @@ module.exports = { { level: "1st", example_encounters: - "* A wandering zombie is covered by a swarm of rats.", + "* A wandering zombie is covered by a swarm of rats.", }, { level: "2nd to 4th", example_encounters: - "* An erudite ghast weaves fantastic tales to their ravenous ghoul followers.", + "- An erudite ghast weaves fantastic tales to their ravenous ghoul followers.", }, ], }, diff --git a/packages/lgmmbrd/sections/monstersbyadventurelocation/citysewers.mjs b/packages/lgmmbrd/sections/monstersbyadventurelocation/citysewers.mjs index 6e834e9..8425379 100644 --- a/packages/lgmmbrd/sections/monstersbyadventurelocation/citysewers.mjs +++ b/packages/lgmmbrd/sections/monstersbyadventurelocation/citysewers.mjs @@ -27,12 +27,12 @@ export default { { level: "1st", example_encounters: - "* A wandering zombie is covered by a swarm of rats.", + "* A wandering zombie is covered by a swarm of rats.", }, { level: "2nd to 4th", example_encounters: - "* An erudite ghast weaves fantastic tales to their ravenous ghoul followers.", + "- An erudite ghast weaves fantastic tales to their ravenous ghoul followers.", }, ], }, diff --git a/packages/lgmmbrd/sections/monstersbyadventurelocation/cryptscatacombsnecropolises.cjs b/packages/lgmmbrd/sections/monstersbyadventurelocation/cryptscatacombsnecropolises.cjs index fee812f..b7c38b7 100644 --- a/packages/lgmmbrd/sections/monstersbyadventurelocation/cryptscatacombsnecropolises.cjs +++ b/packages/lgmmbrd/sections/monstersbyadventurelocation/cryptscatacombsnecropolises.cjs @@ -27,12 +27,11 @@ module.exports = { { level: "1st", example_encounters: - "* A pair of skeletons rises from a pile of crawling claws.", + "* A pair of skeletons rises from a pile of crawling claws.", }, { level: "2nd to 4th", - example_encounters: - "* A lost ghost wanders, surrounded by specters.", + example_encounters: "- A lost ghost wanders, surrounded by specters.", }, ], }, @@ -41,10 +40,16 @@ module.exports = { order: 1, data: [ { - item: "A bone naga rises from an obsidian sarcophagus to command a host of skeletons. |\n| 5th to 10th | * A mummy lord entombed in a cold-iron sarcophagus is guarded by mummies and wights.", + item: "A bone naga rises from an obsidian sarcophagus to command a host of skeletons. |\n| 5th to 10th | * A mummy lord entombed in a cold-iron sarcophagus is guarded by mummies and wights.", }, + ], + }, + { + type: "table", + order: 2, + data: [ { - item: "A pair of wraiths float above unholy urns surrounded by vengeful specters. |\n| 11th to 16th | * A vampire in a gilded tomb is guarded by howling dire wolves and served by vampire spawn. |\n| 17th to 20th | * A lich in an unhallowed laboratory is protected by loyal death knights and iron golems. |", + item: "A pair of wraiths float above unholy urns surrounded by vengeful specters. |\n| 11th to 16th | - A vampire in a gilded tomb is guarded by howling dire wolves and served by vampire spawn. |\n| 17th to 20th | * A lich in an unhallowed laboratory is protected by loyal death knights and iron golems. |", }, ], }, diff --git a/packages/lgmmbrd/sections/monstersbyadventurelocation/cryptscatacombsnecropolises.mjs b/packages/lgmmbrd/sections/monstersbyadventurelocation/cryptscatacombsnecropolises.mjs index a1dae87..31a0628 100644 --- a/packages/lgmmbrd/sections/monstersbyadventurelocation/cryptscatacombsnecropolises.mjs +++ b/packages/lgmmbrd/sections/monstersbyadventurelocation/cryptscatacombsnecropolises.mjs @@ -27,12 +27,11 @@ export default { { level: "1st", example_encounters: - "* A pair of skeletons rises from a pile of crawling claws.", + "* A pair of skeletons rises from a pile of crawling claws.", }, { level: "2nd to 4th", - example_encounters: - "* A lost ghost wanders, surrounded by specters.", + example_encounters: "- A lost ghost wanders, surrounded by specters.", }, ], }, @@ -41,10 +40,16 @@ export default { order: 1, data: [ { - item: "A bone naga rises from an obsidian sarcophagus to command a host of skeletons. |\n| 5th to 10th | * A mummy lord entombed in a cold-iron sarcophagus is guarded by mummies and wights.", + item: "A bone naga rises from an obsidian sarcophagus to command a host of skeletons. |\n| 5th to 10th | * A mummy lord entombed in a cold-iron sarcophagus is guarded by mummies and wights.", }, + ], + }, + { + type: "table", + order: 2, + data: [ { - item: "A pair of wraiths float above unholy urns surrounded by vengeful specters. |\n| 11th to 16th | * A vampire in a gilded tomb is guarded by howling dire wolves and served by vampire spawn. |\n| 17th to 20th | * A lich in an unhallowed laboratory is protected by loyal death knights and iron golems. |", + item: "A pair of wraiths float above unholy urns surrounded by vengeful specters. |\n| 11th to 16th | - A vampire in a gilded tomb is guarded by howling dire wolves and served by vampire spawn. |\n| 17th to 20th | * A lich in an unhallowed laboratory is protected by loyal death knights and iron golems. |", }, ], }, diff --git a/packages/lgmmbrd/sections/monstersbyadventurelocation/darkforestsandfetidswamps.cjs b/packages/lgmmbrd/sections/monstersbyadventurelocation/darkforestsandfetidswamps.cjs index fa57344..5526955 100644 --- a/packages/lgmmbrd/sections/monstersbyadventurelocation/darkforestsandfetidswamps.cjs +++ b/packages/lgmmbrd/sections/monstersbyadventurelocation/darkforestsandfetidswamps.cjs @@ -27,12 +27,12 @@ module.exports = { { level: "1st", example_encounters: - "* An elf cultist hunts prey with bloodthirsty wolves.", + "* An elf cultist hunts prey with bloodthirsty wolves.", }, { level: "2nd to 4th", example_encounters: - "* Two ettercaps and their giant spiders stalk adventurers.", + "- Two ettercaps and their giant spiders stalk adventurers.", }, ], }, @@ -45,13 +45,19 @@ module.exports = { item: "A green hag lurks in an old hut with a pet giant toad, and is guarded by loyal bullywugs.", }, { - item: "A werewolf prowls the shadows with their dire wolf companions. |\n| 5th to 10th | * An orc war chief commands a force of ettin and orc scouts based in a ruined keep. |\n| 11th to 16th | * An adult black dragon commands a host of trolls made loyal through fear.", + item: "A werewolf prowls the shadows with their dire wolf companions. |\n| 5th to 10th | * An orc war chief commands a force of ettin and orc scouts based in a ruined keep. |\n| 11th to 16th | - An adult black dragon commands a host of trolls made loyal through fear.", }, { - item: "An adult green dragon lurks in a dead forest, protected by shambling mounds. |\n| 17th to 20th | * An ancient black dragon dwells in a sunken bog filled with giant crocodiles.", + item: "An adult green dragon lurks in a dead forest, protected by shambling mounds. |\n| 17th to 20th | * An ancient black dragon dwells in a sunken bog filled with giant crocodiles.", }, + ], + }, + { + type: "table", + order: 2, + data: [ { - item: "An ancient green dragon rules from an ancient wooden throne guarded by loyal treants. |", + item: "An ancient green dragon rules from an ancient wooden throne guarded by loyal treants. |", }, ], }, diff --git a/packages/lgmmbrd/sections/monstersbyadventurelocation/darkforestsandfetidswamps.mjs b/packages/lgmmbrd/sections/monstersbyadventurelocation/darkforestsandfetidswamps.mjs index bdadf0a..9869e08 100644 --- a/packages/lgmmbrd/sections/monstersbyadventurelocation/darkforestsandfetidswamps.mjs +++ b/packages/lgmmbrd/sections/monstersbyadventurelocation/darkforestsandfetidswamps.mjs @@ -27,12 +27,12 @@ export default { { level: "1st", example_encounters: - "* An elf cultist hunts prey with bloodthirsty wolves.", + "* An elf cultist hunts prey with bloodthirsty wolves.", }, { level: "2nd to 4th", example_encounters: - "* Two ettercaps and their giant spiders stalk adventurers.", + "- Two ettercaps and their giant spiders stalk adventurers.", }, ], }, @@ -45,13 +45,19 @@ export default { item: "A green hag lurks in an old hut with a pet giant toad, and is guarded by loyal bullywugs.", }, { - item: "A werewolf prowls the shadows with their dire wolf companions. |\n| 5th to 10th | * An orc war chief commands a force of ettin and orc scouts based in a ruined keep. |\n| 11th to 16th | * An adult black dragon commands a host of trolls made loyal through fear.", + item: "A werewolf prowls the shadows with their dire wolf companions. |\n| 5th to 10th | * An orc war chief commands a force of ettin and orc scouts based in a ruined keep. |\n| 11th to 16th | - An adult black dragon commands a host of trolls made loyal through fear.", }, { - item: "An adult green dragon lurks in a dead forest, protected by shambling mounds. |\n| 17th to 20th | * An ancient black dragon dwells in a sunken bog filled with giant crocodiles.", + item: "An adult green dragon lurks in a dead forest, protected by shambling mounds. |\n| 17th to 20th | * An ancient black dragon dwells in a sunken bog filled with giant crocodiles.", }, + ], + }, + { + type: "table", + order: 2, + data: [ { - item: "An ancient green dragon rules from an ancient wooden throne guarded by loyal treants. |", + item: "An ancient green dragon rules from an ancient wooden throne guarded by loyal treants. |", }, ], }, diff --git a/packages/lgmmbrd/sections/monstersbyadventurelocation/deepcaverns.cjs b/packages/lgmmbrd/sections/monstersbyadventurelocation/deepcaverns.cjs index baa40ba..907d9fd 100644 --- a/packages/lgmmbrd/sections/monstersbyadventurelocation/deepcaverns.cjs +++ b/packages/lgmmbrd/sections/monstersbyadventurelocation/deepcaverns.cjs @@ -27,7 +27,7 @@ module.exports = { { level: "1st", example_encounters: - "* A cockatrice pecks at a crumbling statue, while stirges linger above.", + "* A cockatrice pecks at a crumbling statue, while stirges linger above.", }, ], }, @@ -36,11 +36,23 @@ module.exports = { order: 1, data: [ { - item: "A giant bat surrounded by swarms of bats skulks in the shadows. |\n| 2nd to 4th | * Darkmantles and piercers lurk in pools of shadow.", + item: "A giant bat surrounded by swarms of bats skulks in the shadows. |\n| 2nd to 4th | - Darkmantles and piercers lurk in pools of shadow.", }, + ], + }, + { + type: "table", + order: 2, + data: [ { - item: "A worg-riding goblin boss commands a squad of goblin hunters. |\n| 5th to 10th | * Basilisks and cockatrices lair in a hall full of petrified adventurers.", + item: "A worg-riding goblin boss commands a squad of goblin hunters. |\n| 5th to 10th | * Basilisks and cockatrices lair in a hall full of petrified adventurers.", }, + ], + }, + { + type: "table", + order: 3, + data: [ { item: "A cloaker lurks above a pack of hook horrors disemboweling a dead bulette.", }, diff --git a/packages/lgmmbrd/sections/monstersbyadventurelocation/deepcaverns.mjs b/packages/lgmmbrd/sections/monstersbyadventurelocation/deepcaverns.mjs index 2ed908b..f4843f7 100644 --- a/packages/lgmmbrd/sections/monstersbyadventurelocation/deepcaverns.mjs +++ b/packages/lgmmbrd/sections/monstersbyadventurelocation/deepcaverns.mjs @@ -27,7 +27,7 @@ export default { { level: "1st", example_encounters: - "* A cockatrice pecks at a crumbling statue, while stirges linger above.", + "* A cockatrice pecks at a crumbling statue, while stirges linger above.", }, ], }, @@ -36,11 +36,23 @@ export default { order: 1, data: [ { - item: "A giant bat surrounded by swarms of bats skulks in the shadows. |\n| 2nd to 4th | * Darkmantles and piercers lurk in pools of shadow.", + item: "A giant bat surrounded by swarms of bats skulks in the shadows. |\n| 2nd to 4th | - Darkmantles and piercers lurk in pools of shadow.", }, + ], + }, + { + type: "table", + order: 2, + data: [ { - item: "A worg-riding goblin boss commands a squad of goblin hunters. |\n| 5th to 10th | * Basilisks and cockatrices lair in a hall full of petrified adventurers.", + item: "A worg-riding goblin boss commands a squad of goblin hunters. |\n| 5th to 10th | * Basilisks and cockatrices lair in a hall full of petrified adventurers.", }, + ], + }, + { + type: "table", + order: 3, + data: [ { item: "A cloaker lurks above a pack of hook horrors disemboweling a dead bulette.", }, diff --git a/packages/lgmmbrd/sections/monstersbyadventurelocation/frozenfortress.cjs b/packages/lgmmbrd/sections/monstersbyadventurelocation/frozenfortress.cjs index 11f96bf..5d1ec7b 100644 --- a/packages/lgmmbrd/sections/monstersbyadventurelocation/frozenfortress.cjs +++ b/packages/lgmmbrd/sections/monstersbyadventurelocation/frozenfortress.cjs @@ -27,7 +27,7 @@ module.exports = { { level: "5th to 10th", example_encounters: - "* Frost giant hunters enjoy the sport of their remorhaz pet stalking commoners.", + "* Frost giant hunters enjoy the sport of their remorhaz pet stalking commoners.", }, ], }, @@ -36,7 +36,7 @@ module.exports = { order: 1, data: [ { - item: "The bone-cluttered cave of an abominable yeti is guarded by winter wolves. |\n| 11th to 16th | * An adult white dragon is served by loyal frost giants. |\n| 17th to 20th | * An ancient white dragon lairing atop an inaccessible peak is worshiped by generations of abominable yetis. |", + item: "The bone-cluttered cave of an abominable yeti is guarded by winter wolves. |\n| 11th to 16th | - An adult white dragon is served by loyal frost giants. |\n| 17th to 20th | * An ancient white dragon lairing atop an inaccessible peak is worshiped by generations of abominable yetis. |", }, ], }, diff --git a/packages/lgmmbrd/sections/monstersbyadventurelocation/frozenfortress.mjs b/packages/lgmmbrd/sections/monstersbyadventurelocation/frozenfortress.mjs index 2ba8dd6..3991a58 100644 --- a/packages/lgmmbrd/sections/monstersbyadventurelocation/frozenfortress.mjs +++ b/packages/lgmmbrd/sections/monstersbyadventurelocation/frozenfortress.mjs @@ -27,7 +27,7 @@ export default { { level: "5th to 10th", example_encounters: - "* Frost giant hunters enjoy the sport of their remorhaz pet stalking commoners.", + "* Frost giant hunters enjoy the sport of their remorhaz pet stalking commoners.", }, ], }, @@ -36,7 +36,7 @@ export default { order: 1, data: [ { - item: "The bone-cluttered cave of an abominable yeti is guarded by winter wolves. |\n| 11th to 16th | * An adult white dragon is served by loyal frost giants. |\n| 17th to 20th | * An ancient white dragon lairing atop an inaccessible peak is worshiped by generations of abominable yetis. |", + item: "The bone-cluttered cave of an abominable yeti is guarded by winter wolves. |\n| 11th to 16th | - An adult white dragon is served by loyal frost giants. |\n| 17th to 20th | * An ancient white dragon lairing atop an inaccessible peak is worshiped by generations of abominable yetis. |", }, ], }, diff --git a/packages/lgmmbrd/sections/monstersbyadventurelocation/hellishcitadel.cjs b/packages/lgmmbrd/sections/monstersbyadventurelocation/hellishcitadel.cjs index a29a127..1f785e7 100644 --- a/packages/lgmmbrd/sections/monstersbyadventurelocation/hellishcitadel.cjs +++ b/packages/lgmmbrd/sections/monstersbyadventurelocation/hellishcitadel.cjs @@ -27,7 +27,7 @@ module.exports = { { level: "2nd to 4th", example_encounters: - "* A bearded devil draws lemures through a portal connected to the river Styx.", + "* A bearded devil draws lemures through a portal connected to the river Styx.", }, ], }, @@ -36,10 +36,16 @@ module.exports = { order: 1, data: [ { - item: "A barbed devil and a host of imps keep watch on enemy forces. |\n| 5th to 10th | * An armored erinyes commanding a host of spined devils prepares for war.", + item: "A barbed devil and a host of imps keep watch on enemy forces. |\n| 5th to 10th | - An armored erinyes commanding a host of spined devils prepares for war.", }, + ], + }, + { + type: "table", + order: 2, + data: [ { - item: "A horned devil leading bearded devil soldiers guards an oracular sphere. |\n| 11th to 16th | * Ice devil wardens and bone devil guards protect a valuable prisoner. |\n| 17th to 20th | * Pit fiend commanders and horned devil lieutenants use scrying crystals to get the drop on the characters. |", + item: "A horned devil leading bearded devil soldiers guards an oracular sphere. |\n| 11th to 16th | * Ice devil wardens and bone devil guards protect a valuable prisoner. |\n| 17th to 20th | - Pit fiend commanders and horned devil lieutenants use scrying crystals to get the drop on the characters. |", }, ], }, diff --git a/packages/lgmmbrd/sections/monstersbyadventurelocation/hellishcitadel.mjs b/packages/lgmmbrd/sections/monstersbyadventurelocation/hellishcitadel.mjs index 2bb4a5c..6671066 100644 --- a/packages/lgmmbrd/sections/monstersbyadventurelocation/hellishcitadel.mjs +++ b/packages/lgmmbrd/sections/monstersbyadventurelocation/hellishcitadel.mjs @@ -27,7 +27,7 @@ export default { { level: "2nd to 4th", example_encounters: - "* A bearded devil draws lemures through a portal connected to the river Styx.", + "* A bearded devil draws lemures through a portal connected to the river Styx.", }, ], }, @@ -36,10 +36,16 @@ export default { order: 1, data: [ { - item: "A barbed devil and a host of imps keep watch on enemy forces. |\n| 5th to 10th | * An armored erinyes commanding a host of spined devils prepares for war.", + item: "A barbed devil and a host of imps keep watch on enemy forces. |\n| 5th to 10th | - An armored erinyes commanding a host of spined devils prepares for war.", }, + ], + }, + { + type: "table", + order: 2, + data: [ { - item: "A horned devil leading bearded devil soldiers guards an oracular sphere. |\n| 11th to 16th | * Ice devil wardens and bone devil guards protect a valuable prisoner. |\n| 17th to 20th | * Pit fiend commanders and horned devil lieutenants use scrying crystals to get the drop on the characters. |", + item: "A horned devil leading bearded devil soldiers guards an oracular sphere. |\n| 11th to 16th | * Ice devil wardens and bone devil guards protect a valuable prisoner. |\n| 17th to 20th | - Pit fiend commanders and horned devil lieutenants use scrying crystals to get the drop on the characters. |", }, ], }, diff --git a/packages/lgmmbrd/sections/monstersbyadventurelocation/seedycitystreets.cjs b/packages/lgmmbrd/sections/monstersbyadventurelocation/seedycitystreets.cjs index 0f91224..4a5213d 100644 --- a/packages/lgmmbrd/sections/monstersbyadventurelocation/seedycitystreets.cjs +++ b/packages/lgmmbrd/sections/monstersbyadventurelocation/seedycitystreets.cjs @@ -27,7 +27,7 @@ module.exports = { { level: "1st", example_encounters: - "* A giant rat and the swarm of rats that travels with them are feeding on a dead body.", + "* A giant rat and the swarm of rats that travels with them are feeding on a dead body.", }, ], }, @@ -36,14 +36,26 @@ module.exports = { order: 1, data: [ { - item: "A thug and a pack of bandit toadies are waiting for someone to rob. |\n| 2nd to 4th | * A spy assisted by thugs has been hired to steal something from the characters.", + item: "A thug and a pack of bandit toadies are waiting for someone to rob. |\n| 2nd to 4th | - A spy assisted by thugs has been hired to steal something from the characters.", }, + ], + }, + { + type: "table", + order: 2, + data: [ { item: "A bandit captain with berserker bodyguards and bandit followers is easily insulted.", }, { - item: "A cult fanatic leads cultists who have summoned ravenous dretches into the world. |\n| 5th to 10th | * A mage commanding veterans is seeking something the characters seek as well.", + item: "A cult fanatic leads cultists who have summoned ravenous dretches into the world. |\n| 5th to 10th | * A mage commanding veterans is seeking something the characters seek as well.", }, + ], + }, + { + type: "table", + order: 3, + data: [ { item: "A bandit captain protected by hired gladiators and veterans seeks the characters with an offer they can't refuse.", }, diff --git a/packages/lgmmbrd/sections/monstersbyadventurelocation/seedycitystreets.mjs b/packages/lgmmbrd/sections/monstersbyadventurelocation/seedycitystreets.mjs index 67b62e1..ec9935e 100644 --- a/packages/lgmmbrd/sections/monstersbyadventurelocation/seedycitystreets.mjs +++ b/packages/lgmmbrd/sections/monstersbyadventurelocation/seedycitystreets.mjs @@ -27,7 +27,7 @@ export default { { level: "1st", example_encounters: - "* A giant rat and the swarm of rats that travels with them are feeding on a dead body.", + "* A giant rat and the swarm of rats that travels with them are feeding on a dead body.", }, ], }, @@ -36,14 +36,26 @@ export default { order: 1, data: [ { - item: "A thug and a pack of bandit toadies are waiting for someone to rob. |\n| 2nd to 4th | * A spy assisted by thugs has been hired to steal something from the characters.", + item: "A thug and a pack of bandit toadies are waiting for someone to rob. |\n| 2nd to 4th | - A spy assisted by thugs has been hired to steal something from the characters.", }, + ], + }, + { + type: "table", + order: 2, + data: [ { item: "A bandit captain with berserker bodyguards and bandit followers is easily insulted.", }, { - item: "A cult fanatic leads cultists who have summoned ravenous dretches into the world. |\n| 5th to 10th | * A mage commanding veterans is seeking something the characters seek as well.", + item: "A cult fanatic leads cultists who have summoned ravenous dretches into the world. |\n| 5th to 10th | * A mage commanding veterans is seeking something the characters seek as well.", }, + ], + }, + { + type: "table", + order: 3, + data: [ { item: "A bandit captain protected by hired gladiators and veterans seeks the characters with an offer they can't refuse.", }, diff --git a/packages/lgmmbrd/sections/monstersbyadventurelocation/sunkengrotto.cjs b/packages/lgmmbrd/sections/monstersbyadventurelocation/sunkengrotto.cjs index 9ccd6d5..e1985c1 100644 --- a/packages/lgmmbrd/sections/monstersbyadventurelocation/sunkengrotto.cjs +++ b/packages/lgmmbrd/sections/monstersbyadventurelocation/sunkengrotto.cjs @@ -27,12 +27,12 @@ module.exports = { { level: "1st", example_encounters: - "* A lizardfolk hunter is teaching their trained giant crabs how to hunt.", + "* A lizardfolk hunter is teaching their trained giant crabs how to hunt.", }, { level: "2nd to 4th", example_encounters: - "* A sea hag commands loyal kuo-toa to set up an effigy to a fictitious god.", + "- A sea hag commands loyal kuo-toa to set up an effigy to a fictitious god.", }, ], }, @@ -41,13 +41,19 @@ module.exports = { order: 1, data: [ { - item: "A lizard king with a lizardfolk shaman advisor commands a clan of lizardfolk from a coral throne. |\n| 5th to 10th | * An aboleth in a swirling pool is guarded by chuuls and worshiped by enthralled veterans.", + item: "A lizard king with a lizardfolk shaman advisor commands a clan of lizardfolk from a coral throne. |\n| 5th to 10th | * An aboleth in a swirling pool is guarded by chuuls and worshiped by enthralled veterans.", }, + ], + }, + { + type: "table", + order: 2, + data: [ { item: "A sahuagin baron watches a pack of sahuagin fight water weirds.", }, { - item: "A corrupt sahuagin priestess feeds sacrificial victims to giant crocodiles. |\n| 11th to 16th | * A kraken rules a deep-sea trench, surrounded by reverent water elementals. |", + item: "A corrupt sahuagin priestess feeds sacrificial victims to giant crocodiles. |\n| 11th to 16th | - A kraken rules a deep-sea trench, surrounded by reverent water elementals. |", }, ], }, diff --git a/packages/lgmmbrd/sections/monstersbyadventurelocation/sunkengrotto.mjs b/packages/lgmmbrd/sections/monstersbyadventurelocation/sunkengrotto.mjs index 27169c8..68debd1 100644 --- a/packages/lgmmbrd/sections/monstersbyadventurelocation/sunkengrotto.mjs +++ b/packages/lgmmbrd/sections/monstersbyadventurelocation/sunkengrotto.mjs @@ -27,12 +27,12 @@ export default { { level: "1st", example_encounters: - "* A lizardfolk hunter is teaching their trained giant crabs how to hunt.", + "* A lizardfolk hunter is teaching their trained giant crabs how to hunt.", }, { level: "2nd to 4th", example_encounters: - "* A sea hag commands loyal kuo-toa to set up an effigy to a fictitious god.", + "- A sea hag commands loyal kuo-toa to set up an effigy to a fictitious god.", }, ], }, @@ -41,13 +41,19 @@ export default { order: 1, data: [ { - item: "A lizard king with a lizardfolk shaman advisor commands a clan of lizardfolk from a coral throne. |\n| 5th to 10th | * An aboleth in a swirling pool is guarded by chuuls and worshiped by enthralled veterans.", + item: "A lizard king with a lizardfolk shaman advisor commands a clan of lizardfolk from a coral throne. |\n| 5th to 10th | * An aboleth in a swirling pool is guarded by chuuls and worshiped by enthralled veterans.", }, + ], + }, + { + type: "table", + order: 2, + data: [ { item: "A sahuagin baron watches a pack of sahuagin fight water weirds.", }, { - item: "A corrupt sahuagin priestess feeds sacrificial victims to giant crocodiles. |\n| 11th to 16th | * A kraken rules a deep-sea trench, surrounded by reverent water elementals. |", + item: "A corrupt sahuagin priestess feeds sacrificial victims to giant crocodiles. |\n| 11th to 16th | - A kraken rules a deep-sea trench, surrounded by reverent water elementals. |", }, ], }, diff --git a/packages/lgmmbrd/sections/monstersbyadventurelocation/volcanolair.cjs b/packages/lgmmbrd/sections/monstersbyadventurelocation/volcanolair.cjs index 3ba983e..8b23c81 100644 --- a/packages/lgmmbrd/sections/monstersbyadventurelocation/volcanolair.cjs +++ b/packages/lgmmbrd/sections/monstersbyadventurelocation/volcanolair.cjs @@ -27,7 +27,7 @@ module.exports = { { level: "5th to 10th", example_encounters: - "* A fire giant with pet hell hounds commands an azer to dig for them.", + "* A fire giant with pet hell hounds commands an azer to dig for them.", }, ], }, @@ -36,7 +36,7 @@ module.exports = { order: 1, data: [ { - item: "A trapped efreeti uses fire elementals to fight for freedom. |\n| 11th to 16th | * An adult red dragon served by salamanders demands fealty from the characters. |\n| 17th to 20th | * An ancient red dragon worshiped by fire giants awakens from slumber. |", + item: "A trapped efreeti uses fire elementals to fight for freedom. |\n| 11th to 16th | - An adult red dragon served by salamanders demands fealty from the characters. |\n| 17th to 20th | * An ancient red dragon worshiped by fire giants awakens from slumber. |", }, ], }, diff --git a/packages/lgmmbrd/sections/monstersbyadventurelocation/volcanolair.mjs b/packages/lgmmbrd/sections/monstersbyadventurelocation/volcanolair.mjs index 456c236..94039e6 100644 --- a/packages/lgmmbrd/sections/monstersbyadventurelocation/volcanolair.mjs +++ b/packages/lgmmbrd/sections/monstersbyadventurelocation/volcanolair.mjs @@ -27,7 +27,7 @@ export default { { level: "5th to 10th", example_encounters: - "* A fire giant with pet hell hounds commands an azer to dig for them.", + "* A fire giant with pet hell hounds commands an azer to dig for them.", }, ], }, @@ -36,7 +36,7 @@ export default { order: 1, data: [ { - item: "A trapped efreeti uses fire elementals to fight for freedom. |\n| 11th to 16th | * An adult red dragon served by salamanders demands fealty from the characters. |\n| 17th to 20th | * An ancient red dragon worshiped by fire giants awakens from slumber. |", + item: "A trapped efreeti uses fire elementals to fight for freedom. |\n| 11th to 16th | - An adult red dragon served by salamanders demands fealty from the characters. |\n| 17th to 20th | * An ancient red dragon worshiped by fire giants awakens from slumber. |", }, ], }, diff --git a/packages/lgmmbrd/sections/monstersbyadventurelocation/wizardstower.cjs b/packages/lgmmbrd/sections/monstersbyadventurelocation/wizardstower.cjs index a84296f..7fe16d8 100644 --- a/packages/lgmmbrd/sections/monstersbyadventurelocation/wizardstower.cjs +++ b/packages/lgmmbrd/sections/monstersbyadventurelocation/wizardstower.cjs @@ -27,17 +27,17 @@ module.exports = { { level: "1st", example_encounters: - "* A loyal imp commands a squad of guardian flying swords.", + "* A loyal imp commands a squad of guardian flying swords.", }, { level: "2nd to 4th", example_encounters: - "* A summoned succubus or incubus directs animated armor serving as guards.", + "- A summoned succubus or incubus directs animated armor serving as guards.", }, { level: "5th to 10th", example_encounters: - "* Apprentice mages command elementals and flesh golems.", + "* Apprentice mages command elementals and flesh golems.", }, ], }, @@ -46,7 +46,7 @@ module.exports = { order: 1, data: [ { - item: "An important chamber is guarded by two flameskulls and a number of helmed horrors. |\n| 11th to 16th | * An impatient archmage is protected by two stone golems in an arcane laboratory. |\n| 17th to 20th | * A lich studies the multiverse while protected by bound balors and iron golems. |", + item: "An important chamber is guarded by two flameskulls and a number of helmed horrors. |\n| 11th to 16th | - An impatient archmage is protected by two stone golems in an arcane laboratory. |\n| 17th to 20th | * A lich studies the multiverse while protected by bound balors and iron golems. |", }, ], }, diff --git a/packages/lgmmbrd/sections/monstersbyadventurelocation/wizardstower.mjs b/packages/lgmmbrd/sections/monstersbyadventurelocation/wizardstower.mjs index 8661565..cf62a30 100644 --- a/packages/lgmmbrd/sections/monstersbyadventurelocation/wizardstower.mjs +++ b/packages/lgmmbrd/sections/monstersbyadventurelocation/wizardstower.mjs @@ -27,17 +27,17 @@ export default { { level: "1st", example_encounters: - "* A loyal imp commands a squad of guardian flying swords.", + "* A loyal imp commands a squad of guardian flying swords.", }, { level: "2nd to 4th", example_encounters: - "* A summoned succubus or incubus directs animated armor serving as guards.", + "- A summoned succubus or incubus directs animated armor serving as guards.", }, { level: "5th to 10th", example_encounters: - "* Apprentice mages command elementals and flesh golems.", + "* Apprentice mages command elementals and flesh golems.", }, ], }, @@ -46,7 +46,7 @@ export default { order: 1, data: [ { - item: "An important chamber is guarded by two flameskulls and a number of helmed horrors. |\n| 11th to 16th | * An impatient archmage is protected by two stone golems in an arcane laboratory. |\n| 17th to 20th | * A lich studies the multiverse while protected by bound balors and iron golems. |", + item: "An important chamber is guarded by two flameskulls and a number of helmed horrors. |\n| 11th to 16th | - An impatient archmage is protected by two stone golems in an arcane laboratory. |\n| 17th to 20th | * A lich studies the multiverse while protected by bound balors and iron golems. |", }, ], }, diff --git a/src/formats/markdown.ts b/src/formats/markdown.ts index 727ac58..0f43f88 100644 --- a/src/formats/markdown.ts +++ b/src/formats/markdown.ts @@ -2,8 +2,8 @@ import fs from "fs"; import path from "path"; import { unified } from "unified"; import rehypeParse from "rehype-parse"; -import rehypeRemark, { defaultHandlers } from "rehype-remark"; -import type { H as State } from "rehype-remark"; +import rehypeRemark from "rehype-remark"; +import { defaultHandlers, State } from "hast-util-to-mdast"; import remarkGfm from "remark-gfm"; import remarkStringify from "remark-stringify"; import { Heading as MarkdownHeading } from "mdast"; diff --git a/src/formats/markdownObsidian.ts b/src/formats/markdownObsidian.ts new file mode 100644 index 0000000..90280dd --- /dev/null +++ b/src/formats/markdownObsidian.ts @@ -0,0 +1,68 @@ +import fs from "fs"; +import path from "path"; +import { unified } from "unified"; +import remarkParse from "remark-parse"; +import remarkGfm from "remark-gfm"; +import remarkStringify from "remark-stringify"; +import { Root } from "mdast"; +import { toString } from "mdast-util-to-string"; +import { visit, EXIT } from "unist-util-visit"; + +import { + DocType, + MARKDOWN_SEPARATE_PATHS, + MARKDOWN_OBSIDIAN_PATHS, +} from "../utils/constants.js"; +import { + getMarkdownFiles, + getAndDeletePreviousMarkdown, +} from "../utils/markdown.js"; + +export async function convertToMarkdownObsidian( + docType: DocType, + html: string +): Promise { + process.stdout.write(`Converting ${docType} to Markdown (Obsidian)...`); + + const previousMarkdown = getAndDeletePreviousMarkdown( + MARKDOWN_OBSIDIAN_PATHS[docType] + ); + + const separateMarkdownFiles = getMarkdownFiles( + MARKDOWN_SEPARATE_PATHS[docType] + ); + + let newMarkdown = ""; + for (const file of separateMarkdownFiles) { + const markdownFileContent = fs.readFileSync(file, "utf8"); + + let title = path.basename(file, ".md"); + const titleFinderPlugin = () => { + return (tree: Root) => { + visit(tree, "heading", (node) => { + if (node.depth === 1) { + title = toString(node); + return EXIT; + } + }); + }; + }; + + const data = await unified() + .use(remarkParse) + .use(remarkGfm) + .use(titleFinderPlugin) + .use(remarkStringify) + .process(markdownFileContent); + + const markdownFilePath = path.join( + MARKDOWN_OBSIDIAN_PATHS[docType], + `${title}.md` + ); + fs.writeFileSync(markdownFilePath, data.toString()); + + newMarkdown += "\n" + data.toString(); + } + + return previousMarkdown !== newMarkdown; +} diff --git a/src/formats/markdownSeparate.ts b/src/formats/markdownSeparate.ts index 19aea0f..107e476 100644 --- a/src/formats/markdownSeparate.ts +++ b/src/formats/markdownSeparate.ts @@ -5,7 +5,7 @@ import rehypeParse from "rehype-parse"; import rehypeRemark from "rehype-remark"; import remarkGfm from "remark-gfm"; import remarkStringify from "remark-stringify"; -import { Heading as MarkdownHeading, HTML, Link, Root } from "mdast"; +import { Heading as MarkdownHeading, Html, Link, Root } from "mdast"; import { toMarkdown } from "mdast-util-to-markdown"; import { gfmToMarkdown } from "mdast-util-gfm"; import { Node } from "unist"; @@ -13,6 +13,7 @@ import { visit } from "unist-util-visit"; import { rehypeRemarkOptions } from "./markdown.js"; import { DocType, MARKDOWN_SEPARATE_PATHS } from "../utils/constants.js"; +import { getAndDeletePreviousMarkdown } from "../utils/markdown.js"; export async function convertToMarkdownSeparate( docType: DocType, @@ -20,24 +21,9 @@ export async function convertToMarkdownSeparate( ): Promise { process.stdout.write(`Converting ${docType} to Markdown (separate files)...`); - const markdownFiles = fs - .readdirSync(MARKDOWN_SEPARATE_PATHS[docType]) - .filter((file) => file.endsWith(".md")) - .sort(); - - const previousMarkdown = - "\n" + - markdownFiles - .map((file) => { - const markdownFilePath = path.join( - MARKDOWN_SEPARATE_PATHS[docType], - file - ); - const markdownFileContent = fs.readFileSync(markdownFilePath, "utf8"); - fs.unlinkSync(markdownFilePath); - return markdownFileContent; - }) - .join("\n"); + const previousMarkdown = getAndDeletePreviousMarkdown( + MARKDOWN_SEPARATE_PATHS[docType] + ); const sections: Record = {}; let currentSection: Node[] = []; @@ -48,7 +34,7 @@ export async function convertToMarkdownSeparate( for (const node of tree.children) { if (node.type === "heading") { const heading = node as MarkdownHeading; - const id = (heading?.children?.[0] as HTML)?.value; + const id = (heading?.children?.[0] as Html)?.value; if (heading.depth === 2 && id.startsWith('=6" } }, + "node_modules/devlop": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/devlop/-/devlop-1.1.0.tgz", + "integrity": "sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==", + "dependencies": { + "dequal": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/devtools-protocol": { "version": "0.0.1147663", "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1147663.tgz", @@ -1356,11 +1380,56 @@ } }, "node_modules/hast-util-embedded": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/hast-util-embedded/-/hast-util-embedded-3.0.0.tgz", + "integrity": "sha512-naH8sld4Pe2ep03qqULEtvYr7EjrLK2QHY8KJR6RJkTUjPGObe1vnx585uzem2hGra+s1q08DZZpfgDVYRbaXA==", + "dependencies": { + "@types/hast": "^3.0.0", + "hast-util-is-element": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-from-html": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/hast-util-embedded/-/hast-util-embedded-2.0.1.tgz", - "integrity": "sha512-QUdSOP1/o+/TxXtpPFXR2mUg2P+ySrmlX7QjwHZCXqMFyYk7YmcGSvqRW+4XgXAoHifdE1t2PwFaQK33TqVjSw==", + "resolved": "https://registry.npmjs.org/hast-util-from-html/-/hast-util-from-html-2.0.1.tgz", + "integrity": "sha512-RXQBLMl9kjKVNkJTIO6bZyb2n+cUH8LFaSSzo82jiLT6Tfc+Pt7VQCS+/h3YwG4jaNE2TA2sdJisGWR+aJrp0g==", "dependencies": { - "hast-util-is-element": "^2.0.0" + "@types/hast": "^3.0.0", + "devlop": "^1.1.0", + "hast-util-from-parse5": "^8.0.0", + "parse5": "^7.0.0", + "vfile": "^6.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-from-html/node_modules/vfile": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", + "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-stringify-position": "^4.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-from-html/node_modules/vfile-message": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", + "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-stringify-position": "^4.0.0" }, "funding": { "type": "opencollective", @@ -1368,16 +1437,17 @@ } }, "node_modules/hast-util-from-parse5": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/hast-util-from-parse5/-/hast-util-from-parse5-7.1.2.tgz", - "integrity": "sha512-Nz7FfPBuljzsN3tCQ4kCBKqdNhQE2l0Tn+X1ubgKBPRoiDIu1mL08Cfw4k7q71+Duyaw7DXDN+VTAp4Vh3oCOw==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/hast-util-from-parse5/-/hast-util-from-parse5-8.0.1.tgz", + "integrity": "sha512-Er/Iixbc7IEa7r/XLtuG52zoqn/b3Xng/w6aZQ0xGVxzhw5xUFxcRqdPzP6yFi/4HBYRaifaI5fQ1RH8n0ZeOQ==", "dependencies": { - "@types/hast": "^2.0.0", - "@types/unist": "^2.0.0", - "hastscript": "^7.0.0", + "@types/hast": "^3.0.0", + "@types/unist": "^3.0.0", + "devlop": "^1.0.0", + "hastscript": "^8.0.0", "property-information": "^6.0.0", - "vfile": "^5.0.0", - "vfile-location": "^4.0.0", + "vfile": "^6.0.0", + "vfile-location": "^5.0.0", "web-namespaces": "^2.0.0" }, "funding": { @@ -1385,23 +1455,51 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/hast-util-from-parse5/node_modules/vfile": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", + "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-stringify-position": "^4.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-from-parse5/node_modules/vfile-message": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", + "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-stringify-position": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, "node_modules/hast-util-has-property": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/hast-util-has-property/-/hast-util-has-property-2.0.1.tgz", - "integrity": "sha512-X2+RwZIMTMKpXUzlotatPzWj8bspCymtXH3cfG3iQKV+wPF53Vgaqxi/eLqGck0wKq1kS9nvoB1wchbCPEL8sg==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/hast-util-has-property/-/hast-util-has-property-3.0.0.tgz", + "integrity": "sha512-MNilsvEKLFpV604hwfhVStK0usFY/QmM5zX16bo7EjnAEGofr5YyI37kzopBlZJkHD4t887i+q/C8/tr5Q94cA==", + "dependencies": { + "@types/hast": "^3.0.0" + }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/hast-util-is-body-ok-link": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/hast-util-is-body-ok-link/-/hast-util-is-body-ok-link-2.0.0.tgz", - "integrity": "sha512-S58hCexyKdD31vMsErvgLfflW6vYWo/ixRLPJTtkOvLld24vyI8vmYmkgLA5LG3la2ME7nm7dLGdm48gfLRBfw==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/hast-util-is-body-ok-link/-/hast-util-is-body-ok-link-3.0.0.tgz", + "integrity": "sha512-VFHY5bo2nY8HiV6nir2ynmEB1XkxzuUffhEGeVx7orbu/B1KaGyeGgMZldvMVx5xWrDlLLG/kQ6YkJAMkBEx0w==", "dependencies": { - "@types/hast": "^2.0.0", - "hast-util-has-property": "^2.0.0", - "hast-util-is-element": "^2.0.0" + "@types/hast": "^3.0.0" }, "funding": { "type": "opencollective", @@ -1409,12 +1507,11 @@ } }, "node_modules/hast-util-is-element": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/hast-util-is-element/-/hast-util-is-element-2.1.3.tgz", - "integrity": "sha512-O1bKah6mhgEq2WtVMk+Ta5K7pPMqsBBlmzysLdcwKVrqzZQ0CHqUPiIVspNhAG1rvxpvJjtGee17XfauZYKqVA==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/hast-util-is-element/-/hast-util-is-element-3.0.0.tgz", + "integrity": "sha512-Val9mnv2IWpLbNPqc/pUem+a7Ipj2aHacCwgNfTiK0vJKl0LF+4Ba4+v1oPHFpf3bLYmreq0/l3Gud9S5OH42g==", "dependencies": { - "@types/hast": "^2.0.0", - "@types/unist": "^2.0.0" + "@types/hast": "^3.0.0" }, "funding": { "type": "opencollective", @@ -1422,11 +1519,11 @@ } }, "node_modules/hast-util-parse-selector": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-3.1.1.tgz", - "integrity": "sha512-jdlwBjEexy1oGz0aJ2f4GKMaVKkA9jwjr4MjAAI22E5fM/TXVZHuS5OpONtdeIkRKqAaryQ2E9xNQxijoThSZA==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-4.0.0.tgz", + "integrity": "sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==", "dependencies": { - "@types/hast": "^2.0.0" + "@types/hast": "^3.0.0" }, "funding": { "type": "opencollective", @@ -1434,15 +1531,89 @@ } }, "node_modules/hast-util-phrasing": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/hast-util-phrasing/-/hast-util-phrasing-2.0.2.tgz", - "integrity": "sha512-yGkCfPkkfCyiLfK6KEl/orMDr/zgCnq/NaO9HfULx6/Zga5fso5eqQA5Ov/JZVqACygvw9shRYWgXNcG2ilo7w==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/hast-util-phrasing/-/hast-util-phrasing-3.0.1.tgz", + "integrity": "sha512-6h60VfI3uBQUxHqTyMymMZnEbNl1XmEGtOxxKYL7stY2o601COo62AWAYBQR9lZbYXYSBoxag8UpPRXK+9fqSQ==", "dependencies": { - "@types/hast": "^2.0.0", - "hast-util-embedded": "^2.0.0", - "hast-util-has-property": "^2.0.0", - "hast-util-is-body-ok-link": "^2.0.0", - "hast-util-is-element": "^2.0.0" + "@types/hast": "^3.0.0", + "hast-util-embedded": "^3.0.0", + "hast-util-has-property": "^3.0.0", + "hast-util-is-body-ok-link": "^3.0.0", + "hast-util-is-element": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-raw": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/hast-util-raw/-/hast-util-raw-9.0.2.tgz", + "integrity": "sha512-PldBy71wO9Uq1kyaMch9AHIghtQvIwxBUkv823pKmkTM3oV1JxtsTNYdevMxvUHqcnOAuO65JKU2+0NOxc2ksA==", + "dependencies": { + "@types/hast": "^3.0.0", + "@types/unist": "^3.0.0", + "@ungap/structured-clone": "^1.0.0", + "hast-util-from-parse5": "^8.0.0", + "hast-util-to-parse5": "^8.0.0", + "html-void-elements": "^3.0.0", + "mdast-util-to-hast": "^13.0.0", + "parse5": "^7.0.0", + "unist-util-position": "^5.0.0", + "unist-util-visit": "^5.0.0", + "vfile": "^6.0.0", + "web-namespaces": "^2.0.0", + "zwitch": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-raw/node_modules/vfile": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", + "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-stringify-position": "^4.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-raw/node_modules/vfile-message": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", + "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-stringify-position": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-to-html": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/hast-util-to-html/-/hast-util-to-html-9.0.0.tgz", + "integrity": "sha512-IVGhNgg7vANuUA2XKrT6sOIIPgaYZnmLx3l/CCOAK0PtgfoHrZwX7jCSYyFxHTrGmC6S9q8aQQekjp4JPZF+cw==", + "dependencies": { + "@types/hast": "^3.0.0", + "@types/unist": "^3.0.0", + "ccount": "^2.0.0", + "comma-separated-tokens": "^2.0.0", + "hast-util-raw": "^9.0.0", + "hast-util-whitespace": "^3.0.0", + "html-void-elements": "^3.0.0", + "mdast-util-to-hast": "^13.0.0", + "property-information": "^6.0.0", + "space-separated-tokens": "^2.0.0", + "stringify-entities": "^4.0.0", + "zwitch": "^2.0.4" }, "funding": { "type": "opencollective", @@ -1450,25 +1621,54 @@ } }, "node_modules/hast-util-to-mdast": { - "version": "8.4.1", - "resolved": "https://registry.npmjs.org/hast-util-to-mdast/-/hast-util-to-mdast-8.4.1.tgz", - "integrity": "sha512-tfmBLASuCgyhCzpkTXM5kU8xeuS5jkMZ17BYm2YftGT5wvgc7uHXTZ/X8WfNd6F5NV/IGmrLsuahZ+jXQir4zQ==", - "dependencies": { - "@types/extend": "^3.0.0", - "@types/hast": "^2.0.0", - "@types/mdast": "^3.0.0", - "@types/unist": "^2.0.0", - "extend": "^3.0.0", - "hast-util-has-property": "^2.0.0", - "hast-util-is-element": "^2.0.0", - "hast-util-phrasing": "^2.0.0", - "hast-util-to-text": "^3.0.0", - "mdast-util-phrasing": "^3.0.0", - "mdast-util-to-string": "^3.0.0", - "rehype-minify-whitespace": "^5.0.0", + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/hast-util-to-mdast/-/hast-util-to-mdast-10.1.0.tgz", + "integrity": "sha512-DsL/SvCK9V7+vfc6SLQ+vKIyBDXTk2KLSbfBYkH4zeF/uR1yBajHRhkzuaUSGOB1WJSTieJBdHwxlC+HLKvZZw==", + "dependencies": { + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "@ungap/structured-clone": "^1.0.0", + "hast-util-phrasing": "^3.0.0", + "hast-util-to-html": "^9.0.0", + "hast-util-to-text": "^4.0.0", + "hast-util-whitespace": "^3.0.0", + "mdast-util-phrasing": "^4.0.0", + "mdast-util-to-hast": "^13.0.0", + "mdast-util-to-string": "^4.0.0", + "rehype-minify-whitespace": "^6.0.0", "trim-trailing-lines": "^2.0.0", - "unist-util-is": "^5.0.0", - "unist-util-visit": "^4.0.0" + "unist-util-position": "^5.0.0", + "unist-util-visit": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-to-mdast/node_modules/mdast-util-to-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-4.0.0.tgz", + "integrity": "sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==", + "dependencies": { + "@types/mdast": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-to-parse5": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/hast-util-to-parse5/-/hast-util-to-parse5-8.0.0.tgz", + "integrity": "sha512-3KKrV5ZVI8if87DVSi1vDeByYrkGzg4mEfeu4alwgmmIeARiBLKCZS2uw5Gb6nU9x9Yufyj3iudm6i7nl52PFw==", + "dependencies": { + "@types/hast": "^3.0.0", + "comma-separated-tokens": "^2.0.0", + "devlop": "^1.0.0", + "property-information": "^6.0.0", + "space-separated-tokens": "^2.0.0", + "web-namespaces": "^2.0.0", + "zwitch": "^2.0.0" }, "funding": { "type": "opencollective", @@ -1476,14 +1676,14 @@ } }, "node_modules/hast-util-to-text": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/hast-util-to-text/-/hast-util-to-text-3.1.2.tgz", - "integrity": "sha512-tcllLfp23dJJ+ju5wCCZHVpzsQQ43+moJbqVX3jNWPB7z/KFC4FyZD6R7y94cHL6MQ33YtMZL8Z0aIXXI4XFTw==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/hast-util-to-text/-/hast-util-to-text-4.0.0.tgz", + "integrity": "sha512-EWiE1FSArNBPUo1cKWtzqgnuRQwEeQbQtnFJRYV1hb1BWDgrAlBU0ExptvZMM/KSA82cDpm2sFGf3Dmc5Mza3w==", "dependencies": { - "@types/hast": "^2.0.0", - "@types/unist": "^2.0.0", - "hast-util-is-element": "^2.0.0", - "unist-util-find-after": "^4.0.0" + "@types/hast": "^3.0.0", + "@types/unist": "^3.0.0", + "hast-util-is-element": "^3.0.0", + "unist-util-find-after": "^5.0.0" }, "funding": { "type": "opencollective", @@ -1491,22 +1691,25 @@ } }, "node_modules/hast-util-whitespace": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-2.0.1.tgz", - "integrity": "sha512-nAxA0v8+vXSBDt3AnRUNjyRIQ0rD+ntpbAp4LnPkumc5M9yUbSMa4XDU9Q6etY4f1Wp4bNgvc1yjiZtsTTrSng==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-3.0.0.tgz", + "integrity": "sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==", + "dependencies": { + "@types/hast": "^3.0.0" + }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/hastscript": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-7.2.0.tgz", - "integrity": "sha512-TtYPq24IldU8iKoJQqvZOuhi5CyCQRAbvDOX0x1eW6rsHSxa/1i2CCiptNTotGHJ3VoHRGmqiv6/D3q113ikkw==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-8.0.0.tgz", + "integrity": "sha512-dMOtzCEd3ABUeSIISmrETiKuyydk1w0pa+gE/uormcTpSYuaNJPbX1NU3JLyscSLjwAQM8bWMhhIlnCqnRvDTw==", "dependencies": { - "@types/hast": "^2.0.0", + "@types/hast": "^3.0.0", "comma-separated-tokens": "^2.0.0", - "hast-util-parse-selector": "^3.0.0", + "hast-util-parse-selector": "^4.0.0", "property-information": "^6.0.0", "space-separated-tokens": "^2.0.0" }, @@ -1515,6 +1718,15 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/html-void-elements": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/html-void-elements/-/html-void-elements-3.0.0.tgz", + "integrity": "sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/htmlparser2": { "version": "8.0.2", "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.2.tgz", @@ -1601,28 +1813,6 @@ "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==" }, - "node_modules/is-buffer": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", - "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "engines": { - "node": ">=4" - } - }, "node_modules/is-fullwidth-code-point": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", @@ -1676,14 +1866,6 @@ "graceful-fs": "^4.1.6" } }, - "node_modules/kleur": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", - "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==", - "engines": { - "node": ">=6" - } - }, "node_modules/lines-and-columns": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", @@ -1719,14 +1901,14 @@ } }, "node_modules/mdast-util-find-and-replace": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/mdast-util-find-and-replace/-/mdast-util-find-and-replace-2.2.2.tgz", - "integrity": "sha512-MTtdFRz/eMDHXzeK6W3dO7mXUlF82Gom4y0oOgvHhh/HXZAGvIQDUvQ0SuUx+j2tv44b8xTHOm8K/9OoRFnXKw==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-find-and-replace/-/mdast-util-find-and-replace-3.0.1.tgz", + "integrity": "sha512-SG21kZHGC3XRTSUhtofZkBzZTJNM5ecCi0SK2IMKmSXR8vO3peL+kb1O0z7Zl83jKtutG4k5Wv/W7V3/YHvzPA==", "dependencies": { - "@types/mdast": "^3.0.0", + "@types/mdast": "^4.0.0", "escape-string-regexp": "^5.0.0", - "unist-util-is": "^5.0.0", - "unist-util-visit-parents": "^5.0.0" + "unist-util-is": "^6.0.0", + "unist-util-visit-parents": "^6.0.0" }, "funding": { "type": "opencollective", @@ -1734,22 +1916,34 @@ } }, "node_modules/mdast-util-from-markdown": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-1.3.0.tgz", - "integrity": "sha512-HN3W1gRIuN/ZW295c7zi7g9lVBllMgZE40RxCX37wrTPWXCWtpvOZdfnuK+1WNpvZje6XuJeI3Wnb4TJEUem+g==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.0.tgz", + "integrity": "sha512-n7MTOr/z+8NAX/wmhhDji8O3bRvPTV/U0oTCaZJkjhPSKTPhS3xufVhKGF8s1pJ7Ox4QgoIU7KHseh09S+9rTA==", "dependencies": { - "@types/mdast": "^3.0.0", - "@types/unist": "^2.0.0", + "@types/mdast": "^4.0.0", + "@types/unist": "^3.0.0", "decode-named-character-reference": "^1.0.0", - "mdast-util-to-string": "^3.1.0", - "micromark": "^3.0.0", - "micromark-util-decode-numeric-character-reference": "^1.0.0", - "micromark-util-decode-string": "^1.0.0", - "micromark-util-normalize-identifier": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0", - "unist-util-stringify-position": "^3.0.0", - "uvu": "^0.5.0" + "devlop": "^1.0.0", + "mdast-util-to-string": "^4.0.0", + "micromark": "^4.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-decode-string": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0", + "unist-util-stringify-position": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-from-markdown/node_modules/mdast-util-to-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-4.0.0.tgz", + "integrity": "sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==", + "dependencies": { + "@types/mdast": "^4.0.0" }, "funding": { "type": "opencollective", @@ -1757,17 +1951,17 @@ } }, "node_modules/mdast-util-gfm": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/mdast-util-gfm/-/mdast-util-gfm-2.0.2.tgz", - "integrity": "sha512-qvZ608nBppZ4icQlhQQIAdc6S3Ffj9RGmzwUKUWuEICFnd1LVkN3EktF7ZHAgfcEdvZB5owU9tQgt99e2TlLjg==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm/-/mdast-util-gfm-3.0.0.tgz", + "integrity": "sha512-dgQEX5Amaq+DuUqf26jJqSK9qgixgd6rYDHAv4aTBuA92cTknZlKpPfa86Z/s8Dj8xsAQpFfBmPUHWJBWqS4Bw==", "dependencies": { - "mdast-util-from-markdown": "^1.0.0", - "mdast-util-gfm-autolink-literal": "^1.0.0", - "mdast-util-gfm-footnote": "^1.0.0", - "mdast-util-gfm-strikethrough": "^1.0.0", - "mdast-util-gfm-table": "^1.0.0", - "mdast-util-gfm-task-list-item": "^1.0.0", - "mdast-util-to-markdown": "^1.0.0" + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-gfm-autolink-literal": "^2.0.0", + "mdast-util-gfm-footnote": "^2.0.0", + "mdast-util-gfm-strikethrough": "^2.0.0", + "mdast-util-gfm-table": "^2.0.0", + "mdast-util-gfm-task-list-item": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" }, "funding": { "type": "opencollective", @@ -1775,14 +1969,15 @@ } }, "node_modules/mdast-util-gfm-autolink-literal": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-1.0.3.tgz", - "integrity": "sha512-My8KJ57FYEy2W2LyNom4n3E7hKTuQk/0SES0u16tjA9Z3oFkF4RrC/hPAPgjlSpezsOvI8ObcXcElo92wn5IGA==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-2.0.0.tgz", + "integrity": "sha512-FyzMsduZZHSc3i0Px3PQcBT4WJY/X/RCtEJKuybiC6sjPqLv7h1yqAkmILZtuxMSsUyaLUWNp71+vQH2zqp5cg==", "dependencies": { - "@types/mdast": "^3.0.0", + "@types/mdast": "^4.0.0", "ccount": "^2.0.0", - "mdast-util-find-and-replace": "^2.0.0", - "micromark-util-character": "^1.0.0" + "devlop": "^1.0.0", + "mdast-util-find-and-replace": "^3.0.0", + "micromark-util-character": "^2.0.0" }, "funding": { "type": "opencollective", @@ -1790,13 +1985,15 @@ } }, "node_modules/mdast-util-gfm-footnote": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-footnote/-/mdast-util-gfm-footnote-1.0.2.tgz", - "integrity": "sha512-56D19KOGbE00uKVj3sgIykpwKL179QsVFwx/DCW0u/0+URsryacI4MAdNJl0dh+u2PSsD9FtxPFbHCzJ78qJFQ==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-footnote/-/mdast-util-gfm-footnote-2.0.0.tgz", + "integrity": "sha512-5jOT2boTSVkMnQ7LTrd6n/18kqwjmuYqo7JUPe+tRCY6O7dAuTFMtTPauYYrMPpox9hlN0uOx/FL8XvEfG9/mQ==", "dependencies": { - "@types/mdast": "^3.0.0", - "mdast-util-to-markdown": "^1.3.0", - "micromark-util-normalize-identifier": "^1.0.0" + "@types/mdast": "^4.0.0", + "devlop": "^1.1.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0" }, "funding": { "type": "opencollective", @@ -1804,12 +2001,13 @@ } }, "node_modules/mdast-util-gfm-strikethrough": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-1.0.3.tgz", - "integrity": "sha512-DAPhYzTYrRcXdMjUtUjKvW9z/FNAMTdU0ORyMcbmkwYNbKocDpdk+PX1L1dQgOID/+vVs1uBQ7ElrBQfZ0cuiQ==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-2.0.0.tgz", + "integrity": "sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==", "dependencies": { - "@types/mdast": "^3.0.0", - "mdast-util-to-markdown": "^1.3.0" + "@types/mdast": "^4.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" }, "funding": { "type": "opencollective", @@ -1817,14 +2015,15 @@ } }, "node_modules/mdast-util-gfm-table": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-table/-/mdast-util-gfm-table-1.0.7.tgz", - "integrity": "sha512-jjcpmNnQvrmN5Vx7y7lEc2iIOEytYv7rTvu+MeyAsSHTASGCCRA79Igg2uKssgOs1i1po8s3plW0sTu1wkkLGg==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-table/-/mdast-util-gfm-table-2.0.0.tgz", + "integrity": "sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==", "dependencies": { - "@types/mdast": "^3.0.0", + "@types/mdast": "^4.0.0", + "devlop": "^1.0.0", "markdown-table": "^3.0.0", - "mdast-util-from-markdown": "^1.0.0", - "mdast-util-to-markdown": "^1.3.0" + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" }, "funding": { "type": "opencollective", @@ -1832,12 +2031,14 @@ } }, "node_modules/mdast-util-gfm-task-list-item": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-1.0.2.tgz", - "integrity": "sha512-PFTA1gzfp1B1UaiJVyhJZA1rm0+Tzn690frc/L8vNX1Jop4STZgOE6bxUhnzdVSB+vm2GU1tIsuQcA9bxTQpMQ==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-2.0.0.tgz", + "integrity": "sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==", "dependencies": { - "@types/mdast": "^3.0.0", - "mdast-util-to-markdown": "^1.3.0" + "@types/mdast": "^4.0.0", + "devlop": "^1.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" }, "funding": { "type": "opencollective", @@ -1845,12 +2046,59 @@ } }, "node_modules/mdast-util-phrasing": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/mdast-util-phrasing/-/mdast-util-phrasing-3.0.1.tgz", - "integrity": "sha512-WmI1gTXUBJo4/ZmSk79Wcb2HcjPJBzM1nlI/OUWA8yk2X9ik3ffNbBGsU+09BFmXaL1IBb9fiuvq6/KMiNycSg==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-phrasing/-/mdast-util-phrasing-4.1.0.tgz", + "integrity": "sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==", "dependencies": { - "@types/mdast": "^3.0.0", - "unist-util-is": "^5.0.0" + "@types/mdast": "^4.0.0", + "unist-util-is": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-hast": { + "version": "13.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-13.1.0.tgz", + "integrity": "sha512-/e2l/6+OdGp/FB+ctrJ9Avz71AN/GRH3oi/3KAx/kMnoUsD6q0woXlDT8lLEeViVKE7oZxE7RXzvO3T8kF2/sA==", + "dependencies": { + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "@ungap/structured-clone": "^1.0.0", + "devlop": "^1.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "trim-lines": "^3.0.0", + "unist-util-position": "^5.0.0", + "unist-util-visit": "^5.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-hast/node_modules/vfile": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", + "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-stringify-position": "^4.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-hast/node_modules/vfile-message": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", + "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-stringify-position": "^4.0.0" }, "funding": { "type": "opencollective", @@ -1858,17 +2106,17 @@ } }, "node_modules/mdast-util-to-markdown": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-1.5.0.tgz", - "integrity": "sha512-bbv7TPv/WC49thZPg3jXuqzuvI45IL2EVAr/KxF0BSdHsU0ceFHOmwQn6evxAh1GaoK/6GQ1wp4R4oW2+LFL/A==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-2.1.0.tgz", + "integrity": "sha512-SR2VnIEdVNCJbP6y7kVTJgPLifdr8WEU440fQec7qHoHOUz/oJ2jmNRqdDQ3rbiStOXb2mCDGTuwsK5OPUgYlQ==", "dependencies": { - "@types/mdast": "^3.0.0", - "@types/unist": "^2.0.0", + "@types/mdast": "^4.0.0", + "@types/unist": "^3.0.0", "longest-streak": "^3.0.0", - "mdast-util-phrasing": "^3.0.0", - "mdast-util-to-string": "^3.0.0", - "micromark-util-decode-string": "^1.0.0", - "unist-util-visit": "^4.0.0", + "mdast-util-phrasing": "^4.0.0", + "mdast-util-to-string": "^4.0.0", + "micromark-util-decode-string": "^2.0.0", + "unist-util-visit": "^5.0.0", "zwitch": "^2.0.0" }, "funding": { @@ -1876,6 +2124,18 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/mdast-util-to-markdown/node_modules/mdast-util-to-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-4.0.0.tgz", + "integrity": "sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==", + "dependencies": { + "@types/mdast": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, "node_modules/mdast-util-to-string": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-3.2.0.tgz", @@ -1888,15 +2148,28 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/mdast-util-to-string/node_modules/@types/mdast": { + "version": "3.0.15", + "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.15.tgz", + "integrity": "sha512-LnwD+mUEfxWMa1QpDraczIn6k0Ee3SMicuYSSzS6ZYl2gKS09EClnJYGd8Du6rfc5r/GZEk5o1mRb8TaTj03sQ==", + "dependencies": { + "@types/unist": "^2" + } + }, + "node_modules/mdast-util-to-string/node_modules/@types/unist": { + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.10.tgz", + "integrity": "sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==" + }, "node_modules/merge-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" }, "node_modules/micromark": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/micromark/-/micromark-3.1.0.tgz", - "integrity": "sha512-6Mj0yHLdUZjHnOPgr5xfWIMqMWS12zDN6iws9SLuSz76W8jTtAv24MN4/CL7gJrl5vtxGInkkqDv/JIoRsQOvA==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/micromark/-/micromark-4.0.0.tgz", + "integrity": "sha512-o/sd0nMof8kYff+TqcDx3VSrgBTcZpSvYcAHIfHhv5VAuNmisCxjhx6YmxS8PFEpb9z5WKWKPdzf0jM23ro3RQ==", "funding": [ { "type": "GitHub Sponsors", @@ -1911,26 +2184,26 @@ "@types/debug": "^4.0.0", "debug": "^4.0.0", "decode-named-character-reference": "^1.0.0", - "micromark-core-commonmark": "^1.0.1", - "micromark-factory-space": "^1.0.0", - "micromark-util-character": "^1.0.0", - "micromark-util-chunked": "^1.0.0", - "micromark-util-combine-extensions": "^1.0.0", - "micromark-util-decode-numeric-character-reference": "^1.0.0", - "micromark-util-encode": "^1.0.0", - "micromark-util-normalize-identifier": "^1.0.0", - "micromark-util-resolve-all": "^1.0.0", - "micromark-util-sanitize-uri": "^1.0.0", - "micromark-util-subtokenize": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.1", - "uvu": "^0.5.0" + "devlop": "^1.0.0", + "micromark-core-commonmark": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-combine-extensions": "^2.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-encode": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-resolve-all": "^2.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "micromark-util-subtokenize": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" } }, "node_modules/micromark-core-commonmark": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-1.0.6.tgz", - "integrity": "sha512-K+PkJTxqjFfSNkfAhp4GB+cZPfQd6dxtTXnf+RjZOV7T4EEXnvgzOcnp+eSTmpGk9d1S9sL6/lqrgSNn/s0HZA==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-2.0.0.tgz", + "integrity": "sha512-jThOz/pVmAYUtkroV3D5c1osFXAMv9e0ypGDOIZuCeAe91/sD6BoE2Sjzt30yuXtwOYUmySOhMas/PVyh02itA==", "funding": [ { "type": "GitHub Sponsors", @@ -1943,36 +2216,36 @@ ], "dependencies": { "decode-named-character-reference": "^1.0.0", - "micromark-factory-destination": "^1.0.0", - "micromark-factory-label": "^1.0.0", - "micromark-factory-space": "^1.0.0", - "micromark-factory-title": "^1.0.0", - "micromark-factory-whitespace": "^1.0.0", - "micromark-util-character": "^1.0.0", - "micromark-util-chunked": "^1.0.0", - "micromark-util-classify-character": "^1.0.0", - "micromark-util-html-tag-name": "^1.0.0", - "micromark-util-normalize-identifier": "^1.0.0", - "micromark-util-resolve-all": "^1.0.0", - "micromark-util-subtokenize": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.1", - "uvu": "^0.5.0" + "devlop": "^1.0.0", + "micromark-factory-destination": "^2.0.0", + "micromark-factory-label": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-factory-title": "^2.0.0", + "micromark-factory-whitespace": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-classify-character": "^2.0.0", + "micromark-util-html-tag-name": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-resolve-all": "^2.0.0", + "micromark-util-subtokenize": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" } }, "node_modules/micromark-extension-gfm": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm/-/micromark-extension-gfm-2.0.3.tgz", - "integrity": "sha512-vb9OoHqrhCmbRidQv/2+Bc6pkP0FrtlhurxZofvOEy5o8RtuuvTq+RQ1Vw5ZDNrVraQZu3HixESqbG+0iKk/MQ==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm/-/micromark-extension-gfm-3.0.0.tgz", + "integrity": "sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==", "dependencies": { - "micromark-extension-gfm-autolink-literal": "^1.0.0", - "micromark-extension-gfm-footnote": "^1.0.0", - "micromark-extension-gfm-strikethrough": "^1.0.0", - "micromark-extension-gfm-table": "^1.0.0", - "micromark-extension-gfm-tagfilter": "^1.0.0", - "micromark-extension-gfm-task-list-item": "^1.0.0", - "micromark-util-combine-extensions": "^1.0.0", - "micromark-util-types": "^1.0.0" + "micromark-extension-gfm-autolink-literal": "^2.0.0", + "micromark-extension-gfm-footnote": "^2.0.0", + "micromark-extension-gfm-strikethrough": "^2.0.0", + "micromark-extension-gfm-table": "^2.0.0", + "micromark-extension-gfm-tagfilter": "^2.0.0", + "micromark-extension-gfm-task-list-item": "^2.0.0", + "micromark-util-combine-extensions": "^2.0.0", + "micromark-util-types": "^2.0.0" }, "funding": { "type": "opencollective", @@ -1980,14 +2253,14 @@ } }, "node_modules/micromark-extension-gfm-autolink-literal": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-1.0.4.tgz", - "integrity": "sha512-WCssN+M9rUyfHN5zPBn3/f0mIA7tqArHL/EKbv3CZK+LT2rG77FEikIQEqBkv46fOqXQK4NEW/Pc7Z27gshpeg==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-2.0.0.tgz", + "integrity": "sha512-rTHfnpt/Q7dEAK1Y5ii0W8bhfJlVJFnJMHIPisfPK3gpVNuOP0VnRl96+YJ3RYWV/P4gFeQoGKNlT3RhuvpqAg==", "dependencies": { - "micromark-util-character": "^1.0.0", - "micromark-util-sanitize-uri": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0" + "micromark-util-character": "^2.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" }, "funding": { "type": "opencollective", @@ -1995,18 +2268,18 @@ } }, "node_modules/micromark-extension-gfm-footnote": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-footnote/-/micromark-extension-gfm-footnote-1.1.0.tgz", - "integrity": "sha512-RWYce7j8+c0n7Djzv5NzGEGitNNYO3uj+h/XYMdS/JinH1Go+/Qkomg/rfxExFzYTiydaV6GLeffGO5qcJbMPA==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-footnote/-/micromark-extension-gfm-footnote-2.0.0.tgz", + "integrity": "sha512-6Rzu0CYRKDv3BfLAUnZsSlzx3ak6HAoI85KTiijuKIz5UxZxbUI+pD6oHgw+6UtQuiRwnGRhzMmPRv4smcz0fg==", "dependencies": { - "micromark-core-commonmark": "^1.0.0", - "micromark-factory-space": "^1.0.0", - "micromark-util-character": "^1.0.0", - "micromark-util-normalize-identifier": "^1.0.0", - "micromark-util-sanitize-uri": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0", - "uvu": "^0.5.0" + "devlop": "^1.0.0", + "micromark-core-commonmark": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" }, "funding": { "type": "opencollective", @@ -2014,16 +2287,16 @@ } }, "node_modules/micromark-extension-gfm-strikethrough": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-1.0.5.tgz", - "integrity": "sha512-X0oI5eYYQVARhiNfbETy7BfLSmSilzN1eOuoRnrf9oUNsPRrWOAe9UqSizgw1vNxQBfOwL+n2610S3bYjVNi7w==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-2.0.0.tgz", + "integrity": "sha512-c3BR1ClMp5fxxmwP6AoOY2fXO9U8uFMKs4ADD66ahLTNcwzSCyRVU4k7LPV5Nxo/VJiR4TdzxRQY2v3qIUceCw==", "dependencies": { - "micromark-util-chunked": "^1.0.0", - "micromark-util-classify-character": "^1.0.0", - "micromark-util-resolve-all": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0", - "uvu": "^0.5.0" + "devlop": "^1.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-classify-character": "^2.0.0", + "micromark-util-resolve-all": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" }, "funding": { "type": "opencollective", @@ -2031,15 +2304,15 @@ } }, "node_modules/micromark-extension-gfm-table": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-1.0.6.tgz", - "integrity": "sha512-92pq7Q+T+4kXH4M6kL+pc8WU23Z9iuhcqmtYFWdFWjm73ZscFpH2xE28+XFpGWlvgq3LUwcN0XC0PGCicYFpgA==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-2.0.0.tgz", + "integrity": "sha512-PoHlhypg1ItIucOaHmKE8fbin3vTLpDOUg8KAr8gRCF1MOZI9Nquq2i/44wFvviM4WuxJzc3demT8Y3dkfvYrw==", "dependencies": { - "micromark-factory-space": "^1.0.0", - "micromark-util-character": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0", - "uvu": "^0.5.0" + "devlop": "^1.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" }, "funding": { "type": "opencollective", @@ -2047,11 +2320,11 @@ } }, "node_modules/micromark-extension-gfm-tagfilter": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-1.0.2.tgz", - "integrity": "sha512-5XWB9GbAUSHTn8VPU8/1DBXMuKYT5uOgEjJb8gN3mW0PNW5OPHpSdojoqf+iq1xo7vWzw/P8bAHY0n6ijpXF7g==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-2.0.0.tgz", + "integrity": "sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==", "dependencies": { - "micromark-util-types": "^1.0.0" + "micromark-util-types": "^2.0.0" }, "funding": { "type": "opencollective", @@ -2059,15 +2332,15 @@ } }, "node_modules/micromark-extension-gfm-task-list-item": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-1.0.4.tgz", - "integrity": "sha512-9XlIUUVnYXHsFF2HZ9jby4h3npfX10S1coXTnV035QGPgrtNYQq3J6IfIvcCIUAJrrqBVi5BqA/LmaOMJqPwMQ==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-2.0.1.tgz", + "integrity": "sha512-cY5PzGcnULaN5O7T+cOzfMoHjBW7j+T9D2sucA5d/KbsBTPcYdebm9zUd9zzdgJGCwahV+/W78Z3nbulBYVbTw==", "dependencies": { - "micromark-factory-space": "^1.0.0", - "micromark-util-character": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0", - "uvu": "^0.5.0" + "devlop": "^1.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" }, "funding": { "type": "opencollective", @@ -2075,9 +2348,9 @@ } }, "node_modules/micromark-factory-destination": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-1.0.0.tgz", - "integrity": "sha512-eUBA7Rs1/xtTVun9TmV3gjfPz2wEwgK5R5xcbIM5ZYAtvGF6JkyaDsj0agx8urXnO31tEO6Ug83iVH3tdedLnw==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-2.0.0.tgz", + "integrity": "sha512-j9DGrQLm/Uhl2tCzcbLhy5kXsgkHUrjJHg4fFAeoMRwJmJerT9aw4FEhIbZStWN8A3qMwOp1uzHr4UL8AInxtA==", "funding": [ { "type": "GitHub Sponsors", @@ -2089,15 +2362,15 @@ } ], "dependencies": { - "micromark-util-character": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0" + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" } }, "node_modules/micromark-factory-label": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-1.0.2.tgz", - "integrity": "sha512-CTIwxlOnU7dEshXDQ+dsr2n+yxpP0+fn271pu0bwDIS8uqfFcumXpj5mLn3hSC8iw2MUr6Gx8EcKng1dD7i6hg==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-2.0.0.tgz", + "integrity": "sha512-RR3i96ohZGde//4WSe/dJsxOX6vxIg9TimLAS3i4EhBAFx8Sm5SmqVfR8E87DPSR31nEAjZfbt91OMZWcNgdZw==", "funding": [ { "type": "GitHub Sponsors", @@ -2109,16 +2382,16 @@ } ], "dependencies": { - "micromark-util-character": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0", - "uvu": "^0.5.0" + "devlop": "^1.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" } }, "node_modules/micromark-factory-space": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-1.0.0.tgz", - "integrity": "sha512-qUmqs4kj9a5yBnk3JMLyjtWYN6Mzfcx8uJfi5XAveBniDevmZasdGBba5b4QsvRcAkmvGo5ACmSUmyGiKTLZew==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.0.tgz", + "integrity": "sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==", "funding": [ { "type": "GitHub Sponsors", @@ -2130,14 +2403,14 @@ } ], "dependencies": { - "micromark-util-character": "^1.0.0", - "micromark-util-types": "^1.0.0" + "micromark-util-character": "^2.0.0", + "micromark-util-types": "^2.0.0" } }, "node_modules/micromark-factory-title": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-1.0.2.tgz", - "integrity": "sha512-zily+Nr4yFqgMGRKLpTVsNl5L4PMu485fGFDOQJQBl2NFpjGte1e86zC0da93wf97jrc4+2G2GQudFMHn3IX+A==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-2.0.0.tgz", + "integrity": "sha512-jY8CSxmpWLOxS+t8W+FG3Xigc0RDQA9bKMY/EwILvsesiRniiVMejYTE4wumNc2f4UbAa4WsHqe3J1QS1sli+A==", "funding": [ { "type": "GitHub Sponsors", @@ -2149,17 +2422,16 @@ } ], "dependencies": { - "micromark-factory-space": "^1.0.0", - "micromark-util-character": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0", - "uvu": "^0.5.0" + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" } }, "node_modules/micromark-factory-whitespace": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-1.0.0.tgz", - "integrity": "sha512-Qx7uEyahU1lt1RnsECBiuEbfr9INjQTGa6Err+gF3g0Tx4YEviPbqqGKNv/NrBaE7dVHdn1bVZKM/n5I/Bak7A==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-2.0.0.tgz", + "integrity": "sha512-28kbwaBjc5yAI1XadbdPYHX/eDnqaUFVikLwrO7FDnKG7lpgxnvk/XGRhX/PN0mOZ+dBSZ+LgunHS+6tYQAzhA==", "funding": [ { "type": "GitHub Sponsors", @@ -2171,16 +2443,16 @@ } ], "dependencies": { - "micromark-factory-space": "^1.0.0", - "micromark-util-character": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0" + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" } }, "node_modules/micromark-util-character": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-1.1.0.tgz", - "integrity": "sha512-agJ5B3unGNJ9rJvADMJ5ZiYjBRyDpzKAOk01Kpi1TKhlT1APx3XZk6eN7RtSz1erbWHC2L8T3xLZ81wdtGRZzg==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz", + "integrity": "sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==", "funding": [ { "type": "GitHub Sponsors", @@ -2192,14 +2464,14 @@ } ], "dependencies": { - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0" + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" } }, "node_modules/micromark-util-chunked": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-1.0.0.tgz", - "integrity": "sha512-5e8xTis5tEZKgesfbQMKRCyzvffRRUX+lK/y+DvsMFdabAicPkkZV6gO+FEWi9RfuKKoxxPwNL+dFF0SMImc1g==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-2.0.0.tgz", + "integrity": "sha512-anK8SWmNphkXdaKgz5hJvGa7l00qmcaUQoMYsBwDlSKFKjc6gjGXPDw3FNL3Nbwq5L8gE+RCbGqTw49FK5Qyvg==", "funding": [ { "type": "GitHub Sponsors", @@ -2211,13 +2483,13 @@ } ], "dependencies": { - "micromark-util-symbol": "^1.0.0" + "micromark-util-symbol": "^2.0.0" } }, "node_modules/micromark-util-classify-character": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-1.0.0.tgz", - "integrity": "sha512-F8oW2KKrQRb3vS5ud5HIqBVkCqQi224Nm55o5wYLzY/9PwHGXC01tr3d7+TqHHz6zrKQ72Okwtvm/xQm6OVNZA==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-2.0.0.tgz", + "integrity": "sha512-S0ze2R9GH+fu41FA7pbSqNWObo/kzwf8rN/+IGlW/4tC6oACOs8B++bh+i9bVyNnwCcuksbFwsBme5OCKXCwIw==", "funding": [ { "type": "GitHub Sponsors", @@ -2229,15 +2501,15 @@ } ], "dependencies": { - "micromark-util-character": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0" + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" } }, "node_modules/micromark-util-combine-extensions": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-1.0.0.tgz", - "integrity": "sha512-J8H058vFBdo/6+AsjHp2NF7AJ02SZtWaVUjsayNFeAiydTxUwViQPxN0Hf8dp4FmCQi0UUFovFsEyRSUmFH3MA==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-2.0.0.tgz", + "integrity": "sha512-vZZio48k7ON0fVS3CUgFatWHoKbbLTK/rT7pzpJ4Bjp5JjkZeasRfrS9wsBdDJK2cJLHMckXZdzPSSr1B8a4oQ==", "funding": [ { "type": "GitHub Sponsors", @@ -2249,14 +2521,14 @@ } ], "dependencies": { - "micromark-util-chunked": "^1.0.0", - "micromark-util-types": "^1.0.0" + "micromark-util-chunked": "^2.0.0", + "micromark-util-types": "^2.0.0" } }, "node_modules/micromark-util-decode-numeric-character-reference": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-1.0.0.tgz", - "integrity": "sha512-OzO9AI5VUtrTD7KSdagf4MWgHMtET17Ua1fIpXTpuhclCqD8egFWo85GxSGvxgkGS74bEahvtM0WP0HjvV0e4w==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-2.0.1.tgz", + "integrity": "sha512-bmkNc7z8Wn6kgjZmVHOX3SowGmVdhYS7yBpMnuMnPzDq/6xwVA604DuOXMZTO1lvq01g+Adfa0pE2UKGlxL1XQ==", "funding": [ { "type": "GitHub Sponsors", @@ -2268,13 +2540,13 @@ } ], "dependencies": { - "micromark-util-symbol": "^1.0.0" + "micromark-util-symbol": "^2.0.0" } }, "node_modules/micromark-util-decode-string": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-1.0.2.tgz", - "integrity": "sha512-DLT5Ho02qr6QWVNYbRZ3RYOSSWWFuH3tJexd3dgN1odEuPNxCngTCXJum7+ViRAd9BbdxCvMToPOD/IvVhzG6Q==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-2.0.0.tgz", + "integrity": "sha512-r4Sc6leeUTn3P6gk20aFMj2ntPwn6qpDZqWvYmAG6NgvFTIlj4WtrAudLi65qYoaGdXYViXYw2pkmn7QnIFasA==", "funding": [ { "type": "GitHub Sponsors", @@ -2287,15 +2559,15 @@ ], "dependencies": { "decode-named-character-reference": "^1.0.0", - "micromark-util-character": "^1.0.0", - "micromark-util-decode-numeric-character-reference": "^1.0.0", - "micromark-util-symbol": "^1.0.0" + "micromark-util-character": "^2.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-symbol": "^2.0.0" } }, "node_modules/micromark-util-encode": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-1.0.1.tgz", - "integrity": "sha512-U2s5YdnAYexjKDel31SVMPbfi+eF8y1U4pfiRW/Y8EFVCy/vgxk/2wWTxzcqE71LHtCuCzlBDRU2a5CQ5j+mQA==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-2.0.0.tgz", + "integrity": "sha512-pS+ROfCXAGLWCOc8egcBvT0kf27GoWMqtdarNfDcjb6YLuV5cM3ioG45Ys2qOVqeqSbjaKg72vU+Wby3eddPsA==", "funding": [ { "type": "GitHub Sponsors", @@ -2308,9 +2580,9 @@ ] }, "node_modules/micromark-util-html-tag-name": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-1.1.0.tgz", - "integrity": "sha512-BKlClMmYROy9UiV03SwNmckkjn8QHVaWkqoAqzivabvdGcwNGMMMH/5szAnywmsTBUzDsU57/mFi0sp4BQO6dA==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-2.0.0.tgz", + "integrity": "sha512-xNn4Pqkj2puRhKdKTm8t1YHC/BAjx6CEwRFXntTaRf/x16aqka6ouVoutm+QdkISTlT7e2zU7U4ZdlDLJd2Mcw==", "funding": [ { "type": "GitHub Sponsors", @@ -2323,9 +2595,9 @@ ] }, "node_modules/micromark-util-normalize-identifier": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-1.0.0.tgz", - "integrity": "sha512-yg+zrL14bBTFrQ7n35CmByWUTFsgst5JhA4gJYoty4Dqzj4Z4Fr/DHekSS5aLfH9bdlfnSvKAWsAgJhIbogyBg==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-2.0.0.tgz", + "integrity": "sha512-2xhYT0sfo85FMrUPtHcPo2rrp1lwbDEEzpx7jiH2xXJLqBuy4H0GgXk5ToU8IEwoROtXuL8ND0ttVa4rNqYK3w==", "funding": [ { "type": "GitHub Sponsors", @@ -2337,13 +2609,13 @@ } ], "dependencies": { - "micromark-util-symbol": "^1.0.0" + "micromark-util-symbol": "^2.0.0" } }, "node_modules/micromark-util-resolve-all": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-1.0.0.tgz", - "integrity": "sha512-CB/AGk98u50k42kvgaMM94wzBqozSzDDaonKU7P7jwQIuH2RU0TeBqGYJz2WY1UdihhjweivStrJ2JdkdEmcfw==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-2.0.0.tgz", + "integrity": "sha512-6KU6qO7DZ7GJkaCgwBNtplXCvGkJToU86ybBAUdavvgsCiG8lSSvYxr9MhwmQ+udpzywHsl4RpGJsYWG1pDOcA==", "funding": [ { "type": "GitHub Sponsors", @@ -2355,13 +2627,13 @@ } ], "dependencies": { - "micromark-util-types": "^1.0.0" + "micromark-util-types": "^2.0.0" } }, "node_modules/micromark-util-sanitize-uri": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-1.1.0.tgz", - "integrity": "sha512-RoxtuSCX6sUNtxhbmsEFQfWzs8VN7cTctmBPvYivo98xb/kDEoTCtJQX5wyzIYEmk/lvNFTat4hL8oW0KndFpg==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.0.tgz", + "integrity": "sha512-WhYv5UEcZrbAtlsnPuChHUAsu/iBPOVaEVsntLBIdpibO0ddy8OzavZz3iL2xVvBZOpolujSliP65Kq0/7KIYw==", "funding": [ { "type": "GitHub Sponsors", @@ -2373,15 +2645,15 @@ } ], "dependencies": { - "micromark-util-character": "^1.0.0", - "micromark-util-encode": "^1.0.0", - "micromark-util-symbol": "^1.0.0" + "micromark-util-character": "^2.0.0", + "micromark-util-encode": "^2.0.0", + "micromark-util-symbol": "^2.0.0" } }, "node_modules/micromark-util-subtokenize": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-1.0.2.tgz", - "integrity": "sha512-d90uqCnXp/cy4G881Ub4psE57Sf8YD0pim9QdjCRNjfas2M1u6Lbt+XZK9gnHL2XFhnozZiEdCa9CNfXSfQ6xA==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-2.0.0.tgz", + "integrity": "sha512-vc93L1t+gpR3p8jxeVdaYlbV2jTYteDje19rNSS/H5dlhxUYll5Fy6vJ2cDwP8RnsXi818yGty1ayP55y3W6fg==", "funding": [ { "type": "GitHub Sponsors", @@ -2393,16 +2665,16 @@ } ], "dependencies": { - "micromark-util-chunked": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0", - "uvu": "^0.5.0" + "devlop": "^1.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" } }, "node_modules/micromark-util-symbol": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-1.0.1.tgz", - "integrity": "sha512-oKDEMK2u5qqAptasDAwWDXq0tG9AssVwAx3E9bBF3t/shRIGsWIRG+cGafs2p/SnDSOecnt6hZPCE2o6lHfFmQ==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", + "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", "funding": [ { "type": "GitHub Sponsors", @@ -2415,9 +2687,9 @@ ] }, "node_modules/micromark-util-types": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-1.0.2.tgz", - "integrity": "sha512-DCfg/T8fcrhrRKTPjRrw/5LLvdGV7BHySf/1LOZx7TzWZdYRjogNtyNq885z3nNallwr3QUKARjqvHqX1/7t+w==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.0.tgz", + "integrity": "sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w==", "funding": [ { "type": "GitHub Sponsors", @@ -2439,14 +2711,6 @@ "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==" }, - "node_modules/mri": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz", - "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==", - "engines": { - "node": ">=4" - } - }, "node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", @@ -2567,9 +2831,15 @@ } }, "node_modules/parse5": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", - "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==" + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", + "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", + "dependencies": { + "entities": "^4.4.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } }, "node_modules/parse5-htmlparser2-tree-adapter": { "version": "7.0.0", @@ -2583,17 +2853,6 @@ "url": "https://github.com/inikulin/parse5?sponsor=1" } }, - "node_modules/parse5-htmlparser2-tree-adapter/node_modules/parse5": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", - "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", - "dependencies": { - "entities": "^4.4.0" - }, - "funding": { - "url": "https://github.com/inikulin/parse5?sponsor=1" - } - }, "node_modules/path-key": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", @@ -2638,9 +2897,9 @@ } }, "node_modules/property-information": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/property-information/-/property-information-6.2.0.tgz", - "integrity": "sha512-kma4U7AFCTwpqq5twzC1YVIDXSqg6qQK6JN0smOw8fgRy1OkMi0CYSzFmsy6dnqSenamAtj0CyXMUJ1Mf6oROg==", + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/property-information/-/property-information-6.4.1.tgz", + "integrity": "sha512-OHYtXfu5aI2sS2LWFSN5rgJjrQ4pCy8i1jubJLe2QvMF8JJ++HXTUIVWFLfXJoaOfvYYjk2SN8J2wFUWIGXT4w==", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -2730,16 +2989,15 @@ "integrity": "sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==" }, "node_modules/rehype-minify-whitespace": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/rehype-minify-whitespace/-/rehype-minify-whitespace-5.0.1.tgz", - "integrity": "sha512-PPp4lWJiBPlePI/dv1BeYktbwkfgXkrK59MUa+tYbMPgleod+4DvFK2PLU0O0O60/xuhHfiR9GUIUlXTU8sRIQ==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/rehype-minify-whitespace/-/rehype-minify-whitespace-6.0.0.tgz", + "integrity": "sha512-i9It4YHR0Sf3GsnlR5jFUKXRr9oayvEk9GKQUkwZv6hs70OH9q3OCZrq9PpLvIGKt3W+JxBOxCidNVpH/6rWdA==", "dependencies": { - "@types/hast": "^2.0.0", - "hast-util-embedded": "^2.0.0", - "hast-util-is-element": "^2.0.0", - "hast-util-whitespace": "^2.0.0", - "unified": "^10.0.0", - "unist-util-is": "^5.0.0" + "@types/hast": "^3.0.0", + "hast-util-embedded": "^3.0.0", + "hast-util-is-element": "^3.0.0", + "hast-util-whitespace": "^3.0.0", + "unist-util-is": "^6.0.0" }, "funding": { "type": "opencollective", @@ -2747,14 +3005,13 @@ } }, "node_modules/rehype-parse": { - "version": "8.0.4", - "resolved": "https://registry.npmjs.org/rehype-parse/-/rehype-parse-8.0.4.tgz", - "integrity": "sha512-MJJKONunHjoTh4kc3dsM1v3C9kGrrxvA3U8PxZlP2SjH8RNUSrb+lF7Y0KVaUDnGH2QZ5vAn7ulkiajM9ifuqg==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/rehype-parse/-/rehype-parse-9.0.0.tgz", + "integrity": "sha512-WG7nfvmWWkCR++KEkZevZb/uw41E8TsH4DsY9UxsTbIXCVGbAs4S+r8FrQ+OtH5EEQAs+5UxKC42VinkmpA1Yw==", "dependencies": { - "@types/hast": "^2.0.0", - "hast-util-from-parse5": "^7.0.0", - "parse5": "^6.0.0", - "unified": "^10.0.0" + "@types/hast": "^3.0.0", + "hast-util-from-html": "^2.0.0", + "unified": "^11.0.0" }, "funding": { "type": "opencollective", @@ -2762,14 +3019,42 @@ } }, "node_modules/rehype-remark": { - "version": "9.1.2", - "resolved": "https://registry.npmjs.org/rehype-remark/-/rehype-remark-9.1.2.tgz", - "integrity": "sha512-c0fG3/CrJ95zAQ07xqHSkdpZybwdsY7X5dNWvgL2XqLKZuqmG3+vk6kP/4miCnp+R+x/0uKKRSpfXb9aGR8Z5w==", + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/rehype-remark/-/rehype-remark-10.0.0.tgz", + "integrity": "sha512-+aDXY/icqMFOafJQomVjxe3BAP7aR3lIsQ3GV6VIwpbCD2nvNFOXjGvotMe5p0Ny+Gt6L13DhEf/FjOOpTuUbQ==", + "dependencies": { + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "hast-util-to-mdast": "^10.0.0", + "unified": "^11.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/rehype-remark/node_modules/vfile": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", + "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-stringify-position": "^4.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/rehype-remark/node_modules/vfile-message": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", + "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", "dependencies": { - "@types/hast": "^2.0.0", - "@types/mdast": "^3.0.0", - "hast-util-to-mdast": "^8.3.0", - "unified": "^10.0.0" + "@types/unist": "^3.0.0", + "unist-util-stringify-position": "^4.0.0" }, "funding": { "type": "opencollective", @@ -2777,14 +3062,31 @@ } }, "node_modules/remark-gfm": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/remark-gfm/-/remark-gfm-3.0.1.tgz", - "integrity": "sha512-lEFDoi2PICJyNrACFOfDD3JlLkuSbOa5Wd8EPt06HUdptv8Gn0bxYTdbU/XXQ3swAPkEaGxxPN9cbnMHvVu1Ig==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/remark-gfm/-/remark-gfm-4.0.0.tgz", + "integrity": "sha512-U92vJgBPkbw4Zfu/IiW2oTZLSL3Zpv+uI7My2eq8JxKgqraFdU8YUGicEJCEgSbeaG+QDFqIcwwfMTOEelPxuA==", "dependencies": { - "@types/mdast": "^3.0.0", - "mdast-util-gfm": "^2.0.0", - "micromark-extension-gfm": "^2.0.0", - "unified": "^10.0.0" + "@types/mdast": "^4.0.0", + "mdast-util-gfm": "^3.0.0", + "micromark-extension-gfm": "^3.0.0", + "remark-parse": "^11.0.0", + "remark-stringify": "^11.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-parse": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-11.0.0.tgz", + "integrity": "sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==", + "dependencies": { + "@types/mdast": "^4.0.0", + "mdast-util-from-markdown": "^2.0.0", + "micromark-util-types": "^2.0.0", + "unified": "^11.0.0" }, "funding": { "type": "opencollective", @@ -2792,13 +3094,13 @@ } }, "node_modules/remark-stringify": { - "version": "10.0.3", - "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-10.0.3.tgz", - "integrity": "sha512-koyOzCMYoUHudypbj4XpnAKFbkddRMYZHwghnxd7ue5210WzGw6kOBwauJTRUMq16jsovXx8dYNvSSWP89kZ3A==", + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-11.0.0.tgz", + "integrity": "sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==", "dependencies": { - "@types/mdast": "^3.0.0", - "mdast-util-to-markdown": "^1.0.0", - "unified": "^10.0.0" + "@types/mdast": "^4.0.0", + "mdast-util-to-markdown": "^2.0.0", + "unified": "^11.0.0" }, "funding": { "type": "opencollective", @@ -2829,17 +3131,6 @@ "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" } }, - "node_modules/sade": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/sade/-/sade-1.8.1.tgz", - "integrity": "sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==", - "dependencies": { - "mri": "^1.1.0" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/semver": { "version": "7.5.4", "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", @@ -2966,6 +3257,19 @@ "node": ">=8" } }, + "node_modules/stringify-entities": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.3.tgz", + "integrity": "sha512-BP9nNHMhhfcMbiuQKCqMjhDP5yBCAxsPu4pHFFzJ6Alo9dZgY4VLDPutXqIjpRiMoKdp7Av85Gr73Q5uH9k7+g==", + "dependencies": { + "character-entities-html4": "^2.0.0", + "character-entities-legacy": "^3.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", @@ -3018,6 +3322,15 @@ "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" }, + "node_modules/trim-lines": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/trim-lines/-/trim-lines-3.0.1.tgz", + "integrity": "sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/trim-trailing-lines": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/trim-trailing-lines/-/trim-trailing-lines-2.1.0.tgz", @@ -3082,17 +3395,44 @@ } }, "node_modules/unified": { - "version": "10.1.2", - "resolved": "https://registry.npmjs.org/unified/-/unified-10.1.2.tgz", - "integrity": "sha512-pUSWAi/RAnVy1Pif2kAoeWNBa3JVrx0MId2LASj8G+7AiHWoKZNTomq6LG326T68U7/e263X6fTdcXIy7XnF7Q==", + "version": "11.0.4", + "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.4.tgz", + "integrity": "sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==", "dependencies": { - "@types/unist": "^2.0.0", + "@types/unist": "^3.0.0", "bail": "^2.0.0", + "devlop": "^1.0.0", "extend": "^3.0.0", - "is-buffer": "^2.0.0", "is-plain-obj": "^4.0.0", "trough": "^2.0.0", - "vfile": "^5.0.0" + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unified/node_modules/vfile": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", + "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-stringify-position": "^4.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unified/node_modules/vfile-message": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", + "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-stringify-position": "^4.0.0" }, "funding": { "type": "opencollective", @@ -3100,12 +3440,12 @@ } }, "node_modules/unist-util-find-after": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/unist-util-find-after/-/unist-util-find-after-4.0.1.tgz", - "integrity": "sha512-QO/PuPMm2ERxC6vFXEPtmAutOopy5PknD+Oq64gGwxKtk4xwo9Z97t9Av1obPmGU0IyTa6EKYUfTrK2QJS3Ozw==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/unist-util-find-after/-/unist-util-find-after-5.0.0.tgz", + "integrity": "sha512-amQa0Ep2m6hE2g72AugUItjbuM8X8cGQnFoHk0pGfrFeT9GZhzN5SW8nRsiGKK7Aif4CrACPENkA6P/Lw6fHGQ==", "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-is": "^5.0.0" + "@types/unist": "^3.0.0", + "unist-util-is": "^6.0.0" }, "funding": { "type": "opencollective", @@ -3113,11 +3453,23 @@ } }, "node_modules/unist-util-is": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.2.1.tgz", - "integrity": "sha512-u9njyyfEh43npf1M+yGKDGVPbY/JWEemg5nH05ncKPfi+kBbKBJoTdsogMu33uhytuLlv9y0O7GH7fEdwLdLQw==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.0.tgz", + "integrity": "sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-position": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz", + "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==", "dependencies": { - "@types/unist": "^2.0.0" + "@types/unist": "^3.0.0" }, "funding": { "type": "opencollective", @@ -3125,11 +3477,11 @@ } }, "node_modules/unist-util-stringify-position": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.3.tgz", - "integrity": "sha512-k5GzIBZ/QatR8N5X2y+drfpWG8IDBzdnVj6OInRNWm1oXrzydiaAT2OQiA8DPRRZyAKb9b6I2a6PxYklZD0gKg==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", + "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", "dependencies": { - "@types/unist": "^2.0.0" + "@types/unist": "^3.0.0" }, "funding": { "type": "opencollective", @@ -3137,13 +3489,13 @@ } }, "node_modules/unist-util-visit": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.1.2.tgz", - "integrity": "sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz", + "integrity": "sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==", "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-is": "^5.0.0", - "unist-util-visit-parents": "^5.1.1" + "@types/unist": "^3.0.0", + "unist-util-is": "^6.0.0", + "unist-util-visit-parents": "^6.0.0" }, "funding": { "type": "opencollective", @@ -3151,12 +3503,12 @@ } }, "node_modules/unist-util-visit-parents": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.1.3.tgz", - "integrity": "sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.1.tgz", + "integrity": "sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==", "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-is": "^5.0.0" + "@types/unist": "^3.0.0", + "unist-util-is": "^6.0.0" }, "funding": { "type": "opencollective", @@ -3171,66 +3523,40 @@ "node": ">= 4.0.0" } }, - "node_modules/uvu": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/uvu/-/uvu-0.5.6.tgz", - "integrity": "sha512-+g8ENReyr8YsOc6fv/NVJs2vFdHBnBNdfE49rshrTzDWOlUx4Gq7KOS2GD8eqhy2j+Ejq29+SbKH8yjkAqXqoA==", - "dependencies": { - "dequal": "^2.0.0", - "diff": "^5.0.0", - "kleur": "^4.0.3", - "sade": "^1.7.3" - }, - "bin": { - "uvu": "bin.js" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/uvu/node_modules/diff": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-5.1.0.tgz", - "integrity": "sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==", - "engines": { - "node": ">=0.3.1" - } - }, - "node_modules/vfile": { - "version": "5.3.7", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.3.7.tgz", - "integrity": "sha512-r7qlzkgErKjobAmyNIkkSpizsFPYiUPuJb5pNW1RB4JcYVZhs4lIbVqk8XPk033CV/1z8ss5pkax8SuhGpcG8g==", + "node_modules/vfile-location": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-5.0.2.tgz", + "integrity": "sha512-NXPYyxyBSH7zB5U6+3uDdd6Nybz6o6/od9rk8bp9H8GR3L+cm/fC0uUTbqBmUTnMCUDslAGBOIKNfvvb+gGlDg==", "dependencies": { - "@types/unist": "^2.0.0", - "is-buffer": "^2.0.0", - "unist-util-stringify-position": "^3.0.0", - "vfile-message": "^3.0.0" + "@types/unist": "^3.0.0", + "vfile": "^6.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/vfile-location": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-4.1.0.tgz", - "integrity": "sha512-YF23YMyASIIJXpktBa4vIGLJ5Gs88UB/XePgqPmTa7cDA+JeO3yclbpheQYCHjVHBn/yePzrXuygIL+xbvRYHw==", + "node_modules/vfile-location/node_modules/vfile": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", + "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", "dependencies": { - "@types/unist": "^2.0.0", - "vfile": "^5.0.0" + "@types/unist": "^3.0.0", + "unist-util-stringify-position": "^4.0.0", + "vfile-message": "^4.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/vfile-message": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.1.4.tgz", - "integrity": "sha512-fa0Z6P8HUrQN4BZaX05SIVXic+7kE3b05PWAtPuYP9QLHsLKYR7/AlLW3NtOrpXRLeawpDLMsVkmk5DG0NXgWw==", + "node_modules/vfile-location/node_modules/vfile-message": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", + "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^3.0.0" + "@types/unist": "^3.0.0", + "unist-util-stringify-position": "^4.0.0" }, "funding": { "type": "opencollective", diff --git a/src/package.json b/src/package.json index 2945dd4..fbb32af 100644 --- a/src/package.json +++ b/src/package.json @@ -20,26 +20,31 @@ }, "homepage": "https://github.com/crit-tech/LGMRD#readme", "devDependencies": { + "@types/mdast": "^4.0.3", "@types/semver": "^7.5.0", + "@types/unist": "^3.0.2", "cross-env": "^7.0.3", "typescript": "^5.0.4" }, "dependencies": { "cheerio": "^1.0.0-rc.12", + "hast-util-to-mdast": "^10.1.0", + "mdast-util-gfm": "^3.0.0", "mdast-util-to-string": "^3.2.0", - "micromark-extension-gfm": "^2.0.3", + "micromark-extension-gfm": "^3.0.0", "pandoc-wrapper": "^0.3.1", "prettier": "^3.0.3", "puppeteer": "^20.5.0", - "rehype-parse": "^8.0.4", - "rehype-remark": "^9.1.2", - "remark-gfm": "^3.0.1", - "remark-stringify": "^10.0.3", + "rehype-parse": "^9.0.0", + "rehype-remark": "^10.0.0", + "remark-gfm": "^4.0.0", + "remark-parse": "^11.0.0", + "remark-stringify": "^11.0.0", "semver": "^7.5.1", "slugify": "^1.6.6", "tsx": "^4.6.2", - "unified": "^10.1.2", - "unist-util-visit": "^4.1.2", + "unified": "^11.0.4", + "unist-util-visit": "^5.0.0", "word-wrap": "^1.2.5" } } diff --git a/src/utils/constants.ts b/src/utils/constants.ts index 2ae9733..042e70e 100644 --- a/src/utils/constants.ts +++ b/src/utils/constants.ts @@ -12,6 +12,7 @@ export type OutputFormat = | "epub" | "markdown" | "markdown_separate" + | "markdown_obsidian" | "json"; export type DocType = "LGMRD" | "5e_Monster_Builder"; @@ -29,3 +30,11 @@ export const MARKDOWN_SEPARATE_PATHS: Record = { "markdown_separate_5e_monster_builder" ), }; + +export const MARKDOWN_OBSIDIAN_PATHS: Record = { + LGMRD: MARKDOWN_SEPARATE_PATHS.LGMRD.replace("separate", "obsidian"), + "5e_Monster_Builder": MARKDOWN_SEPARATE_PATHS["5e_Monster_Builder"].replace( + "separate", + "obsidian" + ), +}; diff --git a/src/utils/markdown.ts b/src/utils/markdown.ts new file mode 100644 index 0000000..8de866c --- /dev/null +++ b/src/utils/markdown.ts @@ -0,0 +1,25 @@ +import fs from "fs"; +import path from "path"; + +export function getMarkdownFiles(folder: string): string[] { + return fs + .readdirSync(folder) + .filter((file) => file.endsWith(".md")) + .sort() + .map((file) => path.join(folder, file)); +} + +export function getAndDeletePreviousMarkdown(folder: string): string { + const markdownFiles = getMarkdownFiles(folder); + + return ( + "\n" + + markdownFiles + .map((file) => { + const markdownFileContent = fs.readFileSync(file, "utf8"); + fs.unlinkSync(file); + return markdownFileContent; + }) + .join("\n") + ); +}