Dicey Table

Search the docs

Every page, A–Z (234)

Editor Guide

  • Add ComponentThe + ADD COMPONENT flow — the addable light and camera set, kebab menus, enable checkboxes — and the component rail's scroll-spy and filter.
  • Assigning a Room or TableHow a game picks the published room and table packs it uses, why the pick is pinned to an exact version, and why nobody can change either mid-session.
  • Assigning and Editing MaterialsHow to drag a material onto a Material box, built-in vs project materials, how editing a built-in makes a project copy, and the clear-doesn't-revert gotcha.
  • Attaching and Running ScriptsObject scripts vs global scripts, the kind-specific starter each gets, and how Play Scripts runs them live inside the editor.
  • Audio EditorTrim, fade, normalize, loop-crossfade and re-encode a sound file from its lossless original, with a waveform, draggable trim handles and a looping preview.
  • Building an Asset PackHow to author prefabs, decks, materials, textures and scripts as a publishable Asset pack, and what its published document will and will not carry.
  • CAMERAThe CAMERA engine component on a table object — three guardrails enforced by the runtime so an added object camera can never take over what players see.
  • Card Data EditorDescribe a card game to DiceyTable — fields, roles, filters, columns, deck stats and partitions — so the deck builder works for your mod without any code.
  • Card Layouts EditorMap regions onto a card face, bind them to card fields or live counters, and control exactly what an opponent is allowed to see.
  • COLLISIONThe COLLISION engine component — shape, the custom-model box collider editor, the three mesh-collider refusals, and the collisionEnabled checkbox.
  • Deck and Bag SearchAuthor who may privately look through a deck or bag, what happens to the pile afterwards, and how a deck's own setting overrides the Area zone it sits in.
  • Deck EditorBuild a custom deck from card images: resolution presets, card art (fit, bleed, corner rounding), copies, data models, the back picker, sheet generation.
  • Die EditorDesign a custom die: shape and edge rounding, materials like resin or granite, a model sealed inside, and per-face art and values.
  • Document vs EngineThe scene document is the source of truth and the PlayCanvas graph is a render artefact rebuilt from it. Patching a live entity without a write-back is a bug.
  • Edit ModeEdit Mode is DiceyTable's authoring environment: a scene document you edit directly, with physics frozen by default and nothing uploaded to a server.
  • Editor URLs and ModesEvery URL that opens Edit Mode, what each editor mode edits, how a link names the mod it opens, and why a second tab on the same mod opens read-only.
  • ENTITYThe entity header on every object selection: enabled state, the two names, parent, tags and transform. Disabling it disables every component too.
  • Entity (Advanced)The read-only ENTITY (ADVANCED) section — live guid, path and real engine components behind a Scene Entity, unreachable from any script or mod.
  • Finding and Selecting EntitiesHow to search the Hierarchy by name, id or #tag, what the eye and lock icons toggle, and how selection ties the Hierarchy to the viewport.
  • GlossaryEvery term the DiceyTable Developer Docs use, defined once: the ECS nouns, the three names, seat templates and zone types, and the provenance axis.
  • IDs, Names and TagsThree names per entity and only one of them is an address: id resolves, label is the slug and card identity, displayName is for humans. Plus the dt: prefix.
  • Importing an Asset PackBrowse published Asset packs from the Game Editor, preview a prefab in 3D, and import it by reference or as a copy — with the trade-off spelled out.
  • Importing and Optimizing ModelsAccepted formats and the in-browser conversion pipeline, Draco, the stats panel, giving a model a collider, and optimizing without losing the original.
  • Keyboard ShortcutsEvery Edit Mode keyboard shortcut, enumerated from the shell's actual key handlers, with what it does and when it's suppressed while typing.
  • Lifting Content Out of a PackTake just the room, just the table or one prefab out of any published pack — the link is cut, and the lift-out is recorded so the source stays credited.
  • LIGHTThe LIGHT engine component on a table object — addable and removable, and not the same thing as a room Light. Its basics, bake, shadow and layer fields.
  • Manifest: the Bots TabThe manifest editor's Bots tab - import and check AI models, declare scripted and AI bots, wire their handlers and difficulties, and open the training page.
  • Material and Texture FieldsEvery field in the 15-section material inspector, the Advanced toggle, and the texture inspector's info block, Sampling, Compression and WebP panels.
  • Material EditorA live interactive sphere preview next to the 15-section material inspector, with admin-only global publishing for built-in materials.
  • Model EditorThe model tree, the COLLISION, TRIGGER VOLUME and CONTAINER INTERIOR panels, viewport toggles, Edit in viewport, Re-apply, and the four save-bar states.
  • Moving, Rotating and Scaling EntitiesThe Q/W/E/R transform tools, multi-selection gizmos, World vs Local, move assists (snap points, grid, magnetism), arrow-key nudging and Snap Points.
  • Multi-selectSelecting several entities from the Hierarchy or viewport box-select, one gizmo for the whole selection, SELECTION panel bulk actions and group scale modes.
  • Opening ProjectsCreate a mod, find the ones you own by kind, switch between them, delete one you never published, and open one in another mode or tab.
  • ParentingHow object-to-object parenting works — the kinematic-child rule, grab escalation, the grabbableWhileParented opt-out, and the depth-8 cycle guard.
  • PIECEThe PIECE panel — Platform kind, Surface, the seat an entity belongs to, token and coin flipping and card paper thickness. A Platform panel, not a component.
  • Plain File EditorA text editor for any repo-relative project file — TypeScript, JSON, Markdown, CSS and more — reading and writing bytes straight through the draft filesystem.
  • Platform PanelsField reference for every Inspector section that is a DiceyTable classification, not an engine component: dice, sound, room, walls, lights, seats and zones.
  • Player Zones, Seats and Seat TemplatesSeat templates (linked, layout-detached, mirrored seats), seat-local +Z, seat dice and pieces, zone types and options, table zones, seat variables.
  • Prefab EditorThe 3D .prefab.json editor — arrange a body and bolt-on parts, weld or join them with hinges and springs, and place snap points on the result.
  • Preferences and Display UnitsFile ▸ Preferences… picks the unit the editor shows and reads lengths in — mm, cm, m, inches, feet or yards. Display only: your mod's files never change.
  • Previewing a Draft and Photo ModePlay your unpublished draft in a preview tab that saves nothing, then use photo mode to hide the interface per category and capture Ultra screenshots.
  • Provenance and LifecycleWhere a thing came from — Engine, Platform or Project — and what stage it is at: Definition, Scene Entity or Live Entity. Every noun has a coordinate on both.
  • RENDERThe RENDER engine component — material assignment only. It has no enable checkbox by design; the ENTITY header's Enabled toggle is the only visibility control.
  • Render LayersScene, Table and Game — the three render layers a DiceyTable scene draws through, what lands on each, and how a light chooses which ones it reaches.
  • RIGIDBODYThe RIGIDBODY engine component — body type, mass, friction, restitution, damping, weld, and why Static is what keeps a triangle-mesh collider.
  • Scene CheckFind the collider problems Edit Mode cannot show you, and save every model's real collider in one click before pieces scatter at a live table.
  • SCRIPTThe SCRIPT engine component — attaching a Table Script to one object, distinct from a scene script attached to the whole table.
  • Script EditorThe Monaco script editor - API autocomplete, suggestions for tags and names your project really uses, snippets, drag-to-reference and transpile on save.
  • Tags and GroupsAuthoring tags, the unauthorable dt: platform namespace, why it still shows up in read results, and the one case-sensitivity quirk worth knowing about.
  • Texture EditorSampling, KTX2/Basis compression and WebP re-encode panels for a texture, plus an in-place Resize tool and the quick and advanced image editors.
  • The Asset ExplorerThe Edit Mode bottom panel — Project and read-only Library panes, six views, multi-select, group move/copy/delete, Upload, and what each item does.
  • The Hierarchy PanelEdit Mode's authoring tree — filter and tag pills, folders and seat folders, Seat Template and Snap Points rows, eye and lock, context menus.
  • The InspectorHow the Inspector is organized — Engine components vs Platform panels, the ENTITY header, and which page documents each selectable node kind.
  • The Inspector PanelWhere the Inspector sits in Edit Mode, how it tracks selection across the Hierarchy, viewport and asset explorer, and its own resize handle.
  • The Scene ModelEntity, Component, System, Folder and Tag Group — the five composition nouns DiceyTable uses, and why Component never means a thing you place on the table.
  • The Screenshots GalleryThe gallery of Preview photo-mode captures stored under screenshots/ — download, delete, promote one to the store page or cover, or retake it.
  • The Script ConsoleThe collapsible strip under the viewport that shows log, broadcast, diagnostic and system output while a scene's table scripts run inside Edit Mode.
  • The Status BarEdit Mode's footer strip — the save, draft and scene validity dots, the Problems panel they open, the project name, and the GitHub checkpoint and sync status.
  • The Topbar and Menu BarEdit Mode's top two rows — the logo bar (project, variant, save pill, Save Draft, Preview, Publish) and the File / Edit / View / Mod / Help menu bar.
  • The Training PageThe /editor/train page - train a bot model in your browser on your project's rules kernel, watch its strength gauge, resume runs and export a checkpoint.
  • The Transform RailThe narrow left rail — Select, Move, Rotate and Scale on Q/W/E/R, the snap-point flyout, the radius toggle, the grid tool, and Frame selection.
  • The Versions PanelRestore points in Edit Mode — the draft label, the optional note, how a version is numbered and captured, and exactly what Restore overwrites.
  • The ViewportThe stage and its toolbar — World and Local, Frozen and Live, script play controls, the camera, room-geometry and render-layer view controls.
  • TroubleshootingReal, current Edit Mode gaps with a workaround for each - material clear, empty folders, KTX2 listing, long asset paths, AVIF decode, and texture compression.
  • UI Layout EditorDesign a game's HUD visually, style widgets and regions, and preview it on real desktop, tablet, phone and VR screens beside the table's own controls.
  • Verifying as a New PlayerRe-fetch your published project and every pack it pins cold from upstream, skipping your own cached copies, to catch a dependency that has gone away.
  • WeldingWeld children turns a parented assembly into one compound rigidbody — what it changes physically, when it is rejected, and how it differs from parenting.
  • Workflow: Building a DeckThe numbered click-path for creating a deck asset, uploading card images, generating its sheet, and placing it on the table.
  • Workflow: Exporting a Project SnapshotThe numbered click-path for downloading your project as a JSON file, and what that file is (and isn't) useful for compared to a GitHub publish.
  • Workflow: Importing a ModelThe numbered click-path for uploading a GLB, glTF or convertible DCC model, reading its findings, giving it a collider, and placing it on the table.
  • Workflow: Lighting a SceneThe numbered click-path for adding room lights, checking their effect with Live physics, and setting ambient, fog, and skybox for the whole room.
  • Workflow: Making a Board from an ImageTurn one image into a game board — a rectangular slab, or its non-transparent shape extruded — producing a texture, material, model and prefab at once.
  • Workflow: Making a Variant of Your GameAdd a second set-up to a game (a smaller board, a bigger table, play by hand, a ranked version), then switch variants, preview each and publish.
  • Workflow: Opening a Mod on Another DeviceHow opening a GitHub-linked mod re-syncs missing and changed files from your repo automatically, without ever overwriting edits you haven't pushed yet.
  • Workflow: Saving, Versioning and RestoringThe numbered click-path for the draft save, named restore points, and how restoring a version overwrites your current draft after a confirmation.
  • Workflow: Starting a New ModThe numbered click-path from opening Edit Mode to a named mod of a chosen kind, in its own public GitHub repository, ready to author.
  • Workflow: Where My Files LiveEverything you author is written to a browser-local mirror of your GitHub repo, never a DiceyTable server, with a persistence request and eviction safety net.
  • Working with DecksHow a deck asset becomes a table entity, why re-editing a deck after placing it needs a re-place rather than a refresh, and when to use a deck at all.
  • Working with Room and LightingFloor, ceiling and wall surfaces, posters, openings, ambient/fog/skybox settings, the three room light types and ambient sound emitters, field by field.
  • Working with TexturesChoosing sampler settings, when KTX2/Basis compression pays off and why it is safe across devices, and the known gap where .ktx2 assets skip the Textures tab.

Scripting

  • Asset Pack Script ScopeA prefab's script runs under its own pack scope, pinned to a version, so it cannot read another pack's saved data or the game's - and what follows for authors.
  • Async and snapshotsWhat a promise means when the answer comes back from the host, why a sync mutator leaves its own handle stale, and when the rest of the table finds out.
  • Bots and AIThe bots and ai globals a table script receives - register the code that plays a bot, search with a rules kernel, and run a game's own AI model on the host.
  • Choosing a surfaceTable script or mod script? A capability-by-capability decision table, what each surface alone can do, and why moving between them later is a rewrite.
  • EventsThe 21 globalEvents delegates a table script can subscribe to - each one's payload, who raises it, and when - plus ZoneEvent and TriggerEvent.
  • Events and delegatesDelegate scope, handler ordering, how many times each table event fires, which peer raises it, and the plain fact that nothing can cancel an action.
  • Execution orderThe deterministic order a table script host boots in - handles, scene scripts, object scripts - what already exists when your code runs, and what never re-runs.
  • Game UI (HUD)The Game UI, or HUD - status lines, prompts, action strips, logs and hints drawn off the table, private per seat, from a table script or a mod.
  • Game UI (ui)The ui global for table scripts - show HUD widgets, bind their text to state, ask a seat with ui.prompt and answer presses in ui.onAction.
  • Highlights and clicksOutline entities with named styles, publicly or privately per seat, and hear which entity a player clicked - the pick-a-card loop of a scripted game.
  • Host authorityWhy a table script runs on exactly one peer, what the other players actually receive, and what the host-only, all-peers and host-authoritative badges mean.
  • Matches and VariantsThe match global that starts a match, records its moves and reports the result, plus world.getVariant for branching one script across variants.
  • Mod hooks and capabilitiesThe 14 hooks a mod can subscribe to with api.on, the exact payload each one carries, which peer raises it, plus the unbounded custom UI-hook channel.
  • Object TypesThe per-kind handle types a table script sees - CardObject, DeckObject and the rest, what each adds to ObjectHandle, and how refObject gets one without a cast.
  • ObjectHandleA live handle to one entity on the table - the ten read-only fields a table script can see, and the fourteen methods it can call to move, act on and read it.
  • Sandbox limitsThe ES-only language subset both script surfaces compile against, what the sandbox frame removes at run time, and the static scanner that reads your comments.
  • Scripting APIThe two DiceyTable script surfaces side by side - Table Scripting's world, globalEvents and refObject, and Mod Scripting's api - and how to pick one.
  • Scripting conceptsThe shared ideas behind both DiceyTable script surfaces - where code runs, in what order, how events arrive, and what every reference badge means.
  • The mod api objectEvery method a mod script can call - the capability-gated members of the injected api object, the exports.setup entry point, and the types they exchange.
  • TypesThe fourteen ambient declarations a table script compiles against - Vec3, ObjectKind, the action unions, SpawnObjectOptions, DiceRollSummary, declareVariables.
  • WorldThe world global every table script receives - spawn entities, query the table, read players and turns, log, broadcast to chat, persist data and pace work.

Mods & Publishing

  • Anatomy of a modA complete, annotated file tree for a real DiceyTable mod — what each file is, who reads it, and which parts are required versus editor convention.
  • Asset Delivery and the CDNHow mod files and declared plugin resources reach browsers through cdn.diceytable.com, the rules the edge enforces, and what stays on GitHub.
  • AssetsThe 20 file extensions a mod may declare, their content-type policy, size caps (incl. the 10 MB HDR sky cap), and the 7 decodable texture formats.
  • Connect GitHubHow DiceyTable's GitHub OAuth App works, how linking or creating a repository fits into mod authoring, and why new repositories are created public.
  • Cover art and screenshotsThe reserved media/ folder's exact sizes, crop math, WebP encoding, and the image-only rule the scanner enforces on every file placed there.
  • Credit and Being CreditedHow a pack's listing page credits what it uses, how the reverse "Used by" listing works, and why credit is derived from dependencies rather than typed in.
  • Engine compatibilityThe exact grammar compatibility.engine is checked against — a hand-rolled two-token parser, not semver, including a form that silently matches everything.
  • Fixing a RejectionPasted an error code from a rejected mod? Look it up here for the exact cause and the fix, without touching any allowlist or sandbox rule.
  • Game BotsOpponents that hold a seat - scripted and AI bots, models as data, hardware tiers, host migration, hidden information and what a trained model is worth.
  • Game VariantsOffer one game pack in several set-ups, from board sizes to a fully scripted ranked version. The manifest list, the setup.json block and what is refused.
  • IntentsAll 26 TableIntent variants, grouped by area, including the three declared-but-not-implemented edit-* intents that are not reachable from any authoring surface.
  • Limits and capsEvery size and count cap a mod author is likely to hit — table state, setup and manifest arrays, file trees, assets, and the mod draft text fields.
  • Manifest referenceEvery field of diceytable.mod.json — what it does, who reads it, its constraints and exact validation message, and a worked example, verified against source.
  • Mod CapabilitiesThe 16 capabilities that gate the mod api object — which methods each unlocks, how one is detected, and what the table discloses to players.
  • Mod categoriesThe curated category slugs a mod manifest's category field accepts — one list per pack type, with the rule that a slug can never be renamed.
  • ModsWhat a DiceyTable mod is, the three manifest types, and why GitHub — not our servers — holds the files that make a mod real and multiplayer-ready.
  • Object actionsThe 27 TableObjectAction values and their per-kind gating — a full kind-by-action matrix, with the state-dependent exceptions called out.
  • Object kindsThe 11 TableObjectKind values (card to coin) — what each does at the table, its physics defaults, its default scale/color, and which fields matter.
  • Object stateEvery TableObjectState field and its 7 sub-collections — zones, snapPoints, vectorLines, decals, textLabels, joints and ui — with each schema.
  • Offline PlayHow DiceyTable installs as an app, which two caches have to be warm before a table boots with no network, and what makes a published mod solo-offline-capable.
  • Publishing TroubleshootingFixes for the most common GitHub publishing problems in Edit Mode — OAuth setup, disconnects, a disabled Publish button, merge conflicts, and missing assets.
  • Ranked Games, Rankings and Player TrustWhat a ranked match guarantees and what it does not: grades, disputes, consent takebacks, placement, ladders and seasons, Scores and Player Trust.
  • Registration & Multiplayer PlayWhy a mod must be registered from GitHub before it can be selected for a room, and how each peer independently pulls and caches a published mod's files.
  • Required and conventional filesThe crisp answer — exactly one file is required. Everything else is manifest-declared, plus the full convention table the editor actually produces on disk.
  • Script SafetyThe 5 whole-word regex patterns that reject a mod script on sight, why false positives are accepted by design, and how to work around them safely.
  • Setup JSONThe edit-scene setup.json format every mod authored in Edit Mode produces, how it is detected, and a note on the older mod-setup format it replaced.
  • SidecarsFiles beside a mod's assets — model meta, deck definitions and assemblies — plus the link records, thumbnails and folder keepers the editor manages.
  • Sound setsThe five sound enums (12 materials, 18 actions, 16 runtime events, 3 counts, 2 intensities), a mod's soundSets, and how a SoundRef stays license-safe.
  • Standard presetsThe 160 built-in STANDARD_OBJECT_PRESETS definitions — verified counts, the 22 hidden from spawn catalogs, and the pattern behind which ones are hidden.
  • The Publish FlowWhat happens when you edit a mod in Edit Mode: the debounced auto-checkpoint, Publish, the wip-to-main merge, the generated repository README, and registration.
  • Training a Bot ModelFrom a rules kernel to an ONNX model your AI bot can use - training in the browser or with the trainer CLI, measuring strength, and importing the result.
  • What Gets RejectedEvery rule the scanner, the registry and the editor use to reject a script, asset, manifest, pack or dependency graph, with the code and message for all 99.
  • wip and main: the Two-Branch ModelWhy Edit Mode pushes to a wip branch on every checkpoint, how that differs from a publish, and what lives on each branch at any given moment.
  • Your first modOne continuous path from a blank New Mod dialog to a mod you can open in a real multiplayer room — every step with a definition of done and its failure branch.

Plugins

  • A Worked Example - Scryfall Card DataA complete, validated plugin manifest read block by block - origins, endpoints, the card mapping, the UI descriptor, and the four things it cannot do yet.
  • breakingVersion and MigrationWhen to bump breakingVersion, what a bump does to saved decks, how a changed resource file is re-registered, and worked examples of each.
  • Calling a Plugin from a ModHow a mod declares plugins, calls a declared function with api.callPlugin, and why a dynamic or undeclared plugin call is rejected at publish time.
  • PluginsWhat a plugin is, why its data and table halves run on two machines, its three capabilities, the files it can ship, and how one reaches a table.
  • Writing a PluginThe diceytable.plugin.json manifest end to end - origins, endpoints, card mapping, deck import, exposed API, capabilities, resources and quotas.

Reference

  • Action vocabulariesThree object-action vocabularies - 27 engine actions, the 13 a table script may request, the 10 a mod may - what each one does, and exactly why they differ.
  • Known limitationsEvery documented gap and deliberate boundary in DiceyTable scripting, in one dated list - what you observe, whether it will change, and what to do instead.
  • ModCapabilityThe 16 capability slugs a mod manifest can declare, the api methods each one unlocks, and which context reads them - as a compact value table.
  • ObjectAction (table script)The 13 actions a table script may request, the 9 that have an ObjectHandle method, the 4 that do not, and what the script host does with each one.
  • ObjectKind vs TableObjectKindThe eleven entity kinds the engine can spawn, which of the two declared unions names each one, and the open escape hatch that keeps a typo from erroring.
  • Prop surfacesInteractive screens on table objects - the surface rect, the widget tree, how a press becomes host-authoritative state, and what can be shown in world.
  • RuntimeSoundEventThe 16 runtime moments that can emit a sound, the sound action each one maps to for every entity kind, and which moments a mod can trigger itself.
  • SANDBOX_SAFE_OBJECT_ACTIONSThe 10 object actions a mod may request through api.objectAction, what each does per kind, and the three independent checks that enforce the list.
  • Scanner rule codesThe 5 script-content rule codes, the exact tokens each regex rejects, its error message, and the fact that both script surfaces are scanned.
  • SoundActionThe 18 logical interactions that can emit a sound, which entity kinds bind each one, and why this list is not the object-action list.
  • SoundMaterialThe 12 materials that pick a piece's sound and colour whatever lands on them — each kind's default, the struck-surface tone, and how a mod names one.
  • TableObjectAction (engine)All 27 actions the runtime can apply to one entity, what each does, which kinds a player may send it for, and which script surfaces can request it.
  • TableUiWidgetTypeThe 8 table UI widget types a mod can create, the props each one reads, and which four of them actually dispatch an interaction back to your script.

AI Agents

Get started

Build with an agent

Stay in control

Reference

Fix a problem

More pages

General

  • DiceyTable Developer DocsWhat can I build with DiceyTable, and where do I start?
  • How to Read These DocsThe conventions behind every page — generated versus hand-written sections, badges, verified examples, disclosed drift, date stamps, and the AI reference.