Jordancole21's picture
Deploy native Gradio SEO page and tool
7e2c39a verified
Raw
History Blame Contribute Delete
10.6 kB
"""Page copy: how-to, article sections, example, methodology, FAQs. One H1 lives in the hero."""
HOW_TO_HTML = """
<p>This free <strong>DnD statblock generator</strong> takes a creature you already
have in mind β€” a single sentence, a half-finished homebrew, or three pages of messy
notes β€” and formats it into a clean, rules-ready D&amp;D 5e stat block. You bring
the concept; it arranges the numbers, the layout, and the rules language. It does
not invent a monster for you, pad the result with lore paragraphs, or tell you how
to run the fight: the output is the stat block, formatted the way the official
books print them. Everything runs right on this page, free, with no signup.</p>
<ol>
<li><strong>Paste your concept or notes.</strong> "A knight cursed to rust, still
guarding the vault door he died defending" is plenty. So is a wall of rough
homebrew text with mechanics you've already half-decided β€” the generator keeps
what you wrote and formats around it.</li>
<li><strong>Set the frame (optional).</strong> Pick a target challenge rating,
size, and creature type if you know them, tick the box if you want legendary
actions, and add any specific mechanical requests β€” "give it a fear aura," "make
the breath weapon recharge 5-6." Blanks are inferred from your concept. Surprise
Me rolls the frame for you; your concept always stays yours.</li>
<li><strong>Format.</strong> You get the classic layout: identity line, AC, hit
points with the dice formula, speed, ability scores, saves, defenses, senses,
challenge line, then named traits and actions in rules language.</li>
<li><strong>Copy or download.</strong> One click puts the Markdown on your
clipboard or saves a .md file for Obsidian, Notion, your VTT, or printed prep.</li>
</ol>
"""
FORMATS_HTML = """
<p>The output follows the reading conventions every 5e stat block shares, so
anyone at your table can pick it up cold. Here is each piece and how to read it:</p>
<ul>
<li><strong>Name and identity line</strong> β€” the creature's name, then its size,
type, and alignment in italics, exactly where the official books put them.</li>
<li><strong>Armor Class</strong> β€” the number to beat, with the source of the AC
(natural armor, rusted plate, and so on) in parentheses.</li>
<li><strong>Hit Points</strong> β€” the average total plus the dice formula, like
"119 (14d8 + 56)", so you can take the average or roll for a swingier fight.</li>
<li><strong>Speed</strong> β€” walking speed first, then any swim, fly, climb, or
burrow speeds.</li>
<li><strong>Ability scores</strong> β€” all six scores with their modifiers already
computed, because ability checks and contested rolls start here.</li>
<li><strong>Saves and skills</strong> β€” only the saving throws and skills where
the creature is proficient; anything unlisted uses the bare ability modifier.</li>
<li><strong>Defenses</strong> β€” damage resistances, immunities, vulnerabilities,
and condition immunities, spelled out so there is no mid-round ruling to make.</li>
<li><strong>Senses and languages</strong> β€” darkvision and other senses, passive
Perception (the number that decides whether an ambush works), then languages.</li>
<li><strong>Challenge line</strong> β€” CR, XP value, and proficiency bonus together,
which is everything encounter budgeting needs.</li>
<li><strong>Traits</strong> β€” one to four named passive abilities in "Name. Rules
text." form, the same convention as every published block.</li>
<li><strong>Actions</strong> β€” two to five named actions, with Multiattack listed
first when the creature makes several attacks on its turn.</li>
<li><strong>Bonus Actions &amp; Reactions and Legendary Actions</strong> β€” printed
only when the creature actually has them; a block without them stays short, the
way official stat blocks do.</li>
</ul>
<p>What you will not find: lore paragraphs, tactics advice, or loot tables. Those
belong to your notes and your prep β€” this page keeps the stat block a stat block.</p>
"""
EXAMPLE_INTRO_HTML = """
<p>Here is a complete, unedited output from this generator. The concept given was
"a knight cursed to rust, still guarding the vault door he died defending", with
CR 6, Medium, Construct, legendary actions unchecked, and no extra requests.</p>
"""
METHODOLOGY_HTML = """
<p>Formatting is more than layout β€” a stat block is only rules-ready if its
numbers agree with each other. When this <strong>dnd statblock generator</strong>
formats your concept, it holds the result to the same consistency rules a careful
designer would:</p>
<ul>
<li><strong>CR-band numbers.</strong> Armor class, hit points, attack bonus, save
DCs, and damage per round all land inside the expected band for the target CR,
following the Dungeon Master's Guide monster-building guidance. The CR 6 example
above shows the shape: AC 16, 119 hit points, +7 to hit, DC 15, 2,300 XP.</li>
<li><strong>Hit-dice math that adds up.</strong> The dice formula genuinely
averages to the stated total β€” 14d8 averages 63, plus 56 from a +4 Constitution
modifier across 14 hit dice, equals 119. Blocks where the formula and the total
disagree are the most common homebrew formatting error, and the generator
refuses to produce them.</li>
<li><strong>Derived bonuses.</strong> Every attack bonus and save DC in the traits
and actions follows from the printed ability scores plus the proficiency bonus in
the challenge line, so nothing in the block contradicts anything else.</li>
<li><strong>Your numbers win.</strong> If your notes already chose mechanics or
values, the generator keeps them and formats around them, correcting only
figures that are internally impossible.</li>
</ul>
<p>When should you hand-tune the result? After the first round or two of play,
like any designer: if the party shreds the creature, add hit points; if a save DC
is ending turns too reliably, drop it by one. And because CR has always been an
estimate, cross-check any block that anchors a whole session with the
<a href="https://huggingface.co/spaces/Jordancole21/dnd-challenge-rating-calculator">D&amp;D
Challenge Rating Calculator</a> β€” feed it the finished numbers and it tells you
what CR the block actually plays at, independent of what the label says.</p>
"""
FAQS = [
(
"How do you write a D&D 5e stat block?",
"Follow the official reading order: name, then an italic line with size, "
"type, and alignment; then Armor Class, Hit Points with a dice formula, "
"and Speed; then the six ability scores with modifiers; then saves, "
"skills, defenses, senses, languages, and the challenge line; and finally "
"named traits and actions written as \"Name. Rules text.\" The hard part "
"is keeping the numbers consistent β€” the dice must average to the hit "
"point total, and every attack bonus and DC must derive from the ability "
"scores and proficiency bonus. This generator applies that whole format "
"to the concept you bring.",
),
(
"What goes in a stat block?",
"Everything a DM needs to run the creature mechanically, and nothing "
"else: identity line, AC, hit points, speed, ability scores, "
"proficiencies, defenses, senses, languages, challenge rating, traits, "
"and actions β€” plus bonus actions, reactions, and legendary actions only "
"when the creature has them. Lore, tactics, and treasure live outside the "
"block in your prep notes, which is why this tool deliberately leaves "
"them out.",
),
(
"How is this different from the D&D Monster Builder?",
"Direction. This page formats a creature YOU already have: you bring the "
"concept or rough homebrew notes, and it returns a clean stat block β€” "
"nothing more. The <a href=\"https://huggingface.co/spaces/Jordancole21/"
"dnd-monster-builder\">D&D Monster Builder</a> invents the entire monster "
"from scratch: concept, lore, mechanics, DM tactics, and loot, even from "
"a blank form. Use the builder when you want ideas; use this generator "
"when you have the idea and need it in rules-ready form.",
),
(
"Can I paste my existing homebrew notes?",
"Yes β€” that is the main use case. Paste the whole mess: half-written "
"abilities, damage numbers you already picked, flavor fragments. The "
"generator treats your notes as the source of truth, keeps the mechanics "
"and names you chose, fills only the gaps, and fixes a number only when "
"it is internally impossible (a dice formula that doesn't average to the "
"stated hit points, a DC that no ability score could produce).",
),
(
"How do I know the CR is right?",
"Treat the printed CR as a claim to verify. Run the finished block "
"through the <a href=\"https://huggingface.co/spaces/Jordancole21/"
"dnd-challenge-rating-calculator\">D&D Challenge Rating Calculator</a>: "
"give it the AC, hit points, attack bonus, and damage, and it computes "
"the defensive and offensive CR and the final rating. If that lands a "
"step away from your target, nudge hit points or damage rather than "
"rewriting the whole block.",
),
(
"Can it format legendary monsters?",
"Yes β€” tick the \"Include legendary actions\" box and the block gains a "
"Legendary Actions section with uses per round and the action options, "
"formatted the way official solo bosses print them. Leave the box "
"unchecked and the section is omitted entirely, so ordinary creatures "
"stay clean. If your notes already describe legendary mechanics, check "
"the box and paste them; they will be kept and formatted.",
),
(
"Does it work with the 2024 (5.5e) rules?",
"Yes. The layout here β€” identity line, AC, hit points with dice formula, "
"ability scores, then traits and actions β€” reads correctly under both "
"the 2014 rules and the 2024 revision, and stat blocks are broadly "
"interchangeable between them. If your table runs the 2024 rules, note "
"that its official monsters trend a little stronger at a given CR, so "
"lean toward the tougher end of the band when you verify the numbers.",
),
(
"Do I need an account or payment to use this?",
"No. The generator is free, runs directly on this page, and requires no "
"signup. There is a fair-use hourly limit per visitor so the tool stays "
"available for everyone.",
),
]