mcpField
D
deploy-worlds

deploy-worlds

github.com/dcl-regenesislabs云与 DevOps1738 次安装21 周前更新
代码仓库

关于 deploy-worlds

面向 Decentraland 创作者的 Worlds 部署技能,适用于发布不受 LAND 地块限制的个人 3D 空间。说明配置、部署目标、访问方式及天空盒和小地图等专属选项。

主要功能

  1. 01在 scene.json 中配置 worldConfiguration
  2. 02设置 Places 列表显示选项
  3. 03配置天空盒和小地图
  4. 04通过 /deploy、CLI 或 Creator Hub 部署
  5. 05检查 World 访问和部署错误

适用场景

  1. 01发布个人 Decentraland World
  2. 02设置自定义天空盒或小地图
  3. 03将 World 从 Places 列表中移除
  4. 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 部署
  1. 在 Creator Hub 中打开场景项目
  2. 点击 Publish 按钮(右上角)
  3. 选择 PUBLISH TO WORLD
  4. 选择要发布到的 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 选择退出

评论

支持 Markdown