Editing scenes
Editor docs
The editor edits your scene file, not a copy of the world. What you change in the Hierarchy, the
Inspector or the scene view's gizmos is a change to the .scene.json document, and saving writes
exactly that document back. The editor is a preview.
The scene document#
While a scene is open, the editor holds it in memory as the engine's own scene format: a flat list of entities with stable ids, their components and props, prefab instances with their overrides, and the scene settings. The world in the scene view is a projection of that document: every edit updates the document first, then the live world.
Every edit is a command, a named group of small operations such as create entity, set transform, add component or set prop. Commands are what undo steps through, and they are the same commands a coding agent sends over MCP, so an agent's edit and yours land on one history.
The document lives in the editor's main process. If the editor window's renderer crashes and reloads, your unsaved edits and your undo history are still there.
Undo and redo#
Edit → Undo (Ctrl+Z) and Edit → Redo (Shift+Ctrl+Z) step through the commands by name,
for example Undo Move 3 entities. A gizmo drag is one step, however long you drag; a change typed
into an Inspector field is one step.
Undo covers the scene document. Edits made in the Material and Settings panels are written to their own files as you make them and are not part of the scene's undo history.
Saving#
| Command | Shortcut | What it does |
|---|---|---|
| Edit → Save | Ctrl+S | Writes the open scene to its file. |
| File → Save As… | Shift+Ctrl+S | Writes the scene to a new .scene.json under assets/ and switches to it; the old file stays. A strip then offers to make it the boot scene or add it to the open scenes. |
| File → Save All | Alt+Ctrl+S | Saves the scene and the project's pending settings. |
Save writes the engine's canonical form: numbers and key order are normalised, so saving the same scene twice gives the same bytes and a git diff shows only what you changed. The Hierarchy's tab carries a dot while the scene has unsaved changes.
When the file changes on disk#
Scenes are plain files, so git, your code editor or a coding agent may change one while it is open. If you have no unsaved edits, the editor reloads the scene. If you do, it asks: Reload takes the file from disk and drops your edits, Keep mine keeps your edits, which your next save writes over the file.
Prefabs#
A prefab is a .prefab.json file, an entity tree you place in a scene as an instance that
records only what you changed on it (its overrides).
- Place one: drag the prefab from Assets into the scene view or the Hierarchy.
- Edit the prefab: change its file; every instance in the open scene reloads it in place, with your overrides kept.
- Out of date: when a prefab changed on disk after an instance's overrides were recorded, the Inspector marks the instance Prefab changed.
Not yet: creating a prefab from an entity, opening a prefab on its own, and applying or reverting an instance's overrides are planned for the prefab phase.
Playing does not change the scene#
Edits only ever reach the scene document from the editor. What happens while the game is playing stays in the play view and is gone when you stop; see Play mode.