Mission Events

Opens via Editors › Mission Events.

Mission Events is the primary scripting interface in QtFRED and where the vast majority of mission design work happens. Each event is a named unit that pairs a condition with one or more actions expressed as SEXPs. The engine evaluates every event every frame; when the condition becomes true the actions fire. Events can repeat on a cooldown, depend on other events firing first, display objectives on the HUD, trigger messages, and much more. The event list is the brain of a mission.

Event list and SEXP tree

The main area shows all events in the mission alongside their SEXP trees. Selecting an event expands its condition and action expressions for editing. Right-click any SEXP node to add, replace, or remove operators and arguments. See SEXPs for a full overview of the expression language and the operators available.

Events are evaluated in list order each frame. Order matters: events earlier in the list are processed first, which can affect timing when events interact.

Event list buttons

ButtonDescription
NewAppends a new blank event at the end of the list.
InsertInserts a new blank event above the currently selected event.
DeleteRemoves the selected event.
Move Up / Move DownReorders the selected event within the list.

Event properties

These fields configure the selected event.

FieldDescription
NameInternal label shown in the event list. Referenced by the Chain feature of other events and by SEXPs such as event-true and event-false.
Repeat countHow many times the event's actions will run in total. -1 means unlimited.
Trigger countHow many times the event's condition must become true before the event stops firing entirely. Once this count reaches zero the event is permanently disabled, overriding any remaining repeat count.
IntervalMinimum time in seconds or milliseconds between successive firings when the repeat count is greater than 1. The interval timer resets after each firing.
ChainedWhen checked, this event's condition is not evaluated until the immediately preceding event in the list has become true at least once. Used to sequence events without adding explicit timing conditions to every SEXP.
Chain delayNumber of seconds or milliseconds after the preceding event becomes true before this event's condition begins evaluating. Only meaningful when Chained is checked.
Interval & Chain Delay in MilllisecondsChekcbox that when checked changes both Chain Delay and Interval to being milliseconds instead of seconds.
ScorePoints awarded to the player when this event becomes true.
TeamIn multiplayer missions, restricts the event to a specific team. Disabled for non-multiplayer missions.
Directive textText shown in the player's objective display on the HUD when this event is active. Writing text here makes the event a directive. Directives turn red when they can no longer become true, and blue when they do become true.
Directive keypress textHelper text displayed beneath the directive in green on the HUD. Keybinds can be embedded by surrounding the bind name with $$, for example $Alt-X$, and they will be automatically translated to the player's current control bindings.

Log flags

These checkboxes control when the selected event writes an entry to the engine's debug event log (event.log). They are useful for tracing event behavior during mission testing.

FlagLogs when…
TrueThe event condition evaluates to true.
FalseThe event condition evaluates to false.
Always FalseThe event condition is permanently false.
Log PreviousThe event changes state; logs the previous state alongside the new one.
First RepeatThe event fires on its first repetition. Flag is cleared after logging once.
Last RepeatThe event fires on its final repetition.
First TriggerThe event fires on its first trigger. Flag is cleared after logging once.
Last TriggerThe event fires on its final trigger.

Messages

The messages panel lists all messages defined for this mission. SEXPs such as send-message and send-message-list reference messages by name. Use the arrow buttons to reorder messages in the list.

Message list buttons

ButtonDescription
NewAppends a new blank message at the end of the list.
InsertInserts a new blank message above the selected message.
DeleteRemoves the selected message.
Add NoteAttaches a note to the selected message that is not visible to the player. Notes function like stage directions and are printed in the generated script exported from the Voice Acting Manager.
Update StuffAutomatically assigns the head animation and persona for the selected message based on the current mission settings.

Message properties

FieldDescription
NameInternal identifier used to reference this message in SEXPs. Not shown to the player.
Message textThe text displayed on the HUD when this message is sent.
Head ANIThe talking-head animation file shown with the message. Choose from the dropdown for quick access or browse the gallery.
Wave fileThe audio file played when this message is sent.
PersonaWhen a message has a persona assigned and is sent with wingman as the source, the engine finds a random ship from the player's wing that matches this persona to act as sender. If no matching ship exists the message falls back to Terran Command.
TeamIn Team vs. Team multiplayer, restricts this message to players on the specified team. None sends the message to all players.