Skip to content

Configuración

Todas las opciones de Cuxial Gym explicadas: shared/config.lua, los archivos de datos y lo que se edita en juego.

Cuxial Gym se ajusta en tres sitios: shared/config.lua para el comportamiento, los archivos de data/ para los valores de fábrica y los editores en juego para todo lo que vive en la base de datos. Reinicia el recurso después de cambiar un archivo.

Las zonas, los equipos, los puntos, el equilibrio, los suplementos y las reglas de negocio se editan en juego con /gymcreator y /gymadmin. Lo que guardes ahí queda en la base de datos y sustituye a la sección correspondiente de los archivos de data/.

General ​

OpciónTipoPor defectoQué hace
debugbooleanfalseMuestra trazas y los errores de SQL con detalle. También se activa poniendo la convar cuxial_gym_debug a 1.

Módulos · modules ​

Interruptores de partes enteras del script. true carga el módulo, false lo deja fuera.

OpciónTipoPor defectoQué hace
businessbooleantrueNegocios. Con false tampoco cargan la tienda, los puntos de negocio, los ayudantes ni /gymadmin.
shopbooleantrueTienda pública de cada negocio.
helperbooleantrueAyudantes: empleados que ayudan a un jugador que entrena.
creatorbooleantrueCreador de zonas y comando /gymcreator.
adminbooleantruePanel de administración de negocios y comando /gymadmin.
globalModelsbooleantrueProps del mapa que sirven de equipo fuera de cualquier zona.

Interfaz · ui ​

OpciónTipoPor defectoQué hace
accentstring (hex)configurableColor de acento de los paneles.
currency.symbolstring'$'Símbolo de moneda junto a los importes.
currency.localestring'en-US'Formato numérico de los importes, como código de idioma ('en-US', 'es-ES'...).

Sonidos de la interfaz · sounds ​

Volúmenes de 0.0 a 1.0.

OpciónTipoPor defectoQué hace
masternumber1.0Multiplica a todos los demás.
clicknumber0.35Sonido de clic.
startnumber0.6Sonido de inicio.
successnumber0.7Sonido de acierto.
failnumber0.7Sonido de fallo.

Sonidos del ejercicio · audio ​

Sonidos que suenan en el mundo al entrenar. Vienen de cuxial_gym_assets.

OpciónTipoPor defectoQué hace
enabledbooleantruefalse silencia todos los sonidos del ejercicio.
networkedbooleanfalsetrue hace que los jugadores cercanos oigan los golpes y las respiraciones del personaje.
volumenumber1.0Factor de volumen de 0.0 a 1.0.
debugCommandstring'gymaudio'Comando de prueba; solo se registra en modo debug.
breath.everynumber3El personaje respira una vez cada tantas repeticiones.
breath.delayMsnumber600Milisegundos desde que empieza la repetición hasta que suena la respiración.

banks, breath.male, breath.female, rep y loops contienen los nombres de los sonidos que se entregan con los assets. Déjalos como están.

Registros · logs ​

OpciónTipoPor defectoQué hace
convarstring'cuxial_gym_webhook'Nombre de la convar que guarda el webhook de Discord. La URL va en server.cfg.

Staff · admin y commands ​

OpciónTipoPor defectoQué hace
admin.acestring'cuxial_gym.admin'Permiso ACE que abre el panel de administración de negocios.
admin.creatorAcestring'cuxial_gym.creator'Permiso ACE que abre el creador de zonas.
admin.permissionstring'admin'Permiso del framework que concede los dos.
admin.auditDaysnumber60Días que se conserva la auditoría de staff.
commands.admin.namestring | false'gymadmin'Comando del panel de administración de negocios. false lo quita.
commands.creator.namestring | false'gymcreator'Comando del creador de zonas. false lo quita.

Teclas · keys ​

Teclas por defecto. Cada jugador puede cambiarlas en los ajustes de teclas de GTA.

OpciónPor defectoQué hace
cancel'X'Deja la serie, o deja de ayudar.
accept'Y'Acepta una oferta o una llamada.
decline'N'La rechaza.
peek'RSHIFT'Vuelve al creador después de mirar el mundo.
gizmoConfirm'RETURN'Confirma una colocación.
gizmoCancel'BACK'La cancela.
gizmoGround'LMENU'Pega el objeto al suelo.
gizmoCursor'G'Activa o desactiva el cursor al colocar.

Cámara de colocación · gizmo ​

Cámara opcional que se usa al colocar un objeto con el gizmo.

OpciónTipoPor defectoQué hace
distancenumber5.0Metros de distancia al objeto.
heightnumber2.0Metros por encima del objeto.
fovnumber50.0Campo de visión, en grados.
transitionMsnumber500Transición de la cámara, en milisegundos.

Items y modelos · items, models ​

OpciónTipoPor defectoQué hace
items.imageUrlstring'nui://ox_inventory/web/images/%s.webp'De dónde se leen las imágenes de los items. %s es el nombre del item.
models.pointPropsstring[]el prop de la pantallaProps que el staff puede elegir para un punto de interacción.
models.pointPedsstring[]un ped de ejemploModelos de ped que el staff puede elegir para un punto de interacción.

Mundo · world, globalModels, pedClear, points ​

OpciónTipoPor defectoQué hace
world.spawnDistancenumber150.0Metros a los que aparecen los equipos de una zona.
world.despawnDistancenumber200.0Metros a los que se retiran.
world.tickMsnumber1000Milisegundos entre comprobaciones de distancia.
world.removedPropsMsnumber5000Milisegundos entre pasadas de borrado de los props del mapa que retira una zona.
world.removedPropsDistancenumber100.0Radio de esa pasada, en metros.
world.blipColorsnumber[]30 coloresColores de blip que ofrece el creador.
globalModels.rangenumber75.0Radio, en metros, en el que se buscan props del mapa como equipo.
globalModels.intervalMsnumber3000Milisegundos entre búsquedas.
pedClear.intervalMsnumber5000Milisegundos entre pasadas de limpieza de peds ambientales en las zonas.
pedClear.edgeBuffernumber5.0Metros extra sobre el radio de cada área de limpieza.
points.spawnDistancenumber75.0Metros a los que existe el prop o ped de un punto.
points.maxDistancenumber5.0Distancia máxima que acepta el servidor para una acción.
points.targetDistancenumber2.0Distancia de interacción de un punto que no trae radio propio.

Panel del gimnasio · panel y tablet ​

OpciónTipoPor defectoQué hace
panel.maxDistancenumber10.0Metros máximos a un punto del menú del gimnasio para abrir el panel o comprar un pase.
panel.leaderboardSizenumber10Filas de cada clasificación.
panel.leaderboardSecondsnumber60Segundos que se guarda en caché una clasificación.
tablet.duibooleantruetrue dibuja el panel en el prop de la pantalla del mundo. false lo abre siempre como interfaz a pantalla completa.
tablet.rangenumber25.0Metros a los que la pantalla muestra su imagen de reposo. La imagen de reposo lleva la marca de la clave de locale UI_TABLET_BRAND, GYM por defecto; edítala en locales/.
tablet.prewarmDistancenumber6.0Metros a los que la pantalla empieza a cargar el panel.
tablet.maxDistancenumber3.0Metros máximos para abrir la pantalla y seguir en ella.
tablet.cursor.modestring'native''native' proyecta el cursor del juego sobre la pantalla. 'virtual' dibuja un puntero que se mueve con el ratón.
tablet.cursor.sensitivitynumber1.0Velocidad del puntero virtual.
tablet.wheelStepnumber120Unidades de desplazamiento por muesca de la rueda. Un valor negativo lo invierte.
tablet.exitKeysnumber[]Esc, Retroceso y mandoControles del juego que cierran la pantalla.

tablet.model, txd, texture, offset, yaw, pitch, width, height, idle, session y camera corresponden al prop de pantalla que se entrega con los assets. No los cambies.

Minijuegos · minigame ​

OpciónTipoPor defectoQué hace
ui.positionstring'bottom-right'Esquina donde se dibuja el minijuego: 'bottom-right', 'bottom-left', 'top-right', 'top-left' o 'center'.
ui.scalenumber0.8Tamaño del minijuego. 1 es su tamaño natural.
ui.offsettable{ x = 24, y = 24 }Separación del borde de la pantalla, en píxeles.

Membresías · membership ​

OpciónTipoPor defectoQué hace
accountstring'cash'Cuenta de la que se cobran los pases.
rewardCooldownSecondsnumber86400Segundos entre dos recompensas diarias.
maxPackagesnumber10Máximo de paquetes por zona.

Ejercicio · exercise ​

OpciónTipoPor defectoQué hace
startDistancenumber4.0Metros máximos al equipo para empezar.
maxDistancenumber6.0Más allá de esta distancia la serie termina.
minRepMsnumber750Milisegundos mínimos entre dos repeticiones.
minigameMinMsnumber3000Duración mínima que el servidor acepta para un minijuego.
autoPassMsnumber500Duración mínima de una repetición con autopase.
toleranceMsnumber250Tolerancia de red que se aplica a esos mínimos.
idleTimeoutSecondsnumber120Segundos sin repeticiones tras los que el servidor cierra la serie.
defaultMaxRepsnumber20Número de repeticiones con el que se escala la dificultad cuando el ejercicio no tiene límite.
anchorModelstring'prop_tick'Prop interno que sincroniza el ejercicio. Déjalo como está.

Estadísticas, ventajas y suplementos ​

OpciónTipoPor defectoQué hace
stats.baseMaxHealthnumber200Vida máxima base del personaje. El bono de fuerza se suma encima.
stats.xpBonusToStatsbooleanfalsetrue aplica el bono de XP de suplementos y racha a la XP de fuerza y agilidad. false lo aplica solo a la XP de ventajas.
perks.enabledbooleanfalsetrue activa el árbol de ventajas: entrenar da puntos de ventaja para gastar en bonos permanentes. Con false las ventajas no dan nada y no se pueden desbloquear.
perks.xpPerPointnumber500XP necesaria para un punto de ventaja.
supplements.useMsnumber4000Milisegundos que se tarda en tomar un suplemento.
supplements.stackSamebooleantruetrue permite que dos tomas del mismo suplemento se acumulen. false hace que una toma nueva sustituya a la anterior.
supplements.animtableanimación de comerAnimación al tomarlo: dict y clip.

Ayudantes, tutorial y vistas previas ​

OpciónTipoPor defectoQué hace
helper.maxDistancenumber3.0Metros máximos entre el ayudante y el jugador que entrena.
helper.animSwapMsnumber[]{ 10000, 15000 }Milisegundos mínimos y máximos entre cambios de animación del ayudante.
tutorial.enabledbooleantrueValor de fábrica de la visita guiada del panel del gimnasio. El staff puede cambiarlo en juego.
previews.enabledbooleanfalsetrue muestra un vídeo de vista previa de cada ejercicio en el panel.
previews.baseUrlstring''Dirección base de los vídeos. La dirección final es baseUrl + clip + extension.
previews.extensionstring'.mp4'Extensión de los vídeos.
previews.clipstable{}Nombre de clip por ejercicio.

Taquillas y vestuario ​

OpciónTipoPor defectoQué hace
locker.slotsnumber20Huecos de la taquilla personal de cada zona.
locker.weightnumber30000Peso máximo, en gramos.
cloakroom.handlerstableun armarioAcciones que puede ejecutar un punto de vestuario. Cada entrada tiene un label (clave de idioma) y export = { 'recurso', 'función' } o event = 'eventoDeCliente'.

Para abrir tu propio menú de ropa desde un punto de vestuario:

shared/config.lua
lua
cloakroom = {
    handlers = {
        wardrobe = { label = 'cloak_wardrobe', event = 'my_clothing:client:openWardrobe' },
    },
},

Negocios · business y shop ​

OpciónTipoPor defectoQué hace
business.accountstring'cash'Cuenta de los depósitos, las retiradas y el pago de bonus.
business.lowStocknumber5Nivel de stock a partir del cual el panel avisa de stock bajo.
business.offerDistancenumber10.0Metros máximos para ofrecer un contrato o un traspaso.
business.gradeColorstring (hex)'#4299e1'Color de un rango recién creado.
business.maxHourlyWagenumber5000Sueldo por hora más alto que puede tener un rango.
business.maxGradesnumber12Número máximo de rangos.
business.historySizenumber100Transacciones que se guardan en memoria por negocio.
business.historyDaysnumber90Días que se conservan las transacciones en la base de datos.
business.offerSecondsnumber60Segundos hasta que caduca una oferta.
business.stash.slotsnumber50Huecos de los alijos del negocio.
business.stash.weightnumber100000Peso máximo, en gramos.
business.callWorker.cooldownSecondsnumber600Segundos entre dos llamadas al personal de un negocio.
business.callWorker.secondsnumber15Segundos que tiene el personal para aceptar una llamada.
business.workers.restockAmountnumber5Unidades que pide el trabajador de reposición cada vez.
business.workers.collectorSecondsnumber900Segundos entre pasadas del trabajador recolector.
business.workers.periodSecondsnumber86400Duración del periodo por el que se cobran los trabajadores automáticos.
shop.accountstring'cash'Cuenta de la que se cobran las compras de la tienda.
shop.maxCartLinesnumber30Líneas máximas de un carrito.
shop.maxAmountnumber100Unidades máximas por línea.

Límites · limits ​

Topes de lo que el staff puede guardar desde los editores.

OpciónPor defectoLimita
equipmentPerZone300Equipos por zona
removedPropsPerZone500Props del mapa retirados por zona
pointsPerOwner50Puntos de interacción por zona o negocio
pedClearAreas10Áreas de limpieza de peds por zona
presets50Presets de minijuegos
supplements64Suplementos
effects8Efectos por suplemento
warehouseItems200Items del catálogo de almacén
achievements200Logros

compat relaciona los nombres de habilidad que usan recursos antiguos con las dos estadísticas. Mira Exports y eventos.

Archivos de datos · data/ ​

Valores de fábrica. Casi todos se editan también en juego; cuando una sección se guarda desde un editor, el archivo deja de leerse para esa sección. En el creador, Restablecer valores vuelve a los valores del archivo.

ArchivoContieneEditable en juego
data/defaults.luaLímite de fatiga, niveles y bonos de las estadísticas, pérdida diaria, bonos de rachaCreador, Configuración del gimnasio
data/bodyparts.luaTope de fatiga, recuperación por minuto y pesos de XP de las siete partes del cuerpoCreador, Configuración del gimnasio
data/achievements.luaLos 45 logrosCreador, Configuración del gimnasio
data/supplements.luaItem, duración y efectos de cada suplementoCreador, Suplementos
data/business.luaRangos de inicio, paleta de colores, ajustes de negocio, progresión, catálogo de almacén, trabajadores y categorías de tiendaAdministración de negocios, salvo rangos y paleta
data/perks.luaEl árbol de ventajasNo
data/minigames.luaAjustes de cada minijuego por nivel de dificultadNo
data/exercises.lua y data/exercises/*.luaLista de ejercicios y definición de cada unoLos valores por repetición, en Configuración del gimnasio
data/helper.luaAnimaciones del ayudanteNo
data/names.luaNombres de proveedor al azar que aparecen en los pedidos de almacénNo
data/seed.luaZona de ejemplo y presets de minijuegos que se insertan en el primer arranqueNo

data/seed.lua se lee una sola vez, cuando la tabla de zonas está vacía. Editarlo después no cambia nada. Los archivos de ejercicios definen animaciones y posiciones de props que corresponden a los assets entregados: cambia los números de arriba (xpPerRep, fatiguePerRep, maxReps, repInterval) y deja el resto.

Cambios habituales ​

Cobrar las membresías y la tienda del banco ​

shared/config.lua
lua
membership = { account = 'bank', rewardCooldownSeconds = 86400, maxPackages = 10 },
shop = { account = 'bank', maxCartLines = 30, maxAmount = 100 },

Gimnasios sin negocios ​

shared/config.lua
lua
modules = { business = false, shop = false, helper = false, creator = true, admin = false, globalModels = true },

Abrir siempre el panel a pantalla completa ​

Pon dui = false dentro del bloque tablet y no toques los demás valores.

Añadir un suplemento ​

  1. Añade el item a tu inventario.
  2. Abre /gymcreator, entra en Suplementos, añade el item y define su duración y sus efectos.

Cambiar el nombre de los comandos ​

shared/config.lua
lua
commands = { admin = { name = 'gymbiz' }, creator = { name = 'gymzones' } },

© Cuxial