Splash turns Foundry journal pages into interactive, fullscreen handouts: hide scene changes behind splash screens, build clickable puzzles, run table-wide votes, and branch between story screens — all from a visual editor, no code required.
Splash is meant to be authored visually and to behave predictably. You lay objects out on a canvas, give them states and actions, and the runtime drives them the same way whether it renders through WebGL or plain DOM. First-party and third-party content register through the same API, so the editor never special-cases the built-ins.
Create a journal page of type Splash and open the visual editor. Drop in objects — text, images, buttons, gauges, hotspots, draggable pieces, drop zones — then wire them with states and actions (set a value, change state, run a macro, cast a vote, run an inline script). Launch the result directly, from a scene region, or on door interaction.
- Visual, state-machine-driven editor — lay out objects, define per-state placement, preview live
- A full object set: text, image, button, panel, gauge, video, hotspot, text input, draggable pieces, drop zones
- Actions: set/increment runtime values, change state (with conditions), run a Macro, inline scripts, table-wide votes, close
- Triggers: launch from a scene region or a door, fire from a macro, or pin to scenes
- Transitions: dissolve, glitch, and pixelate animate objects in and out
- WebGL effects: glitch, pixelate, CRT curvature, and scanlines, built from composable shared shader blocks
- Layers: fullscreen (scene / hud / full) or a windowed handout
- Local or synced playback, with GM-driven shared state and live vote tallies
- Renderer-agnostic runtime (WebGL or DOM) with graceful degradation
- OBS Utils aware: spectator clients mirror handout state
- Reusable presets
Targets Foundry VTT v13, maximum v14.
Translations are managed on Void Monster Translations. Contributions are invitation-only.
- Contact me on Discord or by email. Tell me which languages you speak fluently and confirm in writing that you will only submit translations you manually write or personally review in full.
- I'll invite you to Weblate with translation and review access for those confirmed languages.
- Accept the Translation Contributor Agreement in Weblate, then translate or review existing strings. Only approve strings you have personally reviewed.
Only approved translations are submitted to the repositories. You can help bring back existing community translations by reviewing them.
New languages also need an entry in module.json before they can be used in Foundry.
Only Node.js and Yarn are required.
| Project | Version |
|---|---|
| nodejs.org | ^20.0.0 |
| yarnpkg.com | ^4.0.0 |
Install dependencies.
yarn install
Build the module into dist/.
yarn build
Run the Vite dev server, proxying a local Foundry on :30000.
yarn dev
Run the unit and end-to-end suites.
yarn test:unit
yarn test:e2e
Symlink the project into your Foundry data directory.
yarn linkFoundry
The current source and future public and early-access releases use the Void Monster Module Licence v1.0. Earlier releases retain the licences distributed with them.
Please read CONTRIBUTING.md and accept the Code Contributor Agreement v1.0 before submitting code.
