Skip to content

Editing Operations

Selecting, duplicating, deleting, and reorganising objects are the day-to-day of building a scene. This page covers those operations, how they combine into multi-selections, and the undo/redo system that backs every one of them.

Selection

You select objects two ways, and they stay in sync:

  • In the Viewport - click an object to pick it. The gizmo appears on the selected object.
  • In the Hierarchy - click a row.

Selection has a primary object (the most recently clicked, shown in the Inspector) and a selection set of everything currently selected. Selecting a single object replaces the whole set with it.

Multi-select

  • Cmd/Ctrl-click toggles an object in or out of the selection; the last one clicked becomes primary.
  • Range / keyboard selection replaces the set with a group at once.

Multi-selection is what lets you delete, duplicate, enable, disable, or mark-static many objects in a single action. Only live objects can be selected - a stale handle (for example after a Play→Stop rebuild) is silently dropped.

📸 Screenshot - save as img/world-multi-select.png

The Hierarchy with three rows highlighted as a multi-selection and the Inspector showing the shared/primary object.

Core operations

OperationEffect
DuplicateCopies the selected subtree(s) in place, offset slightly so the copy is visible, and selects the copy.
DeleteRemoves the selected object(s) and all descendants.
Enable / DisableToggles the GameObject active flag; a disabled object (and its subtree) stops rendering and simulating.
Mark Static / Non-staticToggles the Static flag for batching + a fixed physics body.
IsolateEnables the selected object plus its ancestors and descendants, and disables everything else - for focusing on one area. Undo restores the previous enabled state of every object.
RenameChanges an object's name.
Reparent / ReorderDrag in the Hierarchy to change parent or sibling order (cycle-guarded - see Transforms).

Copy & paste

There are two independent clipboards:

  • Object clipboard - Copy serializes the selected subtree; Paste re-instantiates it into the world (offset and selected). Because it round-trips through the scene format, references inside the subtree are remapped correctly.
  • Component clipboard - from a component's header in the Inspector, Copy captures that single component and its values; Paste onto another object adds the component (or overwrites an existing one of the same type). Handy for copying a tuned Light or RigidBody between objects.

Undo & redo: the command stack

Every edit above is a Command - a { do, undo } pair - pushed onto an undo stack when it runs. This is what makes the editor forgiving: any action can be reversed, and reversed actions can be replayed.

Details worth knowing:

  • Running a new edit clears the redo stack - you can't redo past a fresh change.
  • Some edits are grouped: an action that internally runs many commands (a batch operation) collapses into a single undo entry.
  • Physics edits are special-cased: changing a Collider or RigidBody while playing triggers a soft sim-restart so the change takes effect from the play-start state.
  • The undo history is cleared when the world is replaced wholesale - opening a scene, loading a project, or starting a new scene.

📸 Screenshot - save as img/world-undo-toolbar.png

The toolbar Undo/Redo buttons, one enabled and one greyed out, after a delete operation.

Editing during Play

You can edit the scene while the game is running in Play mode - tweak a value, add an object, delete one - to iterate live. Awaken3D tracks whether you made any change during the session.

When you press Stop, if you made changes you get a keep-or-discard prompt:

You made changes during Play. Keep them? (The scene resets to its start state - your edits stay, the play-time motion is undone.)

  • Keep - your authored edits (added/deleted/reparented objects, component tweaks) are preserved, but the runtime state (physics poses, animation time, script-driven motion) resets to the deterministic play-start. So the next Play always begins from a clean, repeatable state.
  • Discard - everything from the session is thrown away and the scene reverts to its pre-play snapshot.

It's all-or-nothing - you keep the whole set of edits or none. If you made no changes, Stop just returns to edit mode with no prompt.

See also

Awaken — browser-native WebGPU game engine.