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