Packs and Manifests
Every add-on is two packs. The behavior pack (BP) holds logic and data. The resource pack (RP)
holds visuals and audio. Each pack has a
manifest.json that names it and links it.
What the manifests hold
-
header.uuiduniquely identifies the pack. The game uses it to tell packs apart. header.versionand module versions track the pack version.min_engine_versionsets the lowest game version that loads the pack.-
BP declares a
datamodule and ascriptmodule with the bundle entryscripts/main.js. -
RP declares a
resourcesmodule and a dependency on the BP uuid, so the two packs load as one add-on. - BP depends on
@minecraft/serverfor the script API.
Fresh UUIDs per project
bb init generates fresh UUIDs for every create. Cloned projects never collide.
Rewrite with bb manifest
bb manifest --dry-run
$ bb manifest --name my-addon --pack-version 1.1.0
bb manifest detects the layout, rewrites both manifests, and cross-links the RP
dependency to the BP uuid. --dry-run prints the plan and writes nothing.
Bump with bb version
bb version 1.1.0
bb version writes one version to the config plus both manifests, so the three never
drift apart.
Validate with bb check
bb check
$ bb check --fix
bb check verifies the config, both manifests, the entry file, and the deploy target.
--fix creates what is missing. bb ship validates the manifests again
before zipping.