Skip to main content

⚙️ Configurações Server

Estas configurações controlam a lógica do servidor, recompensas, integrações com frameworks e webhooks do Discord. Localizadas em config/server/config.lua.

🎮 Configurações Gerais

-- Tempo em segundos de cooldown para trocar nickname (86400 = 24 horas)
Config.nicknameChangeCooldown = 86400

-- Se true, apenas uma corrida pode estar ativa por vez
Config.singleRace = false

-- Raio em metros para limpar veículos ao redor da fila
Config.clearQueueArea = 5

-- Caminho para o banco de dados NoSQL
Config.noSqlPath = "nosql/database"

nicknameChangeCooldown

PropriedadeValor
Tiponumber
Padrão86400 (24 horas)
UnidadeSegundos
Define quanto tempo o jogador deve esperar antes de poder alterar seu nickname novamente.Valores comuns:
  • 3600 = 1 hora
  • 86400 = 24 horas (1 dia)
  • 604800 = 7 dias
  • 0 = Sem cooldown
PropriedadeValor
Tipoboolean
Padrãofalse
Quando true, apenas uma corrida pode ocorrer por vez no servidor. Útil para servidores menores ou para criar eventos especiais.
Se ativado, jogadores não poderão iniciar novas corridas enquanto houver uma em andamento.
PropriedadeValor
Tiponumber
Padrão5
UnidadeMetros
Define o raio ao redor dos pontos de fila onde veículos abandonados serão removidos automaticamente ao iniciar uma corrida.
PropriedadeValor
Tipostring
Padrão"nosql/database"
Caminho relativo para o armazenamento do banco de dados NoSQL interno. Aqui são salvas as rotas das corridas, e pontos de inicio.
Certifique-se de que a pasta existe e tem permissões de escrita.

🏁 Valores Padrão - Criação de Corridas

Valores aplicados automaticamente ao criar uma nova corrida.
Config.RaceCreationDefaults = {
    bonus_prize = 1.0,
    required_item = "",
    required_item_quantity = 1,
    collectable_items = false,
    cooldown = 30,
    min_runners = 1,
    active = false
}
PropriedadeTipoPadrãoDescrição
bonus_prizenumber1.0Multiplicador de prêmio (1.0 = 100%)
required_itemstring""Item necessário para participar (vazio = nenhum)
required_item_quantitynumber1Quantidade do item necessário
collectable_itemsbooleanfalseAtivar power-ups durante a corrida
cooldownnumber30Tempo em minutos entre participações
min_runnersnumber1Mínimo de corredores para iniciar
activebooleanfalseSe a corrida inicia ativa
Esses valores podem ser alterados individualmente ao criar cada corrida através do painel administrativo.

🛤️ Valores Padrão - Criação de Rotas

Valores aplicados automaticamente ao criar uma nova rota.
Config.RouteCreationDefaults = {
    time_limit_seconds = 50,
    is_explosive = true,
    is_ilegal = true,
    reward_min = 1000,
    reward_max = 5000,
    is_active = false
}
PropriedadeTipoPadrãoDescrição
time_limit_secondsnumber50Limite de tempo para completar a rota
is_explosivebooleantrueVeículo explode ao falhar
is_ilegalbooleantrueRota é ilegal (alerta polícia)
reward_minnumber1000Recompensa mínima
reward_maxnumber5000Recompensa máxima
is_activebooleanfalseSe a rota inicia ativa
Rotas marcadas como ilegais (is_ilegal = true) enviarão alertas para todos os policiais online quando a corrida iniciar.

🔗 Integração com Framework

Configurações para integração com o framework do servidor.
-- Permissão necessária para policiais (nil = usa padrão do framework)
Config.policePermission = nil

-- Item usado como dinheiro sujo em frameworks VRP
Config.dirtyDollarItem = nil
PropriedadeValor
Tipostring ou nil
Padrãonil
Define qual permissão identifica policiais no seu framework. Se nil, usa valores padrão:
FrameworkPermissão Padrão
VRP CRNetwork"Policia"
VRP vRPEX"policia.permissao"
Outros"Police"
Exemplo de uso:
Config.policePermission = "police.duty"

📢 Webhooks Discord

Configure notificações automáticas para um canal do Discord.
Config.Webhooks = {
    raceStart = "",
    raceFinish = ""
}
PropriedadeTipoDescrição
raceStartstringURL do webhook para notificar início de corridas
raceFinishstringURL do webhook para notificar fim de corridas

Como Criar um Webhook

1

Acesse as configurações do canal

No Discord, vá ao canal desejado → Configurações → Integrações → Webhooks
2

Crie um novo webhook

Clique em “Novo Webhook” e personalize o nome e avatar
3

Copie a URL

Clique em “Copiar URL do Webhook”
4

Cole no config

Adicione a URL no arquivo de configuração:
Config.Webhooks = {
    raceStart = "https://discord.com/api/webhooks/...",
    raceFinish = "https://discord.com/api/webhooks/..."
}
Você pode usar o mesmo webhook para ambos os eventos ou webhooks diferentes para canais separados.

💰 Sistema de Recompensas

O sistema de recompensas está configurado em config/server/functions/rewards.lua.
Rewards = {}

-- Bônus de recompensa por posição
Rewards.positionBonus = {
    [1] = 0,  -- 1º lugar: sem bônus extra
    [2] = 0,  -- 2º lugar
    [3] = 0,  -- 3º lugar
}

Cálculo de Prêmio

function Rewards.calculate(bonus, min, max, position)
    local posBonus = Rewards.positionBonus[position] or 0
    return ParseInt((math.random(min, max) + posBonus) * bonus)
end
Fórmula: Preˆmio=(random(min,max)+boˆnusPosic¸a˜o)×multiplicador\text{Prêmio} = \lfloor (\text{random}(\text{min}, \text{max}) + \text{bônusPosição}) \times \text{multiplicador} \rfloor

Personalizando Recompensas

Para adicionar bônus por posição:
Rewards.positionBonus = {
    [1] = 1000,  -- 1º lugar: +$1000
    [2] = 500,   -- 2º lugar: +$500
    [3] = 250,   -- 3º lugar: +$250
}

Integração com Frameworks

O sistema detecta automaticamente o framework e entrega a recompensa:
Entrega como item (dinheiro sujo ou similar):
user.giveItem(item, reward, true)
Itens por framework:
  • CRNetwork: dollarsroll
  • CRv3/CRv5: dollars2
  • Padrão: dinheirosujo

🚔 Sistema de Polícia

Configurado em config/server/functions/police.lua.

Funcionalidades

  1. Alertas automáticos quando corridas ilegais iniciam
  2. Rastreamento em tempo real dos corredores
  3. Blips no mapa para policiais

Personalização

-- Em config/server/config.lua
Config.policePermission = "police.duty"  -- Sua permissão de polícia

Exemplo de Alerta

Quando uma corrida ilegal inicia, policiais recebem:
⚠️ Corrida ilegal: Uma corrida foi iniciada em [Nome da Corrida]

📝 Exemplo Completo

-- config/server/config.lua

-- ========================================
-- CONFIGURAÇÕES GERAIS
-- ========================================

Config.nicknameChangeCooldown = 86400
Config.singleRace = false
Config.clearQueueArea = 5
Config.noSqlPath = "nosql/database"

-- ========================================
-- VALORES PADRÃO - CRIAÇÃO DE CORRIDAS
-- ========================================

Config.RaceCreationDefaults = {
    bonus_prize = 1.0,
    required_item = "",
    required_item_quantity = 1,
    collectable_items = true,  -- Ativar power-ups por padrão
    cooldown = 15,             -- 15 minutos de cooldown
    min_runners = 2,           -- Mínimo 2 corredores
    active = false
}

-- ========================================
-- VALORES PADRÃO - CRIAÇÃO DE ROTAS
-- ========================================

Config.RouteCreationDefaults = {
    time_limit_seconds = 120,  -- 2 minutos
    is_explosive = false,      -- Não explodir ao falhar
    is_ilegal = true,          -- Alertar polícia
    reward_min = 2000,
    reward_max = 10000,
    is_active = false
}

-- ========================================
-- INTEGRAÇÃO COM FRAMEWORK
-- ========================================

Config.policePermission = "police.duty"
Config.dirtyDollarItem = "dinheirosujo"

-- ========================================
-- WEBHOOKS DISCORD
-- ========================================

Config.Webhooks = {
    raceStart = "https://discord.com/api/webhooks/123456789/abc...",
    raceFinish = "https://discord.com/api/webhooks/123456789/xyz..."
}