Every scene is a file you can hold, not just a save slot
TerrainTale autosaves as you build, but a scene is also just JSON: something you can export, back up, check into a repo, generate with an AI assistant, or hand to another DM. Nothing about it is locked inside the app.
Autosave you do not think about
The open scene saves to your account automatically as you build, backed by IndexedDB locally so the table survives a reload or a lost connection; the autosaver pauses rather than retrying in a loop if a save is refused, and resumes once the reason clears. In practice you can build for an hour without pressing save. If the browser crashes mid-build, reopen the app and the scene is where you left it. If a save is refused, for instance because the free plan's one slot holds another scene, the autosaver waits and the work stays on the table until you upgrade, delete a scene or export this one to a file.
Export and import as plain JSON
File ▸ Export gives you the scene as a JSON document; File ▸ Import Scene JSON loads one back, with models auto-downloading from the built-in library as needed. That makes a scene portable between accounts, easy to back up outside the app, and simple for an AI assistant to author directly as a "recipe": high-level operations like fill this rectangle, wall this perimeter, scatter trees here. A typical use: before a big rebuild, export the current version as a file named crypt-v1.json so you can always go back. To pass a scene to a co-DM, send the file; they import it into their own account and the library models download on their side. A recipe is shorter than a full export, because it describes the intent while an export holds every placed object.

How many scenes you can keep
The free plan keeps one saved scene in your library; Premium keeps up to 200. Copying a scene at the limit, or opening a new one when the slot is full, opens a dialog to upgrade or delete one, and your unsaved work stays on the table either way. The limit counts scenes kept in your account, not files on your disk. A free-plan DM can keep the next session's location in the account and an archive of exported JSON files for the rest, importing each one when it is needed. Premium is $6 a month or $48 a year and also adds importing your own models.
Different from sharing a live room
Exporting and importing JSON moves a scene between accounts or machines at rest. Playing together live at one table (miniatures moving for everyone, a shared ruler, pings) is a separate feature, shared rooms, reached from the Share button once a scene is saved. The two work together. Build or import a scene, save it, then press Share to create a link. Players sign in, ask to join, and once you let them in they see the table live while you are in Play. Stop sharing ends the link. The JSON file stays yours either way, and importing it elsewhere starts a new scene with no players attached.
Questions
Is my work ever at risk of being lost?
Autosave runs continuously and is backed by IndexedDB locally, so a reload or a dropped connection does not lose the open scene. For extra safety, export a JSON copy of any scene you care about; a file on your own disk is a backup you control.
Can I edit a scene's JSON by hand or generate one with AI?
Yes, the JSON format is documented (ai/scene-format.md) specifically so it can be authored by hand or by an AI assistant, then loaded with File ▸ Import Scene JSON. The repository tests check the worked examples in ai/examples, and a recipe placed there is checked the same way.
How many scenes can I keep saved?
One on the free plan, up to 200 on Premium ($6/mo or $48/yr); re-saving, renaming and deleting an existing scene are never limited. At the limit, a dialog lets you upgrade or delete a scene; nothing on the table is lost while you decide.
Is exporting a scene the same as sharing a live room?
No. Export and import moves a scene as a file. Playing live with others at one table is shared rooms, a separate feature reached from Share. A room needs the scene saved in your account first, so import a file and save it before you share it.
Keep reading
Import Your Own 3D Models Into the VTT
Drop your own .glb, .obj, .fbx, .stl and more onto the table: Meshy, Sketchfab and Blender exports, Draco/meshopt files.
Play D&D with Friends: Start a Group and Run Your First Night
How to get a D&D group going with friends: who runs it, what to buy (almost nothing), a first adventure, a schedule that survives adult life, and a free 3D battle map for the first fight.
Pricing
Free and Premium side by side, and what changes between them.
Self-Hosted 3D Virtual Tabletop
Run TerrainTale yourself: one Node process serves the app, the API and the sign-in gate.
Scene format
The open JSON format for describing a grid-correct 3D battle map as intent: floors, walls, doors, roads, terrain and props.
From the blog
Sigil's last day has passed. Here is what to do next
D&D Beyond's Sigil 3D VTT was due to go offline after 31 October 2026. A practical checklist: what you can still gather, what is lost, and how to rebuild your maps in a browser 3D tabletop.
· 6 min read
Your first online D&D session: a checklist that actually works
Everything to settle before session one online — voice, the map, dice, safety tools, a fifteen-minute tech rehearsal — so the first hour is play rather than troubleshooting.
· 6 min read
Surprise rules in D&D 2024: Disadvantage on initiative instead of a lost turn
The 5e 2024 surprise rules explained: surprised creatures roll initiative with Disadvantage instead of losing a turn, how Hide and Invisible feed in, and where ambushers must stand on the map.
· 5 min read
All articles on battle maps, grid rules and running the game
Ready to put a map on the table?
Open the builder and start, no account needed. Sixteen starter scenes are on the welcome screen; sign up free when you want to save one or play it with your group.