> 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/escenas-sdk7/tipos-de-proyectos/scene-files.md).

# Archivos de scene

Después de [crear una nueva escena](/creator/content-creator-es/escenas-sdk7/primeros-pasos/sdk-101.md), la carpeta de la escena tendrá una serie de archivos con contenido predeterminado.

## Archivos predeterminados en una escena

Las escenas incluyen los siguientes archivos:

* **src/index.ts**: El punto de entrada de la escena.
* **scene.json**: El manifest que contiene metadatos de la escena.
* **package.json** y **package-lock.json**: Especifica las versiones de todas las dependencias de la escena.
* **tsconfig.json**: Archivo de configuración de TypeScript.
* **.dclignore**: Enumera los archivos de tu proyecto que no se subirán cuando publiques tu escena.
* **assets/scene/main.composite**: Archivo generado automáticamente que incluye todo lo que agregaste y configuraste visualmente en el Scene Editor en Creator Hub. No está pensado para ser legible por humanos. Es un ejemplo de un [composite](/creator/content-creator-es/escenas-sdk7/arquitectura/composites.md), un archivo que describe un árbol de entities y components. Las escenas creadas mediante la CLI incluyen en su lugar un `main.crdt` archivo en el nivel raíz.

### index.ts

Este es el punto de entrada al código personalizado de tu escena. Podrías incluir toda la lógica de tu escena en este archivo, aunque para mayor claridad en la mayoría de los casos recomendamos distribuir tu código en varios otros *.ts* archivos.

Si dependes solo del Scene Editor y [Smart Items](/creator/content-creator-es/scene-editor/interactividad/smart-items.md), no necesitarás modificar este archivo.

Si tienes intención de escribir código personalizado, lo más probable es que solo necesites editar este y otros archivos .ts para crear tu escena. Contiene el código que genera las [entities, components](/creator/content-creator-es/escenas-sdk7/arquitectura/entities-components.md) y [systems](/creator/content-creator-es/escenas-sdk7/arquitectura/systems.md) de tu escena.

Al ejecutar la escena, el contenido de tus `.ts` archivos se compila en un solo `.js` archivo, `bin/index.js`. Al compilar para producción, este archivo también se minifica.

{% hint style="warning" %}
**📔 Nota**: Puedes usar otra herramienta o lenguaje en lugar de TypeScript, siempre que tus scripts estén contenidos dentro de un único archivo de JavaScript (bin/index.js). Todas las declaraciones de tipos proporcionadas están hechas en TypeScript, y otros lenguajes y transpilers no son compatibles oficialmente.
{% endhint %}

### scene.json

El *scene.json* archivo es un manifest con formato JSON para una escena en el mundo. Una escena puede abarcar una sola o varias parcelas de LAND. El *scene.json* manifest describe qué objetos existen en la escena, una lista de cualquier asset necesario para renderizarla, información de contacto del propietario de la parcela y ajustes de seguridad.

La mayoría de los campos del *scene.json* archivo pueden editarse directamente en la UI del Scene Editor. Consulta [Configuración de la escena](/creator/content-creator-es/scene-editor/comenzar/scene-editor-essentials.md#scene-settings).

![](/files/d5b05592bfedc9864a28f10b6d95657be8f579cc)

Para obtener más información, consulta [scene metadata](/creator/content-creator-es/escenas-sdk7/tipos-de-proyectos/scene-metadata.md#metadata).

Todos estos metadatos son opcionales para previsualizar la escena localmente, pero parte de ellos es necesaria para desplegarla. Puedes cambiar esta información manualmente en cualquier momento.

### package.json

Este archivo proporciona información a NPM que le permite identificar el proyecto, así como gestionar las dependencias del proyecto. Las escenas de Decentraland requieren un paquete principal:

* **@dcl/sdk**: La dependencia fundamental del Decentraland SDK, incluyendo definiciones y tipos para el Engine, components, systems, etc.
* **@dcl/js-runtime**: Una serie de declaraciones de tipos que facilita la integración de @dcl/sdk.

Tu escena puede incluir cualquier cantidad de otros paquetes, por ejemplo para incluir [bibliotecas](https://studios.decentraland.org/resources?sdk_version=SDK7\&resource_type=Library) que pueden ayudar a facilitar la escritura de código o habilitar funcionalidades especiales.

### package-lock.json

Este archivo enumera las versiones de todas las demás dependencias del proyecto. Estas versiones están bloqueadas, lo que significa que el compilador usará literalmente la misma versión menor indicada aquí.

Puedes cambiar manualmente cualquier versión de un paquete editando este archivo.

### tsconfig.json

Los directorios que contienen un *tsconfig.json* archivo son directorios raíz para proyectos de TypeScript. El *tsconfig.json* archivo especifica los archivos raíz y las opciones necesarias para compilar tu proyecto de TypeScript a JavaScript.

Al instalar bibliotecas adicionales en tu escena, se debería añadir automáticamente una entrada a este archivo. Para instalar bibliotecas de utilidades de Decentraland, no debería ser necesario hacer cambios manualmente en este archivo.

## Ubicaciones recomendadas de archivos

Ten en cuenta que cuando despliegues tu escena en Decentraland, cualquier asset o biblioteca externa que se necesite para usar tu escena debe estar empaquetado dentro de la carpeta de la escena o estar disponible a través de un servidor remoto.

Todo lo que deba ejecutarse en el cliente del jugador debe estar ubicado dentro de la carpeta de la escena. No deberías hacer referencia a archivos o bibliotecas instaladas en otra parte de tu máquina local, porque no estarán disponibles para la escena desplegada.

Sugerimos usar estos nombres de carpetas de forma consistente para almacenar los diferentes tipos de assets que tu escena pueda necesitar:

* Modelos 3D: `assets/scene/models`
* Videos: `assets/scene/videos`
* Archivos de sonido: `assets/scene/sounds`
* Archivos de imagen para texturas (excepto para modelos glTF): `assets/scene/materials`
* *.ts* definiciones para components `/src/components`
* *.ts* definiciones para systems `/src/systems`

{% hint style="warning" %}
**📔 Nota**: Los archivos auxiliares para modelos glTF, como sus archivos de imagen de textura o *.bin* archivos, deben colocarse siempre en la misma carpeta que la del modelo *.gltf* o *.glb* archivo.
{% endhint %}

{% hint style="warning" %}
**📔 Nota**: Recomendamos usar siempre nombres en minúsculas para todas las carpetas y nombres de archivo, para evitar posibles problemas.
{% endhint %}

Al importar cualquier asset mediante el Scene Editor, se añaden automáticamente dentro de la `assets/scene` carpeta. Al usar cualquiera de los assets predeterminados en los Asset Packs del Scene Editor, sus archivos se añaden a la `assets/builder` carpeta.

## El archivo dclignore

Todas las escenas incluyen un *.dclignore* archivo; este archivo especifica qué archivos de la carpeta de la escena se deben ignorar al desplegar una escena en Decentraland.

Por ejemplo, quizá quieras conservar los archivos de Blender de los modelos 3D de tu escena dentro de la carpeta de la escena, pero quieres evitar que esos archivos se desplieguen en Decentraland. En ese caso, podrías añadir `*.blend` en *.dclignore* para ignorar todos los archivos con esa extensión.

| Qué ignorar          | Ejemplo     | Descripción                                                                                                  |
| -------------------- | ----------- | ------------------------------------------------------------------------------------------------------------ |
| Archivos específicos | `BACKUP.ts` | Ignora un archivo específico                                                                                 |
| Carpetas             | `drafts/`   | Ignora todo el contenido de una carpeta y sus subcarpetas                                                    |
| Extensiones          | `*.blend`   | Ignora todos los archivos con una extensión determinada                                                      |
| Secciones de nombre  | `test*`     | Ignora todos los archivos cuyos nombres coinciden con la consulta. En este caso, los que empiezan con *test* |


---

# 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/escenas-sdk7/tipos-de-proyectos/scene-files.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.
