Objective Components
Scene-side detectors that inherit from Objective and request completion of one linked Ordered Objective.
Components
Choose a component by responsibility: detect completion, support another detector, run an action, or provide a shared service.
Scene-side detectors that inherit from Objective and request completion of one linked Ordered Objective.
Helpers and serializable bridges used by a detector or an external system. They do not own progression.
Open Supporting ComponentsReusable operations run from lifecycle configuration or project code, including transport and one-shot scene changes.
Open ActionsShared feedback behavior such as objective and Chapter completion audio.
Open Services| Game signal | Use | Avoid when |
|---|---|---|
| Accepted UI choice | ButtonObjective | The UI already has project code that can call the Chapter directly |
| All targets destroyed | DestructionObjective | Targets are disabled or pooled rather than destroyed |
| Several named signals | MultiActionObjective | The order itself needs several Ordered Objectives |
| Objects occupy destinations | ObjectPlacementObjective | Placement cannot be represented by trigger occupancy |
| Countdown elapsed | TimedObjective | No explicit event will start the timer |
| Collider stays in a zone | TriggerObjective | You need path preview or arrival-only signaling |
| Player reaches a destination | WalkToObjective | The accepted object is not the player |
Every included Objective component uses the base Objective Link: an exact Objective ID, local IsCompleted state, and OnCompleted UnityEvent. A detector may notice its condition at any time, but completion succeeds only when the linked Ordered Objective is the current Active position of the selected Chapter. Repeated, early, late, or wrongly linked requests are rejected without replaying events.
Reset restores transient detector state; it does not clear all saved progress. The active Chapter resets relevant physical Objective components when it starts or steps back. Read each component's Reset section because timers, branches, occupancy flags, and cached colliders need different cleanup.
If none of the included detectors expresses the mechanic clearly, derive from Objective rather than forcing a misleading component. The complete tutorial is at Create a Custom Objective Component.
| Category | Published types | Progression role |
|---|---|---|
| Objective Components | Objective, ButtonObjective, DestructionObjective, MultiActionObjective, ObjectPlacementObjective, TimedObjective, TriggerObjective, WalkToObjective | Request completion for one linked Ordered Objective |
| Supporting Components | PlacementTrigger, IntegratedObjective | Report placement occupancy or expose a serializable external completion bridge |
| Actions | Detonator, ObjectTransportAction | Run reusable scene effects or delegate movement; never choose sequence order |
| Services | ChapterAudioPlayer | Play reusable objective and Chapter feedback without owning state |
No PickupObjective class exists in the V1 Runtime or distribution. The earlier placeholder had no pickup detection or distinct behavior, so it was removed. Complete a pickup through a project-owned custom Objective, an IntegratedObjective, or the external completion API.
ChapterManager, Chapter, ChapterObjective, their states, and progression services are documented under System Model and Runtime. They are not mixed into this detector/action list. Likewise, IProgressStore, IPathMovementAdapter, and INpcRouteAdapter are scripting contracts, not drag-and-drop Objective Components.