> 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/scenes-sdk7/tipos-de-proyectos/smart-wearables.md).

# Smart Wearables

Crea wearables con capacidades interactivas

Los smart wearables son un tipo de escena global. Como [portable experiences](/creator/content-creator-es/scenes-sdk7/tipos-de-proyectos/portable-experiences.md), son una jugabilidad que los jugadores llevan consigo mientras se desplazan por el metaverso. Por ejemplo, mientras ejecuta una escena global, un jugador podría tomar una bola de nieve del suelo en Genesis Plaza, alejarse a otra escena y lanzar la bola de nieve a otro jugador que también esté jugando el mismo juego.

Los smart wearables son experiencias portátiles que se activan cuando el jugador se pone una determinada prenda de ropa. Los smart wearables pueden otorgar a los jugadores nuevas habilidades, como un jetpack que les permite volar, o añadir una nueva capa de contenido encima del resto del mundo, como colocar monedas aleatoriamente para que se recojan por todo Genesis City.

{% hint style="warning" %}
**📔 Nota**: Los smart wearables solo pueden crearse usando SDK 7.

El **Creator Hub** actualmente no admite la creación de proyectos de Smart Wearables.
{% endhint %}

## Primeros pasos

### Usando la CLI

1. Abre una línea de comandos en una carpeta nueva y ejecuta

`npx @dcl/sdk-commands init --project smart-wearable`

Este comando crea los archivos básicos y la estructura para un nuevo smart wearable.

## Los archivos de la plantilla

La carpeta de un proyecto Smart Wearable completamente nuevo es muy similar a la de una [escena de Decentraland](/creator/content-creator-es/scenes-sdk7/tipos-de-proyectos/scene-files.md), pero notarás las siguientes diferencias:

* `wearable.json` incluye todos los metadatos de la experiencia portátil
* Hay un modelo 3D de marcador de posición (glasses.glb) y una miniatura (glasses.png) para un par de gafas oscuras. Deberías sustituirlos por el wearable real que estés creando
* `scene.json` es mucho más corto; no incluye propiedades irrelevantes para un wearable, como parcelas o puntos de aparición

## Acerca de wearable.json

El `wearable.json` archivo predeterminado se ve así:

```json
{
	"data": {
		"replaces": [],
		"hides": [],
		"tags": ["special", "new", "eyebrows"],
		"representations": [
			{
				"bodyShapes": [
					"urn:decentraland:off-chain:base-avatars:BaseMale",
					"urn:decentraland:off-chain:base-avatars:BaseFemale"
				],
				"mainFile": "glasses.glb",
				"contents": ["glasses.glb"],
				"overrideHides": [],
				"overrideReplaces": []
			}
		],
		"category": "eyewear"
	},
	"name": "Smart Wearable Example",
	"description": "Put the glasses to see a new world",
	"rarity": "mythic"
}
```

Los siguientes campos son obligatorios en `wearable.json`:

* `id`: ID único del smart wearable.
* `name`: El nombre del wearable que los usuarios verán en el marketplace
* `descripción`: La descripción del wearable que los usuarios verán en el marketplace. Asegúrate de indicar qué puede hacer el smart wearable, ya que los usuarios del marketplace no tendrán forma de previsualizar su funcionalidad antes de comprarlo.
* `rarity`: La oferta de rareza del token. Los valores posibles son:
  * único (1 copia)
  * mítico (10 copias)
  * exótico (50 copias)
  * legendario (100 copias)
  * épico (1000 copias)
  * poco común (10.000 copias)
  * común (100.000 copias)

{% hint style="warning" %}
**📔 Nota**: Si hiciste un fork de tu proyecto a partir de uno existente y este incluye un `id`, asegúrate de que el valor sea único antes de publicar tu wearable. Usa [uuidgenerator.net](https://www.uuidgenerator.net/) para generar un nuevo UUID aleatorio
{% endhint %}

Los siguientes campos también pueden incluirse opcionalmente. Estas configuraciones también pueden ajustarse desde la interfaz de usuario de Builder, una vez que subas el smart wearable.

* `data`: Incluye lo siguiente
  * `replaces`: Lista de categorías de otros wearables que deben quitarse al equipar este wearable, además del valor predeterminado de esta categoría. Ej.: Al ponerte una capa de torso superior, también oculta feet.
  * `hides`: Lista de categorías de otros wearables que deben ocultarse (pero no quitarse) al equipar este wearable, además del valor predeterminado de esta categoría.
  * `tags`: Etiquetas usadas para hacer que el wearable sea buscable en el marketplace.
  * `representations`:
    * `bodyShapes`: La lista de representaciones de avatar que pueden usar este wearable. Todos los smart wearables deben estar disponibles tanto para formas corporales masculinas como femeninas.
    * `mainFile`: El archivo principal con el modelo 3D del wearable.
    * `contents`: La lista completa de archivos usados para renderizar el modelo 3D del wearable. Por ejemplo, el modelo 3D podría incluir texturas como archivos separados.
    * `overrideHides`: Cualquier excepción al comportamiento predeterminado de *ocultar* de esta categoría de wearable.
    * `overrideReplaces`: Cualquier excepción al comportamiento predeterminado de *reemplazar* de esta categoría de wearable.
  * `category`: Qué categoría de wearable usar. Los valores posibles son:
    * 'eyebrows'
    * 'eyes'
    * 'facial\_hair'
    * 'hair'
    * 'mouth'
    * 'upper\_body'
    * 'lower\_body'
    * 'feet'
    * 'earring'
    * 'eyewear'
    * 'hat'
    * 'helmet'
    * 'mask'
    * 'tiara'
    * 'top\_head'
    * 'skin'
    * 'hands\_wear'
* `menuBarIcon`: Imagen que se usará en el menú “experiences”, para representar esta experiencia portátil. Esta imagen debe estar en la raíz de tu carpeta. El tamaño recomendado de la imagen es 256x256.
* `model`: El modelo 3D que se usará para el wearable. Este archivo debe estar en la raíz de tu carpeta.
* `bodyShape`: El tipo de cuerpo de avatar con el que es compatible este wearable. Valores posibles:
  * male
  * female
  * both
* `collectionAddress`: La dirección de Ethereum de la colección publicada de wearables. Esta dirección se asigna una vez publicado; puede dejarse en blanco.

## La miniatura

Debes incluir una imagen llamada `thumbnail.png` en la raíz de tu carpeta. Esta imagen se mostrará tanto en el backpack como en el marketplace, para representar tu wearable en 2D. El tamaño recomendado requerido de la imagen es 256x256.

Elige una imagen que establezca las expectativas del jugador y represente correctamente tu creación.

## Preview

Ejecutar una Preview de una experiencia portátil es igual que ejecutar la de una escena; simplemente haz clic **Preview** en Creator Hub, o ejecuta `npm run start` en la línea de comandos. Si el `wearable.json` archivo está configurado correctamente y el proyecto se reconoce como un smart wearable, notarás que todo lo visible a tu alrededor son las parcelas vacías predeterminadas. En este modo de Preview, no estás limitado a un conjunto específico de parcelas; puedes añadir modelos 3D o sonidos en cualquier parte del mundo.

Para probar cómo se comporta el smart wearable en el contexto de una escena, también puedes ejecutar una Preview de tu wearable al mismo tiempo que ejecutas una Preview de una o varias escenas usando un [Workspace](/creator/content-creator-es/scenes-sdk7/tipos-de-proyectos/workspaces.md). Por ejemplo, puedes ejecutar tu smart wearable junto con la [Genesis Plaza](https://github.com/decentraland-scenes/Genesis-Plaza) scene para probar cómo se comporta en una escena concurrida, mientras estás en un ascensor, etc.

## Consejos

* Al posicionar una Entity, ten en cuenta que las posiciones son globales, relativas a las coordenadas 0,0 de Genesis Plaza.
* Para reaccionar a los jugadores cercanos:
  * Consulta [Obtener todos los players](/creator/content-creator-es/scenes-sdk7/interactividad/user-data.md#fetch-all-players) para saber cómo obtener datos de otros jugadores en los alrededores.
  * Ten en cuenta que la carga del smart wearable, las escenas circundantes y otros jugadores puede ocurrir en distinto orden según la situación. Si el jugador entra en Decentraland con el smart wearable ya puesto, es probable que la escena global de tu wearable se cargue antes que la de los demás jugadores. Por otro lado, si el jugador primero carga en una escena y luego se pone el wearable, es probable que otros jugadores ya estén cargados para cuando la escena de tu wearable empiece a ejecutarse.
  * Para experiencias multijugador, espera a que el jugador esté conectado a una isla dentro de su realm. Obtén los datos del realm y comprueba el campo ‘room’. Si el campo ‘room’ es null, el jugador todavía no está conectado a una isla y los demás jugadores aún no se cargarán. Puedes comprobar esto periódicamente cada 1 segundo hasta que el campo ‘room’ esté presente, y solo entonces inicializar tu lógica.
* Para interactuar con las escenas circundantes:
  * No puedes enviar directamente ninguna instrucción a las escenas cercanas ni a otras experiencias portátiles; el `messageBus` actualmente está aislado para cada experiencia portátil/escena.
  * Puedes usar un servidor intermedio para enviar información entre la experiencia portátil y una escena.
  * Si haces un raycast, puedes detectar impactos contra los colliders de entidades de las escenas circundantes. Esto puede indicarte la ubicación exacta del impacto, la dirección normal e incluso el nombre de la Entity y el nombre de la Mesh del modelo 3D. Esto solo funciona al impactar con entidades en escenas escritas con SDK7.
* Cerrar una experiencia portátil: ejecuta el `kill()` método para autodestruir una experiencia portátil.

## Publicar

Para publicar tu smart wearable:

1. Asegúrate de que la información en `wearable.json` sea correcta. Si usaste otro proyecto como punto de partida, asegúrate de que el `id` sea un identificador único, no usado por otros wearables.
2. Ejecuta `npm run pack` en la carpeta de tu proyecto. Esto genera un archivo `smart-wearable.zip` en la carpeta de tu proyecto.

{% hint style="warning" %}
**📔 Nota**: La salida de `npm run pack` indicará el tamaño del proyecto exportado sin comprimir; debe ser inferior a 3 MB. Si es mayor que eso, el builder no lo aceptará.
{% endhint %}

3. Abre el Builder, abre la pestaña Collections, haz clic en + para subir un nuevo wearable.
4. Arrastra tu `smart-wearable.zip` archivo comprimido al Builder y verifica que toda la información sea correcta.

> Nota: Si tu wearable contiene distintas representaciones de modelo, necesitas hacer una solución alternativa:
>
> 1. En tu proyecto, crea una nueva carpeta para cada representación(`male` y `female`), y coloca el modelo 3D de cada representación en su carpeta correspondiente.
> 2. Actualiza tu `wearable.json` archivo para incluir las nuevas representaciones.
> 3. ```lang-json
>    "representations": [{
>      "bodyShapes": ["urn:decentraland:off-chain:base-avatars:BaseMale"],
>      "mainFile": "male/glasses.glb",
>      "contents": ["male/glasses.glb"],
>      "overrideHides": [],
>      "overrideReplaces": []
>    },
>    {
>      "bodyShapes": ["urn:decentraland:off-chain:base-avatars:BaseFemale"],
>      "mainFile": "female/glasses.glb",
>      "contents": ["female/glasses.glb"],
>      "overrideHides": [],
>      "overrideReplaces": []
>    }],
>    ```
> 4. Ejecuta `npm run pack` para generar un nuevo archivo smart-wearable.zip.
> 5. Arrastra el nuevo archivo smart-wearable.zip al Builder.

5. Abre el editor de wearables y asegúrate de que las categorías “hide” y “remove” estén configuradas correctamente para deshabilitar otras categorías de wearables cuando este wearable esté puesto.
6. Crea una nueva colección con este y quizás otros wearables.
7. Haz clic en el ícono de los 3 puntos junto a “Mint Items” y selecciona “See in world”. Esto abrirá una pestaña con el Explorer en Sepolia, donde podrás probar todos los wearables de tu colección en Decentraland y ver cómo se comportan en un escenario más real, por ejemplo corriendo por Genesis Plaza.
8. En este punto, tu wearable está listo para publicarse.

## Acciones restringidas

Para evitar abusos, ciertas funciones no están permitidas en las experiencias portátiles de forma predeterminada, y requieren añadir una marca de permiso.

Consulta [Permisos requeridos](/creator/content-creator-es/scenes-sdk7/tipos-de-proyectos/scene-metadata.md#required-permissions) para más detalles.

## Limitaciones

> IMPORTANTE: Toda la smart wearable debe caber dentro de 3 MB. Esto incluye el modelo 3D, la miniatura, el código, las librerías, los archivos de sonido, modelos 3D adicionales, imágenes de UI, etc. Este límite aplica a la carpeta sin comprimir. El builder no te permitirá subir wearables más grandes que esto. Para comprobar el tamaño de tu experiencia portátil, ejecuta `npm run pack`, el tamaño del proyecto se especifica en el texto de salida del comando. También puedes verificarlo descomprimiendo el archivo `smart-wearable.zip` generado y comprobando el tamaño de la carpeta.

Los smart wearables solo ejecutan la experiencia portátil para el jugador que lleva puesto el wearable. Los demás jugadores no ven los efectos. Por ejemplo, si la experiencia portátil renderiza una mascota que sigue al jugador, los demás jugadores alrededor no verán a esta mascota. Sin embargo, los demás jugadores sí verán a los avatares realizar animaciones que se ejecutan como parte de la escena del wearable, incluso [animaciones de avatar personalizadas](/creator/content-creator-es/scenes-sdk7/interactividad/avatars/avatar-animations.md#custom-animations) subidas como parte de los archivos del smart wearable.

Los smart wearables solo funcionan cuando los jugadores los llevan puestos. Por este motivo, los jugadores solo pueden tener un número limitado de smart wearables activados y, dependiendo de la parte del cuerpo que ocupen, algunos serán incompatibles con otros. Por ejemplo, no puedes tener dos hats al mismo tiempo, o un helmet y hair al mismo tiempo.

Si un wearable está “hidden” pero no “removed” por otros wearables que se lleven puestos, entonces el smart wearable puede seguir activo, aunque el wearable correspondiente no sea visible.

## Ejemplos

[Muestra de smart wearable](https://github.com/decentraland/smart-wearable-sample))


---

# 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/scenes-sdk7/tipos-de-proyectos/smart-wearables.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.
