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

# Smart Items - Básico

Usa smart items en tu scene para añadir interactividad.

Algunos de los elementos del catálogo del Scene Editor son **Smart Items**. Los jugadores pueden interactuar con estos, tienen propiedades configurables y pueden activar acciones en otros smart items. Por ejemplo: puertas que se pueden abrir y cerrar, plataformas que suben y bajan, o botones y palancas que pueden activar otros items.

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

Puedes reconocer estos elementos en el explorador de asset pack porque tienen un icono de rayo y un fondo de otro color.

![](https://1216664193-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-f368bfdf7894d18f29875528bdd91cf8429e70b3%2Fsmart-items.jpg?alt=media)

Puedes reconocer cuáles elementos de tu escena son smart porque tienen el icono de rayo junto a ellos en el entity tree.

![](https://1216664193-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-26c0c6fbe09714f92806651fe637acf153da0e80%2Fsmart-item-icon.png?alt=media)

## Uso de items

Para usar un smart item, arrástralo a la escena como cualquier otro item. Todos los items incluyen un comportamiento predeterminado; ejecuta una vista previa de la escena para probarlo.

Aquí hay algunos items comunes y sus comportamientos predeterminados:

* **Puertas**: Las puertas se abren o se cierran al hacer clic. Puedes cambiar este comportamiento para que se abran con botones, áreas de trigger, etc.
* **Botones**: Cuando se hace clic, reproducen sonido y una animación como feedback. Añade más acciones a sus eventos de trigger para activar otros smart items.
* **Palancas**: Cuando se hace clic, cambian entre dos estados. Haz que cada posición de la palanca realice acciones diferentes sobre otros smart items.
* **Cofres**: Se comportan como puertas; por defecto se abren o se cierran al hacer clic. Puedes colocar items más pequeños dentro de ellos.
* **Plataformas**: Se mueven entre dos posiciones. Usa sus acciones tween para controlar hacia dónde se mueven, su velocidad, etc.
* **Área de trigger**: Un item invisible que puede activar otros smart items cuando el jugador entra en su área. Ver [Acerca de las áreas de trigger](#trigger-areas).
* **Avatar Modifier Area**: Un área invisible que cambia cómo se comportan o se ven los avatars dentro de ella; por ejemplo, ocultando avatars o desactivando las ventanas emergentes del passport. Ver [Modifier Areas](/creator/content-creator-es/scene-editor/interactividad/modifier-areas.md).
* **Camera Modifier Area**: Un área invisible que fuerza la cámara del jugador a primera o tercera persona mientras está dentro. Ver [Modifier Areas](/creator/content-creator-es/scene-editor/interactividad/modifier-areas.md).
* **Video Player**: Una pantalla para mostrar videos o transmisiones en vivo. Ver [Reproduciendo videos](#playing-videos).
* **Audio Stream**: Reproduce audio desde una transmisión en vivo. Ver [Reproduciendo streams de audio](#playing-audio-streams)
* **NFT**: Muestra una imagen de un NFT como retrato. Ver [Mostrando NFTs](#displaying-nfts)

Todos los smart items se pueden configurar para que se comporten de formas personalizadas. Por ejemplo, qué tanto se mueve una plataforma o qué activa un botón.

## Configurar un item

Selecciona un item en el Scene Editor para ver todas sus propiedades a la derecha.

La mayoría de los smart items guardan su comportamiento en un [Script component](/creator/content-creator-es/scene-editor/extender-con-codigo/script-component.md). Sus settings aparecen en el **Script** panel, un campo por parámetro, cada uno con un tooltip que explica qué hace. No necesitas escribir código para usarlos.

Algunos campos típicos que puedes encontrar en muchos items son:

* **Hover text**: Qué texto se muestra en el UI como una pista cuando el jugador pasa el cursor sobre el item. Por ejemplo, una puerta podría decir "Open"
* **Interaction**: ¿Con qué botón se activa el item? En un teclado típico:
  * **Primary** es **E**
  * **Secondary** es **F**
  * **Pointer** es **Mouse Left Button**
  * **Action3** es la tecla **1**
  * **Action4** es la tecla **2**
  * **Action5** es la tecla **3**
  * **Action6** es la tecla **4**
* **Hooks que reaccionan al item**: parámetros donde eliges una acción para ejecutar en un momento particular. Cuáles tiene un item depende de lo que haga. Un botón tiene **onClick**, una palanca tiene **onActivate** y **onDeactivate**, una plataforma móvil tiene **onReachStart** y **onReachEnd**, una campana tiene **onRing**. Deja un hook vacío y no pasará nada en ese momento.

Cada item tiene sus propias configuraciones específicas, que pueden variar de un item a otro.

Unos pocos items siguen usando el panel más antiguo **Config** en su lugar. Las luces, por ejemplo, siguen definiendo allí su color e intensidad.

Todos los items tienen un **Advanced Mode** que te permite configurar casi cualquier cosa sobre ellos. Esto incluye cosas como qué sonidos se reproducen o en qué dirección se mueve una plataforma. También puedes añadir acciones personalizadas que incluyan todo tipo de cosas, como teletransportar al jugador, reproducir animaciones del avatar, adjuntar un item a las manos del jugador, etc. También puedes añadir lógica condicional, para activar algo solo en ciertos escenarios. Ver [Smart Items - Advanced](/creator/content-creator-es/scene-editor/interactividad/smart-items-advanced.md).

![](https://1216664193-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-958f6f53945e119e770d84f808814c18d173c9c1%2Fadvanced-mode.png?alt=media)

## Llamar una acción en otro item

Los smart items pueden activar acciones en otros smart items, para que ocurran cada vez que el item se activa. Solo selecciona el item al que quieres llamar, de una lista de todos los items de la escena, y luego selecciona una acción. Distintos items exponen distintas acciones.

Por ejemplo, aquí hay un botón que abre o cierra una puerta. Cada vez que se pulsa el botón, la puerta se abrirá o se cerrará.

![](https://1216664193-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-110156bc3c8fa17336e61490402e1cb19d83ff47%2Fbutton-to-door.png?alt=media)

Aquí hay una palanca que abre una puerta cuando se activa y cierra esa puerta cuando se desactiva.

![](https://1216664193-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-6e4cb24dd1b7e3e9b438b8825c0479672bc2254c%2Flever-to-door.png?alt=media)

Puedes añadir tantas acciones diferentes de distintos items como quieras que se activen juntas. Solo haz clic **+ Asignar acción**.

Elimina acciones haciendo clic en los tres puntos junto a una acción y seleccionando *Eliminar acción*.

Las acciones que expone un item conservan sus nombres familiares, como **Open**, **Close**, **Sit Here**, **Turn On**, o **Teleport**, así que el cableado entre items funciona de la misma manera que siempre.

También puedes encadenar acciones. Por ejemplo, si el hook de una palanca **onActivate** abre una puerta, y el propio hook de esa puerta activa otra cosa, la palanca desencadena toda la cadena indirectamente.

Si usas el [Advanced mode](/creator/content-creator-es/scene-editor/interactividad/smart-items-advanced.md) también puedes añadir lógica condicional a este tipo de acciones.

## Smart items especiales

Algunos smart items tienen características únicas que los hacen muy útiles para escenarios comunes:

### Áreas de trigger

Usa el smart item Trigger Area para activar una acción cuando el jugador entra en un área.

![](https://1216664193-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-649dfd99d06849f543399b5b89a6a31a015cb439%2Ftrigger.png?alt=media)

Usa los **Player Enters Area** y **Player Leaves Area** tipos de trigger en los **Triggers** components del item. Las acciones de estos eventos de trigger se activan cada vez que el jugador entra o sale del área.

![](https://1216664193-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-f8389cd077c495e0b8ada33ca0da01800eee7dcd%2Fon_player_enters.png?alt=media)

Ver [Área de trigger](/creator/content-creator-es/scene-editor/interactividad/trigger-area.md) para más información.

### Paredes invisibles

Un conjunto de formas invisibles que puede impedir que los jugadores caminen a través de un área o hagan clic a través de ella.

Estas paredes invisibles pueden ser útiles al importar un modelo 3D que no tiene una malla de collider, o cuando quieres crear una pared que no sea visible para el jugador.

Ver [Colliders](/creator/content-creator-es/scenes-sdk7/conceptos-basicos-del-contenido-3d/colliders.md) para más información.

### Área de clic

Un cubo invisible en el que los jugadores pueden hacer clic para activar acciones en cualquier otro smart item. Este item puede ser habilitado o deshabilitado por cualquier otro smart item; cuando está deshabilitado no se puede hacer clic en él. También puedes establecer el texto que los jugadores ven cuando apuntan con el cursor hacia él.

![](https://1216664193-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-e8ab432fd689e68f097f47e600c1789404f7ee4c%2Fclick-area.png?alt=media)

### Asientos

Las sillas, bancos y otros asientos permiten que un jugador se siente al hacer clic en ellos.

* Un asiento solo queda libre cuando el jugador que lo tomó **se aleja** de él, más de 1,5 metros.
* En un item con varias plazas, como un banco, al hacer clic te sientas en la **plaza libre más cercana**.
* Cuando todas las plazas están ocupadas, el hover text dice **Seat is taken** y hacer clic no hace nada.

### Teletransportes

El **Teleport** item envía al jugador a otro lugar cuando interactúa con él.

Configura los **x** y **y** parámetros para enviarlo a una parcela en Genesis City. Para enviarlo a un [World](/creator/content-creator-es/scenes-sdk7/publicacion/publishing-options.md#decentraland-worlds) en su lugar, completa el **world** parámetro con el nombre del World, como `myname.dcl.eth`, y deja las coordenadas vacías.

{% hint style="warning" %}
**📔 Nota**: Antes había un item aparte de **World Teleport** . Se eliminó. Usa el **Teleport** item con su **world** parámetro
{% endhint %}

### Configuración de locomoción

El **Locomotion Settings** item cambia qué tan rápido se mueven los jugadores y qué tan alto saltan mientras están dentro de tu escena. Úsalo para darle una sensación flotante a una escena, ralentizar a los jugadores en un museo o acelerarlos en un mapa grande.

Arrástralo a cualquier lugar de tu escena. Aplica sus valores cuando la escena empieza, y su cubo marcador de posición solo es visible en el editor, nunca para los jugadores.

Cada campo es un slider, preajustado al valor predeterminado de Decentraland:

| Campo                 | Predeterminado | Rango  |
| --------------------- | -------------- | ------ |
| `walkSpeed`           | 1,5 m/s        | 0 a 10 |
| `jogSpeed`            | 8 m/s          | 0 a 30 |
| `runSpeed`            | 10 m/s         | 0 a 50 |
| `jumpHeight`          | 1 m            | 0 a 10 |
| `runJumpHeight`       | 1,5 m          | 0 a 10 |
| `doubleJumpHeight`    | 2 m            | 0 a 15 |
| `glidingSpeed`        | 6 m/s          | 0 a 30 |
| `glidingFallingSpeed` | 1 m/s          | 0 a 10 |
| `hardLandingCooldown` | 0,75 s         | 0 a 5  |

Jogging es la velocidad a la que se mueven los jugadores por defecto. Caminar y correr son lo que obtienen al mantener pulsadas las teclas control o shift.

El item también expone dos acciones que otros smart items pueden llamar:

* `apply`: escribe de nuevo en el jugador los valores actuales de los campos, por ejemplo después de un área de trigger o un botón.
* `restoreDefaults`: borra tus valores, para que el jugador vuelva a los valores predeterminados de Decentraland.

Ver [Ajustes y restricciones de locomoción](/creator/content-creator-es/scenes-sdk7/interactividad/avatars/locomotion.md) para ver en detalle qué hace cada configuración y cómo cambiar estos valores desde código.

### Reproduciendo videos

Reproduce videos desde cualquiera de estas opciones:

* **Archivos locales**
* **Transmitir desde una URL**
* **Transmitir en vivo desde** [**Decentraland Cast**](/creator/content-creator-es/scene-editor/operar-en-vivo/live-streaming.md#dcl-cast-easy)
* **Transmitir en vivo desde** [**RTMP Software**](/creator/content-creator-es/scene-editor/operar-en-vivo/live-streaming.md#stream-advanced) **(OBS, XSplit, StreamYard, etc.)**

{% hint style="warning" %}
**📔 Nota**: Reproducir videos exige bastante rendimiento, así que mantén bajo el número de videos reproduciéndose al mismo tiempo. El engine limita cuántos videos pueden reproducirse simultáneamente según la configuración de calidad de cada jugador (1 en baja, 5 en media, 10 en alta), y pausa cualquier video que exceda ese límite. Ver [Play Videos](/creator/content-creator-es/scene-editor/interactividad/video-screen.md#play-videos).
{% endhint %}

Ver [Play Videos](/creator/content-creator-es/scene-editor/interactividad/video-screen.md) para más información.

### Reproduciendo streams de audio

Reproduce un stream de audio desde una URL, usando el **Audio Stream** smart item.

{% hint style="info" %}
**📔 Nota**: No todos los servicios de streaming te permiten reproducir su audio fuera de su sitio. Los siguientes son algunos ejemplos que funcionan en Decentraland:

```ts
GRAFFITI = 'https://n07.radiojar.com/2qm1fc5kb.m4a?1617129761=&rj-tok=AAABeIR7VqwAilDFeUM39SDjmw&rj-ttl=5'
SIGNS = 'https://edge.singsingmusic.net/MC2.mp3'
DELTA = 'https://cdn.instream.audio/:9069/stream?_=171cd6c2b6e'
JAZZ = 'https://live.vegascity.fm/radio/8010/the_flamingos.mp3'
```

{% endhint %}

Puedes ajustar el volumen de tu stream. Ten en cuenta que el audio del stream no es posicional; se escucha con un volumen uniforme en toda tu escena.

### Mostrando NFTs

Para mostrar un NFT en un marco de imagen, usa el **NFT** smart item. Debes proporcionar los siguientes campos:

* Red

{% hint style="info" %}
**📔 Nota**: Actualmente **ethereum** es la única red compatible.
{% endhint %}

* NFT Collection Contract: El smart contract de la colección del NFT.
* Token ID: El ID del token de este collectible NFT en particular.

<img src="https://1216664193-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-a9cb3597437e714e11f51e76c1315a1420e3d93e%2Fnft-shape.png?alt=media" alt="Forma del NFT" width="400">

Puedes obtener esta información en [OpenSea](https://opensea.io), comprobando la **Details** pestaña debajo de la imagen del NFT.

<img src="https://1216664193-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-65a8932cfc446537eb6340c224fa47d067a12143%2Fopensea.png?alt=media" alt="Detalles de OpenSea" width="400">

{% hint style="info" %}
**📔 Nota**: También puedes obtener esta información desde la URL de OpenSea. Por ejemplo, si la URL del NFT es la siguiente:

> `https://opensea.io/assets/ethereum/0x32b7495895264ac9d0b12d32afd435453458b1c6/1956`

Puedes completar los campos con lo siguiente:

* Red: ethereum
* Contrato: 0x32b7495895264ac9d0b12d32afd435453458b1c6
* Token: 1956
  {% endhint %}

También puedes configurar un color de fondo; esto es especialmente útil para NFTs con un fondo transparente.

También puedes elegir un **Estilo del marco**, para enmarcar el NFT con una variedad de estilos diferentes, clásicos y modernos.

Ver [NFTs](/creator/content-creator-es/scene-editor/construir/nfts.md) para más detalles.

### Barras de salud

![](https://1216664193-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-7527837b3d800afc079980b60be5474e6d055b56%2Fhealth-bar.png?alt=media)

El **Health Bar** smart item es un gran bloque de construcción para varias mecánicas de juego. Se puede usar de varias maneras:

* Anídalo debajo del **Player** para mostrar la salud del jugador sobre el avatar

  ![](https://1216664193-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-4ba51729ed3cbcd78807385e4a315de8ea460a96%2Fnested-under-player.png?alt=media)
* Anídalo debajo del **Camera** para mostrarlo fijo en el UI

  ![](https://1216664193-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-3072a9cf441ecc75b66fba64c9ccbb367c4eb4f7%2Fnested-under-camera.png?alt=media)
* Anídalo literalmente debajo de cualquier item de la escena para hacer un seguimiento de la salud de ese item

  ![](https://1216664193-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-5c9737b98956f6817efd09ad5de786331cbd9666%2Fnested-under-barrel.png?alt=media)

Otros items pueden interactuar con la barra de salud para añadirle o quitarle salud.

* Items como **Spikes** o **Robot Enemy** pueden reducir la salud

  ![](https://1216664193-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-aed73698225063ac5cdd7257d9de8eb7c571e632%2Freduce-health.png?alt=media)
* items como **First Aid** o **Healing Pad** pueden restaurarla.

  ![](https://1216664193-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-2c80447061c76ae6b412ecbea4853f34d03469aa%2Frestore-health.png?alt=media)

Debes configurar la Health Bar para definir qué sucederá cuando la salud sea 0. Podrías reaparecer al jugador en la posición de un **Respawn Pad** smart item, restablecer el contador de su puntuación, reaparecer cualquier enemigo, mostrar un texto de UI, o lo que tenga sentido en la lógica de tu juego.

También puedes activar acciones cuando la salud sea inferior a cierto valor; por ejemplo, reproducir una música especial o mostrar una pista de UI cuando la salud sea menor que 3.

Las barras de salud pueden configurarse para afectar a cualquier cosa. Por ejemplo, añade una barra de salud anidada debajo del **Wooden Door** smart item. Esta barra puede ver reducida su salud por el jugador usando el **Sword** smart item, pero también por una explosión del **Barrel** o el ataque del **Robot Enemy**. Para que esto funcione, configura la barra de salud para que realice una acción en su item padre cuando su valor sea 0.

![](https://1216664193-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-88d81e8b8ea6b0985853612179ccbe55fff7e1a4%2Fwall-with-health.png?alt=media)

Armas como la **Sword** pueden ser recogidas por el jugador y luego usadas para causar daño a cualquier otro item con una barra de salud que esté cerca del jugador al realizar la acción.

## Multijugador

Casi todos los smart items tienen comportamiento multijugador, de modo que todos los jugadores de la escena comparten la misma experiencia a medida que los items cambian de estado. Si el jugador A abre una puerta, el jugador B también ve esa puerta abierta. Si luego el jugador C entra en la escena mientras los otros jugadores siguen allí, ella también verá la puerta ya abierta.

Sin embargo, si no hay jugadores cerca de la escena, entonces la escena se restaura a su estado predeterminado. Así que si todos los jugadores se van, pero luego el jugador A regresa, encontrará la puerta cerrada (si ese era el estado predeterminado de la puerta).

Asegúrate de diseñar tu escena de forma que las acciones de un jugador no saboteen la escena para otros que lleguen más tarde. Por ejemplo, si la escena es un juego de rompecabezas, puedes usar una *delay* acción en un *tools* smart item para hacer que todos los items de la escena se reinicien a su estado inicial unos segundos después de resolver el rompecabezas.

También puedes desactivar el comportamiento multijugador de un item; consulta [Smart Items - Advanced](/creator/content-creator-es/scene-editor/interactividad/smart-items-advanced.md).

## Solución de problemas

* *Un item en mi escena debería ser clicable, pero no se puede hacer clic en él*.

Asegúrate de que no esté obstruido por otra cosa. No puedes hacer clic a través de otros items. Algunos items tienen una *malla collider* que tiene una geometría simplificada que podría estar obstruyendo tu item, aunque su forma visible no parezca hacerlo. Intenta mover el item para ver qué sucede.

## Ver también

* [Smart items - Advanced](/creator/content-creator-es/scene-editor/interactividad/smart-items-advanced.md)
* [Estados y condiciones](/creator/content-creator-es/scene-editor/interactividad/states-and-conditions.md)
* [Hacer inteligente cualquier item](/creator/content-creator-es/scene-editor/interactividad/make-any-item-smart.md)
* [Combinar con código](/creator/content-creator-es/scene-editor/extender-con-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-es/scene-editor/interactividad/smart-items.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.
