Node Graph

The **Node Graph** is the visual scripting engine featured in Halo: Infinite's Forge Mode. It is an accessible form of programming where what are essentially 'snippets' of pre-assembled code can be wired together into a complete script.

For examples of Node Graph creations, check out the Node Graph Examples page.

# Nodes

## Audio

Nodes relating to playing audio at specific locations.

### Play 3D Audio For All Players

Play a sound at a specific location for all players.

### Play 3D Audio For Opposing Teams

Plays a sound at a specific location that all teams *except* the specified one can hear.

### Play 3D Audio For Team

Plays a sound at a specific location that only the specified team can hear.

### Register Audio Zone

Marks a Area Monitor as an Audio Zone, allowing it to apply an audio effect to any players inside it.

### Set Object 3D Audio Loop

Sets a sound to play looped attached to an object. Can be set to play only for allies or enemies.

### Stop Object 3D Audio Loop

Stops a sound loop attached to an object.

### Unregister Audio Zone

Unmarks an Area Monitor as an Audio Zone, stopping it from playing any audio effects.

## Bots

Nodes relating to adding and removing bots from the game.

### Add Bot

Adds an AI bot to the game. It can be interacted with via scripting as if it were a human player.

### Bot Difficulty

Sets the Difficulty property of the specified bot.

### Get Bot Is Difficulty

Returns a true/false Boolean if the specified bot has the specified difficulty level property.

### Get Is Bot

Returns a true/false Boolean if the specified player is a bot.

## Events

Nodes relating to event triggers that occur at various points in a game.

### On Gameplay Start

Triggers the moment gameplay begins, which is when players can actually move their characters.

### On Object Damaged

Triggers when the specified object is damaged.

### On Object Destroyed

Triggers when the specified object is destroyed.

### On Object Entered Area

Triggers when the specified object enters the specified area.

### On Object Exited Area

Triggers when the specified object exits the specified area.

### On Object Spawned

Triggers when the specified object spawns and/or respawns.

### On Vehicle Entered

Triggers when the specified vehicle is entered.

### On Vehicle Exited

Triggers when the specified vehicle is exited.

### On Vehicle Hijacked

Triggers when the specified vehicle is hijacked.

### On Vehicle Overturned

Triggers when the specified vehicle is overturned and requires flipping upright.

### Every N Seconds

Waits for an initial delay, and then triggers the attached nodes every time the specified amount of seconds elapses.

### On Custom Equipment Used

Triggers whenever a Custom Equipment is used by a player.

### On Custom Event

Triggers whenever Trigger Custom Event is called within the same Script Brain.

### On Custom Event Global

Triggers when Trigger Custom Event, Global is called within any Script Brain.

### On Object Interacted

Triggers when a specific object is interacted with.

### Trigger Custom Event

Triggers the Nodes attached to On Custom Event within the same Script Brain.

### Trigger Custom Event, Global

Triggers the Nodes attached to any On Custom Event, Global in any Script Brain.

## Events Inventory

Nodes relating to events occuring with a player's inventory.

### On Equipment Pickup

Triggers whenever an item of Equipment is picked up by a player.

### On Equipment Used

Triggers whenever an item of Equipment is used by a player.

### On Grenade Pickup

Triggers whenever a Grenade is picked up by a player.

### On Grenade Throw

Triggers whenever a Grenade is thrown by a player.

### On Weapon Added

Triggers whenever a Weapon is added to a player's inventory by any means.

### On Weapon Dropped

Triggers whenever a Weapon is dropped by a player.

### On Weapon Low Ammo

Triggers whenever a player's Weapon is low on ammo/energy.

### On Weapon No Ammo

Triggers whenenver a player's Weapon completely runs out of ammo/energy.

### On Weapon Pickup

Triggers whenever a Weapon is picked up by a player.

### On Weapon Refill Pickup

Triggers whenever a player picks up ammo from a Weapon they are already holding.

## Events Players

Nodes relating to events that occur with players.

* On Player Crouch
* On Player Exited
* On Player Joined
* On Player Killed
* On Player Mark
* On Player Spawned
* On Player Team Change
* Was Assisted Kill
* Was Grenade Kill
* Was Melee Kill
* Was Vehicle Kill
* Was With Grenade Type
* Was With Specific Weapon
* Was With Vehicle Type
* Was With Weapon Type

## Game Mode

Nodes relating to events that occur within a game mode.

* Adjust Personal Score
* Adjust Player Points
* Adjust Team Points
* End Round
* End Round - All Lose
* End Round - All Tie
* End Round - Winning Player
* End Round - Winning Team
* Get Current Round
* Get Max Rounds
* Get Personal Score
* Get Player Points
* Get Points To Win
* Get Round Time
* Get Team Pointa
* Set Points To Win
* Set Round Time

## Inventory

Nodes relating to a player's inventory.

* Add Player Ammo - Equipped
* Add Player Ammo - Unequipped
* Are Same Weapon Weapon Type
* Drop Specific Weapon
* Drop Weapon Of Type
* Empty Player Ammo
* Get Is Holding Specific Weapon
* Get Is Holding Weapon Type
* Get Is Weapon Type
* Get Player Weapons
* Get Weapon Magazine Capacity
* Get Weapon Magazine Rounds
* Set Weapon Type
* Give Player New Weapon
* Give Player Specific Weapon
* Refill Player Ammo
* Set Player weapon Lowered
* Set Weapon Reserve Ammo
* Set Weapon Magazine Ammo
* Set Weapon Total Rounds
* Switch To First Weapon Of Type

## Inventory Equipment

Nodes relating to a player's inventory equipment.

* Adjust Player Equipment Charges
* Adjust Player Grenades
* Are Same Equip,ent Type
* Empty Player Equipment
* Empty Player Grenades
* Get Equipment Type
* Get Is Holding Any Equipment
* Get Is Holding Type
* Get Loadout Grenade Count
* Get Player Equipment Charges
* Get Player Grenade Count
* Get Player Holding Item
* Give Player New Equipment
* Refill Default Grenades
* Refill Player Equipment
* Set Player Equipment Charges

## Logic

Nodes relating to logical operations that occur within a script.

* Boolean Logic
* Branch
* Compare
* Compare Equipment Types
* Compare Grenade Types
* Compare Teams
* Compare Vehicle Types
* For Each Object
* For Each Player
* For N Interations
* Get Is Forge Mode
* Wait For N Seconds

## Math

Nodes relating to mathematical functions that occur within a script.

* Absolute Value
* Add
* Add Vectors
* Convert Degrees To Radians
* Convert Radians To Degrees
* Divide
* Get Pi
* Get Random Rotation
* Get Vector Axis Value
* Get Vector Length
* Multiply
* Normalize Vector
* Random
* Random Boolean
* Round To Whole Number
* Scale Veector
* Square Root
* Subtract
* Subtract Vectors
* Trigonometry - ArcSin/ArcCos
* Trigonometry - Cos/Sin/Tan
* Vector Cross Product
* Vector Dot Product

## Objects

Nodes relating to objects.

* Add Object To List
* Are Same Object
* Combine Object Lists
* Damage Object
* Delete Object
* Get All Spawn Points
* Get All Spawns Points For Team
* Get First N Objects
* Get Is Dead
* Get Is Valid Object
* Get Last N Objects
* Get List Size
* Get Object Health
* Get Object Shield
* Get Object Team
* Get Object At Index
* Get Objects In Area Monitor
* Get Objects In Prefab
* Get Random N Objects
* Get Shared Objects
* Get Unique Objects
* Object Is In List
* Remove Object From List
* Set Spawn Point Enabled
* Spawn Object

## Objects Transform

Nodes related to transforming objects.

* Get Object Snguoar Velocity
* Get Object Forward
* Get Object Position
* Get Object Rotation
* Get Object Up
* Get Object Velocity
* Move Object to Transform
* Reset Object
* Rotate Object To Pooint
* Set Object Angular Velocity
* set Object Position
* Set Object Rotation
* Set Object Velocity
* Translate Object To Point

## Players

Nodes relating to players.

* Are Same Player
* Block Player Respawns
* Get All Players
* Get All Players On Team
* Get Is Airborne
* Get Is Camoflaged
* Get Is Crouching
* Get Is Detected
* Get Is Detected By Team
* Get Is Grappling
* Get Is In Knockback
* Get Is Lunging
* Get Is Mark Overridden
* Get Is Overshield On
* Get Is Player
* Get Is Zoomed
* Get Number Of Teams
* Get Number Of Players
* Get Player Aiming Vector
* Get Player FFA Allegiance
* Get Player Team
* Get Random Player
* Get Respawn Penalty
* Get Respawn Timer
* Set Player Camo
* Set Player FFA Allegiance
* Set Player Mark Override
* Set Player Team
* Set Respawn Penalty
* Teleport Player
* Unblock Respawns For Player

## Traits

Nodes relating to player traits.

* Apply Trait Set
* Apply Trait Set For Seconds
* Apply Trait Set Until Death
* combine Trait Lists
* Declare Trait Set
* Get Random N Traits
* Remove All Trait Sets
* Remove Trait Set
* Trait: Bonus Health
* Trait: Bonus Shield
* Trait: Bottomless Clip
* Trait: Clamber Enabled
* Trait: Clamber Speed
* Trait: Damage Resistance
* Trait: Deathless
* Trait: Equipment Pickup
* Trait: Grenade Damage
* Trait: Grenade Detonation Radius
* Trait: Grenade Impulse
* Trait: Grenade Pickup
* Trait: Headshot Protection
* Trait: Health Recharge
* Trait: Infinite Ammo
* Trait: Jump Height
* Trait: Loadout Weapon Overrides
* Trait: Melee Damage
* Trait: Melee Impulse
* Trait: Melee Recovery Speed
* Trait: Motion Tracker Range
* Trait: Motion Tracker Visibile
* Trait: Movement Speed
* Trait: Movement Speed With Turret
* Trait: Player Gravity
* Trait: Prevent Grenade Throwing
* Trait: Prevent Weapon Firing
* Trait: Reload Speed
* Trait: Shield HUD Visible
* Trait: Shield Recharge
* Trait: Slide Speed
* Trait: Sprint Enabled
* Trait: Sprint Reload Enabled
* Trait: Sprint Resets Recharge
* Trait: Sprint Speed
* Trait: VFX - Active Camouflage
* Trait: VFX - Overshield
* Trait: Vampirism
* Trait: Vehicle Passenger Only
* Trait: Weapon Damage
* Trait: Weapon Dropping
* Trait: Weapon Switch Speed

UI
--

Nodes relating to UI messages.

* Clear Splash For Player
* Create UI Messge
* Create UI Message [B]
* Print Boolean To Killfeed
* Print Number To Killfeed
* Print Player To Killfeed
* Print Team To Killfeed
* Print Vector3 To Killfeed
* Push Splash To Player
* Set Objective Banner For Player

## UI Nav Markers

Nodes relating to UI navigational markers.

=== Attach Nav Marker To Object
Attaches a Nav Marker to a specific object.

### Clear Nav Marker Team

Clears the team property from a Nav Marker, making all players see it as neutral.

### Set Nav Marker Enabled

Enables or disables a Nav Marker. When disabled, they cannot be seen by any player.

### Set Nav Marker Team

Sets the team property of a Nav Marker. The specified team will see it as friendly, whilst all other teams will see it as enemy.

### Set Nav Marker Team Visibility

Hides a Nav Marker for specific teams. Can be set to allow only one team to see it, or to allow all teams *except* the one specified to see it.

## Variables

Nodes relating to variables used within scripts.

### Area Monitor

Creates an Area Monitor from the Boundary property of the attached object. This area can then be used to trigger actions when objects enter and exit it.

### Equipment Type

Stores an Equipment Type, such as the Grappleshot or Active Camo.

### Grenade Type

Stores a Grenade Type, such as Frags or Plasma Grenades.

### Identifier

Stores a custom Identifier that is used to name variables and custom events.

### Number

Stores a numeric value, both integers (1, 2, 3 etc) and floats (2.5, 8.7, 100.0 etc).

### Object List

Stores a list of individual object references.

### Object Reference

A reference to a specific individual object.

### Team

A reference to a specific team, such as **Team 1 [Eagle, Defenders]** or **Team 7 [Valor]**.

### Vector3

Stores a Vector of 3 numbers. Most commonly used to store object locations and rotations, both of which use X,Y,Z values.

### Vehicle Type

Stores a Vehicle Type, such as Warthogs or Wraiths.

### Weapon Type

Stores a Weapon Type, such as the Assault Rifle or Heatwave.

### Weapon Type Combination

Creates a new weapon type by giving the base weapon the legendary traits of another. For example, an Assault Rifle can be created that fires Volatile Skewer bullets.

## Variables Advanced

Nodes relating to naming, setting, and getting the value of variables that can be used within the same script (Local), across all scripts (Global), or attached to specific object types.

### Declare Boolean Variable

Declares a Boolean variable with a custom identifier.

### Declare Equipment Type Variable

Declares an Equipmewnt Type variable with a custom identifier.

### Declare Grenade Type Variable

Declares a Grenafe Type variable with a custom identifier.

### Declare Number Variable

Declares a Number variable with a custom identifier.

### Declare Object List Variable

Declares an Object List variable with a custom identifier.

### Declare Object Variable

Declares a Object variable with a custom identifier.

### Declare String Variable

Declares a String variable with a custom identifier.

### Declare Team Variable

Declares a Team variable with a custom identifier.

### Declare UI Message Variable

Declares a UI Message variable with a custom identifier.

### Declare Vector3 Variable

Declares a Vector3 variable with a custom identifier.

### Declare Vehicle Type Variable

Declares a Vehicle Type variable with a custom identifier.

### Declare Weapon Type Variable

Declares a Weaponm Type variable with a custom identifier.

### Get Boolean Variable

Gets the value stored within a custom named Boolean variable.

### Get Equipment Type Variable

Gets the value stored within a custom named Equipment Type variable.

### Get Grenade Type Variable

Gets the value stored within a custom named Grenade Type variable.

### Get Number Variable

Gets the value stored within a custom named Number variable.

### Get Object List Variable

Gets the value stored within a custom named Object List variable.

### Get Object Variable

Gets the value stored within a custom named Object variable.

### Get String Variable

Gets the value stored within a custom named String variable.

### Get Team Variable

Gets the value stored within a custom named Team variable.

### Get UI Message Variable

Gets the value stored within a custom named UI Message variable.

### Get Vector3 Variable

Gets the value stored within a custom named Vector3 variable.

### Get Vehicle Type Variable

Gets the value stored within a custom named Vehicle Type variable.

### Get Weapon Type Variable

Gets the value stored within a custom named Weapon Type variable.

### Set Boolean Variable

Sets the value of a custom named Boolean variable.

### Set Equipment Type Variable

Sets the value of a custom named Equipment Type variable.

### Set Grenade Type Variable

Sets the value of a custom named Grenade Type variable.

### Set Number Variable

Sets the value of a custom named Number variable.

### Set Object List Variable

Sets the value of a custom named Object List variable.

### Set Object Variable

Sets the value of a custom named Object variable.

### Set String Variable

Sets the value of a custom named String variable.

### Set Team Variable

Sets the value of a custom named Team variable.

### Set UI Message Variable

Sets the value of a custom named UI Message variable.

### Set Vector3 Variable

Sets the value of a custom named Vector3 variable.

### Set Vehicle Type Variable

Sets the value of a custom named Vehicle Type variable.

### Set Weapon Type Variable

Sets the value of a custom named Weapon Type variable.

### Are Same Vehicle Type

Returns whether two objects share the same Vehicle Type, including both base (Warthogs) and configurations (Rockethogs).

### Attempt To Enter Vehicle

Has a player attemptt to enter a specific vehicle regardless of distance.

### Get Is Boarding

Returns if a player is boarding a vehicle.

### Get Is Driving Vehicle

Returns if a player is driving a vehicle.

### Get Is Gunner in Vehicle

Returns if a player is a gunner in a vehicle.

### Get Is Overturned

Returns if a vehicle is marked as overturned.

### Get Is Passenger In Vehicle

Returns if a player is a passenger in a vehicle.

### Get Is Vehicle Type

Returns if a specific vehicle matches the vehicle type.

### Get Player Vehicle

Returns the specific vehicle a player is seated in.

### Get Squared Vehicle Speed

Returns the squared speed in world units per second of a specific vehicle a player is seated in.

### Get Vehicle Enterable By Player

Returns if a vehicle is able to be entered by players.

### Get Vehicle Type

Returns the vehicle type of a specific vehicle.

### Kick Player From Vehicle

Removes a player from a specific vehicle.

### Scale And Destroy Vehicle

Fades a vehicle out over a duration and then destroys it.

### Set Spawn In Vehicle For All Players

Sets whether players respawn in a specified vehicle type.

### Set Spawn In Vehicle For Player

Sets whether a specific player respawns in a specified vehicle type.

### Set Vehicle Enterable By Player

Sets whether a specific vehicle is enterable by players. This affects all players, not a single specific one.