CURATED WORKFLOW
Coordinate a feature component with update ordering and explicit state ownership
game-or-shared-unknown not runtime verifiedWorkflow ID: workflow.component-update-ownership
Snapshot: 3ba1c69afc74a97f-7fcd0798fd6ea455
Prerequisites
- A component type with a documented lifecycle
- An explicit feature-owned state/fact contract
- An event or narrow query/command surface where available
Ordered steps
| # | Action | State/evidence | Symbols |
|---|---|---|---|
| 1 | Resolve the component lifecycle/update declarations and any registration/setup attributes. | metadata-only-internal-or-scope-limited Exact symbols must be resolved before implementation. | method:Sandbox.Component:OnDisabled(), method:Sandbox.Component:OnEnabled(), type:Sandbox.Component, type:Sandbox.GameObject |
| 2 | Subscribe/emit through the narrow event or communication surface instead of reaching into sibling state. | source-demonstrated Source/examples can show intended ordering but may be editor/internal. | method:Sandbox.Network.GameNetworkSystem:Broadcast(T,System.Nullable`1<Sandbox.Connection.Filter>), type:Facepunch.ActionGraphs.Signal, type:Sandbox.Component.IPressable.Event |
| 3 | Unsubscribe/cleanup and preserve ownership across networking or scene teardown. | unresolved Runtime lifecycle and networking verification remain required. | method:Facepunch.ActionGraphs.ActionGraph.SerializationOptionsScope:Dispose(), method:Sandbox.Component:Destroy(), property:Sandbox.Component:Network(), type:Sandbox.Connection |
Lifecycle and ordering
- Registration/setup must precede callbacks; disable/destroy must pair with cleanup.
- Do not advance render-only state from repeated composition calls.
State ownership
- Each feature owns its facts/state; sibling communication uses explicit contracts.
- Networking ownership must be read back rather than inferred from local visibility.
Resource lifetime
- Subscriptions, resources and temporary handles are released on disable/destroy.
- Scene reload and connection loss are explicit cleanup paths.
Known failure modes
- Callbacks can run before a resource or registration exists.
- Static/public visibility does not establish lifecycle or sandbox availability.
- A source example may target an editor/test configuration.
Evidence and unresolved questions
curated; not a complete workflow graph
- Installed build lifecycle order for the chosen component.
- Network teardown and scene reload behaviour for the feature.
Next useful probe: Run an installed-engine lifecycle probe that logs enable/update/disable/destroy, resource creation/cleanup and network ownership transitions.