$37
Virtual tabletop platform for TTRPGs. Node.js server, WebSocket-based, extensible via modules and game systems. Current version: v13.
mymodule/
├── module.json # Package manifest (required)
├── scripts/
│ └── main.mjs # Entry point (esmodules)
├── templates/ # Handlebars .hbs files
├── styles/ # CSS files
├── packs/ # Compendium data
└── lang/
└── en.json # Localization
Minimal module.json:
{
"id": "my-module",
"title": "My Module",
"version": "1.0.0",
"compatibility": { "minimum": 12, "verified": "13" },
"esmodules": ["scripts/main.mjs"],
"styles": ["styles/module.css"]
}
Entry point pattern:
Hooks.once("init", () => {
console.log("Module initializing");
game.settings.register("my-module", "mySetting", {
name: "My Setting",
scope: "world", // "world" or "client"
config: true, // show in settings UI
type: Boolean,
default: false
});
});
Hooks.once("ready", () => {
console.log("Module ready");
});
| Library | Purpose |
|---|---|
| Handlebars | HTML templating for Application UIs |
| PixiJS | Canvas rendering (lighting, tokens, drawings) |
| jQuery | DOM manipulation (legacy, being phased out) |
| GreenSock (GSAP) | SVG/WebGL animation |
| ProseMirror | Rich text editing (v12+) |
| Tool | Purpose |
|---|---|
| Vite | Build tool with HMR, serves dev builds through Foundry |
TypeScript + @league-of-foundry-developers/foundry-vtt-types | Type safety |
| Svelte + TyphonJS Runtime Library (TRL) | Reactive UI components |
| libWrapper | Safe method patching without conflicts |
| socketlib | Simplified socket communication abstraction |
| Quench | In-Foundry test runner (Mocha + Chai + fast-check) |
| Foundry DevMode | Developer tools module by League of Foundry Developers |
| Rollup/Webpack | Alternative bundlers |
| File | Content |
|---|---|
references/modules/manifest.md | module.json and system.json manifest fields, package structure |
references/modules/documents-hooks.md | Document model, hooks system, lifecycle events |
references/modules/sheets-templates.md | ActorSheet/ItemSheet, ApplicationV2, Handlebars templates |
references/modules/data-models.md | TypeDataModel schemas, field types, migration |
references/modules/libraries.md | libWrapper, socketlib, Vite setup, Svelte/TS integration |
references/deployment/k3s.md | K3s/Kubernetes deployment, Helm charts, PVC, ingress |
references/deployment/docker.md | felddy/foundryvtt-docker env vars, compose, configuration |
references/testing/quench.md | Quench test framework, test batches, Mocha/Chai patterns |
references/testing/ci-testing.md | CI/CD, Jest/Vitest outside Foundry, test scenarios |
references/systems/wfrp4e.md | WFRP4e system: game.wfrp4e API, actor/item types, effects triggers, custom species, world scripts |
k3s skill for cluster setup before deploying Foundrytraefik skill for IngressRoute with WebSocket middlewarerook-ceph skill for persistent storage backing Foundry dataargocd skill for deploying Foundry via ApplicationSetshelm skill for chart customization and values management