🎲 SAGA Manual

A live 3D playtest table for your group. Runs in the browser on PCs, tablets and phones.

Quick start

  1. Open SAGA, type your name and the class password (ask your instructor).
  2. Host creates a room. Everyone else joins with the room code or the invite link.
  3. Load your kit from Kit Forge: drag the .kittable.json onto the table. A LOL, FIGHT TIEM! deck from Card Forge works too: drag its .lftdeck.json (Send to playtest).
  4. Play. Everyone sees every move live.
Tap βœ• (top right) to hide all panels for a clear view; ☰ brings them back. The 🧰 Table tools panel folds shut from its header.

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 β†’ BackgroundSpace, 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 & dropDrop any of the files above anywhere on the page.

Clear table is host-only.

Mouse & keyboard

Left-drag a pieceMove it. Shift+click adds to a selection.
Shift+drag empty tableDraw 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 piecePiece 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 tableTable 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 / wheelOrbit / zoom the camera. Hold Space to pan over pieces.
?Show every shortcut
FFlip
Shift+FTurn everything selected face down (press again: all face up)
Q / ERotate left / right
Shift+Q / ETurn 15Β° (good for 3D models)
ATurn around (180Β°)
CClone
+ / βˆ’Bigger / smaller
TTap (turn sideways)
RShuffle β€” the stack under the pointer, or several selected pieces into one stack
GGather the selected pieces into one stack (no shuffle)
U / Shift+U3D model upside down or on its side? Stand it upright (steps through all 6 sides)
1 – 63D 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…".
DeleteDelete selected
EscDeselect
NNew note
LOpen / close the log
HHide / 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 pieceMove it. The camera locks while you hold it β€” for you only.
Double-tap a pieceFlip it.
Hold one finger still, then dragSelect 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 fingerRotate it (each twist step = one turn).
Long-press (most Android devices)Piece menu.
One finger on the tableOrbit. Two fingers: pan and pinch-zoom.

Dice & tokens

Dice: D6 (numbers or dots), D4, D8, D10, D12, D20. Everyone sees the same result.

Click / tapRoll in place.
ShakeHold it and wiggle back and forth, then let go β€” it rolls.
Flick / throwDrag 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

WhatUseNot 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
ImagesPNG, JPG, WebP (up to 8 MB)PSD, PDF, SVG β€” make those in Kit Forge instead
AnimatedGIF β€” 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.

FormatLimitsTransparency
GIF8 MB Β· 300 frames Β· 20 s Β· 1024 pxYes, everywhere
WebM (VP9)10 MB Β· 10 s Β· 1280 pxYes on Chrome, Edge, Firefox. iPhone/iPad can’t show transparent WebM.
MP4 (H.264)10 MB Β· 10 s Β· 1280 pxNo β€” 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.

  1. Download saga_bake_addon.py.
  2. Blender: Edit β†’ Preferences β†’ Add-ons β†’ βŒ„ β†’ Install from Disk…, pick the file, tick SAGA Bake & Export.
  3. Select your model, press N, open the SAGA tab, click Bake & Export.
  4. 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

  1. Select only your model (no lights or camera).
  2. Press Ctrl+A β†’ All Transforms.
  3. Check the triangle count: Overlays β†’ Statistics.

Export: File β†’ Export β†’ glTF 2.0

SettingSet to
FormatglTF 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

LimitIf you're over
15 MB fileResize textures (Image Editor β†’ Image β†’ Resize to 1024 or 2048).
100,000 trianglesAdd a Decimate modifier (ratio 0.3–0.5), apply, re-export.
4096 px texturesResize 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 disappearedThe room closes after 30 minutes with nobody in it, or when the server updates. Reload your kit.
Can't see the table on a phoneTap βœ• to hide panels.