Games
Open a game, create a new one, import a backup, or archive one you are done with. Drag the handle to reorder the list.
Open game
Game scenarios
Uploaded story-level scenario drafts (Markdown) with stubs and versions. Games can record which stub and version they were generated from.
New game
Creates a separate game with default style, settings, and an empty scene list.
Import game
Restore a ZIP from Export backup (full, with assets) or config-only export. You name the game (default from the ZIP). If that name already exists, choose replace or append missing files.
Archived games
Restore a game archived from this list. Restoring puts it back into the live games list.
Game scenarios
Upload story-level scenario Markdown. Each upload gets a unique stub and a version number; older versions are kept.
Overview
Shape and health of this scene. Counts link to the tab that owns them.
Scene
Description
For the next author or agent — what this scene is, what changed, what is still open. Not player-facing copy.
Shape
Consistency
Archive or delete
Archive zips scene files plus referenced assets, then removes the scene files. Delete only removes scene files — not assets.
Narrative
skeletonScenario review
not-startedSpine, outstanding questions, and the go / not-yet verdict. Same record the agent writes.
Verdict: —
Full narrative prompt
Split automatically — review before running.
Destructive operation. This scene already has content. Pre-compile replaces the entire formalized scenario — hand edits, layout, and review state since the last save can be lost.
Prompt history
Issues
Player reports
Game
Overview of this game. Scenes are on the Scenes tab. Travel between scenes is on the World tab. Play the published title from Play game.
Name
Description
For the next author or agent — what this game is, what changed, what is still open. Not player-facing copy.
Scenario
Canonical story-level draft (content/game-scenario.md). Same text scenario_advisor({ useStoredScenario: true }) reads — not per-scene room markdown under content/scenarios/.
The scenario review is incomplete — ask your agent to run the advisor.
The game changed since this scenario was last reconciled.
Export / import
Download this game as a ZIP. Config-only is for debugging (all scenes and settings, no generated art or audio). Backup is the same plus assets. Import restores a ZIP as a new game, or into an existing name (replace or append).
Flow
Intro, title, menus, endings and credits — one file, game-flow.json. A new game already has the defaults; change a mode here to upgrade it.
Play game
Same player client as the published game. Progress saves in this browser when you leave the tab and restores when you return (same slot as Continue). Click the frame to start. Locally this needs npm run dev (Vite :5173).
Scenes
Every scene in this game. Drag the handle to reorder. Travel between scenes is on the World tab.
Scenes
Chapters
Interludes
Sandboxed HTML title cards and credits (content/interludes/<id>/). No scripts. Engine drives scroll, skip, music and transitions.
Asset pool
Loading pool…
Projected catalog cost to generate everything still missing — scene pool assets and cutscene shot media. Estimates inherit catalog estimated: true caveats; this is a projection, not a quote.
Open this tab to load the gap report…
Technical generate_* scratch results (14-day retention). Not in the pool until you promote. Nothing here is part of publish or export.
Open this tab to load playground results…
World
Chapter manifests and the derived location graph. Edges come from set_location affordances — edit travel in the source scene's Actions.
Chapters
Chapter editor
Order is the array order. The starting scene defaults to the first scene.
Marks this chapter final: true. A final ending here writes completedAt. Several finals (good and bad) are normal — only the chapter flag completes the game.
Solving
Chapter-scoped dependency graph — what must be true before what. Complementary to World (where the player can go). Analysis runs off the HTTP thread.
Chapter
Path & risks
Raw config
Fallback editor for every registered JSON/Markdown config file. Prefer dedicated surfaces when they exist.
Lines
Select a line to edit speaker, voice, register, emotion, and text in the Inspector (saves to Source Markdown). In the list, speaker id and voice use different colors. Scripted lines are ElevenLabs TTS assets (Cast → Voice mode). Internal lines use the expression bank. Emotion drives bank playback and voice cache keys.
Cast
Characters in this game. The Lines tab lists every scene this character speaks in.
Game cast
Select a character
Assets
Generate clip
Looping alpha video for a prop or decor motion_clip. A flat magenta background, a seamless loop, and no music (SFX only) are added to the prompt.
Restore missing assets
Looks for the same filename in this scene folder, then other content/scenes/ folders, then assets/incoming and the shared asset folders.
Prepare a pool asset
Create an asset file you can reference from Decor (asset column) or Environment surfaces — even before it appears in this scenario.
Logic
Actions are edges; facts are state. Click a node to edit it in the Inspector. Drag nodes to rearrange (positions stick per scene). Pan the canvas; scroll to zoom.
Push-chain generator
Pick a prop and an ordered list of spots. Generates one ordinary push action per hop (optional reverse pull chain). New hops are placed in sequence on the diagram.
Cutscenes
Every cutscene in the game, with its scene and chapter. Filter by scene or search. Opening one loads that scene’s editor. No editing here.
Cutscenes owned by this scene. Staging is t = 0 — the opening tableau, not the first beat. Only the world lane outlives playback.
New cutscene
Layout
A spot with a prop body is one object — the grid shows the authored arrangement, not every position it can take during play.
Environment
Scene bounds
Stretch background size = (X1−X0) × (Y1−Y0). Floor depth uses Z.
Walk bounds
bounds: click-walk inside the rectangle. route: only on paths marked player walk; tap snaps within snap max. NPC path-follow is independent.
Paths
NPC/decor path-follow and the optional player walk graph. For entity follow (character or decor path column), waypoints are offsets from that entity’s plant — never absolute room coords. player_walk: yes routes stay absolute for click-walk. Points are x,z or x,y,z, semicolon-separated. Stopovers: @dwell:1.5 or @anim:wave. next_path chains when an open path finishes. @action: is a compile error. Edit follow paths from Layout (path field → Edit in preview).
| id | points | loop | speed | jitter | deviation | next | player walk |
|---|
Surfaces
Floors, walls, ceiling, and parallax backgrounds. Each row needs exactly one of asset (shared pool image) or color (flat fill). At most one floor / left wall / right wall / ceiling per room. Stretch backgrounds take their size from scene bounds X×Y (above); walls from Z×Y; ceiling from X×Z.
| id | kind | fill anchor · surface size · tile size |
asset | color | depth |
|---|
Background Music
Independent layers that start with the scene. Pick a file from assets/music/ or upload an MP3. Optional proximity target fades a layer in as the character nears a positioned Prop, Character, or Decor — default proximity distance is 0.5 when omitted.
Atmosphere
Scene-wide weather/haze shaders (## Atmosphere). Env sources only — rain, wind, haze, snow, … Emitters (fire, steam, water fill) attach on a Prop/Decor atmosphere cell in Layout. Optional when uses lighting fact grammar.
Camera
Play uses the game camera from Game Setup. Turn on the override to frame this scene yourself. Landscape is the wide screen. Vertical is used when the screen is taller than it is wide — pull it back so the character is smaller and a tap is a real walk. On scene start the game plays a short automatic intro (push-in by default). The camera follows the character horizontally unless set to static. Pan range is computed from FOV and the live viewport unless overridden below.
Using the game camera. These fields show what play uses and are not saved on this scene.
Landscape
Vertical
Lighting
Ambient multiply for the whole scene. Individual lights live in Layout — bind via the LIGHT column on objects, or ATTACH on the light row (one definition can attach to many candles/props; runtime creates one instance each). Use Always on (TRUE) for a permanent lamp.
Game Setup
Game-wide settings — not tied to the open scenario. Sections start collapsed; open one to edit.
Game behavior library
Animation, path and behavior templates for this game. Opens a list, a 5×5×5 m sandbox, and the same inspector Layout uses.
Game identity
Name is what you see in Studio. Stub is the folder id and URL (/studio/my_game). Description is on the Game tab.
House style (`style.md`)
One section per generator. Visual is prepended to image prompts. Music, Sound effects, and Voice go only to those generators. A file with no headings is treated as Visual. A scene override (Scene setup) replaces all four sections for that scene.
Cutscene style bible
Costume and look notes for cutscenes. Edited in the kit panel; shown here so it sits next to the house style.
Style audit
A separate agent reads style_audit_packet (game and stage only) and writes findings. Studio cannot launch that agent or check that it ran. Safe corrections apply in auto-safe; line rewrites and changes to an approved asset stay pending until you accept them.
Landmarks
Search offers two or three free-licence photos. You pick one, or upload your own with a licence. The in-style sheet is generated beside the photo and approved by hand. Credits use the photo’s author and licence.
Default image format
One file format for the whole game — SVG (vector) or raster (PNG/JPG). Choose it before generating; switching later means regenerating the pool. Scene setup can override one scene. Batch always asks. Pixel-art *rendering* is a separate section below.
Renderer outlines
Screen-space outlines added by the renderer. Independent of drawn outlines in image generation (which are not recommended).
Camera
One camera for the whole game. Landscape is the default. Vertical is used when the screen is taller than it is wide. A new game copies the first scene’s camera into landscape and pulls vertical back so the character is smaller and a tap walks somewhere. A scene uses these unless its Environment camera override is on. Follow, intro, billboard, and pan range are shared by both orientations.
Landscape
Vertical
Play & world defaults
Voice, language, title screen, travel, surface art, and idle throttling for the whole game.
Floors and backgrounds: generated art for the whole game, or flat colour on purpose. New scenes always start as colour-only plates — that is not a decision until this is set.
Travel between scenes uses set_location props and works across the game without a chapter file. Chapter manifests are optional: they let the solver verify reachability. Record that choice here so the advisor can stop asking.
The player title screen is a front scene plus a Menu table plus classic_stack. Idle/sleep only throttle the running game; they do not write world facts.
Language chooses prop-click captions and TTS language_code (English “Oh, a {name}!”, Polish “O, {name}!”). Not decided until this is set.
One voice mode for the whole game is the intended shape. A mixed cast is reported as a Game checks warning; Cast stays editable.
Cutscene delivery
Approved cutscene video is transcoded to these targets; voice/SFX/music loudness uses Game Setup defaults in studio-settings. Budget caps apply to agent cutscene generation spend.
Pixel-art rendering
A game flag, separate from SVG vs raster file format. Off (default): bilinear textures at native resolution. On: nearest (pixel) filtering and a density slider (default 120 px/world), the same controls as the play Dev overlay. Reload play after saving.
Media defaults
Unchecked (the default): a newly generated asset that does not collide with an existing file is approved immediately. A collision, or this checkbox, always leaves the candidate pending for a manual look.
Media defaults per context
Image, video, 3D, and audio provider/model per usage context. Validated against the media catalog at save. Generation dialog choices are not written back here. Credit-based providers (Recraft, ElevenLabs) show estimated USD rates — edit them below when your plan changes.
Nano Banana cannot emit true alpha. Transparent props/characters on that provider use this solid key (default magenta), then Studio punches it out. Changing the key affects future generations only.
Costs
Spend recorded in this game's journal (catalog price × quantity). Failed calls that still recorded a cost are included. This is a report, not a budget.
Open this panel to load.
New scene defaults
Applied when you create a new empty scene (or fresh-import shell). Stretch backgrounds use scene X×Y; floor patch uses X×Z.
Walk bounds
Decor / prop size 1 matches omitted markdown size (0.55 world units, a bit over half player height). Lower it only when drag-placed objects should start smaller than that default.
Background fill is stretch; floor fill is tile at anchor (0,0) with surface size = scene X×Z. Camera stays the engine default (editable later in Environment).
Checkpoint retention
Auto-checkpoints older than the day window may be pruned once the count exceeds the limit. Save, manual, and pinned checkpoints are kept forever.
Game behavior library
History
Game configuration checkpoints (not player saves). Restoring never resurrects deleted asset binaries — dangling manifest references are warned before confirm.
Scene setup
Per-scene overrides of project defaults. Stored in ## Scene setup of this scenario.
Clips
Logic pending
Derived scene sync
House style override
Using project house style.
Replaces the project house style for this scene (all four sections) — does not merge. Empty fields are filled from the project the first time you enable the override.
Image format override
Solver
Layout debug
Last placement-affecting apply for this scene. Diagnostic only — Studio-local, not part of the game, pruned with other run logs.