Runtime Studio

Muting

Understand edit isolation and keep gameplay behaviour from interfering with authoring.

Muting

Runtime Studio edits a live runtime scene. Gameplay scripts must be muted while players move objects, change components, and use the editor camera, otherwise movement, input, triggers, and timers can fight the edit.

Muting keeps two states separate:

  1. The authored state that should be saved, exported, and restored for gameplay.
  2. The temporary muted state needed while the runtime editor is active.

The muted state is an edit-time shell. It lets players inspect, move, duplicate, save, load, and place objects without waking gameplay logic.

An integration can own its behaviour enabled state through RuntimeIntegration hooks:

  • OwnsBehaviourEnabledState
  • ApplyEditIsolation
  • ApplyEditModeState
  • RestoreEditModeState
  • EnterRuntimePlayMode
  • PrepareForSceneRestore
  • OnComponentRestored
  • RebindRestoredObject
  • PreparePlacedObject
  • GetEditModeBehaviourStates

The integration lifecycle

OwnsBehaviourEnabledState hands responsibility for a behaviour's enabled state to an integration. Use it when the project must preserve the authored enabled value separately from a temporary muted value.

ApplyEditIsolation runs per component and is best for local muting such as disabling a trigger, hotspot, or package-specific behaviour. ApplyEditModeState is for a scene-wide edit-mode pass, while RestoreEditModeState returns objects to their authored edit shell after Runtime Studio play mode ends.

EnterRuntimePlayMode restores gameplay behaviour for Runtime Studio play mode. PrepareForSceneRestore, OnComponentRestored, and RebindRestoredObject let an integration freeze systems before restore work, then rebuild runtime-only links after serialized data is back.

PreparePlacedObject runs while a placed root is inactive, before Runtime Studio restores its authored active state. Use it to disable package behaviours, prepare references, and prevent OnEnable or Start chains from waking up immediately.

GetEditModeBehaviourStates returns the authored enabled values that save and export should preserve. Save and load should never capture the temporary muted state as the player's intended state.

Unity can call Awake before Runtime Studio has control of an object. Runtime Studio can mute many behaviours after initialization, but it cannot undo an Awake method that has already changed the scene. Integrations should keep important setup repeatable and expose a restore path.

Game Creator 2 behaviour

The Game Creator 2 integration owns the relevant character, trigger, hotspot, camera, and related behaviour states. It uses a safe edit shell while players edit the scene, then restores the authored runtime state when Runtime Studio enters play mode.

Triggers keep their real event separate from a temporary muted event so the inspector can still edit the real configuration without firing it. Characters keep their intended player, controllable, kinematic, and enabled states separately from the edit-time values. The integration also restores camera bindings, character model links, and trigger state after a scene restore.