# 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

Button | Description
--- | ---
New | Appends a new blank event at the end of the list.
Insert | Inserts a new blank event above the currently selected event.
Delete | Removes the selected event.
Move Up / Move Down | Reorders the selected event within the list.

## Event properties

These fields configure the selected event.

Field | Description
--- | ---
Name | Internal 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 count | How many times the event's actions will run in total. `-1` means unlimited.
Trigger count | How 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.
Interval | Minimum time in seconds or milliseconds between successive firings when the repeat count is greater than 1. The interval timer resets after each firing.
Chained | When 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 delay | Number 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 Millliseconds | Chekcbox that when checked changes both Chain Delay and Interval to being milliseconds instead of seconds.
Score | Points awarded to the player when this event becomes true.
Team | In multiplayer missions, restricts the event to a specific team. Disabled for non-multiplayer missions.
Directive text | Text 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 text | Helper 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.

Flag | Logs when…
--- | ---
True | The event condition evaluates to true.
False | The event condition evaluates to false.
Always False | The event condition is permanently false.
Log Previous | The event changes state; logs the previous state alongside the new one.
First Repeat | The event fires on its first repetition. Flag is cleared after logging once.
Last Repeat | The event fires on its final repetition.
First Trigger | The event fires on its first trigger. Flag is cleared after logging once.
Last Trigger | The 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

Button | Description
--- | ---
New | Appends a new blank message at the end of the list.
Insert | Inserts a new blank message above the selected message.
Delete | Removes the selected message.
Add Note | Attaches 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 Stuff | Automatically assigns the head animation and persona for the selected message based on the current mission settings.

### Message properties

Field | Description
--- | ---
Name | Internal identifier used to reference this message in SEXPs. Not shown to the player.
Message text | The text displayed on the HUD when this message is sent.
Head ANI | The talking-head animation file shown with the message. Choose from the dropdown for quick access or browse the gallery.
Wave file | The audio file played when this message is sent.
Persona | When 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.
Team | In Team vs. Team multiplayer, restricts this message to players on the specified team. None sends the message to all players.