Skip to content

Instantly share code, notes, and snippets.

@Andrewcpu
Created December 2, 2022 03:47
Show Gist options
  • Save Andrewcpu/c8ebd783b028d39a473e829a0769df20 to your computer and use it in GitHub Desktop.
Save Andrewcpu/c8ebd783b028d39a473e829a0769df20 to your computer and use it in GitHub Desktop.
{"categories":[{"children":[{"outputs":[],"inputs":[{"position":"Vector"}],"name":"Play 3D Audio for all Players","description":"Play a 3D audio clip audible to all players within range of the Position.","type":"Play3DAudioForAllPlayers","category":"AUDIO","flow":{"in":true,"out":true}},{"outputs":[],"inputs":[{"position":"Vector"}],"name":"Play 3D Audio for All Teams","description":"Plays a 3D audio clip audible to all players NOT on the Team within range of the Position.","type":"Play3DAudioForAllTeams","category":"AUDIO","flow":{"in":true,"out":true}},{"outputs":[],"inputs":[{"team":"Team"},{"position":"Vector"}],"name":"Play 3D Audio for Team","description":"Plays a 3D audio clip audible to all players on the Team within range of the Position","type":"Play3DAudioForTeam","category":"AUDIO","flow":{"in":true,"out":true}},{"outputs":[],"inputs":[{"areaMonitor":"AreaMonitor"},{"audioZoneEffect":"AudioZoneEffect"}],"name":"Register Audio Zone","description":"Registers an Area Monitor as an Audio Zone. AUdio Zones apply an Audio Effect to players inside their boundary, affecting how those players hear other sounds in game. Audio Zones can only have one Audio Effect at a time.","type":"RegisterAudioZone","category":"AUDIO","flow":{"in":true,"out":true}},{"outputs":[],"inputs":[{"object":"Object"},{"playForEnemies":"Boolean"},{"playForAllies":"Boolean"}],"name":"Set Object 3D Audio Loop","description":"Sets a 3D audio loop to play on the Object. Can be set to play only for allied or opposing players, which uses the object's Team setting in the Object Properties menu.","type":"SetObject3DAudioLoop","category":"AUDIO","flow":{"in":true,"out":true}},{"outputs":[],"inputs":[{"object":"Object"},{"stopForAllies":"Boolean"},{"stopForEnemies":"Boolean"}],"name":"Stop Object 3D Audio Loop","description":"Stops the audio loop currently playing on the Object. Can stop sounds playing for allied or opposing players independently.","type":"StopObject3DAudioLoop","category":"AUDIO","flow":{"in":true,"out":true}},{"outputs":[],"inputs":[{"audioMonitor":"AreaMonitor"}],"name":"Unregister Audio Zone","description":"Unregisters an Area Monitor as an Audio Zone so that it no longer applies Audio Effects to players in its Boundary. When the zone is unregistered, it will remove its audio effect on any players standing in its Boundary.","type":"UnregisterAudioZone","category":"AUDIO","flow":{"in":true,"out":true}}],"name":"AUDIO","description":"Nodes that interact with audio within the level"},{"children":[{"outputs":[],"inputs":[{"difficulty":"BotDifficulty"},{"team":"Team"}],"name":"Add Bot","description":"Adds a bot of the given Bot Difficulty to the Team. The Team pin is ignored in Free-For-All games. REMINDER: Remember to bake Nav Mesh in the Build Menu to allow bots to navigate your map.","type":"AddBot","category":"BOTS","flow":{"in":true,"out":true}},{"outputs":[{"difficulty":"BotDifficulty"}],"inputs":[],"name":"Bot Difficulty","description":"Returns a bot difficulty level. Recruit is the weakest, and Spartan is the strongest.","type":"BotDifficulty","category":"BOTS","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"isDifficulty":"Boolean"}],"inputs":[{"bot":"BotPlayer"},{"difficulty":"BotDifficulty"}],"name":"Get Bot is Difficulty","description":"Returns true if the Bot Player matches the given Bot Difficulty. Always returns false if the Bot Player is not actually a bot.","type":"GetBotIsDifficulty","category":"BOTS","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"isBot":"Boolean"}],"inputs":[{"player":"Player"}],"name":"Get is Bot","description":"Returns true if the Player is a multiplayer bot.","type":"GetIsBot","category":"BOTS","flow":{"other":false,"in":false,"out":false}},{"outputs":[],"inputs":[],"name":"Remove all Bots","description":"Removes all bots from all teams.","type":"RemoveAllBots","category":"BOTS","flow":{"in":true,"out":true}},{"outputs":[],"inputs":[{"bot":"BotPlayer"}],"name":"Remove Specific Bot","description":"Removes the Bot Player from the game. If the player is not actually a bot, there is no effect.","type":"RemoveSpecificBot","category":"BOTS","flow":{"in":true,"out":true}}],"name":"BOTS","description":"Nodes that interact with multiplayer bots"},{"children":[{"outputs":[{"round":"Number"}],"inputs":[],"name":"Gameplay Start Event","description":"Event called at the start of each round when the gameplay begins. Similar to On Round Start, but fires AFTER intro cameras finish and the first human player can move.","type":"GameplayStartEvent","category":"EVENTS","flow":{"in":false,"out":true}},{"outputs":[],"inputs":[],"name":"Game Start Event","description":"Event called when the game starts","type":"GameStartEvent","category":"EVENTS","flow":{"in":false,"out":true}},{"outputs":[{"round":"Number"}],"inputs":[],"name":"Round End Event","description":"Event called when a round ends","type":"RoundEndEvent","category":"EVENTS","flow":{"in":false,"out":true}},{"outputs":[{"round":"Number"}],"inputs":[],"name":"Round Start Event","description":"Event called when a round starts","type":"RoundStartEvent","category":"EVENTS","flow":{"in":false,"out":true}},{"outputs":[{"attacker":"Object"},{"damageAmount":"Number"}],"inputs":[{"object":"Object"}],"name":"Object Damaged Event","description":"Event called when the Object is damaged by any source. This event won't trigger on objects that don't have health values.","type":"ObjectDamagedEvent","category":"EVENTS","flow":{"in":false,"out":true}},{"outputs":[],"inputs":[{"object":"Object"}],"name":"Object Destroyed Event","description":"Event called when the Object is destroyed or despawned.","type":"ObjectDestroyedEvent","category":"EVENTS","flow":{"in":false,"out":true}},{"outputs":[{"object":"Object"}],"inputs":[{"areaMonitor":"AreaMonitor"}],"name":"Object Entered Area Event","description":"Event called when an object enters the Area Monitor's boundary. Returns which object has entered the boundary.","type":"ObjectEnteredAreaEvent","category":"EVENTS","flow":{"in":false,"out":true}},{"outputs":[{"object":"Object"}],"inputs":[{"areaMonitor":"AreaMonitor"}],"name":"Object Exited Area Event","description":"Event called when an object exits the Area Monitor's boundary. Returns which object has exited the boundary.","type":"ObjectExitedAreaEvent","category":"EVENTS","flow":{"in":false,"out":true}},{"outputs":[],"inputs":[{"object":"Object"}],"name":"Object Spawned Event","description":"Event called when the Object is spawned, including initial spawn at map start if applicable.","type":"ObjectSpawnedEvent","category":"EVENTS","flow":{"in":false,"out":true}},{"outputs":[{"player":"Player"},{"vehicle":"Vehicle"}],"inputs":[],"name":"Vehicle Entered Event","description":"Event called when a player enters a vehicle","type":"VehicleEnteredEvent","category":"EVENTS","flow":{"in":false,"out":true}},{"outputs":[{"player":"Player"},{"vehicle":"Vehicle"}],"inputs":[],"name":"Vehicle Exited Event","description":"Event called when a player exits a vehicle","type":"VehicleExitedEvent","category":"EVENTS","flow":{"in":false,"out":true}},{"outputs":[{"player":"Player"},{"vehicle":"Vehicle"}],"inputs":[],"name":"Vehicle Hijacked Event","description":"Event called when a player hijacks a vehicle","type":"VehicleHijackedEvent","category":"EVENTS","flow":{"in":false,"out":true}},{"outputs":[{"player":"Player"},{"vehicle":"Vehicle"}],"inputs":[],"name":"Vehicle Overturned Event","description":"Event called when a vehicle flips and evicts a player from a set. Event is called once for each evicted player.","type":"VehicleOverturnedEvent","category":"EVENTS","flow":{"in":false,"out":true}}],"name":"EVENTS","description":"Nodes that execute when certain events occur during gameplay. Used to trigger other nodes."},{"children":[{"outputs":[],"inputs":[{"seconds":"Number"},{"initialDelay":"Number"}],"name":"Every N Seconds Event","description":"Waits for the Initial Delay and then executes connected functions every time the number of Seconds elapses. WARNING! Setting seconds to 0 will allow continuous execution but may negatively affect performance. Use with care.","type":"EveryNSecondsEvent","category":"EVENTS_CUSTOM","flow":{"in":false,"out":true}},{"outputs":[{"activatingPlayer":"Player"},{"equipmentType":"EquipmentType"}],"inputs":[],"name":"On Custom Equipment Used Event","description":"Event called in the same conditions as On Equipment Used but only when the equipment used is a Custom Equipment","type":"OnCustomEquipmentUsedEvent","category":"EVENTS_CUSTOM","flow":{"in":false,"out":true}},{"outputs":[{"object":"Object"},{"number":"Number"},{"objectList":"Objects"}],"inputs":[{"identifier":"Identifier"}],"name":"On Custom Event","description":"Event called when Trigger Custom Event is called with a matching identifier from the same script brain. You may only have one On Custom Event node per script brain.","type":"OnCustomEvent","category":"EVENTS_CUSTOM","flow":{"in":false,"out":true}},{"outputs":[{"object":"Object"},{"number":"Number"},{"objectList":"Objects"}],"inputs":[{"identifier":"Identifier"}],"name":"On Custom Event Global","description":"Event called when Trigger Custom Event, Global is called from ANY script brain with a matching identifier. Unless you have a specific need for multiple script brains, it is always best to use the non-global version of On Custom Event.","type":"OnCustomEventGlobal","category":"EVENTS_CUSTOM","flow":{"in":false,"out":true}},{"outputs":[{"activatingPlayer":"Player"}],"inputs":[{"object":"Object"}],"name":"On Object Interacted Event","description":"Event called when a player interacts with the Object. Most commonly used with a scriptable switch.","type":"OnObjectInteracted","category":"EVENTS_CUSTOM","flow":{"in":false,"out":true}},{"outputs":[],"inputs":[{"identifier":"Identifier"},{"object":"Object"},{"number":"Number"},{"objectList":"Objects"}],"name":"Trigger Custom Event","description":"Triggers a custom event with a matching Identifier in the SAME script brain. Only triggers On Custom Event nodes.","type":"TriggerCustomEvent","category":"EVENTS_CUSTOM","flow":{"in":false,"out":true}},{"outputs":[],"inputs":[{"identifier":"Identifier"},{"object":"Object"},{"number":"Number"},{"objectList":"Objects"}],"name":"Trigger Custom Event, Global","description":"Triggers a custom event with a matching Identifier in ANY script brain. Only triggers On Custom Event, Global nodes. Unless you have a specific need for multiple script brains, it is best to use the non-global version of Trigger Custom Event.","type":"TriggerCustomEventGlobal","category":"EVENTS_CUSTOM","flow":{"in":false,"out":true}}],"name":"EVENTS_CUSTOM","description":"Nodes that execute when certain events defined by the scripter occur. Used to trigger other nodes."},{"children":[{"outputs":[{"player":"Player"},{"equipmentType":"EquipmentType"},{"position":"Vector"}],"inputs":[],"name":"Equipment Pickup Event","description":"Event called when a player picks up equipment. Unlike the On Weapon Pickup even, ammo refills DO trigger this event.","type":"EquipmentPickupEvent","category":"EVENTS_INVENTORY","flow":{"in":false,"out":true}},{"outputs":[{"player":"Player"},{"equipmentType":"EquipmentType"}],"inputs":[],"name":"Equipment Used Event","description":"","type":"EquipmentUsedEvent","category":"EVENTS_INVENTORY","flow":{"in":false,"out":true}},{"outputs":[{"player":"Player"},{"grenadeType":"GrenadeType"},{"position":"Vector"}],"inputs":[],"name":"Grenade Pickup Event","description":"Event called when a player explicitly picks up a grenade","type":"GrenadePickupEvent","category":"EVENTS_INVENTORY","flow":{"in":false,"out":true}},{"outputs":[{"player":"Player"},{"grenadeType":"GrenadeType"}],"inputs":[],"name":"Grenade Throw Event","description":"Event called when a player throws a grenade","type":"GrenadeThrowEvent","category":"EVENTS_INVENTORY","flow":{"in":false,"out":true}},{"outputs":[{"player":"Player"},{"weapon":"Weapon"}],"inputs":[],"name":"Weapon Added Event","description":"Event called when a weapon is added to a player's inventory. Ammo refills for a weapon a player is already holding will NOT trigger this event.","type":"WeaponAddedEvent","category":"EVENTS_INVENTORY","flow":{"in":false,"out":true}},{"outputs":[{"player":"Player"},{"weapon":"Weapon"}],"inputs":[],"name":"Weapon Dropped Event","description":"Event called when a weapon is dropped by a player.","type":"WeaponDroppedEvent","category":"EVENTS_INVENTORY","flow":{"in":false,"out":true}},{"outputs":[{"player":"Player"},{"weapon":"Weapon"}],"inputs":[],"name":"Weapon Low Ammo Event","description":"Event is called when a player gets low on ammo or energy","type":"WeaponLowAmmoEvent","category":"EVENTS_INVENTORY","flow":{"in":false,"out":true}},{"outputs":[{"player":"Player"},{"weapon":"Weapon"}],"inputs":[],"name":"Weapon No Ammo Event","description":"Event called when a weapon runs out of ammo or energy","type":"WeaponNoAmmoEvent","category":"EVENTS_INVENTORY","flow":{"in":false,"out":true}},{"outputs":[{"player":"Player"},{"weapon":"Weapon"},{"position":"Vector"}],"inputs":[],"name":"Weapon Pickup Event","description":"Event called when a player explicitly picks up a weapon. Ammo refills for a weapon a player is already holding will NOT trigger this event.","type":"WeaponPickupEvent","category":"EVENTS_INVENTORY","flow":{"in":false,"out":true}},{"outputs":[{"player":"Player"},{"weapon":"Weapon"},{"position":"Vector"},{"didFinish":"Boolean"}],"inputs":[],"name":"Weapon Refill Pickup Event","description":"Event called when a weapon is picked up for an ammo refill. Is Fully Picked Up will return true if the weapon was despawned.","type":"WeaponRefillPickupEvent","category":"EVENTS_INVENTORY","flow":{"in":false,"out":true}}],"name":"EVENTS_INVENTORY","description":"Nodes related to weapons, grenades, and equipment that execute when certain events occur during gameplay. Used to trigger other nodes."},{"children":[{"outputs":[{"player":"Player"},{"crouching":"Boolean"}],"inputs":[],"name":"Player Crouch Event","description":"Event called when any player changes their crouch state. Is Crouching will be true when a player crouches and false when they stand back up.","type":"PlayerCrouchEvent","category":"EVENTS_PLAYERS","flow":{"in":false,"out":true}},{"outputs":[{"player":"Player"},{"team":"Team"}],"inputs":[],"name":"Player Exited Event","description":"Event called when a player leaves the game","type":"PlayerExitedEvent","category":"EVENTS_PLAYERS","flow":{"in":false,"out":true}},{"outputs":[{"player":"Player"},{"inProgress":"Boolean"}],"inputs":[],"name":"Player Joined Event","description":"Event called when a player has joined and is active in the game. Joined In Progress will be true if the match had already started when the player joined.","type":"PlayerJoinedEvent","category":"EVENTS_PLAYERS","flow":{"in":false,"out":true}},{"outputs":[{"killed":"Player"},{"killer":"Player"},{"deathContext":"DeathContext"}],"inputs":[],"name":"Player Killed Event","description":"Event called when any player dies","type":"PlayerKilledEvent","category":"EVENTS_PLAYERS","flow":{"in":false,"out":true}},{"outputs":[{"player":"Player"},{"position":"Vector"},{"targets":"Players"}],"inputs":[],"name":"Player Mark Event","description":"Event called when a player pings an object within range using the Mark system. Target List returns an object list with any dynamic objects the callout hits and will return an empty list if there are no valid targets.","type":"PlayerMarkEvent","category":"EVENTS_PLAYERS","flow":{"in":false,"out":true}},{"outputs":[{"player":"Player"}],"inputs":[],"name":"Player Spawned Event","description":"Event called when any player spawns or respawns","type":"PlayerSpawnedEvent","category":"EVENTS_PLAYERS","flow":{"in":false,"out":true}},{"outputs":[{"player":"Player"},{"old":"Team"},{"new":"Team"}],"inputs":[],"name":"Player Team Change Event","description":"Event called when any player changes teams","type":"PlayerTeamChangeEvent","category":"EVENTS_PLAYERS","flow":{"in":false,"out":true}}],"name":"EVENTS_PLAYERS","description":"Nodes related to players that execute when certain events occur during gameplay. Used to trigger other nodes."},{"children":[{"outputs":[],"inputs":[{"endGame":"Boolean"}],"name":"End Round","description":"Ends the current round immediately, calculating score appropriate to the game mode. If End Game is set to true, the game will end regardless of how many rounds were remaining.","type":"EndRound","category":"GAME_MODE","flow":{"in":true,"out":true}},{"outputs":[],"inputs":[{"endGame":"Boolean"}],"name":"End Round - All Lose","description":"Ends the current round immediately, recording a loss for all participants regardless of score. If End Game is set to true, the game will end regardless of how many rounds were remaining.","type":"EndRoundAllLose","category":"GAME_MODE","flow":{"in":true,"out":true}},{"outputs":[],"inputs":[{"endGame":"Boolean"}],"name":"End Round - All Tie","description":"Ends the current round immediately, recording a tie for all participants regardless of score. If End Game is set to true, the game will end regardless of how many rounds were remaining.","type":"EndRoundAllTie","category":"GAME_MODE","flow":{"in":true,"out":true}},{"outputs":[],"inputs":[{"winner":"Player"},{"endGame":"Boolean"}],"name":"End Round - Winning Player","description":"Ends the current round immediately, recording a win for the Player regardless of score. If End Game is set to true, the game will end regardless of how many rounds were remaining.","type":"EndRoundWinningPlayer","category":"GAME_MODE","flow":{"in":true,"out":true}},{"outputs":[],"inputs":[{"winner":"Team"},{"endGame":"Boolean"}],"name":"End Round - Winning Team","description":"Ends the current round immediately, recording a win for the Team regardless of score. If End Game is set to true, the game will end regardless of how many rounds were remaining.","type":"EndRoundWinningTeam","category":"GAME_MODE","flow":{"in":true,"out":true}},{"outputs":[{"round":"Number"}],"inputs":[],"name":"Get Current Round","description":"Gets the current round number","type":"GetCurrentRound","category":"GAME_MODE","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"maxRounds":"Number"}],"inputs":[],"name":"Get Max Rounds","description":"Get the maximum number of rounds the game variant will allow","type":"GetMaxRounds","category":"GAME_MODE","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"points":"Number"}],"inputs":[],"name":"Get Points to Win","description":"Gets the point total needed to win the current round","type":"GetPointsToWin","category":"GAME_MODE","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"time":"Number"}],"inputs":[],"name":"Get Round Time","description":"Gets the Seconds Remaining in the current round","type":"GetRoundTime","category":"GAME_MODE","flow":{"other":false,"in":false,"out":false}},{"outputs":[],"inputs":[{"points":"Number"}],"name":"Set Points to Win","description":"Sets the point total required to win the current round.","type":"SetPointsToWin","category":"GAME_MODE","flow":{"in":true,"out":true}},{"outputs":[],"inputs":[{"time":"Number"}],"name":"Set Round Time","description":"Sets the time left in the round to the specified Seconds Remaining","type":"SetRoundTime","category":"GAME_MODE","flow":{"in":true,"out":true}},{"outputs":[],"inputs":[{"player":"Player"},{"adjustment":"Number"}],"name":"Adjust Personal Score","description":"Adjusts the score of the Player for the current round which affects placement order in the scoreboard, among other things. Affects a different value than Adjust Player Points","type":"AdjustPersonalScore","category":"GAME_MODE","flow":{"in":true,"out":true}},{"outputs":[],"inputs":[{"player":"Player"},{"adjustment":"Number"}],"name":"Adjust Player Points","description":"Adjusts the point total of the Player for current round by the Score Adjustment amount. Negative values will subtract points.","type":"AdjustPlayerPoints","category":"GAME_MODE","flow":{"in":true,"out":true}},{"outputs":[{"total":"Number"},{"round":"Number"}],"inputs":[{"player":"Player"}],"name":"Get Personal Score","description":"Gets the Player Personal Score, which affects placement order in the scoreboard, among other things. Provides Personal Score for the current round as well as the whole match. Use Get Player Points if you want to measure progress to victory.","type":"GetPersonalScore","category":"GAME_MODE","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"total":"Number"},{"round":"Number"}],"inputs":[{"player":"Player"}],"name":"Get Player Points","description":"Gets the Player's point total. Provides points for the current round as well as the whole match.","type":"GetPlayerPoints","category":"GAME_MODE","flow":{"other":false,"in":false,"out":false}},{"outputs":[],"inputs":[{"team":"Team"},{"adjustment":"Number"}],"name":"Adjust Team Points","description":"Adjusts the point total of the Team for current round by the Score Adjustment amount. Negative values will subtract points.","type":"AdjustTeamPoints","category":"GAME_MODE","flow":{"in":true,"out":true}},{"outputs":[{"total":"Number"},{"round":"Number"}],"inputs":[{"team":"Team"}],"name":"Get Team Points","description":"Gets the point total for the Team. Returns points for the urrent round as well as the whole match.","type":"GetTeamPoints","category":"GAME_MODE","flow":{"other":false,"in":false,"out":false}}],"name":"GAME_MODE","description":"Nodes that interact with the game mode and scoring."},{"children":[{"outputs":[],"inputs":[{"player":"Player"},{"refillPercent":"Number"}],"name":"Add Player Ammo - Equipped","description":"Adds a percentage of total ammo to the weapon the Player is holding. Refill Percent takes a value between 0 and 100.","type":"AddPlayerAmmoEquipped","category":"INVENTORY","flow":{"in":true,"out":true}},{"outputs":[],"inputs":[{"player":"Player"},{"refillPercent":"Number"}],"name":"Add Player Ammo - Unequipped","description":"Adds a percentage of total ammo to the weapon the Player has in their backpack. Refill Percent takes a value between 0 and 100.","type":"AddPlayerAmmoUnequipped","category":"INVENTORY","flow":{"in":true,"out":true}},{"outputs":[{"sameBase":"Boolean"},{"sameType":"Boolean"}],"inputs":[{"a":"Weapon"},{"b":"Weapon"}],"name":"Are Same Weapon Type","description":"Returns whether the two objects share a base Weapon Type (e.g. both are Gravity Hammers) and if they share a Weapon Type (e.g. both are Rushdown Gravity Hammers). Two objects with invalid Weapon Types will compare as true.","type":"AreSameWeaponType","category":"INVENTORY","flow":{"in":true,"out":true}},{"outputs":[],"inputs":[{"player":"Player"},{"weapon":"Weapon"}],"name":"Drop Specific Weapon","description":"Have the Player attempt to drop the Weapon in their inventory if it exists.","type":"DropSpecificWeapon","category":"INVENTORY","flow":{"in":true,"out":true}},{"outputs":[],"inputs":[{"player":"Player"},{"weaponType":"WeaponType"}],"name":"Drop Weapon of Type","description":"Have the Player attempt to drop the first weapon in their inventory that matches the Weapon Type if it exists.","type":"DropWeaponOfType","category":"INVENTORY","flow":{"in":true,"out":true}},{"outputs":[],"inputs":[{"player":"Player"}],"name":"Empty Player Ammo","description":"Empties all ammo for each of the Player's weapons","type":"EmptyPlayerAmmo","category":"INVENTORY","flow":{"in":true,"out":true}},{"outputs":[{"isHolding":"Boolean"}],"inputs":[{"player":"Player"},{"weapon":"Weapon"}],"name":"Get is Holding Specific Weapon","description":"Returns true if the Player has a particular Weapon instance in their inventory","type":"GetIsHoldingSpecificWeapon","category":"INVENTORY","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"isHolding":"Boolean"}],"inputs":[{"player":"Player"},{"weaponType":"WeaponType"}],"name":"Get is Holding Weapon Type","description":"Returns true if the Player has a weapon in their inventory that matches the Weapon Type","type":"GetIsHoldingWeaponType","category":"INVENTORY","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"isType":"Boolean"}],"inputs":[{"weapon":"Weapon"},{"weaponType":"WeaponType"}],"name":"Get is Weapon Type","description":"Returns true if the Weapon matches the Weapon Type","type":"GetIsWeaponType","category":"INVENTORY","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"player":"Player"}],"inputs":[{"object":"Object"}],"name":"Get Player Holding Item","description":"Returns the player who has the Object in their inventory. Returns an invalid reference if the Object is not in any players inventory","type":"GetPlayerHoldingItem","category":"INVENTORY","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"equipped":"Weapon"},{"unequipped":"Weapon"}],"inputs":[{"player":"Player"}],"name":"Get Player Weapons","description":"Returns object references to the weapons in the Player's inventory. Pins return an invalid reference if the PLayer does not have a weapon.","type":"GetPlayerWeapons","category":"INVENTORY","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"capacity":"Number"}],"inputs":[{"weapon":"Weapon"}],"name":"Get Weapon Magazine Capacity","description":"Returns object references to the weapons in the Player's inventory. Pins return an invalid reference if the PLayer does not have a weapon.","type":"GetWeaponMagazineCapacity","category":"INVENTORY","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"rounds":"Number"}],"inputs":[{"weapon":"Weapon"}],"name":"Get Weapon Magazine Rounds","description":"Returns the number of rounds in the Weapon magazine. Returns 0 if the weapon does not have a magazine.","type":"GetWeaponMagazineRounds","category":"INVENTORY","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"type":"WeaponType"},{"baseWeapon":"WeaponType"},{"configuration":"WeaponConfiguration"}],"inputs":[{"weapon":"Weapon"}],"name":"Get Weapon Type","description":"Returns the Weapon Type of the input object.","type":"GetWeaponType","category":"INVENTORY","flow":{"other":false,"in":false,"out":false}},{"outputs":[],"inputs":[{"player":"Player"},{"weaponType":"WeaponType"},{"additionMethod":"WeaponAdditionMethod"},{"waitUntilComplete":"Boolean"}],"name":"Give Player New Weapon","description":"Attempts to create a new weapon of the Weapon Type and add it to the PLayer's inventory. Optionally blocks script execution until the operation is finished. If the player is in a vehicle, this function is ignored.","type":"GivePlayerNewWeapon","category":"INVENTORY","flow":{"in":true,"out":true}},{"outputs":[],"inputs":[{"player":"Player"},{"weapon":"Weapon"},{"additionMethod":"WeaponAdditionMethod"},{"waitUntilComplete":"Boolean"}],"name":"Give Player Specific Weapon","description":"Attempts to add a specific Weapon instance to the Player's inventory. Optionally blocks script execution until the operation is finished. If the player is in a vehicle, this function is ignored.","type":"GivePlayerSpecificWeapon","category":"INVENTORY","flow":{"in":true,"out":true}},{"outputs":[],"inputs":[{"player":"Player"}],"name":"Refill Player Ammo","description":"Refills all ammo for each of a Player's weapons","type":"RefillPlayerAmmo","category":"INVENTORY","flow":{"in":true,"out":true}},{"outputs":[],"inputs":[{"player":"Player"},{"lowered":"Boolean"}],"name":"Set Player Weapon Lowered","description":"Set Enabled to true to lower the Player's weapons. Warning! Switching weapons without calling the node will raise the weapon in third-person, but not first-person.","type":"SetPlayerWeaponLowered","category":"INVENTORY","flow":{"in":true,"out":true}},{"outputs":[],"inputs":[{"player":"Player"},{"weaponType":"WeaponType"}],"name":"Switch to First Weapon of Type","description":"Force the Player to switch to the first weapon in their inventory that matches the Weapon Type. Has no effect if the Player already has that weapon equipped or does not have a matching weapon.","type":"SwitchToFirstWeaponOfType","category":"INVENTORY","flow":{"in":true,"out":true}}],"name":"INVENTORY","description":"Nodes that interact with a player's inventory of weapons and ammo"},{"children":[{"outputs":[],"inputs":[{"player":"Player"},{"adjustment":"Number"}],"name":"Adjust Player Equipment Charges","description":"Adjusts the number of equipment charges remaining on the Player's equipment. Negative values will subtract charges.\n","type":"AdjustPlayerEquipmentCharges","category":"INVENTORY_EQUIPMENT","flow":{"in":true,"out":true}},{"outputs":[],"inputs":[{"player":"Player"},{"grenadeType":"GrenadeType"},{"adjustment":"Number"}],"name":"Adjust Player Grenades","description":"Adjusts the number of grenades in the Player's inventory. Negative values will subtract grenades.","type":"AdjustPlayerGrenades","category":"INVENTORY_EQUIPMENT","flow":{"in":true,"out":true}},{"outputs":[{"isSame":"Boolean"}],"inputs":[{"a":"Equipment"},{"b":"Equipment"}],"name":"Are Same Equipment Type","description":"Returns whether the two objects share an Equipment Type (e.g. both are Grappleshots). Two objects with invalid Equipment Types will compare as true.","type":"AreSameEquipmentType","category":"INVENTORY_EQUIPMENT","flow":{"other":false,"in":false,"out":false}},{"outputs":[],"inputs":[{"player":"Player"}],"name":"Empty Player Equipment","description":"Sets the number of chargers on a Player's equipment to zero and removes it from their inventory.","type":"EmptyPlayerEquipment","category":"INVENTORY_EQUIPMENT","flow":{"in":true,"out":true}},{"outputs":[],"inputs":[{"player":"Player"}],"name":"Empty Player Grenades","description":"Empties all grenades from the Player's inventory.","type":"EmptyPlayerGrenades","category":"INVENTORY_EQUIPMENT","flow":{"in":true,"out":true}},{"outputs":[{"equipmentType":"EquipmentType"},{"isPowerup":"Boolean"}],"inputs":[{"equipment":"Equipment"}],"name":"Get Equipment Type","description":"Returns the Equipment Type of the Equipment object.","type":"GetEquipmentType","category":"INVENTORY_EQUIPMENT","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"anyEquipment":"Boolean"},{"isPowerup":"Boolean"},{"equipmentType":"EquipmentType"}],"inputs":[{"player":"Player"}],"name":"Get is Holding Any Equipment","description":"Returns true if the Player is holding any equipment. Additional pins provide some details about the equipment held.","type":"GetIsHoldingAnyEquipment","category":"INVENTORY_EQUIPMENT","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"isHolding":"Boolean"}],"inputs":[{"player":"Player"},{"equipmentType":"EquipmentType"}],"name":"Get is Holding Equipment Type","description":"Returns true if the Player is holding equipment matching the Equipment Type.","type":"GetIsHoldingEquipmentType","category":"INVENTORY_EQUIPMENT","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"count":"Number"}],"inputs":[{"player":"Player"},{"grenadeType":"GrenadeType"}],"name":"Get Loadout Grenade Count","description":"Get the number of grenades of the Grenade Type that the Player will currently respawn with. This number may change throughout the game as traits or other modifiers are applied.","type":"GetLoadoutGrenadeCount","category":"INVENTORY_EQUIPMENT","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"charges":"Number"}],"inputs":[{"player":"Player"}],"name":"Get Player Equipment Charges","description":"Returns the number of chargers remaining for a Player's equipment. Returns 0 if the PLayer is not holding any equipment.","type":"GetPlayerEquipmentCharges","category":"INVENTORY_EQUIPMENT","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"count":"Number"}],"inputs":[{"player":"Player"},{"grenadeType":"GrenadeType"}],"name":"Get Player Grenade Count","description":"Returns the number of grenades of the Grenade Type held by the Player.","type":"GetPlayerGrenadeCount","category":"INVENTORY_EQUIPMENT","flow":{"in":true,"out":true}},{"outputs":[],"inputs":[{"player":"Player"},{"equipmentType":"EquipmentType"}],"name":"Give Player New Equipment","description":"Attempts to create a new equipment instance of the Equipment Type and add it to the Player's inventory, deleting any existing equipment.","type":"GivePlayerNewEquipment","category":"INVENTORY_EQUIPMENT","flow":{"in":true,"out":true}},{"outputs":[],"inputs":[{"player":"Player"}],"name":"Refill Default Grenades","description":"Refills the Player's grenade inventory up to the loadout maximum for each grenade type.","type":"RefillDefaultGrenades","category":"INVENTORY_EQUIPMENT","flow":{"in":true,"out":true}},{"outputs":[],"inputs":[{"player":"Player"}],"name":"Refill Player Equipment","description":"Refills the Player's equipment to the maximum number of charges that their equipment can hold.","type":"RefillPlayerEquipment","category":"INVENTORY_EQUIPMENT","flow":{"in":true,"out":true}},{"outputs":[],"inputs":[{"player":"Player"},{"charges":"Number"}],"name":"Set Player Equipment Charges","description":"Sets the equipment charges in a Player's inventory to the Charge Count.","type":"SetPlayerEquipmentCharges","category":"INVENTORY_EQUIPMENT","flow":{"in":true,"out":true}}],"name":"INVENTORY_EQUIPMENT","description":"Nodes that interact with a player's inventory of equipment and grenades."},{"children":[{"outputs":[{"and":"Boolean"},{"or":"Boolean"}],"inputs":[{"a":"Boolean"},{"b":"Boolean"}],"name":"Boolean Logic","description":"Returns AND\/OR boolean results on the input values.","type":"BooleanLogic","category":"LOGIC","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"ifTrue":"ExecutionThread"},{"ifFalse":"ExecutionThread"}],"inputs":[{"condition":"Boolean"}],"name":"Branch","description":"Recieves a boolean Condition and does one of two things if the condition is true or false. Connect the If True and If False to the diamond on the pin you want to execute for each case.","type":"Branch","category":"LOGIC","flow":{"other":true,"in":true,"out":false}},{"outputs":[{"equal":"Boolean"},{"greater":"Boolean"},{"less":"Boolean"}],"inputs":[{"a":"Number"},{"b":"Number"}],"name":"Compare","description":"Compares two numeric input values, returning true or false for each result","type":"Compare","category":"LOGIC","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"equal":"Boolean"}],"inputs":[{"a":"EquipmentType"},{"b":"EquipmentType"}],"name":"Compare Equipment Types","description":"Compares two Equipment Type values","type":"CompareEquipmentTypes","category":"LOGIC","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"equal":"Boolean"}],"inputs":[{"a":"GrenadeType"},{"b":"GrenadeType"}],"name":"Compare Grenade Types","description":"Compares two Grenade Type values","type":"CompareGrenadeTypes","category":"LOGIC","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"equal":"Boolean"}],"inputs":[{"a":"Team"},{"b":"Team"}],"name":"Compare Teams","description":"Compares two Team values","type":"CompareTeams","category":"LOGIC","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"equal":"Boolean"}],"inputs":[{"a":"VehicleType"},{"b":"VehicleType"}],"name":"Compare Vehicle Types","description":"Compares two Vehicle Type values","type":"CompareVehicleTypes","category":"LOGIC","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"equal":"Boolean"}],"inputs":[{"a":"WeaponType"},{"b":"WeaponType"}],"name":"Compare Weapon Types","description":"Compares two Weapon Type values","type":"CompareWeaponTypes","category":"LOGIC","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"onComplete":"ExecutionThread"},{"perObject":"ExecutionThread"},{"currentObject":"Object"},{"currentIteration":"Number"}],"inputs":[{"objectList":"Objects"}],"name":"For Each Object","description":"Executes connected functions for each object in the Objects list.","type":"ForEachObject","category":"LOGIC","flow":{"other":true,"in":true,"out":false}},{"outputs":[{"onComplete":"ExecutionThread"},{"perObject":"ExecutionThread"},{"currentPlayer":"Player"},{"currentIteration":"Number"}],"inputs":[{"playerList":"Players"}],"name":"For Each Player","description":"Executes connected functions for eah player in the Objects list. Identical to For Each Object except it ignores non-player objects in the list.","type":"ForEachPlayer","category":"LOGIC","flow":{"other":true,"in":true,"out":false}},{"outputs":[{"onComplete":"ExecutionThread"},{"perIteration":"ExecutionThread"},{"currentIteration":"Number"}],"inputs":[{"iterations":"Number"}],"name":"For N Iterations","description":"Execute connected functions the specified number of times","type":"ForNIterations","category":"LOGIC","flow":{"other":true,"in":true,"out":false}},{"outputs":[{"isForge":"Boolean"}],"inputs":[],"name":"Get is Forge Mode","description":"Returns true if the game is currently in Forge mode. Will return false in custom games. Use for debugging purposes.\n","type":"GetIsForgeMode","category":"LOGIC","flow":{"other":false,"in":false,"out":false}},{"outputs":[],"inputs":[{"seconds":"Number"}],"name":"Wait For N Seconds","description":"Pause execution for the specified number of Seconds before continuing","type":"WaitForNSeconds","category":"LOGIC","flow":{"in":true,"out":true}}],"name":"LOGIC","description":"Nodes that control the logical flow of the script"},{"children":[{"outputs":[{"number":"Number"}],"inputs":[{"number":"Number"}],"name":"Absolute Value","description":"Returns the absolute value of the Operand","type":"AbsoluteValue","category":"MATH","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"value":"Number"}],"inputs":[{"a":"Number"},{"b":"Number"}],"name":"Add","description":"Returns the sum of the two input values","type":"Add","category":"MATH","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"vector":"Vector"}],"inputs":[{"a":"Vector"},{"b":"Vector"}],"name":"Add Vectors","description":"Returns the sum of two input vectors","type":"AddVectors","category":"MATH","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"arccos":"Number"},{"arcsin":"Number"}],"inputs":[{"a":"Number"}],"name":"Arc sin & Arc cos","description":"Returns the inverse sine and cosine in radians of the given value","type":"ArcsinArccos","category":"MATH","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"arctan":"Number"}],"inputs":[{"a":"Number"},{"b":"Number"}],"name":"ArcTan","description":"Returns the inverse tangent of A\/B in radians, using the signs of both parameters to find the quadrent of the result. Returns 0 if both A and B are 0.","type":"Arctan","category":"MATH","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"radians":"Number"}],"inputs":[{"degrees":"Number"}],"name":"Convert Degrees to Radians","description":"Converts from degrees to radians","type":"ConvertDegreesToRadians","category":"MATH","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"degrees":"Number"}],"inputs":[{"radians":"Number"}],"name":"Convert Radians to Degrees","description":"Converts from radians to degrees","type":"ConvertRadiansToDegrees","category":"MATH","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"cos":"Number"},{"sin":"Number"},{"tan":"Number"}],"inputs":[{"number":"Number"}],"name":"Cos Sin Tan","description":"Get the cosine, sine, and tangent from a given value in radians.","type":"CosSinTan","category":"MATH","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"quotient":"Number"},{"whole":"Number"},{"remainder":"Number"}],"inputs":[{"a":"Number"},{"b":"Number"}],"name":"Divide","description":"Returns the quotient, whole number, and remainder of the two input values","type":"Divide","category":"MATH","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"pi":"Number"}],"inputs":[],"name":"Get Pi","description":"Returns the constant, Pi. After all, everybody loves Pi.","type":"GetPi","category":"MATH","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"rotation":"Vector"}],"inputs":[],"name":"Get Random Rotation","description":"Returns a vector representation a random rotation.","type":"GetRandomRotation","category":"MATH","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"x":"Number"},{"y":"Number"},{"z":"Number"}],"inputs":[{"vector":"Vector"}],"name":"Get Vector Axis Value","description":"Get the individual axis values from the Vector.","type":"GetVectorAxisValue","category":"MATH","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"length":"Number"}],"inputs":[{"vector":"Vector"}],"name":"Get Vector Length","description":"Get the length of the Vector","type":"GetVectorLength","category":"MATH","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"number":"Number"}],"inputs":[{"a":"Number"},{"b":"Number"}],"name":"Multiply","description":"Returns the product of the two input values","type":"Multiply","category":"MATH","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"normalizedVector":"Vector"}],"inputs":[{"vector":"Vector"}],"name":"Normalize Vector","description":"Returns a normalized copy of the Vector","type":"NormalizeVector","category":"MATH","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"boolean":"Boolean"}],"inputs":[{"percentWeighting":"Number"}],"name":"Random Boolean","description":"Returns a randomm true\/false value with the given chance to return true. For example, choose a Percent Weighting of 60 to return true 60% of the time.","type":"RandomBoolean","category":"MATH","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"number":"Number"}],"inputs":[{"min":"Number"},{"max":"Number"}],"name":"Random","description":"Returns a random, uniformly-distributed float alue between the Min and Max. Use Round to Whole Number on the output to generate a random integer.","type":"RandomNumber","category":"MATH","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"up":"Number"},{"nearest":"Number"},{"down":"Number"}],"inputs":[{"number":"Number"}],"name":"Round to Whole Number","description":"Returns the Operand rounded up, rounded down, and rounded to the nearest whole number","type":"RoundToWholeNumber","category":"MATH","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"scaled":"Vector"}],"inputs":[{"vector":"Vector"},{"scalar":"Number"}],"name":"Scale Vector","description":"Scale the Vector by the Scalar","type":"ScaleVector","category":"MATH","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"root":"Number"}],"inputs":[{"number":"Number"}],"name":"Square Root","description":"Returns the square root of the Operand. Negative inputs will return the square root of their absolute values.","type":"SquareRoot","category":"MATH","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"number":"Number"}],"inputs":[{"a":"Number"},{"b":"Number"}],"name":"Subtract","description":"Returns the difference between the two input values","type":"Subtract","category":"MATH","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"vector":"Vector"}],"inputs":[{"a":"Vector"},{"b":"Vector"}],"name":"Subtract Vectors","description":"Returns the difference between two input vectors","type":"SubtractVectors","category":"MATH","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"crossProduct":"Vector"}],"inputs":[{"a":"Vector"},{"b":"Vector"}],"name":"Vector Cross Product","description":"Calculate the cross product of two input vectors.","type":"VectorCrossProduct","category":"MATH","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"number":"Number"}],"inputs":[{"a":"Vector"},{"b":"Vector"}],"name":"Vector Dot Product","description":"Calculate the dot product of two input vectors.","type":"VectorDotProduct","category":"MATH","flow":{"other":false,"in":false,"out":false}}],"name":"MATH","description":"Nodes that perform mathematical operations"},{"children":[{"outputs":[{"newList":"Objects"}],"inputs":[{"objectList":"Objects"},{"object":"Object"}],"name":"Add Object to List","description":"Return a new list with all the objects in the Object List, plus the Object.","type":"AddObjectToList","category":"OBJECTS","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"equal":"Boolean"}],"inputs":[{"a":"Object"},{"b":"Object"}],"name":"Are Same Object","description":"Returns true if the two objects are the same object","type":"AreSameObject","category":"OBJECTS","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"combined":"Objects"}],"inputs":[{"a":"Objects"},{"b":"Objects"}],"name":"Combine Object Lists","description":"Create a list with all objects in either Object List","type":"CombineObjectLists","category":"OBJECTS","flow":{"other":false,"in":false,"out":false}},{"outputs":[],"inputs":[{"object":"Object"},{"damage":"Number"}],"name":"Damage Object","description":"Deals damage equal to the Damage Amount to the Object","type":"DamageObject","category":"OBJECTS","flow":{"in":true,"out":true}},{"outputs":[],"inputs":[{"object":"Object"}],"name":"Delete Object","description":"Despawns the Object if it is currently spawned","type":"DeleteObject","category":"OBJECTS","flow":{"in":true,"out":true}},{"outputs":[{"spawnPoints":"Objects"}],"inputs":[],"name":"Get All Spawn Points","description":"Get a list of all spawn points (128, maximum) on the map. Excluses initial spawn points.","type":"GetAllSpawnPoints","category":"OBJECTS","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"spawnPoints":"Objects"}],"inputs":[{"team":"Team"}],"name":"Get All Spawn Points for Team","description":"Get a list of all spawn points (128, maximum) that are set to a specific Team. Excludes initial spawn points.","type":"GetAllSpawnPointsForTeam","category":"OBJECTS","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"list":"Objects"}],"inputs":[{"objectList":"Objects"},{"n":"Number"}],"name":"Get First N Objects","description":"Gets the first N objects from the Object List.","type":"GetFirstNObjects","category":"OBJECTS","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"isDead":"Boolean"}],"inputs":[{"object":"Object"}],"name":"Get is Dead","description":"Returns true if the Object is dead, destroyed, or despawned.","type":"GetIsDead","category":"OBJECTS","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"isValid":"Boolean"}],"inputs":[{"object":"Object"}],"name":"Get is Valid Object","description":"Returns true if the Object is valid. Returns false if it is invalid (nil).","type":"GetIsValidObject","category":"OBJECTS","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"list":"Objects"}],"inputs":[{"objectList":"Objects"},{"n":"Number"}],"name":"Get Last N Objects","description":"Gets the last N objects from the Object List","type":"GetLastNObjects","category":"OBJECTS","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"size":"Number"}],"inputs":[{"list":"Objects"}],"name":"Get List Size","description":"Get the number of objects contained in the Object List","type":"GetListSize","category":"OBJECTS","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"object":"Object"}],"inputs":[{"objectList":"Objects"},{"index":"Number"}],"name":"Get Object at Index","description":"Get the object stored at the Index of the Object List. Returns an invalid object if the index is out of bounds. Object List indicies start at 1.","type":"GetObjectAtIndex","category":"OBJECTS","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"percent":"Number"},{"health":"Number"},{"max":"Number"}],"inputs":[{"object":"Object"}],"name":"Get Object Health","description":"Gets the current health value of the Object","type":"GetObjectHealth","category":"OBJECTS","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"percent":"Number"},{"shield":"Number"},{"max":"Number"}],"inputs":[{"object":"Object"}],"name":"Get Object Shield","description":"Gets the current shield value (percentage) of the Object","type":"GetObjectShield","category":"OBJECTS","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"objectList":"Objects"}],"inputs":[{"areaMonitor":"AreaMonitor"}],"name":"Get Objects in Area Monitor","description":"Creates an object list that contains all of the objects currently within the Area Monitor's boundary","type":"GetObjectsInAreaMonitor","category":"OBJECTS","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"components":"Objects"}],"inputs":[{"object":"Object"}],"name":"Get Objects in Prefab","description":"Creates an object list that contains all of the objects in the prefab that the Object is a part of.","type":"GetObjectsInPrefab","category":"OBJECTS","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"team":"Team"}],"inputs":[{"object":"Object"}],"name":"Get Object Team","description":"Gets the team assigned to the Object","type":"GetObjectTeam","category":"OBJECTS","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"randomList":"Objects"}],"inputs":[{"objectList":"Objects"},{"n":"Number"}],"name":"Get Random N Objects","description":"Gets N objects from the Object List at random","type":"GetRandomNObjects","category":"OBJECTS","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"shared":"Objects"}],"inputs":[{"a":"Objects"},{"b":"Objects"}],"name":"Get Shared Objects","description":"Creates a list with all the objects that are included in both Object Lists.","type":"GetSharedObjects","category":"OBJECTS","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"unique":"Objects"}],"inputs":[{"a":"Objects"},{"b":"Objects"}],"name":"Get Unique Objects","description":"Creates a list with all the objects that are included in only one of the Object Lists.","type":"GetUniqueObjects","category":"OBJECTS","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"inList":"Boolean"}],"inputs":[{"objectList":"Objects"},{"object":"Object"}],"name":"Object is in List","description":"Returns whether the Object List includes the Object.","type":"ObjectIsInList","category":"OBJECTS","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"newList":"Objects"}],"inputs":[{"objectList":"Objects"},{"object":"Object"}],"name":"Remove Object from List","description":"Return a new list with all the objects in the Object List minus the Object","type":"RemoveObjectFromList","category":"OBJECTS","flow":{"other":false,"in":false,"out":false}},{"outputs":[],"inputs":[{"spawnPoint":"Object"},{"enabled":"Boolean"}],"name":"Set Spawn Point Enabled","description":"Enables or disables a Spawn Point. Spawn points are enabled by default. Players will be unable to spawn at disabled points after they die.","type":"SetSpawnPointEnabled","category":"OBJECTS","flow":{"in":true,"out":true}},{"outputs":[],"inputs":[{"object":"Object"}],"name":"Spawn Object","description":"Spawns the Object if it has been despawned or destroyed.","type":"SpawnObject","category":"OBJECTS","flow":{"in":true,"out":true}}],"name":"OBJECTS","description":"Nodes that interact with objects and object lists"},{"children":[{"outputs":[{"angularVelocity":"Vector"}],"inputs":[{"object":"Object"}],"name":"Get Object Angular Velocity","description":"Returns the angular velocity of the Object","type":"GetObjectAngularVelocity","category":"OBJECTS_TRANSFORM","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"forward":"Vector"}],"inputs":[{"object":"Object"}],"name":"Get Object Forward","description":"Gets the Object's current forward vector (the direction the object faces)","type":"GetObjectForward","category":"OBJECTS_TRANSFORM","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"position":"Vector"}],"inputs":[{"object":"Object"}],"name":"Get Object Position","description":"Gets the world position of the Object","type":"GetObjectPosition","category":"OBJECTS_TRANSFORM","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"rotation":"Vector"}],"inputs":[{"object":"Object"}],"name":"Get Object Rotation","description":"Gets the rotation of the Object","type":"GetObjectRotation","category":"OBJECTS_TRANSFORM","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"up":"Vector"}],"inputs":[{"object":"Object"}],"name":"Get Object Up","description":"Gets the vector facing upwards from the Object's relative rotation","type":"GetObjectUp","category":"OBJECTS_TRANSFORM","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"velocity":"Vector"}],"inputs":[{"object":"Object"}],"name":"Get Object Velocity","description":"Returns the velocity of the Object","type":"GetObjectVelocity","category":"OBJECTS_TRANSFORM","flow":{"other":false,"in":false,"out":false}},{"outputs":[],"inputs":[{"object":"Object"},{"destination":"Object"},{"seconds":"Number"},{"movementCurve":"MovementCurve"}],"name":"Move Object to Transform","description":"Translates and rotates the Object to match the position and rotation of the Destination Object over the Duration in Seconds. Optionally provide a Movement Curve to make the animation non-linear","type":"MoveObjectToTransform","category":"OBJECTS_TRANSFORM","flow":{"in":true,"out":true}},{"outputs":[],"inputs":[{"object":"Object"},{"position":"Boolean"},{"rotation":"Boolean"},{"velocity":"Boolean"}],"name":"Reset Object","description":"Resets the position, rotation, and\/or velocity of the Object","type":"ResetObject","category":"OBJECTS_TRANSFORM","flow":{"in":true,"out":true}},{"outputs":[],"inputs":[{"object":"Object"},{"rotation":"Vector"},{"seconds":"Number"},{"movementCurve":"MovementCurve"}],"name":"Rotate Object to Point","description":"Rotates the Object to the desired Rotation over the Duration in Seconds. Optionally provide a Movement Curve to make the animation non-linear. Use Move Object To Transform if moving something in sequence","type":"RotateObjectToPoint","category":"OBJECTS_TRANSFORM","flow":{"in":true,"out":true}},{"outputs":[],"inputs":[{"object":"Object"},{"angularVelocity":"Vector"},{"relative":"Boolean"}],"name":"Set Object Angular Velocity","description":"Sets the angular (rotation) velocity of the Object.","type":"SetObjectAngularVelocity","category":"OBJECTS_TRANSFORM","flow":{"in":true,"out":true}},{"outputs":[],"inputs":[{"object":"Object"},{"position":"Vector"},{"relative":"Boolean"}],"name":"Set Object Position","description":"Sets the position of the Object.","type":"SetObjectPosition","category":"OBJECTS_TRANSFORM","flow":{"in":true,"out":true}},{"outputs":[],"inputs":[{"object":"Object"},{"rotation":"Vector"},{"relative":"Boolean"}],"name":"Set Object Rotation","description":"Sets the rotation of the Object.","type":"SetObjectRotation","category":"OBJECTS_TRANSFORM","flow":{"in":true,"out":true}},{"outputs":[],"inputs":[{"object":"Object"},{"velocity":"Vector"},{"relative":"Boolean"}],"name":"Set Object Velocity","description":"Sets the world space velocity of the Object","type":"SetObjectVelocity","category":"OBJECTS_TRANSFORM","flow":{"in":true,"out":true}},{"outputs":[],"inputs":[{"object":"Object"},{"position":"Vector"},{"duration":"Number"},{"movementCurve":"MovementCurve"}],"name":"Translate Object to Point","description":"Translates the Object to the desired Position over the Duration in Seconds. Optionally provide a Movement Curve to make the animation non-linear. Use Move Object To Transform if moving something in sequence.","type":"TranslateObjectToPoint","category":"OBJECTS_TRANSFORM","flow":{"in":true,"out":true}}],"name":"OBJECTS_TRANSFORM","description":"Nodes that interact with the transformation of objects, which are the position, rotation, velocity, etc."},{"children":[{"outputs":[{"equal":"Boolean"}],"inputs":[{"a":"Player"},{"b":"Player"}],"name":"Are Same Player","description":"Returns true if the two obejcts are the same player, or if they are both invalid players.","type":"AreSamePlayer","category":"PLAYERS","flow":{"other":false,"in":false,"out":false}},{"outputs":[],"inputs":[{"player":"Player"},{"respawnMessage":"RespawnMessage"}],"name":"Block Player Respawns","description":"Prevent the Player from respawning and displays the Respawn Message until Unblock Player Respawn is called on the player. The player's respawn timer continues to count down even while blocked.","type":"BlockPlayerRespawns","category":"PLAYERS","flow":{"in":true,"out":true}},{"outputs":[{"players":"Players"}],"inputs":[],"name":"Get all Players","description":"Get a list of all players","type":"GetAllPlayers","category":"PLAYERS","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"players":"Players"}],"inputs":[{"team":"Team"}],"name":"Get All Players on Team","description":"Get all players assigned to the Team","type":"GetAllPlayersOnTeam","category":"PLAYERS","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"isAirborne":"Boolean"}],"inputs":[{"player":"Player"}],"name":"Get is Airborne","description":"Returns true if the Player is in an airborne state","type":"GetIsAirborne","category":"PLAYERS","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"isCamouflaged":"Boolean"}],"inputs":[{"player":"Player"}],"name":"Get is Camouflaged","description":"Returns true if the Player has active camouflage","type":"GetIsCamouflaged","category":"PLAYERS","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"isCrouching":"Boolean"}],"inputs":[{"player":"Player"}],"name":"Get is Crouching","description":"Returns true if the Player is courching on the ground. Returns false if the unit is not crouching or is airborne.","type":"GetIsCrouching","category":"PLAYERS","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"isDetected":"Boolean"}],"inputs":[{"player":"Player"}],"name":"Get is Detected","description":"Returns true if the Player is highlighted by a Threat Sensor","type":"GetIsDetected","category":"PLAYERS","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"isDetected":"Boolean"}],"inputs":[{"player":"Player"},{"team":"Team"}],"name":"Get is Detected By Team","description":"Returns true if the Player is highlighted by a Threat Sensor belonging to the Team","type":"GetIsDetectedByTeam","category":"PLAYERS","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"isGrappling":"Boolean"}],"inputs":[{"player":"Player"}],"name":"Get is Grappling","description":"Returns true if the Player is grappling","type":"GetIsGrappling","category":"PLAYERS","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"isInKnockback":"Boolean"}],"inputs":[{"player":"Player"}],"name":"Get is in Knockback","description":"Returns true if the Player is being knocked back by the Repulsor equipment","type":"GetIsInKnockback","category":"PLAYERS","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"isLunging":"Boolean"}],"inputs":[{"player":"Player"}],"name":"Get is Lunging","description":"Returns true if the Player is lunging with a melee weapon","type":"GetIsLunging","category":"PLAYERS","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"isOverridden":"Boolean"}],"inputs":[{"player":"Player"}],"name":"Get is Mark Overridden","description":"Returns true if the Player's Mark is overriden for scripting","type":"GetIsMarkOverridden","category":"PLAYERS","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"hasOvershield":"Boolean"}],"inputs":[{"player":"Player"}],"name":"Get is Overshield On","description":"Returns true if the Player is protected by an overshield","type":"GetIsOvershieldOn","category":"PLAYERS","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"isPlayer":"Boolean"}],"inputs":[{"object":"Object"}],"name":"Get is Player","description":"Returns true if the Object is a player","type":"GetIsPlayer","category":"PLAYERS","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"isZoomed":"Boolean"}],"inputs":[{"player":"Player"}],"name":"Get is Zoomed","description":"Returns true if the Player is zoomed in with a weapon","type":"GetIsZoomed","category":"PLAYERS","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"count":"Number"}],"inputs":[],"name":"Get Number of Players","description":"Gets the number of active players","type":"GetNumberOfPlayers","category":"PLAYERS","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"count":"Number"}],"inputs":[],"name":"Get Number of Teams","description":"Gets the number of teams with active players","type":"GetNumberOfTeams","category":"PLAYERS","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"aimingVector":"Vector"}],"inputs":[{"player":"Player"}],"name":"Get Player Aiming Vector","description":"Returns the Player's aiming vector. Returns global forward if the Player is invalid","type":"GetPlayerAimingVector","category":"PLAYERS","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"allegiance":"Team"}],"inputs":[{"player":"Player"}],"name":"Get Player FFA Allegiance","description":"Gets the Team Allegiance the Player appears to be on. Allegiance affects friend or foe behaviors in Free For All modes. Has no effect in Team games","type":"GetPlayerFFAAllegiance","category":"PLAYERS","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"team":"Team"}],"inputs":[{"player":"Player"}],"name":"Get Player Team","description":"Gets the Team of the Player","type":"GetPlayerTeam","category":"PLAYERS","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"player":"Player"}],"inputs":[],"name":"Get Random Player","description":"Returns a random player. In games with one player, will always return that player, making it helpful for script debugging.","type":"GetRandomPlayer","category":"PLAYERS","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"penalty":"Number"}],"inputs":[{"player":"Player"}],"name":"Get Respawn Penalty","description":"Returns the additional penalty applied to the Player beyond the game mode's default respawn setting, if any.","type":"GetRespawnPenalty","category":"PLAYERS","flow":{"other":false,"in":false,"out":false}},{"outputs":[],"inputs":[{"player":"Player"},{"seconds":"Number"}],"name":"Set Player Camo","description":"Enables active camo on the Player for the Duration in Seconds.","type":"SetPlayerCamo","category":"PLAYERS","flow":{"in":true,"out":true}},{"outputs":[],"inputs":[{"player":"Player"},{"team":"Team"}],"name":"Set Player FFA Allegiance","description":"Sets the Player to a specific Team Allegiance. Allegiancec affects friend or foe behaviors in Free For All modes. Has no effect in Team games","type":"SetPlayerFFAAllegiance","category":"PLAYERS","flow":{"in":true,"out":true}},{"outputs":[],"inputs":[{"player":"Player"},{"override":"Boolean"}],"name":"Set Player Mark Override","description":"Set Override Enabled to true to override the Player's Mark behavior for scripting. Overriden players will not create navmarkers, Event Feed messages, or audio for other players when they Mark.","type":"SetPlayerMarkOverride","category":"PLAYERS","flow":{"in":true,"out":true}},{"outputs":[],"inputs":[{"player":"Player"},{"team":"Team"}],"name":"Set Player Team","description":"Sets the Team of the Player","type":"SetPlayerTeam","category":"PLAYERS","flow":{"in":true,"out":true}},{"outputs":[],"inputs":[{"player":"Player"},{"seconds":"Number"}],"name":"Set Respawn Penalty","description":"Adds an additional amount of time to each of a Player's respawns. Set Penalty Seconds to 0 to restore the player to the default state for the game mode.","type":"SetRespawnPenalty","category":"PLAYERS","flow":{"in":true,"out":true}},{"outputs":[],"inputs":[{"player":"Player"},{"position":"Vector"},{"withVehicle":"Boolean"}],"name":"Teleport Player","description":"Teleports a Player to an absolute Position, optionally bringing their vehicle along.","type":"TeleportPlayer","category":"PLAYERS","flow":{"in":true,"out":true}},{"outputs":[],"inputs":[{"player":"Player"}],"name":"Unblock Respawns for Player","description":"Allows a blocked player to respawn normally. Use to clear blocks set by Block Player Respawn","type":"UnblockRespawnsForPlayer","category":"PLAYERS","flow":{"in":true,"out":true}}],"name":"PLAYERS","description":"Nodes that interact with players and teams."},{"children":[{"outputs":[],"inputs":[{"identifier":"Identifier"},{"player":"Player"},{"immediate":"Boolean"}],"name":"Apply Trait Set","description":"Applies the Trait Set with the matching Identifier to the Player. Optionally Apply Immediately or wait for the next respawn to take effect.","type":"ApplyTraitSet","category":"TRAITS","flow":{"in":true,"out":true}},{"outputs":[],"inputs":[{"identifier":"Identifier"},{"player":"Player"},{"seconds":"Number"}],"name":"Apply Trait Set for Seconds","description":"Applies the Trait Set with the matching Identifier to the Player for the specified number of Seconds.","type":"ApplyTraitSetForSeconds","category":"TRAITS","flow":{"in":true,"out":true}},{"outputs":[],"inputs":[{"identifier":"Identifier"},{"player":"Player"}],"name":"Apply Trait Set Until Death","description":"Applies the Trait Set with the matching Identifier to the Player until the player dies.","type":"ApplyTraitSetUntilDeath","category":"TRAITS","flow":{"in":true,"out":true}},{"outputs":[{"combined":"Traits"}],"inputs":[{"a":"Traits"},{"b":"Traits"},{"c":"Traits"}],"name":"Combine Trait Lists","description":"Returns a list combining all teh input Trait Lists. Duplicate trait values will be removed from the new list, if they exist.","type":"CombineTraitLists","category":"TRAITS","flow":{"other":false,"in":false,"out":false}},{"outputs":[],"inputs":[{"identifier":"Identifier"},{"a":"Trait"},{"b":"Trait"},{"traitList":"Traits"}],"name":"Declare Trait Set","description":"Creates a named collection of player Traits at global scope as soon as the node graph script runs. Trait sets cannot be modifier after creation. Apply the set to players using nodes like Apply Trait Set","type":"DeclareTraitSet","category":"TRAITS","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"randomList":"Traits"}],"inputs":[{"traitList":"Traits"},{"n":"Number"}],"name":"Get Random N Traits","description":"Gets N traits from mthe Trait List at random","type":"GetRandomNTraits","category":"TRAITS","flow":{"other":false,"in":false,"out":false}},{"outputs":[],"inputs":[{"player":"Player"},{"immediate":"Boolean"}],"name":"Remove all Trait Sets","description":"Removes all Trait Sets applied to the Player, resetting them to their default state. Optionally Remove Immediately or wait for next respawn to take effect","type":"RemoveAllTraitSets","category":"TRAITS","flow":{"in":true,"out":true}},{"outputs":[],"inputs":[{"identifier":"Identifier"},{"player":"Player"},{"immediate":"Boolean"}],"name":"Remove Trait Set","description":"Removes the Trait Set with the matching Identifier from the Player. Optionally Remove Immediately or wait for next respawn to take effect","type":"RemoveTraitSet","category":"TRAITS","flow":{"in":true,"out":true}},{"outputs":[{"trait":"Trait"}],"inputs":[{"scalar":"Number"}],"name":"Trait: Bonus Health","description":"Gives a player bonus health as a percent of their base health. A Scalar of 0.0 is the default, for a health total of 90. For example, a value of 2 will give the player 180 extra health for a total of 270.","type":"TraitBonusHealth","category":"TRAITS","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"trait":"Trait"}],"inputs":[{"scalar":"Number"}],"name":"Trait: Bonus Shield","description":"Gives a player bonus shield points without displaying them as overshields in the HUD. A Scalar of 0.0 is the default, for the shield total of 140. For example, a value of 2 will give the player 280 extra shield for a total of 420.","type":"TraitBonusShield","category":"TRAITS","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"trait":"Trait"}],"inputs":[{"enabled":"Boolean"}],"name":"Tait: Bottomless Clip","description":"When enabled, affected players will have infinite ammo and will not need to reload.","type":"TraitBottomlessClip","category":"TRAITS","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"trait":"Trait"}],"inputs":[{"enabled":"Boolean"}],"name":"Trait: Clamber Enabled","description":"When disabled, affected players will be unable to clamber on ledges","type":"TraitClamberEnabled","category":"TRAITS","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"trait":"Trait"}],"inputs":[{"scalar":"Number"}],"name":"Trait: Clamber Speed","description":"Affects how quickly a player completes their clamber animation. A Scalar of 1.0 is default. Higher values mean the player clambers faster.","type":"TraitClamberSpeed","category":"TRAITS","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"trait":"Trait"}],"inputs":[{"direct":"Number"},{"grenade":"Number"},{"explosive":"Number"}],"name":"Trait: Damage Resistance","description":"Affects the amount of damage a player receives from various sources. A scalar of 1.0 is the default for all pins. Lower values mean the player takes less damage.","type":"TraitDamageResistance","category":"TRAITS","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"trait":"Trait"}],"inputs":[{"enabled":"Boolean"}],"name":"Trait: Deathless","description":"When enabled, affected players will take damage but cannot die.","type":"TraitDeathless","category":"TRAITS","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"trait":"Trait"}],"inputs":[{"enabled":"Boolean"}],"name":"Trait: Equipment Pickup","description":"When disabled, affected players may not pick up equipment","type":"TraitEquipmentPickup","category":"TRAITS","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"trait":"Trait"}],"inputs":[{"scalar":"Number"}],"name":"Trait: Grenade Damage","description":"Affects how much damage a player deals with their grenades. A Scalar of 1.0 is default. Higher values mean the player deals more damage.","type":"TraitGrenadeDamage","category":"TRAITS","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"trait":"Trait"}],"inputs":[{"scalar":"Number"}],"name":"Trait: Grenade Detonation Radius","description":"Affects the grenade detonation radius of a player's grenades. A Scalar of 1.0 is default. Higher values mean the grenade explosions cover more area.","type":"TraitGrenadeDetonationRadius","category":"TRAITS","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"trait":"Trait"}],"inputs":[{"scalar":"Number"}],"name":"Trait: Grenade Impulse","description":"Affects how much physics impulse is imparted by a player's grenade explosion. A Scalar of 1.0 is default. Higher values mean grenades push enemies back farther.","type":"TraitGrenadeImpulse","category":"TRAITS","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"trait":"Trait"}],"inputs":[{"enabled":"Boolean"}],"name":"Trait: Grenade Pickup","description":"When disabled, affected players may not pickup grenades.","type":"TraitGrenadePickup","category":"TRAITS","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"trait":"Trait"}],"inputs":[{"enabled":"Boolean"}],"name":"Trait: Headshot Protection","description":"When enabled, affected players will not take bonus damage from headshots while unshielded.","type":"TraitHeadshotProtection","category":"TRAITS","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"trait":"Trait"}],"inputs":[{"delay":"Number"},{"rate":"Number"}],"name":"Trait: Health Recharge","description":"Affects how quickly a player's health (non-shield) recharged. Higher values for the Recharge Delay Scalar mean that health will wait longer before it begins recharging. Higher values for the Recharge Rate Scalar mean the health will fill up faster.","type":"TraitHealthRecharge","category":"TRAITS","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"trait":"Trait"}],"inputs":[{"enabled":"Boolean"}],"name":"Trait: Infinite Ammo","description":"When enabled, affected players will not run out of ammo.","type":"TraitInfiniteAmmo","category":"TRAITS","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"trait":"Trait"}],"inputs":[{"scalar":"Number"}],"name":"Trait: Jump Height","description":"Affects a player's base jump height. A Scalar of 1.0 is default. Higher values mean the player jumps higher. This trait does not affect player gravity.","type":"TraitJumpHeight","category":"TRAITS","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"traitList":"Traits"}],"inputs":[{"a":"Trait"},{"b":"Trait"},{"c":"Trait"},{"d":"Trait"}],"name":"Trait List","description":"Stores a list of player Traits. Traits in list are ordered and unique, meaning adding a duplicate trait will have no effect.","type":"TraitList","category":"TRAITS","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"trait":"Trait"}],"inputs":[{"primaryWeaponType":"WeaponType"},{"secondaryWeaponType":"WeaponType"}],"name":"Trait: Loadout Weapon Overrides","description":"Overrides what weapons a player respawns with. Takes effect on the next respawn. Setting to None means no override, meaning the game variant's setting will once again determine the weapon for that slot.","type":"TraitLoadoutWeaponOverrides","category":"TRAITS","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"trait":"Trait"}],"inputs":[{"scalar":"Number"}],"name":"Trait: Melee Damage","description":"Affects how much damage a player deals with their melee attacks. A Scalar of 1.0 is default. Higher values mean the player deals more damage.","type":"TraitMeleeDamage","category":"TRAITS","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"trait":"Trait"}],"inputs":[{"scalar":"Number"}],"name":"Trait: Melee Impulse","description":"Affects how much physics impulse is imparted by a player's melee attack. A Scalar of 1.0 is default. Higher values mean melee attacks push enemies back farther.","type":"TraitMeleeImpulse","category":"TRAITS","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"trait":"Trait"}],"inputs":[{"scalar":"Number"}],"name":"Trait: Melee Recovery Speed","description":"Affects how fast a player recovers control after performing a melee attack. A Scalar of 1.0 is default. Higher values means the player can act sooner.","type":"TraitMeleeRecoverySpeed","category":"TRAITS","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"trait":"Trait"}],"inputs":[{"innerRange":"Number"},{"extendedRange":"Number"},{"vehicleRange":"Number"}],"name":"Trait: Motion Tracker Range","description":"Affects the various ranges of the Motion Tracker. Scalars of 1.0 are the default. Higher values mean the player's Combat Sensor will track targets farther away.","type":"TraitMotionTrackerRange","category":"TRAITS","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"trait":"Trait"}],"inputs":[{"enabled":"Boolean"},{"enabledWhileZooming":"Boolean"}],"name":"Trait: Motion Tracker Visible","description":"When disabled, the Motion Tracker will not appear in the affected player's HUD. Can also set whether the Combat Sensor appears while zoomed.","type":"TraitMotionTrackerVisible","category":"TRAITS","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"trait":"Trait"}],"inputs":[{"scalar":"Number"}],"name":"Trait: Movement Speed","description":"Affects how fast a player moves. A Scalar of 1.0 is default. Higher values mean the player moves faster.","type":"TraitMovementSpeed","category":"TRAITS","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"trait":"Trait"}],"inputs":[{"scalar":"Number"}],"name":"Trait: Movement Speed With Turret","description":"Affects how fast a player moves when holding a heavy object like a detached machine gun turret. A Scalar of 1.0 is default. Higher values mean the player moves faster.","type":"TraitMovementSpeedWithTurret","category":"TRAITS","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"trait":"Trait"}],"inputs":[{"scalar":"Number"}],"name":"Trait: Player Gravity","description":"Affects how much gravity affects a player, which changes jump height and fall speed. A Scalar of 1.0 is default. Higher values mean the player jumps lower and falls faster.","type":"TraitPlayerGravity","category":"TRAITS","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"trait":"Trait"}],"inputs":[{"enabled":"Boolean"}],"name":"Trait: Prevent Grenade Throwing","description":"When Prevent Throwing is true, affected players may not throw grenades","type":"TraitPreventGrenadeThrowing","category":"TRAITS","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"trait":"Trait"}],"inputs":[{"enabled":"Boolean"}],"name":"Trait: Prevent Weapon Firing","description":"When Prevent Firing is true, affected players may not fire their weapons","type":"TraitPreventWeaponFiring","category":"TRAITS","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"trait":"Trait"}],"inputs":[{"empty":"Number"},{"tactical":"Number"}],"name":"Trait: Reload Speed","description":"Affects how fast a player reloads their weapon when empty or when there are some rounds remaining (Tactical Reload). A Scalar of 1.0 is default for both pins. Higher values mean the player reloads faster.","type":"TraitReloadSpeed","category":"TRAITS","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"trait":"Trait"}],"inputs":[{"enabled":"Boolean"}],"name":"Trait: Shield HUD Visible","description":"When disabled, shield and health bar HUD will not appear for the affected player.","type":"TraitShieldHUDVisible","category":"TRAITS","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"trait":"Trait"}],"inputs":[{"delay":"Number"},{"rate":"Number"}],"name":"Trait: Shield Recharge","description":"Affects how quickly a player's shield recharges after breaking. Higher values for the Recharge Delay Scalar mean the shield will wait longer before it begins recharging. Higher values for the Recharge Rate Scalar mean the shield will fill up faster.","type":"TraitShieldRecharge","category":"TRAITS","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"trait":"Trait"}],"inputs":[{"speed":"Number"},{"duration":"Number"}],"name":"Trait: Slide Speed","description":"Affects the speed and duration of a player's slides. A Scalar of 1.0 is default for both pins. Higher values mean the player slides faster and longer, respectively.","type":"TraitSlideSpeed","category":"TRAITS","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"trait":"Trait"}],"inputs":[{"enabled":"Boolean"}],"name":"Trait: Sprint Enabled","description":"When disabled, affected players can no longer sprint.","type":"TraitSprintEnabled","category":"TRAITS","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"trait":"Trait"}],"inputs":[{"enabled":"Boolean"}],"name":"Trait: Sprint Enabled","description":"When disabled, affected players cannot reload their weapon and sprint at the same time","type":"TraitSprintReloadEnabled","category":"TRAITS","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"trait":"Trait"}],"inputs":[{"enabled":"Boolean"}],"name":"Trait: Sprint Resets Recharge","description":"When enabled, affected players who sprint will reset their shield recharge timer.","type":"TraitSprintResetsRecharge","category":"TRAITS","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"trait":"Trait"}],"inputs":[{"speed":"Number"},{"duration":"Number"}],"name":"Trait: Sprint Speed","description":"Affects how fast a player runs at full speed while sprinting and how long it takes for a player to reach full speed after they begin sprinting. A Scalar of 1.0 is default for both pins.","type":"TraitSprintSpeed","category":"TRAITS","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"trait":"Trait"}],"inputs":[{"shield":"Number"},{"health":"Number"}],"name":"Trait: Vamporism","description":"Affects how much vitality a player recovers by dealing damage to shields or health. A Scalar of 0 is default for both pins. Higher values means the player heals more when they deal damage.","type":"TraitVamporism","category":"TRAITS","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"trait":"Trait"}],"inputs":[{"enabled":"Boolean"}],"name":"Trait: Vehicle Passenger Only","description":"When enabled, affected players may only enter passenger seats of vehicles","type":"TraitVehiclePassengerOnly","category":"TRAITS","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"trait":"Trait"}],"inputs":[{"intensity":"Number"},{"interpolation":"Number"}],"name":"Trait: VFX Active Camo","description":"Sets the intensity of the Active Camouflage visual effect on the player. An Itensity Scalar of 0 leaves the player fully visible, while a value of 1 applies perfect camo. Interpolation Scalar controls how fast the player fades.","type":"TraitVFXActiveCamo","category":"TRAITS","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"trait":"Trait"}],"inputs":[{"enabled":"Boolean"}],"name":"Trait: VFX Overshield","description":"When enabled, the player will display the overshield visual effect. This will not actually apply boosted shields - only the visual effect.","type":"TraitVFXOvershield","category":"TRAITS","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"trait":"Trait"}],"inputs":[{"scalar":"Number"}],"name":"Trait: Weapon Damage","description":"Affects how much damage a player deals with their weapons. A Scalar of 1.0 is default. Higher values mean the player deals more damage.","type":"TraitWeaponDamage","category":"TRAITS","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"trait":"Trait"}],"inputs":[{"enabled":"Boolean"}],"name":"Trait: Weapon Dropping","description":"When disabled, a player's weapons will be deleted immediately after being dropped, such as on death or when a new weapon is picked up.","type":"TraitWeaponDropping","category":"TRAITS","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"trait":"Trait"}],"inputs":[{"enabled":"Boolean"}],"name":"Trait: Weapon Pickup","description":"When disabled, a player's weapons will be deleted immediately after being dropped, such as on death or when a new weapon is picked up.","type":"TraitWeaponPickup","category":"TRAITS","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"trait":"Trait"}],"inputs":[{"scalar":"Number"}],"name":"Trait: Weapon Switch Speed","description":"Affects how fast a player switches weapons. A Scalar of 1.0 is default. Higher values mean the player switches weapons faster","type":"TraitWeaponSwitchSpeed","category":"TRAITS","flow":{"other":false,"in":false,"out":false}}],"name":"TRAITS","description":"Nodes that interact with traits that modify base player behavior."},{"children":[{"outputs":[],"inputs":[{"player":"Player"}],"name":"Clear Splash for Player","description":"Clears the Player's splash banner queue, removing both the current and pending messages","type":"ClearSplashForPlayer","category":"UI","flow":{"in":true,"out":true}},{"outputs":[{"message":"UIMessage"}],"inputs":[{"messageTemplate":"UIMessageTemplate"},{"string1":"String"},{"string2":"String"},{"player":"Player"}],"name":"Create UI Message","description":"Creates a message string by filling in the Message Template with the values of the relevant input pins. Not all pins are used with each template.","type":"CreateUIMessage","category":"UI","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"message":"UIMessage"}],"inputs":[{"messageTemplate":"UIMessageTemplate"},{"string1":"String"},{"string2":"String"},{"player":"Player"}],"name":"Create UI Message [B]","description":"Creates a message string just as Create UI Message, but with a different selection of templates. Numbers will always be rounded to the nearest integer.","type":"CreateUIMessageB","category":"UI","flow":{"other":false,"in":false,"out":false}},{"outputs":[],"inputs":[{"value":"Boolean"}],"name":"Print Boolean to Killfeed","description":"Prints a Boolean in the killfeed as TRUE or FALSE. Use this to help debug nodes in Play mode.","type":"PrintBooleanToKillfeed","category":"UI","flow":{"in":true,"out":true}},{"outputs":[],"inputs":[{"value":"Number"}],"name":"Print Number to Killfeed","description":"Print a Number in the killfeed. Use this to help debug nodes in Play mode.","type":"PrintNumberToKillfeed","category":"UI","flow":{"in":true,"out":true}},{"outputs":[],"inputs":[{"value":"Player"}],"name":"Print Player to Killfeed","description":"Prints the name of the Player in the killfeed. Use this to help debug nodes in Play mode.","type":"PrintPlayerToKillfeed","category":"UI","flow":{"in":true,"out":true}},{"outputs":[],"inputs":[{"value":"Team"}],"name":"Print Team to Killfeed","description":"Prints the name of the Team in the killfeed. Use this to help debug nodes in Play mode.","type":"PrintTeamToKillfeed","category":"UI","flow":{"in":true,"out":true}},{"outputs":[],"inputs":[{"value":"Vector"}],"name":"Print Vector3 to Killfeed","description":"Prints a Vector3 in the killfeed with the format of (x, y, z). Use this to help debug nodes in Play mode.","type":"PrintVector3ToKillfeed","category":"UI","flow":{"in":true,"out":true}},{"outputs":[],"inputs":[{"player":"Player"},{"seconds":"Number"},{"message":"UIMessage"}],"name":"Push Splash to Player","description":"Pushes a splash banner with the Message to the Player's queue for the Duration in Seconds (2.5s minimum). Use the Create UI Message node to construct the Message.","type":"PushSplashToPlayer","category":"UI","flow":{"in":true,"out":true}},{"outputs":[],"inputs":[{"player":"Player"},{"enabled":"Boolean"},{"message":"UIMessage"}],"name":"Set Objective Banner for Player","description":"Enables or disables a custom Objective Banner for the Player. When Enabled, the contents of the Message will be displayed. Use a Create UI Message node to construct a Message. This node is mode dependent and only runs in a Custom Game.","type":"SetObjectiveBannerForPlayer","category":"UI","flow":{"in":true,"out":true}}],"name":"UI","description":"Nodes that interact with user interface elements. Also contains debug nodes."},{"children":[{"outputs":[],"inputs":[{"navMarker":"NavMarker"},{"object":"Object"},{"offset":"Vector"}],"name":"Attach Nav Marker to Object","description":"Attaches the Nav Marker to the Object with an optional Offset","type":"AttachNavMarkerToObject","category":"UI_NAV_MARKERS","flow":{"other":false,"in":false,"out":false}},{"outputs":[],"inputs":[{"navMarker":"NavMarker"}],"name":"Clear Nav Marker Team","description":"Clears the Nav Marker's associated team. All players will see the marker as neutral","type":"ClearNavMarkerTeam","category":"UI_NAV_MARKERS","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"navMarker":"NavMarker"}],"inputs":[{"identifier":"Identifier"}],"name":"Nav Marker","description":"Creates a Nav Marker that can be accessed by the output pin or the Get Nav Marker node using the same identifier.","type":"NavMarker","category":"UI_NAV_MARKERS","flow":{"other":false,"in":false,"out":false}},{"outputs":[],"inputs":[{"navMarker":"NavMarker"},{"enabled":"Boolean"}],"name":"Set Nav Marker Enabled","description":"Enables or disables the Nav Marker. Disabled markers will not be visible to any players.","type":"SetNavMarkerEnabled","category":"UI_NAV_MARKERS","flow":{"other":false,"in":false,"out":false}},{"outputs":[],"inputs":[{"navMarker":"NavMarker"},{"position":"Vector"}],"name":"Set Nav Marker Position","description":"Moves the Nav Marker to the absolute position. If the marker was attached to an object, it will be detached.","type":"SetNavMarkerPosition","category":"UI_NAV_MARKERS","flow":{"other":false,"in":false,"out":false}},{"outputs":[],"inputs":[{"navMarker":"NavMarker"},{"team":"Team"}],"name":"Set Nav Marker Team","description":"Sets the Nav Marker's associated Team. Players on the same team as the nav marker will see it as an allied marker, while players on the other teams will see it as an enemy marker.","type":"SetNavMarkerTeam","category":"UI_NAV_MARKERS","flow":{"other":false,"in":false,"out":false}},{"outputs":[],"inputs":[{"navMarker":"NavMarker"},{"team":"Team"},{"otherTeams":"Boolean"}],"name":"Set Nav Marker Team Visibility","description":"Hides the Nav Marker for players based on Team. If the All Other Teams input is false, the marker will only be visible to players on the Team. If it is true, the marker will be visible only to players NOT on the input team.","type":"SetNavMarkerTeamVisibility","category":"UI_NAV_MARKERS","flow":{"other":false,"in":false,"out":false}},{"outputs":[],"inputs":[{"navMarker":"NavMarker"},{"text":"String"}],"name":"Set Nav Marker Text","description":"Sets Nav Marker's text to the String","type":"SetNavMarkerText","category":"UI_NAV_MARKERS","flow":{"other":false,"in":false,"out":false}}],"name":"UI_NAV_MARKERS","description":"Nodes that create and manipulate Nav Markers"},{"children":[{"outputs":[{"areaMonitor":"AreaMonitor"}],"inputs":[{"object":"Object"}],"name":"Area Monitor Variable","description":"Creates an Area Monitor attached to the monitor object that acts as a trigger volume. Create a monitor object by adding a Boundary configuration in the Object Properties menu to any dynamic object.","type":"AreaMonitorVariable","category":"VARIABLES_BASIC","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"value":"Boolean"}],"inputs":[{"value":"Boolean"}],"name":"Boolean Variable","description":"Stores a TRUE or FALSE value","type":"BooleanVariable","category":"VARIABLES_BASIC","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"value":"EquipmentType"}],"inputs":[{"value":"EquipmentType"}],"name":"Equipment Type Variable","description":"Stores an Equipment Type value such as Grappleshot or Active Camo. If you want to store a reference to a specific equipment instance, use an Object Reference variable instead.","type":"EquipmentTypeVariable","category":"VARIABLES_BASIC","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"value":"GrenadeType"}],"inputs":[{"value":"GrenadeType"}],"name":"Grenade Type Variable","description":"Stores a Grenade Type value such as Fragmentation or Plasma","type":"GrenadeTypeVariable","category":"VARIABLES_BASIC","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"identifier":"Identifier"}],"inputs":[{"value":"String"}],"name":"Identifier Variable","description":"Stores a custom Identifier string that is used to name variables and custom events. Identifiers can also be set in the node properties menu. Identifiers are not used in UI messages.","type":"IdentifierVariable","category":"VARIABLES_BASIC","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"value":"Number"}],"inputs":[{"value":"Number"}],"name":"Number Variable","description":"Stores a single integer or floating point value.","type":"NumberVariable","category":"VARIABLES_BASIC","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"objectList":"Objects"}],"inputs":[{"a":"Object"},{"b":"Object"},{"c":"Object"},{"d":"Object"}],"name":"Object List Variable","description":"Stores a list of Object References. Objects in list are ordered and unique, meaning adding an object a second time will have no effect.","type":"ObjectListVariable","category":"VARIABLES_BASIC","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"value":"Object"}],"inputs":[{"value":"Object"}],"name":"Object Reference Variable","description":"Stores a reference to a dynamic object. Note, players are also objects. Static objects cannot be referenced.","type":"ObjectReferenceVariable","category":"VARIABLES_BASIC","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"value":"String"}],"inputs":[{"value":"String"}],"name":"String Variable","description":"Stores text as a string value","type":"StringVariable","category":"VARIABLES_BASIC","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"value":"Team"}],"inputs":[{"value":"Team"}],"name":"Team Variable","description":"Stores a value representing a Team","type":"TeamVariable","category":"VARIABLES_BASIC","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"vector":"Vector"}],"inputs":[{"x":"Number"},{"y":"Number"},{"z":"Number"}],"name":"Vector3 Variable","description":"Stores a Vector of 3 numbers. Can be used to represent positions, rotations, and more. Use Get Vector Axis Value to access the individual elements within an existing vector.","type":"Vector3Variable","category":"VARIABLES_BASIC","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"value":"VehicleType"}],"inputs":[{"value":"VehicleType"}],"name":"Vehicle Type Variable","description":"Stores a Vehicle Type, such as Warthog, Chaingun. If you want to store a reference to a specific vehicle instance, use an Object Reference variable instead.","type":"VehicleTypeVariable","category":"VARIABLES_BASIC","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"weaponType":"WeaponType"}],"inputs":[{"baseWeapon":"Weapon"},{"configuration":"WeaponConfiguration"}],"name":"Weapon Type Combination Variable","description":"Creates a new weapon type by combining a base weapon with the configuration traits of another weapon. Not all combo weapon types will work.","type":"WeaponTypeCombinationVariable","category":"VARIABLES_BASIC","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"value":"WeaponType"}],"inputs":[{"value":"WeaponType"}],"name":"Weapon Type Variable","description":"Stores a Weapon Type, such as Rocket Launcher. If you want to store a reference to a specific weapon instance, use an Object Reference Variable instead.","type":"WeaponTypeVariable","category":"VARIABLES_BASIC","flow":{"other":false,"in":false,"out":false}}],"name":"VARIABLES_BASIC","description":"Nodes that store and retrieve values for use by other nodes within the same script brain."},{"children":[{"outputs":[],"inputs":[{"identifier":"Identifier"},{"initialValue":"Boolean"},{"scope":"Scope"}],"name":"Declare Boolean Variable","description":"Set the Boolean variable stored with the matching Identifier in the matching Scope. The Object pin is only used when accessing the Object scope.","type":"DeclareBooleanVariable","category":"VARIABLES_ADVANCED","flow":{"other":false,"in":false,"out":false}},{"outputs":[],"inputs":[{"identifier":"Identifier"},{"initialValue":"EquipmentType"},{"scope":"Scope"}],"name":"Declare Equipment Type Variable","description":"Set the EquipmentType variable stored with the matching Identifier in the matching Scope. The Object pin is only used when accessing the Object scope.","type":"DeclareEquipmentTypeVariable","category":"VARIABLES_ADVANCED","flow":{"other":false,"in":false,"out":false}},{"outputs":[],"inputs":[{"identifier":"Identifier"},{"initialValue":"GrenadeType"},{"scope":"Scope"}],"name":"Declare Grenade Type Variable","description":"Set the GrenadeType variable stored with the matching Identifier in the matching Scope. The Object pin is only used when accessing the Object scope.","type":"DeclareGrenadeTypeVariable","category":"VARIABLES_ADVANCED","flow":{"other":false,"in":false,"out":false}},{"outputs":[],"inputs":[{"identifier":"Identifier"},{"initialValue":"Number"},{"scope":"Scope"}],"name":"Declare Number Variable","description":"Set the Number variable stored with the matching Identifier in the matching Scope. The Object pin is only used when accessing the Object scope.","type":"DeclareNumberVariable","category":"VARIABLES_ADVANCED","flow":{"other":false,"in":false,"out":false}},{"outputs":[],"inputs":[{"identifier":"Identifier"},{"initialValue":"Objects"},{"scope":"Scope"}],"name":"Declare Object List Variable","description":"Set the Objects variable stored with the matching Identifier in the matching Scope. The Object pin is only used when accessing the Object scope.","type":"DeclareObjectListVariable","category":"VARIABLES_ADVANCED","flow":{"other":false,"in":false,"out":false}},{"outputs":[],"inputs":[{"identifier":"Identifier"},{"initialValue":"Object"},{"scope":"Scope"}],"name":"Declare Object Variable","description":"Set the Object variable stored with the matching Identifier in the matching Scope. The Object pin is only used when accessing the Object scope.","type":"DeclareObjectVariable","category":"VARIABLES_ADVANCED","flow":{"other":false,"in":false,"out":false}},{"outputs":[],"inputs":[{"identifier":"Identifier"},{"initialValue":"String"},{"scope":"Scope"}],"name":"Declare String Variable","description":"Set the String variable stored with the matching Identifier in the matching Scope. The Object pin is only used when accessing the Object scope.","type":"DeclareStringVariable","category":"VARIABLES_ADVANCED","flow":{"other":false,"in":false,"out":false}},{"outputs":[],"inputs":[{"identifier":"Identifier"},{"initialValue":"Team"},{"scope":"Scope"}],"name":"Declare Team Variable","description":"Set the Team variable stored with the matching Identifier in the matching Scope. The Object pin is only used when accessing the Object scope.","type":"DeclareTeamVariable","category":"VARIABLES_ADVANCED","flow":{"other":false,"in":false,"out":false}},{"outputs":[],"inputs":[{"identifier":"Identifier"},{"initialValue":"UIMessage"},{"scope":"Scope"}],"name":"Declare UI Message Variable","description":"Set the UIMessage variable stored with the matching Identifier in the matching Scope. The Object pin is only used when accessing the Object scope.","type":"DeclareUIMessageVariable","category":"VARIABLES_ADVANCED","flow":{"other":false,"in":false,"out":false}},{"outputs":[],"inputs":[{"identifier":"Identifier"},{"initialValue":"Vector"},{"scope":"Scope"}],"name":"Declare Vector Variable","description":"Set the Vector variable stored with the matching Identifier in the matching Scope. The Object pin is only used when accessing the Object scope.","type":"DeclareVector3Variable","category":"VARIABLES_ADVANCED","flow":{"other":false,"in":false,"out":false}},{"outputs":[],"inputs":[{"identifier":"Identifier"},{"initialValue":"VehicleType"},{"scope":"Scope"}],"name":"Declare Vehicle Type Variable","description":"Set the VehicleType variable stored with the matching Identifier in the matching Scope. The Object pin is only used when accessing the Object scope.","type":"DeclareVehicleTypeVariable","category":"VARIABLES_ADVANCED","flow":{"other":false,"in":false,"out":false}},{"outputs":[],"inputs":[{"identifier":"Identifier"},{"initialValue":"WeaponType"},{"scope":"Scope"}],"name":"Declare Weapon Type Variable ","description":"Set the WeaponType variable stored with the matching Identifier in the matching Scope. The Object pin is only used when accessing the Object scope.","type":"DeclareWeaponTypeVariable","category":"VARIABLES_ADVANCED","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"value":"Boolean"}],"inputs":[{"identifier":"Identifier"},{"scope":"Scope"},{"object":"Object"}],"name":"Get Boolean Variable","description":"Get the Boolean variable stored with the matching Identifier in the matching Scope. The Object pin is only used when accessing the Object scope.","type":"GetBooleanVariable","category":"VARIABLES_ADVANCED","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"value":"EquipmentType"}],"inputs":[{"identifier":"Identifier"},{"scope":"Scope"},{"object":"Object"}],"name":"Get Equipment Type Variable","description":"Get the EquipmentType variable stored with the matching Identifier in the matching Scope. The Object pin is only used when accessing the Object scope.","type":"GetEquipmentTypeVariable","category":"VARIABLES_ADVANCED","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"value":"GrenadeType"}],"inputs":[{"identifier":"Identifier"},{"scope":"Scope"},{"object":"Object"}],"name":"Get Grenade Type Variable","description":"Get the GrenadeType variable stored with the matching Identifier in the matching Scope. The Object pin is only used when accessing the Object scope.","type":"GetGrenadeTypeVariable","category":"VARIABLES_ADVANCED","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"value":"Number"}],"inputs":[{"identifier":"Identifier"},{"scope":"Scope"},{"object":"Object"}],"name":"Get Number Variable","description":"Get the Number variable stored with the matching Identifier in the matching Scope. The Object pin is only used when accessing the Object scope.","type":"GetNumberVariable","category":"VARIABLES_ADVANCED","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"value":"Objects"}],"inputs":[{"identifier":"Identifier"},{"scope":"Scope"},{"object":"Object"}],"name":"Get Object List Variable","description":"Get the Objects variable stored with the matching Identifier in the matching Scope. The Object pin is only used when accessing the Object scope.","type":"GetObjectListVariable","category":"VARIABLES_ADVANCED","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"value":"Object"}],"inputs":[{"identifier":"Identifier"},{"scope":"Scope"},{"object":"Object"}],"name":"Get Object Variable","description":"Get the Object variable stored with the matching Identifier in the matching Scope. The Object pin is only used when accessing the Object scope.","type":"GetObjectVariable","category":"VARIABLES_ADVANCED","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"value":"String"}],"inputs":[{"identifier":"Identifier"},{"scope":"Scope"},{"object":"Object"}],"name":"Get String Variable","description":"Get the String variable stored with the matching Identifier in the matching Scope. The Object pin is only used when accessing the Object scope.","type":"GetStringVariable","category":"VARIABLES_ADVANCED","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"value":"Team"}],"inputs":[{"identifier":"Identifier"},{"scope":"Scope"},{"object":"Object"}],"name":"Get Team Variable","description":"Get the Team variable stored with the matching Identifier in the matching Scope. The Object pin is only used when accessing the Object scope.","type":"GetTeamVariable","category":"VARIABLES_ADVANCED","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"value":"UIMessage"}],"inputs":[{"identifier":"Identifier"},{"scope":"Scope"},{"object":"Object"}],"name":"Get UI Message Variable","description":"Get the UIMessage variable stored with the matching Identifier in the matching Scope. The Object pin is only used when accessing the Object scope.","type":"GetUIMessageVariable","category":"VARIABLES_ADVANCED","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"value":"Vector"}],"inputs":[{"identifier":"Identifier"},{"scope":"Scope"},{"object":"Object"}],"name":"Get Vector Variable","description":"Get the Vector variable stored with the matching Identifier in the matching Scope. The Object pin is only used when accessing the Object scope.","type":"GetVector3Variable","category":"VARIABLES_ADVANCED","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"value":"VehicleType"}],"inputs":[{"identifier":"Identifier"},{"scope":"Scope"},{"object":"Object"}],"name":"Get Vehicle Type Variable","description":"Get the VehicleType variable stored with the matching Identifier in the matching Scope. The Object pin is only used when accessing the Object scope.","type":"GetVehicleTypeVariable","category":"VARIABLES_ADVANCED","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"value":"WeaponType"}],"inputs":[{"identifier":"Identifier"},{"scope":"Scope"},{"object":"Object"}],"name":"Get Weapon Type Variable","description":"Get the WeaponType variable stored with the matching Identifier in the matching Scope. The Object pin is only used when accessing the Object scope.","type":"GetWeaponTypeVariable","category":"VARIABLES_ADVANCED","flow":{"other":false,"in":false,"out":false}},{"outputs":[],"inputs":[{"identifier":"Identifier"},{"value":"Boolean"},{"scope":"Scope"},{"object":"Object"}],"name":"Set Boolean Variable","description":"Declare a Boolean variable with a custom Identifier. Variable declarations do not require an event node to trigger. They are automatically performed when the node graph script is run.","type":"SetBooleanVariable","category":"VARIABLES_ADVANCED","flow":{"in":true,"out":true}},{"outputs":[],"inputs":[{"identifier":"Identifier"},{"value":"EquipmentType"},{"scope":"Scope"},{"object":"Object"}],"name":"Set Equipment Type Variable","description":"Declare a EquipmentType variable with a custom Identifier. Variable declarations do not require an event node to trigger. They are automatically performed when the node graph script is run.","type":"SetEquipmentTypeVariable","category":"VARIABLES_ADVANCED","flow":{"in":true,"out":true}},{"outputs":[],"inputs":[{"identifier":"Identifier"},{"value":"GrenadeType"},{"scope":"Scope"},{"object":"Object"}],"name":"Set Grenade Type Variable","description":"Declare a GrenadeType variable with a custom Identifier. Variable declarations do not require an event node to trigger. They are automatically performed when the node graph script is run.","type":"SetGrenadeTypeVariable","category":"VARIABLES_ADVANCED","flow":{"in":true,"out":true}},{"outputs":[],"inputs":[{"identifier":"Identifier"},{"value":"Number"},{"scope":"Scope"},{"object":"Object"}],"name":"Set Number Variable","description":"Declare a Number variable with a custom Identifier. Variable declarations do not require an event node to trigger. They are automatically performed when the node graph script is run.","type":"SetNumberVariable","category":"VARIABLES_ADVANCED","flow":{"in":true,"out":true}},{"outputs":[],"inputs":[{"identifier":"Identifier"},{"value":"Objects"},{"scope":"Scope"},{"object":"Object"}],"name":"Set Object List Variable","description":"Declare a Objects variable with a custom Identifier. Variable declarations do not require an event node to trigger. They are automatically performed when the node graph script is run.","type":"SetObjectListVariable","category":"VARIABLES_ADVANCED","flow":{"in":true,"out":true}},{"outputs":[],"inputs":[{"identifier":"Identifier"},{"value":"Object"},{"scope":"Scope"},{"object":"Object"}],"name":"Set Object Variable","description":"Declare a Object variable with a custom Identifier. Variable declarations do not require an event node to trigger. They are automatically performed when the node graph script is run.","type":"SetObjectVariable","category":"VARIABLES_ADVANCED","flow":{"in":true,"out":true}},{"outputs":[],"inputs":[{"identifier":"Identifier"},{"value":"String"},{"scope":"Scope"},{"object":"Object"}],"name":"Set String Variable","description":"Declare a String variable with a custom Identifier. Variable declarations do not require an event node to trigger. They are automatically performed when the node graph script is run.","type":"SetStringVariable","category":"VARIABLES_ADVANCED","flow":{"in":true,"out":true}},{"outputs":[],"inputs":[{"identifier":"Identifier"},{"value":"Team"},{"scope":"Scope"},{"object":"Object"}],"name":"Set Team Variable","description":"Declare a Team variable with a custom Identifier. Variable declarations do not require an event node to trigger. They are automatically performed when the node graph script is run.","type":"SetTeamVariable","category":"VARIABLES_ADVANCED","flow":{"in":true,"out":true}},{"outputs":[],"inputs":[{"identifier":"Identifier"},{"value":"UIMessage"},{"scope":"Scope"},{"object":"Object"}],"name":"Set UI Message Variable","description":"Declare a UIMessage variable with a custom Identifier. Variable declarations do not require an event node to trigger. They are automatically performed when the node graph script is run.","type":"SetUIMessageVariable","category":"VARIABLES_ADVANCED","flow":{"in":true,"out":true}},{"outputs":[],"inputs":[{"identifier":"Identifier"},{"value":"Vector"},{"scope":"Scope"},{"object":"Object"}],"name":"Set Vector3 Variable","description":"Declare a Vector variable with a custom Identifier. Variable declarations do not require an event node to trigger. They are automatically performed when the node graph script is run.","type":"SetVector3Variable","category":"VARIABLES_ADVANCED","flow":{"in":true,"out":true}},{"outputs":[],"inputs":[{"identifier":"Identifier"},{"value":"VehicleType"},{"scope":"Scope"},{"object":"Object"}],"name":"Set Vehicle Type Variable","description":"Declare a VehicleType variable with a custom Identifier. Variable declarations do not require an event node to trigger. They are automatically performed when the node graph script is run.","type":"SetVehicleTypeVariable","category":"VARIABLES_ADVANCED","flow":{"in":true,"out":true}},{"outputs":[],"inputs":[{"identifier":"Identifier"},{"value":"WeaponType"},{"scope":"Scope"},{"object":"Object"}],"name":"Set Weapon Type Variable","description":"Declare a WeaponType variable with a custom Identifier. Variable declarations do not require an event node to trigger. They are automatically performed when the node graph script is run.","type":"SetWeaponTypeVariable","category":"VARIABLES_ADVANCED","flow":{"in":true,"out":true}}],"name":"VARIABLES_ADVANCED","description":"Nodes that store and retrieve values for use by other nodes using a Declare\/Get\/Set style for more complicated scripts. Can span multiple script brains."},{"children":[{"outputs":[],"inputs":[{"vehicle":"Vehicle"}],"name":"Flip Vehicle","description":"Flips an overturned Vehicle so that players may enter it again","type":"FlipVehicle","category":"VEHICLES","flow":{"in":true,"out":true}},{"outputs":[],"inputs":[{"player":"Player"},{"vehicle":"Vehicle"}],"name":"Attempt to Enter Vehicle","description":"Have the Player attempt to enter the Vehicle regardless of distance. Will not succeed if the Vehicle has no seats available or the Player is already in a vehicle.","type":"AttemptToEnterVehicle","category":"VEHICLES","flow":{"in":true,"out":true}},{"outputs":[{"isPassenger":"Boolean"}],"inputs":[{"player":"Player"}],"name":"Get is Player Passenger","description":"Returns true if Player is a passenger in their vehicle. Drivers, gunners and boarding units do not count as passengers and will return false.","type":"GetIsPlayerPassenger","category":"VEHICLES","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"isType":"Boolean"}],"inputs":[{"vehicle":"Vehicle"},{"type":"VehicleType"}],"name":"Get Vehicle Is Type","description":"Returns true if the Vehicle matches the Vehicle Type","type":"GetVehicleIsType","category":"VEHICLES","flow":{"other":false,"in":false,"out":false}},{"outputs":[],"inputs":[{"player":"Player"}],"name":"Kick Player from Vehicle","description":"Forces the Player to exit their vehicle if they occupy one. Has no effect on players who are not in vehicles.","type":"KickPlayerFromVehicle","category":"VEHICLES","flow":{"in":true,"out":true}},{"outputs":[],"inputs":[{"vehicle":"Vehicle"},{"seconds":"Number"}],"name":"Scale and Destroy Vehicle","description":"Fades the vehicle out over the specified duration and then destroys it, like a Phantom in campaign.","type":"ScaleAndDestroyVehicle","category":"VEHICLES","flow":{"in":true,"out":true}},{"outputs":[],"inputs":[{"enabled":"Boolean"},{"vehicleType":"VehicleType"}],"name":"Set Spawn in Vehicle for all Players","description":"Enables or disables whether all players respawn in a specific type of vehicle instead of on foot. WARNING! Use with care. Too many vehicles on the map can severely affect network performance.","type":"SetSpawnInVehicleForAllPlayers","category":"VEHICLES","flow":{"in":true,"out":true}},{"outputs":[],"inputs":[{"player":"Player"},{"enabled":"Boolean"},{"vehicleType":"VehicleType"}],"name":"Set Spawn in Vehicle for Player","description":"Enables or disables whether a Player respawns in a specific type of vehicle instead of on foot. WARNING! Use with care. Too many vehicles on the map can severely affect network performance.","type":"SetSpawnInVehicleForPlayer","category":"VEHICLES","flow":{"in":true,"out":true}},{"outputs":[],"inputs":[{"vehicle":"Vehicle"},{"enterableByPlayer":"Boolean"}],"name":"Set Vehicle Enterable by Player","description":"When Enterable By Player is set to false, all players will be prevented from entering the Vehicle. To Prevent a specific player from driving or gunning, consider using a Trait: Vehicle Passenger Only","type":"SetVehicleEnterableByPlayer","category":"VEHICLES","flow":{"in":true,"out":true}},{"outputs":[{"base":"Boolean"},{"same":"Boolean"}],"inputs":[{"a":"Vehicle"},{"b":"Vehicle"}],"name":"Are Same Vehicle Type","description":"Returns whether the two objects share a base Vehicle Type (e.g. both are Warthogs) and if they share a Vehicle Type (e.g. both are Rockethogs). Two objects with invalid Vehicle Types will compare as true.","type":"AreSameVehicleType","category":"VEHICLES","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"isBoarding":"Boolean"}],"inputs":[{"player":"Player"}],"name":"Get is Boarding","description":"Returns true if the Player is boarding a vehicle.","type":"GetIsBoarding","category":"VEHICLES","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"isDriving":"Boolean"}],"inputs":[{"player":"Player"}],"name":"Get is Driving Vehicle","description":"Returns true if the Player is the driver of their Vehicle.","type":"GetIsDrivingVehicle","category":"VEHICLES","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"isGunner":"Boolean"}],"inputs":[{"player":"Player"}],"name":"Get is Gunner in Vehicle","description":"Returns true if the Player is a gunner in their vehicle.","type":"GetIsGunnerInVehicle","category":"VEHICLES","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"isInVehicle":"Boolean"}],"inputs":[{"player":"Player"}],"name":"Get is in Vehicle","description":"Returns true if the Player is seated in a vehicle.","type":"GetIsInVehicle","category":"VEHICLES","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"isOverturned":"Boolean"}],"inputs":[{"vehicle":"Vehicle"}],"name":"Get is Overturned","description":"Returns true if the Vehicle is overturned and would need to be flipped to allow players to enter it","type":"GetIsOverturned","category":"VEHICLES","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"vehicle":"Vehicle"}],"inputs":[{"player":"Player"}],"name":"Get Player Vehicle","description":"Returns the parent vehicle if the Player is seated in one","type":"GetPlayerVehicle","category":"VEHICLES","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"speed":"Number"}],"inputs":[{"player":"Player"}],"name":"Get Squared Vehicle Speed","description":"Returns the squared speed in world units per second of the vehicle the Player is in. Returns 0 if the Vehicle is not in a vehicle.","type":"GetSquaredVehicleSpeed","category":"VEHICLES","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"player":"Player"}],"inputs":[{"vehicle":"Vehicle"}],"name":"Get Vehicle Driver","description":"Returns the driver of the Vehicle if it has one.","type":"GetVehicleDriver","category":"VEHICLES","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"enterable":"Boolean"}],"inputs":[{"vehicle":"Vehicle"}],"name":"Get Vehicle Enterable By Player","description":"Returns true if a player may enter the Vehicle","type":"GetVehicleEnterableByPlayer","category":"VEHICLES","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"player":"Player"}],"inputs":[{"vehicle":"Vehicle"}],"name":"Get Vehicle Gunner","description":"Returns the gunner of the Vehicle if it has one","type":"GetVehicleGunner","category":"VEHICLES","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"players":"Players"}],"inputs":[{"vehicle":"Vehicle"}],"name":"Get Vehicle Occupants","description":"Returns a list of all players who occupy a seat in the Vehicle","type":"GetVehicleOccupants","category":"VEHICLES","flow":{"other":false,"in":false,"out":false}},{"outputs":[{"vehicleType":"VehicleType"}],"inputs":[{"vehicle":"Vehicle"}],"name":"Get Vehicle Type","description":"Returns the Vehicle Type of the input object","type":"GetVehicleType","category":"VEHICLES","flow":{"other":false,"in":false,"out":false}}],"name":"VEHICLES","description":"Nodes that interact with vehicles and their occupants."}]}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment