An instruction is a node within behavior programming. Each instruction is composed of .LUA code.
For raw data on instructions: Refer to this data on instructions broken down into a table format.
Flow
Note that every pin of an instruction that is not connected will end the current iteration and will trigger a new iteration.
An exception is a subroutine, which is initiated with the "call" behavior. Unconnected pins will return to the parent routine.
Math
| Add | Adds a number or coordinate to another number or coordinate |
| Check space for item | Checks if free space is available for an item and amount |
| Combine Coordinate | Returns a coordinate made from x and y values |
| Combine Register | Combine to make a register from separate parameters |
| Compare Number | Divert program depending on number of Value and Compare |
| Copy | Copy a value to a frame register, parameter or variable |
| Divide | Divides a number or coordinate from another number or coordinate |
| Get Battery | Gets the value of the Battery level as a percent |
| Get Entity At | Gets the best matching entity at a coordinate |
| Get Equipped Num | Returns how many of a component are equipped |
| Get from Component | Reads a value from a component register |
| Get Grid Efficiency | Gets the value of the Grid Efficiency as a percent |
| Get Health | Gets a unit's health as a percentage, current remaining and max amount |
| Get Resource Num | Gets the amount of resource |
| Get Self | Gets the value of the Unit executing the behavior |
| Get Shield | Get a unit's shield as a percentage, current remaining and max amount |
| Get space for item | Returns how many of the input item can fit in the inventory |
| Get Unit At | Gets the best matching unit at a coordinate |
| Is Working | Checks whether a particular component is currently working |
| Modulo | Get the remainder of a division |
| Multiply | Multiplies a number or coordinate from another number or coordinate |
| Random Coordinate | Returns a random coordinate from a location within a specified range |
| Random Number | Returns a random number between a min and max value |
| Separate Coordinate | Split a coordinate into x and y values |
| Separate Register | Split a register into separate parameters |
| Set Number | Sets the numerical/coordinate part of a value |
| Set to Component | Writes a value into a component register |
| Subtract | Subtracts a number or coordinate from another number or coordinate |
Component
| Deploys held unit | Deploys held unit at location specified or current location |
| Mine | Mines a single resource |
| Radar | Scan for the closest unit that matches the filters |
| Set Signpost | Set the signpost to specific text |
Global
| Abort Construction | Abort an owned construction |
| Can Produce | Returns if a unit can produce an item |
| DebugPrint | Debug print to log |
| Distance | Returns distance to a unit |
| Faction Item Amount | Counts the number of the passed item in your logistics network |
| Get Home | Gets the factions home unit |
| Get Ingredients | Returns the ingredients required to produce an item |
| Get Location | Gets location of a seen unit |
| Get Season | Divert program depending on season |
| Get Stability | Gets the current world stability |
| Get Trust | Gets the trust level of the unit towards you |
| Get Type | Gets the type from an item or unit |
| Is Day/Night | Divert program depending time of day |
| Land | Tells a satellite that has been launched to land |
| Launch | Launches a satellite if equipped on an AMAC |
| Lookat | Turns the unit to look at a unit or a coordinate |
| Notify | Triggers a faction notification |
| Percent | Gives you the percent that value is of Max Value |
| Pings a Unit | Plays the Ping effect and notifies other players |
| Place Construction | Places a construction site for a specific structure |
| Produce Registered Unit | Sets a production component to produce a blueprint |
| Produce Unit | Sets a production component to produce a blueprint |
| Read Key | Attempts to read the internal key of the unit |
| Remap | Remaps a value between two ranges |
| Resource Type | Gets the resource type from an resource node |
Move
| *Move Unit (Range)* | *DEPRECATED* Use Move Unit |
| Attack Move | Moves towards a location stopping to attack any enemies encountered |
| Is Passable | Checks whether a location is passable |
| Move Away (Range) | Moves out of range of another unit, the number value of the target specifies the range |
| Move East | Moves towards a tile East of the current location at the specified distance |
| Move North | Moves towards a tile North of the current location at the specified distance |
| Move South | Moves towards a tile South of the current location at the specified distance |
| Move Unit | Moves to another unit or within a range of another unit |
| Move Unit (Async)* | *DEPRECATED* Use Move Unit |
| Move West | Moves towards a tile West of the current location at the specified distance |
| Scout | Moves in a scouting pattern around the factions home location |
| Scout Range | Moves in a random direction a specified amount
Optionally pass a coordinate to give some directionality |
| Stop Unit | Stop movement and abort what is currently controlling the unit's movement |
Unit
| Check Altitude | Divert program depending on location of a unit or coordinate |
| Check Battery | Checks the Battery level of a unit |
| Check Blightness | Divert program depending on location of a unit or coordinate |
| Check Grid Efficiency | Checks the Efficiency of the logistics network the unit is on |
| Check Health | Check a unit's health |
| Clear All Links | Clear all register links on this unit |
| Clear Link | Clear register link |
| Connect | Connects the Unit to the Logistics Network |
| Count Items | Counts the number of the passed item contained in the unit's inventory |
| Count Slots | Returns the number of slots in this unit of the given type |
| Disable Transport Route | Disable Unit to deliver on transport route |
| Disconnect | Disconnects the Unit from the Logistics Network |
| Drop Off Items | Drop off items at a unit or location |
| Enable Transport Route | Enable Unit to deliver on transport route |
| Equip Component | Equips a component if it exists |
| First Item | Reads the first item in your inventory |
| Fix Item Slots | Fix all storage slots or a specific item slot index |
| Get Active Order | Gets the source, target and amount data from the current active order |
| Get Closest Entity | Gets the closest visible entity matching a filter |
| Get Closest Unit | Gets the closest visible unit matching a filter |
| Get First Locked Id | Gets the first item where the locked slot exists but there is no item in it |
| Get Inventory Item | Reads the item contained in the specified slot index |
| Get Item Info | Gets information on an item |
| Get Unit Info | Gets information on a unit |
| Get Unit Power Info | Gets power information on a unit |
| Get Unit Type | Get the frame type of the unit |
| Inventory Total | Returns the total contained in inventory |
| Is Docked | Check if a unit is docked and get its garage |
| Is Equipped | Check if a specific component has been equipped |
| Is Fixed | Check if a specific item slot index is fixed |
| Is Inside Logistics Network | Checks if a unit or coordinates is in the logistics network |
| Is Moving | Checks the movement state of a unit |
| Is Same Grid | Checks if two units or coordinates are in the same logistics network |
| Is Unit A | Get the frame type of the unit |
| Lock Itemslot | Lock a specific itemslot index, a range of slot index via coord, or all storage slots |
| Loop Nearby Resources | Scans for nearby resources in power field range |
| Match | Filters the passed unit |
| Order to Shared Storage | Request Inventory to be sent to nearest shared storage with corresponding locked slots |
| Order Transfer To | Transfers an Item to another Unit |
| Package All | Tries to pack all packable units into items |
| Pick Up Items | Picks up items from a unit |
| Read Radio | Reads the Radio signal on a specified band |
| Read Signal | Reads the Signal register of another unit |
| Request Item | Requests an item if it doesn't exist in the inventory |
| Request Wait | Requests up to a specified amount of an item and waits until that amount exists in inventory |
| Set Link | Set register link |
| Solve Explorable | Attempt to solve an explorable |
| Sort Storage | Sorts Storage Containers on Unit |
| Switch | Filters the passed unit or item |
| Turn Off | Shuts down the power of the Unit |
| Turn On | Turns on the power of the Unit |
| Unequip Component | Unequips a component if it exists |
| Unfix Item Slots | Unfix all inventory slots or a specific item slot index |
| Unlock Itemslot | Unlock a specific itemslot index, a range of slot index via coord, or all storage slots |
| Unpackage All | Tries to unpack all packaged items |
Flow
| *Loop Signal* | *DEPRECATED* Use Loop Signal (Match) instead |
| Break | Break out of a loop |
| call |
| Call | Call a subroutine |
| Clear Research | Clears a research from queue, or entire queue if no tech passed |
| Compare Entity | Compares Entities |
| Compare Item | Compares Item or Unit type |
| Compare Register | Compares Registers for equality |
| Compare Unit | Compares Units |
| Data type switch | Switch based on type of value |
| Exit | Stops execution of the behavior |
| Get Max Stack | Returns the amount an item can stack to |
| Get Research | Returns the first active research tech |
| Get Research Requirement | Returns the research required (if needed) |
| Have Item | Checks if you have at least a specified amount of an item |
| Is a | Compares if an item of unit is of a specific type |
| Is Empty | Checks a value if it is empty |
| Is Unlocked | Checks whether a faction has an id unlocked |
| Jump | Jumps execution to label with the same label id |
| Label | Labels can be jumped to from anywhere in a behavior |
| Lock | Run one instruction at a time |
| Loop Components | Loops through Components |
| Loop Entities (Range) | Performs code for all entities in visibility range of the unit |
| Loop Inventory Slots | Loops through Inventory |
| Loop Number | Performs code for all numbers in a range |
| Loop Producers | Gets all producers for a production with their production time |
| Loop Recipe Ingredients | Loops through Ingredients |
| Loop Research | Performs code for all researchable tech |
| Loop Research Ingredients | Loops through Ingredients |
| Loop Research Unlocks | Performs code for all unlocks for a researchable tech |
| Loop Signal (Match) | Loops through all units with a signal of similar type |
| Loop Units (Range) | Performs code for all units in visibility range of the unit |
| Restart | Restart execution of the behavior |
| Select Nearest | Branches based on which unit is closer, optional branches for closer unit |
| Set Research | Returns the first active research tech |
| Unit Type | Divert program depending on unit type |
| Unlock | Run as many instructions as possible. Use wait instructions to throttle execution. |
| Wait Ticks | Pauses execution of the behavior until 1 or more ticks later (5 ticks=1 second) |