Retail SEXPs
From FreeSpace Wiki
This page is quick a reference of SEXPs available in the retail version of FRED. To see the list of SEXPs that have been added, moved or modified by the SCP, go to the SCP SEXPs page. For tips and examples for how to properly use a SEXP when building missions, as well as warnings about potential pitfalls, follow the link to the detail page for the SEXP you are interested in.
Contents
- 1 Objectives
- 1.1 is-destroyed-delay
- 1.2 is-subsystem-destroyed-delay
- 1.3 is-disabled-delay
- 1.4 Is-disarmed-delay
- 1.5 has-docked-delay
- 1.6 has-undocked-delay
- 1.7 has-arrived-delay
- 1.8 has-departed-delay
- 1.9 are-waypoints-done-delay
- 1.10 ship-type-destroyed
- 1.11 percent-ships-departed
- 1.12 percent-ships-destroyed
- 1.13 depart-node-delay
- 1.14 destroyed-or-departed-delay
- 2 Time
- 3 Logical
- 4 Arithmetic
- 5 Status
- 5.1 is-ship-visible
- 5.2 is-cargo-known-delay
- 5.3 cap-subsys-cargo-known-delay
- 5.4 has-been-tagged-delay
- 5.5 is-tagged
- 5.6 num-kills
- 5.7 num-type-kills
- 5.8 num-class-kills
- 5.9 shield-recharge-pct
- 5.10 engine-recharge-pct
- 5.11 weapon-recharge-pct
- 5.12 shield-quad-low
- 5.13 secondary-ammo-pct
- 5.14 is-secondary-selected
- 5.15 is-primary-selected
- 5.16 shields-left
- 5.17 hits-left
- 5.18 hits-left-subsystem
- 5.19 distance
- 5.20 is-ship-visible
- 5.21 team-score
- 5.22 time-elapsed-last-order
- 5.23 skill-level-at-least
- 5.24 num-players
- 5.25 special-warp-dist
- 6 Change
- 6.1 modify-variable
- 6.2 special-warpout-name
- 6.3 do-nothing
- 6.4 add-goals
- 6.5 clear-goals
- 6.6 change-iff
- 6.7 protect-ship
- 6.8 unprotect-ship
- 6.9 beam-protect-ship
- 6.10 beam-unprotect-ship
- 6.11 send-message
- 6.12 self-destruct
- 6.13 end-campaign
- 6.14 sabotage-subsystem
- 6.15 repair-subsystem
- 6.16 set-subsystem-strength
- 6.17 invalidate-goal
- 6.18 validate-goal
- 6.19 send-random-message
- 6.20 transfer-cargo
- 6.21 exchange-cargo
- 6.22 good-rearm-time
- 6.23 allow-ship
- 6.24 allow-weapon
- 6.25 break-warp
- 6.26 fix-warp
- 6.27 never-warp
- 6.28 allow-warp
- 6.29 good-secondary-time
- 6.30 ship-invisible
- 6.31 ship-visible
- 6.32 ship-invulnerable
- 6.33 ship-vulnerable
- 6.34 red-alert
- 6.35 jettison-cargo-delay
- 6.36 fire-beam
- 6.37 beam-free
- 6.38 beam-free-all
- 6.39 beam-lock
- 6.40 beam-lock-all
- 6.41 turret-free
- 6.42 turret-free-all
- 6.43 turret-lock
- 6.44 turret-lock-all
- 6.45 add-remove-escort
- 6.46 awacs-set-range
- 6.47 send-message-list
- 6.48 cap-waypoint-speed
- 6.49 ship-guardian
- 6.50 ship-no-guardian
- 6.51 ship-vanish
- 6.52 turret-tagged-only
- 6.53 turret-tagged-clear
- 6.54 subsys-set-random
- 6.55 supernova-start
- 6.56 cargo-no-deplete
- 7 Conditionals
- 8 Debugging
- 9 Ai goals
- 9.1 ai-chase
- 9.2 ai-dock
- 9.3 ai-undock
- 9.4 ai-warp-out
- 9.5 ai-waypoints
- 9.6 ai-waypoints-once
- 9.7 ai-destroy-subsystem
- 9.8 ai-disable-ship
- 9.9 ai-disarm-ship
- 9.10 ai-guard
- 9.11 ai-chase-any
- 9.12 ai-evade-ship
- 9.13 ai-stay-near-ship
- 9.14 ai-keep-safe-distance
- 9.15 ai-ignore
- 9.16 ai-stay-still
- 9.17 ai-play-dead
- 10 Event/Goals
- 11 Training
- 11.1 key-pressed
- 11.2 key-reset
- 11.3 targeted
- 11.4 speed
- 11.5 facing
- 11.6 facing-waypoint
- 11.7 order
- 11.8 waypoint-missed
- 11.9 waypoint-twice
- 11.10 path-flown
- 11.11 training-msg
- 11.12 flash-hud-gauge
- 11.13 special-check
- 11.14 secondaries-depleted
- 11.15 set-training-context-fly-path
- 11.16 set-training-context-speed
Objectives
is-destroyed-delay
Is destroyed delay (Boolean operator) Becomes true <delay> seconds after all specified ships have been destroyed. Returns a boolean value; Takes 2 or more arguments: 1: Time delay in seconds (see above). Rest: Name of ship (or wing) to check status of.
is-subsystem-destroyed-delay
Is subsystem destroyed delay (Boolean operator) Becomes true <delay> seconds after the specified subsystem of the specified ship is destroyed. Returns a boolean value; Takes 3 arguments: 1: Name of ship the subsystem we are checking is on. 2: The name of the subsystem we are checking status of. 3: Time delay in seconds (see above).
is-disabled-delay
Is disabled delay (Boolean operator) Becomes true <delay> seconds after the specified ship(s) are disabled. A ship is disabled when all of it's engine subsystems are destroyed. All ships must be diabled for this function to return true. Returns a boolean value; Takes 2 or more arguments: 1: Time delay is seconds (see above). Rest: Names of ships to check disabled status of.
Is-disarmed-delay
Is disarmed delay (Boolean operator) Becomes true <delay> seconds after the specified ship(s) are disarmed. A ship is disarmed when all of it's turret subsystems are destroyed. All ships must be disarmed for this function to return true. Returns a boolean value; Takes 2 or more arguments: 1: Time delay is seconds (see above). Rest: Names of ships to check disarmed status of.
has-docked-delay
Has docked delay (Boolean operator) Becomes true <delay> seconds after the specified ships have docked the specified number of times. Returns a boolean value; Takes 4 arguments: 1: The name of the docker ship 2: The name of the dockee ship 3: The number of times they have to have docked 4: Time delay in seconds (see above).
has-undocked-delay
Has undocked delay (Boolean operator) Becomes true <delay> seconds after the specified ships have undocked the specified number of times. Returns a boolean value; Takes 4 arguments: 1: The name of the docker ship 2: The name of the dockee ship 3: The number of times they have to have undocked 4: Time delay in seconds (see above).
has-arrived-delay
Has arrived delay (Boolean operator) Becomes true <delay> seconds after the specified ship(s) have arrived into the mission Returns a boolean value; Takes 2 or more arguments: 1: Time delay in seconds (see above). Rest: Name of ship (or wing) we want to check has arrived.
has-departed-delay
Has departed delay (Boolean operator) Becomes true <delay> seconds after the specified ship(s) or wing(s) have departed from the mission by warping out. If any ship was destroyed, this operator will never be true. Returns a boolean value; Takes 2 or more arguments: 1: Time delay in seconds (see above). Rest: Name of ship (or wing) we want to check has departed.
are-waypoints-done-delay
Waypoints done delay (Boolean operator) Becomes true <delay> seconds after the specified ship has completed flying the specified waypoint path. Returns a boolean value; Takes 3 arguments: 1: Name of ship we are checking. 2: Waypoint path we want to check if ship has flown. 3: Time delay in seconds (see above).
ship-type-destroyed
Ship Type Destroyed (Boolean operator) Becomes true when the specified percentage of ship types in this mission have been destroyed. The ship type is a generic type such as fighter/bomber, transport, etc. Fighters and bombers count as the same type. Returns a boolean value; Takes 2 arguments: 1: Percentage of ships that must be destroyed. 2: Ship type to check for.
percent-ships-departed
percent-ships-departed Boolean function which returns true if the percentage of ships in the listed ships and wings which have departed is greater or equal to the given percentage. For wings, all ships of all waves are used for calculation for the total possible ships to depart. Takes 2 or more arguments: 1: Percentge of departed ships at which this function will return true. 2+: List of ships/wing whose departure status should be determined.
percent-ships-destroyed
percent-ships-destroyed Boolean function which returns true if the percentage of ships in the listed ships and wings which have been destroyed is greater or equal to the given percentage. For wings, all ships of all waves are used for calculation for the total possible ships to be destroyed. Takes 2 or more arguments: 1: Percentge of destroyed ships at which this function will return true. 2+: List of ships/wing whose destroyed status should be determined.
depart-node-delay
depart-node-delay Returns true N seconds after the listed ships depart, if those ships depart within the radius of the given jump node. The delay value is given in seconds. Takes 3 or more arguments: 1: Delay in seconds after the last ship listed departed before this expression can return true. 2: Name of a jump node 3+: List of ships to check for departure within radius of the jump node
destroyed-or-departed-delay
destroyed-or-departed-delay Returns true N seconds after all the listed ships or wings have been destroyed or have departed. Takes 2 or more arguments: 1: Delay in seconds after the last ship/wing is destroyed or departed this expression can return true. 2+: Name of a ship or wing
Time
time-ship-destroyed
Time ship destroyed (Time operator) Returns the time the specified ship was destroy. Returns a numeric value; Takes 1 argument: 1: Name of ship we want to check.
time-ship-arrived
Time ship arrived (Time operator) Returns the time the specified ship arrived into the mission. Returns a numeric value; Takes 1 argument: 1: Name of ship we want to check.
time-ship-departed
Time ship departed (Time operator) Returns the time the specified ship departed the mission by warping out. Being destroyed doesn't count departed. Returns a numeric value; Takes 1 argument: 1: Name of ship we want to check.
time-wing-destroyed
Time wing destroyed (Time operator) Returns the time the specified wing was destroy. Returns a numeric value; Takes 1 argument: 1: Name of wing we want to check.
time-wing-arrived
Time wing arrived (Time operator) Returns the time the specified wing arrived into the mission. Returns a numeric value; Takes 1 argument: 1: Name of wing we want to check.
time-wing-departed
Time wing departed (Time operator) Returns the time the specified wing departed the mission by warping out. All ships in the wing have to have warped out. If any are destroyed, the wing can never be considered departed. Returns a numeric value; Takes 1 argument: 1: Name of ship we want to check.
mission-time
Mission time (Time operator) Returns the current time into the mission. Returns a numeric value.
time-docked
Time docked (Time operator) Returns the time the specified ships docked. Returns a numeric value; Takes 3 arguments: 1: The name of the docker ship. 2: The name of the dockee ship. 3: The number of times they must have docked to be true.
time-undocked
Time undocked (Time operator) Returns the time the specified ships undocked. Returns a numeric value; Takes 3 arguments: 1: The name of the docker ship. 2: The name of the dockee ship. 3: The number of times they must have undocked to be true.
Logical
true
True (Boolean operator) A true boolean state Returns a boolean value.
false
False (Boolean operator) A false boolean state Returns a boolean value.
and
And (Boolean operator) And is true if all of its arguments are true. Returns a boolean value. Takes 2 or more boolean arguments.
and-in-sequence
And in sequence (Boolean operator) Returns true if all of its arguments have become true in the order they are listed in. Returns a boolean value. Takes 2 or more boolean arguments.
or
Or (Boolean operator) Or is true if any of its arguments are true. Returns a boolean value. Takes 2 or more boolean arguments.
not
Not (Boolean operator) Returns opposite boolean value of argument (True becomes false, and false becomes true). Returns a boolean value; Takes 1 boolean argument.
=
Equals (Boolean operator) Is true if all of it's arguments are equal. Returns a boolean value; Takes 2 or more numeric arguments.
>
Greater than (Boolean operator) True if first argument is greater than the second argument. Returns a boolean value; Takes 2 numeric arguments.
<
Less than (Boolean operator) True if first argument is less than the second argument. Returns a boolean value; Takes 2 numeric arguments.
is-iff
Is IFF (Boolean operator) True if ship{s} are all of the specified team. Returns a boolean value; Takes 2 or more arguments: /t1: Team ("friendly", "hostile" or "unknown"). Rest: Name of ship to check.
has-time-elapsed
Has time elapsed (Boolean operator) Becomes true when the specified amount of time has elapsed (Mission time becomes greater than the specified time). Returns a boolean value; Takes 1 numeric argument: 1: The amount of time in seconds.
Arithmetic
+
+ Plus (Arithmetic operator) Adds numbers and returns results. Returns a number. Takes 2 or more numeric arguments.
-
- Minus (Arithmetic operator) Subtracts numbers and returns results. Returns a number. Takes 2 or more numeric arguments.
*
* Multiply (Arithmetic operator) Multiplies numbers and returns results. Returns a number. Takes 2 or more numeric arguments.
/
/ Divide (Arithmetic operator) Divides numbers and returns results. Returns a number. Takes 2 or more numeric arguments.
mod
mod Mod (Arithmetic operator) Divides numbers and returns the remainer. Returns a number. Takes 2 or more numeric arguments.
rand
rand Rand (Arithmetic operator) Gets a random number. This number will not change on successive calls to this sexp. Returns a number. Takes 2 or 3 numeric arguments... 1: Low range of random number. 2: High range of random number. 3: (optional) A seed to use when generating numbers. (Setting this to 0 is the same as having no seed at all)
Status
is-ship-visible
is-ship-visible is-ship-visible Check whether ship is visible on Player's radar Single Player Only! Returns 0 - not visible, 1 - partially visible, 2 - fully visible. 1: Name of ship to check
is-cargo-known-delay
is-cargo-known-delay Is cargo known (delay) (Boolean operator) Returns true if all of the specified objects' cargo is known by the player (i.e. they have scanned each one. Returns a boolean value after seconds when all cargo is known. Takes 2 or more arguments... 1: Delay in seconds after which sexpression will return true when all cargo scanned. Rest: Names of ships/cargo to check for cargo known..
cap-subsys-cargo-known-delay
cap-subsys-cargo-known-delay Is capital ship subsystem cargo known (delay) (Boolean operator) Returns true if all of the specified subsystem cargo is known by the player. Note: Cargo must be explicitly named. Returns a boolean value after seconds when all cargo is known. Takes 3 or more arguments... 1: Delay in seconds after which sexpression will return true when all cargo scanned. 2: Name of capital ship Rest: Names of subsystems to check for cargo known..
has-been-tagged-delay
has-been-tagged-delay Has ship been tagged (delay) (Boolean operator) Returns true if all of the specified ships have been tagged. Returns a boolean value after seconds when all ships have been tagged. Takes 2 or more arguments... 1: Delay in seconds after which sexpression will return true when all cargo scanned. Rest: Names of ships to check if tagged..
is-tagged
is_tagged is-tagged Returns whether a given ship is tagged or not
num-kills
num_kills num-kills Returns the # of kills a player has. The ship specified in the first field should be the ship the player is in. So, for single player, this would be Alpha 1. For multiplayer, it can be any ship with a player in it. If, at any time there is no player in a given ship, this sexpression will return 0
num-type-kills
num_type_kills num-type-kills Returns the # of kills a player has on a given ship type (fighter, bomber, cruiser, etc). The ship specified in the first field should be the ship the player is in. So, for single player, this would be Alpha 1. For multiplayer, it can be any ship with a player in it. If, at any time there is no player in a given ship, this sexpression will return 0
num-class-kills
num_class_kills num-class-kills Returns the # of kills a player has on a specific ship class (Ulysses, Hercules, etc). The ship specified in the first field should be the ship the player is in. So, for single player, this would be Alpha 1. For multiplayer, it can be any ship with a player in it. If, at any time there is no player in a given ship, this sexpression will return 0
shield-recharge-pct
shield-recharge-pct shield-recharge-pct Returns a percentage from 0 to 100 1: Ship name
engine-recharge-pct
engine-recharge-pct engine-recharge-pct Returns a percentage from 0 to 100 1: Ship name
weapon-recharge-pct
weapon-recharge-pct weapon-recharge-pct Returns a percentage from 0 to 100 1: Ship name
shield-quad-low
shield-quad-low shield-quad-low Returns true if the specified ship has a shield quadrant below the specified threshold percentage 1: Ship name 2: Percentage
secondary-ammo-pct
secondary-ammo-pct secondary-ammo-pct Returns the percentage of ammo remaining in the specified bank (0 to 100) 1: Ship name 2: Bank to check (0, 1, 2 and 3 are legal banks. 4 will return the cumulative average for all banks)
is-secondary-selected
is-secondary-selected is-secondary-selected Returns true if the specified bank is selected (0 .. num_banks - 1) 1: Ship name 2: Bank to check (0 .. num_banks - 1)
is-primary-selected
is-primary-selected is-primary-selected Returns true if the specified bank is selected (0 .. num_banks - 1) 1: Ship name 2: Bank to check (0 .. num_banks - 1)
shields-left
shields-left Shields left (Status operator) Returns the current level of the specified ship's shields as a percentage. Returns a numeric value. Takes 1 argument... 1: Name of ship to check.
hits-left
hits-left Hits left (Status operator) Returns the current level of the specified ship's hull as a percentage. Returns a numeric value. Takes 1 argument... 1: Name of ship to check.
hits-left-subsystem
hits-left-subsystem Hits left subsystem (Status operator) Returns the current level of the specified ship's subsystem integrity as a percentage. Returns a numeric value. Takes 1 argument... 1: Name of ship to check. 2: Name of subsystem on ship to check.
distance
distance Distance (Status operator) Returns the distance between two objects. These objects can be either a ship, a wing, or a waypoint. When a wing or team is given (for either argument) the answer will be the shortest distance. Returns a numeric value. Takes 2 arguments... 1: The name of one of the objects. 2: The name of the other object.
is-ship-visible
is-ship-visible is-ship-visible Check whether ship is visible on Player's radar Single Player Only! Returns 0 - not visible, 1 - partially visible, 2 - fully visible. 1: Name of ship to check
team-score
team-score team-score Get the score of a multi team vs team game. 1: Team index (1 for team 1 and 2 for team 2)
time-elapsed-last-order
time-elapsed-last-order Last order time (Status operator) Returns true if seconds have elapsed since one or more ships have received a meaningful order from the player. A meaningful order is currently any order that is not the warp out order. Returns a boolean value. Takes 2 or more arguments... 1: Time in seconds that must elapse. Rest: Name of ship or wing to check for having received orders.
skill-level-at-least
skill-level-at-least Skill level at least (Boolean operator) Returns true if the player has selected the given skill level or higher. Returns a boolean value. Takes 1 argument... 1: Name of the skill level to check.
num-players
num-players Num players (Status operator) Returns the current number of players (multiplayer) playing in the current mission. Returns a numeric value. Takes no arguments.
special-warp-dist
special-warp-dist special-warp-dist Returns distance to the plane of the knossos device in percent length of ship (ie, 100 means front of ship is 1 ship length from plane of knossos device) 1: Ship name
Change
modify-variable
modify-variable Modify-variable (Misc. operator) Modifies variable to specified value Takes 2 arguments... 1: Name of Variable. 2: Value to be set.
special-warpout-name
special-warpout-name special-warpout-name Sets the name of the knossos device to be used for warpout 1: Ship name to exit 2: Name of knossos device
do-nothing
do-nothing Do-nothing (Action operator) Does nothing. This is used as the default for any required action arguments of an operator.
add-goals
add-goal Add goal (Action operator) Adds a goal to a ship or wing. Takes 2 arguments... 1: Name of ship or wing to add goal to. 2: Goal to add.
clear-goals
clear-goals Clear goals (Action operator) Clears the goals for the specified ships and/or wings. Takes 1 or more arguments... All: Name of ship or wing.
change-iff
change-iff Change IFF (Action operator) Sets the specified ship(s) or wing(s) to the specified team. Takes 2 or more arguments... 1: Team to change to ("friendly", "hostile" or "unknown"). Rest: Name of ship or wing to change team status of.
protect-ship
protect-ship Protect ship (Action operator) Protects a ship from being attacked by any enemy ship. Any shipthat is protected will not come under enemy fire. Takes 1 or more arguments... All: Name of ship(s) to protect.
unprotect-ship
unprotect-ship Unprotect ship (Action operator) Unprotects a ship from being attacked by any enemy ship. Any shipthat is not protected can come under enemy fire. This function is the oppositeof protect-ship. Takes 1 or more arguments... All: Name of ship(s) to protect.
beam-protect-ship
beam-protect-ship Beam Protect ship (Action operator) Protects a ship from being attacked with beam weapon. Any shipthat is beam protected will not come under enemy beam fire. Takes 1 or more arguments... All: Name of ship(s) to protect.
beam-unprotect-ship
beam-unprotect-ship Beam Unprotect ship (Action operator) Unprotects a ship from being attacked with beam weapon. Any shipthat is not beam protected can come under enemy beam fire. This function is the oppositeof beam-protect-ship. Takes 1 or more arguments... All: Name of ship(s) to protect.
send-message
send-message Send message (Action operator) Sends a message to the player. Can be send by a ship, wing, or special source. To send it from a special source, make the first character of the first argument a "#".
Takes 3 arguments... 1: Name of who the message is from. 2: Priority of message ("Low", "Normal" or "High"). 3: Name of message (from message editor).
self-destruct
self-destruct Self destruct (Action operator) Causes the specified ship(s) to self destruct. Takes 1 or more arguments... All: Name of ship to self destruct.
end-campaign
end-campaign end-campaign Ends the builtin campaign. Should only be used by the main FreeSpace campaign
Takes 1 optional argument 1: End Campaign even if the player is dead (optional; defaults to true)
sabotage-subsystem
sabotage-subsystem Sabotage subystem (Action operator) Reduces the specified subsystem integrity by the specified percentage.If the percntage strength of the subsystem (after completion) is less than 0%,subsystem strength is set to 0%.
Takes 3 arguments... 1: Name of ship subsystem is on. 2: Name of subsystem to sabotage. 3: Percentage to reduce subsystem integrity by.
repair-subsystem
repair-subsystem Repair Subystem (Action operator) Increases the specified subsystem integrity by the specified percentage.If the percntage strength of the subsystem (after completion) is greater than 100%,subsystem strength is set to 100%. Takes 4 arguments... 1: Name of ship subsystem is on. 2: Name of subsystem to repair. 3: Percentage to increase subsystem integrity by. 4: Repair turret submodel. Optional argument that defaults to true.
set-subsystem-strength
set-subsystem-strength Set Subsystem Strength (Action operator) Sets the specified subsystem to the the specified percentage.If the percentage specified is < 0, strength is set to 0. If the percentage is > 100 % the subsystem strength is set to 100%. Takes 3 arguments... 1: Name of ship subsystem is on. 2: Name of subsystem to set strength. 3: Percentage to set subsystem integrity to. 4: Repair turret submodel. Optional argument that defaults to true.
invalidate-goal
invalidate-goal Invalidate goal (Action operator) Makes a mission goal invalid, which causes it to not show up on mission goals screen, or be evaluated. Takes 1 or more arguments... All: Name of mission goal to invalidate.
validate-goal
validate-goal Validate goal (Action operator) Makes a mission goal valid again, so it shows up on mission goals screen. Takes 1 or more arguments... All: Name of mission goal to validate.
send-random-message
send-random-message Send random message (Action operator) Sends a random message to the player from those supplied. Can be send by a ship, wing, or special source. To send it from a special source, make the first character of the first argument a "#". Takes 3 or more arguments... 1: Name of who the message is from. 2: Priority of message ("Low", "Normal" or "High"). Rest: Name of message (from message editor).
transfer-cargo
transfer-cargo Transfer Cargo (Action operator) Transfers the cargo from one ship to another ship. Takes 2 arguments... 1: Name of ship that cargo is being transferred from. 2: Name of ship that cargo is being transferred to.
exchange-cargo
exchange-cargo Exchange Cargo (Action operator) Exchanges the cargos of two ships. If one of the two ships contains no cargo, the cargo is transferred instead. Takes 2 arguments... 1: Name of one of the ships. 2: Name of the other ship.
good-rearm-time
good-rearm-time Good rearm time (Action operator) Informs the game logic that right now is a good time for a given team to attempt to rearm their ships. The time parameter specified how long the "good time" will last. Takes 2 arguments... 1: Team Name 2: Time in seconds rearm window should last
allow-ship
allow-ship Allow ship (Action operator) This operator makes the given ship type available to the Terran team. Players will be able to have ships of this type in their starting wings in all future missions of this campaign. Takes 1 argument... 1: Name of ship type (or ship class) to allow.
allow-weapon
allow-weapon Allow weapon (Action operator) This operator makes the given weapon available to the Terran team. Players will be able to equip ships with in all future missions of this campaign. Takes 1 argument... 1: Name of weapon (primary or secondary) to allow.
break-warp
break-warp break-warp Break the warp drive on the specified ship. A broken warp drive can be repaired by a repair ship. Takes 1 or more arguments... All: List of ships to break the warp drive on
fix-warp
fix-warp fix-warp Fixes a broken warp drive instantaneously. This option applies to warp drives broken with the break-warp sepxression. Takes 1 or more arguments... All: List of ships whose warp drive should be fixed
never-warp
never-warp never-warp Never allows a ship to warp out. When this sexpression is used, the given ships will never be able to warp out. The warp drive cannot be repaired. Takes 1 or more arguments... All: List of ships whose are not allowed to warp out under any condition
allow-warp
allow-warp allow-warp Allows a ship which was previously not allowed to warp out to do so. When this sexpression is used, the given ships will be able to warp out again. Takes 1 or more arguments... All: List of ships whose are allowed to warp out
good-secondary-time
good-secondary-time Set preferred secondary weapons This sexpression is used to inform the AI about preferred secondary weapons to fire during combat. When this expression is evaulated, any AI ships of the given team prefer to fire the given weapon at the given ship. (Preferred over other secondary weapons)
Takes 4 argument... 1: Team name which will prefer firing given weapon 2: Maximum number of this type of weapon above team can fire. 3: Weapon name (list includes only the valid weapons for this expression 4: Ship name at which the above named team should fire the above named weapon.
ship-invisible
ship-invisible ship-invisible Causes the ships listed in this sexpression to be invisible to player sensors. Takes 1 or more arguments... 1+: Name of ships to make invisible to sensors.
ship-visible
ship-visible ship-visible Causes the ships listed in this sexpression to be visible with player sensors. Takes 1 or more arguments... 1+: Name of ships to make visible to sensors.
ship-invulnerable
ship-invulnerable ship-invulnerable Causes the ships listed in this sexpression to be invulnerable to weapons. Use with caution!!!! Takes 1 or more arguments... 1+: Name of ships to make invulnerable to weapons.
ship-vulnerable
ship-vulnerable ship-vulnerable Causes the ship listed in this sexpression to be vulnerable to weapons. Takes 1 or more arguments... 1+: Name of ships to make vulnerable to weapons.
red-alert
red-alert red-alert Causes Red Alert status in a mission. This function ends the current mission, and moves to the next mission in the campaign under red alert status. There should only be one branch from a mission that uses this expression Takes no arguments.
jettison-cargo-delay
jettison-cargo-delay jettison-cargo-delay Causes a cargo carrying ship to jettison its cargo without the undocking procedure. Takes 2 or more arguments... 1: Ship to jettison cargo 2: Delay after which to jettison cargo (note that this isn't actually used) Rest (optional): Cargo to jettison. If no optional arguments are specified, the ship jettisons all cargo.
fire-beam
fire-beam beam-fire Fire a beam weapon from a specified subsystem 1: Ship which will be firing 2: Turret which will fire the beam (note, this turret must have at least 1 beam weapon on it) 3: Ship which will be targeted Use add-data to add a specific subsystem to target on the specified target ship
beam-free
beam-free beam-free Sets one or more beam weapons to allow firing for a given ship 1: Ship to be operated on 2, 3, etc : List of turrets to activate
beam-free-all
beam-free-all beam-free-all Sets all beam weapons on the specified ship to be active
beam-lock
beam-lock beam-lock Sets one or more beam weapons to NOT allow firing for a given ship 1: Ship to be operated on 2, 3, etc : List of turrets to deactivate
beam-lock-all
beam-lock-all beam-lock-all Sets all beam weapons on the specified ship to be deactivated
turret-free
turret-free turret-free Sets one or more turret weapons to allow firing for a given ship 1: Ship to be operated on 2, 3, etc : List of turrets to activate
turret-free-all
turret-free-all turret-free-all Sets all turret weapons on the specified ship to be active
turret-lock
turret-lock turret-lock Sets one or more turret weapons to NOT allow firing for a given ship 1: Ship to be operated on 2, 3, etc : List of turrets to deactivate
turret-lock-all
turret-lock-all turret-lock-all Sets all turret weapons on the specified ship to be deactivated
add-remove-escort
add-remove-escort add-remove-escort Adds or removes a ship from an escort list. 1: Ship to be added or removed 2: 0 to remove from the list, any positive value will be used as the escort priority NOTE : it _IS_ safe to add a ship which may already be on the list or remove a ship which is not on the list
awacs-set-range
awacs-set-radius awacs-set-radius Sets the awacs radius for a given ship subsystem. NOTE : does not work properly in multiplayer 1: Ship which has the awacs subsystem 2: Awacs subsystem 3: New radius
send-message-list
send-message-list send-message-list Sends a series of delayed messages. All times are accumulated 1: Name of who the message is from. 2: Priority of message ("Low", "Normal" or "High"). 3: Name of message (from message editor). 4: Delay in ms Use Add-Data for multiple messagesIMPORTANT : each additional message in the list MUST HAVE 4 entries; any message without the 4 proper fields will be ignored, as will any successive messages
cap-waypoint-speed
cap-waypoint-speed cap-waypoint-speed Sets the maximum speed of a ship while flying waypoints. 1: Ship name 2: Maximum speed while flying waypoints NOTE: This will only work if the ship is already in the game NOTE: Set to -1 to reset
ship-guardian
ship-guardian ship-guardian Causes the ships listed in this sexpression to not be killable by weapons. Use with caution!!!! Takes 1 or more arguments... 1+: Name of ships to make unkillable.
ship-no-guardian
ship-no-guardian ship-no-guardian Causes the ships listed in this sexpression to be killable by weapons, if not invulnerable. Takes 1 or more arguments... 1+: Name of ships to make killable.
ship-vanish
ship-vanish ship-vanish Makes the named ship vanish (no log and vanish) Single Player Only! Warning: This will cause ship exit not to be logged, so 'has-departed', etc. will not work 1: List of ship names to vanish
turret-tagged-only
turret-tagged-only turret-tagged-only Makes turrets target and hence fire strictly at tagged objects 1: Ship name NOTE: Will not stop a turret already firing at an untagged ship
turret-tagged-clear
turret-tagged-clear turret-tagged-clear Relaxes restriction on turrets targeting only tagged ships 1: Ship name
subsys-set-random
subsys-set-random subsys-set-random Sets ship subsystem strength in a given range 1: Ship name 2: Low range 3: High range 4: List of subsys names not to be randomized
supernova-start
supernova-start supernova-start 1: Time in seconds until the supernova shockwave hits the player
cargo-no-deplete
cargo-no-deplete cargo-no-deplete Causes the named ship to have unlimited cargo. Note: only applies to BIG or HUGE ships Takes 1 or more arguments... 1: Name of one of the ships. 2: optional: 1 disallow depletion, 0 allow depletion.
Conditionals
when
when When (Conditional operator) Performs specified actions when a condition becomes true Takes 2 or more arguments... 1: Boolean expression that must be true for actions to take place. Rest: Actions to take when boolean expression becomes true.
Debugging
error
Ai goals
ai-chase
ai-chase Ai-chase (Ship goal) Causes the specified ship to chase and attack the specified target. Takes 2 arguments... 1: Name of ship to chase. 2: Goal priority (number between 0 and 89).
ai-dock
ai-dock Ai-dock (Ship goal) Causes one ship to dock with another ship. Takes 4 arguments... 1: Name of dockee ship (The ship that "docker" will dock with). 2: Docker's docking point - Which dock point docker uses to dock. 3: Dockee's docking point - Which dock point on dockee docker will move to. 4: Goal priority (number between 0 and 89).
ai-undock
ai-undock Ai-undock (Ship goal) Causes the specified ship to undock from who it is currently docked with. Takes 1 or 2 arguments... 1: Goal priority (number between 0 and 89). 2 (optional): Ship to undock from. If none is specified, the code will pick the first docked ship.
ai-warp-out
ai-warp-out Ai-warp-out (Ship/Wing Goal) Causes the specified ship/wing to warp out of the mission. Currently, the ship will warp out at its current location. This behavior will change. Currently, the first argument means nothing. Takes 2 arguments... 1: Name of waypoint path to follow to warp out (not used). 2: Goal priority (number between 0 and 89).
ai-waypoints
ai-waypoints Ai-waypoints (Ship goal) Causes the specified ship to fly a waypoint path continuously. Takes 2 arguments... 1: Name of waypoint path to fly. 2: Goal priority (number between 0 and 89).
ai-waypoints-once
ai-waypoints-once Ai-waypoints once (Ship goal) Causes the specified ship to fly a waypoint path. Takes 2 arguments... 1: Name of waypoint path to fly. 2: Goal priority (number between 0 and 89).
ai-destroy-subsystem
ai-destroy-subsystem Ai-destroy subsys (Ship goal) Causes the specified ship to attack and try and destroy the specified subsystem on the specified ship. Takes 3 arguments... 1: Name of ship subsystem is on. 2: Name of subsystem on the ship to attack and destroy. 3: Goal priority (number between 0 and 89).
ai-disable-ship
ai-disable-ship Ai-disable-ship (Ship/wing goal) This AI goal causes a ship/wing to destroy all of the engine subsystems on the specified ship. This goal is different than ai-destroy-subsystem since a ship may have multiple engine subsystems requiring the use of > 1 ai-destroy-subsystem goals. Takes 2 arguments... 1: Name of ship whose engine subsystems should be destroyed 2: Goal priority (number between 0 and 89).
ai-disarm-ship
ai-disarm-ship Ai-disarm-ship (Ship/wing goal) This AI goal causes a ship/wing to destroy all of the turret subsystems on the specified ship. This goal is different than ai-destroy-subsystem since a ship may have multiple turret subsystems requiring the use of > 1 ai-destroy-subsystem goals. Takes 2 arguments... 1: Name of ship whose turret subsystems should be destroyed 2: Goal priority (number between 0 and 89).
ai-guard
ai-guard Ai-guard (Ship goal) Causes the specified ship to guard a ship from other ships not on the same team. Takes 2 arguments... 1: Name of ship to guard. 2: Goal priority (number between 0 and 89).
ai-chase-any
ai-chase-any Ai-chase-any (Ship goal) Causes the specified ship to chase and attack any ship on the opposite team. Takes 1 argument... 1: Goal priority (number between 0 and 89).
ai-evade-ship
ai-evade-ship Ai-evade ship (Ship goal) Causes the specified ship to go into evade mode and run away like the weak sally-boy it is. Takes 2 arguments... 1: Name of ship to evade from. 2: Goal priority (number between 0 and 89).
ai-stay-near-ship
ai-stay-near-ship Ai-stay near ship (Ship goal) Causes the specified ship to keep itself near the given ship and not stray too far away from it. Takes 2 arguments... 1: Name of ship to stay near. 2: Goal priority (number between 0 and 89).
ai-keep-safe-distance
ai-keep-safe-distance Ai-keep safe distance (Ship goal) Tells the specified ship to stay a safe distance away from any ship that isn't on the same team as it. Takes 1 argument... 1: Goal priority (number between 0 and 89).
ai-ignore
ai-ignore Ai-ignore (Ship goal) Tells all ships to ignore the given ship and not consider it as a valid target to attack. Takes 2 arguments... 1: Name of ship to ignore. 2: Goal priority (number between 0 and 89).
ai-stay-still
ai-stay-still Ai-stay still (Ship goal) Causes the specified ship to stay still. The ship will do nothing until attacked at which time the ship will come to life and defend itself. Takes 2 arguments... 1: Ship or waypoint the ship staying still will directly face (currently not implemented) 2: Goal priority (number between 0 and 89).
ai-play-dead
ai-play-dead Ai-play dead (Ship goal) Causes the specified ship to pretend that it is dead and not do anything. This expression should be used to indicate that a ship has no pilot and cannot respond to any enemy threats. A ship playing dead will not respond to any attack. This should really be named ai-is-dead Takes 1 argument... 1: Goal priority (number between 0 and 89).
Event/Goals
is-goal-incomplete
is-goal-incomplete Mission Goal Incomplete (Boolean operator) Returns true if the specified goal in the this mission is incomplete. This sexpression will only be useful in conjunction with another sexpression likehas-time-elapsed. Used alone, it will return true upon misison startup. Returns a boolean value. Takes 1 argument... 1: Name of the event in the mission.
is-goal-true-delay
is-goal-true-delay Mission Goal True (Boolean operator) Returns true N seconds after the specified goal in the this mission is true (or succeeded). It returns false otherwise. Returns a boolean value. Takes 2 required arguments and 1 optional argument... 1: Name of the event in the mission. 2: Number of seconds to delay before returning true.
is-goal-false-delay
is-goal-false-delay Mission Goal False (Boolean operator) Returns true N seconds after the specified goal in the this mission is false (or failed). It returns false otherwise. Returns a boolean value. Takes 2 required arguments and 1 optional argument... 1: Name of the event in the mission. 2: Number of seconds to delay before returning true.
is-event-incomplete
is-event-incomplete Mission Event Incomplete (Boolean operator) Returns true if the specified event in the this mission is incomplete. This sexpression will only be useful in conjunction with another sexpression likehas-time-elapsed. Used alone, it will return true upon misison startup. Returns a boolean value. Takes 1 argument... 1: Name of the event in the mission.
is-event-true-delay
is-event-true-delay Mission Event True (Boolean operator) Returns true N seconds after the specified event in the this mission is true (or succeeded). It returns false otherwise. Returns a boolean value. Takes 2 required arguments and 1 optional argument... 1: Name of the event in the mission. 2: Number of seconds to delay before returning true. 3: (Optional) True/False which signifies this is a current event, whether true, false, or unknown, for use as a directive.
is-event-false-delay
is-event-false-delay Mission Event False (Boolean operator) Returns true N seconds after the specified event in the this mission is false (or failed). It returns false otherwise. Returns a boolean value. Takes 2 required arguments and 1 optional argument... 1: Name of the event in the mission. 2: Number of seconds to delay before returning true. 3: (Optional) True/False which signifies this is a current event, whether true, false, or unknown, for use as a directive.
is-previous-goal-true
is-previous-goal-true Previous Mission Goal True (Boolean operator) Returns true if the specified goal in the specified mission is true (or succeeded). It returns false otherwise. Returns a boolean value. Takes 2 required arguments and 1 optional argument... 1: Name of the mission. 2: Name of the goal in the mission. 3: (Optional) True/False which signifies what this sexpession should return when this mission is played as a single mission.
is-previous-goal-false
is-previous-goal-false Previous Mission Goal False (Boolean operator) Returns true if the specified goal in the specified mission is false (or failed). It returns false otherwise. Returns a boolean value. Takes 2 required arguments and 1 optional argument... 1: Name of the mission. 2: Name of the goal in the mission. 3: (Optional) True/False which signifies what this sexpession should return when this mission is played as a single mission.
is-previous-event-true
is-previous-event-true Previous Mission Event True (Boolean operator) Returns true if the specified event in the specified mission is true (or succeeded). It returns false otherwise. Returns a boolean value. Takes 2 required arguments and 1 optional argument... 1: Name of the mission. 2: Name of the event in the mission. 3: (Optional) True/False which signifies what this sexpession should return when this mission is played as a single mission.
is-previous-event-false
is-previous-event-false Previous Mission Event False (Boolean operator) Returns true if the specified event in the specified mission is false (or failed). It returns false otherwise. Returns a boolean value. Takes 2 required arguments and 1 optional argument... 1: Name of the mission. 2: Name of the event in the mission. 3: (Optional) True/False which signifies what this sexpession should return when this mission is played as a single mission.
Training
key-pressed
key-pressed Key-pressed (Boolean training operator) Becomes true when the specified default key has been pressed. Default key refers to the what the key normally is when not remapped. FreeSpace will automatically account for any keys that have been remapped. If the optional delay is specified, becomes true that many seconds after the key has been pressed. Returns a boolean value. Takes 1 or 2 arguments... 1: Default key to check for. 2: Delay before operator registers as true (optional).
key-reset
key-reset Key-reset (Training operator) Marks the specified default key as having not been pressed, so key-pressed will be false until the player presses it again. See key-pressed help for more information about what a default key is. Note that this sexp will not work properly in repeating events. Use key-reset-multiple if this is to be called multiple times in one event. Returns a boolean value. Takes 1 or more arguments... All: Default key to reset.
targeted
targeted Targeted (Boolean training operator) Is true as long as the player has the specified ship (or ship's subsystem) targeted, or has been targeted for the specified amount of time. Returns a boolean value. Takes 1 to 3 arguments (first required, rest optional): 1: Name of ship to check if targeted by player. 2: Length of time target should have been kept for (optional). 3: Name of subsystem on ship to check if targeted (optional).
speed
speed Speed (Boolean training operator) Becomes true when the player has been within the specified speed range set by set-training-context-speed for the specified amount of time. Returns a boolean value. Takes 1 argument... 1: Time in seconds.
facing
facing Facing (Boolean training operator) Is true as long as the specified ship is within the player's specified forward cone. A forward cone is defined as any point that the angle between the vector of the point and the player, and the forward facing vector is within the given angle. Returns a boolean value. Takes 2 argument... 1: Ship to check is withing forward cone. 2: Angle in degrees of the forward cone.
facing-waypoint
facing-waypoint Facing Waypoint(Boolean training operator) Is true as long as the specified first waypoint is within the player's specified forward cone. A forward cone is defined as any point that the angle between the vector of the point and the player, and the forward facing vector is within the given angle. Returns a boolean value. Takes 2 argument... 1: Name of waypoint path whose first point is withing forward cone. 2: Angle in degrees of the forward cone.
order
order Order (Boolean training operator) Becomes true when the player had given the specified ship or wing the specified order. Returns a boolean value. Takes 2 or 3 arguments... 1: Name of ship or wing to check if given order to. 2: Name of order to check if player has given. 3: Name of the target of the order (optional).
waypoint-missed
waypoint-missed Waypoint-missed (Boolean training operator) Becomes true when a waypoint is flown, but the waypoint is ahead of the one they are supposed to be flying. The one they are supposed to be flying is the next one in sequence in the path after the last one they have hit. Returns a boolean value. Takes no arguments.
waypoint-twice
waypoint-twice Waypoint-twice (Boolean training operator) Becomes true when a waypoint is hit that is before the last one hit, which indicates they have flown a waypoint twice. Returns a boolean value. Takes no arguments.
path-flown
path-flown Path-flown (Boolean training operator) Becomes true when all the waypoints in the path have been flown, in sequence. Returns a boolean value. Takes no arguments.
training-msg
training-msg Training-msg (Action training operator) Sends the player a training message. Uses the same messages as normal messages, only they get displayed differently using this operator. If a secondary message is specified, it is sent the last time, while the primary message is sent all other times (event should have a repeat count greater than 1). Takes 1-3 arguments... 1: Name of primary message to send. 2: Name of secondary message to send (optional). 3: Delay (in seconds) to wait before sending message. (optional) 4: Amount of Time (in seconds) to display message (optional).
flash-hud-gauge
flash-hud-gauge Ai-flash hud gauge (Training goal) Causes the specified hud gauge to flash to draw the player's attention to it. Takes 1 argument... 1: Name of hud gauge to flash.
special-check
special-check Special-check Mike K.'s special training sexp. Returns a boolean value. Takes 1 argument as follows: 0: Ship "Freighter 1" is aspect locked by the player 1: Player has fired Interceptor#Weak at Freighter 1 2: Ship "Freighter 1", subsystem "Weapons" is aspect locked by the player 3: Apply 10 points of damage to player's forward shields (action operator) 4: Player's front shields are nearly gone 5: Quickly recharge player's front shields (action operator) 6: Reduce all shield quadrants except front to 0 (action operator) 7: Front shield quadrant is near maximum strength 8: Rear shield quadrant is near maximum strength 9: Reduce left and right shield quadrants to 0 (action operator) 10: Player has fewer than 8 missiles left 11: Player has 8 or more missiles left 12: Player has fewer than 4 missiles left 13: Reduce front shield quadrant to 0 (action operator) 100: Player is out of countermeasures 2000: Training failed
secondaries-depleted
secondaries-depleted secondaries-depleted Returns true if ship is out of secondary weapons 1: Ship name
set-training-context-fly-path
set-training-context-fly-path Set-training-context-fly-path (Training context operator) Tells FreeSpace that the player is expected to fly a waypoint path. This must be executed before waypoint-missed, waypoint-twice and path-flown operators become valid. Takes 2 arguments... 1: Name of waypoint path player should fly. 2: Distance away a player needs to be from a waypoint for it to be registered as flown.
set-training-context-speed
set-training-context-speed Set-training-context-speed (Training context operator) Tells FreeSpace that the player is expected to fly within a certain speed range. Once this operator has been executed, you can measure how long they have been within this speed range with the speed operator. Takes 2 arguments... 1: Minimum speed of range player is to fly between. 2: Maximum speed of range player is to fly between.