> 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/bandas/cuxial-gang/installation.md).

# Instalación

Instala Cuxial Gang paso a paso: dependencias, ítems, convars, permiso de staff y orden de arranque.

Cuxial Gang no necesita importar ningún SQL. Crea y actualiza sus tablas en cada arranque. Solo tienes que añadir los ítems y el permiso de staff.

{% stepper %}
{% step %}

## Comprueba las dependencias

Estos recursos tienen que estar instalados y funcionando antes:

* `ox_lib`
* `oxmysql`
* `cuxial_bridge`, conectado a QBox o QBCore
* OneSync activado en el servidor
* `ox_inventory` y un recurso de target compatible con el bridge

{% hint style="warning" %}
Cuxial Gang requiere `ox_inventory`. Los alijos de la organización, los alijos extra, los puntos de abastecimiento, el asalto a un alijo en una redada y el cacheo de un jugador se apoyan en él.
{% endhint %}

Los recursos opcionales están en la [Introducción](/scripts/es/bandas/cuxial-gang.md#requisitos). Instala los que quieras antes de arrancar Cuxial Gang.
{% endstep %}

{% step %}

## Copia el recurso

Coloca la carpeta `cuxial_gang` dentro de tu directorio `resources`. No le cambies el nombre.
{% endstep %}

{% step %}

## Base de datos

No hay nada que ejecutar. Al arrancar, el recurso crea todas las tablas `cuxial_gang_*` y las dos `cuxial_extort_*`, y añade tres columnas a `player_vehicles`: `gang`, `configName` y `vehicleid`.

{% hint style="info" %}
El usuario de la base de datos necesita permiso para crear y modificar tablas.
{% endhint %}
{% endstep %}

{% step %}

## Añade los ítems

Añade estos ítems a tu inventario. Los nombres se cambian en el archivo de la última columna; las etiquetas, los pesos y las imágenes los decides tú.

| Ítem                                                                                          | Para qué se usa                                      | El nombre se define en |
| --------------------------------------------------------------------------------------------- | ---------------------------------------------------- | ---------------------- |
| `spray_can`                                                                                   | Pintar un grafiti                                    | `data/graffiti.lua`    |
| `spray_remover`                                                                               | Borrar un grafiti                                    | `data/graffiti.lua`    |
| `burnerphonedrug`                                                                             | Llamar a un comprador para vender droga              | `data/drugselling.lua` |
| `crime_tablet`                                                                                | Abrir la tablet, solo con `tablet.asItem = true`     | `shared/config.lua`    |
| `arsenal_blueprint`                                                                           | Plano que se entrega cuando el arsenal sube de nivel | `data/arsenal.lua`     |
| `arsenal_barrel`, `arsenal_frame`, `arsenal_spring`, `arsenal_polymer`, `arsenal_electronics` | Piezas del arsenal                                   | `data/arsenal.lua`     |
| `black_money`                                                                                 | Dinero negro                                         | Fijo                   |
| `cash`                                                                                        | Dinero limpio que paga la ruta de lavado             | Fijo                   |

Las drogas de `data/drugselling.lua` y las recompensas de `data/missions.lua` y `data/airdrop.lua` son ejemplos. Sustitúyelas por ítems que existan en tu servidor.

El recurso registra el spray, el quitagrafitis y la tablet (con `tablet.asItem = true`) como ítems usables a través del bridge, y el móvil desechable igual. Si tu inventario no lo recoge, apunta el ítem al export de cliente. Con `ox_inventory`:

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

```lua
['spray_can'] = {
    label = 'Spray',
    weight = 300,
    client = { export = 'cuxial_gang.useSpray' },
},

['spray_remover'] = {
    label = 'Quitagrafitis',
    weight = 300,
    client = { export = 'cuxial_gang.useRemover' },
},

['crime_tablet'] = {
    label = 'Tablet',
    weight = 500,
    client = { export = 'cuxial_gang.openCrimeTablet' },
},

['rope'] = {
    label = 'Cuerda',
    weight = 200,
    client = { export = 'cuxial_gang.openHandcuffsMenu' },
},
```

{% endcode %}

Usa un solo camino por ítem, no los dos. El ítem `rope` es opcional y solo funciona por su export: abre el mismo menú de interacción que la tecla.
{% endstep %}

{% step %}

## Define las convars y el permiso de staff

Todas las convars son opcionales.

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

```cfg
# Idioma de los textos
setr ox:locale "es"

# Webhooks de Discord: acciones de jugadores y acciones de staff
set cuxial_gang_webhook "https://discord.com/api/webhooks/..."
set cuxial_gang_webhook_admin "https://discord.com/api/webhooks/..."

# Clave de la Steam Web API, para mostrar los avatares del staff en el panel
set cuxial_gang_steam_key "TU_CLAVE"

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

{% endcode %}

El panel de staff y sus comandos comprueban el ACE indicado en `admin.ace`, `mod` por defecto. Dáselo a tu grupo de staff:

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

```cfg
add_ace group.mod mod allow
add_principal group.admin group.mod
```

{% endcode %}

{% hint style="info" %}
Los webhooks y la clave de Steam van en `server.cfg`, nunca en `shared/config.lua`. El config solo guarda los nombres de las convars.
{% endhint %}
{% endstep %}

{% step %}

## Arranca el recurso

Arranca Cuxial Gang después de sus dependencias, de tu framework y de las integraciones opcionales que uses:

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

```cfg
ensure ox_lib
ensure oxmysql
# tu framework aquí (qbx_core o qb-core)
ensure ox_inventory
ensure cuxial_bridge
# integraciones opcionales
ensure cuxial_garages
ensure cuxial_medical
ensure cuxial_appearance
ensure cuxial_police
ensure cuxial_gang
```

{% endcode %}
{% endstep %}

{% step %}

## Comprueba que funciona

1. Entra con una cuenta de staff y escribe `/crimeadmin`. Se abre el panel de staff.
2. Crea una organización y coloca su punto de menú de jefe.
3. Escribe `/setcrimejob <tu id> <id de la organización> boss`. Entras como jefe.
4. Ve al punto del menú de jefe y ábrelo.
5. Escribe `/crimetablet`. Se abre la tablet.
   {% endstep %}
   {% endstepper %}

Siguiente: ajusta el script a tu servidor en [Configuración](/scripts/es/bandas/cuxial-gang/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/bandas/cuxial-gang/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.
