deploy-scene
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseDeploying to Genesis City
部署到 Genesis City
Deploy to specific parcels you own or have permission to deploy to.
Use the command to deploy. It runs and handles the full process:
/deploynpx @dcl/sdk-commands deploy- Build the scene
- Upload assets to IPFS
- Deploy to the specified parcels
- Requires a wallet with LAND or deployment permissions
Deploying to a World instead? See theskill for Worlds deployment (personal spaces using DCL NAMEs or ENS domains).deploy-worlds
部署到你拥有或有权部署的特定地块。
使用 命令进行部署。它会运行 ,并处理完整流程:
/deploynpx @dcl/sdk-commands deploy- 构建场景
- 将资源上传到 IPFS
- 部署到指定地块
- 需要拥有 LAND 或部署权限的钱包
要改为部署 World 吗? 有关 Worlds 部署(使用 DCL NAME 或 ENS 域名的个人空间),请参阅skill。deploy-worlds
Pre-Deployment Checklist
部署前检查清单
Before deploying, verify:
-
scene.json is valid:
- and
ecs7: trueruntimeVersion: "7" - Correct matching your LAND (for Genesis City)
parcels - Valid parcel
base main: "bin/index.js"
-
Code compiles:bash
npx tsc --noEmit -
Scene previews correctly: Use thetool to verify the scene works (or
previewmanually, optionally withnpx @dcl/sdk-commands startto preview in the Bevy Web browser client). Test with multiple browser tabs to verify multiplayer behavior.--web -
Dependencies installed:bash
npm install -
Assets are within limits — see the optimize-scene skill for full limit formulas per parcel count (triangles, entities, materials, textures, height). Keep scene load time under 15 seconds by optimizing assets.
-
covers all working files — Blender/FBX sources, concept art, spreadsheets, markdown docs, etc. must not be uploaded. See the
.dclignoresection below..dclignore
部署前,请确认:
-
scene.json 有效:
- 且
ecs7: trueruntimeVersion: "7" - 与你的 LAND 正确匹配(适用于 Genesis City)
parcels - 有效的 地块
base main: "bin/index.js"
-
代码可编译:bash
npx tsc --noEmit -
场景预览正常: 使用工具确认场景能够正常运行(也可手动运行
preview,并可选用npx @dcl/sdk-commands start在 Bevy Web 浏览器客户端中预览)。使用多个浏览器标签页进行测试,以验证多人游戏行为。--web -
依赖已安装:bash
npm install -
资源未超出限制——有关按地块数量计算的完整限制公式(三角形、实体、材质、纹理、高度),请参阅 optimize-scene skill。通过优化资源,将场景加载时间保持在 15 秒以内。
-
覆盖所有工作文件——Blender/FBX 源文件、概念设计稿、电子表格、Markdown 文档等不得上传。请参阅下方的
.dclignore部分。.dclignore
Deployment Process
部署流程
Using CLI
使用 CLI
bash
undefinedbash
undefinedBuild first
Build first
npx @dcl/sdk-commands build
npx @dcl/sdk-commands build
Deploy (will open browser for wallet connection)
Deploy (will open browser for wallet connection)
npx @dcl/sdk-commands deploy
undefinednpx @dcl/sdk-commands deploy
undefinedUsing Creator Hub
使用 Creator Hub
- Open Creator Hub
- Select your scene
- Click "Publish"
- Connect wallet
- Confirm transaction
- 打开 Creator Hub
- 选择你的场景
- 点击 "Publish"
- 连接钱包
- 确认交易
scene.json for Deployment
部署用的 scene.json
json
{
"ecs7": true,
"runtimeVersion": "7",
"display": {
"title": "My Awesome Scene",
"description": "A description for the marketplace",
"navmapThumbnail": "images/thumbnail.png"
},
"scene": {
"parcels": ["0,0", "0,1"],
"base": "0,0"
},
"main": "bin/index.js"
}display.navmapThumbnaildisplay.descriptionjson
{
"ecs7": true,
"runtimeVersion": "7",
"display": {
"title": "My Awesome Scene",
"description": "A description for the marketplace",
"navmapThumbnail": "images/thumbnail.png"
},
"scene": {
"parcels": ["0,0", "0,1"],
"base": "0,0"
},
"main": "bin/index.js"
}display.navmapThumbnaildisplay.descriptionSpawn Points
出生点(Spawn Points)
Configure where players appear when entering the scene:
json
{
"spawnPoints": [
{
"name": "spawn1",
"default": true,
"position": { "x": [1, 5], "y": [0, 0], "z": [2, 4] },
"cameraTarget": { "x": 8, "y": 1, "z": 8 }
}
]
}Position ranges (e.g., ) spawn players randomly within the range. Use to orient the player's camera on spawn.
[1, 5]cameraTarget配置玩家进入场景时的出生位置:
json
{
"spawnPoints": [
{
"name": "spawn1",
"default": true,
"position": { "x": [1, 5], "y": [0, 0], "z": [2, 4] },
"cameraTarget": { "x": 8, "y": 1, "z": 8 }
}
]
}位置范围(例如 )会让玩家在范围内随机出生。使用 设置玩家出生时摄像机的朝向。
[1, 5]cameraTarget.dclignore — Exclude Files from Upload
.dclignore——排除上传文件
The file, always at the project root, lists files and patterns that are NOT uploaded to the content server when deploying. Everything in the project folder that isn't matched by gets uploaded, and the uploaded total counts against the per-parcel MB limits — so only files the running scene actually needs should be deployed.
.dclignore.dclignoreFormat: one glob pattern per line. The default from scene templates:
.*
package-lock.json
yarn-lock.json
build.json
export
tsconfig.json
tslint.json
node_modules
*.ts
*.tsx
.vscode
Dockerfile
dist
README.md
*.blend
*.fbx
*.zip
*.rar
*.md
srcKeep it up to date as the project grows. Whenever working files exist in the project — Blender or other 3D source files, draft models, concept art, PSDs, spreadsheets, markdown notes, reference photos — add them (or their extensions) to so the deployed scene stays as light as possible. When creating or editing a scene, add these patterns proactively; don't wait for the deploy to fail. Common additions:
.dclignore*.blend
*.blend1
*.fbx
*.psd
*.kra
*.xcf
*.md
*.csv
*.xlsx
drafts
concept-art
referenceIf a deploy fails with "Scene is too large", checking is the first step: working files are often the bulk of the excess, and excluding them reduces upload size with zero impact on the scene.
.dclignoreNever ignore files the scene needs at runtime: , , (composites, .glb models, textures, sounds, video), thumbnails referenced in , or any file path referenced in code. Note the default ignores / — only the compiled runs, so source code is never needed in the upload.
bin/index.jsscene.jsonassets/scene.json*.tssrcbin/index.js位于项目根目录的 文件会列出部署时不上传到内容服务器的文件和模式。项目文件夹中所有未被 匹配的内容都会被上传,而上传总量会计入每个地块的 MB 限制,因此只应部署运行场景实际需要的文件。
.dclignore.dclignore格式:每行一个 glob 模式。场景模板中的默认配置如下:
.*
package-lock.json
yarn-lock.json
build.json
export
tsconfig.json
tslint.json
node_modules
*.ts
*.tsx
.vscode
Dockerfile
dist
README.md
*.blend
*.fbx
*.zip
*.rar
*.md
src随着项目扩展,请保持该文件为最新状态。 每当项目中存在工作文件时——例如 Blender 或其他 3D 源文件、草稿模型、概念设计稿、PSD、电子表格、Markdown 笔记或参考照片——都应将它们(或其扩展名)添加到 ,让部署的场景尽可能轻量。创建或编辑场景时,应主动添加这些模式;不要等到部署失败后再处理。常见补充项如下:
.dclignore*.blend
*.blend1
*.fbx
*.psd
*.kra
*.xcf
*.md
*.csv
*.xlsx
drafts
concept-art
reference如果部署因 "Scene is too large" 而失败,应首先检查 :工作文件通常占超出部分的大部分,排除它们可以在不影响场景的情况下缩减上传大小。
.dclignore切勿忽略场景运行时需要的文件: 、、(合成资源、 模型、纹理、声音、视频)、 中引用的缩略图,或代码中引用的任何文件路径。请注意,默认配置会忽略 /——只有编译后的 会运行,因此上传时不需要源代码。
bin/index.jsscene.jsonassets/.glbscene.json*.tssrcbin/index.jsTroubleshooting
故障排除
| Error | Cause | Solution |
|---|---|---|
| "You don't have permission to deploy" | Wallet doesn't own the target LAND/parcels | Verify LAND ownership on the marketplace, or get deployment permissions from the LAND owner |
| "Scene is too large" | Assets exceed parcel size limits | First add all working files (Blender/FBX sources, concept art, docs) to |
| Wallet connection fails | Browser popup blocked or MetaMask locked | Allow popups, unlock MetaMask, refresh and try again |
| "Invalid scene.json" | Missing required fields or malformed JSON | Verify |
| Deploy succeeds but scene is empty | | Ensure |
| Catalyst rejection | Content violates Decentraland content policies | Review content guidelines at docs.decentraland.org |
| 错误 | 原因 | 解决方案 |
|---|---|---|
| "You don't have permission to deploy" | 钱包并不拥有目标 LAND/地块 | 在 marketplace 中验证 LAND 所有权,或向 LAND 所有者获取部署权限 |
| "Scene is too large" | 资源超过地块大小限制 | 首先将所有工作文件(Blender/FBX 源文件、概念设计稿、文档)添加到 |
| "Wallet connection fails" | 浏览器弹窗被阻止或 MetaMask 处于锁定状态 | 允许弹出窗口、解锁 MetaMask,然后刷新并重试 |
| "Invalid scene.json" | 缺少必填字段或 JSON 格式错误 | 确认 |
| "Deploy succeeds but scene is empty" | | 确保 |
| "Catalyst rejection" | 内容违反 Decentraland 内容政策 | 查看 docs.decentraland.org 上的内容指南 |
Genesis City vs Worlds
Genesis City 与 Worlds
| Genesis City | Worlds | |
|---|---|---|
| Requirement | Own LAND parcels | Own DCL NAME or ENS domain |
| Parcel limits | Enforced (entity/triangle budgets per parcel) | Not constrained by LAND |
| Visibility | Shown on the Genesis City map | Listed on Places page (opt-out available) |
| Deploy target | Default Catalyst network | |
| Best for | Permanent installations, high-traffic scenes | Testing, personal spaces, events |
Deploying to a World instead? See the deploy-worlds skill.
| Genesis City | Worlds | |
|---|---|---|
| 要求 | 拥有 LAND 地块 | 拥有 DCL NAME 或 ENS 域名 |
| 地块限制 | 强制执行(每个地块的实体/三角形预算) | 不受 LAND 约束 |
| 可见性 | 显示在 Genesis City 地图中 | 列于 Places 页面(可选择不展示) |
| 部署目标 | 默认使用 Catalyst 网络 | |
| 适用场景 | 永久性设施、高流量场景 | 测试、个人空间、活动 |
要改为部署 World 吗? 请参阅 deploy-worlds skill。
Scene Tipping
场景打赏
Let visitors send MANA tips to the scene creator. Add a field to :
creatorscene.jsonjson
{
"creator": "0x1234567890123456789012345678901234567890"
}When set, a piggy bank icon appears in the top-left for visitors. Clicking it opens a MANA tip modal. If the address is linked to a Decentraland NAME, the name is shown in the modal. Creators receive an in-app notification for each tip.
Can also be configured via Creator Hub → scene Settings → Details → Creator wallet address.
允许访问者向场景创作者发送 MANA 打赏。在 中添加 字段:
scene.jsoncreatorjson
{
"creator": "0x1234567890123456789012345678901234567890"
}设置后,访问者界面左上角会显示一个存钱罐图标。点击该图标会打开 MANA 打赏弹窗。如果该地址关联了 Decentraland NAME,弹窗中会显示该名称。创作者每收到一次打赏都会收到应用内通知。
也可通过 Creator Hub → scene Settings → Details → Creator wallet address 进行配置。