Como criar um servidor FiveM do zero
Par Benjamin D. · PDG
· Mis à jour le 14 Eost 2026 · Lecture 10 min
Sumário
Criar um servidor FiveM do zero em 2026 continua sendo um projeto acessível, desde que você entenda a ordem correta das etapas: artifacts, chave de licença, banco de dados, framework e otimização. Este tutorial cobre a instalação completa, a configuração do server.cfg, os recursos essenciais e os ajustes de performance que evitam lag com 64 slots ou mais.
O que é necessário antes de montar um servidor FiveM
Antes de digitar a primeira linha de comando, vale entender que o FiveM não é um simples "mundo aberto multiplayer". É uma plataforma de modding que roda sobre o GTA V, com um servidor dedicado (FXServer) que carrega resources em Lua, JavaScript ou C#. Cada script que você adiciona consome CPU, memória e banda. Um projeto roleplay sério normalmente roda entre 150 e 400 resources simultâneos.
Requisitos técnicos reais
| Perfil do servidor | Slots | CPU | RAM | Disco |
|---|---|---|---|---|
| Testes / desenvolvimento | 8-16 | 2 vCore alta frequência | 4 GB | 20 GB NVMe |
| Roleplay leve (ESX básico) | 32 | 4 vCore Ryzen | 8 GB | 40 GB NVMe |
| Roleplay completo (QBCore + MLOs) | 64 | 6-8 vCore Ryzen | 12-16 GB | 80 GB NVMe |
| Comunidade grande + streaming pesado | 128+ | 8+ vCore Ryzen | 24-32 GB | 150 GB NVMe |
Dois pontos merecem atenção. Primeiro: o FXServer é fortemente dependente de frequência por núcleo, não de quantidade de threads. Um processador Ryzen de alta frequência entrega mais tick estável do que um Xeon antigo com muitos cores. Segundo: o streaming de assets (carros, roupas, MLOs) é lido do disco constantemente — SSD NVMe não é luxo, é requisito prático.
Hospedagem gerenciada ou VPS?
Existem dois caminhos legítimos:
- Hospedagem dedicada ao jogo — o servidor já vem instalado, com painel Pterodactyl, console ao vivo, gerenciador de arquivos, backups automáticos e anti-DDoS incluso. É o caminho mais rápido para colocar um Serveur FiveM no ar sem administrar Linux.
- VPS — você controla tudo: sistema, banco de dados, firewall, múltiplas instâncias. Exige conhecimento de administração. Um VPS Linux é a base clássica; um VPS Pterodactyl permite hospedar você mesmo vários servidores com painel.
Se a sua comunidade já existe e você quer previsibilidade, comece pela hospedagem gerenciada. Se você planeja rodar FiveM + site + banco externo + bot Discord na mesma máquina, o VPS faz mais sentido.
Chave de licença (obrigatória)
Nenhum servidor FiveM público sobe sem uma server key gerada no Keymaster oficial. Ela é gratuita, vinculada à sua conta Cfx.re, e você precisa informar o IP ou marcar como "IP dinâmico". Guarde essa chave: ela vai direto no server.cfg e nunca deve ser publicada em repositórios ou prints.
Instalação passo a passo de um servidor FiveM em VPS Linux
Vamos usar Debian 12 ou Ubuntu 22.04/24.04. O procedimento é praticamente idêntico. Se você optar por hospedagem com painel, pule para a seção do server.cfg — o painel já cuida das etapas 1 a 3.
1. Preparar o sistema e o usuário
Nunca rode o FXServer como root. Crie um usuário dedicado:
apt update && apt upgrade -y
apt install -y curl wget xz-utils git screen unzip
adduser --disabled-password --gecos "" fivem
usermod -aG sudo fivem
su - fivem
mkdir -p ~/server ~/server-data
2. Baixar os artifacts do FXServer
Os artifacts são as builds do servidor. Use sempre uma build recommended ou latest estável da branch Linux:
cd ~/server
wget https://runtime.fivem.net/artifacts/fivem/build_proot_linux/master/<BUILD>/fx.tar.xz
tar xf fx.tar.xz
rm fx.tar.xz
ls -l run.sh
Substitua <BUILD> pelo número da versão que você escolheu na página oficial de artifacts. Anote a build usada: quando um script quebrar, a primeira pergunta será sempre "qual artifact você está rodando?".
3. Clonar os recursos base (cfx-server-data)
cd ~
git clone https://github.com/citizenfx/cfx-server-data.git server-data
ls ~/server-data/resources
Esse repositório traz os resources oficiais mínimos: chat, spawnmanager, sessionmanager, mapmanager, hardcap, basic-gamemode. É o esqueleto sobre o qual você vai montar seu framework.
4. Instalar MariaDB (necessário para ESX/QBCore)
sudo apt install -y mariadb-server
sudo mysql_secure_installation
sudo mysql -u root -p
CREATE DATABASE fivem CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'fivem_user'@'localhost' IDENTIFIED BY 'SenhaLongaEAleatoria123!';
GRANT ALL PRIVILEGES ON fivem.* TO 'fivem_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;
Deixe o MariaDB escutando apenas em 127.0.0.1 se o banco estiver na mesma máquina do servidor FiveM. Expor a porta 3306 na internet é um dos erros mais comuns e mais caros.
5. Firewall e portas
O FiveM usa a porta 30120 em TCP e UDP por padrão. O txAdmin usa a 40120 em TCP.
sudo apt install -y ufw
sudo ufw allow OpenSSH
sudo ufw allow 30120/tcp
sudo ufw allow 30120/udp
sudo ufw allow 40120/tcp
sudo ufw enable
sudo ufw status numbered
6. Primeiro boot com txAdmin
cd ~/server-data
screen -S fivem
bash ~/server/run.sh
No primeiro start, o txAdmin exibe uma URL com PIN de acesso (http://SEU_IP:40120). Ele guia a criação do admin, a importação do template de recipe (ESX, QBCore ou vanilla) e a colagem da chave de licença. É o caminho mais confiável para não errar caminhos de pasta.
7. Rodar como serviço systemd
Screen é bom para testes, ruim para produção. Crie um serviço:
sudo nano /etc/systemd/system/fivem.service
[Unit]
Description=FiveM FXServer
After=network.target mariadb.service
[Service]
Type=simple
User=fivem
WorkingDirectory=/home/fivem/server-data
ExecStart=/home/fivem/server/run.sh +exec server.cfg
Restart=on-failure
RestartSec=10
LimitNOFILE=65535
[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable --now fivem
sudo systemctl status fivem
journalctl -u fivem -f
Configurar o server.cfg do seu servidor FiveM
O server.cfg fica na raiz do server-data. É ele que define endpoints, slots, recursos carregados, permissões e a chave de licença. Um exemplo funcional e comentado:
# --- Endpoints ---
endpoint_add_tcp "0.0.0.0:30120"
endpoint_add_udp "0.0.0.0:30120"
# --- Identidade ---
sv_hostname "^2[BR] Cidade Alta ^7| Roleplay Sério"
sv_projectName "Cidade Alta RP"
sv_projectDesc "Servidor roleplay brasileiro, whitelist ativa"
sets tags "roleplay, brasil, esx, whitelist"
sets locale "pt-BR"
sv_maxclients 64
# --- Recursos base ---
ensure mapmanager
ensure chat
ensure spawnmanager
ensure sessionmanager
ensure basic-gamemode
ensure hardcap
ensure rconlog
# --- Banco de dados ---
set mysql_connection_string "mysql://fivem_user:SenhaLongaEAleatoria123!@localhost/fivem?charset=utf8mb4"
ensure oxmysql
# --- Framework (exemplo) ---
ensure es_extended
# --- Segurança ---
sv_scriptHookAllowed 0
rcon_password "TrocarPorAlgoLongoEUnico"
sv_authMaxVariance 1
sv_authMinTrust 5
# --- OneSync (obrigatório acima de 32 slots) ---
set onesync on
set onesync_population true
# --- Licença ---
sv_licenseKey "sua_chave_do_keymaster"
# --- Admins ---
add_ace group.admin command allow
add_ace group.admin command.quit deny
add_principal identifier.fivem:1234567 group.admin
Detalhes que fazem diferença
- ensure vs start: use
ensure. Ele reinicia o resource caso já esteja rodando, evitando estados inconsistentes. - Ordem de carregamento: banco de dados (
oxmysql) antes do framework; framework antes dos scripts que dependem dele. - OneSync: acima de 32 slots é obrigatório. Ele altera o modelo de sincronização de entidades e muda como scripts antigos se comportam — teste tudo depois de ativar.
- sv_scriptHookAllowed 0: bloqueia menus de trapaça baseados em ScriptHook. Não é uma proteção completa, mas é o mínimo.
- rcon_password: se você não usa RCON, deixe vazio ou remova a linha. Senha fraca de RCON é porta aberta para takeover do servidor.
Escolher o framework
| Framework | Perfil | Curva de aprendizado |
|---|---|---|
| ESX (es_extended) | Base histórica, enorme quantidade de scripts prontos em PT-BR | Baixa a média |
| QBCore | Estrutura mais moderna, código mais organizado, forte em RP | Média |
| ox_core / standalone | Performance e controle, para quem escreve os próprios scripts | Alta |
Não misture frameworks. Escolher ESX e depois "puxar um script QBCore" gera conflitos de eventos e de tabelas no banco que consomem semanas de debug.
Instalar um resource manualmente
cd ~/server-data/resources/[local]
git clone https://github.com/exemplo/meu_script.git
# importar o SQL do script
mysql -u fivem_user -p fivem < meu_script/meu_script.sql
# adicionar ao server.cfg
echo 'ensure meu_script' >> ~/server-data/server.cfg
sudo systemctl restart fivem
Pastas entre colchetes ([local], [esx], [voice]) funcionam como categorias. O FXServer varre recursivamente, então você organiza como quiser — mas mantenha consistência, porque quando o servidor tiver 300 resources, a organização é o que salva.
Performance, segurança e manutenção do servidor
Manter o tick estável
A métrica que importa no FiveM é o server thread hitch: quantos milissegundos o servidor demora para processar um tick. Acima de 50 ms, jogadores sentem rubber banding. Use o comando de profiling no console:
resmon 1
profiler record 500
profiler view
Ações concretas que reduzem hitches:
- Eliminar loops
while true do ... Wait(0) endem scripts server-side. Quase sempre podem virar eventos. - Substituir queries síncronas por chamadas assíncronas do
oxmysql. - Colocar índices nas colunas mais consultadas (
identifier,citizenid,owner). - Reduzir a quantidade de entidades persistentes (veículos abandonados, props em pé no mundo).
- Compactar e otimizar YMAPs/MLOs pesados — streaming mal feito derruba FPS de todo mundo.
Streaming de assets
Cada carro adicionado é lido do disco quando um jogador entra em alcance. Com centenas de veículos, a latência de disco vira gargalo — por isso NVMe importa. Mantenha os arquivos .ytd em resoluções razoáveis (1024 ou 2048, não 4096 para tudo) e agrupe assets em resources dedicados, não misturados nos scripts de gameplay.
Segurança básica do VPS
# Chave SSH em vez de senha
ssh-keygen -t ed25519 -C "admin@meuservidor"
ssh-copy-id fivem@SEU_IP
sudo nano /etc/ssh/sshd_config
# PermitRootLogin no
# PasswordAuthentication no
sudo systemctl restart ssh
# Proteção contra brute force
sudo apt install -y fail2ban
sudo systemctl enable --now fail2ban
sudo fail2ban-client status sshd
A proteção anti-DDoS volumétrica já é tratada na infraestrutura quando você hospeda em uma oferta com mitigação inclusa — a sua responsabilidade é o resto: senhas fortes, RCON protegido, admins com ACE bem definidos, e nenhuma porta desnecessária aberta.
Backups: a regra que ninguém segue até perder tudo
Um servidor roleplay guarda meses de progressão de jogadores. Faça backup de duas coisas: a pasta server-data e o dump do banco.
#!/bin/bash
DATA=$(date +%F_%H%M)
mysqldump -u fivem_user -p'SENHA' fivem | gzip > /home/fivem/backups/db_$DATA.sql.gz
tar czf /home/fivem/backups/data_$DATA.tar.gz /home/fivem/server-data
find /home/fivem/backups -type f -mtime +7 -delete
chmod +x /home/fivem/backup.sh
crontab -e
0 5 * * * /home/fivem/backup.sh
Em hospedagem com painel, os backups automáticos cobrem os arquivos do servidor — ainda assim, mantenha uma cópia do banco fora da máquina. Testar a restauração uma vez por mês é o que separa backup real de backup imaginário.
Atualizações e rotina
- Atualize o artifact do FXServer a cada ciclo estável, nunca durante um evento da comunidade.
- Mantenha um servidor de teste separado (pode ser um segundo container no painel ou um VPS pequeno).
- Versione seu
server.cfge seus resources próprios em Git privado. - Documente cada script adicionado: origem, versão, dependências.
Para quem administra várias comunidades, um VPS Pterodactyl permite isolar cada projeto em seu próprio container, com limites de CPU e RAM definidos. Já quem prefere ambiente gráfico para ferramentas de desenvolvimento pode optar por um VPS Windows. E se além do FiveM você mantém outros projetos, dá uma olhada em Tous nos serveurs de jeu ou nos guias do Blog Fly-Serv. A documentação oficial continua sendo a referência para parâmetros de convar e OneSync: Source.
Conclusão
Montar um servidor FiveM do zero é uma sequência lógica: hardware adequado, artifacts, licença, banco de dados, framework único e server.cfg limpo. O trabalho real começa depois, com profiling, otimização de resources e backups testados. Comece pequeno, meça o tick a cada script adicionado, e sua comunidade cresce sem quedas de performance.
FAQ
Quantos slots o meu servidor FiveM aguenta com 8 GB de RAM?Com 8 GB e 4 vCore de alta frequência, um servidor ESX básico com 40 a 80 resources roda confortavelmente entre 32 e 48 slots. O limite raramente é a RAM: é o tempo de tick da CPU. Se o resmon mostrar hitches acima de 50 ms com poucos jogadores, o problema está nos scripts, não na memória. Otimize antes de escalar.
Para hospedar, não: o FXServer roda sem cópia do jogo na máquina. Mas todo jogador que entrar precisa de uma cópia legítima do GTA V vinculada à conta Rockstar, e você precisa de uma chave de licença gratuita gerada no Keymaster do Cfx.re, colada em sv_licenseKey no server.cfg.
Confira quatro pontos: a chave de licença é válida e corresponde ao IP; as portas 30120 TCP e UDP estão abertas no firewall e no provedor; sv_master1 não foi desativado no server.cfg; e o console não mostra erro de autenticação no boot. Rode journalctl -u fivem -f ou verifique o console do painel para ler a mensagem exata.