đ§ââī¸Built-in Content
Last updated
Last updated
Configs
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.
State Changed to
A listener node that activates when the specified condition is met.
Condition |
|
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.
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 |
|
Length in Seconds
The length of the countdown timer.
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.
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.â
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.â |
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. |
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.
Visible
A checkbox that determines the visibility state of the group. When checked, the group is visible; when unchecked, the group is hidden.
Group Name
Specify an overall name for the Spark Group. This also displays all of the Spark that are under the Group.
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.
Changed
Triggers an event when the inventory has been modified. This node detects changes in the inventory, such as items being added or removed.
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.
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.
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.
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.
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.
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. |
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 |
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.
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.
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.
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. |
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.
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. |
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. |
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.
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 |
|
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.
|
Audio Channel | The designated channel for audio playback. |
Loop Audio? | Determines whether the audio will repeat after it finishes playing. |
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.
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.
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). |
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. |
A Light Spark is a Spark that serves as a light source, emitting light within the scene.
Color Temperature | Adjusts the lightâs warmth or coolness, influencing the overall color tone. |
Intensity | Controls the brightness of the light. |
A Portal Spark is used to transport the player between different locations.
Teleport
Instantly moves the player to the designated Spark location when called.
Destination | The assigned Spark where the player will teleport into. |
Used to create real-world reflections with shiny items, including gloss, mirrors, and glass within a Chapter.
Size | Adjusts the range of reflection. |
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.
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.
For more information about the Threshold property in âCollided Cause,â refer to the âCollidedâ section on the Behavior Nodes page.
A "Button Spark" is used to create clickable buttons within the interface. When interacted with, Buttons trigger specific actions, events, or interactive elements within the UI.
On Button Pressed
This trigger takes effect when the button is pressed. This allows specific actions, effects or behaviors to execute when clicked.
Visible
The "Is Visible" trait controls whether the button is shown or hidden.
Checkbox | When checked, the button is visible. If unchecked, the button is hidden. |
Highlight
This trait controls whether the button is visually highlighted, which helps emphasize the button.
Enabled | Determines whether highlighting is enabled ( |
Modify
Set Interactable
This "Is Interactable" trait of the button determines if the button can be pressed.
Is Interactable | When checked, the button responds to user inputs like clicks or taps. If unchecked, the button remains visible but doesnât respond to interactions, making it inactive. |
Size | Controls the dimensions of the button:
|
Sort Order | Determines the rendering order of the button compared to other objects. Objects with higher sort order values appear in front or on top of those with lower values. |
Is Visible | Controls the visibility of the button. |
Label Text | Specifies the text displayed on the button, such as a label or message (e.g., "Submit," "Start"). By default, the label is set to "Button." |
Is Interactable | Determines whether the button can be pressed, clicked, or tapped. |
Background Color | Sets the button's background color using RGBA values:
|
Text Color | Defines the button's label text color using RGBA values:
|
A Text Spark in Bonfire is used to create and manage text elements, such as menus, signs, or labels, within an experience. It focuses on displaying and controlling text as part of the user interface.
Change Text
The "Change Text" is used to instantly update the text displayed by the "Text" Spark.
New Text | The text that will replace the existing content. |
Add Value To Text Number
The "Add Value To Text Number" is used to add a specific value to the current number displayed in the "Text" Spark. For Example, if the number displayed is 5 and the Value Added is set to 1, the number will increase to 6, displaying up to two decimal places. This is useful to keep score.
Value Added | The amount that will be added to the current number. |
Decimal Places | Controls the number of decimal places for the updated number. |
Change Number Over Time
The "Change Number Over Time" is used to smoothly transition the displayed number over a specified period. For example, if the current number is 5, and the final number is set to 10 over 2 seconds, the number will increase gradually from 5 to 10 within the designated time-period, displaying up to two decimal places.
Final Number | The target number that will be shown after the transition is complete. |
Time (s) | The duration (in seconds) for the number to change from its current value to the final value. |
Decimal Places | Defines the number of decimal places that the final number will display. |
Text | Displays the actual text content shown by the "Text Spark". Input the desired text to display. |
Font Name | Specifies the font used for displaying the text. Selecting "Default" will use the systemâs default font. |
Font Size | Defines the size of the text in the "Text Spark". A larger number increases the font size. |
Text Color | Controls the color of the text using RGBA values:
|
Text Alignment | Defines how the text aligns within its box (e.g., Top Left, Center, etc.). |
Size | Sets the width (X) and height (Y) of the "Text Spark" box. This defines the area where the text is displayed. |
Sort Order | Determines the rendering order of the "Text Spark" in relation to other objects. A higher value means it will appear in front of or on top of objects with a lower sort order. |
The Datum Viewer Spark is a user interface component designed to store and display the âCurrent Valueâ of the Datum Config. To display this value, the output socket of the âUpdatedâ Cause from the Datum Config must be connected to the input socket of the âUpdateâ Effect in the Datum Viewer Spark.
The effect is the output of the Datum Config node enabling data passing to other nodes.
Update
When the Effect output is connected to the âUpdateâ Input Cause of the Datum Config, it will display the âCurrent Valueâ of the Datum Config in the text.
The Dropdown Spark is a user interface component that displays a list of options that can be selected by users, similar to dropdown menus in applications, but designed for interactive experiences in Bonfire.
On Dropdown Changed
This state changes and is activated when a new option is added, removed, or selected from the dropdown.
Add Dropdown Option
Adds a new option to the dropdown list dynamically.
Option Name | This label identifies the name to be given to the option added to the dropdown. The name chosen is what will appear in the dropdown menu. |
Allow Duplicates | When checked, this allows multiple options to be added with the same name. If unchecked, only unique names are accepted, preventing duplicates. |
Remove Dropdown Option
Removes a specific option from the dropdown by matching its name.
Option Name | Allows you to specify the name of the option you want to remove from the dropdown list. |
Clear Dropdown Options
Clear or reset all options from the dropdown list.
Options | A list of all choices added in the dropdown list. |
The Inventory Viewer Spark displays and manages inventory items within a scene, showcasing collected or carried items. This can be updated dynamically as the inventory changes.
Update
Refreshes or reloads the displayed inventory data. When triggered, it ensures the Inventory Viewer displays the most current state of the player's inventory, including newly added or removed items.
The Toggle Spark is used to switch between states, such as turning behaviors or visibility on or off within a scene. It alternates between two connected nodes or effects, enabling Players to toggle between states like visible/hidden, open/close, or on/off.
On Toggle Changed
This tracks changes to the toggle state. This is useful for tracking state changes (on/off, open/close) and this can trigger actions, such as notifications, whenever the toggle switches.
On Toggle - On
Triggers when the toggle is switched on. For example, it activates connected behaviors like displaying a Spark or enabling a feature when a user turns something on.
On Toggle - Off
Triggers the toggle is switched off. It executes connected behaviors like hiding an element, deactivating a Spark, or disabling a feature when a user turns something off.
A Billboard Spark is a versatile visual component used to display symbols, graphics, or information prominently within an interactive experience. It's often used for signs, notifications, or visual cues that need to stay consistently visible in a scene.
Sparks Contained | Indicates the number of Sparks or elements contained within this Billboard Spark. |
UI Size | Defines the width and height of the Billboard Spark's UI container in pixels. These dimensions can be adjusted to fit the displayed content. For example, setting it to 1920 x 1080 fills the screen at full HD resolution. |
Rotate towards camera? | Controls whether the Billboard Spark automatically rotates to face the camera, ensuring UI elements or symbols stay visible to the user. |
Lock X Auto-Rotate | Locks the rotation on the X-axis, while preventing it from rotating on the Y-Axis. |
Lock Y Auto-Rotate | Locks the rotation on the Y-axis, while preventing it from rotating on the X-Axis.. |
The Screen Space UI Spark is a Symbol Spark used to display 2D user interface elements that remain fixed on the screen, unaffected by the 3D environment. Commonly used for creating HUD elements, menus, or other on-screen components that stay in place as the player moves. Note: this is now deprecated as the built-in "Default HUD" now acts as the Screen Space UI.
Note: This feature is now deprecated, as the built-in âDefault HUDâ has replaced the Screen Space UI functionality.