> For the complete documentation index, see [llms.txt](https://docs.cuxial.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.cuxial.com/scripts/es/interfaz/cuxial-emotes/installation.md).

# Instalación

Instala Cuxial Emotes paso a paso: dependencias, orden de arranque, ítems opcionales y comprobación final.

Cuxial Emotes no necesita importar SQL y su interfaz se entrega ya compilada. Instala las dependencias, copia la carpeta e inícialo en el orden correcto.

{% stepper %}
{% step %}

## Instala las dependencias

El recurso no arranca si falta alguna de estas o no está iniciada:

* OneSync activado en el servidor
* `ox_lib`
* `oxmysql`
* `cuxial_bridge`

`cuxial_bridge` detecta tu framework por sí solo. Es compatible con QBox, QBCore y ESX.

{% hint style="info" %}
`cuxial_diseases` es opcional. Solo lo usa el módulo de relaciones del complemento, para sus tests y el contagio. Si no está iniciado, esas funciones no hacen nada y el resto funciona igual.
{% endhint %}
{% endstep %}

{% step %}

## Copia el recurso

Coloca la carpeta en tu directorio `resources` y conserva el nombre `cuxial_emotes`.

{% hint style="danger" %}
No renombres la carpeta. Los exports y los ítems del inventario apuntan al recurso por su nombre (`exports.cuxial_emotes`, `cuxial_emotes.condom_closed`) y dejan de funcionar si lo cambias.
{% endhint %}
{% endstep %}

{% step %}

## Base de datos

No hay nada que importar. Las tablas se crean al iniciar el recurso y las columnas que falten se añaden solas:

* `cuxial_emotemenu_data`: favoritos, sets, estilo de caminar, expresión, recientes y uso por personaje
* `cuxial_emotes_zones`: zonas de emotes
* `cuxial_emote_reports`: reportes enviados desde el menú
* `cuxial_encounters`: solo la usa el módulo de relaciones

`install/emotes.sql` contiene el mismo esquema como referencia, o para crear las tablas a mano.
{% endstep %}

{% step %}

## Ítems (solo con el complemento opcional)

Sáltate este paso si no usas el complemento `cuxial_emotes_dlc`. Los exports de los ítems existen siempre, para que el inventario no dé error, pero sin el complemento no hacen nada.

Añade los ítems a `ox_inventory`:

{% code title="ox\_inventory/data/items.lua" %}

```lua
['condom_box'] = {
    label = 'Caja de condones',
    weight = 100,
    stack = false,
    close = false,
    consume = 0,
    description = 'Una caja con varios condones.',
},

['condom_closed'] = {
    label = 'Condón (sellado)',
    weight = 10,
    stack = true,
    close = true,
    description = 'Un condón sellado en su envoltorio original.',
    server = {
        export = 'cuxial_emotes.condom_closed',
    },
},

['condom_open'] = {
    label = 'Condón (abierto)',
    weight = 10,
    stack = false,
    close = true,
    description = 'Un condón abierto, listo para usar.',
    server = {
        export = 'cuxial_emotes.condom_open',
    },
},

['pregnancy_test'] = {
    label = 'Test de embarazo',
    weight = 20,
    stack = false,
    close = true,
    description = 'Un test de embarazo de farmacia.',
    server = {
        export = 'cuxial_emotes.pregnancy_test',
    },
},

['hiv_test'] = {
    label = 'Test de VIH',
    weight = 20,
    stack = false,
    close = true,
    description = 'Test rápido de detección de VIH.',
    server = {
        export = 'cuxial_emotes.hiv_test',
    },
},
```

{% endcode %}

Registra la caja como contenedor:

{% code title="ox\_inventory/modules/items/containers.lua" %}

```lua
setContainerProperties('condom_box', {
    slots = 3,
    maxWeight = 50,
    whitelist = { 'condom_closed', 'condom_open' },
})
```

{% endcode %}

Para que el resultado y la fecha del test se vean en la ficha del ítem, añade esto a cualquier script de cliente:

```lua
exports.ox_inventory:displayMetadata({
    result = 'Resultado',
    date = 'Fecha',
})
```

La referencia completa, con los metadatos que guarda cada ítem, está en `install/items.md`.
{% endstep %}

{% step %}

## Convars (opcional)

Las dos son opcionales. Añádelas a `server.cfg` antes de las líneas `ensure`.

{% code title="server.cfg" %}

```cfg
# Webhook de Discord que recibe los reportes de emotes rotos
set cuxial_emotes:report_webhook "https://discord.com/api/webhooks/..."

# 1 = imprime trazas de depuración en la consola del servidor y de los clientes
setr cuxial_emotes_debug 1
```

{% endcode %}

{% hint style="warning" %}
Declara el webhook con `set`, nunca con `setr`: una convar replicada se envía a todos los clientes. El enlace va en `server.cfg`, no en `shared/config.lua`. Sin él, los reportes se siguen guardando en la base de datos.
{% endhint %}
{% endstep %}

{% step %}

## Orden de arranque

Inicia primero las dependencias y Cuxial Emotes al final.

{% code title="server.cfg" %}

```cfg
ensure ox_lib
ensure oxmysql
# aquí tu framework y tu inventario
ensure cuxial_bridge
# ensure cuxial_diseases     (opcional: tests y contagio del módulo de relaciones)
# ensure cuxial_emotes_dlc   (solo si tienes el complemento)
ensure cuxial_emotes
```

{% endcode %}

{% hint style="warning" %}
Si usas `cuxial_emotes_dlc`, inícialo **antes** que `cuxial_emotes`. Mientras el complemento esté instalado pero sin iniciar, las zonas y las relaciones quedan apagadas y la consola muestra un aviso.
{% endhint %}
{% endstep %}

{% step %}

## Comprueba que funciona

1. Reinicia el servidor y entra.
2. Pulsa **F3**. Se abre el menú.
3. Escribe `/e adjust`. Tu personaje hace el emote.
4. Pulsa **X** para cancelarlo.

Si algo falla, mira [Problemas frecuentes](/scripts/es/interfaz/cuxial-emotes/troubleshooting.md).
{% endstep %}
{% endstepper %}

## Zonas de ejemplo

`install/zones_example.sql` contiene una zona de emotes de ejemplo sobre el motel Pink Cage, en el mapa base. Es opcional. Crea tus propias zonas dentro del juego con `/emotezones`. En los dos casos, las zonas necesitan el complemento `cuxial_emotes_dlc`.


---

# 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.cuxial.com/scripts/es/interfaz/cuxial-emotes/installation.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.
