> For the complete documentation index, see [llms.txt](https://docs.miltechsimulations.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.miltechsimulations.com/miltech-mission-hub/developer-sdk/mission-package.md).

# Mission Package

To distribute multiple missions together you can create a mission package.

## Creating the mission package

{% tabs %}
{% tab title="Work folder (easy)" %}
You need to create a folder for your mission package in `\work\MissionPacks\` . Inside that folder, put all your mission .json files, thumbnails, briefing images, and other assets (Sounds, Scripts, Images, Weather).

In your mission package folder, create a new file called `MissionPackDefinition.json` and fill in the fields:

```json
{
	"GUID": "YOUR-GENERATED-GUID",
	"Title": "Your Missionpack Title",
	"Description": "Your Missionpack Description",
	"Author": "YourName",
	"Thumbnail": "YourMissionPack-thumbnail.jpg",
	"Files": [
		{
			"FileName": "1MissionName.json",
			"Thumbnail": "1MissionName_thumbnail.jpg",
			"BriefingImage": "1MissionName_briefing.jpg"
		},
		{
			"FileName": "2MissionName.json",
			"Thumbnail": "2MissionName_thumbnail.jpg",
			"BriefingImage": "2MissionName_briefing.jpg"
		}
	]
}
```

{% hint style="warning" %}
Generate a random GUID for your mission pack. You can use <https://guidgenerator.com/>
{% endhint %}
{% endtab %}

{% tab title="Community folder (harder)" %}
You can distribute your mission package as package that can be placed in the community folder. The user then has to manually add the pack to the mission hub. The community folder method is also more complex. Therefore, it's recommended to use the work folder to distribute mission packages.

## Template project

This zip contains an example Devmode project:

{% file src="/files/VNjGi6gQ8dYptqnbgy4o" %}

Download and extract the .zip file. Open the project in MSFS devmode.

Once opened, you need to change the *Package nam*e and other details in the project inspector.

<div align="left"><figure><img src="https://3284314497-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQEwJpcf1IkEF6flfrOBX%2Fuploads%2F1TtYhMJV89MKJzvoYLEQ%2Fimage.png?alt=media&amp;token=ab9d2eaf-888c-4137-991c-28c73fddb670" alt="" width="330"><figcaption></figcaption></figure></div>

And you need to change the *OutputDirs* for the all asset groups **except for the ScenarioFiles asset group**.

Replace `CompanyName` with your name and `MissionName` with the name of the mission.

<div align="left"><figure><img src="https://3284314497-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQEwJpcf1IkEF6flfrOBX%2Fuploads%2FpDdsu9GjnIrVmV4vauTd%2FCustomDialog%20Rename%20OutputDir.jpg?alt=media&amp;token=144acde9-e00d-4a85-88e8-fe1bf92b2991" alt=""><figcaption></figcaption></figure></div>

{% hint style="warning" %}
Be sure to change the package and folder names, to avoid conflicts with other missions.
{% endhint %}

### Defining your mission pack details

#### Preparing ScenarioFiles asset group

In the MSFS project editor, edit the **OutputDir** of the *ScenarioFiles* asset group. The last part of the OutputDir should exactly match your package name:

<figure><img src="https://3284314497-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQEwJpcf1IkEF6flfrOBX%2Fuploads%2F4RULZYLthv7gLydCo2MR%2FRename%20ScenarioFiles%20OutputDir.jpg?alt=media&amp;token=1fa556a0-3c4d-49a4-8ed3-a9824c624af7" alt=""><figcaption></figcaption></figure>

#### Adding missions

Paste your mission files, thumbnail images, and briefing images in the `PackageSources\ScenarioFiles\` folder (See: [Sharing and Installing Missions](/miltech-mission-hub/guides/sharing-and-installing-missions.md)).

In that folder, open the `MissionPackDefinition.json` file:

<figure><img src="https://3284314497-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQEwJpcf1IkEF6flfrOBX%2Fuploads%2FGbkoDl6n9vh0hPXR4sNR%2Fimage.png?alt=media&amp;token=55da1974-cb5c-47ef-b095-4d3abc906f63" alt=""><figcaption></figcaption></figure>

Edit all the fields with your own information. You can add more files if needed.

You can add multiple briefing images if you want, like this:

{% code overflow="wrap" %}

```
"BriefingImage": ["1MissionName_briefing1.jpg", "1MissionName_briefing2.jpg", "1MissionName_briefing3.jpg"]
```

{% endcode %}

{% hint style="warning" %}
Generate a random GUID for your mission pack. You can use <https://guidgenerator.com/>
{% endhint %}

## Adding custom content

### Custom Dialog

Follow the steps in [Custom Dialog](/miltech-mission-hub/developer-sdk/advanced-map-objects/custom-dialog.md).

### Custom Image

Add the custom image(s) to the `PackageSources\CustomImage\` folder. In the [Custom Image](/miltech-mission-hub/developer-sdk/advanced-map-objects/custom-image.md) *Image Path*, you can specify the image like: `CompanyName/MissionName/ImageName.jpg`

### Custom Script &#x20;

Add the custom script(s) to the `PackageSources\CustomScript\` folder. In the [Custom Script](/miltech-mission-hub/developer-sdk/advanced-map-objects/custom-script.md) *Script Path*, you can specify the script like: `Missions\CompanyName\MissionName\CustomScriptName`
{% endtab %}
{% endtabs %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.miltechsimulations.com/miltech-mission-hub/developer-sdk/mission-package.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
