🧙‍♂️Built-in Content

Countdown

A Countdown Config functions as a countdown timer and is utilized to trigger a node after a specified period. It is comparable to the Delay Modifier; however, Countdown Config offers additional functionality, such as the ability to halt the countdown midway or detect if the countdown has started, been intentionally stopped, or ended.

To configure, initiate the “Start” Effect, which begins the countdown.

Upon completion of the countdown, the “State Changed to: Expired” trigger will activate.

Note: It is essential to invoke the “Stop” Effect of the Countdown Config once the timer expires to reset the countdown. Failure to reset will result in the countdown being unable to restart.

Causes

State Changed to

A listener node that activates when the specified condition is met.

Condition

  1. Stopped: Indicates that the timer has been intentionally halted by invoking the “Stop” Cause.

  2. Running: Indicates that the countdown timer has commenced, triggered by the “Start” Cause.

  3. Expired: Indicates that the countdown has reached zero.

Value Changed

This triggers whenever there is a change in the countdown.

Note: As of version 1.15.x, this feature is still under development. It is recommended to refrain from using it until further notice.

Effects

Start

Call this to start the countdown.

Stop

Call this to stop the countdown.

If State is

An if-condition to check if the timer is running, stopped, or has ended.

Condition

  1. Stopped: Indicates that the timer has been intentionally halted by invoking the “Stop” Cause.

  2. Running: Indicates that the countdown timer has commenced, triggered by the “Start” Cause.

  3. Expired: Indicates that the countdown has reached zero.

Traits

Length in Seconds

The length of the countdown timer.

Datum

A Datum Config serves as a variable—a container for holding a piece of information. It functions like a small storage box for values, commonly used for applications such as displaying scores, life points, countdown timers, and more.

To display stored values on the player’s screen or a billboard UI, the Datum Config is typically paired with a “Datum Viewer” Symbol. By connecting the Datum’s “Updated” Cause to the Datum Viewer’s “Update” Effect, the display automatically updates to reflect the latest value stored in the Datum.

Causes

Updated

The “Updated” Cause is triggered each time the “Current Value” Trait changes, making it useful for monitoring the latest value stored in the Datum.​

Effects

Modify

Adjusts specific attributes of a Datum, such as "Is Persistent," "Initial Value," and "Current Value."

Traits

Is Persistent: Sets the "Is Persistent" Trait if it will retain the value. Initial Value: Sets the "Initial Value" of the Datum Traits. Current Value: Set the "Current Value" of the Datum Traits.

Is Persistent

Toggles the persistence of the Datum. When checked, the Datum retains its value across sessions.

Val. Bool

The Datum's value will be retained across sessions, preserving its state or not be retained.

Initial Value

Specifies the starting value of the Datum, applied when the Datum is first created or reset.

Val. Float

Set the “Initial Value” Trait for the Datum

Current Value

Represents the active value of the Datum, which can be updated as needed during a session

Val. Float

Set the "Current Value" Trait for the Datum.

Set Datum

Replaces the “Current Value” of the existing Datum with the value of the specified Datum. When this node is called, it will update the current Datum to match the value of the assigned Datum, effectively setting the new “Current Value” to the specified one.

Datum

The Datum that will provide the new value to replace the current value of the target datum.

Set Value

Set the "Current Value" Trait of the Datum.

Value

The specified value to be set as the “Current Value.”

Reset Value

Resets the Datum’s "Current Value".

Add Datum

Increases the “Current Value” of the Datum by the “Current Value” retrieved from another Datum. When this node is called, it takes the “Current Value” from the specified Datum and adds it to the target Datum’s “Current Value”.

Datum

The Datum whose value will be added from the current Datum’s “Current Value”.

Add Value

Increments the “Current Value” by a specified amount. For example, if the Value is set to 2, calling this node will add 2 points to the current value.

Value

Specified amount to increase.

Subtract Datum

Decreases the “Current Value” of the Datum by the “Current Value” retrieved from another Datum. When this node is called, it takes the “Current Value” from the specified Datum and subtracts it from the target Datum’s “Current Value”.

Datum

The Datum whose “Current Value” will be added to the target Datum’s “Current Value”.

Subtract Value

Decrements the “Current Value” by a specified amount. For example, if the Value is set to 2, calling this node will subtract 2 points to the current value.

Multiply Datum

Multiplies the “Current Value” of the Datum by the “Current Value” retrieved from another Datum. When this node is called, it takes the “Current Value” from the specified Datum and multiplies it with the target Datum’s “Current Value”.

Datum

The Datum whose “Current Value” will be used to multiply the target Datum’s “Current Value”.

Multiply Value

Multiplies the “Current Value” by a specified factor. For example, if the factor is set to 3, calling this node will multiply the current value by 3.

Value

Specified factor to be multiplied.

Divide Datum

Divides the “Current Value” of the Datum by the “Current Value” retrieved from another Datum. When this node is called, it takes the “Current Value” from the specified Datum and divides the target Datum’s “Current Value” by this amount.

Datum

The Datum whose “Current Value” will be used to divide the target Datum’s “Current Value”.

Divide Value

Divides the “Current Value” by a specified divisor. For example, if the divisor is set to 4, calling this node will divide the current value by 4.

Value

Specified divisor to be divided.

If Is Equal To Datum

Compares the "Current Value" of the Datum to the "Current Value" of another specified Datum. When this node is called, it checks if the two values are equal and proceeds based on the result. This can be used to trigger specific actions if the values match.

Datum

The Datum whose "Current Value" will be compared to the target Datum’s "Current Value." This Datum provides the reference value for the equality check.

If Is Equal To Value

An if-condition that compares the “Current Value” of a Datum to a specified value. This node has two output sockets: if the condition is true, the left socket’s connected node is triggered; if false, the right socket’s connected node is activated.

Value

Defines the value to compare against the “Current Value.”

If Is Less Than Datum

Compares the "Current Value" of the Datum to the "Current Value" of another specified Datum. When this node is called, it checks if the current value is less than the specified value and proceeds based on the result. This can be used to trigger specific actions if the target value is lower.

Datum

The Datum whose "Current Value" will be compared to the target Datum’s "Current Value." This Datum provides the reference value for the less-than check.

If Is Less Than Value

An if-condition that checks if the “Current Value” of a Datum is less than a specified value. There are two output sockets: if the condition is true, the left socket’s connected node is triggered; if false, the right socket’s connected node is activated.

Value

Defines the value to compare against the “Current Value.”

If Is Greater Than Datum

Compares the "Current Value" of the Datum to the "Current Value" of another specified Datum. When this node is called, it checks if the current value is greater than the specified value and proceeds based on the result. This can be used to trigger specific actions if the target value is higher.

Datum

The Datum whose "Current Value" will be compared to the target Datum’s "Current Value." This Datum provides the reference value for the greater-than check.

If Is Greater Than Value

An if-condition that checks if the “Current Value” of a Datum is greater than a specified value. This node also has two output sockets: if the condition is true, the left socket’s connected node is triggered; if false, the right socket’s connected node is activated.

Value

Defines the value to compare against the “Current Value.”

Traits

Is Persistent

Determines whether the “Current Value” of the Datum remains unchanged even when the Chapter is reloaded or ended. Enabling this option ensures that the “Current Value” does not reset.

Initial Value

Specifies the starting value of the Datum. The value assigned here serves as the initial value.

Current Value

Represents the current value of the Datum, which can be added, subtracted, multiplied, divided, or compared during runtime.

Group

A Group Config organizes multiple Sparks into a single entity, allowing for collective modification. This is useful when, for example, you need to change the visibility of multiple Sparks with a single action.

Effects

Visible

A checkbox that determines the visibility state of the group. When checked, the group is visible; when unchecked, the group is hidden.

Traits

Group Name

Specify an overall name for the Spark Group. This also displays all of the Spark that are under the Group.

Inventory

An Inventory Spark is used to store Spark names in a list, which is particularly useful for displaying items, quests, and similar content.

To add a Spark to the list, attach a Cause on the desired Spark to the “Inventory Add” Effect of the Inventory Config.

To display the list, link the “Changed” Cause of the Inventory Config to an “Update” Effect of an Inventory Viewer Symbol that exists in a Billboard or a ScreenSpace UI.

The maximum number of Spark names that can be stored in the Inventory Config is determined by its “Maximum Items” Trait. If the list reaches this limit, the oldest Spark is removed as the new one is added, following a FIFO (First In, First Out) approach.

Additionally, the list does not accept duplicates, so adding the same Spark again has no effect.

Causes

Changed

Triggers an event when the inventory has been modified. This node detects changes in the inventory, such as items being added or removed.

Effects

Modify

Modify the Traits of the Inventory Spark

Traits

Maximum Items: Sets the "Maximum Items" Trat for the Inventory Spark

Val. Int

Allows to change the value to increase or decrease the inventory's item limit as needed.

Add

Adds an item to the inventory. This node allows you to specify an item to be added, updating the inventory accordingly.

Remove

Removes a specified item from the inventory. This node lets you designate an item and quantity to be removed.

Clear Clears all items from the inventory. This node removes all items and resets the inventory to an empty state, useful for resetting or starting fresh.

Traits

Maximum Items

Defines the maximum number of items that the inventory can hold. Once this limit is reached, no additional items can be added until space is made available.

Modifiers

A Modifier Config is a built-in configuration that cannot be added or removed in the Configs Panel. It manages Chapter-wide controls and features specific to Behavior, including functions like Blackout, Change Chapter, Comment, Spawn Spark, Debug, Delay, Ember, Exit Book, Random, Chapter Started, Stop Audio Channel, and Toggle.

For more detailed information on Modifiers, refer to the Modifiers page under Behavior Nodes.

Randomizer

A Randomizer Config is used to trigger random output sockets within a node. Start by using the “Generate Value” Effect, as shown in the image below. When called, this Effect randomly selects and triggers an output socket. The number of possible outputs can be adjusted using the “Total Values” Trait.

Causes

No Valid Value

This node activates when all "Valid Values" have been used. This prevents the node from reusing values until it is reset or reconfigured, allowing for a unique selection process that ensures each value is used only once per cycle.

Note: This feature only activates when the Require Unique? Trait is checked.

On Last Valid Value

Triggers when the last remaining unique valid value is selected from the set. This node activates right before all values have been exhausted, allowing for specific actions to be taken when only one value remains.

Note: This feature only activates when the Require Unique option is checked.

Effects

Modify

Allows dynamic modification of the Randomizer’s traits, including "Require Unique", "Auto Reset History", "Total Values", and "Valid Values".

Traits

Require Unique?: Toggles unique selection. If true, each value is chosen only once per cycle; if false, values can repeat. Auto Reset History?: Toggles "Auto Reset History." When enabled, it resets selection history after all values are used. Total Values: Sets the total number of values the Randomizer can choose from. Valid Values: Controls the number of values currently available for selection.

Val. Int

Specified value for setting the "Total Values" and "Valid Values" Traits.

Val. Bool

Toggles the "Require Unique?" and "Auto Reset History? Traits". When checked it is enabled if unchecked it is disabled.

Generate Value

Outputs a randomly selected value from a defined range of options. When this node is used, it picks a value at random from a set determined by the "Total Values" Trait.

Reset History

Allowing the clearing of all previously generated values. Each time the node is used, it selects a new random value based on the current settings.

Set Valid Outputs

Configures the "Valid Values" trait of the Randomizer Spark. Activating this node updates or replaces the current set of "Valid Values" for the Randomizer, defining the range of possible outputs.

Valid Outputs

Sets the "Valid Values" of the current Randomizer.

Traits

Required Unique?

Ensures that each value is selected only once per cycle, preventing repetition until all values have been used. When checked, this enables the "On Last Valid Value" trigger to function.

Auto Reset History?

Automatically resets the selection history when all values have been used, allowing the randomizer to begin a new cycle. This can be useful to restart the sequence without manual intervention.

Total Values

Specifies the total number of possible values the Randomizer can select from. Adjust this to set the range of unique values available for random selection.

Valid Values

Displays the count of values currently available for selection. This number will decrease as values are selected (when "Require Unique" is enabled) and will reset when the "Auto Reset History" option is active or when manually reset

Respawn

The Respawn Config is a built-in configuration that cannot be added or removed. It ensures that if the player falls below ground level, they will respawn based on a specified Threshold Type. For instance, with a Distance Threshold, the player will respawn once they fall a certain distance below the ground zero (sea level) area, preventing infinite falling.

State Machine

A State Machine Config is a specialized Spark that tracks and stores a specific state, operating as a simple system to control a sequence of states using numeric values. Each state is represented by a unique number, and the machine transitions between states according to the Effects called. Think of it as a series of steps or levels, each assigned a number, with specific rules governing movement from one step to the next. The default state value is 0.

The “On State” Cause is triggered when the state changes, and state transitions can be managed using the “Go to State” or “Next or Previous State” commands. Conditional logic can also be implemented by using the “If State is” Effect.

Causes

On State

A listener node that triggers when a change in state occurs. Note that it does not trigger at the start of the chapter when the state is initially set to 0.

Effects

Go to State

Sets the current state to a specified value.

State Id

The new value to set as the state.

Next State

Increments the state by 1. For example, if the current state is 2, calling this Effect changes the state to 3.

Previous State

Decrements the state by 1. For example, if the current state is 2, calling this Effect changes the state to 1.

If State is

An if-condition to check if the current state equals the specified State Id. If the condition is met, the output socket triggers the connected node. If not, the output socket does not trigger.

State Id

The value to compare with the current state.

Sun

A Sun Config is a built-in configuration that cannot be added or removed from the Configs Panel. It acts as the main light source, with adjustable settings for Brightness (0 - 100%) and Time of Day (0 - 24 hours) to simulate different lighting conditions throughout the day.

Effects

Modify

Allows for dynamic adjustment of the sun’s traits, including "Brightness" and "Time of Day".

Trait

Brightness: Sets the "Brightness" of the Sun Spark. Time of Day: Sets the "Time of Day" of the Sun Spark.

Traits

Brightness (Pct: 0 -100)

Controls the intensity of sunlight as a percentage. A value of 0 represents complete darkness, while 100 represents full brightness.

Time of Day (Hrs: 0 -24)

Sets the current hour in a 24-hour format, which can influence the position and angle of the sun in the environment. For example, setting this to 9 represents 9 AM, while setting it to 18 represents 6 PM.

Audio

An Audio Spark is used to play sound effects or music. It is added to the Configs Panel, and the “Audio” Effect with the State set to Play is called to start the sound effect.

Effects

Modify

Used to adjust specific traits of the Audio Config Spark.

Trait

Loop Audio: The Loop Audio trait of the Spark, determining whether to replay the audio when it finishes.

Val. Bool

Sets the Loop Audio trait to either true (enabled) or false (disabled).

Audio

An Effect that specifies the audio clip to play, pause, stop.

Clip

The audio clip to be played.

State

  1. Play: Set to Play to start the audio when called.

  2. Pause: Set to Pause to temporarily stop the audio.

  3. Stop: Set to Stop to halt the audio playback completely.

Volume

The desired playback volume, with a maximum of 1.

Solo

When checked, this stops all other currently playing audio except this one.

Change Audio Channel Trait

This Effect changes the audio channel at runtime when activated.

New Channel

These are the available channels to which the audio can be assigned.

  1. Dialog1

  2. Dialog2

  3. Dialog3

  4. Music1

  5. Music2

  6. Music3

  7. SoundFX1

  8. SoundFX2

  9. SoundFX3

Traits

Audio Channel

The designated channel for audio playback.

Loop Audio?

Determines whether the audio will repeat after it finishes playing.

Music (legacy)

Music Sparks function similarly to Audio Sparks, except they are permanently looped and cannot be turned off. This feature is set to be deprecated; it is recommended to use the Audio Spark instead and enable the Loop Audio option to serve as background music.

Skies

A Sky Spark is a built-in Config that cannot be added or removed from the Configs Panel. It controls the appearance and lighting effects of the sky, helping to shape the overall atmosphere in the environment.

Effects

Modify

Trait

Ambient Brightness: Modifies the "Ambient Brightness" trait of the Sky, setting the intensity of ambient light. Ambient from Sky: Enables or disables the "Ambient from Sky" trait, which uses the sky's color and lighting to influence the ambient light. Set to true (enabled) or false (disabled) to toggle this effect. Exposure: Adjusts the Exposure trait of the Sky, influencing the overall light intensity.

Val. Float

Sets the Loop Audio trait to either true (enabled) or false (disabled).

Traits

Ambient Brightness

Modifies the ambient light brightness in the environment. This setting enhances visibility and adjusts the mood by raising or lowering the ambient light intensity.

Ambient from Sky

When enabled, this Trait derives the ambient lighting directly from the sky, creating a more natural and consistent lighting effect that matches the sky’s color and conditions.

Exposure

Adjusts the overall exposure level of the sky. Raising the exposure brightens the scene, while lowering it can create a dimmer, overcast effect.

Environment

Light

A Light Spark is a Spark that serves as a light source, emitting light within the scene.

Traits

Color Temperature

Adjusts the light’s warmth or coolness, influencing the overall color tone.

Intensity

Controls the brightness of the light.

Portal

A Portal Spark is used to transport the player between different locations.

Effects

Teleport

Instantly moves the player to the designated Spark location when called.

Destination

The assigned Spark where the player will teleport into.

Reflection Probe

Used to create real-world reflections with shiny items, including gloss, mirrors, and glass within a Chapter.

Traits

Size

Adjusts the range of reflection.

Spawn Point

A Spawn Point Spark defines the location where the player will appear when the Chapter restarts. Without this Spark, the player will spawn at the origin (ground zero, position zero for x and y). By using a Spawn Point Spark, you can specify a custom spawn location for the player. Each Chapter can contain only one Spawn Point Spark.

Trigger

A Trigger Spark is an invisible Spark, visible only in the Builder and not to the Player, commonly used as a sensor to activate specific Causes. It supports typical Effects and Causes found in most Sparks, such as Collided or Approached Causes, with the added benefit of being hidden from the player’s view. This makes it ideal for creating surprise elements when the player enters a designated area.

Last updated

Was this helpful?

#16: Built-in Content definitions

Change request updated