Como criar servidor de FiveM RP usando a base QBCore no Ubuntu
Passo a passo técnico para subir um servidor FiveM RP com QBCore em VPS Ubuntu 24.04: artifacts, MariaDB, txAdmin e configuração inicial do framework.
Pré-requisitos
Antes de começar, confirme que você tem o ambiente mínimo necessário. FiveM consome bastante RAM (cada player ocupa em média 60–80 MB no processo do servidor), então não tente rodar em menos de 4 GB.
VPS Ubuntu 24.04 LTS com no mínimo 4 GB de RAM, 2 vCPUs e 30 GB de disco. Acesso SSH com usuário sudo, porta 30120 (TCP+UDP) liberada no firewall e uma chave de licença gratuita gerada em keymaster.fivem.net.
30120 TCP+UDP 40120 TCP 4 GB MariaDB 10.11+ Preparando o sistema base
O servidor FiveM headless é distribuído como binário Linux estático, mas depende de algumas bibliotecas do sistema. Comece atualizando os pacotes e instalando as dependências.
Atualize o índice de pacotes e instale as dependências básicas:
sudo apt update && sudo apt upgrade -y
sudo apt install -y curl wget xz-utils git screen tmux ufw build-essentialO screen e tmux servem pra manter o processo do servidor rodando após você desconectar da sessão SSH — o FiveM não tem daemon nativo.
Crie um usuário dedicado pro servidor. Rodar FiveM como root é má prática e o txAdmin reclama disso explicitamente:
sudo adduser --disabled-password --gecos "" fivem
sudo usermod -aG sudo fivem
sudo su - fivemA partir daqui, todos os comandos rodam como o usuário fivem, exceto quando indicado com sudo.
Configure o firewall liberando SSH, FiveM e txAdmin:
sudo ufw allow 22/tcp
sudo ufw allow 30120/tcp
sudo ufw allow 30120/udp
sudo ufw allow 40120/tcp
sudo ufw --force enableA porta UDP 30120 é a crítica — é por onde o tráfego de jogo real passa. TCP 30120 é usada pelo handshake inicial e pela lista de servidores.
Instalando MariaDB e criando o banco
O QBCore depende fortemente de um banco SQL — praticamente todo recurso (inventário, jobs, veículos, propriedades) persiste via oxmysql. MariaDB é a escolha padrão da comunidade por compatibilidade e desempenho com workloads de muitas escritas curtas.
Instale o MariaDB e rode o assistente de segurança:
sudo apt install -y mariadb-server mariadb-client
sudo systemctl enable --now mariadb
sudo mariadb-secure-installationResponda Y pra todas as perguntas exceto a primeira (switch to unix_socket) — deixe N pra manter compatibilidade com autenticação por senha, que é o que o oxmysql espera.
Crie o banco e o usuário do QBCore:
sudo mariadb -u root -pDentro do prompt SQL:
CREATE DATABASE qbcore CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'qbuser'@'localhost' IDENTIFIED BY 'troqueEstaSenhaForte123!';
GRANT ALL PRIVILEGES ON qbcore.* TO 'qbuser'@'localhost';
FLUSH PRIVILEGES;
EXIT;Use uma senha real (gere com openssl rand -base64 24) — essa string vai pro server.cfg em texto claro.
O QBCore moderno usa emojis em chat e em alguns nomes de itens. Se criar o banco com utf8 ou latin1, recursos vão crashear com erros de “Incorrect string value” assim que um caractere de 4 bytes for inserido.
Baixando os artifacts do FiveM
Os artifacts são o binário do servidor FiveM. A CFX Re publica builds recommended e optional regularmente — sempre use a recommended a menos que precise de uma feature específica.
Crie a estrutura de diretórios e baixe a versão recommended atual:
mkdir -p ~/server ~/server-data
cd ~/server
wget https://runtime.fivem.net/artifacts/fivem/build_proot_linux/master/15295-de1d8a35434f0f2b5b8bcae93e9eb8f6e4a7df14/fx.tar.xz
tar xf fx.tar.xz
rm fx.tar.xzA URL muda a cada build. Pegue a atual em runtime.fivem.net/artifacts/fivem/build_proot_linux/master/ e copie o link da última pasta marcada como LATEST RECOMMENDED.
Clone o template inicial de server-data (recursos cfx padrão):
cd ~/server-data
git clone https://github.com/citizenfx/cfx-server-data.git .Esse repo só traz a estrutura mínima — vamos substituir os recursos pelo QBCore na próxima seção.
Instalando o framework QBCore
O QBCore não é um único repositório — é uma coleção de recursos (qb-core, qb-multicharacter, qb-spawn, qb-inventory, etc) que vivem em pastas separadas dentro de resources/. O time mantenedor consolidou tudo na organização qbcore-framework no GitHub.
Crie a estrutura de pastas e clone o pacote principal:
cd ~/server-data/resources
mkdir -p [qb]
cd [qb]
git clone https://github.com/qbcore-framework/qb-core.git
git clone https://github.com/qbcore-framework/qb-multicharacter.git
git clone https://github.com/qbcore-framework/qb-spawn.git
git clone https://github.com/qbcore-framework/qb-inventory.git
git clone https://github.com/qbcore-framework/qb-target.git
git clone https://github.com/qbcore-framework/qb-menu.git
git clone https://github.com/qbcore-framework/qb-input.gitOs colchetes em [qb] não são erro — é uma convenção do FiveM pra agrupar recursos. O servidor carrega todos os recursos dentro de pastas entre colchetes recursivamente.
Instale o oxmysql, que substitui o antigo mysql-async:
cd ~/server-data/resources
mkdir -p [standalone]
cd [standalone]
git clone https://github.com/overextended/oxmysql.gitQBCore depende de oxmysql declarado em fxmanifest.lua — sem ele, nenhum recurso inicia.
Importe o schema SQL do QBCore no banco. O arquivo de schema vem dentro do qb-core:
mariadb -u qbuser -p qbcore < ~/server-data/resources/[qb]/qb-core/qb-core.sqlDigite a senha que você definiu no Step 05. Esse import cria as tabelas players, bans, permissions, player_vehicles, entre outras — cerca de 25 tabelas no total.
Configurando o server.cfg
O server.cfg é o ponto de entrada do servidor: define hostname, recursos a carregar, conexão com banco e licença CFX.
Edite o arquivo principal de configuração:
nano ~/server-data/server.cfgSubstitua o conteúdo por este template:
# Endpoints
endpoint_add_tcp "0.0.0.0:30120"
endpoint_add_udp "0.0.0.0:30120"
# Conexão com banco (oxmysql)
set mysql_connection_string "mysql://qbuser:troqueEstaSenhaForte123!@localhost/qbcore?charset=utf8mb4"
# Recursos base
ensure oxmysql
ensure qb-core
ensure qb-multicharacter
ensure qb-spawn
ensure qb-inventory
ensure qb-target
ensure qb-menu
ensure qb-input
# Configurações do servidor
sv_hostname "Meu Servidor RP | QBCore"
sv_maxclients 48
sv_licenseKey "COLE_SUA_CHAVE_DO_KEYMASTER_AQUI"
sv_endpointprivacy true
# Admin inicial (substitua pelo seu identifier após primeira conexão)
add_ace group.admin command allow
add_principal identifier.license:SEU_LICENSE_IDENTIFIER group.adminA license key sai gratuita do keymaster.fivem.net — você precisa cadastrar o IP da VPS lá pra gerar.
A license key e a senha do banco ficam em texto claro. Se você versionar esse arquivo no GitHub, qualquer pessoa pode sequestrar seu servidor e zerar seu banco em minutos.
Subindo o servidor com txAdmin
O txAdmin já vem embutido nos artifacts modernos do FiveM — não precisa instalar separado. Ele oferece interface web pra logs, console remoto, gerenciamento de jogadores e banco.
Inicie o servidor numa sessão screen pra que continue rodando após você desconectar:
screen -S fivem
cd ~/server-data
bash ~/server/run.sh +set serverProfile defaultNa primeira execução, o txAdmin imprime uma URL no console no formato http://SEU_IP:40120/addMaster/pin?pin=XXXX. Abra no navegador, defina senha de admin e aponte o caminho do server-data pra /home/fivem/server-data.
Pra destacar do screen sem matar o processo: Ctrl+A seguido de D.
Pelo painel web do txAdmin, clique em “Start Server”. Acompanhe a aba Console — você deve ver linhas como:
[script:oxmysql] Database server connection established!
[script:qb-core] QBCore Started Successfully
Resource oxmysql started
Resource qb-core startedSe aparecer erro de conexão com banco, revisar a mysql_connection_string no server.cfg. Se der erro de license key inválida, regenerar no keymaster com o IP correto.
Verificação
Conecte via cliente FiveM usando F8 no jogo:
connect SEU_IP_DA_VPS:30120
Você deve cair na tela de seleção de personagens do qb-multicharacter. Crie um personagem teste — se a criação persistir e você spawnar no centro de Los Santos, o stack todo está funcional: artifacts, banco, oxmysql e QBCore.
Do lado servidor, confirme as conexões ativas:
ss -tunlp | grep -E '30120|40120'
Deve listar duas linhas: uma TCP 30120 e uma UDP 30120, ambas em estado LISTEN.
Resolução de problemas
Erro “Couldn’t load resource qb-core”
Quase sempre é problema de dependência. Confirme que o oxmysql foi clonado em resources/[standalone]/oxmysql e que aparece antes do qb-core na ordem de ensure do server.cfg.
Servidor não aparece na lista pública
Verifique sv_endpointprivacy — se estiver true, o servidor fica invisível na lista mas aceita conexões diretas. Pra listar publicamente, mude pra false e adicione sv_projectName e sv_projectDesc.
Players caem com “Failed handshake to server”
Quase sempre é UDP 30120 bloqueada. Confirme com sudo ufw status que a regra UDP existe. Se você está atrás de NAT, garanta que o forward UDP também esteja configurado no roteador/provedor.
O txAdmin guarda logs em ~/.fxserver/. Pra debug mais profundo, rode o servidor sem txAdmin via run.sh +exec server.cfg e leia o console em tempo real — alguns erros de Lua só aparecem nesse modo.
Próximos passos
Com o servidor básico no ar, vale evoluir nessas direções:
- Adicionar recursos opcionais do QBCore:
qb-policejob,qb-ambulancejob,qb-houses,qb-vehicleshop— todos no mesmo GitHubqbcore-framework. - Configurar backup automatizado do banco com
mariadb-dumpem cron diário, salvando em storage externo. - Migrar do qb-inventory antigo pro
ox_inventory, que tem performance significativamente melhor com 30+ players online. - Estudar o sistema de jobs e gangs do qb-core pra customizar economia e papéis do seu RP.
Se você está planejando abrir o servidor pro público, uma VPS Hostini entrega latência baixa em PoPs brasileiros e largura de banda suficiente pros picos de UDP do FiveM — fator crítico quando você passa de 32 players simultâneos.
Perguntas frequentes
Quanta RAM preciso pra rodar um servidor FiveM QBCore?
Pra até 32 players com QBCore base, 4 GB de RAM são suficientes. Acima de 32 players ou com recursos pesados como ox_inventory, qb-houses e múltiplos jobs ativos, recomenda-se 8 GB. Cada player consome entre 60 e 80 MB no processo do servidor, e o MariaDB pede pelo menos 512 MB dedicados sob carga.
QBCore é melhor que ESX em 2025?
QBCore tem desenvolvimento mais ativo, melhor estrutura de exports e ecossistema de recursos mais moderno — incluindo integração nativa com ox_lib e ox_inventory. ESX ainda tem mais conteúdo legado disponível, mas a maioria dos projetos novos opta por QBCore ou pelo fork Qbox, que é uma evolução otimizada do QBCore.
Posso rodar FiveM QBCore no Windows ao invés do Linux?
Sim, os artifacts do FiveM têm versão Windows e a maioria dos tutoriais antigos usa Windows Server. Mas Linux consome menos RAM ociosa, suporta melhor cargas de UDP de alta frequência e tem custo de licenciamento zero. Pra produção, Linux é a escolha padrão da comunidade competitiva.
Por que meu servidor FiveM trava após algumas horas?
As três causas mais comuns são memory leak em algum recurso terceiro (identificável via console com aviso de high resmon), conexões zumbis no MariaDB (resolva com pool_size adequado no oxmysql) e falta de swap no Linux. Configure pelo menos 2 GB de swap mesmo com RAM sobrando — kernel Linux usa pra cache de I/O.
Preciso comprar a chave de licença do FiveM?
Não. A chave de license server (sv_licenseKey) é totalmente gratuita e gerada em keymaster.fivem.net. O que é pago é o Element Club, assinatura opcional que aumenta o limite máximo de players (de 48 padrão até 2048) e libera funcionalidades cosméticas adicionais.
Como faço backup automático do banco QBCore?
Use mariadb-dump em cron diário: `mariadb-dump -u qbuser -pSENHA qbcore | gzip > /backup/qbcore-$(date +%F).sql.gz`. Idealmente, copie o arquivo pra storage externo via rsync ou rclone — backup no mesmo disco do servidor não protege contra falha de hardware ou comprometimento da VPS.