Jayly Logo
Posts > Minecraft Manifest.json Generator and Format Guide
By Jayly · Posted: 2026/06/16

Minecraft Manifest.json Generator and Format Guide

The manifest.json file is the entry point for every Minecraft Bedrock add-on. It tells the game what your pack is, what version it is, and what other packs it depends on. Without a valid manifest, Minecraft will not recognize or load your content.

This article covers the manifest format for behavior packs, resource packs, add-ons, world templates, and skin packs. It includes a reference for both V2 (stable) and V3 (preview) formats, with full code examples and a tool for generating valid manifests.

What is manifest.json?

The manifest is a JSON file placed at the root of a pack's folder. Every pack must have exactly one manifest. When Minecraft loads a pack, it reads the manifest to:

A folder with a correctly formatted manifest is considered a minimal valid pack. Additional content can be added after the manifest is in place.

Generating manifest.json

The Minecraft Bedrock Manifest Generator produces valid manifest.json files for behavior packs, resource packs, add-ons, world templates, and skin packs.

Features

Usage

  1. Select the pack type (behavior, resource, add-on, world template, or skin pack)
  2. Choose the manifest version (V2 or V3)
  3. Fill in the header fields and add modules
  4. Configure dependencies, capabilities, and metadata
  5. Copy or download the generated manifest.json

Manifest Format Versions

Two format versions are currently available:

FeatureV2 (Stable)V3 (Preview)
StatusStable, widely supportedPreview
Version formatArray [1, 0, 0] or string "1.0.0"String "1.0.0" or proxy object
Pack settingsNot supportedSlider, toggle, dropdown, label
Subpack memorymemory_tiermemory_performance_tier
Texture budgetsNot supportedTier-based budgets
pack_scopeHeader-level onlyHeader-level only

V1 is deprecated and only applies to skin packs. This article covers V2 and V3.

Core Properties

format_version

Declares the manifest format version.

{
  "format_version": 3
}

Contains the pack's identity.

{
  "header": {
    "name": "My Pack",
    "description": "A sample behavior pack",
    "uuid": "55b6a7c8-1d2e-4f3a-9b0c-6d7e8f9a0b1c",
    "version": [1, 0, 0],
    "min_engine_version": [1, 20, 0]
  }
}
PropertyTypeDescription
nameStringDisplay name shown in pack UI
descriptionStringShort description shown under the name
uuidStringUnique identifier for the pack (36-char, base-16, case-insensitive)
versionArray or StringPack version. V2 accepts arrays [a, b, c] or strings "a.b.c". V3 accepts strings "a.b.c" or proxy objects
min_engine_versionArray or StringMinimum Minecraft engine version required
pack_scopeStringFor resource packs: "world", "global", or "any". Default is "any"
allow_random_seedBooleanWhether the world can use a custom seed
base_game_versionStringTarget base game version
platform_lockedBooleanRestricts pack to specific platforms
lock_template_optionsBooleanLocks template options in world settings
pack_optimization_versionObjectPack optimization settings

modules

Declares the contents of the pack. Each module is an entry in the array.

Behavior pack module:

{
  "modules": [
    {
      "type": "data",
      "uuid": "a1b2c3d4-e5f6-7890-ab12-cd34ef567890",
      "version": [1, 0, 0]
    }
  ]
}

Resource pack module:

{
  "modules": [
    {
      "type": "resources",
      "uuid": "b2c3d4e5-f6a7-8901-bc23-de45fa678901",
      "version": [1, 0, 0]
    }
  ]
}

Script module (V2):

{
  "modules": [
    {
      "type": "script",
      "uuid": "c3d4e5f6-a7b8-9012-cd34-ef56ab789012",
      "version": [1, 0, 0],
      "language": "javascript"
    }
  ]
}
PropertyTypeDescription
typeString"data" (behavior), "resources" (resource), "script" (JavaScript/TypeScript)
uuidStringUnique identifier for the module
versionArray, String, or ObjectModule version
descriptionStringModule description
languageStringFor script modules: "javascript" or "typescript"
entryStringFor script modules: path to the entry file (V3)

dependencies

Declares packs or modules this pack depends on.

Dependency by UUID:

{
  "dependencies": [
    {
      "uuid": "12345678-1234-1234-1234-123456789abc",
      "version": [1, 0, 0]
    }
  ]
}

Dependency by module name (Script API):

{
  "dependencies": [
    {
      "module_name": "@minecraft/server",
      "version": "1.13.0"
    }
  ]
}

Do not use both uuid and module_name in the same dependency entry. Pick one.

capabilities

Declares special engine features the pack requires.

{
  "capabilities": ["chemistry", "script_eval", "raytraced"]
}
CapabilityEffect
chemistryEnables chemistry features and blocks
editorExtensionDeclares the pack as an editor extension module
script_evalEnables eval() and Function() in script modules
raytracedEnables raytracing in resource packs
pbrEnables Vibrant Visuals in resource packs

metadata

Contains optional pack metadata.

{
  "metadata": {
    "authors": ["Jayly"],
    "license": "MIT",
    "url": "https://jaylydev.github.io/manifest-generator",
    "product_type": "addon"
  }
}
PropertyTypeDescription
authorsArray of stringsPack author names
licenseStringLicense identifier
urlStringPack homepage URL
product_typeString"addon" indicates the pack is intended for player worlds
generated_withObjectTracks tools used to generate the manifest

Script API Dependencies

Behavior packs that use JavaScript or TypeScript must declare their Script API module dependencies. Native engine modules like @minecraft/server and @minecraft/server-ui provide access to game APIs.

Required setup:

  1. Add a script module in modules
  2. Add the corresponding module_name dependency
{
  "modules": [
    {
      "type": "script",
      "uuid": "c3d4e5f6-a7b8-9012-cd34-ef56ab789012",
      "version": [1, 0, 0],
      "language": "javascript"
    }
  ],
  "dependencies": [
    {
      "module_name": "@minecraft/server",
      "version": "1.13.0"
    },
    {
      "module_name": "@minecraft/server-ui",
      "version": "2.0.0"
    }
  ]
}

Available native modules and their UUIDs:

ModuleUUID
@minecraft/common77ec12b4-1b2b-4c98-8d34-d1cd63f849d5
@minecraft/debug-utilities1796ea86-0daf-4409-99ee-fd6467cf1203
@minecraft/serverb26a4d4c-afdf-4690-88f8-931846312678
@minecraft/server-ui2bd50a27-ab5f-4f40-a596-3641627c635e
@minecraft/server-gametest6f4b6893-1bb6-42fd-b458-7fa3d0c89616
@minecraft/server-net777b1798-13a6-401c-9cba-0cf17e31a81b
@minecraft/server-admin53d7f2bf-bf9c-49c4-ad1f-7c803d947920
@minecraft/server-editor1d565354-296d-11ed-a261-0242ac120002

Subpacks

Subpacks allow players to select between different pack configurations in world settings, such as HD vs SD texture sets. Each subpack maps to a memory tier.

V2 subpacks:

{
  "subpacks": [
    {
      "folder_name": "textures_sd",
      "name": "SD Textures",
      "memory_tier": 1
    },
    {
      "folder_name": "textures_hd",
      "name": "HD Textures",
      "memory_tier": 3
    }
  ]
}

V3 subpacks:

{
  "subpacks": [
    {
      "folder_name": "textures_sd",
      "name": "SD Textures",
      "memory_performance_tier": 1
    },
    {
      "folder_name": "textures_hd",
      "name": "HD Textures",
      "memory_performance_tier": 3
    }
  ]
}
PropertyTypeDescription
folder_nameStringName of the subpack's source folder
nameStringDisplay name in pack settings
memory_tier (V2) / memory_performance_tier (V3)IntegerMinimum memory tier required

Memory Tier Alignment

Each tier increases memory requirements by 256 MB.

Memory Performance TierPlatformMemory Range
1Nintendo Switch2-4 GB
2PS4, PS4 Pro, Xbox One, ~60% Mobile4-5 GB
3Xbox One X, Xbox Series S6-8 GB
4Xbox Series X, PS58-12 GB
5PS5 Pro, ~70% PC>12 GB

Texture Memory Budgets (V3 Only)

Minecraft Bedrock enforces texture memory budgets measured in texels (1 pixel = 4 bytes). Devices automatically select the highest compatible subpack without exceeding the budget.

TierAdd-On BudgetResource Pack BudgetWorld Budget
1 (Low-end)150 MB300 MB750 MB
2225 MB450 MB1 GB
3300 MB600 MB1.5 GB
4600 MB1.2 GB3 GB
5 (High-end)800 MB1.6 GB4 GB

Manifest V3 Pack Settings

V3 introduces dynamic in-game settings that players can configure. Supported types:

Example pack settings:

{
  "format_version": 3,
  "header": {
    "name": "My Pack",
    "uuid": "55b6a7c8-1d2e-4f3a-9b0c-6d7e8f9a0b1c",
    "version": "1.0.0",
    "min_engine_version": "1.21.0"
  },
  "modules": [
    {
      "type": "data",
      "uuid": "a1b2c3d4-e5f6-7890-ab12-cd34ef567890",
      "version": "1.0.0"
    }
  ],
  "settings": [
    {
      "name": "enable_feature",
      "type": "toggle",
      "default": false,
      "label": "Enable Feature"
    },
    {
      "name": "damage_amount",
      "type": "slider",
      "default": 5,
      "min": 1,
      "max": 100,
      "step": 1,
      "label": "Damage Amount"
    },
    {
      "name": "difficulty",
      "type": "dropdown",
      "options": {
        "easy": "Easy",
        "normal": "Normal",
        "hard": "Hard"
      },
      "default": "normal",
      "label": "Difficulty"
    },
    {
      "name": "info_label",
      "type": "label",
      "text": "Advanced settings below"
    }
  ]
}

Querying Pack Settings In-Game

Use Molang queries to read pack setting values:

Complete Examples

Minimal Behavior Pack (V2)

{
  "format_version": 2,
  "header": {
    "name": "My Behavior Pack",
    "description": "A minimal behavior pack",
    "uuid": "55b6a7c8-1d2e-4f3a-9b0c-6d7e8f9a0b1c",
    "version": [1, 0, 0],
    "min_engine_version": [1, 20, 0]
  },
  "modules": [
    {
      "type": "data",
      "uuid": "a1b2c3d4-e5f6-7890-ab12-cd34ef567890",
      "version": [1, 0, 0]
    }
  ],
  "metadata": {
    "authors": ["Jayly"]
  }
}

Add-On with Script API (V2)

{
  "format_version": 2,
  "header": {
    "name": "My Add-On",
    "description": "An add-on with Script API",
    "uuid": "55b6a7c8-1d2e-4f3a-9b0c-6d7e8f9a0b1c",
    "version": [1, 0, 0],
    "min_engine_version": [1, 20, 0]
  },
  "modules": [
    {
      "type": "data",
      "uuid": "a1b2c3d4-e5f6-7890-ab12-cd34ef567890",
      "version": [1, 0, 0]
    },
    {
      "type": "script",
      "uuid": "c3d4e5f6-a7b8-9012-cd34-ef56ab789012",
      "version": [1, 0, 0],
      "language": "javascript"
    }
  ],
  "dependencies": [
    {
      "module_name": "@minecraft/server",
      "version": "1.13.0"
    }
  ],
  "capabilities": ["script_eval"],
  "metadata": {
    "authors": ["Jayly"],
    "product_type": "addon"
  }
}

Add-On with V3 Pack Settings

{
  "format_version": 3,
  "header": {
    "name": "My V3 Pack",
    "description": "A pack using manifest V3",
    "uuid": "55b6a7c8-1d2e-4f3a-9b0c-6d7e8f9a0b1c",
    "version": "1.0.0",
    "min_engine_version": "1.21.0"
  },
  "modules": [
    {
      "type": "data",
      "uuid": "a1b2c3d4-e5f6-7890-ab12-cd34ef567890",
      "version": "1.0.0"
    }
  ],
  "subpacks": [
    {
      "folder_name": "subpack_sd",
      "name": "SD",
      "memory_performance_tier": 1
    },
    {
      "folder_name": "subpack_hd",
      "name": "HD",
      "memory_performance_tier": 3
    }
  ],
  "settings": [
    {
      "name": "feature_toggle",
      "type": "toggle",
      "default": true,
      "label": "Enable Feature"
    }
  ],
  "metadata": {
    "authors": ["Jayly"],
    "product_type": "addon"
  }
}
#MinecraftPartner

I found something...

Buy 'Backrooms Add-On' with my affiliate link!

Minecraft store

Buy me a coffee

Support me to fund my projects

Buy me a coffee