关于 deploy-worlds
面向 Decentraland 创作者的 Worlds 部署技能,适用于发布不受 LAND 地块限制的个人 3D 空间。说明配置、部署目标、访问方式及天空盒和小地图等专属选项。
主要功能
- 01在 scene.json 中配置 worldConfiguration
- 02设置 Places 列表显示选项
- 03配置天空盒和小地图
- 04通过 /deploy、CLI 或 Creator Hub 部署
- 05检查 World 访问和部署错误
适用场景
- 01发布个人 Decentraland World
- 02设置自定义天空盒或小地图
- 03将 World 从 Places 列表中移除
- 04排查所有权或部署问题
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ dcl-regenesislabs/ opendcl --skill deploy-worlds安装后在 Claude Code 中输入/deploy-worlds确认已加载。
详细介绍
部署到 Decentraland Worlds
Worlds 是不与 LAND 绑定的个人 3D 空间。它们没有地块限制,并会自动列在 Places 页面上。
要求
要发布到 World,用户必须拥有以下其中一项:
- 一个 Decentraland NAME(例如,
my-name.dcl.eth) - 一个 ENS 域名(例如,
my-name.eth)
为部署签名的钱包必须拥有该 NAME,或已通过访问控制列表(ACL)获得相应权限。
1. 配置 scene.json
在 scene.json 中添加 worldConfiguration 部分:
{
"worldConfiguration": {
"name": "my-name.dcl.eth"
}
}
name 字段必须与部署钱包所拥有的 Decentraland NAME 或 ENS 域名一致。
退出 Places 列表
所有 World 都会自动列在 Places 页面 上。要退出列表:
{
"worldConfiguration": {
"name": "my-name.dcl.eth",
"placesConfig": {
"optOut": true
}
}
}
Skybox + Minimap 配置
worldConfiguration 接受 Genesis City 场景不支持的额外字段:
{
"worldConfiguration": {
"name": "my-name.dcl.eth",
"skyboxConfig": {
"fixedTime": 36000,
"textures": ["textures/skybox.png"]
},
"miniMapConfig": {
"visible": true,
"dataImage": "images/minimap.png",
"estateImage": "images/estate.png"
}
}
}
skyboxConfig.fixedTime:
| 值 | 时间 |
|---|---|
0 | 午夜 |
18000 | 上午 6 点(日出) |
36000 | 中午 |
45000 | 下午 6 点(日落) |
50400 | 最大值 |
省略 fixedTime 可启用动态昼夜循环。若要使用完全自定义的天空,textures 是一个立方体贴图各面纹理(上/下/前/后/左/右)组成的数组。
miniMapConfig:设置 visible: true 可在 World 内显示小地图;dataImage 是基础图块,estateImage 用于叠加显示地产边界。
2. 部署
使用 /deploy 命令 — 它会自动检测 scene.json 中的 worldConfiguration,并自动部署到 Worlds 内容服务。
或者,通过 CLI 手动部署:
npx @dcl/sdk-commands deploy --target-content https://worlds-content-server.decentraland.org
系统会提示用户使用钱包为部署签名。系统会自动运行验证,以允许或拒绝该场景。
通过 Creator Hub 部署
- 在 Creator Hub 中打开场景项目
- 点击 Publish 按钮(右上角)
- 选择 PUBLISH TO WORLD
- 选择要发布到的 NAME 或 ENS 域名
3. 访问 World
部署成功后,/deploy 命令会自动输出访问 URL。也可以通过以下地址访问 World:
https://decentraland.zone/bevy-web?realm=NAME.dcl.eth
在 Decentraland 内部,使用聊天框命令:
/goto NAME.dcl.eth
完整的 scene.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"
}
}
故障排除
| 错误 | 原因 | 解决方案 |
|---|---|---|
| "NAME not found" 或 "NAME not owned" | 为部署签名的钱包并不拥有 worldConfiguration.name 中指定的 NAME/ENS | 在 https://builder.decentraland.org/names 验证 NAME 所有权。用于签名的钱包必须拥有完全匹配的 NAME |
| ENS 解析失败 | ENS 域名尚未注册或已过期 | 在 https://app.ens.domains 检查 ENS 注册状态 |
| "Scene too large" | 即使 World 不受地块限制,场景仍有大小限制 | 减小资源文件大小。World 仍会限制文件大小和实体数量 |
| 部署成功但 World 为空 | main 字段配置错误 | 确保 main 为 "bin/index.js",且代码可以编译 |
| World 未显示在 Places 上 | 传播延迟 | 部署后等待几分钟。如果通过 placesConfig.optOut 选择退出,则不会显示 |
要部署到 Genesis City? 请参阅 deploy-scene 技能。
与 Genesis City 的主要区别
- 没有地块限制 — World 不受 LAND 所有权限制
- 需要 NAME/ENS — 必须拥有 Decentraland NAME 或 ENS 域名,而不是 LAND
- 部署目标不同 — 使用
--target-content https://worlds-content-server.decentraland.org - 自动列入 Places — 除非通过
placesConfig.optOut选择退出