The manifest.json file is the root identity certificate for every Minecraft Bedrock add-on pack. A single invalid UUID, mismatched module type, or conflicting version definition causes Bedrock to reject the pack or silently ignore assets.
1. The Core Schema Breakdown
A valid manifest requires two distinct top-level sections: header and modules.
- Header: Defines pack name, description, pack UUID, version tuple
[1, 0, 0], andmin_engine_version. - Modules: Defines what content the pack injects. Behavior Packs use
"type": "data", Resource Packs use"type": "resources", and Script API packs use"type": "script".
2. UUID v4 Collision and Pairing Rules
Bedrock requires that:
- The header UUID and module UUID inside the same manifest must never be identical.
- No two distinct packs in the game may share the same header UUID.
- When a Behavior Pack depends on a Resource Pack, the BP's
dependenciesarray references the RP's header UUID.
// Example Behavior Pack Dependency:
"dependencies": [
{
"uuid": "a7b3c291-89e4-4a22-96b1-094857201938", // RP Header UUID
"version": [1, 0, 0]
}
]
Instant Minecraft UUID Generator
Generate cryptographically secure RFC-4122 v4 UUIDs for Minecraft Bedrock packs with 1-click clipboard copying.
⚠️ 5 Fatal Traps & Engineering Pitfalls
Critical implementation hazards and architecture failure modes discovered in production environments:
Copy-pasting the same UUID v4 into both the header and module sections causes the Bedrock engine to reject the pack upon world import with invalid manifest errors.
When linking a BP to an RP, referencing the Resource Pack's module UUID instead of its header UUID breaks texture loading and triggers dependency missing warnings.
Specifying an outdated min_engine_version (e.g. [1, 16, 0]) disables modern Script API beta modules and declarative block components.
Writing "version": "1.0.0" as a string instead of an integer array [1, 0, 0] causes silent JSON schema parsing failure in Minecraft Bedrock.
Leaving duplicate development folders with matching UUIDs in com.mojang causes module version conflicts and prevents new script changes from loading.