Skip to content

Data and Reactions

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

Band

Contains

Active while the string contains a substring.

Fires the reaction when the observed string contains the configured substring and signals exit when it no longer does. Use Ignore Case for case-insensitive matching.

Type: ContainsStringTrigger

Equals

Active while the string equals a target.

Fires the reaction when the observed string equals the target string and signals exit when it changes to anything else. Use Ignore Case for case-insensitive comparison.

Type: EqualsStringTrigger

Inside Box

Active while the Vector3 is inside an axis-aligned box.

Fires the reaction when the Vector3 enters an axis-aligned box (center + size) and signals exit when it leaves. Add hysteresis to suppress flutter at the box boundaries.

Type: InsideBoxVector3Trigger

Inside Sphere

Active while the Vector3 is within a sphere.

Fires the reaction when the Vector3 enters a sphere (center + radius) and signals exit when it leaves. Add hysteresis to suppress flutter at the boundary.

Type: InsideSphereVector3Trigger

Magnitude Past

Active while magnitude is past a threshold.

Fires the reaction when the Vector3's magnitude enters the active region (above or below the threshold) and signals exit when it leaves. Add hysteresis to suppress flutter near the boundary.

Type: MagnitudePastVector3Trigger

Matches Filter

Active while the GameObject passes a filter.

Fires the reaction when the observed GameObject passes the chosen filter (tag, component, layer, name, …) and signals exit when it stops matching. Null sources never match.

Type: MatchesGameObjectTrigger

Range

Active band defined by [min, max].

Fires the reaction when the double enters the [min, max] range and signals exit when the value leaves. Add hysteresis to suppress flutter at the boundaries.

Type: RangeDoubleTrigger

Range

Active band defined by [min, max].

Fires the reaction when the number enters the [min, max] range and stops it when the value leaves. Add hysteresis to suppress flutter at the boundaries. Perfect for lever-in-zone, speed-in-band, or angle-window detection.

Type: RangeFloatTrigger

Range

Active band defined by [min, max].

Fires the reaction when the int enters the [min, max] range and signals exit when the value leaves. Add hysteresis to suppress flutter at the boundaries.

Type: RangeIntTrigger

Threshold

Active band defined by a single threshold + comparison.

Fires the reaction when the number enters the active region (value past the threshold) and stops it when the value leaves. Pick the comparison (above, below, |x| above, |x| below). Add hysteresis to suppress flutter near the boundary.

Type: ThresholdFloatTrigger

Threshold

Active band defined by a single threshold + comparison.

Fires the reaction when the double enters the active region (value past the threshold) and signals exit when the value leaves. Pick the comparison (above, below, |x| above, |x| below). Add hysteresis to suppress flutter near the boundary.

Type: ThresholdDoubleTrigger

Threshold

Active band defined by a single threshold + comparison.

Fires the reaction when the int enters the active region (value past the threshold) and signals exit when the value leaves. Pick the comparison (above, below, |x| above, |x| below). Add hysteresis to suppress flutter near the boundary.

Type: ThresholdIntTrigger

Tiers

Fires with the tier index as the value crosses ascending thresholds.

List the thresholds in ascending order. The reaction fires each time the value moves into a different tier, and the value it fires with is the tier number: 0 below the first threshold, 1 at or above it, and so on. Six fill meshes become one 'Activate First N' process instead of six threshold reactions.

Type: IntTierTrigger

Bool

All False

True only when every input is false.

Returns true only when every value in the list is false. An empty list returns false.

Type: AllFalseBoolCombiner

All True

True only when every input is true.

Returns true only when every value in the list is true. An empty list returns false.

Type: AllTrueBoolCombiner

Any False

True when at least one input is false.

Returns true when at least one value in the list is false. An empty list returns false. Useful for 'something is not yet ready' checks across multiple flags.

Type: AnyFalseBoolCombiner

Any True

True when at least one input is true.

Returns true when at least one value in the list is true. An empty list returns false.

Type: AnyTrueBoolCombiner

None True

True when no input is true.

Returns true when no value in the list is true. An empty list returns true (vacuously).

Type: NoneTrueBoolCombiner

Bool→Int

Count False

How many inputs are false.

Returns the number of values in the list that are false. Useful for objectives remaining, items still locked, etc.

Type: CountFalseIntCombiner

Count True

How many inputs are true.

Returns the number of values in the list that are true. Useful for objectives complete, alive units, etc.

Type: CountTrueIntCombiner

Context

Context Value

The text that started this run: the reaction's new value, or the value a signal carries.

The text that started this run: the new value when a String reaction fires, or the value a signal carries (a number is written out as text). It stays the same for the whole run, even in steps that take several frames. Outside such a run it is empty.

Type: ContextStringValue

Context Value

The number that started this run: the reaction's new value, or the number a signal carries.

The number that started this run: the new value when a Double reaction fires, or the number a signal carries. It stays the same for the whole run, even in steps that take several frames. For the value as it keeps changing, read the source itself. Outside such a run it is 0.

Type: ContextDoubleValue

Context Value

The whole number that started this run: the reaction's new value, or the number a signal carries.

The whole number that started this run: the new value when an Int reaction fires, or the number a signal carries. It stays the same for the whole run, even in steps that take several frames. For the value as it keeps changing, read the source itself. Outside such a run it is 0.

Type: ContextIntValue

Context Value

The true/false that started this run: the reaction's new value, or the value a signal carries.

The true/false that started this run: the new value when a Bool reaction fires, or the value a signal carries. It stays the same for the whole run, even in steps that take several frames. For the value as it keeps changing, read the source itself. Outside such a run it is false.

Type: ContextBoolValue

Context Value

The Vector3 that started this run: the reaction's new value, or the vector a signal carries.

The Vector3 that started this run: the new value when a Vector3 reaction fires, or the vector a signal carries. It stays the same for the whole run, even in steps that take several frames. For the value as it keeps changing, read the source itself. Outside such a run it is zero.

Type: ContextVector3Value

Context Value

The number that started this run: the reaction's new value, or the number a signal carries.

The number that started this run: the new value when a Float reaction fires, or the number a signal carries. It stays the same for the whole run, even in steps that take several frames. For the value as it keeps changing, read the source itself. Outside such a run it is 0.

Type: ContextFloatValue

Cycle

Active While

Keep objects active while the cycle is on.

Turns the listed objects on when the cycle begins and off when it ends. With several targets inside at once they stay on until the last one leaves. Invert keeps them on outside the cycle instead. Use it for hover rings, slot glows and any visual that mirrors a state.

Type: ActiveDuringCycleReaction

Bool

Run the process with a bool: true on cycle begin, false on cycle end.

Turns a cycle into a true/false. The process runs once on each edge with the matching bool as its Context Value (set an Enabled, Kinematic or animator bool to Context Value to follow it) and the cycle's object as its Context. Use Invert to flip it (false while held, true otherwise). Force Complete On Reactor End fires a trailing edge for any target still inside the cycle when the reactor stops, so cleanup-style bodies don't leave state stuck on.

Type: BoolCycleReaction

Per Object

Run the process on cycle edges, per target.

Runs its bodies for whichever object enters or leaves the cycle, so two objects entering means two independent runs. Wire a process's target to the 'Context' source to read the object that triggered the edge. Each slot's retrigger strategy decides what happens when the same object re-triggers that edge while its previous run is still going.

Type: GameObjectCycleReaction

Process

Run processes on cycle begin, while inside, and on cycle end.

Three process slots tied to the cycle's lifecycle: On Begin fires once when a target enters the cycle, While Running starts on begin and is force-stopped on end (use it for tweens, looping sounds, follow effects that should last exactly as long as the cycle), and On End fires once when the target leaves. The runs carry no target or value, so bodies see the cycle as a value-less event. Each slot carries its own retrigger policy.

Type: ProcessReaction

Spawn While

Spawn one object per target for as long as it is in the cycle.

For every object entering the cycle, spawns one item from the creator at that object and returns it to the creator when the object leaves. Attach To Target parents the item under the object so it follows it; off places it once. Point the creator at a pool for hover rings and outlines.

Type: SpawnDuringCycleReaction

Cycles

Frame List

Only one frame in the list can be active at a time; the rest wait their turn.

Holds a list of cycle sources, each paired with a target GameObject. The first to begin wins; the others must wait until the winner's frame ends before any of them can become active. Pick this as the source on an Exclusive Frame Reaction to wire several agents into a shared behavior where only one can be active at a time.

Type: ExclusiveFrameList

Data

Accumulate Float

Adds an input into a stored number every frame, gated and clamped.

Every frame, adds the input value to the stored number. Perfect for building camera controls: feed a mouse axis in and the store becomes the camera's angle or zoom. Only While lets you restrict it to while a button is held. Clamp keeps the result in a range. Scale By Delta Time is for inputs that are rates per second; leave it off for mouse deltas and scroll steps, which are already per-frame amounts.

Type: AccumulateFloatAction

Clear

Removes all entries from the data storage.

Clears every entry from the targeted data storage. Use on play start to reset a shared asset to an empty state.

Type: ClearDataStorageOperation

Data Storage

Stores keyed typed values.

A flat keyed collection. Add entries directly through the inspector via the type picker; each key is unique and maps to one typed value.

Type: DataStorage

Data Storage Asset

Shared asset editable in the Project window.

DataStorage saved as an asset. Create one in the Project window to share key-value data across scenes and components.

Type: DataStorageAsset · Full page

Data Storage Command

Set, increment, or pipeline stored values.

Combines multiple data storage operations (set int, set bool, increment, pipeline, etc.) into a single command targeting one data storage. Instant operations complete immediately; timed operations (like pipelines) keep the command alive until they finish.

Type: DataStorageCommand

Data Storage Component

Holds a Data Storage on this GameObject.

Gives this GameObject its own Data Storage for storing and retrieving typed key-value data at runtime.

Type: DataStorageComponent · Full page

DataStorage From Asset

Observes and writes a DataStorage on a ScriptableObject asset.

Observes the DataStorage held by a DataStorageAsset. Useful for cross-scene reactivity.

Type: DataStorageFromAsset

DataStorage From Component

Observes and writes a DataStorage on a scene component.

Observes the DataStorage held by a DataStorageComponent in the scene. Values can be watched per key, and other operations can write new ones.

Type: DataStorageFromComponent

DataStorage Value From Asset

Reads a DataStorage from a DataStorageAsset.

Reads a DataStorage from a shared Data Storage asset.

Type: DataStorageValueFromAsset

DataStorage Value From Component

Reads a DataStorage reference from a DataStorageComponent.

Provides a DataStorage value by referencing a DataStorageComponent in the scene.

Type: DataStorageValueFromComponent

DataStorage Value From GameObject

Reads a DataStorage from a DataStorageComponent located on a GameObject.

Provides a DataStorage value by locating a DataStorageComponent on a GameObject using a component lookup strategy (on object, in children, in parents, etc.).

Type: DataStorageValueFromGameObject

Increment Float

Adds to a number entry; clamps if configured.

Adds a value to a number entry. Use negative amounts to decrement. Enable clamping to keep the result in a range (e.g. 0..100 for an energy store or a progress value).

Type: IncrementFloatAction

Increment Int

Adds to a counter; wraps if configured.

Adds a value to a number entry. Use negative amounts to decrement. Enable wrapping to cycle through values (e.g. 0,1,2,3,0,1,... for rotation or selection loops).

Type: IncrementIntAction

Reset To Default

Sets every entry's value to its type default.

Goes through the targeted data storage and resets every entry to its default value (0, false, null, and so on). Keys and the entry list stay as they are.

Type: ResetDataStorageOperation

Set Bool

Writes a bool value by key.

Writes a boolean value to a data storage entry. Use for toggles, unlock flags, or any persistent true/false state.

Type: SetBoolAction

Set Float

Writes a number value by key.

Writes a number value to a data storage entry. Use for timers, multipliers, or any other persistent number.

Type: SetFloatAction

Set Float Over Time

Drives a number value by key over time using a pipeline.

Changes a number value in a data storage each frame using a pipeline target and optional modifiers. Use for smooth transitions on timers, multipliers, or any other persistent number.

Type: DataStorageFloatPipelineOperation

Set Int

Writes a number value by key.

Writes a number value to a data storage entry. Use for score tracking, level progress, or any other persistent number.

Type: SetIntAction

Set Int Over Time

Drives a number value by key over time using a pipeline.

Changes a number value in a data storage each frame using a pipeline target and optional modifiers. Use for smooth transitions on counters, scores, or any other persistent number.

Type: DataStorageIntPipelineOperation

Set String

Writes a string value by key.

Writes a string value to a data storage entry. Use for player names, selected items, or any persistent text state.

Type: SetStringAction

Set Vector3

Writes a Vector3 value by key.

Writes a Vector3 value to a data storage entry. Use for directions, positions, axes, or any persistent 3D vector state.

Type: SetVector3Action

Set Vector3 Over Time

Drives a Vector3 value by key over time using a pipeline.

Changes a Vector3 value in a data storage each frame using a pipeline target and optional modifiers. Use for smooth transitions on persistent spatial state.

Type: DataStorageVector3PipelineOperation

Step Selection

Moves focus to the next/previous object in a set.

Moves a stored focus from one object to the next or previous one in a set (a container or detector). Use amount +1 for next, -1 for previous; it loops around the ends. Focus sticks to the same object when the set changes; if the focused object leaves the set, the chosen fallback decides where focus goes.

Type: StepSelectionOperation

Toggle Bool

Flips a bool value by key.

Flips a true/false entry: true becomes false, false becomes true. A missing entry counts as false, so the first toggle sets it to true. Use it for open/close and on/off keys driven by one input.

Type: ToggleBoolAction

Data Storage

Bool From Data Storage

Reads a bool value from a DataStorage by key.

Reads a bool value from a DataStorage by Key.

Type: BoolFromDataStorage

Bool From Keyed Source

Reads the bool at a Key from any keyed source.

Looks up the given Key in the selected keyed source and returns the stored bool. Missing key resolves to false.

Type: ObservableBoolValueFromKey

Bool Keys As Int

Derive an int from several bool keys.

Reads bool values stored at the listed keys and reduces them to an int with the chosen strategy (Count True, Count False).

Type: BoolKeysAsInt

Bounds From Data Storage

Reads a Bounds value from a DataStorage by key.

Reads a Bounds value from a DataStorage by Key.

Type: BoundsFromDataStorage

Float From Data Storage

Reads a number value from a DataStorage by key.

Reads a number value from a DataStorage by Key.

Type: FloatFromDataStorage

Float From Keyed Source

Reads the number at a Key from any keyed source.

Looks up the given Key in the selected keyed source and returns the stored number. Missing key resolves to 0.

Type: ObservableFloatValueFromKey

GameObject From Data Storage

Reads a GameObject reference from a DataStorage by key.

Reads a GameObject reference from a DataStorage by Key.

Type: GameObjectFromDataStorage

GameObject From Keyed Source

Reads the GameObject at a Key from any keyed source.

Looks up the given Key in the selected keyed source and returns the stored GameObject. Missing key resolves to null.

Type: ObservableGameObjectValueFromKey

Int From Data Storage

Reads a number value from a DataStorage by key.

Reads a number value from a DataStorage by Key.

Type: IntFromDataStorage

Int From Keyed Source

Reads the number at a Key from any keyed source.

Looks up the given Key in the selected keyed source and returns the stored number. Missing key resolves to 0.

Type: ObservableIntValueFromKey

Multi-Key Bool

Combine bool values from several keys with a chosen strategy.

Reads bool values stored at the listed keys and combines them with the chosen strategy. Pick All True for an AND, Any True for an OR, All False / None True for the negated forms.

Type: MultiKeyBool

Multi-Key Float

Combine number values from several keys with a chosen strategy.

Reads number values stored at the listed keys and combines them with the chosen strategy (sum, min, max, average).

Type: MultiKeyFloat

Multi-Key Int

Combine number values from several keys with a chosen strategy.

Reads number values stored at the listed keys and combines them with the chosen strategy (sum, min, max).

Type: MultiKeyInt

String From Data Storage

Reads a string value from a DataStorage by key.

Reads a string value from a DataStorage by Key.

Type: StringFromDataStorage

Vector3 From Data Storage

Reads a Vector3 value from a DataStorage by key.

Reads a Vector3 value from a DataStorage by Key.

Type: Vector3FromDataStorage

Data / Entries

Bool Entry

A bool value stored under a Key.

Stores a bool value in the data storage under a Key.

Type: BoolEntry

Bounds Entry

A Bounds value stored under a Key.

Stores a Bounds value in the data storage under a Key.

Type: BoundsEntry

Float Entry

A number value stored under a Key.

Stores a number value in the data storage under a Key.

Type: FloatEntry

GameObject Entry

A GameObject reference stored under a Key.

Stores a GameObject reference in the data storage under a Key.

Type: GameObjectEntry

Int Entry

A number value stored under a Key.

Stores a number value in the data storage under a Key.

Type: IntEntry

Key Entry

A key stored under a key (tag/category).

Stores a key in the data storage under another key. Use for tagging items with categories, for example an Item declaring its visual category so a visualizer can pick the matching pool.

Type: KeyEntry

String Entry

A string value stored under a Key.

Stores a string value in the data storage under a Key.

Type: StringEntry

Vector3 Entry

A Vector3 value stored under a Key.

Stores a Vector3 value in the data storage under a Key.

Type: Vector3Entry

Edge

Became Non-Null

Fire when the GameObject becomes non-null.

Fires the reaction each time the source GameObject transitions from null to a real reference. Use Apply On Begin to fire immediately if the source is already non-null when the reactor starts.

Type: BecameNonNullGameObjectTrigger

Became Null

Fire when the GameObject becomes null.

Fires the reaction each time the source GameObject transitions from a real reference to null. Use Apply On Begin to fire immediately if the source is already null when the reactor starts.

Type: BecameNullGameObjectTrigger

Every Nth Raise

Fire once per N raises of the observed event.

Counts raises and fires only on every Nth one. N=1 behaves like On Every Raise; N=3 fires once per three raises. Use to throttle a chatty event source.

Type: EveryNthRaiseEventTrigger

On Change

Fire on every change of the observed double.

Fires the reaction once each time the double changes. Use Apply On Begin to also sync the process to the initial value when the reactor starts.

Type: OnChangeDoubleTrigger

On Change

Fire on every change of the observed number.

Fires the reaction once each time the number changes. Use Apply On Begin to also sync the process to the initial value when the reactor starts.

Type: OnChangeFloatTrigger

On Change

Fire on every change of the observed int.

Fires the reaction once each time the int changes. Use Apply On Begin to also sync the process to the initial value when the reactor starts.

Type: OnChangeIntTrigger

On Change

Fire on every change of the observed GameObject.

Fires the reaction once each time the GameObject changes (including becoming or leaving null). Use Apply On Begin to also sync the process to the initial value when the reactor starts.

Type: OnChangeGameObjectTrigger

On Change

Fire on every change of the observed bool.

Fires the reaction once each time the bool changes. Use Apply On Begin to also sync the process to the initial value when the reactor starts.

Type: OnChangeBoolTrigger

On Change

Fire on every change of the observed string.

Fires the reaction once each time the string changes. Use Apply On Begin to also sync the process to the initial value when the reactor starts.

Type: OnChangeStringTrigger

On Change

Fire on every change of the observed Vector3.

Fires the reaction once each time the Vector3 changes. Use Apply On Begin to also sync the process to the initial value when the reactor starts.

Type: OnChangeVector3Trigger

On Every Raise

Fire on every raise of the observed event.

Fires the reaction once each time the source event raises. The default for Event Reaction.

Type: OnEveryRaiseEventTrigger

On False

Fire when the bool becomes false.

Fires the reaction each time the bool flips from true to false. Use Apply On Begin to fire immediately if the source is already false when the reactor starts.

Type: OnFalseBoolTrigger

On Others Locked

Fire against each locked-out participant on activation.

When a participant becomes active, dispatches the process once against each other participant's target, one fire per locked-out participant. Pair with On Self Activate to drive both winner and losers from the same group.

Type: OnOthersLockedExclusiveTrigger

On Others Released

Fire against each ex-loser when the active participant releases.

When the active participant's cycle ends and the group becomes idle, dispatches the process once against each previously-locked-out participant's target. Use to undo the locked-out side effect.

Type: OnOthersReleasedExclusiveTrigger

On Self Activate

Fire when a participant becomes the active one.

Dispatches the process against the winning participant's target each time it becomes active. Use a separate trigger entry with On Others Locked to also react against the locked-out participants.

Type: OnSelfActivateExclusiveTrigger

On True

Fire when the bool becomes true.

Fires the reaction each time the bool flips from false to true. Use Apply On Begin to fire immediately if the source is already true when the reactor starts.

Type: OnTrueBoolTrigger

Events

Reactor Signal

Fires when a signal reaches a Reactor.

Fires every time the chosen signal is sent to the Reactor you point it at. Use it in a Wait For Event to hold until something sends that signal, for example until a strike lands. When the object has several Reactors, it listens on every one the find rule returns.

Type: ReactorSignalEvent

Signal Command

Invoke signals on Reactor(s).

Finds Reactor components on the target GameObject and runs signal operations on each. Operations can send signals or do other reactor work.

Type: SignalInvokeCommand

Float

Average

Arithmetic mean of every input.

Returns the sum of every value divided by the count. An empty list returns 0.

Type: AverageFloatCombiner

Max

Maximum of every input.

Returns the largest value in the list. An empty list returns 0.

Type: MaxFloatCombiner

Min

Minimum of every input.

Returns the smallest value in the list. An empty list returns 0.

Type: MinFloatCombiner

Sum

Sum of every input.

Adds every value in the list together. An empty list returns 0.

Type: SumFloatCombiner

Int

Max

Maximum of every input.

Returns the largest value in the list. An empty list returns 0.

Type: MaxIntCombiner

Min

Minimum of every input.

Returns the smallest value in the list. An empty list returns 0.

Type: MinIntCombiner

Sum

Sum of every input.

Adds every value in the list together. An empty list returns 0.

Type: SumIntCombiner

Logic

Not Bool

Inverts an observable bool source.

Wraps another bool-valued source and returns its opposite. Use it on a Bool Reaction's source when you want triggers to behave as if the underlying bool were flipped, for example, fire On True when the wrapped source becomes false.

Type: NotBool

Reactive

List Match Reaction

Run different commands on matching vs non-matching list entries.

Runs match commands for each entry that equals the observed GameObject, non-match commands for the rest, and null commands for every entry when the observed value is null. Inside the commands, Each Object is the entry. Place this inside a GameObject Reaction so it can read the observed value.

Type: GameObjectListMatchReaction

Reactor

Hosts targets that observe sources and dispatch reactions.

Hosts a list of targets. Each target watches one source (a value, an event, a signal, a frame cycle) and runs its own reactions when that source fires. Add multiple targets to one Reactor, or split them across several components, both work.

Type: Reactor · Full page

Reference

From Data Storage

Finds a component by name in a data storage.

Looks up a Component reference by Key from a DataStorageComponent on the target GameObject.

Type: FromDataStorageStrategy

Signal

Invoke Signal

Sends a signal to the reactor.

Sends a signal to the target Reactor. The Reactor passes the signal on to any of its entries that listen for it. Attach a Value to send a number, text or object along: the receiving reaction reads a value with Context Value, and an object becomes its Context.

Type: InvokeSignalOperation

Targets

Active Between Signals

Keep objects active from an On signal to an Off signal.

Turns the listed objects on when the On signal arrives and off when the Off signal arrives. Invert swaps the two states. Use it for a highlight that a detector switches on and off with two signals.

Type: ActiveBetweenSignalsTarget

Bool

React to a bool source through one or more triggers.

Watches one bool source. Add a reaction per condition you want to react to (on every change, when it becomes true, when it becomes false). Each reaction has its own process and policies, so a single source can drive many independent reactions.

Type: BoolReactorTarget

Cycle

React to a cycle source's begin/end edges.

Watches one cycle source (Attachment Point Holding, AttachingAgent Grabbing, item membership, …). Add a reaction per shape: Process (no value, with begin/while/end slots), GameObject (the target is the run's Context), or Bool (true while inside, as Context Value). Each reaction has its own bodies and policies so a single source can drive many independent reactions.

Type: CycleReactorTarget

Double

React to a double source through one or more triggers.

Watches one double source. Add a reaction per condition you want to react to (on every change, while past a threshold, while inside a range). Each reaction has its own process and policies, so a single source can drive many independent reactions.

Type: DoubleReactorTarget

Event

React to one event through one or more triggers.

Watches one event. Add a reaction per condition you want to react to (every raise, every Nth raise, …). Each reaction has its own process, retrigger strategy, and stop condition.

Type: EventReactorTarget

Exclusive

React to a mutual-exclusion group's lifecycle events.

Watches one exclusive source (typically a Frame List of participants). Add a reaction per lifecycle event you care about: On Self Activate fires against the winner; On Others Locked fires against each loser when the group activates; On Others Released fires against each ex-loser when the active participant's cycle ends.

Type: ExclusiveReactorTarget

Float

React to a number source through one or more triggers.

Watches one number source. Add a reaction per condition you want to react to (on every change, while past a threshold, while inside a range). Each reaction has its own process and policies, so a single source can drive many independent reactions.

Type: FloatReactorTarget

GameObject

React to a GameObject source through one or more triggers.

Watches one GameObject source. Add a reaction per condition you want to react to (on every change, on becomes non-null / null, while a filter matches). Each reaction has its own process and policies. The GameObject is the Context of each run: commands inside act on it when their target is Context.

Type: GameObjectReactorTarget

Int

React to an int source through one or more triggers.

Watches one int source. Add a reaction per condition you want to react to (on every change, while past a threshold, while inside a range). Each reaction has its own process and policies, so a single source can drive many independent reactions.

Type: IntReactorTarget

Key Held

React when a key has been held for a duration.

Accumulates time while the key is down, every gate condition passes, and the subject (when wired) resolves to an object. Reaching the hold duration runs the process once, with the resolved subject as the process context. Releasing the key or failing a gate resets the accumulation; with Require Release on, the key must be released before a new hold can begin after a fire. The holding process runs from the first frame a hold accumulates until it fires, is released, or a gate fails, so it can show the hold building up. The released process runs when a hold stops without firing, so it can ease the subject back.

Type: KeyHeldReactorTarget

Signal

React to one signal pushed into the reactor.

Listens for one signal sent to this reactor. When that signal arrives, the process runs. If the sender attached a value, Context Value reads it; if it attached an object, that object is the Context. Wrap multiple actions in a composite process if needed.

Type: SignalReactorTarget

String

React to a string source through one or more triggers.

Watches one string source. Add a reaction per condition you want to react to (on every change, while equals, while contains). Each reaction has its own process and policies.

Type: StringReactorTarget

Vector3

React to a Vector3 source through one or more triggers.

Watches one Vector3 source. Add a reaction per condition you want to react to (on every change, while magnitude past a threshold, while inside a box or sphere). Each reaction has its own process and policies.

Type: Vector3ReactorTarget

UI

Set Image Fill

Writes a 0..1 amount into the target's UI Image fill.

Finds the first UI Image on the target or its children and sets its Fill Amount, clamped to 0..1. The Image must be of type Filled and have a sprite. Inside a Float reaction, set the amount to Context Value to follow the reacted value.

Type: SetImageFill

Write Number To Text

Writes a number into the target's UI Text.

Finds the first UI Text on the target or its children and writes the number into it. Use the format to add words around it, for example 'Delivered: {0}' or '{0} / 20'. Inside an Int reaction, set the number to Context Value to write the reacted value.

Type: WriteNumberToText

General

Bool

Send a bool with the signal.

Type: BoolSignalValue

Double

Send a double with the signal.

Type: DoubleSignalValue

Float

Send a float with the signal.

Type: FloatSignalValue

GameObject

Send a GameObject with the signal; it becomes the receiver's Context.

Type: ObjectSignalValue

Int

Send an int with the signal.

Type: IntSignalValue

String

Send a string with the signal.

Type: StringSignalValue

Vector3

Send a Vector3 with the signal.

Type: Vector3SignalValue