A SEXP (Symbolic EXPression) is the scripting language built into FreeSpace missions. Every condition, trigger, and action in a mission — from checking whether a ship has been destroyed to playing a message — is expressed as a SEXP tree.
SEXPs use a Lisp-style prefix notation enclosed in parentheses:
(operator argument1 argument2 ...)
Operators can be nested, so arguments can themselves be SEXPs:
(when
(is-destroyed-delay 0 "Epsilon 1")
(send-message "" "Mission-Complete" "Command")
)
Here when is the top-level operator. Its first argument is a condition
(is-destroyed-delay) and its second argument is an action
(send-message). When the condition becomes true the action fires.
SEXPs are used in:
The SEXP tree editor is embedded directly in the Mission Events and Mission Goals dialogs. Right-click any node in the tree to add, replace, or remove operators and arguments. Hover over an operator name for a brief description of what it does.