Quick start
- Open SAGA, type your name and the class password (ask your instructor).
- Host creates a room. Everyone else joins with the room code or the invite link.
- Load your kit from Kit Forge: drag the
.kittable.jsononto the table. A LOL, FIGHT TIEM! deck from Card Forge works too: drag its.lftdeck.json(Send to playtest). - Play. Everyone sees every move live.
Adding things to the table
| π¦ Load kitβ¦ | A .kittable.json from Kit Forge's Send to Table or Export ZIP, or a .lftdeck.json from Card Forge's Send to playtest. |
| πΌοΈ Add imageβ¦ | Any PNG/JPG/WebP becomes a piece. Fastest way to test one idea. A big photo (over 2048 px or 1.5 MB; 4096 px for table and background images) is shrunk first so it loads fast for everyone β SAGA asks, and you can keep the original if it's under 8 MB. |
| π§ Add 3D modelβ¦ | A .glb, .obj or .stl. See File formatsAnimated3D models. |
| π¨ Table look β Background | Space, nebula and gradient presets, your own gradient or image, plus a Wave or Kaleidoscope effect. Atmosphere adds fog, desert dust, rain, snow or embers with a strength slider. Everyone sees the same look. |
| Markers & notes | +1, β1, DMG, STATUS, custom labels, notes, and dice. |
| Drag & drop | Drop any of the files above anywhere on the page. |
Clear table is host-only.
Mouse & keyboard
| Left-drag a piece | Move it. Shift+click adds to a selection. |
| Shift+drag empty table | Draw a box to select every piece inside it, added to what's already selected. Ctrl+drag (β on Mac) does the same but can start on top of a piece. A plain drag on the table does nothing. Cards sitting on a board don't pick up the board. Ctrl+A selects everything. |
| Right-click a piece | Piece menu (flip, rotate, tap, deleteβ¦). With several selected: shuffle or gather them into one stack, or turn them all face up / face down. 3D models: stand upright, upside down, on their side or front. |
| Right-click the table | Table menu and shortcut list. |
| Party panel β / + | Change anyone's points. Tap the number to type it. Tables start with one counter. οΌ adds one with your own name (up to 6), β removes the last one (down to none). Tap a counter name to rename it. |
| Right-drag the table / wheel | Orbit / zoom the camera. Hold Space to pan over pieces. |
| ? | Show every shortcut |
| F | Flip |
| Shift+F | Turn everything selected face down (press again: all face up) |
| Q / E | Rotate left / right |
| Shift+Q / E | Turn 15Β° (good for 3D models) |
| A | Turn around (180Β°) |
| C | Clone |
| + / β | Bigger / smaller |
| T | Tap (turn sideways) |
| R | Shuffle β the stack under the pointer, or several selected pieces into one stack |
| G | Gather the selected pieces into one stack (no shuffle) |
| U / Shift+U | 3D model upside down or on its side? Stand it upright (steps through all 6 sides) |
| 1 β 6 | 3D model: 1 upright, 2 upside down, 3 face down, 4 face up, 5 on its left side, 6 on its right side. Also in the right-click menu under "Tip it overβ¦". |
| Delete | Delete selected |
| Esc | Deselect |
| N | New note |
| L | Open / close the log |
| H | Hide / show all panels |
| π Log (bottom left) | Everything that happens at the table: flips, shuffles, dice rolls (with the die and number), point changes, who joined. Folded, it still shows the latest line. |
Touch (tablets & phones)
| One finger on a piece | Move it. The camera locks while you hold it β for you only. |
| Double-tap a piece | Flip it. |
| Hold one finger still, then drag | Select several pieces: after a short buzz, dragging draws a box around them instead of turning the camera. Tap empty table to deselect. |
| β¬ button (bottom of the screen) | Select mode: one finger draws a box around pieces instead of turning the camera. Tap it again to go back. |
| Hold a piece + twist a second finger | Rotate it (each twist step = one turn). |
| Long-press (most Android devices) | Piece menu. |
| One finger on the table | Orbit. Two fingers: pan and pinch-zoom. |
Dice & tokens
Dice: D6 (numbers or dots), D4, D8, D10, D12, D20. Everyone sees the same result.
| Click / tap | Roll in place. |
| Shake | Hold it and wiggle back and forth, then let go β it rolls. |
| Flick / throw | Drag fast and release. It slides, tumbles and bounces off the rim. |
DMG, STATUS and custom tokens can be thrown too β they flip like a coin.
File formats
| What | Use | Not accepted |
|---|---|---|
| Kits | .kittable.json (Kit Forge β Send to Table, or inside its Export ZIP) or .lftdeck.json (Card Forge β Send to playtest) | The .zip itself β unzip it first |
| Images | PNG, JPG, WebP (up to 8 MB) | PSD, PDF, SVG β make those in Kit Forge instead |
| Animated | GIF β up to 8 MB, 300 frames, 20 seconds, 1024 px WebM / MP4 clips β up to 10 MB, 10 seconds, 1280 px (720p). Silent, loop forever. | Longer or bigger files β SAGA explains how to trim them |
| 3D models | .glb β keeps colors & textures.obj + its .mtl + images (or a .zip of them) β keeps textures.obj alone / .stl β quick, shape only (one plain color) | .blend, .gltf, .fbx, .dae, .usdz β export them as .glb |
Animated pieces (GIF, WebM, MP4)
Drop a GIF or a short clip on the table (or πΌοΈ Add imageβ¦) and it plays on the piece for everyone, looping, with no sound.
| Format | Limits | Transparency |
|---|---|---|
| GIF | 8 MB Β· 300 frames Β· 20 s Β· 1024 px | Yes, everywhere |
| WebM (VP9) | 10 MB Β· 10 s Β· 1280 px | Yes on Chrome, Edge, Firefox. iPhone/iPad canβt show transparent WebM. |
| MP4 (H.264) | 10 MB Β· 10 s Β· 1280 px | No β MP4 has no transparency |
Clear areas of a token show the table through them. If a file is too long or too big, SAGA tells you exactly what to trim β ezgif.com can resize, cut and convert GIFs and clips for free.
3D models from Blender
Easiest: any .obj or .stl works as-is β it just shows in one plain color.
Textured OBJ: select the .obj, its .mtl and all its image files together (or drop one .zip of the folder). SAGA matches the images by file name β even when the .mtl points to a folder on someone else's computer β and bakes them into the model. Textures bigger than 2048 px are shrunk unless you say no; images without see-through parts are stored as JPEG to keep the model small. If an image is missing, SAGA names it and asks whether to add the model without it.
For the best look (shine, metal, lighting detail), export .glb with the settings below.
Fastest: the SAGA Blender add-on
Bakes procedural materials, color ramps and textures into one small .glb with one button β no settings to get right.
- Download saga_bake_addon.py.
- Blender: Edit β Preferences β Add-ons β β β Install from Diskβ¦, pick the file, tick SAGA Bake & Export.
- Select your model, press N, open the SAGA tab, click Bake & Export.
- Drop the
.glb(saved next to your.blend) onto the table.
Can't install add-ons on a school computer? Use saga_bake.py instead: Scripting tab β Text β Open β βΆ Run.
Or export by hand
In SAGA, the β next to π§ Add 3D modelβ¦ shows these settings too.
Before exporting
- Select only your model (no lights or camera).
- Press Ctrl+A β All Transforms.
- Check the triangle count: Overlays β Statistics.
Export: File β Export β glTF 2.0
| Setting | Set to |
|---|---|
| Format | glTF Binary (.glb) β one file with textures inside |
| Include | β Selected Objects |
| Data β Mesh | β Apply Modifiers |
| Data β Compression | β Off (SAGA can't read Draco) |
| Animation | β Off |
Size and position don't matter: SAGA scales the model to about 3 inches and sets it on the table.
Limits
| Limit | If you're over |
|---|---|
| 15 MB file | Resize textures (Image Editor β Image β Resize to 1024 or 2048). |
| 100,000 triangles | Add a Decimate modifier (ratio 0.3β0.5), apply, re-export. |
| 4096 px textures | Resize to 2048 or less. |
If a model fails, SAGA shows the exact problem and the Blender steps to fix it.
Troubleshooting
| Stuck on loading / "handshake" | Reload the page. Check you're online. |
| "Someone is moving that" | Another player is holding it. Wait a second. |
| Table disappeared | The room closes after 30 minutes with nobody in it, or when the server updates. Reload your kit. |
| Can't see the table on a phone | Tap β to hide panels. |