Skip to content

Zone scene workflow ​

Read time 4 minutes

The scene toolbar offers Scene: Simple and Scene: Full. Simple keeps common properties visible; Full exposes the advanced data, runtime, diff and save-report pages. Review zone opens actionable findings, dependency browsing, embedded children and state conditions. Double-click an issue to select/frame its object. Double-click a referenced asset to open it.

Native editing ​

  • Lights: select a light to edit linear RGB, attenuation, fade/cut distances, specular intensity, cone angles and bulb dimensions. Apply creates one undo operation. Cone ordering and numeric values are validated before modifying the document. These values export to the native zone; the scene preview does not simulate authored game lights.
  • Visual effects: select an effect to edit tint, opacity (0–255), wind multiplier, spawn delay and its existing effect reference. Selection is limited to the current zone's native effect table. Transform tools remain available. Particle simulation and creating new effect dependencies are not implemented by these controls.
  • Actors: existing placement, flags, definition links and script references remain available. Duplicate eligibility now accounts for instance overrides, parent/stitch relationships, physics/destruction/hibernation dependencies and root layout before enabling the operation. Complex actor dependency duplication remains unsupported.
  • Collision: use contextual collision tools for the existing box/mesh generation, donor imports and supported synchronization. Review identifies visual-only objects and moved models configured to leave collision unchanged. Invalid transforms or missing actor roots stop export before binary preparation. Collision rebaking for arbitrary native physics layouts is still outside this editor.

Organization and saving ​

Responsive editing ​

Actor creation, rename, asset replacement and deletion update the live scene without reloading its geometry. Native actor table changes are deferred to Save/Build. Undo keeps the affected records rather than a copy of the entire zone. Existing actor-root compatibility checks still apply.

Logic retains unchanged nodes, pins, wires and outline rows. Connecting, disconnecting and reconnecting declared pins updates the affected wires; adding an actor reference adds one variable node. These edits preserve the viewport, graph position and loaded assets.

Props remain editable while their resources prepare. Some objects may take a moment to appear while their resources load.

Actor instance edits ​

Use Actors → Add actor → Add placed actor for an actor that starts active. Use Add spawn template for an actor that waits for a script to spawn it. Both can use model-root or plain point/box-root .actor definitions. The Scene Add actors palette offers the same instance/template choice and viewport placement. Point actors appear as script helpers, rather than visible models.

Select the instance and use Create script reference to add an Actor variable bound to its identity in Logic. You still create the graph actions and connect the pins yourself. If the zone has no graph, create one in Logic first.

Select an actor in Scene or open Tools → Actors. Its actor properties include Rename actor, an editable asset path with Change actor asset, and Delete actor. Each operation supports Undo/Redo. Use Save to Stage to write the edited zone.

Changing the asset affects the selected instance, retaining its identity and transform. The replacement must load from the Stage or game archives and have a compatible root type and size. Deleting an actor removes its scene root, clears script bindings to it, and renumbers bindings to later actors.

Deletion and asset replacement currently support plain point/box roots and dependency-free model roots. Actors with instance component overrides, parent or stitch dependencies, or baked physics/destruction/hibernation require additional authoring support. Deletion also rejects zones with actor groups and actors in the model streaming table. The editor explains unsupported operations before changing the document. Renaming does not require these root restrictions.

Save to Stage also stores editor groups, hidden/locked objects and Simple/Full mode in the existing hash-bound stage editor-state file. This state is separate from game visibility/parenting. Loading it requires the compiled zone hash to match. The existing manual group import/export is still available.

Zone saves retain the companion-file preparation, cancellation, conflict checks and recoverable snapshot workflow. A structural check is not a substitute for testing gameplay.

Embedded zones ​

Review zone → Embedded zones lists the native child directory. Extract child writes a standalone copy for editing. Replace child accepts a supported zone that fits the current child slot, strips an ordinary asset wrapper to its native DAT1 payload, preserves its parent asset identity, and updates its size without relocating other sections. Replacement is undoable and is exported when the parent is saved.

Growing children, adding/removing embedded entries and rebuilding cross-zone dependencies need additional authoring support. Bounds and overlap checks reject invalid directories before extraction/replacement. Children are not automatically composed into the parent viewport yet. Test embedded replacements in game before relying on them in a release.

State conditions ​

Review zone → State conditions decodes the nested load-hint data into embedded-child paths and required dynamic-enum values. Entries without conditions are shown as always loaded. Unknown/malformed layouts remain preserved and report that inspection is unavailable.

This is inspection, not a world-state editor. Loading also uses level-side generated data; changing only a zone string would not reliably update that data. Creating state variants, changing conditions and rebuilding those level relationships remain future work.

Luna Tools Documentation