行为包在部署时组装,仓库里没有固定的 BP 壳。
modules/packages/*/sapi/src/index.ts
│ esbuild(external @minecraft/*)
▼
packs/_build/sfmc-modules-bp/scripts/main.js
│ pack-manager assemble-bp
▼
packs/_build/sfmc-modules/
│ deploy
▼
<BDS>/worlds/<level>/behavior_packs/sfmc-modules/
| 位置 | 作用 |
|---|---|
sfmc/src/commands-behavior-pack.ts |
CLI build / deploy |
bds-tools/src/pack-manager.ts |
组装、复制、启用包 |
@sfmc-bds/sdk/behavior-pack-build |
构建辅助(平台内部) |
- 只 bundle lock 里 enabled 且 catalog 里有的模块
- 每个模块必须
ModuleRegistry.register - 空模块集 → 合法空
main.js
node sfmc/dist/main.js behavior-pack build
node sfmc/dist/main.js behavior-pack deploy
# 开发迭代推荐(build + deploy + 向 BDS 发 reload)
node sfmc/dist/main.js reloadpack-manager 还提供 enable-pack / disable-pack 改世界里的包列表,与 deploy 分开。
- 改
packages/<id>/sapi/源码(开发期用--link链到 sfmc-modules) sfmc mod reload(或mod build后启动服务器触发装载闸门,再在 BDS/游戏内输入reload)- 不必为脚本热更去
restart bds;进程级重启仅在改配置、崩服恢复等场景需要
只改 Node 侧(db-server)不用 redeploy BP;只改 SAPI 必须 redeploy + reload。