Saltar al contenido
CXGdocs.GUÍAS
cxg-tattoosConfiguración
CXG DOCUMENTATION

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

Código
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.

Código
Config.Identity.mode = 'auto'
Config.Identity.qbxResource = 'qbx_core'
ModoUso
autoEn Qbox, utiliza el identificador del personaje activo (citizenid). En otros servidores, utiliza el identificador estable de FiveM.
qbx_characterUtiliza explícitamente el identificador del personaje de Qbox (citizenid).
licenseUtiliza 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

Código
Config.HelpText.enabled = true
Config.HelpText.provider = 'auto'
Config.HelpText.position = 'left-center'
CampoValores o efecto
enabledMuestra u oculta el aviso de interacción de tiendas con marcador.
providerauto, ox_lib o native. auto utiliza TextUI si está disponible y el aviso nativo en caso contrario.
positionleft-center, right-center, top-center o bottom-center, para TextUI.
styleColores, borde, sombra, tipografía y espacio interior del TextUI.

Ejemplo de estilo:

Código
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:

Código
{
    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 },
    },
},
CampoUso
labelNombre de la tienda.
coords, headingPosición y orientación.
drawDistanceDistancia de visualización del marcador.
interactDistanceDistancia para interactuar.
shopRadiusRadio dentro del que se autoriza la operación de tienda.
marker.type, scale, colorApariencia 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.LevelsValor inicialUso
enabledtrueActiva progresión, requisitos y descuentos.
maxLevel10Límite de nivel.
defaultXpPerTattoo10XP de un tatuaje que no indique Xp.
thresholdsNiveles 1 a 10XP acumulada necesaria para cada nivel.
formula.base, formula.exponent100, 1.5Parámetros de la fórmula alternativa de umbrales.
zoneRequirements1 para cada zonaRequisito por zona cuando no exista un requisito individual.
discountsActivado, 3 por nivel y máximo 25Descuento porcentual.
blueprintSlotsBase 5, incremento 3Cupos de blueprints según el nivel.

Los umbrales deben comenzar en nivel 1 con 0 XP, continuar sin saltos y aumentar la XP necesaria:

Código
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:

CampoValor inicialUso
enabledtrueActiva el sistema.
codePrefixINKPrefijo de los códigos, por ejemplo INK-A3X9.
codeLength4Número de caracteres después del prefijo.
maxPerPlayer20Cupos utilizados cuando no hay progresión activa.
maxTattoosPerBlueprint50Máximo de tatuajes por grupo.
nameMaxLength60Má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

TablaQué controla
CameraOffsetsHueso objetivo, distancia, offsets y campo de visión por zona.
CameraFramingComposición general y desplazamiento del punto de enfoque.
CameraFramingBySideAjustes adicionales para vistas frontal y trasera.
CameraManualControlsControles 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:

Código
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:

Código
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.

Continuar con el catálogo.

CXG · DocumentaciónUna buena base. Infinitas posibilidades.