> For the complete documentation index, see [llms.txt](https://infinity-command.gitbook.io/infinity-command/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://infinity-command.gitbook.io/infinity-command/customization/customizing-your-content-pack.md).

# Customizing Your Content Pack

Although we try to include everything you'll ever need for awesome space adventures in the default Content Pack, you're always welcome to add your own content to customize your experience.

{% hint style="info" %}

### Adding vs. Editing

When [Content Pack updates are downloaded](/infinity-command/getting-started/content-pack.md#checking-for-updates), the default assets are overwritten. Anything you've ***added*** will remain, but any ***edits*** you've made to the default files will be lost.

Always be sure to make customizations through new files rather than editing the default ones.
{% endhint %}

## Music, Images, and Skyboxes

Adding your own music, images, and skyboxes is as simple as dropping them into the Content Pack's respective sub-folders.  *Infinity Command* will automatically detect and load them.

{% hint style="info" %}
When adding your own skyboxes, make sure your image files' naming convention matches the built-in skyboxes.  They must include the words "Up," "Down," "Front," "Back," "Left," and "Right."  Otherwise, the system will not detect them correctly.
{% endhint %}

## Sound Effects and Videos

Customizing sound effects and videos is slightly more involved because they require additional meta data, which specifies their IDs and determines how they are played (e.g. looping, etc.).  This meta data is defined in `.json` files located in the Sound Effect and Video sub-folders.  Here are the basic steps:

{% stepper %}
{% step %}

### (Optional) Create sub-folders

Create a new sub-folder within `ContentPack/Audio/SoundEffects` or `ContentPack/Videos` to hold your new sound effect or video files, respectively.
{% endstep %}

{% step %}

### Add the new files

Move your desired sound effect or video files into any sub-folder within `ContentPack/Audio/SoundEffects` or `ContentPack/Videos`, respectively.
{% endstep %}

{% step %}

### Create a new .json file for the meta data

Create a new `.json` file and populate it with information for each of your new sound effects or videos.&#x20;

* For sound effects, the essential properties that must be specified are the files' `Id` and `Path` values. `CooldownInterval` and `VaryPitch` settings can also be configured, if you don't want to use the defaults.
* &#x20;For video, the essential properties that must be specified are `Id`, `Label`, `Path`, `Playback`, and `Display`.

Use the existing `.json` files as a guide when adding your own.

{% hint style="info" %}
Remember to make new `.json` files rather than edit the default ones.  (See the **Adding vs. Editing** note at the top of this page).
{% endhint %}
{% endstep %}
{% endstepper %}

## Inventory Items

To create custom [inventory items](/infinity-command/content/inventory.md#inventory-items), simply create `.json` files for them, using the existing default files as a guide.  All items need an `Id`, `Label`, and `IconPath` specified, and finished goods also need a `Blueprint` defined.

Once created, custom inventory items can be added to the ship's inventory permanently via the ship's configuration file or on an ad-hoc basis via Cues or the Flight Director controls.

## 3D Models and Procedural Planets

To add your own 3D models or procedural planets, you'll need access to our open-source Unity project for content creation. We're still in the process of publishing the repo to the public, but in the meantime if you [ping us on Discord](https://discord.gg/wmNhfUksJP) we'll help you get access.

## Customizing Cues & Cue Cards

*Infinity Command* comes with a variety of ready-made Cues and Cue Cards, available within the `Scripting` sub-folder of the Content Pack.  These are available for your reference and use, and you can add new Cue Cards or Scripts of your own. Simply create new `.json` files in the `CueCards` or `Scripts` sub-folders, using the existing files as a guide.

Some of the default Cue Cards are used by the app itself. For example, when Red Alert is triggered, the app executes the "Red Alert" Cue Card, which specifies the sound effect and video that should play.

But what if you want to change this effect?  What if you want to play a different sound effect or remove the video entirely?  Fear not!  You can override the built-in Cues and Cue Cards:

{% stepper %}
{% step %}

### Identify the Cue or Cue Card you want to override

They are `.json` files in the `Cues` or `CueCards` sub-folders of `ContentPack/Scripting`.
{% endstep %}

{% step %}

### Duplicate the .json file

This ensures that the ID of the duplicate matches the original ID.
{% endstep %}

{% step %}

### Create a "Custom" subfolder

This folder should be *inside* the `Cues` or `CueCards` folder.
{% endstep %}

{% step %}

### Move your duplicated .json file into the "Custom" subfolder

{% endstep %}

{% step %}

### Edit the duplicated .json file as desired

But make sure not to edit the ID.  It should match the ID of the original.
{% endstep %}
{% endstepper %}

When *Infinity Command* detects multiple Cues or Cue Cards with the same ID, it gives preference to the one inside the `Custom` sub-folder.
