MSFS Mission Script - Mission objects

From FSDeveloper Wiki
Revision as of 12:28, 25 May 2024 by BASys (talk | contribs) (Replaced Applicable-FSVersion for MSFS with MSFS2020, added MSFS2024)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigationJump to search


Mission elements define a range of things like mission type, goals, world traffic, camera, and thermals.

See MSFS Mission Script for general information about creating a mission script.


Defining the mission type

You not only have to define the mission type in the flight file, but you also have to choose a mission object in the mission script. There are different types of missions, but all of them have some properties in common:

Mission

General mission object


Descr Mission name
SuccessText, FailureText, AbortedText Text shown to the player in a popup when the mission ends.
ImagePath Unknown.
SpentTime
CrashActions Actions that excecute when the player crashes. Unknown application.
Score You can give the player a score and grade. To calculate this you need to use a calculator.
RewardScreen~ You can change parts of the RewardScreen.
Objectives You have to add one or more objectives to the mission, to allow the user to complete the mission. The objectives can be displayed to the player in the Objectives panel. All objectives have to be linked with a goal.

Objectives

Objective

Mission objective


Descr Name of the objective. Can be localized.
ImagePath Unknown.
UniqueRefId Guid of associated goal.
TemplateInstanceId Unknown.
Optional Is this objective optional for mission completion?
TriggerNotification Unknown.
DisplayInRewardScreen Display this in the score/mission overview of the reward screen (only some mission types).
Step Steps of the objective. Link this with SubGoals. You can link to specific instruments. You can have different texts for players using Joystick, GamePad, or Keyboard and mouse.
EventTriggers Link to an event.

List of Mission Types

Mission type Comment
MissionFreeFlight The mission type used for freeflight is the freest (e.g., allows increasing sim speed), but doesn't have a nice endscreen (just the logbook).
Tutorial This mission type has an endscreen to evaluate mission performance.
MissionBushTrip This mission type allows you to make a mission with multiple legs. If you use this mission type, the sim autosaves mission (currently a bit broken). This mission type also has flight legs and a variable that tracks if it was completed without assistance.
MissionLandingChallenge This mission type is used for landing challenges. It has an endscreen that displays the score. It also has a landingzone with a location, heading, width, and length.
MissionDiscovery This mission type is used for discovery flights.
Untested
MissionLowAltitude Has properties for a racecourse and racePoints. Maybe used for general races?
MissionRaceRedBull
MissionRaceReno
MissionLandingChallengeCarrier
MissionRefueling
MissionSightingFlight

Goals

For a mission to be completed, all active objectives (that aren't optional) have to be successfully completed. Each mission objective has to be linked to a Goal or SubGoal. Goals can be changed with a (Sub)GoalResolutionAction.

Goal / Subgoal

Basic goal.


Activated Description
GoalState Current state of a goal. Can be:
Pending, Completed, Failed, and Aborted.
ResetState OnActivation Reset goal or subgoal state to Pending on activation.
Text Don't use this, use the description in the objectives of the mission element itself.
Order Order of appearance in UI.

Other

Camera

You can place a camera in the world.

Camera

Camera object.


Activated If the camera is activated, the player will look through it, and they won't be able to control the plane anymore.
Name Unknown.
World position You have to specify a world position for the camera.
Orientation You can specify an orientation for the camera.
ObjectReference You can point the camera at a specific object. If you use this, the Orientation will be ignored.
TrackRaceLeader You can point the camera at the race leader. If you use this, the Orientation and ObjectReference will be ignored.
NodeName Node of a simobject.
IsCinematic Will the HUD be disabled?

LivingWorldExclusion

Useful if you want to get rid of stationary or moving traffic from a road, airport, or water).

PointOfInterest

You can add points of interest to your mission. The points of interest can have an InGameMarker.

Calculator

You can use calculators for more advanced logic in your mission. It can take in multiple variables and trigger different actions based on a logic. You can also use this to calculate a mission score and probably many more applications which you can think of.

Racing / Multiplayer

AllowableContainerList

ConditionRacePoint

GateRacePoint

Player

PylonRacePoint

RaceCourse

RaceInfo

Untested

PictureInPictureViewController

RealismOverrides

RidgeLift

Thermal

VolumeRacePoint

Rope (new in msfs)

Pages relevant to mission creation for MSFS.

Mission structure

Flightplan
Weather definitions
Flight file
Mission script
Triggers
AirportLandingTrigger & AreaLandingTrigger · CounterTrigger · PropertyTrigger · ProximityTrigger · TimerTrigger
Actions
ObjectActivationAction · DialogAction · AdjustPayloadAction · ChangeAssistanceItemAction · FadeToColorAction · RandomAction · RequestTeleportAction · CountAction · ResetTimerAction · TimerAdjustAction · GoalResolutionAction & SubGoalResolutionAction · GrantRewardAction · PointOfInterestActivationAction · ActivateWaypointsAction · AITakeControlsAction · SendMessageToAIAction
Mission objects
Mission definition · Goal · LivingWorldExclusion · Camera
Calculator
Flow states
Events
Areas
Rectangle Area · Cylinder Area · Polygon Area · Corridor Area · InGameMarker
Library objects
Sim objects
RTC

Mission tools

MSFS Script Editor · BushTripInjector · BushMissionGen · MSFSLocalizer · SPB2XML · Little Navmap

Other

Example mission files
Porting FSX Missions to MSFS
Localisation
Click the links to access the topic pages (Default - Opens in same window).