Delnar_Ersike
Prince
After having spent a few hours just setting up a single, simple BehaviorTree, I thought I'd post a reference people can look at while making Behavior Trees.
This is a list of all possible Leaf nodes in a Behavior Tree with their possible arguments outlined by number, ordered by how they appear in BehaviorTrees.xml. Each argument has a bunch of properties, this are listed below each argument. If a leaf has no arguments, no arguments are listed.
Leaf nodes for a tree are set up in the BehaviorTreeNodes SQL table and are defined by their name, while the arguments for each node are set up in TreeData and are defined by DefnId as the argument number and NodeId for the node whose arguments a given entry refers to.
Setting an argument depends on the UserData property of the argument. If it's "true", then you can use the DefaultValue field, otherwise you'll need to forward it a value or a list through the Tag field pointing to a contract that was set up with Decode Trigger + Contract Manager Decorator. Disclaimer: I'm not necessarily certain of the latter, this may change as I hear back from people and do my own tinkering.
In case I have any comments, they are added in square brackets.
__________
NodeType: Concurrent
Description: Logical And node. Runs all children until it reaches a FAILURE (can allow multiple failures if desired.)
__________
NodeType: Priority
Description: Logical Or node. Runs all children until it reaches a SUCCESS or RUNNING
__________
NodeType: Sequence
Description: Special logical And node. Stops on FAILURE, but also stops on RUNNING. Resumes next turn on RUNNING node.
__________
NodeType: Add Goal Tech
Description: Given a list of units, buildings, or techs, asks Research AI to work on them
__________
NodeType: Build Unit
Description: Given a list of units and/or buildings and a city, builds 'best' unit [or building] at the city when queue is available.
__________
NodeType: Find Available Unit
Description: Given a list of units, finds first unit of matching type that can get to location
__________
NodeType: Notify Owner
Description: Sends notice back to the owning player or any other listener, with an optional integral payload.
__________
NodeType: Barbarian Spawn Change
Description: Change the spawn rate of a barbarian tribe to prepare for raid/invasion.
__________
NodeType: Run Behavior Tree
Description: DEPRECATED - DO NOT USE. Runs a behavior tree defined elsewhere. You can change data for that sub-tree, but not its structure.
__________
NodeType: Operation Move
Description: Moves operation to the rally point.
__________
NodeType: Decode Trigger
Description: For temporary trees only. Take the trigger you want to meet and extract information for use elsewhere.
__________
NodeType: Choose City
Description: Given a list of buildings, pick the best city to make a building. Output city and needed improvement.
__________
NodeType: Build Improvement
Description: Given a worker, location, and improvement, build the improvement.
__________
NodeType: Move Unit
Description: Given a unit ID and a location, give the unit a move order. Report RUNNING until it reaches destination.
__________
NodeType: Operation Attack
Description: As part of an operation, attack the target. [Used by AI operations that have a target that can be attacked, e.g. target enemy unit or enemy district]
__________
NodeType: Not
Description: Decorator that turns SUCCESS and RUNNING to FAILURE and vice versa. Does not reverse ERROR.
__________
NodeType: Purchase Plot
Description: Purchase plot for a city.
__________
NodeType: Recruit Units
Description: Recruit [Select] units for a defined operation. OPERATION USE ONLY.
__________
NodeType: Operation Attack Units
Description: As part of an operation, attack enemy units during a move
__________
NodeType: Choose Improvement
Description: Given a list of improvement types, chooses a specific improvement to build, preferably around a city
__________
NodeType: Barbarian Raid Check
Description: Check the score of a barbarian raid
__________
NodeType: In Difficulty Range
Description: Decorator that runs if owner's difficulty is within range. Optionally target difficulty, optionally fail if outside.
__________
NodeType: Settle
Description: Tells a unit to perform the settle action. FAILS if no unit is able to do so.
__________
NodeType: Check Plot
Description: Checks if you can build the requested building or district on that location. Outputs an offending resource or feature if it fails
__________
NodeType: Clear Plot
Description: Orders a unit to clear the current tile. FAILS if no unit is able to do so.
__________
NodeType: Barbarian Recruit
Description: Recruit members from a tribe for a raid or invasion.
__________
NodeType: Interval
Description: Lets a child run for N turns before rechecking it
__________
NodeType: Operation Defend Units
Description: As part of an operation, protect your units that might otherwise be destroyed.
__________
NodeType: Turn Limiter
Description: Only lets a child node run for a limited number of turns before failing.
__________
NodeType: Operation Change Target
Description: As part of an operation, if you can't take the current target, find a new one or give up.
__________
NodeType: Contract Manager Decorator
Description: Manages a contract, can limit turns until it is run.
__________
NodeType: Operation Attack City
Description: As part of an operation, attack a city
__________
NodeType: Make Formation
Description: Create (or destroy) a formation of units [corps, armies]
__________
NodeType: Protect Unit
Description: Keep a non-operation unit safe if its health is below specified fraction
__________
NodeType: City Attack
Description: Cities attack enemy units within range, with preferences as described (none required)
__________
NodeType: Reserve Plot
Description: Reserve a city plot so that other trees will leave it alone
__________
NodeType: Operation Pillage
Description: Pillage nearby improvements and districts
__________
NodeType: Operation Siege City
Description: Pillage nearby improvements and districts [while surrounding a city]
__________
NodeType: Garrison City
Description: As part of an operation, garrison a unit in a friendly city
__________
NodeType: Is City Threatened
Description: Tell if city that is operation target is still threatened
__________
NodeType: Is At War
Description: Tell if player is at war
__________
NodeType: Find Unit Targets
Description: Find places for all owned units to go
__________
NodeType: Upgrade Units
Description: Upgrade any upgradeable units
Continued in next post...
This is a list of all possible Leaf nodes in a Behavior Tree with their possible arguments outlined by number, ordered by how they appear in BehaviorTrees.xml. Each argument has a bunch of properties, this are listed below each argument. If a leaf has no arguments, no arguments are listed.
Leaf nodes for a tree are set up in the BehaviorTreeNodes SQL table and are defined by their name, while the arguments for each node are set up in TreeData and are defined by DefnId as the argument number and NodeId for the node whose arguments a given entry refers to.
Setting an argument depends on the UserData property of the argument. If it's "true", then you can use the DefaultValue field, otherwise you'll need to forward it a value or a list through the Tag field pointing to a contract that was set up with Decode Trigger + Contract Manager Decorator. Disclaimer: I'm not necessarily certain of the latter, this may change as I hear back from people and do my own tinkering.
In case I have any comments, they are added in square brackets.
__________
NodeType: Concurrent
Description: Logical And node. Runs all children until it reaches a FAILURE (can allow multiple failures if desired.)
Spoiler Arguments :
DefnId 0: Max Failures
DataType: int
Required: false
UserData: true
RequiredGroup: false
Output: false
Tagged: false
DefnId 1: Exit on SuccessRequired: false
UserData: true
RequiredGroup: false
Output: false
Tagged: false
DataType: bool
Required: false
UserData: true
RequiredGroup: false
Output: false
Tagged: false
Required: false
UserData: true
RequiredGroup: false
Output: false
Tagged: false
__________
NodeType: Priority
Description: Logical Or node. Runs all children until it reaches a SUCCESS or RUNNING
__________
NodeType: Sequence
Description: Special logical And node. Stops on FAILURE, but also stops on RUNNING. Resumes next turn on RUNNING node.
Spoiler Arguments :
DefnId 0: Looping
DataType: bool
Required: false
UserData: true
RequiredGroup: false
Output: false
Tagged: false
Required: false
UserData: true
RequiredGroup: false
Output: false
Tagged: false
__________
NodeType: Add Goal Tech
Description: Given a list of units, buildings, or techs, asks Research AI to work on them
Spoiler Arguments :
DefnId 0: Desired Units
DataType: UnitTypesList
Required: true [can be empty]
UserData: false
RequiredGroup: true
Output: false
Tagged: false
DefnId 1: Desired BuildingsRequired: true [can be empty]
UserData: false
RequiredGroup: true
Output: false
Tagged: false
DataType: BuildingTypesList
Required: true [can be empty]
UserData: false
RequiredGroup: true
Output: false
Tagged: false
DefnId 2: Desired ImprovementsRequired: true [can be empty]
UserData: false
RequiredGroup: true
Output: false
Tagged: false
DataType: ImprovementList
Required: true [can be empty]
UserData: false
RequiredGroup: true
Output: false
Tagged: false
DefnId 3: Goal Plot to workRequired: true [can be empty]
UserData: false
RequiredGroup: true
Output: false
Tagged: false
DataType: Map Point
Required: true [can be empty]
UserData: false
RequiredGroup: true
Output: false
Tagged: false
DefnId 4: Desired TechsRequired: true [can be empty]
UserData: false
RequiredGroup: true
Output: false
Tagged: false
DataType: TechTypeList
Required: true [can be empty]
UserData: false
RequiredGroup: true
Output: false
Tagged: false
DefnId 5: Add Techs For AllRequired: true [can be empty]
UserData: false
RequiredGroup: true
Output: false
Tagged: false
DataType: bool
Required: false
UserData: true
RequiredGroup: true
Output: false
Tagged: false
DefnId 6: Desired CivicsRequired: false
UserData: true
RequiredGroup: true
Output: false
Tagged: false
DataType: CivicsList
Required: true [can be empty]
UserData: false
RequiredGroup: true
Output: false
Tagged: false
DefnId 7: Contract IDRequired: true [can be empty]
UserData: false
RequiredGroup: true
Output: false
Tagged: false
DataType: ID List
Required: false
UserData: false
RequiredGroup: true
Output: true
Tagged: false
DefnId 8: Tech Value [populates Contract ID]Required: false
UserData: false
RequiredGroup: true
Output: true
Tagged: false
DataType: int
Required: false
UserData: false
RequiredGroup: false
Output: false
Tagged: false
Required: false
UserData: false
RequiredGroup: false
Output: false
Tagged: false
__________
NodeType: Build Unit
Description: Given a list of units and/or buildings and a city, builds 'best' unit [or building] at the city when queue is available.
Spoiler Arguments :
DefnId 0: Desired Units
DataType: UnitTypesList
Required: true [can be empty]
UserData: false
RequiredGroup: true
Output: false
Tagged: false
DefnId 1: Desired BuildingsRequired: true [can be empty]
UserData: false
RequiredGroup: true
Output: false
Tagged: false
DataType: BuildingTypesList
Required: true [can be empty]
UserData: false
RequiredGroup: true
Output: false
Tagged: false
DefnId 2: Required City (-1 for any city)Required: true [can be empty]
UserData: false
RequiredGroup: true
Output: false
Tagged: false
DataType: int
Required: false
UserData: true
RequiredGroup: false
Output: false
Tagged: true
DefnId 3: Release Unit When BuiltRequired: false
UserData: true
RequiredGroup: false
Output: false
Tagged: true
DataType: bool
Required: false
UserData: true
RequiredGroup: false
Output: false
Tagged: false
DefnId 4: Contract IDRequired: false
UserData: true
RequiredGroup: false
Output: false
Tagged: false
DataType: int
Required: false
UserData: false
RequiredGroup: false
Output: true
Tagged: false
DefnId 5: Build PriorityRequired: false
UserData: false
RequiredGroup: false
Output: true
Tagged: false
DataType: int
Required: false
UserData: true
RequiredGroup: false
Output: false
Tagged: false
DefnId 6: Desired DistrictsRequired: false
UserData: true
RequiredGroup: false
Output: false
Tagged: false
DataType: DistrictList
Required: true [can be empty]
UserData: false
RequiredGroup: true
Output: false
Tagged: false
DefnId 7: Desired LocationRequired: true [can be empty]
UserData: false
RequiredGroup: true
Output: false
Tagged: false
DataType: Map Point
Required: false
UserData: false
RequiredGroup: false
Output: false
Tagged: false
DefnId 8: Unit Value [also applies to buildings]Required: false
UserData: false
RequiredGroup: false
Output: false
Tagged: false
DataType: int
Required: false
UserData: false
RequiredGroup: false
Output: false
Tagged: false
Required: false
UserData: false
RequiredGroup: false
Output: false
Tagged: false
__________
NodeType: Find Available Unit
Description: Given a list of units, finds first unit of matching type that can get to location
Spoiler Arguments :
DefnId 0: Desired Units
DataType: UnitTypesList
Required: true [can be empty]
UserData: false
RequiredGroup: true
Output: false
Tagged: false
DefnId 1: Desired LocationRequired: true [can be empty]
UserData: false
RequiredGroup: true
Output: false
Tagged: false
DataType: Map Point
Required: false
UserData: false
RequiredGroup: false
Output: false
Tagged: false
DefnId 2: Found UnitRequired: false
UserData: false
RequiredGroup: false
Output: false
Tagged: false
DataType: ID List
Required: true
UserData: false
RequiredGroup: false
Output: true
Tagged: false
DefnId 3: Upgradeable UnitsRequired: true
UserData: false
RequiredGroup: false
Output: true
Tagged: false
DataType: bool
Required: true
UserData: true
RequiredGroup: true
Output: false
Tagged: false
DefnId 4: Unit TypeRequired: true
UserData: true
RequiredGroup: true
Output: false
Tagged: false
DataType: string
Required: true
UserData: true
RequiredGroup: true
Output: false
Tagged: false
Required: true
UserData: true
RequiredGroup: true
Output: false
Tagged: false
__________
NodeType: Notify Owner
Description: Sends notice back to the owning player or any other listener, with an optional integral payload.
Spoiler Arguments :
DefnId 0: Data Payload
DataType: int
Required: false
UserData: false
RequiredGroup: false
Output: false
Tagged: false
Required: false
UserData: false
RequiredGroup: false
Output: false
Tagged: false
__________
NodeType: Barbarian Spawn Change
Description: Change the spawn rate of a barbarian tribe to prepare for raid/invasion.
Spoiler Arguments :
DefnId 0: Tribe
DataType: int
Required: true
UserData: false
RequiredGroup: false
Output: false
Tagged: false
DefnId 1: Spawn RateRequired: true
UserData: false
RequiredGroup: false
Output: false
Tagged: false
DataType: int
Required: false
UserData: true
RequiredGroup: false
Output: false
Tagged: false
Required: false
UserData: true
RequiredGroup: false
Output: false
Tagged: false
__________
NodeType: Run Behavior Tree
Description: DEPRECATED - DO NOT USE. Runs a behavior tree defined elsewhere. You can change data for that sub-tree, but not its structure.
Spoiler Arguments :
DefnId 0: Behavior Tree
DataType: string
Required: true
UserData: true
RequiredGroup: false
Output: false
Tagged: false
DefnId 1: Behavior Tree Parent TagRequired: true
UserData: true
RequiredGroup: false
Output: false
Tagged: false
DataType: string
Required: false
UserData: false
RequiredGroup: false
Output: false
Tagged: false
Automatic: true
Required: false
UserData: false
RequiredGroup: false
Output: false
Tagged: false
Automatic: true
__________
NodeType: Operation Move
Description: Moves operation to the rally point.
Spoiler Arguments :
DefnId 0: Move To (enum)
DataType: int
Required: false
UserData: true
RequiredGroup: false
Output: false
Tagged: false
DefnId 1: Range to goalRequired: false
UserData: true
RequiredGroup: false
Output: false
Tagged: false
DataType: int
Required: true
UserData: true
RequiredGroup: false
Output: false
Tagged: false
DefnId 2: Validate new unitsRequired: true
UserData: true
RequiredGroup: false
Output: false
Tagged: false
DataType: bool
Required: false
UserData: true
RequiredGroup: false
Output: false
Tagged: false
DefnId 3: Unit distanceRequired: false
UserData: true
RequiredGroup: false
Output: false
Tagged: false
DataType: int
Required: false
UserData: true
RequiredGroup: false
Output: false
Tagged: false
DefnId 4: Leader TagRequired: false
UserData: true
RequiredGroup: false
Output: false
Tagged: false
DataType: string
Required: false
UserData: true
RequiredGroup: false
Output: false
Tagged: false
Required: false
UserData: true
RequiredGroup: false
Output: false
Tagged: false
__________
NodeType: Decode Trigger
Description: For temporary trees only. Take the trigger you want to meet and extract information for use elsewhere.
Spoiler Arguments :
DefnId 0: Trigger Units
DataType: UnitTypesList
Required: true [can be empty]
UserData: false
RequiredGroup: true
Output: true
Tagged: false
DefnId 1: Trigger BuildingsRequired: true [can be empty]
UserData: false
RequiredGroup: true
Output: true
Tagged: false
DataType: BuildingTypesList
Required: true [can be empty]
UserData: false
RequiredGroup: true
Output: true
Tagged: false
DefnId 2: Trigger ImprovementsRequired: true [can be empty]
UserData: false
RequiredGroup: true
Output: true
Tagged: false
DataType: ImprovementList
Required: true [can be empty]
UserData: false
RequiredGroup: true
Output: true
Tagged: false
DefnId 3: Trigger DistrictRequired: true [can be empty]
UserData: false
RequiredGroup: true
Output: true
Tagged: false
DataType: DistrictList
Required: true [can be empty]
UserData: false
RequiredGroup: true
Output: true
Tagged: false
DefnId 4: Trigger CityRequired: true [can be empty]
UserData: false
RequiredGroup: true
Output: true
Tagged: false
DataType: int
Required: true [can be empty]
UserData: false
RequiredGroup: true
Output: true
Tagged: false
DefnId 5: Trigger LocationRequired: true [can be empty]
UserData: false
RequiredGroup: true
Output: true
Tagged: false
DataType: Map Point
Required: true [can be empty]
UserData: false
RequiredGroup: true
Output: true
Tagged: false
DefnId 6: Trigger TechRequired: true [can be empty]
UserData: false
RequiredGroup: true
Output: true
Tagged: false
DataType: TechTypeList
Required: true [can be empty]
UserData: false
RequiredGroup: true
Output: true
Tagged: false
DefnId 7: Trigger CivicRequired: true [can be empty]
UserData: false
RequiredGroup: true
Output: true
Tagged: false
DataType: CivicsList
Required: true [can be empty]
UserData: false
RequiredGroup: true
Output: true
Tagged: false
DefnId 8: Trigger ValueRequired: true [can be empty]
UserData: false
RequiredGroup: true
Output: true
Tagged: false
DataType: int
Required: false
UserData: false
RequiredGroup: false
Output: true
Tagged: false
Required: false
UserData: false
RequiredGroup: false
Output: true
Tagged: false
__________
NodeType: Choose City
Description: Given a list of buildings, pick the best city to make a building. Output city and needed improvement.
Spoiler Arguments :
DefnId 0: Building List
DataType: BuildingTypesList
Required: true [can be empty]
UserData: false
RequiredGroup: false
Output: false
Tagged: false
DefnId 1: City IDRequired: true [can be empty]
UserData: false
RequiredGroup: false
Output: false
Tagged: false
DataType: int
Required: true
UserData: false
RequiredGroup: false
Output: true
Tagged: false
DefnId 2: Needed DistrictRequired: true
UserData: false
RequiredGroup: false
Output: true
Tagged: false
DataType: DistrictList
Required: false
UserData: false
RequiredGroup: false
Output: true
Tagged: false
DefnId 3: District LocationRequired: false
UserData: false
RequiredGroup: false
Output: true
Tagged: false
DataType: Map Point
Required: false
UserData: false
RequiredGroup: false
Output: true
Tagged: false
DefnId 4: Building LocationRequired: false
UserData: false
RequiredGroup: false
Output: true
Tagged: false
DataType: Map Point
Required: false
UserData: false
RequiredGroup: false
Output: true
Tagged: false
Required: false
UserData: false
RequiredGroup: false
Output: true
Tagged: false
__________
NodeType: Build Improvement
Description: Given a worker, location, and improvement, build the improvement.
Spoiler Arguments :
DefnId 0: Worker List
DataType: ID List
Required: false
UserData: false
RequiredGroup: false
Output: false
Tagged: false
DefnId 1: Goal PlotRequired: false
UserData: false
RequiredGroup: false
Output: false
Tagged: false
DataType: Map Point
Required: true
UserData: false
RequiredGroup: false
Output: false
Tagged: false
DefnId 2: ImprovementsRequired: true
UserData: false
RequiredGroup: false
Output: false
Tagged: false
DataType: ImprovementList
Required: true
UserData: false
RequiredGroup: false
Output: false
Tagged: false
DefnId 3: Release when doneRequired: true
UserData: false
RequiredGroup: false
Output: false
Tagged: false
DataType: bool
Required: false
UserData: true
RequiredGroup: false
Output: false
Tagged: false
Required: false
UserData: true
RequiredGroup: false
Output: false
Tagged: false
__________
NodeType: Move Unit
Description: Given a unit ID and a location, give the unit a move order. Report RUNNING until it reaches destination.
Spoiler Arguments :
DefnId 0: Unit ID List
DataType: ID List
Required: false
UserData: false
RequiredGroup: false
Output: false
Tagged: false
DefnId 1: LocationRequired: false
UserData: false
RequiredGroup: false
Output: false
Tagged: false
DataType: Map Point
Required: false
UserData: false
RequiredGroup: false
Output: false
Tagged: false
DefnId 2: Release when doneRequired: false
UserData: false
RequiredGroup: false
Output: false
Tagged: false
DataType: bool
Required: false
UserData: true
RequiredGroup: false
Output: false
Tagged: false
DefnId 3: Allow Danger [allow entering a tile that has a danger value > 0]Required: false
UserData: true
RequiredGroup: false
Output: false
Tagged: false
DataType: bool
Required: false
UserData: true
RequiredGroup: false
Output: false
Tagged: false
DefnId 4: To RangeRequired: false
UserData: true
RequiredGroup: false
Output: false
Tagged: false
DataType: int
Required: false
UserData: true
RequiredGroup: false
Output: false
Tagged: false
Required: false
UserData: true
RequiredGroup: false
Output: false
Tagged: false
__________
NodeType: Operation Attack
Description: As part of an operation, attack the target. [Used by AI operations that have a target that can be attacked, e.g. target enemy unit or enemy district]
__________
NodeType: Not
Description: Decorator that turns SUCCESS and RUNNING to FAILURE and vice versa. Does not reverse ERROR.
__________
NodeType: Purchase Plot
Description: Purchase plot for a city.
Spoiler Arguments :
DefnId 0: Required City
DataType: int
Required: false
UserData: false
RequiredGroup: false
Output: false
Tagged: false
DefnId 1: PlotRequired: false
UserData: false
RequiredGroup: false
Output: false
Tagged: false
DataType: Map Point
Required: true
UserData: false
RequiredGroup: false
Output: false
Tagged: false
DefnId 2: ContractRequired: true
UserData: false
RequiredGroup: false
Output: false
Tagged: false
DataType: int
Required: false
UserData: false
RequiredGroup: false
Output: true
Tagged: false
Required: false
UserData: false
RequiredGroup: false
Output: true
Tagged: false
__________
NodeType: Recruit Units
Description: Recruit [Select] units for a defined operation. OPERATION USE ONLY.
Spoiler Arguments :
DefnId 0: Already in progress [set to true if recycling a list/contract that was already used for another Recruit Units]
DataType: bool
Required: false
UserData: true
RequiredGroup: false
Output: false
Tagged: false
DefnId 1: Contract IDRequired: false
UserData: true
RequiredGroup: false
Output: false
Tagged: false
DataType: int
Required: false
UserData: false
RequiredGroup: false
Output: false
Tagged: false
DefnId 2: Recruit RangeRequired: false
UserData: false
RequiredGroup: false
Output: false
Tagged: false
DataType: int
Required: false
UserData: true
RequiredGroup: false
Output: false
Tagged: false
DefnId 3: Allow creationRequired: false
UserData: true
RequiredGroup: false
Output: false
Tagged: false
DataType: bool
Required: false
UserData: true
RequiredGroup: false
Output: false
Tagged: false
DefnId 4: Recruit ValueRequired: false
UserData: true
RequiredGroup: false
Output: false
Tagged: false
DataType: int
Required: false
UserData: false
RequiredGroup: false
Output: false
Tagged: false
Required: false
UserData: false
RequiredGroup: false
Output: false
Tagged: false
__________
NodeType: Operation Attack Units
Description: As part of an operation, attack enemy units during a move
Spoiler Arguments :
DefnId 0: Attack Nearby Units
DataType: bool
Required: true
UserData: true
RequiredGroup: false
Output: false
Tagged: false
DefnId 1: Attack Along MarchRequired: true
UserData: true
RequiredGroup: false
Output: false
Tagged: false
DataType: bool
Required: true
UserData: true
RequiredGroup: false
Output: false
Tagged: false
DefnId 3: Allow Unequal Attacks [allow attacks that would make attacker suffer more damage than they deal]Required: true
UserData: true
RequiredGroup: false
Output: false
Tagged: false
DataType: bool
Required: false
UserData: true
RequiredGroup: false
Output: false
Tagged: false
DefnId 4: Always RunningRequired: false
UserData: true
RequiredGroup: false
Output: false
Tagged: false
DataType: bool
Required: false
UserData: true
RequiredGroup: false
Output: false
Tagged: false
Required: false
UserData: true
RequiredGroup: false
Output: false
Tagged: false
__________
NodeType: Choose Improvement
Description: Given a list of improvement types, chooses a specific improvement to build, preferably around a city
Spoiler Arguments :
DefnId 0: Input Improvements
DataType: ImprovementList
Required: true [can be empty]
UserData: false
RequiredGroup: false
Output: false
Tagged: false
DefnId 1: BuilderListRequired: true [can be empty]
UserData: false
RequiredGroup: false
Output: false
Tagged: false
DataType: UnitTypesList
Required: true [can be empty]
UserData: false
RequiredGroup: false
Output: true
Tagged: false
DefnId 2: LocationRequired: true [can be empty]
UserData: false
RequiredGroup: false
Output: true
Tagged: false
DataType: Map Point
Required: true
UserData: false
RequiredGroup: false
Output: true
Tagged: false
DefnId 3: Output ImprovementRequired: true
UserData: false
RequiredGroup: false
Output: true
Tagged: false
DataType: ImprovementList
Required: true [can be empty]
UserData: false
RequiredGroup: false
Output: true
Tagged: false
Required: true [can be empty]
UserData: false
RequiredGroup: false
Output: true
Tagged: false
__________
NodeType: Barbarian Raid Check
Description: Check the score of a barbarian raid
Spoiler Arguments :
DefnId 0: Tribe Score
DataType: int
Required: true
UserData: false
RequiredGroup: false
Output: false
Tagged: false
DefnId 1: ScoreRequired: true
UserData: false
RequiredGroup: false
Output: false
Tagged: false
DataType: int
Required: true
UserData: true
RequiredGroup: false
Output: false
Tagged: false
DefnId 2: Signal At StartRequired: true
UserData: true
RequiredGroup: false
Output: false
Tagged: false
DataType: bool
Required: false
UserData: true
RequiredGroup: false
Output: false
Tagged: false
Required: false
UserData: true
RequiredGroup: false
Output: false
Tagged: false
__________
NodeType: In Difficulty Range
Description: Decorator that runs if owner's difficulty is within range. Optionally target difficulty, optionally fail if outside.
Spoiler Arguments :
DefnId 0: Low Difficulty
DataType: string
Required: true
UserData: true
RequiredGroup: true
Output: false
Tagged: false
DefnId 1: High DifficultyRequired: true
UserData: true
RequiredGroup: true
Output: false
Tagged: false
DataType: string
Required: true
UserData: true
RequiredGroup: true
Output: false
Tagged: false
DefnId 2: Apply to opponentRequired: true
UserData: true
RequiredGroup: true
Output: false
Tagged: false
DataType: bool
Required: true
UserData: true
RequiredGroup: true
Output: false
Tagged: false
DefnId 3: Fail if outsideRequired: true
UserData: true
RequiredGroup: true
Output: false
Tagged: false
DataType: bool
Required: true
UserData: true
RequiredGroup: true
Output: false
Tagged: false
Required: true
UserData: true
RequiredGroup: true
Output: false
Tagged: false
__________
NodeType: Settle
Description: Tells a unit to perform the settle action. FAILS if no unit is able to do so.
Spoiler Arguments :
DefnId 0: Settler Unit
DataType: ID List
Required: false
UserData: false
RequiredGroup: false
Output: false
Tagged: false
Required: false
UserData: false
RequiredGroup: false
Output: false
Tagged: false
__________
NodeType: Check Plot
Description: Checks if you can build the requested building or district on that location. Outputs an offending resource or feature if it fails
Spoiler Arguments :
DefnId 0: Plot To Check
DataType: Map Point
Required: true
UserData: false
RequiredGroup: false
Output: false
Tagged: false
DefnId 1: Building DistrictsRequired: true
UserData: false
RequiredGroup: false
Output: false
Tagged: false
DataType: DistrictList
Required: true [can be empty]
UserData: false
RequiredGroup: true
Output: false
Tagged: false
DefnId 2: Building WondersRequired: true [can be empty]
UserData: false
RequiredGroup: true
Output: false
Tagged: false
DataType: BuildingTypesList
Required: true [can be empty]
UserData: false
RequiredGroup: true
Output: false
Tagged: false
DefnId 3: Building ImprovementsRequired: true [can be empty]
UserData: false
RequiredGroup: true
Output: false
Tagged: false
DataType: ImprovementList
Required: true [can be empty]
UserData: false
RequiredGroup: true
Output: false
Tagged: false
DefnId 4: Resource HarvestingRequired: true [can be empty]
UserData: false
RequiredGroup: true
Output: false
Tagged: false
DataType: bool
Required: false
UserData: false
RequiredGroup: false
Output: true
Tagged: false
DefnId 5: Builder ListRequired: false
UserData: false
RequiredGroup: false
Output: true
Tagged: false
DataType: UnitTypesList
Required: true [can be empty]
UserData: false
RequiredGroup: false
Output: true
Tagged: false
Required: true [can be empty]
UserData: false
RequiredGroup: false
Output: true
Tagged: false
__________
NodeType: Clear Plot
Description: Orders a unit to clear the current tile. FAILS if no unit is able to do so.
Spoiler Arguments :
DefnId 0: Builder List
DataType: ID List
Required: false
UserData: false
RequiredGroup: false
Output: false
Tagged: false
DefnId 1: Release on CompleteRequired: false
UserData: false
RequiredGroup: false
Output: false
Tagged: false
DataType: bool
Required: false
UserData: true
RequiredGroup: false
Output: false
Tagged: false
DefnId 2: Plot To ClearRequired: false
UserData: true
RequiredGroup: false
Output: false
Tagged: false
DataType: Map Point
Required: true
UserData: false
RequiredGroup: false
Output: false
Tagged: false
DefnId 3: Resource HarvestingRequired: true
UserData: false
RequiredGroup: false
Output: false
Tagged: false
DataType: bool
Required: false
UserData: false
RequiredGroup: false
Output: false
Tagged: false
Required: false
UserData: false
RequiredGroup: false
Output: false
Tagged: false
__________
NodeType: Barbarian Recruit
Description: Recruit members from a tribe for a raid or invasion.
Spoiler Arguments :
DefnId 0: Tribe
DataType: int
Required: true
UserData: true
RequiredGroup: true
Output: false
Tagged: false
DefnId 1: Num MeleeRequired: true
UserData: true
RequiredGroup: true
Output: false
Tagged: false
DataType: int
Required: true
UserData: true
RequiredGroup: true
Output: false
Tagged: false
DefnId 2: Num RangedRequired: true
UserData: true
RequiredGroup: true
Output: false
Tagged: false
DataType: int
Required: true
UserData: true
RequiredGroup: true
Output: false
Tagged: false
DefnId 3: Num SiegeRequired: true
UserData: true
RequiredGroup: true
Output: false
Tagged: false
DataType: int
Required: true
UserData: true
RequiredGroup: true
Output: false
Tagged: false
DefnId 4: Num SupportRequired: true
UserData: true
RequiredGroup: true
Output: false
Tagged: false
DataType: int
Required: true
UserData: true
RequiredGroup: true
Output: true
Tagged: false
Required: true
UserData: true
RequiredGroup: true
Output: true
Tagged: false
__________
NodeType: Interval
Description: Lets a child run for N turns before rechecking it
Spoiler Arguments :
DefnId 0: Turns to Run
DataType: int
Required: true
UserData: true
RequiredGroup: false
Output: false
Tagged: false
Required: true
UserData: true
RequiredGroup: false
Output: false
Tagged: false
__________
NodeType: Operation Defend Units
Description: As part of an operation, protect your units that might otherwise be destroyed.
Spoiler Arguments :
DefnId 0: AutoProtect Percentage
DataType: int
Required: false
UserData: true
RequiredGroup: false
Output: false
Tagged: false
Required: false
UserData: true
RequiredGroup: false
Output: false
Tagged: false
__________
NodeType: Turn Limiter
Description: Only lets a child node run for a limited number of turns before failing.
Spoiler Arguments :
DefnId 0: Turns to Run
DataType: int
Required: true
UserData: true
RequiredGroup: false
Output: false
Tagged: false
DefnId 1: Fail at LimitRequired: true
UserData: true
RequiredGroup: false
Output: false
Tagged: false
DataType: bool
Required: false
UserData: true
RequiredGroup: false
Output: false
Tagged: false
DefnId 2: Limit Is MinRequired: false
UserData: true
RequiredGroup: false
Output: false
Tagged: false
DataType: bool
Required: false
UserData: true
RequiredGroup: false
Output: false
Tagged: false
Required: false
UserData: true
RequiredGroup: false
Output: false
Tagged: false
__________
NodeType: Operation Change Target
Description: As part of an operation, if you can't take the current target, find a new one or give up.
Spoiler Arguments :
DefnId 0: Backup Amount
DataType: float
Required: true
UserData: true
RequiredGroup: false
Output: false
Tagged: false
DefnId 1: Failure AmountRequired: true
UserData: true
RequiredGroup: false
Output: false
Tagged: false
DataType: float
Required: true
UserData: true
RequiredGroup: false
Output: false
Tagged: false
DefnId 2: Fail on Invalid TeamRequired: true
UserData: true
RequiredGroup: false
Output: false
Tagged: false
DataType: bool
Required: false
UserData: true
RequiredGroup: false
Output: false
Tagged: false
DefnId 3: Required TagRequired: false
UserData: true
RequiredGroup: false
Output: false
Tagged: false
DataType: string
Required: false
UserData: true
RequiredGroup: false
Output: false
Tagged: false
Required: false
UserData: true
RequiredGroup: false
Output: false
Tagged: false
__________
NodeType: Contract Manager Decorator
Description: Manages a contract, can limit turns until it is run.
Spoiler Arguments :
DefnId 0: Contract
DataType: int
Required: true
UserData: false
RequiredGroup: true
Output: false
Tagged: false
DefnId 1: Multi-ContractsRequired: true
UserData: false
RequiredGroup: true
Output: false
Tagged: false
DataType: ID List
Required: true
UserData: false
RequiredGroup: true
Output: false
Tagged: false
DefnId 2: Turn LimitRequired: true
UserData: false
RequiredGroup: true
Output: false
Tagged: false
DataType: int
Required: true
UserData: true
RequiredGroup: false
Output: false
Tagged: false
DefnId 3: Block While RunningRequired: true
UserData: true
RequiredGroup: false
Output: false
Tagged: false
DataType: bool
Required: false
UserData: true
RequiredGroup: false
Output: false
Tagged: false
DefnId 4: Turns RemainingRequired: false
UserData: true
RequiredGroup: false
Output: false
Tagged: false
DataType: int
Required: false
UserData: true
RequiredGroup: false
Output: true
Tagged: false
Required: false
UserData: true
RequiredGroup: false
Output: true
Tagged: false
__________
NodeType: Operation Attack City
Description: As part of an operation, attack a city
Spoiler Arguments :
DefnId 0: Unused
DataType: int
Required: false
UserData: true
RequiredGroup: false
Output: false
Tagged: false
Required: false
UserData: true
RequiredGroup: false
Output: false
Tagged: false
__________
NodeType: Make Formation
Description: Create (or destroy) a formation of units [corps, armies]
Spoiler Arguments :
DefnId 0: Destroy Formations
DataType: bool
Required: false
UserData: true
RequiredGroup: true
Output: false
Tagged: false
DefnId 1: Combat UnitRequired: false
UserData: true
RequiredGroup: true
Output: false
Tagged: false
DataType: string
Required: true
UserData: true
RequiredGroup: true
Output: false
Tagged: false
DefnId 2: Civilian UnitRequired: true
UserData: true
RequiredGroup: true
Output: false
Tagged: false
DataType: string
Required: true
UserData: true
RequiredGroup: true
Output: false
Tagged: false
DefnId 3: Support UnitRequired: true
UserData: true
RequiredGroup: true
Output: false
Tagged: false
DataType: string
Required: true
UserData: true
RequiredGroup: true
Output: false
Tagged: false
DefnId 4: Naval UnitRequired: true
UserData: true
RequiredGroup: true
Output: false
Tagged: false
DataType: string
Required: true
UserData: true
RequiredGroup: true
Output: true
Tagged: false
Required: true
UserData: true
RequiredGroup: true
Output: true
Tagged: false
__________
NodeType: Protect Unit
Description: Keep a non-operation unit safe if its health is below specified fraction
Spoiler Arguments :
DefnId 0: Unit List
DataType: ID List
Required: false
UserData: false
RequiredGroup: false
Output: false
Tagged: false
DefnId 1: Damage PercentageRequired: false
UserData: false
RequiredGroup: false
Output: false
Tagged: false
DataType: float
Required: true
UserData: true
RequiredGroup: false
Output: false
Tagged: false
Required: true
UserData: true
RequiredGroup: false
Output: false
Tagged: false
__________
NodeType: City Attack
Description: Cities attack enemy units within range, with preferences as described (none required)
Spoiler Arguments :
DefnId 0: Preferred Type [of unit to attack]
DataType: string
Required: false
UserData: true
RequiredGroup: false
Output: false
Tagged: false
Required: false
UserData: true
RequiredGroup: false
Output: false
Tagged: false
__________
NodeType: Reserve Plot
Description: Reserve a city plot so that other trees will leave it alone
Spoiler Arguments :
DefnId 0: Plot to reserve
DataType: Map Point
Required: true
UserData: false
RequiredGroup: false
Output: false
Tagged: false
DefnId 1: CityRequired: true
UserData: false
RequiredGroup: false
Output: false
Tagged: false
DataType: int
Required: false
UserData: false
RequiredGroup: false
Output: false
Tagged: false
DefnId 2: ValueRequired: false
UserData: false
RequiredGroup: false
Output: false
Tagged: false
DataType: int
Required: false
UserData: false
RequiredGroup: false
Output: false
Tagged: false
DefnId 3: TagRequired: false
UserData: false
RequiredGroup: false
Output: false
Tagged: false
DataType: string
Required: false
UserData: true
RequiredGroup: false
Output: false
Tagged: false
Required: false
UserData: true
RequiredGroup: false
Output: false
Tagged: false
__________
NodeType: Operation Pillage
Description: Pillage nearby improvements and districts
Spoiler Arguments :
DefnId 0: Pillage Districts
DataType: bool
Required: false
UserData: true
RequiredGroup: false
Output: false
Tagged: false
DefnId 1: Pillage ImprovementsRequired: false
UserData: true
RequiredGroup: false
Output: false
Tagged: false
DataType: bool
Required: false
UserData: true
RequiredGroup: false
Output: false
Tagged: false
Required: false
UserData: true
RequiredGroup: false
Output: false
Tagged: false
__________
NodeType: Operation Siege City
Description: Pillage nearby improvements and districts [while surrounding a city]
Spoiler Arguments :
DefnId 0: Unused
DataType: int
Required: false
UserData: false
RequiredGroup: false
Output: false
Tagged: false
Required: false
UserData: false
RequiredGroup: false
Output: false
Tagged: false
__________
NodeType: Garrison City
Description: As part of an operation, garrison a unit in a friendly city
Spoiler Arguments :
DefnId 0: Unused
DataType: int
Required: false
UserData: false
RequiredGroup: false
Output: false
Tagged: false
Required: false
UserData: false
RequiredGroup: false
Output: false
Tagged: false
__________
NodeType: Is City Threatened
Description: Tell if city that is operation target is still threatened
Spoiler Arguments :
DefnId 0: Unused
DataType: int
Required: false
UserData: false
RequiredGroup: false
Output: false
Tagged: false
Required: false
UserData: false
RequiredGroup: false
Output: false
Tagged: false
__________
NodeType: Is At War
Description: Tell if player is at war
Spoiler Arguments :
DefnId 0: Minimum Number [of wars the player is in]
DataType: int
Required: false
UserData: true
RequiredGroup: false
Output: false
Tagged: false
DefnId 1: Include BarbarianRequired: false
UserData: true
RequiredGroup: false
Output: false
Tagged: false
DataType: bool
Required: false
UserData: true
RequiredGroup: false
Output: false
Tagged: false
DefnId 2: With Operation Target [only count wars that contain a targetted AI operation]Required: false
UserData: true
RequiredGroup: false
Output: false
Tagged: false
DataType: bool
Required: false
UserData: true
RequiredGroup: false
Output: false
Tagged: false
Required: false
UserData: true
RequiredGroup: false
Output: false
Tagged: false
__________
NodeType: Find Unit Targets
Description: Find places for all owned units to go
Spoiler Arguments :
DefnId 0: Nearest Owned City
DataType: bool
Required: false
UserData: true
RequiredGroup: false
Output: false
Tagged: false
DefnId 1: Needed DistrictRequired: false
UserData: true
RequiredGroup: false
Output: false
Tagged: false
DataType: DistrictList
Required: false
UserData: false
RequiredGroup: false
Output: false
Tagged: false
DefnId 2: Needs BuildingsRequired: false
UserData: false
RequiredGroup: false
Output: false
Tagged: false
DataType: BuildingTypesList
Required: false
UserData: false
RequiredGroup: false
Output: false
Tagged: false
DefnId 3: Contract ValueRequired: false
UserData: false
RequiredGroup: false
Output: false
Tagged: false
DataType: int
Required: false
UserData: false
RequiredGroup: false
Output: false
Tagged: false
Required: false
UserData: false
RequiredGroup: false
Output: false
Tagged: false
__________
NodeType: Upgrade Units
Description: Upgrade any upgradeable units
Spoiler Arguments :
DefnId 0: Can Delete [units selected for upgrades]
DataType: bool
Required: false
UserData: false
RequiredGroup: false
Output: false
Tagged: false
Required: false
UserData: false
RequiredGroup: false
Output: false
Tagged: false
Continued in next post...
Last edited: