Configuración
Los ajustes de esta página están en config.lua. Modifica los campos de las tablas existentes y reinicia el recurso para aplicar los cambios.
Valores iniciales y ajustes guardados
Las tiendas y reglas de progresión del archivo sirven como configuración inicial. Una vez guardadas desde el panel administrativo, sus valores efectivos se mantienen entre reinicios. Cambiarlas en el archivo no sustituye automáticamente lo guardado: utiliza el panel para actualizar tiendas, reglas y opciones del sistema ya inicializadas.
El idioma, los providers, los bridges, la cámara y la ropa de previsualización se configuran en el archivo. Las fuentes y los tatuajes se describen en catálogo y packs.
Idioma global
Config.Locale = 'es'
Config.LocaleFallback = 'en'
Locale fija el idioma de la interfaz y de los mensajes para todos los jugadores. Reinicia el recurso después de cambiarlo; el jugador no lo cambia desde la NUI. LocaleFallback es el idioma de respaldo.
Idiomas incluidos: en, es, pt-BR, fr, de, it, pl, ru, tr, th y ar. La interfaz árabe utiliza dirección de lectura de derecha a izquierda.
Sistema de identidades
Config.Identity configura la integración con el sistema de identidades del servidor. Define cómo se obtiene el identificador del personaje o de la cuenta que el recurso utiliza para guardar y recuperar tatuajes, XP y blueprints.
Config.Identity.mode = 'auto'
Config.Identity.qbxResource = 'qbx_core'
| Modo | Uso |
|---|---|
auto | En Qbox, utiliza el identificador del personaje activo (citizenid). En otros servidores, utiliza el identificador estable de FiveM. |
qbx_character | Utiliza explícitamente el identificador del personaje de Qbox (citizenid). |
license | Utiliza la licencia de FiveM como identificador de cuenta. Los personajes de esa cuenta comparten tatuajes, XP y blueprints. |
Selecciona el modo antes de abrir el recurso a los jugadores. Cambiarlo después cambia la identidad con la que se consultan los datos; no traslada automáticamente los datos entre modos. No selecciones license si quieres separar los tatuajes entre personajes de una cuenta.
Aviso de interacción
Config.HelpText.enabled = true
Config.HelpText.provider = 'auto'
Config.HelpText.position = 'left-center'
| Campo | Valores o efecto |
|---|---|
enabled | Muestra u oculta el aviso de interacción de tiendas con marcador. |
provider | auto, ox_lib o native. auto utiliza TextUI si está disponible y el aviso nativo en caso contrario. |
position | left-center, right-center, top-center o bottom-center, para TextUI. |
style | Colores, borde, sombra, tipografía y espacio interior del TextUI. |
Ejemplo de estilo:
Config.HelpText.style.backgroundColor = '#172328'
Config.HelpText.style.color = '#eef3f3'
Config.HelpText.style.fontSize = '15px'
Tiendas iniciales
Config.Shops incluye seis ubicaciones. Para cambiar una entrada inicial, conserva su estructura:
{
label = 'Tattoo Studio',
coords = vector3(322.62, 180.34, 103.59),
heading = 156.2,
drawDistance = 10.0,
interactDistance = 1.5,
shopRadius = 4.0,
marker = {
type = 1,
scale = vector3(1.0, 1.0, 1.0),
color = { r = 255, g = 100, b = 0, a = 100 },
},
},
| Campo | Uso |
|---|---|
label | Nombre de la tienda. |
coords, heading | Posición y orientación. |
drawDistance | Distancia de visualización del marcador. |
interactDistance | Distancia para interactuar. |
shopRadius | Radio dentro del que se autoriza la operación de tienda. |
marker.type, scale, color | Apariencia del marcador. |
Mantén interactDistance dentro de shopRadius. Para tiendas ya creadas, utiliza la sección de tiendas del panel administrativo; no esperes que una edición del archivo vuelva a crear o sustituya esas tiendas.
Niveles y XP
Ajuste de Config.Levels | Valor inicial | Uso |
|---|---|---|
enabled | true | Activa progresión, requisitos y descuentos. |
maxLevel | 10 | Límite de nivel. |
defaultXpPerTattoo | 10 | XP de un tatuaje que no indique Xp. |
thresholds | Niveles 1 a 10 | XP acumulada necesaria para cada nivel. |
formula.base, formula.exponent | 100, 1.5 | Parámetros de la fórmula alternativa de umbrales. |
zoneRequirements | 1 para cada zona | Requisito por zona cuando no exista un requisito individual. |
discounts | Activado, 3 por nivel y máximo 25 | Descuento porcentual. |
blueprintSlots | Base 5, incremento 3 | Cupos de blueprints según el nivel. |
Los umbrales deben comenzar en nivel 1 con 0 XP, continuar sin saltos y aumentar la XP necesaria:
Config.Levels.thresholds = {
{ level = 1, xpRequired = 0 },
{ level = 2, xpRequired = 100 },
{ level = 3, xpRequired = 250 },
}
Config.Levels.maxLevel = 3
El descuento se calcula como nivel × perLevel, limitado por maxDiscount. Con los valores iniciales, nivel 5 obtiene un 15 % y el descuento máximo es un 25 %.
Los cupos se calculan como base + (nivel - 1) × perLevel. Con la configuración inicial, nivel 1 dispone de 5 y nivel 5 de 17.
Un RequiredLevel individual del catálogo tiene prioridad sobre el requisito de zona. Consulta campos del catálogo.
Al desactivar los niveles, no se aplican bloqueos por nivel, XP ni descuentos; el límite de blueprints utiliza Config.Blueprints.maxPerPlayer. Desactivar el sistema conserva la XP guardada. En instalaciones ya inicializadas, actualiza también el estado efectivo desde el panel.
Blueprints
Los blueprints guardan grupos de tatuajes y permiten compartirlos mediante códigos. Sus límites iniciales están en Config.Blueprints:
| Campo | Valor inicial | Uso |
|---|---|---|
enabled | true | Activa el sistema. |
codePrefix | INK | Prefijo de los códigos, por ejemplo INK-A3X9. |
codeLength | 4 | Número de caracteres después del prefijo. |
maxPerPlayer | 20 | Cupos utilizados cuando no hay progresión activa. |
maxTattoosPerBlueprint | 50 | Máximo de tatuajes por grupo. |
nameMaxLength | 60 | Máximo de caracteres del nombre. |
Canjear un código prepara los tatuajes en el flujo de compra; no concede una compra gratuita. La economía se configura en integraciones.
Cámara
| Tabla | Qué controla |
|---|---|
CameraOffsets | Hueso objetivo, distancia, offsets y campo de visión por zona. |
CameraFraming | Composición general y desplazamiento del punto de enfoque. |
CameraFramingBySide | Ajustes adicionales para vistas frontal y trasera. |
CameraManualControls | Controles manuales, pasos de movimiento, rotación, zoom y límites. |
Las zonas configuradas son ZONE_HEAD, ZONE_TORSO, ZONE_LEFT_ARM, ZONE_RIGHT_ARM, ZONE_LEFT_LEG y ZONE_RIGHT_LEG.
Ejemplos de cambios puntuales:
Config.CameraOffsets['ZONE_TORSO'].fov = 50.0
Config.CameraFraming.screenOffset = 0.35
Config.CameraManualControls.enabled = true
Config.CameraManualControls.step = 0.035
Config.CameraManualControls.zoomStep = 0.08
screenOffset positivo deja al personaje hacia la izquierda para reservar espacio al menú situado a la derecha. lookAtOffsetX/Y/Z cambia el punto de enfoque; camOffsetX/Y/Z de los ajustes por lado cambia la posición de cámara.
En controles manuales, horizontalDegrees y rotationStepDegrees ajustan la rotación. ranges.y/z, radialClamp y maxDistance limitan desplazamientos. zoomCompositionMinBias ajusta el centrado al acercar el zoom. Cambia un valor cada vez y prueba las seis zonas con personajes masculinos y femeninos.
Ropa de previsualización
Config.PreviewOutfit permite despejar las zonas tatuadas mientras está abierta la interfaz:
Config.PreviewOutfit.enabled = true
Config.PreviewOutfit.useDefaultVariation = false
Config.PreviewOutfit.presets['mp_m_freemode_01'].components[11] = {
drawable = 15,
texture = 0,
}
Los presets incluidos distinguen mp_m_freemode_01 y mp_f_freemode_01. Cada componente indica drawable y texture; clearProps retira accesorios durante la previsualización. Ajusta los índices a la ropa instalada en tu servidor. Mantén useDefaultVariation = false si solo quieres aplicar los componentes del preset sin resetear globalmente la apariencia.
Permisos, economía y Qbox
Config.Permissions, Config.AdminCommand, Config.Purchases y Config.QbxMulticharacterPreview se explican en integraciones. Configura los nombres reales de tus recursos cuando difieran de los predeterminados.
Diagnóstico
Config.Debug activa diagnóstico general. Config.Permissions.debug permite revisar decisiones de acceso. Mantén ambos desactivados al terminar.
Config.DebugCommands.clientTattooCommand está desactivado inicialmente. Activa ese comando visual únicamente para pruebas: no guarda tatuajes ni sustituye una compra.