> 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/ocio/cuxial-gym/installation.md).

# Instalación

Instala Cuxial Gym paso a paso: dependencias, items de inventario, convars, permisos de staff y orden de arranque.

Cuxial Gym viene en dos carpetas, necesita ocho items de inventario y crea sus tablas en la base de datos en el primer arranque.

{% stepper %}
{% step %}

## Comprueba las dependencias

Estos recursos tienen que estar instalados y funcionando antes de añadir el gimnasio:

* `ox_lib`
* `oxmysql`
* `cuxial_bridge`, con tu framework
* `sleepless_interact`
* OneSync activado en el servidor

`ox_inventory` es recomendable: los suplementos, la recompensa diaria, la tienda, las taquillas y los alijos pasan por el inventario.

`cuxial_appearance` es opcional. Si está en marcha, los puntos de vestuario abren su armario. Para usar otro recurso de ropa, apunta el vestuario a él en `cloakroom.handlers`.
{% endstep %}

{% step %}

## Copia los recursos

Coloca las dos carpetas dentro de tu directorio `resources`. No les cambies el nombre.

* `cuxial_gym`
* `cuxial_gym_assets`

{% hint style="danger" %}
Cuxial Gym ocupa el nombre de recurso `CuxialGym`. No puede haber otro recurso con ese nombre en marcha a la vez.
{% endhint %}
{% endstep %}

{% step %}

## Añade los items

Copia las ocho entradas de `install/items.lua` en la lista de items de tu inventario. Con `ox_inventory`:

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

```lua
['gym_iron_surge'] = {
    label = 'Iron Surge',
    weight = 0,
    stack = true,
    close = true,
    description = '+20% de XP de entrenamiento durante 1 hora',
},
```

{% endcode %}

Los ocho nombres de item son `gym_iron_surge`, `gym_pump_juice`, `gym_ripped_recovery`, `gym_hardcore_stack`, `gym_beast_mode_fuel`, `gym_apex_predator`, `gym_american_mass` y `gym_king_of_iron`.

Añade una imagen por item, con el nombre del item, en `ox_inventory/web/images/<item>.webp`. El gimnasio lee las imágenes de esa ruta; cambia `items.imageUrl` si las tuyas están en otro sitio.

{% hint style="info" %}
Los items no necesitan bloque `client` ni `server`. El gimnasio los registra como usables al arrancar.
{% endhint %}
{% endstep %}

{% step %}

## Define las convars

Todas son opcionales.

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

```cfg
# Idioma (se incluyen en y es)
setr ox:locale "es"

# Webhook de Discord para los registros del gimnasio
set cuxial_gym_webhook "https://discord.com/api/webhooks/..."

# Trazas de depuración en la consola
setr cuxial_gym_debug "0"
```

{% endcode %}

{% hint style="info" %}
El webhook va en `server.cfg`, nunca en `shared/config.lua`. El nombre de la convar se puede cambiar en `logs.convar`.
{% endhint %}
{% endstep %}

{% step %}

## Da acceso al staff

Dos permisos ACE abren los editores de staff. Los jugadores con el permiso `admin` del framework tienen los dos sin ningún ACE.

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

```cfg
add_ace group.admin cuxial_gym.admin allow
add_ace group.admin cuxial_gym.creator allow
```

{% endcode %}

En [Comandos y permisos](/scripts/es/ocio/cuxial-gym/commands.md) verás qué abre cada uno.
{% endstep %}

{% step %}

## Arranca los recursos

Arranca los assets antes que el gimnasio, y los dos después de sus dependencias y de tu framework:

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

```cfg
ensure ox_lib
ensure oxmysql
# tu framework aquí
ensure ox_inventory
ensure sleepless_interact
ensure cuxial_bridge
# opcional
ensure cuxial_appearance
ensure cuxial_gym_assets
ensure cuxial_gym
```

{% endcode %}

No hay SQL que ejecutar. El recurso crea sus siete tablas `cuxial_gym_*` al arrancar; `install/cuxial_gym.sql` es solo una referencia.

En el primer arranque, sin zonas en la base de datos, el gimnasio crea además una zona de ejemplo con sus equipos y puntos a partir de `data/seed.lua`. Desde ese momento manda la base de datos y las zonas se editan en juego.
{% endstep %}

{% step %}

## Comprueba que funciona

1. Entra al servidor y ejecuta `/gymcreator`. Se abre el editor de zonas con la zona de ejemplo.
2. Abre la zona de ejemplo y teletranspórtate desde el editor a uno de sus equipos. Los equipos están en su sitio.
3. Usa el punto del menú del gimnasio. Se abre el panel con tus estadísticas y la pestaña de membresía. La zona de ejemplo no exige pase; activa el requisito en el editor si lo quieres.
4. Interactúa con una máquina y empieza un ejercicio. Aparece el minijuego; pulsa <kbd>X</kbd> para dejar la serie.
5. Ejecuta `/gymadmin` y crea un negocio; después asígnale la zona.
   {% endstep %}
   {% endstepper %}

Siguiente: aprende cómo se usa cada parte en la [Guía de funciones](/scripts/es/ocio/cuxial-gym/features.md), o ajusta el script en [Configuración](/scripts/es/ocio/cuxial-gym/configuration.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 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/ocio/cuxial-gym/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.
