Manifest Reference
The manifest.json file is the configuration document that defines your mod’s structure, options, and metadata. This reference covers the complete schema and all available fields.
Complete Schema
{
"Version": 1,
"Guid": "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx",
"Name": "string",
"Description": "string",
"IconPath": "string",
"Options": [
{
"Name": "string",
"Description": "string",
"Include": ["string"],
"Image": "string",
"SubOptions": [
{
"Name": "string",
"Description": "string",
"Include": ["string"],
"Image": "string"
}
]
}
]
}Root Fields
Version
"Version": 1| Property | Value |
|---|---|
| Type | number |
| Required | Yes |
| Value | Always 1 |
The manifest format version. Currently only version 1 is supported.
Guid
"Guid": "a1b2c3d4-e5f6-4789-abcd-ef0123456789"| Property | Value |
|---|---|
| Type | string |
| Required | Yes |
| Format | UUID v4 |
A unique identifier for your mod. Auto-generated when creating a new project. Do not modify unless you know what you’re doing. Changing the GUID creates a “new” mod in users’ libraries.
Name
"Name": "My Awesome Mod"| Property | Value |
|---|---|
| Type | string |
| Required | Yes |
| Max Length | Recommended < 50 characters |
The display name shown in mod managers and listings.
Description
"Description": "A brief explanation of what this mod does"| Property | Value |
|---|---|
| Type | string |
| Required | Yes |
| Note | Can be empty string "" |
A short description of the mod’s purpose and features.
IconPath
"IconPath": "icon.png"| Property | Value |
|---|---|
| Type | string |
| Required | No |
| Format | Relative file path |
Path to the mod’s thumbnail image, relative to the mod root folder.
Supported formats: PNG, JPEG, WebP
Recommended size: 256x256 or 512x512 pixels
Options
"Options": [...]| Property | Value |
|---|---|
| Type | array |
| Required | No |
| Items | Option objects |
An array of configurable options for the mod. Omit entirely for simple mods without options.
Option Object
{
"Name": "High Quality Textures",
"Description": "4K resolution texture pack",
"Include": ["High Quality Textures"],
"Image": "High Quality Textures/preview.png",
"SubOptions": [...]
}Name
| Property | Value |
|---|---|
| Type | string |
| Required | Yes |
The display name for this option.
Description
| Property | Value |
|---|---|
| Type | string |
| Required | Yes |
| Note | Can be empty string |
Explanation of what enabling this option does.
Include
"Include": ["FolderName"]| Property | Value |
|---|---|
| Type | string[] |
| Required | Conditional |
| Condition | Required if no SubOptions |
Array of folder paths to include when this option is enabled. Paths are relative to the mod root.
Image
| Property | Value |
|---|---|
| Type | string |
| Required | No |
Relative path to a preview image for this option.
SubOptions
| Property | Value |
|---|---|
| Type | array |
| Required | Conditional |
| Condition | Required if no Include |
| Items | SubOption objects |
Array of sub-options for nested choices within this option.
Rule: An option must have either
IncludeORSubOptions, not both empty.
SubOption Object
{
"Name": "Gold Variant",
"Description": "Luxurious gold finish",
"Include": ["Weapon Skins/Gold Variant"],
"Image": "Weapon Skins/Gold Variant/preview.png"
}SubOptions have the same fields as Options except they cannot contain nested SubOptions.
Name
| Property | Value |
|---|---|
| Type | string |
| Required | Yes |
Description
| Property | Value |
|---|---|
| Type | string |
| Required | Yes |
| Note | Can be empty string |
Include
| Property | Value |
|---|---|
| Type | string[] |
| Required | No |
Image
| Property | Value |
|---|---|
| Type | string |
| Required | No |
Examples
Minimal Mod (No Options)
{
"Version": 1,
"Guid": "12345678-1234-4123-8123-123456789abc",
"Name": "Simple Texture Mod",
"Description": "Replaces default textures"
}Mod with Icon
{
"Version": 1,
"Guid": "12345678-1234-4123-8123-123456789abc",
"Name": "Enhanced Effects",
"Description": "Better particle effects for explosions",
"IconPath": "icon.png"
}Mod with Options
{
"Version": 1,
"Guid": "12345678-1234-4123-8123-123456789abc",
"Name": "Quality Selector",
"Description": "Choose your texture quality",
"IconPath": "icon.png",
"Options": [
{
"Name": "Ultra Quality",
"Description": "4K textures, highest quality",
"Include": ["Ultra Quality"],
"Image": "Ultra Quality/preview.png"
},
{
"Name": "Performance",
"Description": "1K textures, better FPS",
"Include": ["Performance"],
"Image": "Performance/preview.png"
}
]
}Mod with SubOptions
{
"Version": 1,
"Guid": "12345678-1234-4123-8123-123456789abc",
"Name": "Weapon Customization",
"Description": "Multiple weapon skin variants",
"IconPath": "icon.png",
"Options": [
{
"Name": "Primary Weapon Skins",
"Description": "Choose a skin for primary weapons",
"SubOptions": [
{
"Name": "Default",
"Description": "Keep original appearance",
"Include": []
},
{
"Name": "Gold",
"Description": "Golden finish",
"Include": ["Primary Weapon Skins/Gold"],
"Image": "Primary Weapon Skins/Gold/preview.png"
},
{
"Name": "Carbon Fiber",
"Description": "Carbon fiber wrap",
"Include": ["Primary Weapon Skins/Carbon Fiber"],
"Image": "Primary Weapon Skins/Carbon Fiber/preview.png"
}
]
}
]
}Validation Rules
Required Fields
Versionmust be1Guidmust be valid UUID formatNamemust be non-empty stringDescriptionmust be present (can be empty)
Option Rules
- If
Optionsarray exists, it must contain at least one option - Each option must have
NameandDescription - Each option must have
IncludeORSubOptions(at least one)
Path Rules
- All paths are relative to the mod root folder
- Paths are case-sensitive
- Use forward slashes (
/) as separators - No leading or trailing slashes
Build-Time Cleaning
When building, the manifest is cleaned:
- Empty
Descriptionfields are kept (required) - Empty
IconPathis removed - Empty
Imagefields are removed