I used this project as a way of tagging on some more learning to the Typescript course I'm doing. Whilst not alien to me, this project goes a bit past the scope of what I'm learning. The initial development progress, ideas, structure, theories and API communication is my own, Claude helped out with the Discovery mode, the translation layers (getting game systems in there based off their source code) and a whole bunch of testing.
QuickFire: Touch Deck
Turn a touchscreen (such as a 12.3" bar display under your monitor) into a Stream Deck-style control surface for Foundry VTT v12+ (verified up to v14). Pages of buttons, toggles, sliders and live stat tiles run macros, core Foundry actions and other modules' APIs.
Getting started
- Open QuickFire deck pops the deck out. Drag it onto the touchscreen and go fullscreen.
- Edit QuickFire decks opens the editor. Click a cell to add a control, drag to move, drag the corner to span. Changes appear on the deck as you make them.
Both are in the token controls, and also in the toolbar, the Settings tab and keybindings, so they work with no scene loaded. With no decks of your own you get a read-only Starter deck built from your world. Ready-made example decks (combat, tension, D&D and PF2e rolls) are in the deck dropdown. Decks export and import as JSON, and a GM can share a deck with all players or chosen ones. Oh, and there are 707 drum samples, because why not.
Controls
- Button / toggle: runs an action. A toggle also shows its on/off state.
- Stat tile: a live value (HP with a fill bar, AC, spell slots, Fear…) for the selected token.
- Choice button: a tap opens options built on the spot (spells, skills, saves). It can also ask several questions in turn, e.g. attribute then skill, or journal then page.
- Slider: scene darkness, a sound's volume, master volume.
What's new in 0.2.0
- Six new systems, plus PF2e and WoD 5e now tested (see below)
- Module integrations: Sequencer, Automated Animations, Token Magic FX, Monk's Active Tiles, Monk's TokenBar, FXMaster, Torch, Item Piles, Dice So Nice
- Combat: roll initiative for targets, NPCs or everyone left; add tokens; party-wide buttons
- Journals: show a journal or a single page to yourself, everyone, or one player
- World time: advance it, plus a date and time tile (core calendar or Simple Calendar)
- Play audio for everyone, not just your device
The module id is still quickfire, so your existing decks and settings carry over.
System support
Rolls, item and spell use, conditions and stat tiles act on your selected tokens, or on your character if none is selected.
| System | Status |
|---|---|
| D&D 5e | Tested in V12/13/14 |
| Cyberpunk RED, Call of Cthulhu 7e | Tested in V12/13 |
| LANCER, Pathfinder 1e | Tested in V13 |
| WFRP 4e, Daggerheart, Savage Worlds AE | Tested in V14 |
| Pathfinder 2e, Starfinder 2e, World of Darkness 5e | Tested |
Other systems get the core actions and module function calls. Want your system added, or you're a module author after deeper integration? Open a ticket on the GitLab repo or find me on Discord.
Permissions
Every action runs as the user who taps it, so Foundry's own permissions apply. QuickFire only hides things: GM-only actions from players, and advanced actions (inline scripts, module function calls) unless the GM allows them.
AI Disclaimer
I built this project to stretch the TypeScript course I'm doing. The idea, structure, design, API communication and general development are me and my own. Claude helped with Discovery mode, the system translation layers (built from each system's source code) and a lot of testing.