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

# Metadata de la scene

Aprende cómo configurar una scene y establecer sus metadata.

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

Ver [Archivos en una scene](/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 scene.

## Metadata

Para editar los metadatos de una scene en el [Scene Editor en Creator Hub](/creator/content-creator-es/scene-editor/comenzar/about-editor.md), abre una scene 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)

Esto abre el menú de la scene, 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)

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

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

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

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

Los jugadores verán esto mostrado en un modal cuando seleccionen los parcels de tu scene 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 scene. Configurar datos atractivos aquí puede ayudar significativamente a atraer tráfico a tu scene.

Cuando los jugadores navegan por el mundo y entran a tu scene, pueden leer el título de la scene 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)

Agrega estos datos mediante el menú de la scene en el Scene Editor.

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

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

### Miniatura de la scene

La miniatura se establece en el `navmapThumbnail` campo. Debe ser una imagen *.png* o *.jpg* con una **16:9** relación de aspecto. El tamaño recomendado es *1920x1080* píxeles. También se admiten otros tamaños, siempre que mantengan las mismas proporciones 16:9; de lo contrario, la imagen puede estirarse.

Algunas partes de la plataforma muestran una versión reducida cuadrada de la miniatura, recortada al centro de *1080x1080* píxeles. Mantén dentro de esa zona segura todo lo esencial, como texto o logotipos, para que no se recorte.

![Zona segura de la miniatura de la scene: la imagen completa de 1920x1080, con el cuadrado central de 1080x1080 marcado como zona segura y las bandas 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)

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

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

## Categorías

Puedes agregar categorías a tu scene 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 hacer que sea más fácil para los jugadores encontrar lo que les interesa.

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

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

Una scene 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 listan en el `array` .

Estas son las categorías predefinidas:

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

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

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

Después de eso, la scene aparece listada 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 scene. Decentraland es una plataforma para mayores de 18 años. La siguiente opción está disponible:

* **🟡 `Una` para adultos (18+)**: Este es el requisito mínimo de edad según lo especificado en los [Términos de uso](https://decentraland.org/terms). Elige esta categoría si tu scene presenta contenido apropiado 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 **Una** para adultos. La `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)

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

### Contenido restringido

Existe una tercera categoría para las scenes: 🔴 `R` para Restringido. Esta clasificación es aplicada manualmente por los Moderadores de contenido a scenes que infringen la [Política de contenido](https://decentraland.org/content). Las infracciones pueden incluir, entre otras:

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

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

## Feature Toggles

Hay ciertas funciones que pueden deshabilitarse en scenes específicas para que los jugadores no puedan usarlas de forma abusiva. Configúralas en la **pestaña de Configuración** de la configuración de la scene.

![](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)

Actualmente, solo se maneja de esta forma la siguiente función:

* **Chat de voz**: Se refiere a que los jugadores usen sus micrófonos para conversar por chat de voz con otros jugadores cercanos.
* **Deshabilitar Portable Experiences**: Esta configuración definirá el comportamiento de cualquier Portable Experience de un jugador mientras esté dentro de tu scene. Esto incluye no solo [Portable Experiences](/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 u ocultar su UI. Esto es útil para scenes donde las Portable Experiences podrían dar una ventaja injusta a algunos jugadores, por ejemplo al usar un jetpack en un desafío de parkour. También se recomienda impedirlas en scenes donde tienen lugar transacciones de blockchain y donde una Portable Experience maliciosa podría potencialmente suplantar la UI de la scene.

En el `scene.json` archivo, estos toggles se administran bajo `featureToggles`. Las funciones correspondientes están habilitadas de forma predeterminada, a menos que se especifiquen como *deshabilitadas* en el `scene.json` archivo.

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

Si una `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 scene. Para habilitar las propinas, ve a la **Detalles** pestaña de configuración de la scene y proporciona una dirección de Ethereum en **dirección de 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)

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

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

Cuando un jugador visita tu scene, verá un icono de alcancía 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 scene 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)

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 NAME de Decentraland, 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)

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

## Lugar de aparición

El **Configuración de aparición** en el **pestaña de Configuración** define dónde aparecen los jugadores cuando acceden directamente a tu scene, 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)

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

La posición consiste en coordenadas dentro de la scene. Estos números se refieren a una posición dentro del parcel, similar a lo que usarías en el código de la scene en un componente Transform para [posicionar una Entity](/creator/content-creator-es/scenes-sdk7/conceptos-basicos-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 scene. No puedes hacer aparecer a un jugador fuera del espacio de estos parcels.
{% endhint %}

Marca la casilla **Desplazamiento aleatorio** 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 scenes concurridas. El **Desplazamiento máximo** valor es la distancia máxima posible desde el punto de aparición original, tanto en los ejes X como Z.

Establece el **objetivo de cámara** para controlar la dirección en la que miran los jugadores cuando entran a tu scene. Esto te da un mejor control sobre su primera impresión y puede ayudarte a guiarlos hacia una dirección específica. De forma predeterminada apunta a `{x: 8, y:1, z:8}`, que es el centro de la scene para scenes de un solo parcel, o el centro del parcel inferior izquierdo para scenes más grandes.

Haz clic **Agregar 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 pueden configurarse mediante el `scene.json` archivo, en el `spawnPoints` campo.

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

Una sola scene puede tener múltiples puntos de aparición. Esto es especialmente útil en scenes 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 múltiples 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 `predeterminado`, siempre se usará, independientemente de si es el más cercano. Si hay múltiples puntos de aparición marcados como `predeterminado`, 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 establecer una región completa en la scene para que actúe como un 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 fija una dimensión, 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 scene también puede tener múltiples regiones de aparición, al igual que puede tener múltiples 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]
      }
    }
  ],
```

**Rotación**

También puedes especificar la rotación de los jugadores cuando aparecen, para que miren en una dirección específica.

Simplemente agrega 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 scene, igual que la `position` 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 al 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 múltiples puntos de aparición, cada uno puede tener su propio objetivo independiente.

## Permisos requeridos

El `requiredPermissions` gestiona varias funciones 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 [Portable Experiences](/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 scenes normales (tanto en parcels como en Worlds) no se ven afectadas por estos permisos, y pueden usar libremente la funcionalidad correspondiente.
{% endhint %}

Estas funciones no se pueden usar en la scene a menos que el permiso se solicite en el `scene.json` archivo.

```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/avatars/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/avatars/avatar-animations.md)
* `ALLOW_MEDIA_HOSTNAMES`: *(legacy)* Se refiere a transmitir media (como [video](/creator/content-creator-es/scenes-sdk7/media/video-playing.md) o [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 pedirle al jugador que abra enlaces a sitios externos

Si una `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 se permite a la scene transmitir media:

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

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

## Parcels de la scene

Al [desplegar](/creator/content-creator-es/scenes-sdk7/publicacion/publishing.md) una scene, el contenido se carga en las coordenadas asignadas en la configuración de la scene. Una scene puede incluir un solo parcel, o una lista de hasta decenas de ellos.

Edita esto en la segunda pestaña del menú de la scene 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)

Usa los desplegables y haz clic en **Aplicar diseño** para cambiar las dimensiones de tu scene. También puedes hacer clic en cada parcel individual para desactivarlo 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)

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

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

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

El `base` campo define qué parcel considerar como el parcel base. Si tu scene tiene un solo parcel, la base debe ser ese parcel. Si tu scene tiene múltiples parcels, la base debe ser el parcel inferior izquierdo (suroeste). Todas las posiciones de las entidades se miden con respecto a la esquina suroeste de este parcel.

Para mostrar múltiples parcels en la vista previa de la scene, enumera tantos parcels como vayas a usar. No necesitan ser exactamente los parcels a los que desplegarás, pero todos deben ser adyacentes y estar organizados 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 scene que puedes establecer es de 300 x 300 parcels (90,000 parcels en total).
{% endhint %}

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

Puedes establecer los parcels en tu scene ejecutando el `npx update-parcels` comando en la carpeta de tu scene. Esto es especialmente útil para scenes grandes, ya que no necesitas enumerar cada parcel involucrado.

{% 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 Fundación Decentraland.
{% endhint %}

**Un solo parcel**

Pasa un solo argumento con las coordenadas de la scene. Esta coordenada también se establece como el parcel base.

`npx update-parcels <parcel>`

Por ejemplo:

`npx update-parcels 15,-26`

**Varias parcelas**

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

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

{% hint style="info" %}
**💡 Consejo**: La parcela del suroeste siempre es 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: las parcelas del suroeste y del 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 todas escenas de forma rectangular. Las escenas de Decentraland pueden tener forma de L u otras configuraciones. Puedes generar un cuadrado más grande con `npx update-parcels` y luego eliminar manualmente las parcelas sobrantes de la `scene.json` archivo.

{% 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 del día fija 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 los ajustes de la escena y haz clic en la **pestaña de Configuración** pestaña para encontrar la **Skybox** sección. Desmarca la **Auto** 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 ello, añade la siguiente sección a tu `scene.json` en la raíz:

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

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

Aquí hay más ejemplos 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 del 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 pradera, árboles y mar. Si este paisaje no encaja con la estética de tu escena, por ejemplo una escena que flota en aguas abiertas o en el espacio, puedes desactivarlo. Para ello, añade el siguiente campo a tu `scene.json` en la 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. Eliminar 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 como de costumbre.

{% hint style="warning" %}
**📔 Nota**: Este campo solo se aplica a 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 sin el paisaje.
{% endhint %}

## Configuración de World

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 el `worldConfiguration` objeto.

### 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 al wallet que firma el deployment (o a cualquier wallet a la que se le haya dado permiso mediante Access Control Lists).

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

El `fixedAdapter` la propiedad indica qué Communication Service debe usar la escena. Por el momento, solo se permite el `offline:offline` valor. 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 a través de Creator Hub) desactiva 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 del 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 agregar 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
		}
	}
}
```

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

## Obtener metadata 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_)

Puede que necesites el código de tu escena para acceder a campos de los metadatos de la escena, como las parcelas en las que está desplegada la escena, o las posiciones de los spawn points. Esto es especialmente útil para escenas que están pensadas para replicarse, o para código que se pretende reutilizar en otras escenas. También es muy útil para las libraries que necesitan saber dónde están los límites de la escena.

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

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

Luego 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 los datos. No uses la función obsoleta `getSceneInfo()` función.
{% endhint %}

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

* `baseUrl`: La URL base donde se aloja 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 obtenerlos.
* `metadataJson`: El contenido completo del scene.json de la escena, como una cadena. Debes analizarlo para obtener valores específicos.
* `urn`: El urn único de la escena en su conjunto.

El ejemplo siguiente analiza el contenido de `metadataJson` para obtener valores de propiedades en el 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 dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

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

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
