> 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

Depois de [criar uma nova cena](/creator/content-creator-pt/scenes-sdk7/comecar/sdk-101.md), a pasta da cena terá uma série de ficheiros com conteúdo predefinido.

## Ficheiros predefinidos numa cena

As Scenes incluem os seguintes ficheiros:

* **src/index.ts**: O ponto de entrada da cena.
* **scene.json**: O manifesto que contém os metadados da cena.
* **package.json** e **package-lock.json**: Especifica as versões de todas as dependências da cena.
* **tsconfig.json**: Ficheiro de configuração do Typescript.
* **.dclignore**: Lista os ficheiros do teu projeto que não serão enviados quando publicares a tua cena.
* **main-composite**: Ficheiro gerado automaticamente que inclui tudo o que adicionaste e configuraste visualmente no Scene Editor no Creator Hub. Não se destina a ser legível por humanos.

### index.ts

Este é o ponto de entrada para o código personalizado da tua cena. Poderias colocar toda a lógica da tua cena neste ficheiro, embora, por clareza, na maioria dos casos recomendemos distribuir o teu código por vários outros *.ts* ficheiros.

Se dependeres apenas do Scene Editor e [Smart Items](/creator/content-creator-pt/scene-editor/interatividade/smart-items.md), não precisas de modificar este ficheiro.

Se pretendes escrever código personalizado, muito provavelmente só precisarás de editar este e outros ficheiros .ts para criar a tua cena. Ele contém o código que gera as [entities, components](/creator/content-creator-pt/scenes-sdk7/arquitetura/entities-components.md) e [systems](/creator/content-creator-pt/scenes-sdk7/arquitetura/systems.md) da tua cena.

Ao executar a cena, o conteúdo dos teus `.ts` ficheiros é compilado para um único `.js` minificado `bin/scene.js`.

{% hint style="warning" %}
**📔 Nota**: Podes usar outra ferramenta ou linguagem em vez de TypeScript, desde que os teus scripts estejam contidos dentro de um único ficheiro Javascript (bin/scene.js). Todas as declarações de tipos fornecidas são feitas em TypeScript, e outras linguagens e transpilers não são oficialmente suportados.
{% endhint %}

### scene.json

O *scene.json* é um manifesto em formato JSON para uma cena no world. Uma cena pode abranger um único ou vários parcels de LAND. O *scene.json* manifesto descreve que objetos existem na cena, uma lista de quaisquer assets necessários para a renderizar, informações de contacto do proprietário do parcel e definições de segurança.

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

![](/files/5ad7c92b169eb284502750f206de23dfdd6e4e5a)

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

Todos estes metadados são opcionais para pré-visualizar a cena localmente, mas parte deles é necessária para fazer o deploy. Podes alterar estas informações manualmente em qualquer altura.

### package.json

Este ficheiro fornece informações ao NPM que lhe permitem identificar o projeto, bem como gerir as dependências do projeto. As scenes do Decentraland requerem 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 tipos que torna a integração de @dcl/sdk mais fluida.

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

### package-lock.json

Este ficheiro lista as versões de todas as outras dependências do projeto. Estas versões estão bloqueadas, o que significa que o compilador usará literalmente a mesma versão minor listada aqui.

Podes alterar manualmente a versão de qualquer pacote editando este ficheiro.

### tsconfig.json

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

Ao instalar quaisquer libraries adicionais para a tua cena, uma entrada deve ser adicionada automaticamente a este ficheiro. Para instalar libraries de utilitários do Decentraland, não deverá ser necessário fazer quaisquer alterações manualmente a este ficheiro.

## Localizações de ficheiros recomendadas

Tem em conta que, quando fizeres o deploy da tua cena no Decentraland, quaisquer assets ou libraries externas necessários para usar a tua cena devem estar ou empacotados dentro da pasta da cena ou disponíveis através de um servidor remoto.

Qualquer coisa que deva ser executada no client do jogador deve estar localizada dentro da pasta da cena. Não deves referenciar ficheiros ou libraries instalados noutro local na tua máquina local, porque não estarão disponíveis para a cena em deploy.

Sugerimos usar estes nomes de pastas de forma consistente para armazenar os diferentes tipos de assets de que a tua cena possa precisar:

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

{% hint style="warning" %}
**📔 Nota**: Ficheiros de suporte para modelos glTF, como os seus ficheiros de imagem de textura ou *.bin* ficheiros, devem ser sempre colocados na mesma pasta que o *.gltf* ou *.glb* ficheiro do modelo.
{% endhint %}

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

Ao importar quaisquer assets através do Scene Editor, eles são adicionados automaticamente dentro da `assets/scene` pasta. Ao usar quaisquer assets predefinidos nos Asset Packs do Scene Editor, os respetivos ficheiros são adicionados à `assets/builder` pasta.

## O ficheiro dclignore

Todas as scenes incluem um *.dclignore* ficheiro, este ficheiro especifica que ficheiros na pasta da cena devem ser ignorados ao fazer deploy de uma cena no Decentraland.

Por exemplo, podes querer manter os ficheiros do Blender para os modelos 3D da tua cena dentro da pasta da cena, mas queres impedir que esses ficheiros sejam enviados para o Decentraland. Nesse caso, poderias adicionar `*.blend` a *.dclignore* para ignorar todos os ficheiros com essa extensão.

| O que ignorar         | Exemplo     | Descrição                                                                                           |
| --------------------- | ----------- | --------------------------------------------------------------------------------------------------- |
| Ficheiros específicos | `BACKUP.ts` | Ignora um ficheiro específico                                                                       |
| Pastas                | `drafts/`   | Ignora todo o conteúdo de uma pasta e das suas subpastas                                            |
| Extensões             | `*.blend`   | Ignora todos os ficheiros com uma determinada extensão                                              |
| Secções de nomes      | `test*`     | Ignora todos os ficheiros 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 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-pt/scenes-sdk7/tipos-de-projetos/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.
