dcl-regenesislabs/opendcl

deploy-worlds

Deploy a Decentraland scene to a World (personal 3D space using a DCL NAME or ENS domain).

First seen Feb 25, 2026

Installation

$ npx skills add dcl-regenesislabs/opendcl --skill deploy-worlds

Summary

  • Deploy a Decentraland scene to a World (personal 3D space using a DCL NAME or ENS domain).
  • Covers worldConfiguration setup, Places listing opt-out, and common deployment errors.
  • Use when the user wants to deploy to a World, publish to a personal space, or use a DCL NAME/ENS domain.
  • Do NOT use for Genesis City LAND deployment (see deploy-scene).

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

Also in this package

Other skills from dcl-regenesislabs/opendcl · top by installs.

npx skills add dcl-regenesislabs/opendcl

Browse all from dcl-regenesislabs/opendcl

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Repository health

Stars 17
License Apache-2.0
Default branch main
Open issues 2
Status Active

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 4,846 B
  • docs SUMMARY.md 367 B

History

  1. First seen on skills.sh
  2. First recorded snapshot · 37 installs

SKILL.md

Deploying to Decentraland Worlds

Worlds are personal 3D spaces not tied to LAND. They have no parcel limitations and are automatically listed on the Places page.

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).

1. Configure scene.json

Add a worldConfiguration section to scene.json:

{
  "worldConfiguration": {
    "name": "my-name.dcl.eth"
  }
}

The name field must match a Decentraland NAME or ENS domain owned by the deploying wallet.

Opt out of Places listing

All Worlds are automatically listed on the Places page. To opt out:

{
  "worldConfiguration": {
    "name": "my-name.dcl.eth",
    "placesConfig": {
      "optOut": true
    }
  }
}

Skybox + Minimap configuration

worldConfiguration accepts extra fields that aren't available for Genesis City scenes:

{
  "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:

Value Time of day
0 Midnight
18000 6 AM (sunrise)
36000 Noon
45000 6 PM (sunset)
50400 Maximum

Omit fixedTime for a dynamic day/night cycle. textures is an array of cubemap face textures (top/bottom/front/back/left/right) when you want a fully custom sky.

miniMapConfig: set visible: true to show the minimap inside the World; dataImage is the base tile, estateImage overlays estate boundaries.

2. Deploy

Use the /deploy command — it auto-detects the worldConfiguration in scene.json and deploys to the Worlds content server automatically.

Alternatively, deploy manually via CLI:

npx @dcl/sdk-commands deploy --target-content https://worlds-content-server.decentraland.org

This will prompt the user to sign the deployment with their wallet. Validations run automatically to allow or reject the scene.

Via Creator Hub

  1. Open the scene project in Creator Hub
  2. Click the Publish button (top-right corner)
  3. Select PUBLISH TO WORLD
  4. Choose which NAME or ENS domain to publish to

3. Access the World

After a successful deploy, the /deploy command outputs a visit URL automatically. The World is also accessible at:

https://decentraland.zone/bevy-web?realm=NAME.dcl.eth

From inside Decentraland, use the chatbox command:

/goto NAME.dcl.eth

Full scene.json Example

{
  "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"
  }
}

Troubleshooting

Error Cause Solution
"NAME not found" or "NAME not owned" The wallet signing the deployment doesn't own the NAME/ENS in worldConfiguration.name Verify NAME ownership at https://builder.decentraland.org/names. The wallet used for signing must own the exact NAME
ENS resolution fails ENS domain not registered or expired Check ENS registration at https://app.ens.domains
"Scene too large" World scenes have size limits even though parcels aren't constrained Reduce asset sizes. Worlds still enforce file size and entity limits
Deploy succeeds but world is empty main field misconfigured Ensure main is "bin/index.js" and code compiles
World not showing on Places Propagation delay Wait a few minutes after deployment. If opted out via placesConfig.optOut, it won't appear

Deploying to Genesis City instead? See the deploy-scene skill.

Key Differences from 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