Skip to content

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.

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.

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.

Copia el recurso ​

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

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.

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.

Í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:

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',
    },
},

Registra la caja como contenedor:

ox_inventory/modules/items/containers.lua
lua
setContainerProperties('condom_box', {
    slots = 3,
    maxWeight = 50,
    whitelist = { 'condom_closed', 'condom_open' },
})

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.

Convars (opcional) ​

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

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

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.

Amplía los límites del motor (recomendado) ​

Cuxial Emotes carga miles de animaciones y cientos de props. Si el juego se queda sin huecos para ellos, los jugadores crashean al abrir el menú o al hacer emotes, sobre todo en servidores con muchos mapeos y vehículos. Añade estas líneas al principio de server.cfg:

server.cfg
cfg
# Límites del motor (todos al máximo permitido)
increase_pool_size "CMoveObject" 75
increase_pool_size "FragmentStore" 14000
increase_pool_size "OcclusionInteriorInfo" 20
increase_pool_size "OcclusionPathNode" 5000
increase_pool_size "OcclusionPortalEntity" 750
increase_pool_size "OcclusionPortalInfo" 750
increase_pool_size "PortalInst" 225
increase_pool_size "ScaleformStore" 200
increase_pool_size "StaticBounds" 5000
increase_pool_size "TxdStore" 26000
increase_pool_size "AnimStore" 20480
LíneaPara qué sirve
AnimStoreHuecos para animaciones. La más importante para los emotes.
TxdStoreTexturas de los props.
FragmentStoreProps con partes físicas.
CMoveObjectVarios jugadores usando emotes con objetos a la vez.
ScaleformStoreInterfaces del juego.
Occlusion*, PortalInst, StaticBoundsMapeos e interiores. No son del menú, pero evitan crasheos en servidores con muchos mapeos.

Los valores ya son el máximo que admite FiveM: subirlos más no tiene efecto. Se aplican al reiniciar el servidor, no basta con reiniciar el recurso.

Orden de arranque ​

Inicia primero las dependencias y Cuxial Emotes al final.

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

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.

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.

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.

© Cuxial