Scene
AddExplosionForce
Section titled “AddExplosionForce”💡 Simple Explanation: Creates an explosion force that pushes objects away from a point. Perfect for blast effects, ragdolls, or launching objects in all directions.
⚙️ Technical Description: Applies an explosive radial force emanating from a specified position, affecting objects within a radius. Automatically adds Rigidbody if missing.

🔍 Full Details & Examples
🔧 How It Works: Applies physics force radiating outward from the explosion center. Objects closer to the center get pushed harder than those farther away. The upward modifier adds extra vertical lift for more dramatic effects.
✨ Perfect For:
- Explosion effects when objects are destroyed
- Launching confetti or particles outward
- Ragdoll knockback effects
- Impact reactions from projectiles
👉 Inputs:
- (SceneObject) - Object to affect
Force(Float) - How strong the explosion push isForce Position(Vector3) - Where the explosion happensExplosion Radius(Float) - How far the explosion reachesUpwards Modifier(Float) - Extra upward force (for bouncy explosions)Force Mode(Dropdown) - How to apply the force (Impulse, Force, etc.)
🎬 Streaming Example: “When a viewer triggers a special alert, spawn objects around a point then use AddExplosionForce to blast them outward dramatically.”
🎯 Tips: The node automatically adds a Rigidbody to the object if it doesn’t have one. Larger radius and force values create more dramatic effects!
AddForce
Section titled “AddForce”💡 Simple Explanation: Pushes, pulls, or spins objects using physics. Can apply force in different ways - straight push, spin, or force from a specific point.
⚙️ Technical Description: Applies various physics force types to a Rigidbody, including standard force, relative force, torque, and force at position. Automatically adds and configures Rigidbody if missing.

🔍 Full Details & Examples
🔧 How It Works: Applies physics-based force to an object. You can push it in a direction, apply spinning force (torque), or push from a specific location. The force mode controls whether it’s instant (impulse) or continuous.
✨ Perfect For:
- Launching objects in a specific direction
- Adding spin or rotation to objects
- Wind or gravity-like effects
- Physics-based reactions to events
👉 Inputs:
Force Type(Dropdown) - Force, RelativeForce, Torque, or ForceAtPosition- (SceneObject) - Object to apply force to
Force(Vector3) - Direction and strength of forceForce Mode(Dropdown) - Impulse (instant) or Force (continuous)
🎬 Streaming Example: “When donations hit a threshold, apply upward force to scene objects making them float or bounce around for a celebration effect.”
🎯 Tips: Use Impulse for instant kicks (like explosions), Force for continuous push (like wind). Torque spins objects around their center.
ChangeRotationWithPhysics
Section titled “ChangeRotationWithPhysics”💡 Simple Explanation: Rotates an object smoothly through the physics system. Better than direct rotation when you want physics interactions to work properly.
⚙️ Technical Description: Changes a Rigidbody’s rotation through the physics system using Rigidbody.MoveRotation() for smooth, physics-compliant rotation.

🔍 Full Details & Examples
🔧 How It Works: Sets the object’s rotation through the physics engine instead of directly changing it. This ensures the rotation plays nicely with other physics interactions and collisions.
✨ Perfect For:
- Rotating physics-enabled objects smoothly
- Spinning platforms or obstacles
- Orienting objects without breaking physics
- Animated rotations that need physics
👉 Inputs:
scene_object(SceneObject) - Object to rotaterotation(Vector3) - New rotation angles (Euler angles: X, Y, Z)
🎬 Streaming Example: “Slowly rotate a platform that viewers are standing on, using physics rotation so they move with it naturally.”
🎯 Tips: Requires the object to already have a Rigidbody component. For instant rotation without physics, use animation nodes or direct transform manipulation instead.
GetTransform
Section titled “GetTransform”💡 Simple Explanation: Reads where an object is, how it’s rotated, and how big it is. Like asking “where are you and what do you look like right now?”
⚙️ Technical Description: Retrieves the position, rotation, and scale of a Scene Object in either local or world space coordinates.

🔍 Full Details & Examples
🔧 How It Works: Outputs the object’s current position (where it is), rotation (which way it’s facing), and scale (how big it is). You can get either world coordinates (position in the scene) or local coordinates (position relative to parent).
✨ Perfect For:
- Checking object positions for conditional logic
- Copying transform data from one object to another
- Recording object states
- Position-based triggers
👉 Inputs:
- (SceneObject) - Object to read from
Local(Boolean) - True for local space, false for world space
👈 Outputs:
Position(Vector3) - Where the object isRotation(Vector3) - How it’s rotated (Euler angles)Scale(Vector3) - How big it is
🎬 Streaming Example: “Read a camera’s position every second and save it to display the ‘camera has moved X meters’ stat overlay.”
🎯 Tips: World space is position in the scene, local space is position relative to the parent object. Use local when dealing with child objects in hierarchies.
SetTransform
Section titled “SetTransform”💡 Simple Explanation: Moves, rotates, or resizes an object to exact values. Like telling an object “go here, face this way, and be this big.”
⚙️ Technical Description: Sets the position, rotation, and/or scale of a Scene Object in either local or world space coordinates.

🔍 Full Details & Examples
🔧 How It Works: Directly sets the object’s position (where it is), rotation (which way it’s facing), and scale (how big it is). You can set values in world coordinates (absolute position in the scene) or local coordinates (relative to the parent object).
✨ Perfect For:
- Teleporting objects to specific positions
- Resetting object transforms to known states
- Syncing one object’s transform to another
- Setting up initial positions for spawned objects
👉 Inputs:
- (SceneObject) - Object to transform
Position(Vector3) - Where to place the objectRotation(Vector3) - How to rotate the object (Euler angles)Scale(Vector3) - How to size the objectLocal(Boolean) - True for local space, false for world space
🎬 Streaming Example: “When a viewer redeems a channel point reward, teleport their avatar to center stage by setting its position to (0, 0, 0).”
🎯 Tips: Use with GetTransform to copy one object’s transform to another. World space sets absolute position; local space sets position relative to the parent object.
GetTransformDirection
Section titled “GetTransformDirection”💡 Simple Explanation: Gets which way an object is pointing. Like asking “which way is your front?” or “which way is your left side facing?”
⚙️ Technical Description: Retrieves a directional vector (forward, back, left, right, up, down) relative to a Scene Object’s current orientation in world space.

🔍 Full Details & Examples
🔧 How It Works: Based on how the object is rotated, this outputs a direction vector pointing forward, backward, left, right, up, or down from the object’s perspective. Useful for moving objects in the direction they’re facing.
✨ Perfect For:
- Moving objects forward based on their rotation
- Shooting projectiles in the direction something is facing
- Following or tracking movement
- Camera look-at directions
👉 Inputs:
scene_object(SceneObject) - Object to use as referencedirection(Enum) - Forward, Back, Left, Right, Up, or Down
👈 Outputs:
vector(Vector3) - World-space direction vector
🎬 Streaming Example: “Get a camera’s forward direction and use it to spawn a particle effect that moves in the direction the camera is looking.”
🎯 Tips: The direction is always relative to the object’s rotation, not the world. “Forward” means where the object’s front is pointing, which changes as it rotates.
MovePositionWithPhysics
Section titled “MovePositionWithPhysics”💡 Simple Explanation: Moves an object to a new position through the physics system. Better for physics objects than teleporting, keeps collisions working correctly.
⚙️ Technical Description: Moves a Rigidbody to a target position using Rigidbody.MovePosition() for physics-compliant movement.

🔍 Full Details & Examples
🔧 How It Works: Instead of instantly teleporting the object, this moves it through the physics system so it still collides with things properly and interacts with other physics objects along the way.
✨ Perfect For:
- Moving physics-enabled characters or objects
- Kinematic object movement
- Platforms that need to push other objects
- Smooth physics-based repositioning
👉 Inputs:
scene_object(SceneObject) - Object to moveposition(Vector3) - Where to move it to
🎬 Streaming Example: “Move a platform to a new position smoothly, pushing any objects sitting on top of it along with the movement.”
🎯 Tips: Requires the object to already have a Rigidbody component. This is the “proper” way to move physics objects - teleporting them directly can break physics interactions.
OnObjectCollision
Section titled “OnObjectCollision”💡 Simple Explanation: Watches for when an object bumps into something else or enters a trigger zone. Tells you what it hit and how hard.
⚙️ Technical Description: Detects collision or trigger events on a Scene Object, outputting information about the colliding object, impact velocity, impulse, and contact points. Requires physics component.

🔍 Full Details & Examples
🔧 How It Works: Continuously monitors the object for physics collisions or trigger zone entries. When a collision happens, it outputs details like what object it hit, how fast it was going, and where the contact occurred.
✨ Perfect For:
- Triggering effects when objects collide
- Detecting when viewers’ avatars enter zones
- Impact-based sound or particle effects
- Button or interaction triggers
👉 Inputs:
scene_object(SceneObject) - Object to watch for collisionsis_trigger(Boolean) - True for trigger zones, false for physical collisions
👈 Outputs:
other(SceneObject) - The object that was hitrelative_velocity(Vector3) - How fast the collision wasimpulse(Vector3) - Force of the impactcontact_points(Array) - Where the objects touched
🎬 Streaming Example: “When a spawned object hits a target zone, trigger a celebration particle effect and increment a score counter.”
🎯 Tips: The object needs a Rigidbody to detect collisions. Trigger zones let objects pass through but still detect entry, while collisions are physical bumps.
ParticlesClear
Section titled “ParticlesClear”💡 Simple Explanation: Instantly removes all visible particles from an effect. Like hitting a delete button on the particles currently showing.
⚙️ Technical Description: Immediately clears all particles from a particle system by calling Clear().

🔍 Full Details & Examples
🔧 How It Works: Removes all existing particles immediately, leaving the particle system empty. Useful for instant cleanup when you need particles to vanish right away instead of fading out naturally.
✨ Perfect For:
- Instant cleanup when switching scenes
- Clearing particles when an effect is interrupted
- Reset button functionality
- Emergency particle removal
👉 Inputs:
scene_object(SceneObject) - Object with the particle system
🎬 Streaming Example: “When a viewer cancels an effect with a chat command, instantly clear all active celebration particles.”
🎯 Tips: Unlike ParticlesStop which lets existing particles finish their lifetime, Clear removes them instantly. Use this for immediate removal.
ParticlesPause
Section titled “ParticlesPause”💡 Simple Explanation: Freezes particles in mid-air. Like hitting pause on a video - everything stops but stays visible.
⚙️ Technical Description: Pauses a particle system, freezing all particles in place without removing them.

🔍 Full Details & Examples
🔧 How It Works: Pauses the particle system, stopping particles from moving or updating but keeping them visible at their current positions. Resume with ParticlesPlay.
✨ Perfect For:
- Freeze-frame effects
- Pausing effects during loading or transitions
- Creating “time stop” visual effects
- Temporary effect suspension
👉 Inputs:
scene_object(SceneObject) - Object with the particle system
🎬 Streaming Example: “When a ‘freeze time’ alert triggers, pause all active particle effects to create a frozen moment, then resume after 2 seconds.”
🎯 Tips: Particles stay visible when paused. Use ParticlesStop to let them finish gracefully, or ParticlesClear to remove them entirely.
ParticlesPlay
Section titled “ParticlesPlay”💡 Simple Explanation: Starts a particle effect playing. Like pressing the play button to begin the visual effect.
⚙️ Technical Description: Starts or resumes a particle system by setting PlayTrigger = true on the ParticlePlayer component.

🔍 Full Details & Examples
🔧 How It Works: Triggers the particle system to begin emitting particles according to its settings. If paused, it resumes from where it left off.
✨ Perfect For:
- Starting celebration effects
- Triggering VFX on events
- Beginning looping particle effects
- Resuming paused particles
👉 Inputs:
scene_object(SceneObject) - Object with the particle system
🎬 Streaming Example: “When a donation comes in, play a confetti particle effect that emits for 3 seconds then automatically stops.”
🎯 Tips: Most particle systems can be set to play once or loop. Check the particle system settings to control duration and behavior.
ParticlesStop
Section titled “ParticlesStop”💡 Simple Explanation: Stops making new particles, but lets the ones already showing finish fading out naturally. Graceful shutdown.
⚙️ Technical Description: Stops a particle system from emitting new particles, allowing existing particles to complete their lifetime naturally.

🔍 Full Details & Examples
🔧 How It Works: Stops the particle system from creating new particles, but existing particles continue their animation until they naturally fade away or reach the end of their lifetime.
✨ Perfect For:
- Gracefully ending looping effects
- Letting effects finish naturally
- Stopping particle emission while maintaining visual smoothness
- Clean transitions between effects
👉 Inputs:
scene_object(SceneObject) - Object with the particle system
🎬 Streaming Example: “After a 10-second celebration effect, stop the confetti emitter so it gradually fades out instead of vanishing abruptly.”
🎯 Tips: This is the “nice” way to end particles. Use ParticlesClear if you need them gone instantly. You can always ParticlesPlay again to restart.
ResetOpenScene
Section titled “ResetOpenScene”💡 Simple Explanation: Hits the reset button on your scene. Everything goes back to how it was when you first saved the reset state.
⚙️ Technical Description: Reloads the current scene asynchronously to restore it to its saved reset state.

🔍 Full Details & Examples
🔧 How It Works: Uses Unity’s async scene loading to reload the current scene, restoring all objects to their saved positions, states, and configurations from the last reset save point.
✨ Perfect For:
- Quick scene resets during testing
- Undo all changes made during a session
- Resetting interactive elements to defaults
- “Start over” functionality
🎬 Streaming Example: “Add a ‘Reset Scene’ button that viewers can trigger to reset all interactive elements back to their starting positions after a chaotic segment.”
🎯 Tips: The scene reloads to its saved state, not necessarily the original. Make sure you’ve saved a reset state you’re happy with before using this.
SceneObjectConvertToSimpleObject
Section titled “SceneObjectConvertToSimpleObject”💡 Simple Explanation: Breaks an object’s connection to its template (prefab) so it becomes its own independent thing. Like making a copy that’s no longer linked to the original.
⚙️ Technical Description: Converts a complex prefab-linked object into a simple standalone Scene Object by breaking prefab connections and simplifying structure.

🔍 Full Details & Examples
🔧 How It Works: Detaches the object from its prefab instance, making it a standalone Scene Object that won’t be affected by prefab changes. Simplifies the object structure for better performance or easier editing.
✨ Perfect For:
- Breaking prefab links for custom modifications
- Optimizing complex prefab instances
- Creating unique variants from templates
- Preventing unwanted prefab updates
👉 Inputs:
scene_object(SceneObject) - Object to convert
🎬 Streaming Example: “When a spawned prop is modified by viewer interaction, convert it to a simple object so it stays unique and isn’t reset by prefab changes.”
🎯 Tips: Use this when you want an object to be permanently different from its prefab. Once converted, it won’t receive prefab updates.
SceneObjectDestroy
Section titled “SceneObjectDestroy”💡 Simple Explanation: Deletes an object from your scene, either instantly or after a delay. Useful for cleanup and timed removal.
⚙️ Technical Description: Destroys a Scene Object after an optional delay period, with warning logging if the object is not found or already destroyed.

🔍 Full Details & Examples
🔧 How It Works: Finds the specified object and destroys it. If you set a delay, it waits that many seconds before destruction. Logs a warning if the object doesn’t exist or was already destroyed.
✨ Perfect For:
- Cleaning up spawned objects
- Timed destruction effects (destroy after 5 seconds)
- Removing temporary objects
- Cleanup after events finish
👉 Inputs:
Delay(Float) - Seconds to wait before destroying (0 for instant)Object(SceneObject) - Object to destroy
🎬 Streaming Example: “When a celebration effect finishes, wait 3 seconds then destroy all the confetti objects to keep the scene clean.”
🎯 Tips: Set delay to 0 for instant removal. Use a delay to let particle effects or animations finish before the object disappears.
SceneObjectFind
Section titled “SceneObjectFind”💡 Simple Explanation: Searches for an object in your scene by its name or tag. Like using “Find” in a document to locate something specific.
⚙️ Technical Description: Locates a Scene Object in the current scene by tag or name, outputting the found object or logging a warning if not found.

🔍 Full Details & Examples
🔧 How It Works: Searches through all objects in the scene looking for one that matches the specified name or tag. Returns the first matching object found, or logs a warning if nothing matches.
✨ Perfect For:
- Dynamically locating objects at runtime
- Finding objects without direct references
- Flexible object targeting
- Scene scanning
👉 Inputs:
method(Enum) - Search “ByTag” or “ByName”tag/name(String) - What to search for
👈 Outputs:
scene_object(SceneObject) - The found object (empty if not found)
🎬 Streaming Example: “When a chat command triggers, find the object tagged ‘spotlight’ and move it to highlight the viewer’s chosen area.”
🎯 Tips: Tags are faster for searching and allow multiple objects to share the same identifier. Names must be unique or you’ll only get the first match.
SceneObjectGetChild
Section titled “SceneObjectGetChild”💡 Simple Explanation: Gets a specific child object from a parent by counting position. Like saying “give me the 3rd child of this object.”
⚙️ Technical Description: Retrieves a specific child Scene Object by index from a parent’s child list, returning empty if index is out of bounds.

🔍 Full Details & Examples
🔧 How It Works: Looks at the parent object’s children list and returns the child at the specified index (starting from 0). If the index is too high or low, returns empty instead of erroring.
✨ Perfect For:
- Iterating through an object’s children
- Accessing specific child positions
- Building loops that process hierarchies
- Systematic child access
👉 Inputs:
parent(SceneObject) - Parent objectindex(Int) - Which child to get (0 = first child)
👈 Outputs:
child(SceneObject) - The child object at that index
🎬 Streaming Example: “Use a for-loop to go through each child of a container object, moving them one by one to create a cascading animation.”
🎯 Tips: Child index starts at 0 (first child = 0, second = 1, etc.). Check SceneObjectGetChildCount first to know how many children exist.
SceneObjectGetChildCount
Section titled “SceneObjectGetChildCount”💡 Simple Explanation: Counts how many child objects something has. Like asking “how many items are in this folder?”
⚙️ Technical Description: Returns the number of direct children attached to a Scene Object.

🔍 Full Details & Examples
🔧 How It Works: Counts all direct children of the parent object and returns that number. Only counts immediate children, not grandchildren or deeper descendants.
✨ Perfect For:
- Determining loop bounds for child iteration
- Validating object hierarchies
- Checking if an object has children
- Dynamic child processing
👉 Inputs:
parent(SceneObject) - Object to count children of
👈 Outputs:
count(Int) - Number of direct children
🎬 Streaming Example: “Check how many particle emitters are children of the ‘effects container’, then trigger each one with a small delay between them.”
🎯 Tips: Use this with ForLoop to iterate through all children safely. The count only includes direct children, not nested grandchildren.
SceneObjectGetParent
Section titled “SceneObjectGetParent”💡 Simple Explanation: Finds the parent of an object. Like asking “what folder is this file in?” Returns nothing if it’s at the top level.
⚙️ Technical Description: Retrieves the parent Scene Object of a specified object, returning empty if the object has no parent.

🔍 Full Details & Examples
🔧 How It Works: Looks up the hierarchy and returns the immediate parent of the object. If the object is at the root level (no parent), returns empty.
✨ Perfect For:
- Navigating up object hierarchies
- Finding container objects
- Hierarchy validation
- Parent-based logic
👉 Inputs:
scene_object(SceneObject) - Child object to get parent of
👈 Outputs:
parent(SceneObject) - Parent object (empty if none)
🎬 Streaming Example: “When an interactive object is clicked, get its parent container and highlight all objects in that group.”
🎯 Tips: Objects at the scene root have no parent. Use this to navigate up hierarchies or find containing groups.
SceneObjectSetActive
Section titled “SceneObjectSetActive”💡 Simple Explanation: Turns objects on or off in your scene. Like a light switch for making things visible/invisible and functional/non-functional.
⚙️ Technical Description: Enables or disables a Scene Object in the scene, making it visible/invisible and active/inactive.

🔍 Full Details & Examples
🔧 How It Works: Takes an object and a true/false value, then shows or hides that object. When disabled, objects become invisible and their scripts stop running.
✨ Perfect For:
- Hiding overlay elements until a viewer action triggers them
- Toggling UI panels on and off based on stream events
- Creating timed reveals (show an object, wait, then hide it)
- Activating particle effects only when needed
👉 Inputs:
- (SceneObject) - Target object to enable/disable
Active(Boolean) - True to show, false to hide
🎬 Streaming Example: “When a viewer donates, activate a special thank-you particle effect for 5 seconds, then deactivate it again.”
🎯 Tips: Disabled objects don’t process any logic, making this more efficient than just making things invisible. Commonly paired with Timer or Delay nodes.
SceneObjectSetParent
Section titled “SceneObjectSetParent”💡 Simple Explanation: Attaches one object to another so they move together. Like putting a hat on a character - the hat becomes a child and follows the parent around.
⚙️ Technical Description: Changes the parent-child relationship of Scene Objects in the scene hierarchy.

🔍 Full Details & Examples
🔧 How It Works: Takes a child object and a parent object, then links them together. The child will follow the parent’s position, rotation, and scale. Pass an empty parent to unlink an object.
✨ Perfect For:
- Attaching spawned objects to moving platforms or characters
- Building dynamic object groups that move as one unit
- Creating multi-part effects that stay synchronized
- Organizing spawned items under container objects
👉 Inputs:
object(SceneObject) - Child object to attachparent(SceneObject) - Parent object (empty to detach)
🎬 Streaming Example: “When spawning donation badges, parent them to a rotating display board so they all spin together as a group.”
🎯 Tips: Setting parent to empty/null places the object at the scene root. World position is maintained by default (doesn’t snap to parent’s center).
SetTransformDirection
Section titled “SetTransformDirection”💡 Simple Explanation: Points an object in a specific direction. Like rotating a character to face north, or tilting a camera upward.
⚙️ Technical Description: Sets a Scene Object’s rotation by aligning one of its directional axes (forward, back, up, down, left, right) with a specified direction vector.

🔍 Full Details & Examples
🔧 How It Works: Pick which direction of the object you want to control (forward, up, right, etc.) and provide a direction vector. The object rotates so that axis points in your chosen direction.
✨ Perfect For:
- Making objects face specific directions without calculating angles
- Orienting spawned items based on gameplay data
- Aligning UI elements or indicators toward targets
- Setting up initial orientations for animations
👉 Inputs:
object(SceneObject) - Object to rotatedirection(Enum) - Which axis to align (Forward, Back, Up, Down, Left, Right)input_direction(Vector3) - Direction vector to align with
🎬 Streaming Example: “When spawning a new arrow indicator, set its forward direction to point toward the latest donation goal marker.”
🎯 Tips: Common direction vectors: (0,1,0) for up, (1,0,0) for right, (0,0,1) for forward. Can be combined with GetTransformDirection for relative positioning.
SetVelocity
Section titled “SetVelocity”💡 Simple Explanation: Launches or pushes physics objects in a direction at a specific speed. Like throwing a ball or shooting a projectile.
⚙️ Technical Description: Sets the linear velocity of a Scene Object’s physics component. Automatically adds physics if missing and enables physics simulation.

🔍 Full Details & Examples
🔧 How It Works: Applies a velocity vector to an object with physics enabled. The object will move continuously in that direction until other forces (like gravity or collisions) change its motion. Automatically sets up the object for physics if needed.
✨ Perfect For:
- Launching projectiles when viewers trigger events
- Resetting object motion to a specific speed
- Creating physics-based effects that respond to stream interactions
- Simulating thrown or falling objects
👉 Inputs:
object(SceneObject) - Object to apply velocity tovelocity(Vector3) - Direction and speed (units per second)
🎬 Streaming Example: “When someone bits 100, spawn a coin and set its velocity upward (0, 10, 0) to make it fly into the air before falling back down.”
🎯 Tips: Automatically adds Rigidbody component if missing and warns you. Disables isKinematic automatically. Velocity is continuous until changed by forces.
Spawner
Section titled “Spawner”💡 Simple Explanation: Creates copies of objects on the fly. Perfect for spawning effects, duplicating items, or generating things based on viewer interactions.
⚙️ Technical Description: Instantiates new Scene Objects from prefabs or duplicates existing scene objects at runtime. Supports both asset prefabs and scene object duplication with configurable position, rotation, name, and tag.

🔍 Full Details & Examples
🔧 How It Works: Takes either a prefab from your assets or an existing scene object and creates a new copy of it. You can set where it appears, how it’s rotated, and give it a custom name and tag for later reference.
✨ Perfect For:
- Spawning particle effects when viewers donate or subscribe
- Creating multiple copies of objects for crowd effects
- Generating badges, icons, or visual rewards on demand
- Building dynamic scenes that change based on stream events
👉 Inputs:
- (SceneObject/Prefab) - Source object to spawn
Position(Vector3, optional) - Where to spawn (defaults to source position)Rotation(Vector3, optional) - Rotation in Euler angles (defaults to source rotation)New Name(String) - Name for the spawned object (optional)New Tag(String) - Unique tag for referencing later (optional)Spawn Disabled(Boolean) - Spawn inactive/hidden
👈 Outputs:
New Object(SceneObject) - Reference to the newly spawned object
🎬 Streaming Example: “Every time someone subscribes, spawn a floating badge prefab at position (0, 5, 0), give it the tag ‘latest_sub’, then tween it upward over 3 seconds.”
🎯 Tips: Works with both scene objects and asset prefabs. Output tag lets you reference the spawned object in subsequent nodes. Spawning disabled is useful when you want to set up the object before showing it.
SwitchScene
Section titled “SwitchScene”💡 Simple Explanation: Switches to a different scene in your project. Think of it like changing camera views or switching between different overlay setups during a stream.
⚙️ Technical Description: Asynchronously loads a different scene with optional transition effects. Supports broadcast-style stinger transitions for professional scene switching.

🔍 Full Details & Examples
🔧 How It Works: Unloads the current scene and loads a new one. You can add smooth transitions (like fades or custom stinger animations) to make scene changes look professional rather than abrupt cuts.
✨ Perfect For:
- Switching between different stream overlay configurations
- Changing from a main scene to an “intermission” or “BRB” scene
- Creating multi-scene workflows for different stream segments
- Professional broadcast-style scene transitions
👉 Inputs:
- (Scene) - Target scene to load
Transition(Dropdown) - Transition effect type (None, or custom transitions)
🎬 Streaming Example: “When you press a Stream Deck button, switch from your gameplay scene to your ‘chatting’ scene with a 1-second fade transition.”
🎯 Tips: Make sure the target scene is added to your project’s build settings or scene list. Transitions can hide the loading process for a smoother viewer experience.
MeshShatterPhysicsInit
Section titled “MeshShatterPhysicsInit”💡 Simple Explanation: Prepares an object for physics-based shattering. Run this first before breaking it apart.
⚙️ Technical Description: Initializes the PhysicsShatterContainer on a MeshShatter component, preparing the mesh for physics-based destruction simulation.

🔍 Full Details & Examples
🔧 How It Works: Sets up the internal physics shatter system by calling Initialize() on the PhysicsShatterContainer. This prepares the mesh geometry for fragmentation.
✨ Perfect For:
- Setting up destructible objects at scene start
- Preparing objects before they can be shattered
- Dynamic destruction effects
👉 Inputs:
- (SceneObject) - Object with MeshShatter component
🎬 Streaming Example: “At scene start, initialize all breakable props so they’re ready to shatter when viewers trigger effects.”
🎯 Tips: Must be called before using other MeshShatter physics nodes. Adds MeshShatter component automatically if missing.
MeshShatterPhysicsActivate
Section titled “MeshShatterPhysicsActivate”💡 Simple Explanation: Arms the shatter trigger on an object so it will break on impact or when triggered.
⚙️ Technical Description: Sets the ActivateTrigger flag on the MeshShatter component, enabling the object to respond to shatter triggers.

🔍 Full Details & Examples
🔧 How It Works: Enables the physics shatter trigger mechanism so the object is ready to break apart when demolition is called.
✨ Perfect For:
- Enabling destruction on specific objects
- Creating armed/disarmed states for breakables
- Conditional destruction setups
👉 Inputs:
- (SceneObject) - Object with MeshShatter component
🎬 Streaming Example: “When a viewer donates, activate the shatter trigger on a glass prop so the next impact breaks it.”
🎯 Tips: Use after MeshShatterPhysicsInit. The object won’t shatter until MeshShatterPhysicsDemo is called.
MeshShatterPhysicsDemo
Section titled “MeshShatterPhysicsDemo”💡 Simple Explanation: Triggers the actual shattering effect - the object breaks apart with physics simulation.
⚙️ Technical Description: Calls Demolish() on the PhysicsShatterContainer, causing the mesh to fragment into physics-simulated pieces.

🔍 Full Details & Examples
🔧 How It Works: Triggers the mesh to break into fragments that fall and collide with physics. Each piece becomes a separate physics object.
✨ Perfect For:
- Dramatic destruction effects
- Breaking glass, vases, or props
- Impact reactions
- Celebration effects
👉 Inputs:
- (SceneObject) - Object with initialized MeshShatter component
🎬 Streaming Example: “When a viewer triggers a ‘break’ command, demolish a glass trophy on screen with satisfying physics.”
🎯 Tips: Call MeshShatterPhysicsInit first. Use MeshShatterPhysicsFade afterward to clean up fragments.
MeshShatterPhysicsFade
Section titled “MeshShatterPhysicsFade”💡 Simple Explanation: Makes the shattered fragments fade out and disappear over time.
⚙️ Technical Description: Sets the FadeTrigger flag on the MeshShatter component, causing all physics fragments to gradually fade out.

🔍 Full Details & Examples
🔧 How It Works: Triggers a fade-out effect on all the broken pieces from a physics shatter, making them disappear cleanly.
✨ Perfect For:
- Cleaning up shatter debris
- Smooth visual transitions after destruction
- Preventing screen clutter
👉 Inputs:
- (SceneObject) - Object with MeshShatter component
🎬 Streaming Example: “After shattering a prop, wait 3 seconds then fade out the debris so it doesn’t clutter the scene.”
🎯 Tips: Use a Delay node before fading to let viewers see the destruction effect. Fragments disappear gradually for a clean look.
MeshShatterStaticFragment
Section titled “MeshShatterStaticFragment”💡 Simple Explanation: Breaks a mesh into static pieces without physics. Good for stylized fracture effects.
⚙️ Technical Description: Calls Fragment() on the StaticShatterContainer, splitting the mesh into non-physics pieces that stay in place.

🔍 Full Details & Examples
🔧 How It Works: Splits the mesh into fragments that don’t have physics - they stay where they are instead of falling.
✨ Perfect For:
- Stylized shatter effects
- Frozen-in-time destruction looks
- Performance-friendly breaking
- Abstract visual effects
👉 Inputs:
- (SceneObject) - Object with MeshShatter component
🎬 Streaming Example: “Create a dramatic reveal by fragmenting a shell object to expose what’s inside, with pieces floating in place.”
🎯 Tips: No physics simulation means better performance. Use ScaleTween on fragments for animated separation effects.
MeshShatterStaticScale
Section titled “MeshShatterStaticScale”💡 Simple Explanation: Sets the size of static shatter fragments.
⚙️ Technical Description: Configures the fragment scale for static mesh shattering, controlling how large the resulting pieces will be.

🔍 Full Details & Examples
🔧 How It Works: Sets the scale factor for static shatter fragments before calling MeshShatterStaticFragment.
✨ Perfect For:
- Controlling fragment size
- Fine-tuning destruction appearance
- Creating varied shatter styles
👉 Inputs:
- (SceneObject) - Object with MeshShatter component
Scale(Float) - Fragment scale factor
🎬 Streaming Example: “Set fragment scale to 0.5 for smaller pieces, then trigger static fragmentation for a detailed shatter effect.”
🎯 Tips: Call before MeshShatterStaticFragment. Larger scale = bigger pieces, smaller scale = more detailed fragmentation.
TransformLookAt
Section titled “TransformLookAt”💡 Simple Explanation: Makes an object face toward another object. Like having a character always look at the camera.
⚙️ Technical Description: Rotates a Scene Object so its forward vector points at a target object, using Unity’s Transform.LookAt with configurable world-up vector.

🔍 Full Details & Examples
🔧 How It Works: Instantly rotates the object so it faces the target. The world-up vector controls which direction is considered “up” during the rotation.
✨ Perfect For:
- Making cameras track objects
- Characters facing players or points of interest
- Turrets or aiming systems
- UI elements that face the camera
👉 Inputs:
- (SceneObject) - Object to rotate
Look At Object(SceneObject) - Target to look atWorld Up(Vector3) - Up direction (default: 0, 1, 0)
🎬 Streaming Example: “Make a camera always face the active speaker’s avatar during a multi-person stream.”
🎯 Tips: Use with OnNewFrame for continuous tracking. World Up of (0,1,0) keeps the object level. Both objects must exist or node logs a warning.
TransformRotateAround
Section titled “TransformRotateAround”💡 Simple Explanation: Rotates an object around a point in space, like orbiting a planet.
⚙️ Technical Description: Uses Unity’s Transform.RotateAround to rotate a Scene Object around a specified pivot point and axis at a given speed.

🔍 Full Details & Examples
🔧 How It Works: Each execution rotates the object by the specified speed (in degrees) around the pivot point along the given axis.
✨ Perfect For:
- Orbital camera movements
- Spinning objects around a center point
- Carousel effects
- Planetary motion simulations
👉 Inputs:
- (SceneObject) - Object to rotate
Pivot(Vector3) - World-space point to orbit aroundAxis(Vector3) - Rotation axis (default: 0, 1, 0 for Y-axis)Speed(Float) - Degrees per execution (default: 10)
🎬 Streaming Example: “Create a spinning display of subscriber badges orbiting around a central trophy.”
🎯 Tips: Call repeatedly with OnNewFrame for continuous orbiting. Speed is per-call, so multiply by deltaTime for frame-independent rotation. Axis (0,1,0) rotates horizontally, (1,0,0) rotates vertically.
TransformSmoothMove
Section titled “TransformSmoothMove”💡 Simple Explanation: Smoothly moves an object toward a target position with natural acceleration and deceleration.
⚙️ Technical Description: Uses Unity’s Vector3.SmoothDamp to interpolate position toward a target with configurable smoothing time, creating natural-feeling motion.

🔍 Full Details & Examples
🔧 How It Works: Moves incrementally toward the target with built-in easing. The object accelerates smoothly and decelerates as it approaches the target.
✨ Perfect For:
- Camera follow systems
- Smooth cursor/pointer movement
- Objects that chase or follow targets
- Gentle position transitions
👉 Inputs:
- (SceneObject) - Object to move
Target(Vector3) - World position to move towardSmooth Time(Float) - Smoothing duration in seconds (default: 0.3)
🎬 Streaming Example: “Make a camera smoothly follow your avatar around the scene with a slight delay for cinematic feel.”
🎯 Tips: Call repeatedly with OnNewFrame for continuous following. Lower smooth time = faster/snappier movement. Higher = smoother/slower. Unlike tweens, this is designed for continuous use, not one-shot animations.
GetVelocity
Section titled “GetVelocity”💡 Simple Explanation: Gets how fast and in what direction an object is moving.
⚙️ Technical Description: Retrieves the linear velocity vector from a Rigidbody component on the specified Scene Object.

🔍 Full Details & Examples
🔧 How It Works: Reads the current velocity from the object’s Rigidbody component and outputs it as a Vector3 (X, Y, Z speeds).
✨ Perfect For:
- Speed-based effects
- Collision predictions
- Motion-reactive behaviors
- Physics debugging
👉 Inputs:
- (SceneObject) - Object with Rigidbody component
👈 Outputs:
Velocity(Vector3) - Current velocity (units per second)
🎬 Streaming Example: “Check if a thrown object is moving fast enough to trigger an explosion effect on impact.”
🎯 Tips: Requires Rigidbody component. Use VectorNormalize to get pure direction. Magnitude of velocity = speed.
OnObjectCollisionExit
Section titled “OnObjectCollisionExit”💡 Simple Explanation: Triggers when an object stops touching another object.
⚙️ Technical Description: Listener node that fires when a collision with a monitored object ends, providing collision data including the other object, relative velocity, and contact points.

🔍 Full Details & Examples
🔧 How It Works: Monitors an object for collision exits. Fires the output trigger when the monitored object stops colliding with something, providing details about the collision that just ended.
✨ Perfect For:
- Detecting when objects separate
- Cleanup after collisions
- Zone exit detection
- Multi-object interactions
👉 Inputs:
With Object(SceneObject) - Object to monitorIs Trigger(Boolean) - Use trigger colliders instead of physics colliders
👈 Outputs:
Other Object(SceneObject) - Object that was collidingRelative Velocity(Vector3) - Velocity difference at exitImpulse(Vector3) - Force of separationContact Points(Array) - Where collision ended
🎬 Streaming Example: “When a viewer’s avatar leaves a prize zone, trigger a ‘goodbye’ sound effect.”
🎯 Tips: Pair with OnObjectCollision for entry/exit logic. Is Trigger mode works with trigger colliders (non-physical zones).
SceneObjectSetName
Section titled “SceneObjectSetName”💡 Simple Explanation: Changes an object’s name in the hierarchy.
⚙️ Technical Description: Sets the name property of a Scene Object’s GameObject, changing how it appears in the hierarchy.

🔍 Full Details & Examples
🔧 How It Works: Changes the object’s display name. This affects how the object appears in the hierarchy panel.
✨ Perfect For:
- Dynamic object labeling
- Debugging spawned objects
- Organizing generated content
- Creating descriptive names for viewer-spawned items
👉 Inputs:
- (SceneObject) - Object to rename
Name(String) - New name
🎬 Streaming Example: “When spawning a badge for a subscriber, name it after their username so it’s easy to find.”
🎯 Tips: Doesn’t affect functionality, only display name. Useful for debugging and organization.
SceneObjectSetTag
Section titled “SceneObjectSetTag”💡 Simple Explanation: Assigns a tag to an object for easy lookup later.
⚙️ Technical Description: Sets the tag property on a Scene Object, enabling lookup via SceneObjectFind or other tag-based operations.

🔍 Full Details & Examples
🔧 How It Works: Assigns a string tag to the object that can be used with SceneObjectFind to locate it later.
✨ Perfect For:
- Marking objects for later reference
- Grouping related objects
- Dynamic object management
- Finding spawned objects
👉 Inputs:
- (SceneObject) - Object to tag
Tag(String) - Tag value
🎬 Streaming Example: “Tag each spawned celebration effect with ‘celebration’ so you can find and destroy them all when the event ends.”
🎯 Tips: Use unique tags for specific objects. Use category tags for groups. Combine with SceneObjectFind for dynamic object management.