> For the complete documentation index, see [llms.txt](https://docs.decentraland.org/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.decentraland.org/creator/content-creator-es/scenes-sdk7/tipos-de-proyectos/scene-metadata.md).

# Metadatos de la escena

Aprende a configurar una escena y sus metadatos.

Una escena es un proyecto de Decentraland que está delimitado espacialmente y se asigna a una o varias parcelas. Si una escena se despliega en el mapa de Decentraland Genesis City, los jugadores pueden experimentarla visitando las coordenadas de la escena. Si una escena se despliega a un [World](/creator/content-creator-es/scenes-sdk7/publicacion/publishing-options.md#decentraland-worlds), los jugadores pueden visitarla mediante URL.

Consulta [Archivos en una escena](/creator/content-creator-es/scenes-sdk7/tipos-de-proyectos/scene-files.md) para ver una lista de qué archivos se usan en un proyecto de escena.

## Metadatos

Para editar los metadatos de una escena en el [Scene Editor en Creator Hub](/creator/content-creator-es/scene-editor/primeros-pasos/about-editor.md), abre una escena y haz clic en el **icono de lápiz**.

![](https://1216664193-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-d2147688ebde75948ba26a9fbe1261f9abdc66c7%2Fpencil-icon.png?alt=media\&token=21677d31-8915-4809-a60a-6674c7497d98)

Esto abre el menú de la escena, donde puedes configurar varias propiedades.

![](https://1216664193-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-5a3754defec68c898717a9468d29cf7d4e1d973e%2Fmetadata-ui.png?alt=media\&token=bab8a071-2670-4426-a54b-3c828aacb380)

Alternativamente, puedes editar directamente el `scene.json` archivo, donde se almacenan todos estos valores.

{% hint style="warning" %}
**📔 Nota**: No añadas campos personalizados al `scene.json` archivo que no se mencionen en esta página, ya que podría causar problemas al cargar tu escena.
{% endhint %}

## Título de la escena, descripción e imagen

Es muy importante darle a tu escena un título, una descripción y una imagen en miniatura para atraer a los jugadores y ayudarles a saber qué esperar.

Los jugadores verán esto mostrado en un modal cuando seleccionen las parcelas de tu escena en el mapa. También lo verán en una pantalla de confirmación cuando sean [teletransportados](/creator/content-creator-es/scenes-sdk7/interactividad/external-links.md) allí por otra escena. Configurar datos atractivos aquí puede ayudar significativamente a atraer tráfico a tu escena.

Cuando los jugadores navegan por el mundo y entran en tu escena, pueden leer el título de la escena debajo del minimapa.

![](https://1216664193-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-5b757762ae3f0480ff5f7d65a67e2d077be5847b%2Fscene-name.png?alt=media\&token=8f433eb7-6323-49ba-bacd-2a776cab947b)

Añade estos datos mediante el menú de la escena en el Scene Editor.

En caso de que quieras que otros desarrolladores puedan contactarte, también puedes añadir información de contacto a tu escena.

{% hint style="info" %}
**📔 Nota**: Los Worlds conservan su propio nombre, descripción e imagen en miniatura, separados de los metadatos de la escena. Si un World contiene una sola escena, los metadatos del World se actualizan a partir de los metadatos de la escena en cada publicación. Si contiene varias escenas, los metadatos del World son independientes y solo pueden editarse en el **sección Gestionar** pestaña del Creator Hub. Consulta [Metadatos de World vs metadatos de la escena](/creator/content-creator-es/scene-editor/publicar/publish-scene.md#world-metadata-vs-scene-metadata).
{% endhint %}

### Miniatura de la escena

La imagen en miniatura se establece en el `navmapThumbnail` campo. Debe ser una *.jpeg* o *.jpg* imagen con una relación de aspecto **16:9** . *1920x1080* píxeles es el tamaño objetivo. Otros tamaños funcionan siempre que mantengan la misma proporción 16:9.

Algunas partes de la plataforma muestran una versión cuadrada reducida de la imagen en miniatura, recortada hasta los *1080x1080* píxeles centrales. Mantén todo lo esencial, como texto o logotipos, dentro de esa zona segura para que no quede cortado.

{% hint style="warning" %}
**📔 Nota**: El Creator Hub rechaza imágenes que no sean 16:9. Si estableces `navmapThumbnail` a mano en una imagen con otra forma, puede estirarse o recortarse de forma impredecible por los clientes que la muestran. Consulta [Miniatura de la escena](/creator/content-creator-es/scene-editor/configurar/scene-settings.md#scene-thumbnail).
{% endhint %}

![Área segura de la miniatura de la escena: la imagen completa de 1920x1080, con el cuadrado central de 1080x1080 marcado como área segura y las franjas izquierda y derecha marcadas como recortadas](https://1216664193-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-3d512bbb08aca6a9630f7229176099dd565100b5%2Fscene-thumbnail-safe-area.png?alt=media\&token=0bf6d6ff-956e-4894-b621-19f8287c200c)

La imagen en `navmapThumbnail` debe ser una ruta a un archivo de imagen en la carpeta del proyecto. También puede ser un enlace URL a una imagen alojada en otro sitio.

{% hint style="warning" %}
**📔 Nota**: Si alojas una imagen en otro sitio, asegúrate de que este sea un sitio con políticas CORS permisivas para mostrar contenido en otros sitios.
{% endhint %}

## Categorías

Puedes añadir categorías a tu escena para ayudar a los jugadores a explorar Decentraland. Estas se usan en la [dApp Decentraland Places](https://places.decentraland.org) para categorizar cada lugar y facilitar que los jugadores encuentren lo que les interesa.

**Categorías** deben elegirse de una lista predefinida de opciones:

* 🎨 Arte
* 🕹️ Juego
* 🃏 Casino
* 👥 Social
* 🎶 Música
* 👠 Moda
* 🪙 Cripto
* 📚 Educación
* 🛍️ Tienda
* 🏢 Negocio
* 🏅 Deportes
* 🏃 Parkour

Una escena puede pertenecer a más de una categoría, con un máximo de 3 categorías listadas.

En el `scene.json` las categorías se enumeran en el `tags` array.

Estas son las categorías predefinidas:

* `art`
* `game`
* `casino`
* `social`
* `music`
* `fashion`
* `crypto`
* `education`
* `shop`
* `business`
* `sports`
* `parkour`

Por ejemplo, una escena podría etiquetarse como `game` y `casino` añadiendo lo siguiente al `scene.json`

```json
  "tags": [
    "game",
    "casino",
  ],
```

Después de eso, la escena aparece en la dApp Places bajo las `game` y `casino` categorías.

## Clasificación por edad

El **Clasificación por edad** campo se usa para clasificar el contenido de tu escena. Decentraland es una plataforma para mayores de 18 años. La siguiente opción está disponible:

* **🟡 `Un` para Adultos (18+)**: Este es el requisito mínimo de edad especificado en los [Términos de uso](https://decentraland.org/terms). Elige esta categoría si tu escena presenta contenido apto para adultos, como lenguaje moderado o intenso, violencia, contenido explícito, apuestas o sustancias como alcohol, tabaco y drogas.

Al editar la clasificación por edad mediante el `scene.json`, la clasificación es un **código de una sola letra**, escribe **Un** para adultos. El `clasificación` campo va en el nivel raíz del árbol JSON.

![](https://1216664193-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-641bfde710b047bcc83949bb7e54c794a59bc7f6%2Fcontent-moderation-flag-icon.png?alt=media\&token=8ed8919f-e077-45d4-9687-f0181e7c7835)

```json
 "rating": "A"
```

### Contenido restringido

Hay una tercera categoría para las escenas: 🔴 `R` para Restringido. Esta clasificación la aplican manualmente los Moderadores de contenido a las escenas que violan los [Política de Contenido](https://decentraland.org/content). Las violaciones pueden incluir, entre otras:

* Contenido sospechoso o spam
* Contenido abusivo u ofensivo
* Contenido sexual o degradante
* Abuso infantil
* Acoso o intimidación
* Promoción del terrorismo/la violencia
* Infracción de PI/derechos de autor

Las escenas con esta clasificación no se cargarán y nadie podrá interactuar con ellas. Si tu escena cae en esta categoría, debes revisarla y actualizarla para cumplir con los [Política de Contenido](https://decentraland.org/content).

## Conmutadores de funciones

Hay ciertas características que se pueden desactivar en escenas específicas para que los jugadores no puedan usarlas de forma abusiva. Configúralas en la **Ajustes** pestaña de la configuración de la escena.

![](https://1216664193-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-256dd7099b9a9089211e7ce443211d5abfb61de5%2Fscene-restrictions.png?alt=media\&token=21fd4ec0-561d-4be3-9c40-6ab7d73128d8)

Actualmente, solo se gestiona así la siguiente característica:

* **Chat de voz**: Se refiere a que los jugadores usan sus micrófonos para mantener conversaciones por Chat de voz con otros jugadores cercanos.
* **Desactivar experiencias portables**: Esta configuración establecerá el comportamiento de cualquier experiencia portable de un jugador mientras esté dentro de tu escena. Esto incluye no solo [experiencias portables](/creator/content-creator-es/scenes-sdk7/tipos-de-proyectos/portable-experiences.md) sino también [smart wearables](/creator/content-creator-es/scenes-sdk7/tipos-de-proyectos/smart-wearables.md). Con esta configuración, puedes elegir mantenerlas todas habilitadas (predeterminado), deshabilitarlas o ocultar su UI. Esto es útil para escenas en las que las experiencias portables podrían dar una ventaja injusta a algunos jugadores, por ejemplo usando un jetpack en un desafío de parkour. También se recomienda impedir esto en escenas donde se realizan transacciones de blockchain y donde una experiencia portable maliciosa podría suplantar potencialmente la UI de la escena.

En la `scene.json` archivo, estas opciones se gestionan en `featureToggles`. Las características correspondientes están habilitadas de forma predeterminada, salvo que se especifiquen como *disabled* en la `scene.json` thumbnail.png.

```json
"featureToggles": {
    "voiceChat": "disabled",
    "portableExperiences": "enabled" | "disabled" | "hideUi"
},
```

Si un `featureToggles` propiedad no existe en tu `scene.json` archivo, créala en el nivel raíz del árbol JSON.

### Propinas

Puedes recibir propinas de los jugadores que visiten tu escena. Para habilitar las propinas, ve a la **Detalles** pestaña de los ajustes de la escena y proporciona una dirección de Ethereum en **Dirección de la wallet del creador**.

![](https://1216664193-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-7e5ad3784efc0fe3c5f96c88d866683e2177e274%2Fcreator-wallet-address.png?alt=media\&token=2680fa93-72b5-45d3-a1c6-9df5f6517d97)

También puedes proporcionar la dirección para propinas de tu escena en el `scene.json` archivo, bajo el `creator` campo.

```json
  "creator": "0x1234567890123456789012345678901234567890"
```

Cuando un jugador visite tu escena, verá un icono de hucha en la parte superior izquierda de la pantalla. Al hacer clic en él se abre un modal donde puede enviarte una propina. También se puede acceder a este menú abriendo la información de tu escena en el mapa.

![](https://1216664193-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-96c1bf20f0a166699479dd1ef946cf297904caf2%2FTipIcon.png?alt=media\&token=7cb3c8a4-c8a6-42d9-9d79-8cdc02486f2c)

El modal de propinas permite al jugador seleccionar la cantidad de MANA que quiere enviar. El jugador debe tener MANA en su wallet para enviar una propina. Si la dirección que proporcionaste está vinculada a un Decentraland NAME, este modal mostrará el nombre del propietario de la wallet junto a la dirección de Ethereum.

![](https://1216664193-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-25d35de64b10216b0bcf6e2cc8061cf160941673%2Ftipping-modal.png?alt=media\&token=e52b3950-3993-477a-baa2-606dd4297b69)

Recibirás una notificación en la pestaña de notificaciones de Decentraland cada vez que un jugador te envíe una propina.

## Ubicación de aparición

El **Configuración de aparición** en la **Ajustes** pestaña define dónde aparecen los jugadores cuando acceden directamente a tu escena, ya sea escribiendo directamente las coordenadas en el navegador o teletransportándose.

![](https://1216664193-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-791de650bd7d09ceef08632a0191fbe6f1ac52fa%2Fspawn-point-ui.png?alt=media\&token=b9c29088-79f3-4dd8-bdb5-196dc5f02763)

Tu escena podría tener objetos que bloqueen el movimiento de los jugadores si aparecen encima de ellos, como árboles o escaleras. Tu escena también podría tener terreno elevado. Para evitar que los jugadores aparezcan en lugares donde no puedan moverse, puedes establecer varias posiciones de aparición en ubicaciones específicas.

La posición consiste en coordenadas dentro de la escena. Estos números se refieren a una posición dentro de la parcela, similar a lo que usarías en el código de la escena en un componente Transform para [posicionar una Entity](/creator/content-creator-es/scenes-sdk7/fundamentos-del-contenido-3d/entity-positioning.md).

{% hint style="warning" %}
**📔 Nota**: Todos los puntos de aparición deben estar dentro de los parcels que componen la escena. No puedes hacer aparecer a un jugador fuera del espacio de estos parcels.
{% endhint %}

Consulta la **Desplazamiento aleatorio** casilla para desplazar aleatoriamente a los jugadores que aparecen alrededor del punto de aparición. Esto evita que todos los jugadores aparezcan superpuestos entre sí cuando aparecen, lo que se ve especialmente mal en escenas concurridas. El **Desplazamiento máximo** valor es la distancia máxima posible desde el punto de aparición original, tanto en el eje X como en el Z.

Configura los **Objetivo de cámara** para controlar la dirección hacia la que miran los jugadores cuando entran en tu escena. Esto te da un mejor control sobre la primera impresión que reciben y puede ayudarte a orientarlos hacia una dirección concreta. De forma predeterminada, esto apunta a `{x: 8, y:1, z:8}`, que es el centro de la escena para escenas de una sola parcela, o el centro de la parcela inferior izquierda para escenas más grandes.

expande **Añadir punto de aparición** para listar tantos puntos de aparición como quieras. Los jugadores aparecerán aleatoriamente en uno de ellos.

### Puntos de aparición en JSON

Los puntos de aparición también se pueden configurar mediante el `scene.json` archivo, en el `spawnPoints` campo.

```json
  "spawnPoints": [
    {
      "name": "spawn1",
      "position": {
        "x": 5,
        "y": 1,
        "z": 4
      }
    }
  ],
```

Una sola escena puede tener varios puntos de aparición. Esto es especialmente útil en escenas grandes. Para tener muchos puntos de aparición, simplemente enuméralos como un array.

```json
  "spawnPoints": [
    {
      "name": "spawn1",
      "position": {
        "x": 5,
        "y": 1,
        "z": 4
      }
	},
	{
      "name": "spawn2",
      "position": {
        "x": 3,
        "y": 1,
        "z": 1
      }
    }
  ],
```

Cuando hay varios puntos de aparición, se selecciona el más cercano a las coordenadas indicadas por el jugador.

Si un punto de aparición está marcado como `default`, siempre se utilizará, independientemente de si es el más cercano. Si hay varios puntos de aparición marcados como `default`, se selecciona el más cercano.

```json
  "spawnPoints": [
    {
      "name": "spawn1",
      "default": true,
      "position": {
        "x": 5,
        "y": 1,
        "z": 4
      }
	},
	{
      "name": "not-used",
      "position": {
        "x": 3,
        "y": 1,
        "z": 1
      }
    }
  ],
```

**Regiones de aparición**

Puedes configurar una región completa en la escena para que actúe como punto de aparición. Al especificar un array de dos números para cada dimensión de la posición, los jugadores aparecerán en una ubicación aleatoria dentro de ese rango. Esto ayuda a evitar que los jugadores que entran se superpongan. Ten en cuenta que las tres dimensiones deben usar el mismo formato: o bien todas números individuales, o bien todos arrays de dos números. Para mantener una dimensión fija, usa un array con el mismo número dos veces, como `"y": [1,1]`.

```json
  "spawnPoints": [
    {
      "name": "region",
      "position": {
        "x": [1,5],
        "y": [1,1],
        "z": [2,4]
      }
    }
  ],
```

En el ejemplo anterior, los jugadores pueden aparecer en cualquier lugar del cuadrado cuyas esquinas están en *1,1,2* y *5,1,4*.

Una escena también puede tener varias regiones de aparición, igual que puede tener varios puntos de aparición.

```json
  "spawnPoints": [
    {
      "name": "region1",
      "position": {
        "x": [1,5],
        "y": [1,1],
        "z": [2,4]
      }
    },
      {
      "name": "region2",
      "position": {
        "x": [1,5],
        "y": [1,1],
        "z": [6,8]
      }
    }
  ],
```

**Rotation**

También puedes especificar la rotación de los jugadores cuando aparecen, para que estén mirando en una dirección concreta.

Simplemente añade un `cameraTarget` campo a los datos del punto de aparición. El valor de `cameraTarget` debe hacer referencia a una ubicación en el espacio, con *x*, *y* y *z* coordenadas relativas a la escena, igual que el `posición` campo.

```json
  "spawnPoints": [
    {
      "name": "spawn1",
      "position": {
        "x": 5,
        "y": 1,
        "z": 4
      },
      "cameraTarget": {
        "x": 10,
        "y": 1,
        "z": 4
      }
    }
  ],
```

Este ejemplo hace aparecer a un jugador en *5, 1, 4* mirando hacia el Este hacia *10, 1, 4*. Si la posición de aparición es un rango, la rotación del jugador siempre coincidirá con el objetivo indicado. Si hay varios puntos de aparición, cada uno puede tener su propio objetivo independiente.

## Permisos requeridos

El `requiredPermissions` propiedad gestiona varias características controladas que podrían usarse de forma abusiva y perjudicar la experiencia de un jugador.

{% hint style="warning" %}
**📔 Nota**: Los permisos solo son relevantes en [experiencias portables](/creator/content-creator-es/scenes-sdk7/tipos-de-proyectos/portable-experiences.md) y [smart wearables](/creator/content-creator-es/scenes-sdk7/tipos-de-proyectos/smart-wearables.md). Las escenas normales (tanto en parcelas como en Worlds) no se ven afectadas por estos permisos y pueden usar libremente la funcionalidad correspondiente.
{% endhint %}

Estas características están bloqueadas para su uso en la escena, salvo que se solicite el permiso en el `scene.json` thumbnail.png.

```json
"requiredPermissions": [
    "ALLOW_TO_MOVE_PLAYER_INSIDE_SCENE",
		"OPEN_EXTERNAL_LINK",
  ],
```

Se pueden solicitar los siguientes permisos:

* `ALLOW_TO_MOVE_PLAYER_INSIDE_SCENE`: Se refiere a [mover a un Player](/creator/content-creator-es/scenes-sdk7/interactividad/avatares/move-player.md)
* `ALLOW_TO_TRIGGER_AVATAR_EMOTE`: Se refiere a [Reproducir emotes en el avatar del jugador](/creator/content-creator-es/scenes-sdk7/interactividad/avatares/avatar-animations.md)
* `ALLOW_MEDIA_HOSTNAMES`: *(legado)* Se refiere a transmitir media (como [video](/creator/content-creator-es/scenes-sdk7/media/video-playing.md) o [el audio](/creator/content-creator-es/scenes-sdk7/media/audio-streaming.md)) desde dominios externos.
* `USE_WEB3_API`: Se refiere a interactuar con las wallets del navegador del jugador, para realizar transacciones o firmar mensajes.
* `USE_FETCH`: Se refiere a enviar solicitudes HTTP a servidores de terceros, usando `fetch` o `signedFetch`
* `USE_WEBSOCKET`: Se refiere a abrir conexiones WebSocket con servidores de terceros
* `OPEN_EXTERNAL_LINK`: Se refiere a pedir al jugador que abra enlaces a sitios externos

Si un `requiredPermissions` propiedad no existe en tu `scene.json` archivo, créala en el nivel raíz del árbol JSON.

Al usar `ALLOW_MEDIA_HOSTNAMES`, incluye también un `allowedMediaHostnames` campo en el nivel raíz, enumerando los dominios desde los que la escena puede transmitir media:

```json
"requiredPermissions": [
    "ALLOW_MEDIA_HOSTNAMES"
  ],
"allowedMediaHostnames": [
    "somehost.com",
    "otherhost.xyz"
  ],
```

{% hint style="warning" %}
**📔 Nota**: `ALLOW_MEDIA_HOSTNAMES` y `allowedMediaHostnames` son configuraciones de legado, no deberías necesitar añadirlas. Solo se aplicaban en versiones anteriores del cliente web; los clientes actuales de Decentraland reproducen media externa sin ellas.
{% endhint %}

## Parcelas de la escena

Cuando [al desplegar](/creator/content-creator-es/scenes-sdk7/publicacion/publishing.md) una escena, el contenido se carga en las coordenadas asignadas en la configuración de la escena. Una escena puede incluir una sola parcela, o una lista de hasta decenas de ellas.

Edítalo en la segunda pestaña del menú de la escena en el Scene Editor.

![](https://1216664193-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-54a1901635efda3371172e647c03614733baca17%2Fscene-parcels-3x3.png?alt=media\&token=e7133392-8474-4127-b075-5a3f4e7a4e8d)

Usa los dropdowns y haz clic en **Aplicar diseño** para cambiar las dimensiones de tu escena. También puedes hacer clic en cada parcel individual para quitarla de tu diseño.

![](https://1216664193-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-bbc2ecb567600843892a8c8873aaa70107e66839%2Fscene-parcels-toggled.png?alt=media\&token=aa4c4612-48ac-458d-afec-453d5168d1e8)

La escena predeterminada tiene sus coordenadas establecidas en *0,0*. No necesitas cambiar esto mientras desarrollas una escena sin conexión, a menos que necesites ocupar varias parcelas. Tendrás que cambiarlo antes de desplegar a coordenadas donde tengas permisos de despliegue.

También puedes cambiar las coordenadas de la escena en el `scene.json` thumbnail.png:

```json
 "scene": {
    "parcels": [
      "54,-14"
    ],
    "base": "54,-14"
  }
```

El `base` campo define qué parcela considerar como la parcela base. Si tu escena tiene una sola parcela, la base debe ser esa parcela. Si tu escena tiene varias parcelas, la base debe ser la parcela inferior izquierda (suroeste). Todas las posiciones de las Entities se miden en relación con la esquina suroeste de esta parcela.

Para mostrar varias parcelas en la vista previa de la escena, enumera tantas parcelas como pienses usar. No necesitan ser exactamente las parcelas a las que desplegarás, pero todas deben ser adyacentes y estar dispuestas en las mismas posiciones relativas.

```json
 "scene": {
    "parcels": [
      "54,-14",  "55,-14"
    ],
    "base": "54,-14"
  }
```

{% hint style="warning" %}
**📔 Nota**: El tamaño máximo de escena que puedes establecer es de 300 x 300 parcelas (90.000 parcelas en total).
{% endhint %}

### Establecer parcelas mediante la línea de comandos

Puedes establecer las parcelas de tu escena ejecutando el `npx update-parcels` comando en la carpeta de tu escena. Esto es especialmente útil para escenas grandes, ya que no necesitas enumerar cada parcela involucrada.

{% hint style="warning" %}
**📔 Nota**: `update-parcels` es una herramienta comunitaria de terceros, no forma parte del SDK oficial de Decentraland y no está mantenida por la Decentraland Foundation.
{% endhint %}

**Parcela única**

Pasa un único argumento con las coordenadas de la escena. Esta coordenada también se establece como la parcela base.

`npx update-parcels <parcel>`

Por ejemplo:

`npx update-parcels 15,-26`

**Varias parcelas**

Pasa dos argumentos: la parcela suroeste y la parcela noreste. La parcela suroeste también se establece como la parcela base.

`npx update-parcels <parcel> <parcel>`

{% hint style="info" %}
**💡 Consejo**: La parcela suroeste es siempre la que tiene los números más bajos en ambas *X* y *Y* coordenadas.
{% endhint %}

Por ejemplo:

`npx update-parcels 15,-26 17,-24`

Este comando genera una escena de 3x3, con su parcela base en `15,-26`.

**Personalizar parcela base**

Pasa tres argumentos: la parcela suroeste, la parcela noreste y la parcela que se usará como parcela base.

`npx update-parcels <parcel> <parcel> <parcel>`

{% hint style="warning" %}
**📔 Nota**: La parcela base debe ser una de las parcelas de la escena.
{% endhint %}

**Escenas no cuadradas**

Los comandos anteriores generan escenas de forma rectangular. Las escenas de Decentraland pueden tener formas en L u otras configuraciones. Puedes generar un cuadrado más grande con `npx update-parcels` y luego eliminar manualmente las parcelas sobrantes del `scene.json` thumbnail.png.

{% hint style="warning" %}
**📔 Nota**: La parcela base debe ser una de las parcelas de la escena.
{% endhint %}

## Hora del día del skybox

Puedes establecer una hora fija del día para tu escena. Todos los jugadores verán la escena con esta hora del día, y el skybox no seguirá el ciclo día/noche.

Abre la configuración de la escena y haz clic en la **Ajustes** pestaña para encontrar la **Skybox** sección. Desmarca la **Automático** opción y establece la hora del día que quieras.

También puedes establecer la hora del día del skybox en el código de tu escena. Para hacerlo, añade la siguiente sección a tu `scene.json` en el nivel raíz:

```json
 "skyboxConfig": {
    "fixedTime": 36000
  }
```

El número se refiere a la cantidad de segundos desde el inicio del día, que va de 0 (que representa *00:00*) a 86400 (que representa *24:00*). Cualquier número mayor que 86400 también se interpreta como medianoche.

Aquí hay algunos ejemplos más de valores válidos:

* 0 segundos => *00:00*
* 21600 segundos => *06:00*
* 43200 segundos => *12:00*
* 64800 segundos => *18:00*
* 86400 segundos => *24:00*

## Terreno de paisaje

Las escenas publicadas en un [Decentraland World](https://github.com/decentraland/docs/tree/main/creator/worlds/about.md) están rodeadas por un paisaje generado automáticamente de praderas, árboles y mar. Si este paisaje no coincide con la estética de tu escena, por ejemplo una escena que flota sobre agua abierta o en el espacio, puedes desactivarlo. Para ello, añade el siguiente campo a tu `scene.json` en el nivel raíz:

```json
{
	"landscapeTerrain": false
}
```

Con `landscapeTerrain` establecido en `false`, no se renderiza nada más allá de las parcelas de tu escena y los jugadores solo ven el skybox alrededor de la escena. Quitar el terreno circundante también libera recursos de renderizado, lo que puede ayudar a que tu escena funcione con mayor fluidez.

Si el campo no se establece, su valor predeterminado es `true` y el paisaje se muestra con normalidad.

{% hint style="warning" %}
**📔 Nota**: Este campo solo se aplica a los Worlds que contienen una sola escena. Se ignora en Genesis City, donde el entorno siempre lo determinan las parcelas vecinas. También puedes usarlo mientras ejecutas una vista previa local de tu escena, para comprobar cómo se ve la escena sin el paisaje.
{% endhint %}

## Configuración de Worlds

Al publicar en un [Decentraland World](/creator/content-creator-es/scenes-sdk7/publicacion/publishing-options.md#decentraland-worlds), puedes configurar varios ajustes específicos de World en tu `scene.json` archivo usando la `worldConfiguration` object.

### Configuración básica de World

Para publicar en un World, debes especificar el NAME o el dominio ENS en tu `scene.json`:

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

El **name** especificado puede ser un NAME de Decentraland o un dominio ENS y debe pertenecer a la wallet que firma el despliegue (o a cualquier wallet a la que se le haya dado permiso mediante listas de control de acceso).

### Configuración del servicio de comunicación

El `fixedAdapter` propiedad indica qué Communication Service debe usar la escena. Por ahora, solo se permite el valor `offline:offline` . Cuando se establece, la escena no tendrá ningún Communication Service y cada usuario que entre en ese World estará siempre solo. Si no se establece, el servidor de contenido de Worlds generará un valor adecuado según cómo esté configurado.

```json
{
	"worldConfiguration": {
		"name": "my-name.dcl.eth",
		"fixedAdapter": "offline:offline"
	}
}
```

{% hint style="warning" %}
**📔 Nota**: Establecer `fixedAdapter` en `"offline:offline"` (o habilitar **Single Player** en la configuración de World mediante el Creator Hub) deshabilita la transmisión en vivo. La función de streaming depende de la capa de comunicaciones para entregar video a los espectadores. Si necesitas transmisión en vivo en tu World, no uses esta opción.
{% endhint %}

### Configuración de listado en Places

Todos los Worlds se incluyen automáticamente en la página de Places, a menos que optes por no hacerlo. Si deseas excluir tus Worlds de la indexación en Places, puedes añadir lo siguiente:

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

### Ejemplo completo

Aquí tienes un ejemplo completo con todas las opciones de configuración de World:

```json
{
	"worldConfiguration": {
		"name": "my-name.dcl.eth",
		"fixedAdapter": "offline:offline",
		"placesConfig": {
			"optOut": true
		}
	}
}
```

Consulta [Publicar en Worlds](/creator/content-creator-es/scenes-sdk7/publicacion/publishing.md#publishing-to-worlds) para obtener más información sobre publicar en Worlds.

## Obtener metadatos desde el código de la escena

[Referencia de la API de la escena](https://js-sdk-toolchain.pages.dev/modules/js_runtime_apis.__system_Scene_)

Es posible que necesites el código de tu escena para acceder a campos de los metadatos de la escena, como las parcelas en las que se despliega la escena o las posiciones de los puntos de aparición. Esto es especialmente útil para escenas que están pensadas para ser replicadas, o para código que está pensado para reutilizarse en otras escenas. También es muy útil para las bibliotecas que necesitan saber dónde están los límites de la escena.

Para acceder a estos datos, primero importa el `getSceneInformation` función:

```ts
import { getSceneInformation } from '~system/Runtime'
```

Entonces puedes llamar a la `getSceneInformation()` función, que devuelve un objeto JSON que incluye la mayor parte del contenido del archivo scene.json. El ejemplo siguiente muestra cómo acceder a varios de los campos más comunes de la respuesta de esta función:

```ts
import { getSceneInformation } from '~system/Runtime'

executeTask(async () => {
  const sceneInfo = await getSceneInformation({})

  if (!sceneInfo) return
  console.log("SCENE INFO: ", sceneInfo)
})
```

{% hint style="warning" %}
**📔 Nota**: `getSceneInformation()` debe ejecutarse como una [función async](/creator/content-creator-es/scenes-sdk7/patrones-de-programacion/async-functions.md), ya que la respuesta puede tardar una fracción de segundo o más en devolver datos. No uses la `getSceneInfo()` función.
{% endhint %}

El objeto devuelto por `getSceneInformation()` incluye lo siguiente:

* `baseUrl`: La URL base donde está alojado el contenido de la escena
* `content`: Un array con todos los archivos de la escena, incluido su hash, que pueden usarse junto con la baseUrl para recuperarlos.
* `metadataJson`: El contenido completo del scene.json de la escena, como una cadena. Debes hacer parse de esto para obtener valores específicos.
* `urn`: El urn único de la escena en su conjunto.

El ejemplo a continuación analiza el contenido de `metadataJson` para obtener valores de las propiedades del archivo scene.json

```ts
import { getSceneInformation } from '~system/Runtime'

executeTask(async () => {
	const sceneInfo = await getSceneInformation({})

	if (!sceneInfo) return

	const sceneJson = JSON.parse(sceneInfo.metadataJson)
	const spawnPoints = sceneJson.spawnPoints
	const parcels = sceneJson.scene.parcels
	console.log({ parcels, spawnPoints })
})
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.decentraland.org/creator/content-creator-es/scenes-sdk7/tipos-de-proyectos/scene-metadata.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
