Exporting a scene as JSON: what it's for
Autosave keeps a scene safe inside your account, but sometimes you want the scene itself — a file you can hold, back up somewhere else, or hand to someone who isn't logged into your account at all. That's what File ▸ Export is for.
· 5 min read · TerrainTale

A scene is just JSON under the hood
File ▸ Export gives you the open scene as a plain JSON document — the same underlying shape the app builds scenes from internally, not a proprietary binary format locked to the app. That means it opens in a text editor, diffs cleanly in version control, and can be read or written by something other than TerrainTale itself if you have a reason to.

What people actually use it for
A backup outside your account's saved-scene limit, taken on the plan or timeline of your choosing rather than whatever the autosave library holds. A way to move a scene between accounts, or hand a finished map to another DM without giving them access to your account. Checking a scene into a repository alongside campaign notes, the same way you'd version any other campaign asset. And feeding a scene to an AI assistant, or writing one by hand, since the format (documented in `ai/scene-format.md`) is meant to be authored directly, not only produced by the app's own editor.
- Backing a scene up outside the account's saved-scene library
- Moving a scene between accounts or machines
- Handing a finished map to someone else, no account access required
- Authoring or generating a scene directly as JSON, by hand or with an AI assistant
Export doesn't replace autosave
Autosave runs continuously in the background and keeps the current scene safe in your account without you doing anything; export is a deliberate action you take when you specifically want a portable copy at a point in time. They solve different problems — autosave answers "did I just lose my work," export answers "can I get this scene out of the app."
Export isn't the same as sharing a live table
Exporting a scene moves it at rest — a file that sits still until someone imports it. Playing together live, with miniatures moving for everyone at once, a shared ruler and pings, is a separate feature called shared rooms, reached from the Share button on a saved scene. A JSON export won't put anyone else at your table in real time; a shared room link will.
What actually ends up in the file
The export is the whole scene as the app understands it — floor and wall placements, props, lights, the environment preset, and any minis on the table — referencing library assets by id rather than embedding the model files themselves, which is why importing it back auto-downloads what it needs rather than requiring the file to carry everything along.
Small enough to read, not just to run
Because a scene references library assets by id instead of embedding geometry, the resulting file is compact and genuinely legible — small enough to open in a text editor and see, at a glance, roughly what's on the table without opening the app at all. That's part of why it works as something to keep in a repository next to campaign notes: a diff between two versions of the same scene shows what actually changed.