deploy-worlds
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseDeploying to Decentraland Worlds
部署到 Decentraland World
Worlds are personal 3D spaces not tied to LAND. They have no parcel limitations and are automatically listed on the Places page.
World 是不与 LAND 关联的个人 3D 空间。它们没有地块限制,并会自动列在 Places 页面中。
Requirements
要求
To publish to a World, the user must own either:
- A Decentraland NAME (e.g., )
my-name.dcl.eth - An ENS domain (e.g., )
my-name.eth
The wallet signing the deployment must own the NAME, or have been granted permission via Access Control Lists (ACL).
要发布到 World,用户必须拥有以下之一:
- 一个 Decentraland NAME(例如 )
my-name.dcl.eth - 一个 ENS 域名(例如 )
my-name.eth
签署部署的钱包必须拥有该 NAME,或已通过 Access Control Lists (ACL) 获得权限。
Storage Budget
存储预算
Scenes deployed to Worlds count against a storage budget shared across all Worlds owned by the same wallet. The budget is calculated dynamically from the wallet's holdings:
- Each Decentraland NAME owned grants 100 MB (as well as a World).
- Each LAND parcel owned grants an additional 100 MB.
- Every 2,000 MANA held in the wallet grants another 100 MB.
- ENS-domain Worlds have a fixed limit of 36 MB that cannot be expanded.
The budget can be distributed across multiple Worlds however the user likes. Check usage in the Manage section of the Creator Hub (click View Details for a breakdown), or in the Worlds tab of the Builder.
If the budget is exceeded (e.g. after selling/transferring assets), there is a 48-hour grace period to free space before Worlds become inaccessible. Regain access by acquiring more MANA/NAMEs/LAND or undeploying scenes.
部署到 World 的场景会占用同一钱包所拥有的所有 World 共享的存储预算。该预算会根据钱包持有的资产动态计算:
- 每个已拥有的 Decentraland NAME 可增加 100 MB 存储空间(并获得一个 World)。
- 每拥有一个 LAND 地块,可额外增加 100 MB 存储空间。
- 钱包中每持有 2,000 MANA,可再增加 100 MB 存储空间。
- ENS 域名的 World 固定上限为 36 MB,且无法扩展。
用户可以按需在多个 World 之间分配预算。可在 Creator Hub 的 Manage 部分查看使用情况(点击 View Details 查看明细),或在 Builder 的 Worlds 标签页中查看。
如果超出预算(例如在出售或转移资产后),World 不可访问之前会有 48 小时宽限期,用于释放空间。可以通过获取更多 MANA/NAME/LAND 或取消部署场景来恢复访问权限。
1. Configure scene.json
1. 配置 scene.json
Add a section to :
worldConfigurationscene.jsonjson
{
"worldConfiguration": {
"name": "my-name.dcl.eth"
}
}The field must match a Decentraland NAME or ENS domain owned by the deploying wallet.
name在 中添加 部分:
scene.jsonworldConfigurationjson
{
"worldConfiguration": {
"name": "my-name.dcl.eth"
}
}nameOpt out of Places listing
选择退出 Places 列表
All Worlds are automatically listed on the Places page. To opt out:
json
{
"worldConfiguration": {
"name": "my-name.dcl.eth",
"placesConfig": {
"optOut": true
}
}
}所有 World 都会自动列在 Places 页面 中。要选择退出,请执行:
json
{
"worldConfiguration": {
"name": "my-name.dcl.eth",
"placesConfig": {
"optOut": true
}
}
}2. Deploy
2. 部署
Use the command — it auto-detects the in scene.json and deploys to the Worlds content server automatically.
/deployworldConfigurationAlternatively, deploy manually via CLI:
bash
npx @dcl/sdk-commands deploy --target-content https://worlds-content-server.decentraland.orgThis will prompt the user to sign the deployment with their wallet. Validations run automatically to allow or reject the scene.
Files matched by (at the project root) are excluded from the upload — keep working files like Blender sources, concept art, and markdown docs listed there so the World stays light. See the section in the deploy-scene skill.
.dclignore.dclignore使用 命令——它会自动检测 scene.json 中的 ,并自动部署到 Worlds 内容服务器。
/deployworldConfiguration也可以通过 CLI 手动部署:
bash
npx @dcl/sdk-commands deploy --target-content https://worlds-content-server.decentraland.org系统会提示用户使用钱包签署部署。验证会自动运行,并据此允许或拒绝该场景。
与项目根目录中的 匹配的文件不会上传——请确保 Blender 源文件、概念图和 Markdown 文档等工作文件已列在该文件中,以使 World 保持轻量。请参阅 deploy-scene skill 中的 部分。
.dclignore.dclignoreVia Creator Hub
通过 Creator Hub 部署
- Open the scene project in Creator Hub
- Click the Publish button (top-right corner)
- Select PUBLISH TO WORLD
- Choose which NAME or ENS domain to publish to
- 在 Creator Hub 中打开场景项目
- 点击右上角的 Publish 按钮
- 选择 PUBLISH TO WORLD
- 选择要发布到的 NAME 或 ENS 域名
3. Access the World
3. 访问 World
After a successful deploy, the command outputs a visit URL automatically. The World is also accessible at:
/deployhttps://decentraland.zone/bevy-web?realm=NAME.dcl.ethFrom inside Decentraland, use the chatbox command:
/goto NAME.dcl.eth部署成功后, 命令会自动输出访问 URL。也可以通过以下地址访问 World:
/deployhttps://decentraland.zone/bevy-web?realm=NAME.dcl.eth在 Decentraland 内,可以使用聊天框命令:
/goto NAME.dcl.ethFull scene.json Example
完整 scene.json 示例
json
{
"ecs7": true,
"runtimeVersion": "7",
"display": {
"title": "My World",
"description": "A personal 3D space"
},
"scene": {
"parcels": ["0,0"],
"base": "0,0"
},
"main": "bin/index.js",
"worldConfiguration": {
"name": "my-name.dcl.eth"
}
}json
{
"ecs7": true,
"runtimeVersion": "7",
"display": {
"title": "My World",
"description": "A personal 3D space"
},
"scene": {
"parcels": ["0,0"],
"base": "0,0"
},
"main": "bin/index.js",
"worldConfiguration": {
"name": "my-name.dcl.eth"
}
}World Configuration Options
World 配置选项
Beyond and , supports skybox and minimap customization:
nameplacesConfigworldConfigurationjson
"worldConfiguration": {
"name": "my-name.dcl.eth",
"skyboxConfig": {
"fixedTime": 43200
},
"placesConfig": {
"optOut": false
}
}- — verified against the engine test scenes and current docs.
skyboxConfig.fixedTime - ,
skyboxConfig.textures(miniMapConfig/visible/dataImage) — [UNVERIFIED: not present in the engine test scenes or the current scene-metadata docs; confirm against js-sdk-toolchain scene schema before relying on them].estateImage
skyboxConfig.fixedTimeValues are seconds since midnight; a full day is .
86400| Value | Time of day |
|---|---|
| Midnight |
| 6 AM (sunrise) |
| Noon |
| 6 PM (sunset) |
| Full day (maximum) |
Any value above is interpreted as midnight. Omit for a dynamic day/night cycle.
86400fixedTimeworldConfiguration.skyboxConfig.fixedTimeskyboxConfig.fixedTimeSkyboxTime除 和 外, 还支持 skybox 和 minimap 自定义:
nameplacesConfigworldConfigurationjson
"worldConfiguration": {
"name": "my-name.dcl.eth",
"skyboxConfig": {
"fixedTime": 43200
},
"placesConfig": {
"optOut": false
}
}- ——已对照引擎测试场景和当前文档进行验证。
skyboxConfig.fixedTime - 、
skyboxConfig.textures(miniMapConfig/visible/dataImage)——[未验证:引擎测试场景或当前 scene-metadata 文档中不存在;使用前请对照 js-sdk-toolchain 的 scene schema 确认]。estateImage
skyboxConfig.fixedTime这些值表示从午夜起经过的秒数;一整天为 。
86400| 值 | 一天中的时间 |
|---|---|
| 午夜 |
| 上午 6 点(日出) |
| 正午 |
| 下午 6 点(日落) |
| 一整天(最大值) |
任何高于 的值都会被解释为午夜。若要使用动态昼夜循环,请省略 。
86400fixedTimeworldConfiguration.skyboxConfig.fixedTimeskyboxConfig.fixedTimeSkyboxTimeMulti-Scene Worlds
多场景 World
A World can host multiple independent scenes, each at different coordinates. The World grows and shrinks dynamically as scenes are added or removed, and gaps between scenes are filled with environment.
Enable via Creator Hub: When publishing, toggle Multi-Scene World (advanced) on the first publish.
Deploy via CLI:
bash
npm run deploy -- --multi-scene --target-content https://worlds-content-server.decentraland.orgAfter enabling, the World Owner can:
- Publish additional scenes to different parcels of the same World
- Add Collaborators with deploy rights (all parcels or specific coordinates)
- Manage layout via the Layout tab in World Settings (remove scenes, view the World map)
- Set a World Spawn Position (which parcel players enter on)
Collaborator note: Collaborators with "All Parcels" access can overwrite any scene in the World, including those published by the owner.
To deploy as a collaborator, use the normal process — the publishing flow will let you select only the parcels you have access to.
deploy一个 World 可以承载多个彼此独立的场景,每个场景位于不同坐标。随着场景的添加和移除,World 会动态扩展和收缩,场景之间的空隙会由 environment 填充。
通过 Creator Hub 启用: 首次发布时,打开 Multi-Scene World (advanced)。
通过 CLI 部署:
bash
npm run deploy -- --multi-scene --target-content https://worlds-content-server.decentraland.org启用后,World Owner 可以:
- 将更多场景发布到同一 World 的不同地块
- 添加拥有部署权限的 Collaborators(所有地块或特定坐标)
- 通过 World Settings 中的 Layout 标签页管理布局(移除场景、查看 World 地图)
- 设置 World Spawn Position(玩家进入 World 时所在的地块)
Collaborator 注意事项: 拥有“All Parcels”访问权限的 Collaborators 可以覆盖 World 中的任何场景,包括 World Owner 发布的场景。
要以 Collaborator 身份部署,请使用常规的 流程——发布流程会让你选择自己有权访问的地块。
deployTroubleshooting
故障排查
| Error | Cause | Solution |
|---|---|---|
| "NAME not found" or "NAME not owned" | The wallet signing the deployment doesn't own the NAME/ENS in | Verify NAME ownership at |
| ENS resolution fails | ENS domain not registered or expired | Check ENS registration at |
| "Scene too large" | Scene exceeds the World storage budget (see Storage Budget above) | First add all working files (Blender/FBX sources, concept art, docs) to |
| Deploy succeeds but world is empty | | Ensure |
| World not showing on Places | Propagation delay | Wait a few minutes after deployment. If opted out via |
| 错误 | 原因 | 解决方案 |
|---|---|---|
| “NAME not found”或“NAME not owned” | 签署部署的钱包不拥有 | 在 |
| ENS 解析失败 | ENS 域名未注册或已过期 | 在 |
| “Scene too large” | 场景超出 World 存储预算(见上文存储预算) | 首先将所有工作文件(Blender/FBX 源文件、概念图、文档)添加到项目根目录的 |
| 部署成功但 World 为空 | | 确保 |
| World 未显示在 Places 中 | 传播延迟 | 部署后等待几分钟。如果已通过 |
Example scenes
示例场景
- https://github.com/decentraland/sdk7-test-scenes/tree/main/scenes/3,0-skybox-world-json — a World scene setting a fixed skybox time via , and reading it back with
worldConfiguration.skyboxConfig.fixedTime.getSceneInformation
Deploying to Genesis City instead? See the deploy-scene skill.
- https://github.com/decentraland/sdk7-test-scenes/tree/main/scenes/3,0-skybox-world-json——一个通过 设置固定 skybox 时间,并通过
worldConfiguration.skyboxConfig.fixedTime读取该设置的 World 场景。getSceneInformation
改为部署到 Genesis City? 请参阅 deploy-scene skill。
Key Differences from Genesis City
与 Genesis City 的主要区别
- No parcel limitations — Worlds are not constrained by LAND ownership
- NAME/ENS required — must own a Decentraland NAME or ENS domain instead of LAND
- Different deploy target — uses
--target-content https://worlds-content-server.decentraland.org - Auto-listed on Places — unless opted out via
placesConfig.optOut
- 无地块限制——World 不受 LAND 所有权约束
- 必须使用 NAME/ENS——必须拥有 Decentraland NAME 或 ENS 域名,而不是 LAND
- 部署目标不同——使用
--target-content https://worlds-content-server.decentraland.org - 自动列在 Places 中——除非通过 选择退出
placesConfig.optOut