Foundry VTT module for WoD20 house rules, compatibility fixes, and Mage Focus Selector.
  • JavaScript 88.3%
  • Handlebars 7.8%
  • CSS 3.9%
Find a file
2026-05-10 19:44:28 -04:00
dist Show character creator issues inline 2026-05-10 19:44:28 -04:00
lang Add Mage character creator 2026-05-10 17:30:25 -04:00
scripts Show character creator issues inline 2026-05-10 19:44:28 -04:00
styles Show character creator issues inline 2026-05-10 19:44:28 -04:00
templates/dialogs Show character creator issues inline 2026-05-10 19:44:28 -04:00
.gitignore Initial Foundry module import 2026-05-09 19:05:29 -04:00
module.json Show character creator issues inline 2026-05-10 19:44:28 -04:00
README.md Add Mage character creator 2026-05-10 17:30:25 -04:00

WoD20 House Rules and Fixes

A Foundry VTT module for the World of Darkness system that keeps Blair's local changes out of the system folder so system updates do not wipe them.

Included changes

  • Adds Pop the Die (beginner's luck) to Rolling dices rules -> 10s explode handling.
  • Implements Pop the Die for rolls using an Ability at 0 dots with no Ability specialty/specialization text.
  • Prevents popped 1s from subtracting successes or causing botches.
  • Adds a roll-info note when Pop the Die applies.
  • Adds a global flattenObject compatibility shim for older settings forms.
  • Guards game.i18n.localize(undefined) so settings dialogs with missing hints do not fail to render.
  • Replaces the older Mage Focus Selector workflow with a Prism of Focus character-creation builder.
  • Adds a full interactive Mage Character Creator for M20 character generation using Prism of Focus instead of the core Paradigm / Practice / Instrument purchase.
  • Enables the Mage Prism Focus Builder on generic PC sheets after the Mage [modern] Splat template is applied, even though those sheets do not render the legacy Mage Focus partial.
  • Adds a Hit Location helper for optional targeted damage rules.

Mage Character Creator

The full creator appears on Mage sheets and on generic PC sheets after the Mage modern splat template is applied. It is intentionally implemented as a module-side workflow, so it does not edit systems/worldofdarkness.

The creator covers:

  • Concept, Nature, Demeanor, Essence, faction/sect, and Affinity Sphere.
  • Attribute priority allocation at 7 / 5 / 3 after the automatic first dot.
  • Ability priority allocation at 13 / 9 / 5 with warnings when a starting Ability is pushed past 3 before freebies.
  • Background allocation at 7 points, including double-cost handling for Enhancement, Sanctum / Laboratory, and Totem.
  • Prism of Focus Tenets and rated Practice dots. The core book's separate seven-Instrument character-creation requirement is not used because Prism of Focus replaces that part of Focus creation.
  • Spheres, Arete, Willpower, Quintessence, Paradox, Merit cost, Flaw bonus, and freebie-point tracking.

Saving writes directly to the World of Darkness system fields where they exist:

  • Attributes: system.attributes.<trait>.value and matching totals.
  • Abilities: system.abilities.<ability>.value, with selected Abilities made visible.
  • Spheres: system.spheres.<sphere>.value.
  • Mage traits: system.advantages.arete, system.advantages.willpower, system.quintessence, and system.paradox.
  • Mage identity fields on both legacy Mage actors and generic PC actors where the relevant schema exists.
  • Backgrounds are created as Feature items of type wod.types.background. Backgrounds generated by the creator are replaced on the next save, while hand-created Backgrounds are left alone.
  • Prism focus data is written to system.focus.* on legacy Mage sheets and system.bio.splatfields.* on generic PC Mage sheets.

The structured creator state is stored as an actor flag at:

flags.wod20-house-rules.mageCharacterCreator

Mage Prism Focus Builder

The builder is added directly to Mage actor sheets in the existing Focus section on the Bio tab. It also appears on generic PC character sheets after the Mage [modern] Splat template has been applied.

It now follows the character-creation overhaul from Prism of Focus instead of the older workbook-style Faction -> Paradigm -> Practice -> Instrument flow. The workflow is:

  1. Choose an Affiliation.
  2. Optionally choose a sample Paradigm template and apply its Tenets.
  3. Choose one required Metaphysical Tenet.
  4. Choose one required Personal Tenet.
  5. Choose one required Ascension Tenet.
  6. Optionally choose additional Tenets such as Social Role, Epistemology, Openness, and After Life.
  7. Set Arete and assign rated Practice dots, with the helper tracking the rule that character creation grants one Practice dot per dot of Arete.

The builder marks Practices as Associated, Limited, Mixed, or Neutral based on the selected Tenets. It also includes Prism of Focus specialized Practices such as Ceremonial Magick, The Scene, Ethertech, Reality Coding, Hypereconomics, and other faction specialties. A faction's specialized Practice is marked as associated for that faction.

Saving writes a readable version of the final choices into the actor's existing fields:

  • system.focus.paradigm receives the Tenet structure.
  • system.focus.practice receives rated Practices with dot ratings.
  • system.focus.instruments receives common Instrument guidance from the selected Practices, since Prism of Focus treats Instruments as Practice and rote expressions rather than a separate character-creation step.

Where present on generic PC sheets, the same values are also written to the corresponding system.bio.splatfields fields.

The structured selection is stored as an actor flag at:

flags.wod20-house-rules.mageFocusSelector

Install

Use this manifest URL in Foundry:

https://git.blairtech.org/varian/wod20-house-rules/raw/branch/main/module.json

Or install manually by downloading the release zip and copying the extracted module folder into:

FoundryVTT/Data/modules/wod20-house-rules

Development

Copy this folder into:

FoundryVTT/Data/modules/wod20-house-rules

Then enable WoD20 House Rules and Fixes in your world.

Notes

This module avoids editing systems/worldofdarkness. It patches runtime behavior and injects the selector into Mage actor sheets when the sheet renders.

Hit Location Helper

Actor sheets include a Hit Location button. You can also type /hitloc in chat to roll a random location, or /hitloc head-neck, /hitloc arms-hands, /hitloc chest-torso, /hitloc vitals, /hitloc legs-feet, /hitloc heart, or /hitloc eyes to post an aimed target reference.