ArsenalDOCUMENTATION
Mod Builder

Manifest

Version 1 manifest.json generated by the Arsenal Mod Builder.

The Mod Builder still writes Manifest Version 1. You do not edit this JSON in the UI. Preview Manifest and Build produce the cleaned document below.

Empty optional fields are stripped at build time. Required fields stay even when they are empty strings.

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

FieldRequiredNotes
VersionYesAlways 1
GuidYesUUID. Changing it creates a new mod identity in users' libraries
NameYesNon-empty string. UI max 120 characters
DescriptionYesMay be ""
IconPathNoRelative path. Omitted when empty
OptionsNoOmitted when the builder has no options

Option object

FieldRequiredNotes
NameYesNon-empty. UI max 60 characters
DescriptionYesMay be ""
IncludeConditionalFolder paths relative to the mod root. Omitted when empty
ImageNoRelative path. Omitted when empty
SubOptionsConditionalOmitted when empty

An option should have Include, SubOptions, or both. Having neither is a warning at build time, not a hard error.

SubOption object

Same fields as an option except there is no nested SubOptions.

FieldRequiredNotes
NameYesNon-empty
DescriptionYesMay be ""
IncludeRecommendedEmpty include is a warning
ImageNoOmitted when empty

Path rules

  • Paths are relative to the mod root
  • Use / as the separator (Weapons/Gold)
  • No leading or trailing slashes
  • Names are case-sensitive and must match folders in the zip

Cleaning on build

FieldEmpty behavior
DescriptionKept ("")
IconPathRemoved
ImageRemoved
IncludeRemoved if the array is empty
Options / SubOptionsRemoved if the array is empty
NexusDataKept only when both ModId and Version are set (not edited in the builder UI)

Builder-only data (option colors, collapsed cards, option ids) stays in the .hd2a_project metadata and never enters this file.

Examples

No options

{
  "Version": 1,
  "Guid": "12345678-1234-4123-8123-123456789abc",
  "Name": "Simple Texture Mod",
  "Description": "Replaces default textures"
}

Options with include folders

{
  "Version": 1,
  "Guid": "12345678-1234-4123-8123-123456789abc",
  "Name": "Quality Selector",
  "Description": "Choose texture quality",
  "IconPath": "icon.png",
  "Options": [
    {
      "Name": "Ultra Quality",
      "Description": "4K textures",
      "Include": ["Ultra"],
      "Image": "ultra_preview.png"
    },
    {
      "Name": "Performance",
      "Description": "1K textures",
      "Include": ["Performance"],
      "Image": "perf_preview.png"
    }
  ]
}

Sub-options

{
  "Version": 1,
  "Guid": "12345678-1234-4123-8123-123456789abc",
  "Name": "Weapon Customization",
  "Description": "Primary weapon skins",
  "IconPath": "icon.png",
  "Options": [
    {
      "Name": "Primary Weapon Skins",
      "Description": "Choose a skin",
      "SubOptions": [
        {
          "Name": "Gold",
          "Description": "Golden finish",
          "Include": ["Weapons/Gold"],
          "Image": "gold_preview.png"
        },
        {
          "Name": "Carbon Fiber",
          "Description": "Carbon wrap",
          "Include": ["Weapons/Carbon Fiber"]
        }
      ]
    }
  ]
}

Build-time error and warning lists are on Projects and build.

On this page