Config Schema
Every command except init, version, and manifest loads
config.json. Lookup order is --config, then ./config.json,
then ./bedrock.config.json. Unknown extra keys are ignored.
{
"type": "minecraftBedrock",
"name": "my-addon",
"targetVersion": "1.21.0",
"namespace": "my_addon",
"packs": { "behaviorPack": "packs/BP", "resourcePack": "packs/RP" },
"worlds": [],
"bb": {
"version": "1.0.0",
"entry": "src/main.ts",
"out": "dist",
"deploy": { "target": "retail", "customPath": null },
"extensions": []
},
"minecraft": { "serverVersion": "2.0.0" }
}Top level keys
| Key | Description |
|---|---|
name |
Project name. Non-empty string. Also the deploy folder name. |
targetVersion |
Minecraft target version. Maps to the server API version. |
packs.behaviorPack |
BP source dir. Default is packs/BP. |
packs.resourcePack |
RP source dir. Default is packs/RP. |
namespace |
Identifier prefix per the standard Bedrock format. bb.namespace stays as fallback. Derived from name when both are omitted. |
worlds |
Glob list of world folders per the standard. Default is empty. Read but not written by bb. |
bb keys
| Key | Description |
|---|---|
bb.namespace |
Legacy identifier prefix. Top-level namespace wins when both exist. |
bb.version |
Project version. Falls back to package.json version. Must be semver. |
bb.entry |
Script entry. Defaults to src/main.ts, then src/main.js when the ts file is missing. |
bb.out |
Output dir. Default is dist. |
bb.deploy.target |
retail or custom. Default is retail. |
bb.deploy.customPath |
Data dir for custom target. Required when target is custom. |
bb.extensions |
Array of non-empty extension names or paths. Optional. |
bb.extensions[].settings |
Optional JSON object passed to that extension. String entries use an empty object. |
Validation
Version must be semver. Both pack dirs must exist with a
manifest.json each. The entry file must exist. Custom deploy needs a non-empty
customPath. Failures exit with code 2 and name the missing piece.