Configuração
Os ajustes desta página ficam em config.lua. Altere os campos das tabelas existentes e reinicie o recurso para aplicar as mudanças.
Valores iniciais e ajustes salvos
As lojas e regras de progressão do arquivo servem como configuração inicial. Depois que forem salvos pelo painel administrativo, os valores efetivos são mantidos entre reinicializações. Alterá-los no arquivo não substitui automaticamente o que foi salvo: use o painel para atualizar lojas, regras e opções do sistema já inicializadas.
Idioma, providers, bridges, câmera e roupa de prévia são configurados no arquivo. As fontes e tatuagens estão descritas em catálogo e packs.
Idioma global
Config.Locale = 'es'
Config.LocaleFallback = 'en'
Locale define o idioma da interface e das mensagens para todos os jogadores. Reinicie o recurso após alterá-lo; o jogador não pode mudá-lo pela NUI. LocaleFallback é o idioma de reserva.
Idiomas incluídos: en, es, pt-BR, fr, de, it, pl, ru, tr, th e ar. A interface em árabe usa direção de leitura da direita para a esquerda.
Sistema de identidades
Config.Identity configura a integração com o sistema de identidades do servidor. Define como obter o identificador do personagem ou da conta usado pelo recurso para salvar e recuperar tatuagens, XP e blueprints.
Config.Identity.mode = 'auto'
Config.Identity.qbxResource = 'qbx_core'
| Modo | Uso |
|---|---|
auto | No Qbox, usa o identificador do personagem ativo (citizenid). Em outros servidores, usa o identificador estável do FiveM. |
qbx_character | Usa explicitamente o identificador de personagem do Qbox (citizenid). |
license | Usa a licença do FiveM como identificador da conta. Os personagens dessa conta compartilham tatuagens, XP e blueprints. |
Escolha o modo antes de abrir o recurso aos jogadores. Alterá-lo depois muda a identidade consultada; os dados não são transferidos automaticamente entre modos. Não escolha license se quiser separar as tatuagens por personagem de uma conta.
Aviso de interação
Config.HelpText.enabled = true
Config.HelpText.provider = 'auto'
Config.HelpText.position = 'left-center'
| Campo | Valores ou efeito |
|---|---|
enabled | Mostra ou oculta o aviso de interação das lojas com marcador. |
provider | auto, ox_lib ou native. auto usa TextUI quando disponível e o aviso nativo caso contrário. |
position | left-center, right-center, top-center ou bottom-center, para TextUI. |
style | Cores, borda, sombra, tipografia e espaçamento interno do TextUI. |
Exemplo de estilo:
Config.HelpText.style.backgroundColor = '#172328'
Config.HelpText.style.color = '#eef3f3'
Config.HelpText.style.fontSize = '15px'
Lojas iniciais
Config.Shops inclui seis locais. Para alterar uma entrada inicial, preserve sua estrutura:
{
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 | Nome da loja. |
coords, heading | Posição e orientação. |
drawDistance | Distância de exibição do marcador. |
interactDistance | Distância para interagir. |
shopRadius | Raio dentro do qual a operação da loja é autorizada. |
marker.type, scale, color | Aparência do marcador. |
Mantenha interactDistance dentro de shopRadius. Para lojas já criadas, use a seção de lojas do painel administrativo; editar o arquivo não recria nem substitui essas lojas.
Níveis e XP
Ajuste de Config.Levels | Valor inicial | Uso |
|---|---|---|
enabled | true | Ativa progressão, requisitos e descontos. |
maxLevel | 10 | Limite de nível. |
defaultXpPerTattoo | 10 | XP para tatuagens sem Xp definido. |
thresholds | Níveis 1 a 10 | XP acumulado necessário para cada nível. |
formula.base, formula.exponent | 100, 1.5 | Parâmetros da fórmula alternativa de limiares de XP. |
zoneRequirements | 1 para cada zona | Requisito por zona quando não há requisito individual. |
discounts | Ativado, 3 por nível e máximo 25 | Desconto percentual. |
blueprintSlots | Base 5, incremento 3 | Vagas de blueprints conforme o nível. |
Os limiares de XP devem começar no nível 1 com 0 XP, seguir sem lacunas e aumentar a XP necessária:
Config.Levels.thresholds = {
{ level = 1, xpRequired = 0 },
{ level = 2, xpRequired = 100 },
{ level = 3, xpRequired = 250 },
}
Config.Levels.maxLevel = 3
O desconto é calculado como nível × perLevel, limitado por maxDiscount. Com os valores iniciais, o nível 5 recebe 15%, e o desconto máximo é 25%.
As vagas são calculadas como base + (nível - 1) × perLevel. Na configuração inicial, o nível 1 tem 5 vagas e o nível 5 tem 17.
Um RequiredLevel individual do catálogo tem prioridade sobre o requisito da zona. Consulte campos do catálogo.
Ao desativar os níveis, não há bloqueios por nível, XP nem descontos; o limite de blueprints usa Config.Blueprints.maxPerPlayer. Desativar o sistema preserva a XP salva. Em instalações já inicializadas, atualize também o estado efetivo pelo painel.
Blueprints
Os blueprints armazenam grupos de tatuagens e permitem compartilhá-los por códigos. Os limites iniciais estão em Config.Blueprints:
| Campo | Valor inicial | Uso |
|---|---|---|
enabled | true | Ativa o sistema. |
codePrefix | INK | Prefixo dos códigos, por exemplo INK-A3X9. |
codeLength | 4 | Número de caracteres após o prefixo. |
maxPerPlayer | 20 | Vagas usadas quando não há progressão ativa. |
maxTattoosPerBlueprint | 50 | Máximo de tatuagens por grupo. |
nameMaxLength | 60 | Comprimento máximo do nome. |
Resgatar um código prepara as tatuagens no fluxo de compra; isso não concede uma compra grátis. A economia é configurada em integrações.
Câmera
| Tabela | O que controla |
|---|---|
CameraOffsets | Osso-alvo, distância, offsets e campo de visão por zona. |
CameraFraming | Composição geral e deslocamento do ponto de foco. |
CameraFramingBySide | Ajustes adicionais para vistas frontal e traseira. |
CameraManualControls | Controles manuais, incrementos de movimento, rotação, zoom e limites. |
As zonas configuradas são ZONE_HEAD, ZONE_TORSO, ZONE_LEFT_ARM, ZONE_RIGHT_ARM, ZONE_LEFT_LEG e ZONE_RIGHT_LEG.
Exemplos de alterações pontuais:
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
Um screenOffset positivo posiciona o personagem à esquerda, reservando espaço para o menu à direita. lookAtOffsetX/Y/Z altera o ponto de foco; camOffsetX/Y/Z dos ajustes por lado altera a posição da câmera.
Nos controles manuais, horizontalDegrees e rotationStepDegrees ajustam a rotação. ranges.y/z, radialClamp e maxDistance limitam deslocamentos. zoomCompositionMinBias ajusta a centralização ao aproximar o zoom. Altere um valor por vez e teste as seis zonas com personagens masculinos e femininos.
Roupa de prévia
Config.PreviewOutfit permite liberar as áreas tatuadas enquanto a interface está aberta:
Config.PreviewOutfit.enabled = true
Config.PreviewOutfit.useDefaultVariation = false
Config.PreviewOutfit.presets['mp_m_freemode_01'].components[11] = {
drawable = 15,
texture = 0,
}
Os presets incluídos diferenciam mp_m_freemode_01 e mp_f_freemode_01. Cada componente indica drawable e texture; clearProps remove acessórios durante a prévia. Ajuste os índices às roupas instaladas no servidor. Mantenha useDefaultVariation = false se quiser aplicar apenas os componentes do preset, sem redefinir a aparência globalmente.
Permissões, economia e Qbox
Config.Permissions, Config.AdminCommand, Config.Purchases e Config.QbxMulticharacterPreview são explicados em integrações. Configure os nomes reais dos recursos quando forem diferentes dos valores padrão.
Diagnóstico
Config.Debug ativa o diagnóstico geral. Config.Permissions.debug permite revisar decisões de acesso. Mantenha ambos desativados ao terminar.
Config.DebugCommands.clientTattooCommand vem desativado. Ative esse comando visual apenas para testes: ele não salva tatuagens nem substitui uma compra.