ObjectiveObj
Condition(string type)
Required
type: Type of condition. The types are presented below.
Since the configuration is type specific, the configuration will be presented on a type by type basis.
The following scopes are available in all conditions.
Team(string team)
Optional(none)
team: Overrides the team it uses to test the condition to the named team.
- TRUE
The condition is always true, and is primarily for testing purposes.
- FALSE
This condition is always false, and is primarily for testing purposes.
- NOT
This condition inverts the condition inside it.
Condition(string type)
Required
Refer to Condtion() for more information.
- AND
This condition contains a list of subconditions which must ALL be TRUE before this condition becomes TRUE.
Condition(string type)
Multiple, at least One
Refer to Condition() for more information
- OR
This condition contains a list of subconditions of which one must be TRUE before this condition becomes TRUE.
Condition(string type)
Multiple, at least One
Refer to Condition() for more information
- Timer
Condition based on a timer.
Time(float mintime, float maxtime)
Required, Optional maxtime(mintime)
mintime: The minimum amount of time which must pass before the condition becomes TRUE.
maxtime: The maximum amount of time which can pass before the condition becomes TRUE.
The actual time is random between mintime and maxtime.
Var(string name)
Optional(none)
name: The name of a float var in which to store the seconds remaining
- TimeOfDay
Condition based on a the time of day.
Time(float time)
Required
time: When the time of day cycle (which is 0 to 1) passes through this time the condition becomes TRUE.
- InRegion
Condition which is TRUE when the amount of units in the region compared with the amount configured using the relational operator is TRUE. There are two main subtypes to this condition. If a tag is specfied then the condition checks the tag to see if it's in the region. If a tag is not specified then a type must be specified and the test is done on the types in the region.
Region(string region)
Required
region: Name of the region to check.
Tag(string tag)
Required if Type or Property not specified
tag: Name of the tag which must be in the region.
Percentage(float percentage)
Optional(100%)
percentage: Percentage of the objects in the tag to test against.
Amount(int amount)
Optional(relies on percentage)
amount: Number of objects in the tag to test against.
Operator(string operator)
Required
operator: Relational operator. See RelationalOperators for more information.
Relation(string relation)
Optional(none)
relation: Ally, Neutral or Enemy. If specified then the the condition tests the units from those related teams.
Combine(bool flag)
Optional(false)
flag: Whether to combine relations units when testing.
Type(string type)
Required if Tag or Proerty not specified.
type: May be * to denote all types.
Amount(int amount)
Optional(if tag specified)
amount: Number of units to test against.
Operator(string operator)
Optional(if tag specified)
operator: Relational operator. See RelationalOperators for more information.
Property(string property)
Required if Tag or Type not specified.
property: Property to test with.
Amount(int amount)
Optional(if tag specified)
amount: Number of units to test against.
Operator(string operator)
Optional(if tag specified)
operator: Relational operator. See RelationalOperators for more information.
- ThreatInRegion
Condition which is TRUE when the amount of threat in the region compared with the amount configured using the relational operator is TRUE.
Region(string region)
Required
region: Name of the region to check.
Relation(string relation)
Optional(none)
relation: Ally, Neutral or Enemy. If specified then the the condition uses the threats from the related teams.
Combine(bool flag)
Optional(false)
flag: Whether to combine relations units when testing.
ArmourClass(string class)
Optional(none)
class: Armour class to test against. If not speficied then the threat against any and all armour classes is tested.
Amount(int amount)
Optional(1)
amount: Amount of threat to test against. Threat is approximately the amount of damage per second.
Operator(string operator)
Optional
operator: Relational operator. See RelationalOperators for more information.
- TagCount
Condition which is TRUE when the number of objects in the tag compared with the number configured using the relational operator is TRUE.
Tag(string tag)
Optional(none)
tag: Name of the tag to test.
Percentage(float percentage)
Optional(100%)
percentage: Percentage of the objects in the tag to test against.
Amount(int amount)
Optional(relies on percentage)
amount: Number of objects in the tag to test against.
Operator(string operator)
Required
operator: Relational operator. See RelationalOperators for more information.
Var(string name)
Optional(none)
name: The name of an integer var in which to store the number of objects in the tag
- HaveTag
Condition which is TRUE when the number of objects in the tag compared with the number configured using the relational operator are on the team or are being carried by objects which are on the team is TRUE.
Tag(string tag)
Optional(none)
tag: Name of the tag to test.
Percentage(float percentage)
Optional(100%)
percentage: Percentage of the objects in the tag to test against.
Amount(int amount)
Optional(relies on percentage)
amount: Number of objects in the tag to test against.
Operator(string operator)
Required
operator: Relational operator. See RelationalOperators for more information.
Relation(string relation)
Optional(none)
relation: Ally, Neutral or Enemy. If specified then the the condition tests the amount of the tag in "possession" of related teams. This is not accumulative, each individually related team is tested.
- TagProximity
Condition which is TRUE when the proximity of the tag to the specified "thing" is less that the range.
SourceTag(string tag)
Required
tag: Name of the tag to test the proximity to.
Tag(string tag)
Required if Type or Property not specified.
tag: Name of the tag to test.
Percentage(float percentage)
Optional(100%)
percentage: Percentage of the objects in the tag to test against.
Amount(int amount)
Optional(relies on percentage)
amount: Number of objects in the tag to test against.
Operator(string operator)
Required
operator: Relational operator. See RelationalOperators for more information.
Type(string type)
Required if Tag or Proerty not specified.
type: May be * to denote all types.
Amount(int amount)
Optional(if tag specified)
amount: Number of units to test against.
Operator(string operator)
Optional(if tag specified)
operator: Relational operator. See RelationalOperators for more information.
Property(string property)
Required if Tag or Type not specified.
property: Property to test with.
Amount(int amount)
Optional(if tag specified)
amount: Number of units to test against.
Operator(string operator)
Optional(if tag specified)
operator: Relational operator. See RelationalOperators for more information.
- TagInTransport
Condition which is TRUE when the objects in the tag are inside transports. If there are no items in the tag then the condition is FALSE.
Tag(string tag)
Optional(none)
tag: Name of the tag to test.
Operator(string operator)
Required
operator: Relational operator. See RelationalOperators for more information.
This is not used, but is still required for the mean time. Use any operator is it is ignored.
- GuardingTag
Condition which is TRUE when any object in one tag is guarding any object in another tag.
Guarder(string tag)
Required
tag: The tag doing the guarding.
Guardee(string tag)
Required
tag: The tag being guarded.
- HaveType
Condition which is TRUE when the number of units of the type given compared with the amount configured using the relational operator is TRUE.
Relation(string relation)
Optional(none)
relation: Ally, Neutral or Enemy. If specified then the the condition becomes true when a relation has posession of the type.
Combine(bool flag)
Optional(false)
flag: Whether to combine relations units when testing.
Type(string type)
Required
type: Type to be checked. Can be * which denotes all types.
Amount(int amount)
Required
amount: Number of the type given to be test.
Operator(string operator)
Required
operator: Relational operator. See RelationalOperators for more information.
- ConstructingType
Condition which is TRUE when an object of specified type is under construction on this team.
Type(string type)
Required
type: Type to be checked.
- HaveMember
Condition which is TRUE when the number of team members compared with the amount configured using the relational operator is TRUE.
Relation(string relation)
Optional(none)
relation: Ally, Neutral or Enemy. If specified then the the condition tests related teams.
Combine(bool flag)
Optional(false)
flag: Whether to combine relations units before testing.
Amount(int amount)
Required
amount: Number of members to be tested.
Operator(string operator)
Required
operator: Relational operator. See RelationalOperators for more information.
- Resource
Condition which is TRUE when the operation between the amount of resource on this team (or related teams if specified)
Relation(string relation)
Optional(none)
relation: Ally, Enemy or Neutral. Relation to test against.
Combine(bool flag)
Optional(0)
flag: If set then combine the resource of the related teams, or if not set then test each team individually.
Amount(integer amount)
Required
amount: Amount of resource to test against.
Operator(string operator)
Required
operator: Relational operator. See RelationalOperators for more information.
- RelativeRelation
Condition which is TRUE when the statistic test between this team and each related team becomes TRUE. Examples:
- To have a condition that is TRUE when an enemy has more than half the number of units this team has. Statistic: Number, Relation: Enemy, Amount: 50%, Operator: >, Combine: 0
- To have a condition that is TRUE when all allies has less than double the threat this team has. Statistic: Threat, Relation: Ally, Amount: 200%, Operator: <, Combine: 1
Statistic(string statistic)
Required
statistic: statistic to test, which can be:
- Number
Number of units on the team.
- Threat
Total threat to all armour classes.
- Defense
Total number of hitpoints.
Relation(string relation)
Required
relation: Ally, Enemy or Neutral. Relation to test against.
Amount(float amount)
Optional(100%)
amount: Amount to modify this teams value before performing the test.
Operator(string operator)
Required
operator: Relational operator. See RelationalOperators for more information.
Combine(bool flag)
Optional(0)
flag: If set then combine the scores of the related teams, or if not set then test each team individually.
- Tally
Condition which is TRUE when the statistic test compared with the amount given becomes TRUE
Statistic(string statistic)
Required
statistic: statistic to test, which can be:
- Constructed
Number of units constructed.
- KillsSelf
Number of own units killed.
- KillsMisc
Number of misc objects killed. (objects not on teams)
- KillsAlly
Number of allied units killed.
- KillsNeutral
Number of neutral units killed.
- KillsEnemy
Number of enemy units killed.
- Losses
Number of units lost.
- Resource
Amount of resource collected.
Amount(integer amount)
Optional(0)
amount: Amount to compare against.
Type(string type)
Optional(none)
type: Only check the statistics of the given type.
Operator(string operator)
Required
operator: Relational operator. See RelationalOperators for more information.
Relation(string relation)
Optional(none)
relation: Ally, Enemy or Neutral. Relation to test against.
Combine(bool flag)
Optional(0)
flag: If set then combine the tally's of the related teams, or if not set then test each team individually.
- VarConstFloat(string var, string operator, float value)
Condition which becomes true when the relation with the give Var becomes true. The tests for this are always in the form var operator value.
var: Name of the var. This name MUST be resolvable when tests upon it are to be conducted. No tests will be conducted upon it until in the actual game.
operator: Relational operator. See RelationalOperators for more information.
value: Value to test var against.
- VarVarFloat(string var1, string operator, string var2)
Condition which becomes true when the relation with the give Var becomes true. The tests for this are always in the form var1 operator var2.
var1: Name of the var1. This name MUST be resolvable when tests upon it are to be conducted. No tests will be conducted upon it until in the actual game.
operator: Relational operator. See RelationalOperators for more information.
var2: Name of the var2. This name MUST be resolvable when tests upon it are to be conducted. No tests will be conducted upon it until in the actual game.
- VarConstInteger(string var, string operator, integer value)
Condition which becomes true when the relation with the give Var becomes true. The tests for this are always in the form var operator value.
var: Name of the var. This name MUST be resolvable when tests upon it are to be conducted. No tests will be conducted upon it until in the actual game.
operator: Relational operator. See RelationalOperators for more information.
value: Value to test var against.
- VarVarInteger(string var1, string operator, string var2)
Condition which becomes true when the relation with the give Var becomes true. The tests for this are always in the form var1 operator var2.
var1: Name of the var1. This name MUST be resolvable when tests upon it are to be conducted. No tests will be conducted upon it until in the actual game.
operator: Relational operator. See RelationalOperators for more information.
var2: Name of the var2. This name MUST be resolvable when tests upon it are to be conducted. No tests will be conducted upon it until in the actual game.
Action()
Required
Cmd(string command)
Multiple
command: Console command to be exucuted.
TeamCmd(string command)
Multiple
command: Console comand to be executed using the current team as a context.
CreateVarInteger(string var, integer initial, integer min, integer max)
Multiple, Optional min(integer min), max(integer max)
var: Name of the var to be created. Must be a team var, i.e. start with '@'.
initial: The inital value to give the var.
min: The minimum value this var can ever have.
max: The maximum value this var can ever have.
CreateVarFloat(string var, float initial, float min, float max)
Multiple, Optional min(float min), max(float max)
var: Name of the var to be created. Must be a team var, i.e. start with '@'.
initial: The initial value to give the var.
min: The minimum value this var can ever have.
max: The maximum value this var can ever have.
CreateVarString(string var, string initial)
Multiple
var: Name of the var to be created. Must be a team var, i.e. start with '@'.
initial: The initial value to give the var.
DeleteVar(string var)
Multiple
var: Name of the var to be deleted. Must be a team var, i.e. start with '@'.
Op()
See Op form more information.
NewObjective(string objective)
Multiple
objective: Name of objective type to give to the team.
NewRandomObjective()
Multiple
Give a new objective to the team picking randomly from the given list.
Add(string objective, float weighting)
Multiple
objective: Name of objective type to give to the team.
weighting: Weighting to give this objective relative to the others in the list.
CurrentObjectiveAbandoned(string objective)
Multiple
objective: Name of objective type to be abandonned (must be a current objective).
ObjectiveAbandoned(string objective)
Multiple
objective: Name of objective type to be abandonned (does not need to be a current objective).
Win()
Multiple
The team wins
Lose()
Multiple
The team loses
Move()
Multiple
Move tagged objects to a region (the centre of the region).
Tag(string tag)
Required
tag: Name of the tag to be moved.
Region(string region)
Required
region: Name of the region to be moved to.
Warp()
Multiple
Warps tagged objects to a region (the centre of the region).
Tag(string tag)
Required
tag: Name of the tag to be warped.
Region(string region)
Required
region: Name of the region to be warped to.
SpawnObjects()
Multiple
Spawns in objects at a region using a formation.
Formation(string formation)
Required
formation: Name of the formation to use when spawning in the objects.
Direction(float direction)
Required
direction: Direction to face the formation.
Region(string region)
Required
region: Region where the object(s) will be created.
Tag(string tag)
Optional
tag: Tag the new objects will be added to.
Random(bool random)
Optional(0)
random: Add the objects randomly into the formation.
Construct(bool flag)
Optional(FALSE)
flag: Should the spawned units be assigned a construct task.
AddType(string type, integer amount)
Multiple, Optional amount(1)
type: Name of the type to spawn in.
amount: Number of the type to spawn in.
UseOffMapObject()
Multiple
Use an offmap object (airstikes and mojos).
Region(string region)
Required
region: Region where off map object will be used.
Type(string type)
Requred
type: Type of the off map object which will be used.
SetTeam()
Multiple
Changes the team of objects in a particular tag.
Team(string team)
Optional(team which triggered the Action)
team: Name of team to change to.
Tag(string tag)
Required
tag: Tag to set the team of.
SelfDestruct()
Multiple
Self destruct all units in a tag, otherwise all units on the team.
Tag(string tag)
Optional(None)
tag: Tag to self destruct.
TriggerFX()
Multiple
Trigger an effect on all units in a tag.
Tag(string tag)
Required(None)
tag: Name of tag to use.
Effect(string effect)
Required(None)
effect: Effect to use.
SetUnitLimit(integer limit)
Optional(NONE)
limit - the new unit limit for this team
WallOperation()
Multiple
Used to perform various wall operations.
Tag(string tag)
Required()
tag: Tag containing the walls to be operated on. Non-walls will be ignored.
Operation(string op)
Required()
op: One of the following operations:
Deactivate - Make all walls deactivate but remember their links for later activation.
Activate - Make all walls activate using their deactivated links.
AutoConnect - Automatically connect to all other walls in area using the WallIdle idle task.
Recycle()
Multiple
All units on the team which can recycle are recycled.
SetTactical()
Multiple
Changes the tactical modifiers of objects in a particular tag.
Tag(string tag)
Required
tag: Tag to set the team of.
ModifierSettings()
Required
Set(string modifer, string value)
Multiple
modifer: tactical modifier to set the value of.
settings: tactical setting of the modifer.
GameMessage()
Multiple
Triggers a game message.
Message(string message)
Required
message: The GameMessage to be triggered.
RegionMessage()
Multiple
Triggers a location message.
Message(string message)
Required
message: The LocationMessage to be triggered.
Region(string region)
Required
region: The message will be triggered at the mid point of this region.
TagMessage()
Multiple
Triggers a location message.
Message(string message)
Required
message: The LocationMessage to be triggered.
Tag(string tag)
Required
tag: The message will be triggered at the mid point of this tag. If the tag has no objects in it which are on the map, then the message is not triggered.
CancelGameMessage()
Multiple
Cancels a game message. This is useful to stop a sound effect or stream.
Message(string message)
Required
message: The GameMessage to be canceled.
CancelLocationMessage()
Multiple
Cancels a location message. This is useful to stop a sound effect or stream and should be used to cancel messages trigged via RegionMessage and TagMessage.
Message(string message)
Required
message: The location message to be canceled.
TriggerTeamRadio(string event)
Multiple
If no Type, Region, Tag are supplied then are generalized TeamRadio event is generated.
event: Name of the team radio event to generate.
Type(string type)
Optional(none)
Makes the Radio Event use the newest unit of the given type on the team.
type: Name of the type to use.
Region(string region)
Optional(none)
Makes the Radio Event the location of the region.
region: Name of the region to use.
Tag(string tag)
Optional(none)
Makes the Radio Event use the location of the tag.
tag: Name of the tag to use.
DisplayObjective(string action, string objective)
Multiple
action: action to perform
objective: name of the display objective to perform the action on.
The actions available are:
- Add
Add the objective to the display objectives for this team.
When adding a display objective the following can be specified inside the scope.
Text(string text)
Required
text: The text to use for the display objective.
Param(string param)
Multiple
param: Text to insert as a parameter or a reference to a var.
- Remove
Remove the objective from the display objectives for this team.
- Complete
Complete the display objective for this team.
- Abandon
Abandon the display objective for this team.
- Dump
Dump the display objective as a console message.
AI Specific Actions
ExecuteScript(string name, string script, integer weighting)
Multiple, Optional weighting(100)
name: Give the instance of the script a name. All var references use this name and this name is used to kill the script should the need arise.
script: Name of the script to executes. If the script name is "Unique" then the this script will be assigned a unique name. This allows the same objective action to be used repeatedly, but does not allow referal to that script later on should you need to Kill that script or change its weighting. Alternatively you can use the '*' character as the last character of the script name and it will replace the '*' with a unique identifier allowing more useful names than Unique.
weighting: Initial weighting to give this script.
The subscope of ExecuteScript is appended to the script allowing parameter passing to occur via the Op() command.
KillScript(string script)
Multiple
script: Name of script to kill.
SetScriptWeighting(string script, integer weighting)
Multiple
script: Name of the script to set the weighting of.
weighting: Weighting to assign the script.
AddBase(string name, string base, integer weighting)
Multiple, Optional weighting(100)
name: The instance name of the base. Use this name when referring to the base in other actions.
base: Name of the configured base to add.
weighting: Initial weighting to give this base.
Region(string region)
Optional(team's start region)
region: Region to center this base around.
Orientation(string orientation)
Optional(towards the centre of the map)
orientation: Compass angle to orient the base.
RemoveBase(string name)
Multiple
name: Name of the base to remove.
SetBaseState(string name, string state)
Multiple
name: Name of the base to set the state of.
state: Name of the state to change to.
SetBaseWeighting(string name, integer weighting)
Multiple
name: Name of the base to set the weighting of.
weighting: Weighting to assign the base.
SetBaseOrdererWeighting(string name, string orderer, integer weighting)
Multiple
name: Name of the base which contains the orderer.
orderer: Name of the orderer to assign the weighting of.
weighting: Weighting to assign the base.
AssignBaseConstructors(string base)
Multiple
base: Name of the base to assign constructors to.
Tag(string tag)
Optional(none)
tag: Only assign constructors which are in this tag.
AssignBaseUnits(string base)
Multiple
base: Name of the base to assign units to.
Tag(string tag)
Optional(none)
tag: Only assign units which are in this tag.
HighlightConstruction(string type)
Optional
Disables all object types on all construction menus except "type", and highlights it.
UnhighlightConstruction(string type)
Optional
Reverses the effects of HighlightConstruction.
Animate
Multiple
Starts an animation on the specified tag.
Tag(string tag)
Required
tag: Play animation on all objects in this tag.
Cycle(string cycle)
Required
cycle: Play this animation cycle.
Cineractive()
Multiple
Enters cineractive mode. See Cineractive.
Debriefing(string name)
Multiple
Runs a debriefing. See DefineDebriefing.
name: Name of the debriefing to execute.
StartVoiceOver(string name, string file)
Multiple, name required, file required
name: Name of voice over.
file: Filename of voice over.
Creates and plays a named voice over stream. The file plays as a 2D sound.
StopVoiceOver(string name)
Multiple, name required
name: Name of voice over.
Stops a previously started voice over.