> 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/scene-editor/interatividade/smart-items-advanced.md).

# Smart Items - Avançado

A maioria dos smart items tem um módulo básico onde você pode configurar apenas as opções mais comuns de forma simples, mas você pode rolar para baixo além do **Avançado** marcador para personalizar quase tudo sobre como o item se comporta.

{% embed url="<https://www.youtube.com/watch?v=m_xWCSDDxpQ>" %}

O smart item a seguir tem um componente Transform e um módulo básico que expõe apenas os campos básicos para configurar um botão. Mas, se você rolar para baixo além do **Avançado** marcador, você encontrará todas as opções disponíveis.

![](/files/b5fb35e1d541e9255c75984e19deaa3b1fa75073)

{% hint style="info" %}
**📔 Nota**: A maioria das opções no módulo básico também está disponível nos componentes mais abaixo. As alterações feitas no módulo básico se refletem nos componentes mais abaixo e vice-versa, exceto em alguns casos em que as opções básicas são uma abstração de várias opções mais abaixo. Nesses casos, alterar as opções avançadas para valores que não são suportados pelo módulo básico fará com que o campo no módulo básico seja marcado como indefinido.
{% endhint %}

## Configuração avançada

As propriedades são agrupadas em [**componentes**](/creator/content-creator-pt/cenas-sdk7/arquitetura/entities-components.md). Smart items diferentes podem ter componentes diferentes, dependendo da sua funcionalidade.

O comportamento da maioria dos itens é controlado por:

* [**Actions**](#actions): O componente Actions define coisas que o item pode fazer. Por exemplo, reproduzir um som, reproduzir uma animação, mover para cima ou tornar-se invisível.
* [**Triggers**](#triggers): O componente Triggers define quais eventos fazem essas ações acontecerem. Por exemplo, quando o player clica no item, quando o player entra em uma área ou quando a scene é carregada pela primeira vez.

Por exemplo, em um smart item de porta, o **Actions** componente Actions inclui as ações "Open" e "Close". O **Triggers** componente Triggers nesse item inclui um **On Click** trigger que ativa a ação "Open" quando a porta é clicada pelo player.

Os triggers de um smart item podem ativar ações em qualquer smart item na scene, não apenas nesse mesmo smart item. Por exemplo, um smart item de botão pode ter um **Triggers** component que ativa a ação "move up" definida no **Actions** componente de uma plataforma flutuante.

Os triggers também podem acontecer condicionalmente. Por exemplo, smart items de porta incluem dois **On Click** triggers em seu componente Triggers: um abre a porta se essa porta estava fechada, o outro fecha a porta se ela estava aberta. Para mais detalhes, veja [Estados e lógica condicional](/creator/content-creator-pt/scene-editor/interatividade/states-and-conditions.md).

## Interações entre itens

Para fazer itens interagirem entre si:

* Um item precisa ter pelo menos uma ação definida em um [Actions](#actions) component.
* O outro item precisa de um trigger no [Triggers](#triggers) component que aponta para essa ação.

Por exemplo, para fazer um botão abrir uma porta:

1. Adicione qualquer smart item de botão, abra seu **Triggers** component. Ele tem um evento trigger padrão que reproduz um som e uma animação para o próprio botão.
2. Clique no **+** sinal ao lado de **Assigned Actions**, para adicionar uma terceira ação nesse mesmo evento trigger.
3. Selecione o smart item da porta no primeiro dropdown.
4. No segundo dropdown, selecione a ação "Open".

![](/files/d7e8916aa548994b3e412edba7e795fd097c6a24)

{% hint style="info" %}
**💡 Dica**: Em vez disso, você pode criar um novo evento Trigger que trate apenas da ação da porta. Ambos os eventos trigger são chamados toda vez que o botão é clicado.

<img src="/files/619e3cdfdc8a158acca700522a8f9b85cceda275" alt="" data-size="original">
{% endhint %}

Qualquer item pode acionar qualquer ação de qualquer outro item, desde que a ação esteja definida. Veja [Triggers](#triggers) para mais formas pelas quais uma ação pode ser acionada.

Você pode usar [states and conditional logic](/creator/content-creator-pt/scene-editor/interatividade/states-and-conditions.md) para acionar uma ação apenas se uma condição for atendida. A condição pode até verificar o estado de um terceiro smart item. Por exemplo, um botão só abre a porta se um smart item personalizado "power generator" estiver com seu estado definido como "On".

## Actions

O **Actions** componente lista ações que o item pode executar. Cada smart item inclui um conjunto de ações predefinidas. Você pode personalizar ações existentes ou adicionar novas. Os seguintes tipos de ações estão disponíveis:

* **Play Animation**: Reproduz uma animação no modelo 3D do item. Veja [Sobre reproduzir animações](#about-playing-animations)
* **Stop Animation**: Para todas as animações sendo reproduzidas pelo modelo 3D do item.
* **Play Sound**: Reproduz um som de um arquivo, na localização do item. Veja [Sobre reproduzir sons](#about-playing-sounds)
* **Stop Sound**: Para todos os sons reproduzidos pelo item.
* **Start Tween**: Faz uma alteração gradual de posição, rotação ou escala ao longo de um período de tempo. Veja [Mover, rotacionar ou escalar](#moving-rotating-or-scaling).
* **Set Visibility**: Torna o item visível ou invisível.
* **Attach To Player**: Define o item como filho do avatar do player. Por exemplo, para carregá-lo na mão ou acima da cabeça.
* **Detach From Player**: Desanexa o item do avatar do player.
* **Open Link**: Abre um link para um site externo em uma aba do navegador. Os players são perguntados se confiam no domínio antes de ele abrir.

{% hint style="info" %}
**📔 Nota**: Esta ação só pode acontecer como resultado de clicar em um item. Ela não pode ser acionada ao entrar em uma trigger area.
{% endhint %}

* **Move Player**: Altera a posição do player para um conjunto de coordenadas locais dentro da scene. Só é possível mover o player dentro da mesma scene.
* **Teleport Player**: Teleporta um player para outro local em Decentraland. Use o **Teleport Mode** dropdown para enviá-lo **To coordinates** de outra scene em Genesis City, ou **To World**, indicando o nome de um World. Os players aparecerão no spawn-point da scene de destino.
* **Play Emote**: Faz o avatar do player executar uma das animações padrão do avatar (por exemplo: acenar ou bater palmas).
* **Play Custom Emote**: Faz o avatar do player executar uma animação personalizada, a partir de um arquivo enviado para a scene.
* **Show Text**: Exibe texto na UI da tela, para ser ocultado após alguns segundos. Ideal para dicas, falas de diálogo, notificações, etc.
* **Hide Text**: Oculta qualquer texto de UI que possa estar sendo exibido no momento.
* **Start Delay**: Adia outra ação do mesmo item pelo número de segundos que você precisar.
* **Stop Delay**: Cancela qualquer ação adiada no item.
* **Start Loop**: Repete uma ação do mesmo item de forma recorrente em um intervalo definido.
* **Stop Loop**: Cancela qualquer ação em loop no item.
* **Play Video**: Reproduz um vídeo como material em uma forma primitiva.
* **Stop Video**: Para quaisquer vídeos sendo reproduzidos no momento.
* **Play Audio Stream**: Reproduz um stream de áudio.
* **Stop Audio Stream**: Para quaisquer streams de áudio sendo reproduzidos no momento.
* **Clone**: Duplica um item na posição designada.
* **Spawn Entity**: Cria uma nova cópia de um item na scene, em uma posição relativa ao item que executa a ação. O item a ser spawnado não precisa estar colocado na scene. Veja [Sobre spawn de entidades](#about-spawning-entities).
* **Remove**: Exclui um item da scene.
* **Show Image**: Exibe uma imagem na UI, potencialmente por um tempo limitado. Ela também pode incluir legenda.
* **Hide Image**: Oculta qualquer imagem exibida atualmente na UI pela ação Show Image.
* **Damage**: Reduz a health em qualquer healthbar que esteja por perto. A *Layer* property pode determinar se ela age apenas em healthbars do player, ou em outros itens.
* **Move player here**: Altera a posição do player para a posição deste item.
* **Place on Player**: Altera a posição do item para a posição do player.
* **Rotate as Player**: Altera a rotação do item para a do player.
* **Place on Camera**: Altera a posição do item para a da camera.
* **Rotate as Camera**: Altera a rotação do item para a da camera.
* **Set Position**: Altera a posição do item para uma específica. Ela pode ser absoluta ou relativa à posição atual.
* **Set Rotation**: Altera a rotação do item para uma específica. Ela pode ser absoluta ou relativa à rotação atual.
* **Set Scale**: Altera a escala do item para uma específica. Ela pode ser absoluta ou relativa à escala atual.
* **Follow Player**: Começa a se mover e virar na direção da posição do player. Ignora quaisquer obstáculos no caminho. Você pode definir a velocidade e fazer com que ele se mova apenas em certos eixos. Min Distance determina o quão perto ele chegará do player.
* **Stop Following Player**: Para a ação Follow Player.
* **Random Action**: Uma das ações listadas aqui será executada aleatoriamente com igual probabilidade cada vez que a ação aleatória for chamada. Você pode listar qualquer uma das ações que pertencem ao item.
* **Batch Actions**: Todas as ações listadas aqui serão executadas simultaneamente cada vez que a batch action for chamada. Você pode listar qualquer uma das ações que pertencem ao item.
* **Heal Player**: Restaura a health da health bar do player.
* **Player Face Item**: Faz o avatar do player virar para encarar o item.
* **Freeze Player**: Impede o player de se mover, pular ou executar emotes.
* **Unfreeze Player**: Restaura a capacidade do player de se mover após uma ação Freeze Player.
* **Lights On**: Liga o **Light Source** component.
* **Lights Off**: Desliga o **Light Source** component.
* **Lights Modify**: Altera propriedades do **Light Source** componente, como sua cor ou intensidade.
* **Select Camera**: Alterna a visão do player para uma **Virtual Camera**, seja neste item ou em outra entidade.
* **Change Text**: Altera o texto de um item com um **Text Shape** componente. Também pode alterar o tamanho da fonte e a cor.
* **Stop Tween**: Para qualquer movimento tween atualmente em progresso no item.
* **Slide Texture**: Desliza continuamente a textura no material do item em uma direção dada, para efeitos como água corrente ou esteiras transportadoras.
* **Change Collisions**: Habilita ou desabilita os colliders do item, tanto para física quanto para pointer events.
* **Change Skybox**: Altera o skybox da scene para uma hora fixa do dia, expressa em segundos desde a meia-noite.
* **Reset Skybox**: Restaura o skybox da scene para suas configurações padrão.
* **Log to Console**: Imprime uma mensagem no console, útil para debugging durante o desenvolvimento da scene.
* **Delete**: Remove o item e todos os seus children da scene.

Veja [states and conditional logic](/creator/content-creator-pt/scene-editor/interatividade/states-and-conditions.md) para aprender sobre outras ações relacionadas a condições lógicas, como **Set State** e as ações de contador.

O **Actions** componente define ações possíveis, mas elas não fazem nada na scene a menos que sejam acionadas. As ações são ativadas por um [trigger](#triggers), seja do mesmo smart item ou de outro diferente.

Para adicionar uma nova ação a um item, clique no **Add New Action** botão na parte inferior do componente Action. Depois dê um nome à ação, selecione um tipo e preencha quaisquer campos adicionais específicos do tipo de ação.

![](/files/c21c3e1f7151ce132c46873c8acef0e89ac46cde)

### Triggers

O **Triggers** componente define eventos trigger, que ativam ações quando um determinado evento acontece. Existem os seguintes tipos de eventos trigger:

* **On Click**: Quando o player clica no item. Veja [Sobre trigger de clique](#about-click-triggers)
* **On Input Action**: Quando o player pressiona um botão de entrada enquanto aponta para o item.
* **On Global Click**: Quando o player clica no pointer em qualquer lugar, sem precisar apontar para o item.
* **On Global Primary**: Quando o player pressiona o botão Primary (E) em qualquer lugar.
* **On Global Secondary**: Quando o player pressiona o botão Secondary (F) em qualquer lugar.
* **Player Enters Area**: Quando o player entra em uma área. Veja [Trigger Area](/creator/content-creator-pt/scene-editor/interatividade/trigger-area.md)
* **Player Leaves Area**: Quando o player sai de uma área. Veja [Trigger Area](/creator/content-creator-pt/scene-editor/interatividade/trigger-area.md)
* **On Spawn**: Quando a scene começa, ou o item é spawnado na scene. Veja [Trigger on spawn](#trigger-on-spawn)
* **On Delay**: Quando um **Start Delay** action no item termina sua contagem regressiva.
* **On Loop**: A cada iteração de uma **Start Loop** action no item.
* **On Clone**: Quando o item é clonado via uma **Clone** action, a nova cópia dispara este trigger.
* **On Click Image**: Quando o player clica em uma imagem exibida por uma **Show Image** action.
* **On Damage**: Quando o item recebe dano de uma **Damage** action.
* **On Heal Player**: Quando o player é curado por uma **Heal Player** action.
* **On Tick**: A cada tick da scene, uma vez por frame. Use com cautela, pois as ações disparadas por ele executam com muita frequência.

Veja [states and conditional logic](/creator/content-creator-pt/scene-editor/interatividade/states-and-conditions.md) para aprender sobre outros triggers relacionados a condições lógicas, como **On State Change**, **On Counter Change** e **On Tween End**.

Para adicionar um novo trigger, clique no **Add New Trigger Event** na parte inferior do componente Trigger. Depois selecione o tipo de trigger, a entidade que você quer ativar e uma ação dessa entidade.

![](/files/2b652f5c1391124f48007ff7a68ae97e4b6bda3f)

{% hint style="info" %}
**📔 Nota**: Uma ação precisa ser definida no [Actions](#actions) componente da entidade antes de você poder acioná-la. Triggers só podem afetar entidades que tenham um componente Actions.
{% endhint %}

## Sobre reproduzir animações

Use uma ação do tipo **Play Animation** para executar uma animação no modelo 3D do smart item. A animação já precisa existir como parte do arquivo do modelo 3D. O **Select Animation** dropdown exibe uma lista de todas as animações disponíveis no modelo 3D.

O **Play Mode** campo permite selecionar se uma animação deve tocar apenas uma vez ou se deve continuar em loop.

![](/files/89dcc46417f3b154ce18259b19d626e3fd3c2f45)

Depois que a ação é criada, você pode ativá-la pelo [Triggers](#triggers) componente desse mesmo item ou de qualquer outro item.

Use a **Stop Animation** ação para parar todas as animações do item, tanto as em loop quanto as que não estão em loop.

{% hint style="info" %}
**💡 Dica**: Para verificar facilmente o conteúdo de um modelo 3D, para ver quais animações ele inclui e como elas se parecem, uma boa ferramenta é o [Babylon Sandbox](https://sandbox.babylonjs.com/). Basta arrastar o arquivo do modelo 3D para dentro da janela. Um dropdown com uma lista de suas animações deve aparecer na parte inferior.
{% endhint %}

Para saber mais sobre animações e como você pode criar as suas próprias como parte de um modelo 3D, veja [Animações](/creator/content-creator-pt/modelagem-3d-e-animacoes/animations.md).

## Sobre reproduzir sons

Use uma ação do tipo **Play Sound** para reproduzir um arquivo de som. Você pode reproduzir qualquer arquivo de som, desde que ele tenha sido importado para o projeto da scene. O som é ouvido de forma posicional, a partir da localização do item, o que significa que ele soa mais alto se o player estiver mais perto.

{% hint style="info" %}
**💡 Dica**: Em vez de digitar o caminho para o arquivo de som, você pode arrastá-lo para o **Path** campo a partir do menu de navegação de arquivos na parte inferior do Scene Editor.
{% endhint %}

Use a **Play Mode** campo para escolher se o som será tocado uma vez ou em loop contínuo.

![](/files/60ddda509fd3d5b9ee90d5c1a5efa67ef9a07924)

Depois que a ação é criada, você pode ativá-la pelo [Triggers](#triggers) componente desse mesmo item ou de qualquer outro item.

Use a **Stop Sound** : ação para parar todos os sons do item, tanto os em loop quanto os sem loop. Isso também interrompe sons do **AudioSource** component.

Para fazer um item reproduzir sempre um som em loop, por exemplo para ambiência ou música, é mais fácil usar o **AudioSource** componente, em vez de usar Actions e Triggers. Esse componente só requer que você forneça o caminho para um arquivo e marque as caixas **Start Playing** e **Loop**.

![](/files/72fb67e590a40a074dcd3e8f7915f10910d59628)

{% hint style="info" %}
**📔 Nota**: Um smart item só pode reproduzir um som por vez. Chamar um segundo som interromperá quaisquer outros sons que estejam tocando no momento. Isso também se aplica aos sons do **AudioSource** componente. Se você precisar de dois sons tocando juntos, considere adicionar uma entidade invisível no mesmo local para conter um **Play Sound** action.
{% endhint %}

Veja [sons](/creator/content-creator-pt/cenas-sdk7/nocoes-essenciais-de-conteudo-3d/sounds.md) para saber mais sobre como reproduzir sons em Decentraland.

## Mover, rotacionar ou escalar

Use uma **Start Tween** ação para alterar a **posição**, **escala**, ou **rotação**, do item ao longo de um período de tempo. Todas as **Start Tween** ações começam a partir do estado original do item e mudam para um estado final ao longo de um período de tempo.

As tweens de posição podem ser relativas ou absolutas. Um tween absoluto de posição move o item para uma posição fixa em relação à scene. O item se moverá de onde quer que esteja até essa posição. Se ele já estiver lá, não parecerá se mover. Um tween relativo de posição move o item uma certa distância de onde ele está agora, por exemplo, um tween para uma posição relativa de `1, 0, 0` move o item 1 metro para a frente, na direção para a qual ele está apontando no momento. Se você executar a ação tween uma segunda vez, o item se moverá mais um metro para a frente.

As tweens de rotação também podem ser relativas ou absolutas. Uma rotação relativa é adicionada à rotação atual do item. Um tween absoluto de rotação fará o item apontar para uma direção específica, em relação à scene.

Use a **Duration** campo para definir quanto tempo todo o movimento deve levar, em segundos. Observe que o slider vai até 100 segundos, mas você também pode escrever um número maior manualmente, se precisar.

![](/files/db7d27ef05aa90859ea2603b17c3a00218e9bee7)

Depois que a ação é criada, você pode ativá-la pelo [Triggers](#triggers) componente desse mesmo item ou de qualquer outro item.

As tweens podem seguir diferentes **Curve Types** que afetam a taxa de mudança ao longo do tempo. Uma **linear** curve (padrão) significa que a velocidade da mudança é constante do início ao fim. Há muitas opções para escolher, que desenham curvas com formatos diferentes dependendo se o início e/ou o fim começam devagar, e em que medida. Uma **easeinexpo** curve começa devagar e termina rápido, aumentando a velocidade exponencialmente; ao contrário, uma **easeoutexpo** curve começa rápido e termina devagar.

![](/files/f97fdb4ef1384b9ca710f6228dfc17b763698f79)

{% hint style="info" %}
**💡 Dica**: Experimente diferentes curvas de movimento. As diferenças geralmente são sutis, mas nós interpretamos subconscientemente informações sobre como as coisas se movem, como peso, atrito ou até personalidade.
{% endhint %}

Use **On Tween End** eventos de trigger no **Triggers** componente para ativar uma ação depois que um tween terminar. Use [states and conditional logic](/creator/content-creator-pt/scene-editor/interatividade/states-and-conditions.md) para descrever um caminho em loop para uma plataforma flutuante, de modo que ela se mova continuamente entre dois locais.

Quando um item executa um tween, isso afeta tudo sobre o item. Por exemplo, se ele altera a escala, altera a escala do seu modelo 3D visível e também da geometria invisível do collider, o tamanho do texto, etc. Se o item tiver quaisquer children (aninhados na entity tree à esquerda), essas child entities também são afetadas pelo tween.

{% hint style="info" %}
**📔 Nota**: Cada entity só pode executar um tween de cada vez. Por exemplo, você não pode fazer um item se mover lateralmente e também girar ao mesmo tempo. Como solução alternativa, você pode usar entities parented. Por exemplo, você pode ter uma parent entity invisível que se move lateralmente, com um child visível que gira.
{% endhint %}

## Sobre spawn de entidades

Use uma **Spawn Entity** ação para criar uma nova cópia de um item na scene enquanto ela está em execução. Diferente da **Clone** action, o item que você gerar não precisa ser colocado na scene primeiro.

### Tornar um item gerável

Antes que um item possa ser gerado, ele precisa estar disponível nos arquivos do seu projeto. Para adicionar um item sem colocá-lo na scene:

1. No **Assets** painel, encontre o item no catálogo ou em seus **Custom Items**.
2. Clique com o botão direito no item e selecione **Add to filesystem**.

Isso copia o item para o seu projeto para que ele possa ser gerado depois. Não adiciona nada visível à scene. O item então aparece no **Source** menu suspenso de qualquer **Spawn Entity** action.

### Configurar a ação

Uma **Spawn Entity** ação tem dois campos:

* **Source**: O item a ser gerado. Escolha entre os itens adicionados aos arquivos do seu projeto.
* **Posição**: As coordenadas X, Y e Z onde a nova cópia aparece, em relação ao item que executa a ação.

Se o item que você gerar for ele próprio um smart item, cada cópia gerada mantém suas próprias ações e gatilhos funcionando de forma independente.

{% hint style="info" %}
**💡 Dica**: Para gerar itens a partir de código, veja [Composites](/creator/content-creator-pt/cenas-sdk7/arquitetura/composites.md). Itens adicionados aos arquivos do seu projeto são armazenados como composites, no mesmo formato usado pela função spawn do SDK.
{% endhint %}

## Sobre trigger de clique

Para acionar uma ação ao clicar em um item, crie um **On Click** gatilho. A ação será ativada toda vez que o jogador clicar na entity.

![](/files/42fa8bf6904babc6e79e962d85dead347adea316)

Veja [Tornar qualquer item smart](/creator/content-creator-pt/scene-editor/interatividade/make-any-item-smart.md#interactivity) para mais detalhes.

{% hint style="info" %}
**📔 Nota**: Ao usar modelos 3D customizados, o modelo deve ter uma geometria de collider invisível para que possa ser clicado. Veja [colliders](/creator/content-creator-pt/cenas-sdk7/nocoes-essenciais-de-conteudo-3d/colliders.md#pointer-blocking).

Como alternativa, você pode configurar o **GLTF** component do item, para que sua **Visible Layer** de collision seja definida como **Pointer**.

Outra alternativa é adicionar um **Click Area** smart item, para desenhar um cubo que sobrepõe o item que você quer clicar. O smart item Click Area é um [item invisível](#invisible-items).
{% endhint %}

## Trigger on spawn

Triggers do tipo **On Spawn** ativam uma ação quando a scene é carregada. Em vez de esperar que o jogador interaja com um item, a ação é executada imediatamente.

Por exemplo, use isso para fazer uma plataforma se mover continuamente. Use um **On Spawn** gatilho para ativar uma ação de tween. Depois use **On State Change** gatilhos para mantê-la se movendo entre duas ou mais posições.

![](/files/fdd89e83f8a2c7551ec471a5b9a6bef1fe2e503f)

## Multiplayer

Todos os smart items são multiplayer por padrão. Veja [Smart Items - Básico](/creator/content-creator-pt/scene-editor/interatividade/smart-items.md) para mais detalhes.

Você pode alterar ou ajustar esse comportamento multiplayer para sincronizar apenas certos components do item.

No component do item, **Multiplayer** marque as caixas dos components que você quer compartilhar.

Por exemplo, uma porta compartilha seu `Animator` para que todos vejam as animações de abertura, seu `AudioSource` para que todos ouçam seu som, e seu `State` para que todos acompanhem se ela está aberta ou fechada no momento. A porta não compartilha sua `Visibility` component, porque a porta normalmente está sempre visível. Se você incluir ações para ativar e desativar sua visibilidade, talvez queira marcar esse component também, para que as mudanças sejam sincronizadas entre todos os players.

## Itens invisíveis

Alguns itens não são feitos para serem vistos pelo player, mas ficam visíveis enquanto você edita sua scene para torná-los mais fáceis de gerenciar. É o caso de itens como **Ambience**, **Trigger Area**, **Click Area**, etc.

No modo avançado, esses itens têm um **Visibility** component definido como invisível. Esse component não afeta a visibilidade dos itens no Scene Editor, mas qualquer item definido como invisível não é visto pelos players ao executar um preview.

## Veja também

* [Smart items - Noções básicas](/creator/content-creator-pt/scene-editor/interatividade/smart-items.md)
* [Estados e condições](/creator/content-creator-pt/scene-editor/interatividade/states-and-conditions.md)
* [Tornando qualquer item smart](/creator/content-creator-pt/scene-editor/interatividade/make-any-item-smart.md)
* [Combinar com código](/creator/content-creator-pt/scene-editor/estenda-com-codigo/overview.md)


---

# 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/scene-editor/interatividade/smart-items-advanced.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.
