| """Page copy: how-to, article sections, example intro, FAQs. One H1 lives in the hero.""" |
|
|
| HOW_TO_HTML = """ |
| <p>This free <strong>DnD random encounter generator</strong> rolls one complete, |
| ready-to-run scene β not a line from a d100 table, and not a multi-scene quest. Every |
| result is a single encounter with everything a Dungeon Master needs to run it cold: a |
| setup you can nearly read aloud, creatures with counts and named SRD stat blocks, a |
| motivation, tactical terrain, a mid-scene complication, scaling notes, and what the |
| party gets out of winning, talking, or running. It works for 5e and the 2024 rules, |
| runs right on this page, and needs no signup.</p> |
| <ol> |
| <li><strong>Pick an environment, or don't.</strong> Forest, swamp, Underdark, urban |
| streets, open sea β or type your own. Every field is optional; blanks become creative |
| freedom.</li> |
| <li><strong>Tell it about the party.</strong> Level and size shape the composition: |
| the generator picks creature counts that make sense for four level-3 adventurers |
| instead of handing them a lich. Difficulty feel sets the stakes from Easy to |
| Deadly.</li> |
| <li><strong>Choose a flavor, or let it roll.</strong> Combat, Social, Exploration, or |
| Mixed β leave it blank and the generator picks what fits the environment and time of |
| day. Night on a graveyard road and noon in a market district want different kinds of |
| trouble.</li> |
| <li><strong>Roll, then run it.</strong> You get a structured encounter sheet, not a |
| wall of prose. Copy the Markdown into your prep notes or download the file, and hit |
| Roll Again until the scene feels right. The Surprise Me button rolls the environment, |
| level, flavor, and time of day for you.</li> |
| </ol> |
| """ |
|
|
| INCLUDES_HTML = """ |
| <p>A d100 table gives you "2d4 wolves." That was never the hard part. The hard part is |
| the thirty seconds after the roll, when you have to know why the wolves are here, what |
| the ground looks like, and what happens when the ranger tries to talk to them. Every |
| encounter this tool rolls includes the fields that survive contact with a party:</p> |
| <ul> |
| <li><strong>A title and encounter type</strong> β "Combat β ambush," "Social β tense |
| parley" β so you know the shape of the scene before you read a word of it.</li> |
| <li><strong>The setup</strong>: two to four sentences of what the party perceives |
| first, written to be nearly read aloud, plus the cue only you should know.</li> |
| <li><strong>Composition with counts and stat blocks.</strong> Not "some bandits" but |
| "3 bandits (Bandit) led by a veteran (Veteran)" β every creature named to an SRD stat |
| block, in numbers sane for your party's level, size, and the difficulty you asked |
| for.</li> |
| <li><strong>Motivation.</strong> This is what separates a rolled encounter from a |
| random one: why these creatures are here, now, doing this. Random placement is fine; |
| random purpose reads as filler, and your players can tell.</li> |
| <li><strong>Terrain and features</strong> β two or three tactical details the fight or |
| conversation can actually use: the rotten planks, the screaming fungus, the water |
| that swallows dropped torches.</li> |
| <li><strong>A complication</strong> that lands mid-scene, after the plan is already in |
| motion, so the encounter has a second act instead of a slog to zero hit points.</li> |
| <li><strong>Scaling notes</strong> β one line to soften it, one line to sharpen it, |
| because the generator can't know your table had two absences and a bad long |
| rest.</li> |
| <li><strong>Outcome and treasure</strong> for every exit: what winning yields, what |
| negotiating yields, and what fleeing costs. Not every encounter ends in a body |
| count.</li> |
| <li><strong>A follow-up hook</strong> β one loose thread small enough to ignore and |
| sharp enough to become next month's session if your players tug it.</li> |
| </ul> |
| """ |
|
|
| EXAMPLE_INTRO_HTML = """ |
| <p>Here is a complete, unedited output from this generator. The inputs were: |
| environment Forest, party level 3, party size 4, difficulty Medium, time of day |
| Night β flavor left blank, so the generator chose.</p> |
| """ |
|
|
| CRAFT_HTML = """ |
| <p>Random encounters get a bad reputation because so many of them are run as speed |
| bumps: roll, fight, loot, resume the real game. A rolled encounter becomes a real |
| scene with a few habits:</p> |
| <ul> |
| <li><strong>Tie the motivation to the region.</strong> The generator gives every |
| encounter a reason to exist; your job is to wire that reason into your map. If the |
| wisps herd travelers for a hag, the hag has been here for years β which means the |
| nearest village has a rule about lights in the bog, and now your world is deeper for |
| one die roll. When a motivation names a faction or a trade, make it one your campaign |
| already has.</li> |
| <li><strong>Let the complication interact with the terrain.</strong> The complication |
| and the terrain features are written to be combined. The drowning merchant is a |
| problem; the drowning merchant on the far side of the shrieker ring is a decision. |
| When the wrinkle lands, ask yourself which terrain feature makes it worse, and put it |
| there.</li> |
| <li><strong>Know when to skip one.</strong> A random encounter is a tool, not an |
| obligation. If the party is racing a deadline or the table is one scene from the |
| session's emotional payoff, take the follow-up hook, drop the rest, and let them see |
| the wisp-lights in the distance without stopping. An encounter glimpsed and avoided |
| still makes the world feel inhabited β often more than a fight would.</li> |
| <li><strong>Use encounters as pacing valves.</strong> The best DMs roll encounters |
| when the game needs a change of pressure, not when the rules say a die demands it. |
| Three sessions of dungeon tension? An Easy social encounter on the road home lets the |
| table breathe. A travel montage going flat? A Hard night ambush wakes everyone up. |
| The difficulty-feel setting exists so you can pick the pressure on purpose.</li> |
| </ul> |
| """ |
|
|
| FAQS = [ |
| ( |
| "How do random encounters work in 5e?", |
| "Traditionally the DM rolls periodically during travel or rest β often once " |
| "per travel day or watch, on a d20 or a regional table β and a triggered " |
| "result means something finds the party. The rules leave the content of that " |
| "something almost entirely to the DM. This generator replaces the flat table " |
| "lookup with a complete scene: instead of \"1d6 giant spiders,\" you get the " |
| "setup, the counts, the reason they're hunting here, and what the fight or " |
| "parley actually looks like.", |
| ), |
| ( |
| "How many random encounters should there be per travel day?", |
| "For most tables, zero to two. One meaningful encounter per travel day keeps " |
| "journeys dangerous without turning them into a grind; long or dangerous " |
| "routes might check morning, evening, and one night watch. If a day rolls " |
| "more than two, keep the best one and turn the rest into signs β tracks, " |
| "smoke, distant lights β that make the survivor feel inevitable.", |
| ), |
| ( |
| "How do I balance a random encounter for my party?", |
| "Tell the generator your party's level, size, and the difficulty feel you " |
| "want, and the composition comes out with counts that respect encounter-" |
| "building math β action economy included. Every result also carries scaling " |
| "notes: one line to make it easier, one to make it harder, for the night " |
| "half your table cancels. If you want to design and tune a specific fight " |
| "against exact XP budgets, that's an encounter builder's job β a different " |
| "tool for a different moment in prep. This one hands you a finished scene.", |
| ), |
| ( |
| "Aren't random encounters outdated DM practice?", |
| "The criticism is fair when it's aimed at the old style: random fights with " |
| "no purpose that eat an hour and change nothing. Modern practice hasn't " |
| "abandoned random encounters, though β it has repurposed them as texture and " |
| "pacing. An encounter with a motivation, stakes, and a follow-up hook isn't " |
| "filler; it's the world acting on its own schedule instead of the plot's. " |
| "Roll them less often, make each one mean something, and skip freely β a " |
| "generator that includes motivation by default makes that style cheap.", |
| ), |
| ( |
| "Can I get social or exploration encounters, not just combat?", |
| "Yes β set the encounter flavor to Social, Exploration, or Mixed. A social " |
| "result might be a tense parley with a toll-taking patrol; an exploration " |
| "result might be a hazard with a choice buried in it. Every non-combat " |
| "encounter still includes stat blocks and terrain, because the defining " |
| "feature of a social encounter in D&D is that it can stop being one.", |
| ), |
| ( |
| "What stat blocks does the generator reference?", |
| "Only SRD-named stat blocks β Bandit, Veteran, Green Hag, Will-o'-Wisp, " |
| "Ghoul, Spy, and the rest of the open-license roster β each with a count, " |
| "so any core-rules table can run the result without conversion. Creatures " |
| "get creative names and dressing on top (\"a bog hag β use Green Hag\"), " |
| "but the mechanical anchor is always a block you already own.", |
| ), |
| ( |
| "How is this different from the quest generator?", |
| "Scope. This tool generates one scene: a single encounter in a single place " |
| "at a single moment, run-and-done in part of a session. Our quest generator " |
| "builds a multi-scene arc β hook, escalating middle, climax β that spans " |
| "sessions. They chain nicely: a random encounter's follow-up hook is exactly " |
| "the kind of thread a quest generator can grow into an arc.", |
| ), |
| ( |
| "Does it work with the 2024 rules?", |
| "Yes. Encounters are described in system-light prose, and the SRD stat " |
| "blocks it references exist in both the 2014 and 2024 cores β where a block " |
| "was revised, use your table's version and nothing else changes. Encounter " |
| "difficulty intuition shifted slightly in the 2024 DMG, so trust the " |
| "difficulty feel you selected and the scaling notes over any older XP " |
| "arithmetic.", |
| ), |
| ] |
|
|