Mossroot
A homebrew fey forest-spirit that tends the deep stands of Witchwood outside the Mossfoot. Locals describe it as "a stump that walks when no one is watching." It is patient, jealous, and very, very good at hearing footsteps.
This page demonstrates all three of: blank-doc foundry.base, the
`statblock` handler, and `fm:` pulling from frontmatter.
The block below reads cr, AC, and HP straight out of the foundry.data
block, so the wiki render and the synced Foundry actor sheet share one
source of truth.
Statblock
Medium fey neutral
Armor Class 14
Hit Points 45 (7d8 + 14)
Speed 30 ft., burrow 10 ft.
Saving Throws Con +4, Wis +4
Skills Perception +4, Stealth +5
Damage Resistances bludgeoning, piercing, slashing from nonmagical attacks not made with cold iron
Damage Immunities poison
Condition Immunities charmed, exhaustion, poisoned
Senses darkvision 60 ft., tremorsense 60 ft., passive Perception 14
Languages Sylvan, understands Common
Challenge 3
False Appearance. While Mossroot remains motionless, it is indistinguishable from a moss-covered stump.
Forest Camouflage. Mossroot has advantage on Dexterity (Stealth) checks made to hide in forest terrain.
Actions
Multiattack. Mossroot makes two slam attacks.
Slam. Melee Weapon Attack: +5 to hit, reach 5 ft., one target. Hit: bludgeoning damage.
Tangling Roots (Recharge 5-6). Roots erupt in a 15-foot square centered on a point Mossroot can see within 30 feet. Each creature in that area must succeed on a DC 13 Dexterity saving throw or take bludgeoning damage and be restrained until the end of Mossroot's next turn.
How this page works
The frontmatter declares a blank Foundry NPC actor (no compendium template):
foundry:
base: Actor:npc
data:
system:
attributes:
hp: { value: 45, max: 45 }
ac: { flat: 14 }
movement: { walk: 30, burrow: 10 }
details:
cr: 3
type: { value: fey }
The statblock above pulls AC, HP, speeds, and CR from that same foundry.data subtree via `fm: foundry.data.system.attributes.ac.flat` etc. Change the value in one place; both the wiki render and the synced Foundry actor sheet update on the next push. Damage rolls in actions are clickable buttons. Everywhere else the inline-handler dispatcher chains naturally because every string field in the statblock YAML is tokenized before render.
See Handlers, Statblocks, and Foundry integration for the underlying mechanics.