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_liboxmysqlcuxial_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 personajecuxial_emotes_zones: zonas de emotescuxial_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:
['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:
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:
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.
# 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 1Declara 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:
# 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ínea | Para qué sirve |
|---|---|
AnimStore | Huecos para animaciones. La más importante para los emotes. |
TxdStore | Texturas de los props. |
FragmentStore | Props con partes físicas. |
CMoveObject | Varios jugadores usando emotes con objetos a la vez. |
ScaleformStore | Interfaces del juego. |
Occlusion*, PortalInst, StaticBounds | Mapeos 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.
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_emotesSi 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
- Reinicia el servidor y entra.
- Pulsa F3. Se abre el menú.
- Escribe
/e adjust. Tu personaje hace el emote. - 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.
