Scripting API

AiParams

Class that handles AI parameters management.

ReturnFunction NameDescriptionVote
voidallowBeingTargetedIf enabled, enemies will target this soldier whenever they see him. If disabled, the soldier will be completly ignored by enemies. Toghether with allowCheckForEnemies, this function is helpful to script systems like Civilian or Non combatant medics. 4
voidallowChangePoseWhen enabled, AI will change pose depending on cover, suppression and other situations. Disable this function if you want to control soldier's pose by custom scripting 2
voidallowCheckForEnemiesWhen enabled, AI will check for enemies around and target them. When this function is disabled AI will not search and target enemies. Useful for custom AI implementations 2
voidallowDoMedicWhen this function is enabled, if a soldier has medic equipments in his inventory he will proceed to heal nearby units 0
voidallowFindCoverWhenSuppressedWhen enabled, AI will automatically find cover when suppressed. If you want to move the AI trough custom scripting, you most likely want to disable this feature 3
voidallowFollowOrdersWhen enabled, AI will automatically follow squad leader orders. If you want to move this specific unit with your custom scripts, for example by using Soldier.moveTo function, most likely you want this to be disabled 0
voidallowGiveOrdersWhen enabled, AI will automatically give orders to the squad if squad leader. If you want to give orders to a squad with your custom scripts, for example by using Squad.moveTo function, most likely you want this to be disabled 2
voidallowLeaveVehicleWhen enabled, AI will leave vehicle when necessary. If you want to control which vehicle the AI should use or force an AI never to leave a vehicle, you might want to disable this feature 3
voidallowMovementsWhen enabled, AI will perform move commands. if you don't want the AI never to move, not even with moveTo commands, disable this feature 2
voidallowOpenWindowsWhen enabled, AI will open windows that blocks it's vision, for example when in cover behind a window 2
voidallowRadioOrdersWhen enabled and if radioman, AI will communicate radio orders requested by squad leader 2
voidenableAiBehaviourThis function enables or disbales all AI functionalities toghether, including: allowChangePose, allowCheckForEnemies, allowFindCoverWhenSuppressed, allowLeaveVehicle, allowMovements, allowOpenWindows, allowOrders and allowRadioOrders 3
voidfollowCustomDirectCommandsDisable various AI behaviors in order to prepare the soldier to follow direct commands, such as soldier.moveTo() 0
voidfollowCustomSquadOrdersNormally squad soldiers will automatically give the orders that they cosndier the best according to the situation. This function disables various AI behaviors in order to prepare the soldier to only follow and give custom squad orders via code, such as squad.moveTo() 0
voidsetTargetPlanesOftenEnable this feature to force the AI to target planes, if closer than any other spotted enemy 2

Base Functions

These functions are not part of a specific class and can be called from anywhere.

ReturnFunction NameDescriptionVote
floatdistanceThe distance between 2 Vector3 points in meters 3
voidlogLog some text in the F3 console. This helps a lot with testing custom Lua code. press F3 to open the console and visualize the log 7
voidprintDisplay a message on the screen 4
floatroundRound a number to a specific quantity to decimal points 7
voidsleepPause the execution of the LUA script for some time. Notice: this is very helpful to give some pause to the CPU, expecially during 'while' and 'for' loops 7
SoldierspawnHumanSpawn a new human without specific loadout or rank 3
SoldierspawnSoldierSpawn an AI soldier 4
SoldierspawnSoldierOnVehicleSpawn an AI soldier on a vehicle 3
VehiclespawnVehicleSpawn a vehicle 3
VehiclespawnVehicle_camoSpawn a vehicle with a specified camo 3
VehiclespawnVehicle_camo_destSpawn a vehicle with a specified camo and give it a destination. For Auto-Transport vehicles, this is where units will be deployed. 3
VehiclespawnVehicle_destSpawn a vehicle and give it a destination. For Auto-Transport vehicles, this is where units will be deployed. 2
voidwaitForAnyPause the execution of the script until any of the given conditions are met. 3
voidwaitUntilPause the execution of the script until one or multiple conditions are met. 3

er2

General utility and helper functions.

ReturnFunction NameDescriptionVote
voidaddInvadersTicketsAdds tickets to the current invaders faction. 3
integercountDeceasedDefendersCount how many defenders are deceased during the mission 2
integercountDeceasedInvadersCount how many invaders are deceased during the mission 2
integercountLostVehiclesDefendersCount how many defenders have been captured during the mission 2
integercountLostVehiclesInvadersCount how many invaders have been captured during the mission 2
integercountPrisonersDefendersCount how many vehicles have been lost by the defenders during the mission 2
integercountPrisonersInvadersCount how many vehicles have been lost by the invaders during the mission 2
voidendPrecipitationStops the rain or the snow from falling in the map 0
voidexplosionGenerates an explosion 3
SoldierfindSoldierFind a soldier from it's unique Id (network safe) 2
SoldierfindVehicleFind a vehicle from it's unique Id (network safe) 2
voidgetAllSoldiersGet all alive soldiers. Notice: After a new soldier spawns or dies, this function might get a few instant before returning a correctly updated value. 3
voidgetAllVehiclesGet all vehicles around the map 3
stringgetBattleNameReturns the current battle's name 7
floatgetDistanceFromTerrainReturns the distance between the given position and the terrain. 2
integergetInvadersTicketReturns the number of tickets left by the invaders 3
stringgetMapNameReturns the name of the map of the current battle 3
stringgetMyNicknameGet nickname of the local user 3
SquadgetNearestSoldierGet nearest soldier to a specific location 3
VehiclegetNearestVehicleGet nearest vehicle from a specific location 3
stringgetNicknameGet nickname of an online player 3
SoldiergetPlayerFind a reference to the Soldier controlled by the player 7
TablegetSoldiersInAreaGet all alive soldiers within a specific radius from a specific position, ordered by the distance from the given position. Notice: After a new soldier spawns or dies, this function might get a few instant before returning a correctly updated value. 3
floatgetTerrainHeightReturns the terrain height from sea level of the given x and z coordinates. 2
voidgetVehiclesInAreaGet all vehicles within a specific area 3
boolisAlliedCheck if a given faction Id is part of Allies faction 2
AiParamsisAxisCheck if a given faction Id is part of Axis faction 2
AiParamsisCivilianCheck if a given faction Id is part of Civilians faction 2
boolisInsideMainTerrainBoundsChecks if the given position is inside the terrain bounds 2
boolisMasterClientCheck if current user is master client for online match 3
boolisOnlineCheck if current mission is being played on an online match 3
boolisSameFactionCheck if two faction Ids are part of the same faction (Allies or Axis) 2
SquadMakeSquadCreate a new empty squad. You can add soldiers to this squad in order to make them react to squad orders 3
boolnextPhaseForce mission to skip to next phase 7
voidplayMusicPlays a music track globally. 7
boolpreviousPhaseForce mission to skip to previous phase 7
floatraycastCasts a ray from an origin toward a direction. Used to test collisions and objects presence. The test is done trough a Unity Raycast. 2
boolsetPhaseChanges the current phase to the one of index order 4
voidsetRainingActivates the rain on the map. 0
voidsetSnowingActivates the snow on the map. 0
voidsetTimeAndWeatherSets the current time of day of the mission and some weather conditions, like clouds, snow and fog. NOTE: This function it's CPU heavy 3
voidsetTimeOfDaySets the current time of day of the mission. NOTE: This function is CPU heavy 8
voidsetVictoryDefendersConcludes the mission declaring defenders as winners 7
voidsetVictoryInvadersConcludes the mission declaring invaders as winners 6
voidshowObjectiveDisplay a new objective text 3

global

Functions to manipulate global variables that can be accessed from any script and over the network.

ReturnFunction NameDescriptionVote
anygetGet the value of a stored global variable 3
anymyplayergetGet the value of a stored global variable by my player. 4
voidmyplayersetSet a global variable for my network player that can be referenced from any script and by any player in the room. If another player sets a variable with the same id, it won't compromise my variable. 3
anyplayergetGet the value of a stored global variable by a specific player. 3
voidsetSet a global variable that can be referenced from any script and by any player in the room 3

Soldier

Functions related to player actions and properties.

ReturnFunction NameDescriptionVote
booladdNewItemAdd Item to the inventory of the soldier 3
voidalertForPuts the soldier in an alert state for a defined time 6
voidapplyBleedingApplies bleed status to the soldier 6
voidboardVehicleOrder the soldier to approach and borar onto the specified vehicle if available. 2
boolcanSwitchSeatCheck if the soldier is ready to switch seat. Usually this happens when a soldier is not busy with enteirng or leaving the vehicle with an animation. 6
voidcarryBodyForce the soldier to carry a another incapacitated soldier 8
voiddamageSoldierApply damage to a soldier 4
voiddecreaseStaminaDecreases soldier's stamina 6
voiddisableHitByVehicleForDisable receiving damage from impacts with vehicles for some time 3
booldoingMeleeCheck if the soldier is doing a melee attack 6
voidexecuteOrdersRoutineExecutes the routine to process squad orders for the soldier. 2
voidfindCoverFinds a cover position near a specified position within a given radius. 2
AiParamsgetAiParamsAccess AI parameters management 2
SoldiergetCarriedBodyGet a reference to the incapacitated soldier carried by this unit 8
stringgetClassNameReturns the soldier's class name 6
VehiclegetCurrentVehicleReturns the current vehicle the soldier is in 6
floatgetDistanceFromGroundGet the distance between the soldier and the ground below 3
vec3getFacePositionGet the world position of soldier's face 7
stringgetFactionGets the soldier's faction ID 2
vec3getFireDirectionReturn a vector representing the direction where the gun held by the soldier is pointed to 6
stringgetHeadgearIdReturns the current wearing headgear Id 6
floatgetHealthGet the soldier's health 2
vec3getMoveDirectionReturns the moving direction of the soldier 6
stringgetNameReturns the soldier's full name 4
SoldiergetNearestInjuredGet the nearest wounded soldier around the current one 6
VehiclegetNearestVehicleToRepairReturns the nearest vehicle that requires repair from the current soldier 3
voidgetOffVehicleKicks the soldier from the current vehicle 6
stringgetOwnerIdGet Id of the online player controlling this soldier (Including AIs being controlled by his machine). 3
vec3getPositionGet world position of the soldier 4
SquadGetSquadGet the Squad that the soldier is currently in 6
floatgetSuppressionValueChecks the suppression value of the soldier from the enemy fire. 0
stringgetUniformIdGet the Id of the uniform worn by the soldier 3
integergetUniqueIdGet unique identifier for the unit. This is useful to check if a unit already exist, or to find specific units, especially across the network. 2
VehiclegetVehicleSoldierIsExitingFromGet the vehicle the current soldier is exiting from 6
vec3getVelocityReturns the current soldier's velocity 6
stringgetVestIdGet the Id of the vest worn by the soldier 3
boolhasHeadgearCheck if the the soldier is wearing an headgear 3
boolhasRadioCheck if a soldier is wearing a radio 3
boolhasVestCheck if a soldier is wearing a vest 6
voidhealSoldierHeals soldier of a certain amount 6
voidincapacitateForce incapacitate a soldier 7
boolisAIChecks if the current soldier is controlled by the AI 6
boolisAimingChecks if the current soldier is aiming the gun 6
boolisAlertedCheck if the soldier has spotted an enemy recently and is moving carefully 6
boolisAliveChecks if the current soldier is alive 7
boolisAlliedCheck if current soldier is part of Allies faction 2
boolisAmmoBoxCarrierCheck if soldier is carrying an ammo box 3
boolisATSoldierReturns true if the current soldier is an Anti-Tank unit 6
AiParamsisAxisCheck if current soldier is part of Axis faction 2
boolisBleedingCheck if the soldier is bleeding 6
boolisCarriedReturns true if the current soldier is getting carried 6
boolisCarryingBodyCheck if the current soldier is carrying an incapacitated soldier 6
boolisChargingReturns true if the current soldier is charging 6
AiParamsisCivilianCheck if current soldier is part of Civilians faction 2
boolisCrawlingReturns true if the current soldier is crawling 6
boolisDeadCheck if a soldier is dead 3
boolisEnteringVehicleReturns true if the current soldier has started the entering vehicle animation 6
boolisExitingVehicleReturns true if the current soldier has started the exiting vehicle animation 6
boolisFallingFromParachuteChecks if the current soldier is falling with a parachute 3
boolisFlameThrowerCarrierCheck if a soldier is a flamethrower carrier 4
boolisFromChargingFactionCheck if the soldier can execute a charge order 6
boolisGroundedReturns true if the soldier is on the ground 6
boolisIncapacitatedCheck if a soldier is incapacitated 3
boolisInsideVehicleCheck if the soldier is inside a vehicle 3
boolisJumpingReturns true if the current soldier is jumping 6
boolisMarksmanReturns true if the current soldier is a Marksman 3
boolisMechanicReturns true if the current soldier is a mechanic 7
boolisMedicReturns true if the current soldier is a medic 6
boolisMovingReturns true if the current soldier is moving 6
boolisOnCoverCheck if a soldier is taking cover 6
boolisOnFireReturns true if the current soldier is on fire 3
boolisOnWaterCheck if a soldier is walking inside water 7
boolisOutOfStaminaReturns true if the current soldier is out of stamina 6
boolisPlayerCheck if the soldier is a player 6
boolisPlayerFPSReturns true if the current soldier is a player and in first person 6
boolisRadiomanCheck if the current soldier is a Radioman 3
boolisReachingVehicleToMountCheck if a soldier is on his way to mount inside a vehicle 6
boolisReloadingReturns true if the current soldier is reloading a weapon 6
boolisRunningReturns true if the current soldier is running 3
boolisSameFactionCheck if another soldier is in the same faction of this soldier 2
boolisSquadLeaderReturns true if the current soldier is the Squad Leader 6
boolisSquadReadyCheck if soldier is in a squad, and the squad is marked as ready to receive orders 0
boolisStealthReturns true if the soldier is moving stealthly 3
boolisSuppressedChecks if the soldier is being suppressed 0
boolisSurrenderingCheck if the soldier is surrendering 6
boolisTalkingReturns true if the current soldier is talking 6
boolisThrowingReturns true if the current soldier is throwing something 6
boolisTowardWallReturns true if the current soldier is facing a wall 6
boolisUsingVehicleTurretCheck if soldier is operating a turret 4
voidjumpMakes the soldier jump. Notice: the jump movement is based on the current soldier velocity and direction. 3
voidkillSoldierKills the soldier 6
voidleaveVehicleCommands the soldier to eject from the current vehicle. 2
voidmoveToMoves the soldier to a specified position using CoverPosition with a new DestinationWithoutCover based on the given position and current pose. 2
SoldiermyselfCan be called within a SoldierBrain script to acquire the soldier controlled by the script 3
voidpauseAlertPauses the soldier's alert state. Notice: the difference between this and setnotalerted is that this one just pauses the alert state, while the other one stops 6
voidremoveBleedingRemoves bleeding effect from soldier 6
boolremoveItemRemove one or multiple items from a soldier invenotory 6
voidsayMakes the soldier say a line based on the VoiceClip Enum 3
boolsetBrainSet script that controls AI. Usually AI will work with "Default" behaviour, which will controls the way AI gives and follows squad orders, however it's possible to define a completly new behaviour by coding a dedicated "brain" LUA file and assign it to the AI with this function 3
voidsetInVehicleTeleport the soldier inside the specified vehicle. 2
voidsetNotAlertedForce concludes the alert state of the soldier 6
voidsetOnFireSets the current soldier on fire. Notice: The fire does not damage the soldier. 6
voidsetPlayerForce a soldier to be controlled by the player. Notice: This only works for soldiers and AIs that have been spawned (or are controlled) by current player's machine 6
voidsetPoseSets the soldier's pose based on the given integer. 2
voidstopStops the soldier by resetting the cover position to the current position. 2
voidstopIncapacitateStops a soldier from being incapacitated 6
voidstopSurrenderingCancel soldier surrendering action 6
voidsurrenderForce surrender the current soldier 6

Squad

Class to handle a Squad controlling multiple Soldiers.

ReturnFunction NameDescriptionVote
booladdSoldierAdd a Soldier to a squad 3
voidalertEnemiesAlert all enemies of the presence of the squad for some time 2
voidattackFromPointOrders the squad to attack from the specified waypoint within the given radius. 2
voidboardVehicleOrders the squad to board the specified vehicle. 2
voidcancelRadioRequestCancels any active radio request by the squad. 2
voidchargeOrders the squad to charge towards the specified position within the given radius. 2
voidcoverAreaOrders the squad to cover an area defined by a center position and radius. 2
voidfireAtWillOrders the squad to fire at will, canceling the stealth "hold fire" order, optionally playing an order animation. 2
voidfollowLeaderOrders the squad to follow their leader, optionally playing an order animation. 2
vec3getObjectivePositionReturns the position of the squad's current objective, or the leader's position if none is set. 2
floatgetObjectiveRadiusReturns the radius of the squad's current objective area, or a default value if none exists. 2
boolhasAliveMembersReturns whether the squad has any alive members. 3
boolhasFullySpawnedWhen using in-game Spawn Manager, spawning a squad can take a few instants. This function can be used to check whenever a squad has fully spawned 0
boolhasObjectiveReturns whether the squad has an assigned objective. 2
voidholdFireOrders the squad to hold fire and move stealthy, optionally playing an order animation. 2
voidleaveVehicleOrders the squad to leave the specified vehicle. The force flag determines whether the leave order is forced. 2
voidmoveToOrders the squad to hold an area at the specified position with the given radius. 2
boolremoveSoldierRemove a Soldier from a Squad (Soldier will be put on a new Squad) 3
voidrepairVehicleOrders the squad to repair the specified vehicle. 2
voidsetClosestObjectiveOrders the squad to set their objective to the closest available one. 2
voidsetRandomObjectiveOrders the squad to set a random objective. 2

Vehicle

Functions to handle vehicle spawning and behavior.

ReturnFunction NameDescriptionVote
voidaddNewItemToCargoAdd a new item to the cargo of the vehicle 3
boolcanBeRepairedChecks if the vehicle can be repaired 2
anycanRecieveDamageChecks if the vehicle can recieve any form of damage. 2
boolcanRefillAmmoChecks if is possible to refill ammo for the vehicle 2
boolcanShootInDirectionChecks if someone on the vehicle can shoot in that direction 2
boolcargoContainsItemCheck if vehicle inventory contains a specific item 3
integercountEmptySeatsCounts the empty seats in the vehicle 2
integercountItemsCount how many items with a specific Id are found inside the inventory of the vehicle 3
anycountPeopleInsideCounts all the people inside the vehicle 2
voiddamageApply damage to the hull of a vehicle 3
voiddamageEngineDamage vehicle engine (if any) 3
voiddamageFuelTankDamage vehicle fuel tank (if any) 3
voiddamageTracksDamage vehicle tracks and/or wheels (if any) 4
voiddestroyDisable the vehicle forever 3
voiddropInfantryKicks all the soldier seated in the passenger seats 3
voidemptyAllTurretsEmpties the magazines of all the turrets in the vehicle 2
floatgetDamageCheck life amount of a vehicle (hull integrity) 3
SoldiergetDriverGet reference to the Soldier driving the vehicle 3
floatgetEngineDamageCheck life amount of a vehicle engine (engine integrity) 3
stringgetFactionGet faction Id of the vehicle 2
floatgetFueltankDamageCheck life amount of vehicle fuel tank 3
SoldiergetGunnerGet reference to a soldier controlling a turret of the vehicle 3
SoldiergetLeaderGet reference of the soldier in the commanding seat of the vehicle 3
SoldiergetPassengersGet all passengers of the vehicle 3
floatgetTracksDamageCheck life amount of vehicle tracks/wheels 3
integergetUniqueIdGet unique identifier for the vehicle. This is useful to check if a vehicle already exist, or to find specific vehicles, especially across the network. 2
boolhasDriverChecks if the vehicle has a driver 3
boolisArtilleryVehicleChecks if the vehicle has any seat to be considered artillery 3
boolisBrakingChecks if the vehicle is braking 3
boolisDestroyedCheck if vehicle is fully destroyed 4
boolisDriverAliveChecks if there's a driver and is alive 3
boolisEmptyCheck if vehicle is empty (No units are left inside) 4
boolisFullCheck if vehicle seats are all occupied 4
voidkickEveryoneOutForce everyone to leave the vehicle 4
voidkickUnitsForce specific units to leave the vehicle 4
voidremoveItemFromCargoRemove an item from the cargo of the vehicle 4
voidrepairSet vehicle to fully repaired. Notice: This works only on vehicles that are not fully destroyed 4