Skip to main content

⚙️ Configurações Compartilhadas

Estas configurações são utilizadas tanto pelo client quanto pelo server. Localizadas em config/shared/config.lua.

🎁 Sistema de Prêmios Bônus

Multiplicador de prêmio bônus que pode ser aplicado às corridas.
Config.bonusPrize = {
    min = 1.0,
    max = 3.0
}
PropriedadeTipoDescrição
minnumberMultiplicador mínimo
maxnumberMultiplicador máximo
O administrador pode definir o multiplicador de cada corrida entre esses valores no painel administrativo.

📊 Sistema de Estatísticas

Configurações do sistema de estatísticas e histórico de corridas.
Config.Statistics = {
    enabled = true,
    days = 365,
}
PropriedadeTipoPadrãoDescrição
enabledbooleantrueAtiva/desativa coleta de estatísticas
daysnumber365Período em dias para calcular estatísticas
As estatísticas mostram dados como: total de corridas, vitórias, participações, etc. O painel exibe dados dos últimos X dias configurados.

🎮 Itens Coletáveis (Power-ups)

Este é um dos sistemas mais robustos do script! Permite adicionar power-ups ao estilo Mario Kart às suas corridas.

Configuração Principal

Config.CollectableItems = {
    enabled = true,
    chanceToHaveItem = 10,
    sortAlgorithm = "weighted",
    sortFor = "all_players",
    singleUse = false,
    replaceItem = false,
    useControl = 38,
    useControlDisplay = "E",
    useMultiplier = true,
    List = { ... }
}

Propriedades Detalhadas

enabled

TipoPadrão
booleantrue
Ativa ou desativa o sistema de itens coletáveis globalmente em todo o servidor.
Mesmo com enabled = true, cada corrida precisa ter collectable_items = true para que os itens apareçam.
TipoPadrãoIntervalo
number100-100
Porcentagem de chance de ganhar um item ao passar por cada checkpoint.Exemplos:
  • 10 = 10% de chance por checkpoint
  • 25 = 25% de chance por checkpoint
  • 100 = Sempre ganha item (não recomendado)
TipoPadrãoOpções
string"weighted""random", "weighted"
Define como o item é sorteado:
AlgoritmoDescrição
"random"Todos os itens têm a mesma chance
"weighted"Itens com maior weight têm mais chance
Use "weighted" para fazer itens comuns aparecerem mais que itens raros.
TipoPadrãoOpções
string"all_players""all_players", "first_player", "first_without_item"
Define quem pode ganhar item quando múltiplos jogadores passam pelo checkpoint:
OpçãoDescrição
"all_players"Todos podem ganhar no mesmo checkpoint
"first_player"Apenas o primeiro a passar ganha
"first_without_item"Primeiro SEM item ganha
TipoPadrão
booleanfalse
Se true, cada jogador só pode usar UM item por corrida inteira.
Isso torna a decisão de quando usar o item muito estratégica!
TipoPadrão
booleanfalse
Se true, coletar um novo item substitui o item atual. Se false, o jogador mantém o item atual até usar.
TipoPadrão
number38
ID do controle/tecla para usar o item coletado.Controles comuns:
IDTecla
38E
47G
73X
74H

Lista de Controles

Consulte todos os IDs de controle do FiveM
TipoPadrão
string"E"
Texto exibido na interface indicando qual tecla usar. Deve corresponder ao useControl.
TipoPadrão
booleantrue
Se true, aplica o multiplicador de bônus da corrida à chance de ganhar item.Exemplo:
  • Chance base: 10%
  • Multiplicador da corrida: 2.0
  • Chance final: 20%

📦 Lista de Itens

Cada item na lista possui estas propriedades:
{
    enabled = true,
    index = "nitro",
    name = Locale("collectable_item_name_nitro"),
    weight = 60,
    rarity = "common",
    duration = 10000,
}
PropriedadeTipoDescrição
enabledbooleanSe o item está ativo no sorteio
indexstringIdentificador único do item
namestringNome para exibição (use Locale para tradução)
weightnumberPeso no sorteio (maior = mais chance)
raritystringRaridade visual
durationnumber ou nilDuração em ms (nil = permanente, 0 = instantâneo)

Raridades Disponíveis

RaridadeDescriçãoCor Sugerida
"common"ComumCinza
"uncommon"IncomumVerde
"rare"RaroAzul
"epic"ÉpicoRoxo
"legendary"LendárioDourado
"mythic"MíticoVermelho

Itens Padrão

{
    enabled = true,
    index = "nitro",
    name = Locale("collectable_item_name_nitro"),
    weight = 60,
    rarity = "common",
    duration = 10000, -- 10 segundos
}
Efeito: Boost de velocidade com chamas no escapamentoFunções ativadas:
  • SetVehicleRocketBoostActive
  • SetVehicleNitroEnabled
  • ModifyVehicleTopSpeed(vehicle, 50.0)

Cálculo de Probabilidade (Weighted)

Com o algoritmo "weighted", a chance de cada item é: Chance=weight do itemweights de todos os itens\text{Chance} = \frac{\text{weight do item}}{\sum \text{weights de todos os itens}} Exemplo com itens padrão:
ItemWeightCálculoChance
Nitro6060/13544.4%
Speed Boost4040/13529.6%
Ghost2020/13514.8%
Shield1010/1357.4%
Repair55/1353.7%
Total135-100%

🔢 Limites do Sistema

Limite de Blips na Fila

Config.queueBlipsLimit = {
    min = 1,
    max = nil  -- nil = sem limite
}
PropriedadeTipoDescrição
minnumberMínimo de pontos na fila
maxnumber ou nilMáximo de pontos (nil = ilimitado)

Limite de Checkpoints por Rota

Config.raceCheckpointsLimit = {
    min = 1,
    max = nil  -- nil = sem limite
}
PropriedadeTipoDescrição
minnumberMínimo de checkpoints por rota
maxnumber ou nilMáximo de checkpoints (nil = ilimitado)

⏱️ Timeouts e Cooldowns

-- Tempo limite em segundos para entrar na fila de uma corrida
Config.enterQueueTimeout = 15
PropriedadeTipoPadrãoDescrição
enterQueueTimeoutnumber15Segundos para confirmar entrada na fila

🔐 Sistema de Permissões

Define quem pode acessar cada funcionalidade do script.
Config.Permissions = {
    ["race_management"] = "ADMIN",
    ["routes_creation"] = "USER",
    ["routes_statistics"] = "ADMIN",
    ["routes_management"] = "ADMIN",
    ["race_rankings"] = "USER",
    ["race_main"] = "USER",
    ["race_race"] = "USER",
    ["settings"] = "USER",
}

Níveis de Permissão

NívelDescrição
"USER"Qualquer jogador pode acessar
"ADMIN"Apenas administradores do framework

Permissões Disponíveis

ChaveDescriçãoPadrão
race_managementCriar/editar/deletar corridasADMIN
routes_creationCriar novas rotasUSER
routes_statisticsVer estatísticas detalhadasADMIN
routes_managementEditar/deletar rotasADMIN
race_rankingsVer rankingsUSER
race_mainAcessar menu principalUSER
race_raceParticipar de corridasUSER
settingsAcessar configuraçõesUSER
Para bloquear que players criem rotas, altere:
["routes_creation"] = "ADMIN",

📝 Exemplo Completo

-- config/shared/config.lua
Config = {}

-- Sistema de Prêmios
Config.bonusPrize = {
    min = 1.0,
    max = 5.0
}

-- Estatísticas
Config.Statistics = {
    enabled = true,
    days = 30, -- Últimos 30 dias
}

-- Itens Coletáveis
Config.CollectableItems = {
    enabled = true,
    chanceToHaveItem = 15,
    sortAlgorithm = "weighted",
    sortFor = "all_players",
    singleUse = false,
    replaceItem = true,
    useControl = 38,
    useControlDisplay = "E",
    useMultiplier = true,
    List = {
        {
            enabled = true,
            index = "nitro",
            name = Locale("collectable_item_name_nitro"),
            weight = 50,
            rarity = "common",
            duration = 8000,
        },
        {
            enabled = true,
            index = "speed_boost",
            name = Locale("collectable_item_name_speed_boost"),
            weight = 30,
            rarity = "rare",
            duration = 6000,
        },
        {
            enabled = true,
            index = "ghost",
            name = Locale("collectable_item_name_ghost"),
            weight = 15,
            rarity = "epic",
            duration = 15000, -- 15 segundos em vez de permanente
        },
        {
            enabled = true,
            index = "shield",
            name = Locale("collectable_item_name_shield"),
            weight = 10,
            rarity = "legendary",
            duration = 8000,
        },
        {
            enabled = true,
            index = "repair",
            name = Locale("collectable_item_name_repair"),
            weight = 5,
            rarity = "mythic",
            duration = 0,
        },
    },
}

-- Limites
Config.queueBlipsLimit = { min = 2, max = 10 }
Config.raceCheckpointsLimit = { min = 5, max = 50 }

-- Timeouts
Config.enterQueueTimeout = 30

-- Permissões
Config.Permissions = {
    ["race_management"] = "ADMIN",
    ["routes_creation"] = "USER",
    ["routes_statistics"] = "ADMIN",
    ["routes_management"] = "ADMIN",
    ["race_rankings"] = "USER",
    ["race_main"] = "USER",
    ["race_race"] = "USER",
    ["settings"] = "USER",
}