Como configurar o arquivo server.cfg do FiveM
Par Benjamin D. · PDG
· Mis à jour le 21 Eost 2026 · Lecture 9 min
Sumário
Configurar o server.cfg FiveM corretamente é o que separa um servidor estável de um projeto que crasha a cada dez jogadores conectados. Esse arquivo controla portas, recursos, permissões, chave de licença e dezenas de convars que afetam diretamente tick rate e latência. Neste tutorial 2026, vamos percorrer cada bloco do arquivo, com exemplos reais e ajustes de desempenho testados em produção.
O que é o server.cfg FiveM e onde ele fica
O server.cfg é o arquivo de configuração lido pelo FXServer no momento do boot. Ele é interpretado linha por linha, de cima para baixo — a ordem importa. Um ensure chamado antes do recurso ser adicionado ao resources/ simplesmente falha, e um set declarado depois de um recurso já iniciado pode não ser lido por ele.
Localização típica do arquivo
- Instalação manual (VPS Linux/Windows) : normalmente em
/home/fivem/server-data/server.cfgou na raiz da pastatxData/quando o txAdmin gerencia a deploy. - Painel Pterodactyl : acessível pelo gerenciador de arquivos, na raiz do container ou dentro de
txData/CFXDefaultServer_XXXX/. - Deploy via txAdmin : o painel web cria e edita o arquivo em Settings → Server → CFG File Editor, sem precisar mexer no FTP.
Em uma hospedagem gerenciada com painel Serveur FiveM, o servidor já sobe com um server.cfg funcional, e você edita pela console de arquivos sem tocar em SSH. Quem prefere controle total do sistema operacional pode rodar o FXServer em um VPS Linux e compilar o ambiente do zero.
Sintaxe básica que você precisa dominar
| Comando | Função | Exemplo |
|---|---|---|
set | Define uma convar acessível apenas no servidor | set sv_licenseKey "cfxk_xxx" |
sets | Define uma convar replicada na lista de servidores | sets tags "roleplay, brasil" |
setr | Define uma convar replicada para os clientes | setr voice_useNativeAudio true |
ensure | Inicia (ou reinicia) um recurso | ensure es_extended |
start | Inicia um recurso sem reiniciar se já ativo | start mapmanager |
add_ace / add_principal | Sistema de permissões | add_ace group.admin command allow |
# | Comentário | # bloco de recursos |
Regra de ouro: qualquer valor com espaço ou caractere especial vai entre aspas duplas. Um set mal fechado derruba o parser inteiro e o servidor sobe sem metade das configurações — sem erro claro no console.
Estrutura completa de um server.cfg FiveM funcional
Vamos montar o arquivo por blocos. Copie e adapte — este é um esqueleto de produção, não um exemplo genérico.
1. Endpoints e rede
# Endpoints - porta padrão 30120 (TCP + UDP obrigatórios)
endpoint_add_tcp "0.0.0.0:30120"
endpoint_add_udp "0.0.0.0:30120"
# Numero maximo de slots (32 / 48 / 64 / 128 conforme OneSync)
sv_maxclients 64
# Nome do host exibido na lista de servidores
sv_hostname "^2[BR] Cidade Alta RP ^7| ^3ESX ^7| ^1Whitelist"
# Idioma e regiao
sv_projectName "Cidade Alta RP"
sv_projectDesc "Servidor de roleplay serio, whitelist ativa, economia balanceada"
sets locale "pt-BR"
sets tags "roleplay, brasil, esx, whitelist, economy"
Se você hospeda atrás de NAT ou em container, mantenha 0.0.0.0. Só especifique um IP fixo se tiver múltiplas interfaces de rede e souber exatamente qual usar.
2. OneSync e limites de entidades
# OneSync Infinity: obrigatorio acima de 32 slots
set onesync on
set onesync_population true
set onesync_forceMigration true
# Limites de entidades - ajuste conforme o mapa e a quantidade de props
set onesync_distanceCullVehicles true
set onesync_enableInfinity true
# Tick rate do scheduler (padrao 50ms)
set sv_enforceGameBuild 3407
O sv_enforceGameBuild define qual build do GTA V os clientes precisam carregar. Se seus MLOs ou veículos DLC exigirem uma build recente, força o valor correspondente. Builds erradas geram o clássico crash na tela de loading. Consulte a lista atualizada na documentação oficial do FiveM antes de mudar esse valor.
3. Chave de licença e identificação
# Chave gerada em keymaster.fivem.net - NUNCA compartilhe
sv_licenseKey "cfxk_XXXXXXXXXXXXXXXXXXXX_XXXXX"
# Steam Web API (opcional, para identificadores steam:)
set steam_webApiKey "SUA_CHAVE_STEAM"
# Listagem publica do servidor
sv_master1 ""
sv_scriptHookAllowed 0
Deixe sv_scriptHookAllowed 0 em qualquer servidor sério: liberar o ScriptHook abre a porta para menus de trapaça nativos. E jamais versionar o server.cfg com a licença dentro em um repositório público — a chave pode ser revogada e reutilizada por terceiros.
4. Bloco de recursos
A ordem de carregamento é crítica. Frameworks e dependências primeiro, scripts de gameplay depois.
# --- Recursos base do FiveM ---
ensure mapmanager
ensure chat
ensure spawnmanager
ensure sessionmanager
ensure basic-gamemode
ensure hardcap
# --- Dependencias / bibliotecas ---
ensure oxmysql
ensure ox_lib
ensure PolyZone
# --- Framework ---
ensure es_extended
ensure esx_menu_default
ensure esx_menu_dialog
ensure esx_menu_list
# --- Interface e HUD ---
ensure ox_inventory
ensure ox_target
ensure custom_hud
# --- Jobs e economia ---
ensure esx_police
ensure esx_ambulancejob
ensure esx_mechanicjob
# --- Mapas e MLO (por ultimo) ---
ensure [maps]
ensure [vehicles]
Note o uso de pastas entre colchetes: ensure [maps] carrega todos os recursos dentro da pasta resources/[maps]/. Isso mantém o arquivo legível quando você chega a 300 recursos.
5. Conexão com o banco de dados
# oxmysql - string de conexao MySQL/MariaDB
set mysql_connection_string "mysql://usuario:[email protected]:3306/fivem?charset=utf8mb4"
# Debug de queries lentas (desative em producao)
set mysql_debug false
set mysql_slow_query_warning 250
Se o MySQL roda no mesmo host, use 127.0.0.1 em vez de localhost — evita a resolução via socket Unix e reduz latência de query em alguns setups. Ative o slow_query_warning durante o desenvolvimento: 90% dos travamentos de servidor RP vêm de queries mal indexadas, não de falta de CPU.
6. Permissões (ACE)
# Grupos de principais
add_ace group.admin command allow
add_ace group.admin command.quit deny
add_principal identifier.fivem:1234567 group.admin
add_principal identifier.license:abcdef0123456789 group.admin
# Moderadores: comandos limitados
add_ace group.mod command.kick allow
add_ace group.mod command.ban allow
add_principal identifier.license:fedcba9876543210 group.mod
# Bloqueia comandos perigosos para todos
add_ace builtin.everyone command.stop deny
add_ace builtin.everyone command.restart deny
Prefira sempre identifier.license: em vez de steam:: a license é gerada pelo Rockstar Social Club e não depende do jogador ter a Steam aberta.
7. RCON e acesso remoto
# Senha RCON - use algo longo e aleatorio
rcon_password "R7#kL92$mQx!eZ4vT8pW"
Se você não usa RCON, o mais seguro é simplesmente não definir a linha. Quando definir, gere uma senha de 20+ caracteres. RCON exposto com senha fraca é um dos vetores de invasão mais comuns em servidores FiveM.
Otimizar performance e latência via server.cfg FiveM
O server.cfg não faz milagre em hardware fraco, mas configurações erradas destroem o desempenho de uma máquina boa. FiveM é fortemente dependente de frequência de clock single-thread: o loop principal do FXServer roda em uma thread dominante. Por isso processadores Ryzen de alta frequência com armazenamento NVMe fazem diferença real no tempo de resposta das queries e no streaming de assets.
Convars que impactam diretamente o tick
| Convar | Valor recomendado | Efeito |
|---|---|---|
sv_maxclients | Coerente com o hardware | Slots demais em CPU limitada = tick degradado para todos |
onesync | on | Necessário acima de 32 slots, melhora sincronização de entidades |
onesync_distanceCullVehicles | true | Deixa de sincronizar veículos distantes, alivia rede e CPU |
sv_endpointPrivacy | true | Oculta IPs dos jogadores nas listagens |
mysql_debug | false | Logging de query em produção consome I/O inutilmente |
sv_scriptHookAllowed | 0 | Bloqueia menus de cheat nativos |
Diagnosticar gargalos com resmon e profiler
Antes de culpar a hospedagem, meça. Dentro do jogo, com permissão de admin:
# Monitor de recursos client-side
resmon 1
# Na console do servidor (painel ou txAdmin)
profiler record 500
profiler view
status
resmon
Um recurso que consome mais de 0.10 ms em idle no servidor merece revisão. Loops while true do Wait(0) end espalhados por scripts mal escritos são a causa número um de queda de tick em servidores ESX/QBCore.
Streaming de assets e disco
Servidores RP com centenas de MLOs e carros customizados carregam gigabytes de .ytd, .ydr e .ymap. Cada conexão de jogador dispara leitura intensiva desses arquivos. Em disco mecânico, isso vira fila de I/O e tempo de loading de vários minutos. Em SSD NVMe, o mesmo carregamento cai drasticamente. Se o seu servidor demora para entregar assets, verifique o disco antes de mexer em convars.
Anti-DDoS e estabilidade de rede
Nenhuma linha do server.cfg protege contra ataque volumétrico — isso é resolvido na camada de infraestrutura. Em servidores hospedados na Fly-Serv, a proteção anti-DDoS já vem ativa por padrão, filtrando o tráfego antes que ele chegue à porta 30120. O que você faz no server.cfg é reduzir a superfície: sv_endpointPrivacy true, RCON forte e limitação de comandos por ACE.
Erros frequentes no server.cfg e como resolver
O servidor não aparece na lista pública
- Verifique o
sv_licenseKey: chave inválida, expirada ou associada a outro IP. - Portas TCP e UDP 30120 precisam estar abertas. Em VPS com firewall:
sudo ufw allow 30120/tcp
sudo ufw allow 30120/udp
sudo ufw reload
sudo ufw status numbered
- Se estiver com
sv_master1 ""definido intencionalmente, o servidor fica oculto — remova a linha para listar publicamente.
Erro "Couldn't find resource X"
O nome no ensure tem que bater exatamente com o nome da pasta em resources/, incluindo maiúsculas e minúsculas — em Linux o sistema de arquivos é case-sensitive. Verifique também se existe um fxmanifest.lua válido dentro da pasta.
ls -la resources/[framework]/
cat resources/[framework]/es_extended/fxmanifest.lua | head -20
Crash em loop no boot
Comente todos os recursos de gameplay e suba apenas o bloco base + framework. Vá reativando por grupos de cinco até identificar o culpado. Um ensure de recurso com dependência não carregada gera erro silencioso e trava o boot.
Jogadores caem com "Server → Client connection timed out"
- Tick do servidor saturado: cheque
resmonna console. - OneSync mal configurado com mais de 32 slots.
- Query MySQL bloqueante segurando a thread principal.
Checklist antes de cada reinício
- Backup do
server.cfge do banco de dados. - Validar a sintaxe: aspas fechadas, sem caracteres invisíveis colados de editores de texto.
- Reiniciar pela console do painel, não com
kill -9(evita corrupção de cache). - Acompanhar as primeiras 60 linhas do log em busca de
[ERROR].
Salvar versões do arquivo é obrigatório. Em uma hospedagem com backups automáticos, você recupera uma configuração anterior em minutos. Em auto-hospedagem via VPS Pterodactyl, configure sua própria rotina — um simples cron com tar já resolve:
0 4 * * * tar -czf /backups/fivem-$(date +\%F).tar.gz /home/fivem/server-data/
Quem administra várias comunidades em jogos diferentes encontra a mesma lógica de painel e console em Tous nos serveurs de jeu, e mais tutoriais de configuração no Blog Fly-Serv.
Conclusão
Um server.cfg bem estruturado é um arquivo legível, comentado por blocos e com ordem de carregamento coerente. Comece pelo esqueleto mínimo, valide o boot, e só então adicione recursos em lotes pequenos. Meça com resmon e profiler em vez de adivinhar, mantenha backups versionados e trate permissões ACE com o mesmo cuidado que a senha RCON.
FAQ
Qual porta preciso abrir para o server.cfg FiveM funcionar?A porta 30120 em TCP e UDP simultaneamente, declarada com endpoint_add_tcp e endpoint_add_udp. Se você mudar a porta no cfg, precisa liberá-la também no firewall do sistema (ufw allow no Linux) e na configuração de rede da hospedagem. Faltar o UDP é o erro mais comum: o servidor sobe, mas ninguém consegue conectar.
Use ensure na maioria dos casos: ele inicia o recurso e reinicia caso já esteja rodando, o que garante estado limpo após um refresh. O start apenas inicia e ignora recursos já ativos. Para dependências críticas como oxmysql, ox_lib e o framework, ensure é sempre a escolha segura.
Depende mais da CPU e da quantidade de recursos do que do número em si. Acima de 32 slots o onesync precisa estar ativado. Na prática, um servidor RP pesado com 200+ scripts exige processador de alta frequência e NVMe para sustentar 64 slots com tick estável. Aumente gradualmente e monitore o resmon do servidor a cada degrau.