> 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-pt/scenes-sdk7/tipos-de-projetos/scene-files.md).

# Arquivos da Scene

Arquivos padrão criados em uma nova scene.

Depois de [criar uma nova cena](/creator/content-creator-pt/scenes-sdk7/primeiros-passos/sdk-101.md), a pasta da cena terá uma série de arquivos com conteúdo padrão.

## Arquivos padrão em uma cena

As cenas incluem os seguintes arquivos:

* **src/index.ts**: O ponto de entrada da cena.
* **scene.json**: O manifesto que contém metadados da cena.
* **arquivo package.json** e **package-lock.json**: Especifica as versões de todas as dependências da cena.
* **tsconfig.json**: Arquivo de configuração do TypeScript.
* **.dclignore**: Lista os arquivos do seu projeto que não serão enviados quando você publicar sua cena.
* **assets/scene/main.composite**: Arquivo gerado automaticamente que inclui tudo o que você adicionou e configurou visualmente no Scene Editor no Creator Hub. Não foi feito para ser legível por humanos. É um exemplo de um [composite](/creator/content-creator-pt/scenes-sdk7/arquitetura/composites.md), um arquivo que descreve uma árvore de entities e components. As cenas criadas via CLI, em vez disso, incluem um `main.crdt` arquivo no nível raiz.

### index.ts

Este é o ponto de entrada para o código personalizado da sua cena. Você poderia colocar toda a lógica da sua cena neste arquivo, embora, para maior clareza, na maioria dos casos recomendemos distribuir seu código por vários outros *.ts* arquivos.

Se você depender apenas do Scene Editor e [Smart Items](/creator/content-creator-pt/scene-editor/interatividade/smart-items.md), você não precisará modificar este arquivo.

Se você pretende escrever código personalizado, provavelmente só precisará editar este e outros arquivos .ts para criar sua cena. Ele contém o código que gera os [entities, components](/creator/content-creator-pt/scenes-sdk7/arquitetura/entities-components.md) e [systems](/creator/content-creator-pt/scenes-sdk7/arquitetura/systems.md) da sua cena.

Ao executar a cena, o conteúdo dos seus `.ts` arquivos é compilado em um único `.js` arquivo, `bin/index.js`. Ao compilar para produção, este arquivo também é minificado.

{% hint style="warning" %}
**📔 Observação**: Você pode usar outra ferramenta ou linguagem em vez de TypeScript, desde que seus scripts estejam contidos em um único arquivo JavaScript (bin/index.js). Todas as declarações de tipo fornecidas são feitas em TypeScript, e outras linguagens e transpilers não são oficialmente suportados.
{% endhint %}

### scene.json

O *scene.json* arquivo é um manifesto formatado em JSON para uma cena no World. Uma cena pode abranger um único ou vários parcels de LAND. O *scene.json* manifesto descreve quais objetos existem na cena, uma lista de quaisquer assets necessários para renderizá-la, informações de contato do proprietário da parcela e configurações de segurança.

A maioria dos campos do *scene.json* arquivo pode ser editada diretamente na UI do Scene Editor. Veja [Scene Settings](/creator/content-creator-pt/scene-editor/primeiros-passos/scene-editor-essentials.md#scene-settings).

![](https://2402076176-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-ce1891d01c48a1142117a2d2a4576dfa1d11796c%2Fthumbnail-image.png?alt=media\&token=37e2284f-a33b-424a-a98e-b766453771ed)

Para mais informações, veja [metadados da cena](/creator/content-creator-pt/scenes-sdk7/tipos-de-projetos/scene-metadata.md#metadata).

Todos esses metadados são opcionais para pré-visualizar a cena localmente, mas parte deles é necessária para o deploy. Você pode alterar essas informações manualmente a qualquer momento.

### arquivo package.json

Este arquivo fornece informações ao NPM que permitem identificar o projeto, além de lidar com as dependências do projeto. As cenas de Decentraland exigem um pacote principal:

* **@dcl/sdk**: A dependência fundamental do Decentraland SDK, incluindo definições e tipos para o engine, components, systems etc.
* **@dcl/js-runtime**: Uma série de declarações de tipo que torna a integração de @dcl/sdk mais fluida.

Sua cena pode incluir qualquer número de outros pacotes, por exemplo, para incluir [bibliotecas](https://studios.decentraland.org/resources?sdk_version=SDK7\&resource_type=Library) que podem ajudar a facilitar a escrita de código ou habilitar funcionalidades especiais.

### package-lock.json

Este arquivo lista as versões de todas as outras dependências do projeto. Essas versões são bloqueadas, o que significa que o compilador usará literalmente a mesma versão menor listada aqui.

Você pode alterar manualmente qualquer versão de pacote editando este arquivo.

### tsconfig.json

Diretórios que contêm um *tsconfig.json* arquivo são diretórios raiz para projetos TypeScript. O *tsconfig.json* arquivo especifica os arquivos raiz e as opções necessárias para compilar seu projeto de TypeScript para JavaScript.

Ao instalar bibliotecas adicionais na sua cena, uma entrada deve ser adicionada automaticamente a este arquivo. Ao instalar bibliotecas utilitárias do Decentraland, não deve ser necessário fazer alterações manuais neste arquivo.

## Locais de arquivo recomendados

Lembre-se de que, quando você fizer o deploy da sua cena para Decentraland, quaisquer assets ou bibliotecas externas necessárias para usar sua cena devem estar empacotados dentro da pasta da cena ou disponíveis por meio de um servidor remoto.

Qualquer coisa que deva ser executada no cliente do jogador deve estar localizada dentro da pasta da cena. Você não deve referenciar arquivos ou bibliotecas instalados em outro lugar na sua máquina local, porque eles não estarão disponíveis para a cena implantada.

Sugerimos usar esses nomes de pastas de forma consistente para armazenar os diferentes tipos de assets que sua cena possa precisar:

* Modelos 3D: `assets/scene/models`
* Vídeos: `assets/scene/videos`
* Arquivos de som: `assets/scene/sounds`
* Arquivos de imagem para texturas (exceto para modelos glTF): `assets/scene/materials`
* *.ts* definições para components `/src/components`
* *.ts* definições para systems `/src/systems`

{% hint style="warning" %}
**📔 Observação**: Arquivos de suporte para modelos glTF, como seus arquivos de imagem de texture ou *.bin* arquivos, devem sempre ser colocados na mesma pasta do *.gltf* ou *.glb* arquivo.
{% endhint %}

{% hint style="warning" %}
**📔 Observação**: Recomendamos usar sempre nomes em minúsculas para todas as pastas e nomes de arquivos, para evitar possíveis problemas.
{% endhint %}

Ao importar quaisquer assets por meio do Scene Editor, eles são adicionados automaticamente dentro da `assets/scene` pasta. Ao usar qualquer um dos assets padrão nos Asset Packs do Scene Editor, os arquivos deles são adicionados à `assets/builder` pasta.

## O arquivo dclignore

Todas as cenas incluem um *.dclignore* arquivo; este arquivo especifica quais arquivos na pasta da cena devem ser ignorados ao fazer o deploy de uma cena para Decentraland.

Por exemplo, talvez você queira manter os arquivos do Blender dos modelos 3D da sua cena dentro da pasta da cena, mas queira impedir que esses arquivos sejam implantados em Decentraland. Nesse caso, você poderia adicionar `*.blend` como *.dclignore* para ignorar todos os arquivos com essa extensão.

| O que ignorar        | Exemplo     | Descrição                                                                                          |
| -------------------- | ----------- | -------------------------------------------------------------------------------------------------- |
| Arquivos específicos | `BACKUP.ts` | Ignora um arquivo específico                                                                       |
| Pastas               | `drafts/`   | Ignora todo o conteúdo de uma pasta e de suas subpastas                                            |
| Extensões            | `*.blend`   | Ignora todos os arquivos com uma determinada extensão                                              |
| Seções de nome       | `test*`     | Ignora todos os arquivos com nomes que correspondem à consulta. Neste caso, que começam com *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 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-pt/scenes-sdk7/tipos-de-projetos/scene-files.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.
