Skip to content

Processes and Commands

Picker entries from Jungle Core. Grouped by the category the picker shows them under.

Data

Value Command

Write a value once, over time, or while running.

Runs the listed value operations in parallel. Write operations complete at once, Over Time operations run their pipeline, While Active operations hold the value until the host stops the command, so put those in a Process Component or a While Running slot.

Type: ValueCommand

Editor

When This Object Changes

Runs when you edit or move this object in the editor.

Runs the process every time you change this object in the editor: moving it, dragging one of its handles, or editing any of its components. Turn on children to also react to edits on objects under it, and to objects dropped or created under it. Pick another object to watch that one instead.

Type: WhenObjectChangesTrigger

Lifecycle

Controllable Cycle

Begin/End when another Jungle component begins and ends.

Watches another Jungle component's own Begin and End (a Process Component, Reactor, Detector, ...). Fires no matter what started that component: its own execution frame, a command, or code. Leave the provider empty to use another Jungle component on this same object.

Type: ControllableCycleFrame

Cycle Group

Begin when all, any, or N child cycles are entered together.

Watches several cycle sources at once and fires a single Begin when enough of them are entered at the same time (All for a crafting recipe with every slot filled, Any for 'something is docked', At Least N for a threshold). End fires once when the count drops back below. Begin carries the object whose entry completed the set, End the one whose exit broke it.

Type: CycleGroupFrame

Event Pair

Begin and End fired by two separate events.

Picks two independent events: one starts the component, one stops it. Use when no paired cycle exists for the source you want to listen to.

Type: EventPairFrame

External

Begin/End only via code, UnityEvents, or Commands.

Disables automatic Begin/End wiring. The component runs only when something else explicitly calls Begin() or End().

Type: ExternalFrame

MonoBehaviour Phase

Begin/End at a fixed point in the object's lifetime.

Begin and End fire at a chosen lifecycle moment on the host component: Enable/Disable (while the component is active), Start/Destroy or Awake/Destroy (the component's full lifetime).

Type: MonoLifecycleFrame

Process Finished

Begin when another Process Component finishes its run.

Starts this when the chosen Process Component's run finishes by itself, for example once a spawner is done spawning. If that run already finished, this starts right away. Pick how it stops: when the other component starts again, never, or on an event.

Type: ProcessFinishedFrame

Lifecycle / Membership

Container Membership

Per-object Begin/End driven by a GameObject container's contents.

Pick a container that holds GameObjects. Begin fires as each object enters the container, End fires as it leaves. Joining mid-flight catches you up: Begin replays for every object already inside.

Type: ContainerMembershipCycleFrame

Detector Membership

Per-object Begin/End driven by a Detector's detected set.

Pick a Detector. Begin fires for each object as the Detector picks it up, End fires as it leaves. Joining mid-flight catches you up: Begin replays for every object already detected.

Type: DetectorMembershipCycleFrame

Math

Double Value

Provides a double value as a pipeline destination.

Supplies a double value for the pipeline to move toward. The value can change at any time, so the pipeline keeps following it and never reports the target as reached on its own.

Type: DoubleValueTarget

Float Value

Provides a number as a pipeline destination.

Supplies a number for the pipeline to move toward. The value can change at any time, so the pipeline keeps following it and never reports the target as reached on its own.

Type: FloatValueTarget

Int Value

Provides a number as a pipeline destination.

Supplies a number for the pipeline to move toward. The value can change at any time, so the pipeline keeps following it and never reports the target as reached on its own.

Type: IntValueTarget

Objects

Component Command

Enable, disable, or pulse any Behaviour (MonoBehaviour scripts, Animator, AudioSource, Light, Camera, Collider2D, …).

Runs operations against any component with an enabled checkbox in its header, including your own scripts, Animator, AudioSource, Light, Camera, and Collider2D. For 3D Colliders use Collider Command, for Renderers use Renderer Command. Combine Set Enabled with Set Enabled For Duration to toggle components on and off for timed windows.

Type: ComponentCommand

Controllable Component Command

Start, stop, or drive any Controllable Component.

Start, stop, or drive any component that can begin and end, such as Process Component, Reactor, or Object State Holder. Add, remove, and reorder operations in the list to build the exact behavior you need.

Type: ControllableComponentCommand

Detector Command

Drive a Detector: ignore, clear, or release items.

Runs operations on a Detector. Use Ignore operations to suppress items that were just consumed by another system, such as a drag zone, until the draggable physically leaves range. Clear forces a full reset. Release All Ignored cancels active suppressions.

Type: DetectorCommand

Orchestration / Composition

Conditional Process

Runs only if all conditions pass.

Checks all conditions before triggering. If any fails, completes immediately without executing the process.

Type: ConditionalProcess

For Each Object

Runs commands once for every object in a set.

Pick a set of objects (a detector, a container, a list) and the commands to run. The commands run once per object; inside them, Each Object is that object and Context is still the object of the outer run. Use it when something happens that should be applied to everything currently in the set, rather than to one object arriving or leaving.

Type: ForEachObjectProcess

Process From Component

Wraps a Process Component in the scene.

Hands off to a Process Component sitting in the scene. Triggers the launcher and finishes when the launcher does. Use this to plug a scene component's process into a process sequence saved in the Inspector.

Type: ProcessFromComponent

Process List

Runs a list of processes sequentially or in parallel.

Sequential: each process starts after the previous one finishes. Parallel: all processes start together and the list finishes when they all do. Retriggering is decided where the whole run starts, not by this list.

Type: ProcessList · Full page

Random Process

Randomly selects and executes one process from a list.

Picks one process at random from a weighted list and runs it. Each entry can have a different weight to control probability. Use for random sound effects, varied animations, or procedural variation.

Type: RandomProcess

Selective Parallel

Runs processes in parallel with configurable completion rules.

All processes start simultaneously. Only processes marked as 'critical' count towards completion. Non-critical processes (e.g. measurements, visual effects) run alongside without blocking. When all critical processes finish, each non-critical process is handled according to its stop behavior.

Type: SelectiveParallelProcess

Sequencer

Plays processes placed on rows with absolute or clip-relative start anchors.

Each clip starts at an absolute time, with another clip's start, or after another clip's end. Open-ended clips (undefined duration) create an undefined zone: nothing can sit at an absolute time inside it, but clips can anchor to the open clip's start or end. The sequencer completes when every clip has completed, then repeats per its loop count. Muted clips keep their place in the schedule but play nothing. Markers fire their process when the clock passes them, without holding the sequencer open.

Type: TimelineProcess

State Process

Groups processes into a state with active and pause phases

Groups processes into a state with active and pause phases. The main process runs while active, the pause process runs while paused. Use for managing game states like dragging, hovering, or attacking.

Type: StateProcess

Wait For Cycle End

Waits for a cycle to end, then completes.

Subscribes to one cycle when it begins and completes the first time that cycle ends: a Process Component stopping, an attachment point letting go, an object leaving a container. Put it in a parallel Process List next to a Wait to continue only once both a timer and a motion are done.

Type: WaitForCycleEndProcess

Wait For Event

Waits for an event to fire, then completes.

Subscribes to one event when it begins and completes when that event fires. Optionally kicks off a starter process at the same time (fire-and-forget). Use this to bridge external completion signals, such as a Local Signal Transmitter raise, a button click, or a value-change event, into a process sequence.

Type: WaitForEventProcess

Orchestration / Targets

All At Once

Every target starts at the same time.

When the target is several objects, every one of them starts at the same time.

Type: ParallelTargets

Staggered

Targets start one after another, with a gap between each.

When the target is several objects, they start one after another in list order, with the gap below between each. The gap is read again as each one starts, so a value that changes over time, counted from the run's start, gives a gap that grows or shrinks. The command finishes once the last one is done.

Type: StaggeredTargets

Orchestration / Timing

Cooldown

Runs the inner process, then ignores new runs for a while.

Runs the inner process, then refuses to run it again until the cooldown has passed. A run that lands inside the cooldown completes at once and does nothing. Use it to stop a sound or shake from stacking when the trigger fires in bursts.

Type: CooldownProcess

Delayed

Waits before running the inner process.

Waits for a set time, then runs the inner process.

Type: DelayedProcess

Repeat

Runs the inner process a number of times in a row.

Runs the inner process again each time it finishes, with an optional pause between runs. Set the count to 0 to repeat until something stops it. Use it for a triple flash, a pulsing glow, or a stutter of particle bursts.

Type: RepeatProcess

Scheduled

Re-runs the inner process on a schedule.

Runs the inner process each time the schedule ticks (every X seconds, every X frames, …). Runs never overlap: a still-running inner process is left to finish before it is begun again. With a repeating schedule this keeps going until the host stops it.

Type: ScheduledProcess

Wait

Waits for a number of seconds, then completes.

Pauses a sequence for a number of seconds, then completes. No work is performed — use this to insert a timed gap between steps.

Type: WaitProcess

Pipeline / Composite

All Of (Composite)

Stops when every child check agrees.

Combines several stop conditions and only stops the pipeline once all of them are true at the same time. For example, require that the blend finishes and the object is within distance of its destination.

Type: AllOfCompletionCheck

Any Of (Composite)

Stops as soon as any child check agrees.

Combines several stop conditions and stops the pipeline as soon as the first one is true. For example, stop when the object is within distance, or after a maximum duration as a safety net.

Type: AnyOfCompletionCheck

Pipeline / Distance

Distance Between

Stops once two points come within a distance of each other.

Keeps running until point A gets within the distance of point B, then stops. Point A at the object that moves and B at where it should get to. Set a hold time to stop only once A has stayed that close for a while, so a pass that just brushes past does not count. Turn on Invert to stop when they move apart instead.

Type: DistanceBetweenCondition

Distance To Target

Stops when close enough to the target at a chosen pipeline stage.

Stops the pipeline when the distance between a pipeline stage value and the destination drops below the threshold. Choose which stage to measure at: raw target output, post-modifier, or applied value.

Type: DistanceCompletionCheck

Transform Distance

Stops when position and rotation converge.

Stops the pipeline once both the position distance and the rotation angle (in degrees) drop below their thresholds. Set rotation threshold to 0 to ignore rotation. Position is measured at the stage you pick in Measure Point (after modifiers by default).

Type: TransformDistanceCompletionCheck

Pipeline / Events

Event Fired

Stops when a specific event is raised

Keeps the process running until a specified event is raised, then stops execution.

Type: EventFiredExecutionCondition

Pipeline / Lifecycle

Destination Finished

Stops when this target reports it has finished its built-in work.

Stops the pipeline when this target signals it has finished its own work. What that means depends on the target: a blend finishing its last step, a duration elapsing, a curve reaching its end, a sequence visiting its last step, and so on. Follow targets (transform, ray, GameObject position) never finish on their own, so picking this on them is the same as Never Stop. Combine with another check via All Of / Any Of if you also need a fallback.

Type: ProgressionCompleteCheck

Duration

Stops after a set duration.

Stops the pipeline after the specified number of seconds have elapsed. Use for timed animations, lerp transitions, or any pipeline that should run for a fixed time.

Type: DurationCompletionCheck

Execute Once

Executes once then stops

Runs the process once, then stops it from running again until it's explicitly reset.

Type: ExecuteOnceExecutionCondition

Never Stop

Runs indefinitely until stopped externally.

The pipeline runs forever until something else tells it to stop. Use for follow-targets like mouse tracking, where the drag system controls when it ends.

Type: NeverStopCompletionCheck

Never Stop

Runs indefinitely until stopped externally

Never stops the process on its own. The host system must stop execution externally.

Type: NeverStopExecutionCondition

While Condition Met

Continues while a condition remains valid

Keeps the process running while a referenced Condition stays true, and stops the moment it goes false.

Type: WhileConditionMetExecutionCondition

Pipeline / Time

Duration

Continues execution for a set duration then stops

Runs the process for a specified number of seconds, then stops automatically.

Type: DurationExecutionCondition

Scenes

Load Scene

Loads the scene right away.

Loads the linked scene now, blocking until it is in. Single replaces every open scene with this one, Additive adds it on top of what is already loaded. Optionally make it the active scene, so new objects spawn there and its lighting applies. Requires a scene source that supports blocking loads. Build Settings does, Addressables does not, so pair an Addressable scene with Load Scene (Async) instead. Note: Single unloads the scene this command lives in, so put scene-loading logic on an object that survives across scene loads.

Type: LoadSceneOperation

Load Scene (Async)

Loads the scene in the background.

Streams the linked scene in without a hitch. Additive adds it on top of what is loaded, Single swaps everything for it. Turn off Allow Scene Activation to pre-load and stop short of switching in. The scene stays inactive and hidden until something turns activation back on, useful for a loading screen. Works with both Build Settings and Addressable scenes.

Type: LoadSceneAsyncOperation

Scene Command

Load, unload, or activate a scene.

Drives one linked scene through a list of operations. Drag a scene into the Scene field, then add operations such as Load Scene, Load Scene (Async), Unload Scene, or Set Active Scene. The scene link's Delivery setting decides whether it loads from Build Settings or through Addressables. To act on several scenes, add several Scene Commands.

Type: SceneCommand

Set Active Scene

Makes the scene the active one.

Makes the linked scene the active scene: newly created objects go there and its lighting/skybox settings take over. The scene has to be loaded first (use a Load operation before this one).

Type: SetActiveSceneOperation

Unload Scene

Unloads the scene.

Unloads the linked scene and frees its objects. Unloading always runs in the background. Keep 'Wait For Completion' on to hold the command until the scene is fully gone; turn it off to start the unload and continue immediately. Works with both Build Settings and Addressable scenes.

Type: UnloadSceneOperation

State

State Machine

Keyed event-driven state machine with per-state transitions.

Hosts a list of states (each identified by a key) and their outgoing transitions. When a state is entered, its transitions start listening; the first one that fires moves the machine to its target state. No frame-by-frame polling — transitions react to events.

Type: StateMachine · Full page

State Node

A state value paired with its outgoing transitions.

One slot in a State Machine: the state itself plus the list of transitions that can move out of it.

Type: StateNode

State Transition

A condition + target state pair: when the condition fires the machine transitions to the target state.

Pairs a transition condition with a target state. While the owning state is active the condition listens; when it fires, the State Machine moves to the target state.

Type: StateTransition

State Value

A state identified by a key, with its inline state process.

Pairs a key with a state process. The key uniquely identifies this state inside a State Machine; the state process drives whatever runs while the state is active.

Type: StateValue

State / Transitions

All Processes Done

Transitions once the state's processes finish on their own.

Waits for the state's processes to complete naturally, then triggers the transition. Use for sequences that should advance only when their work is done.

Type: AllProcessesDoneCondition

Composite

Combines several transition conditions with AND or OR.

Holds a list of transition conditions. In All mode every child must fire before the transition; in Any mode the first child to fire triggers it.

Type: CompositeTransitionCondition

On Condition

Transitions when a Condition becomes valid.

Adapts a regular Condition into a state transition. The condition is checked every frame while the state is active; the first frame it becomes valid, the transition fires.

Type: ConditionAdapter

On Event

Transitions when a specific event is raised.

Listens to an Event while the state is active. The first time it raises, the State Machine moves to the transition's target state.

Type: EventTransitionCondition

Wait One Frame

Transitions on the frame after the state is entered.

Triggers the transition one frame after the state begins. Useful for chaining states without leaving the machine sitting on an empty state.

Type: WaitOneFrameCondition

General

Begin

Starts the target Controllable Component.

Starts the target Controllable Component, for example a Process Component, from a command sequence.

Type: BeginControllableComponent

Clear Detected

Raise loss events for all detected items and reset ignore state.

Resets the detector so every item counts as freshly detected, even ones still physically present. Unlike Ignore All Detected, items can be re-detected right away.

Type: ClearDetectedOperation

Current Value

Holds the value the pipeline started at; modifiers move around it.

Keeps the value where it was when the pipeline began. On its own it changes nothing; add a punch, noise or spring modifier to move around that resting value, and set how long it runs below.

Type: FloatHoldTarget

End

Stops the target Controllable Component.

Stops the target Controllable Component, for example a Process Component, from a command sequence.

Type: EndControllableComponent

Ignore All Detected

Suppress every currently detected item until each physically leaves range.

Ignores every detected item in one go. Good default when a zone absorbs a dragged object and you want the detector to stay quiet until the object has moved clear of every item still in range.

Type: IgnoreAllDetectedOperation

Ignore GameObject

Suppress a specific item resolved from a GameObject until it physically leaves range.

Ignores one specific object. Pass in a GameObject and the detector matches it to the tracked item, then suppresses only that one. Other items in range keep working as normal. Hand it a value that is sometimes empty and nothing is suppressed on those runs.

Type: IgnoreGameObjectOperation

Ignore Last Detected

Suppress the most recently added item until it physically leaves range.

A single-item version of Ignore All Detected. Call it right after the event that identified the item, such as drop-begin, before other items have time to enter range.

Type: IgnoreLastDetectedOperation

Release All Ignored

Cancel every active ignore flag so suppressed items can be re-detected.

Undoes Ignore operations. Rarely needed, since ignored items already release themselves when they leave range, but useful for manual resets.

Type: ReleaseAllIgnoredOperation

Set Enabled Component Operation

Set Enabled

Turns the target component on or off.

Type: SetEnabledComponentOperation

Set Enabled For Duration

Turns the target on or off, holds it for a duration, then reverts.

Turns the target on or off, waits the given duration, then optionally puts it back the way it was.

Type: SetEnabledForDurationComponentOperation