Primeiro: descubra que tipo de lag é
Existem três problemas diferentes que todo mundo chama de lag, e confundir eles faz você resolver a coisa errada.
| Sintoma | Quem sente | Causa |
|---|---|---|
| FPS baixo | só um jogador | o computador dele, não o servidor |
| Ping alto | jogadores de uma região | distância ou rota de rede |
| Servidor travando | todo mundo ao mesmo tempo | script, banco ou hardware |
Este guia resolve o terceiro caso: personagem teleportando, NPC congelando, todo mundo sentindo junto.
Use o resmon, sempre
O resmon é a ferramenta mais importante e a mais ignorada. Pressione F8 no jogo e digite resmon 1. Aparece uma tabela com cada recurso e quanto tempo de CPU ele consome por frame.
| Leitura | Significado |
|---|---|
| abaixo de 0,5 ms | saudável |
| 0,5 a 1 ms | merece atenção |
| acima de 1 ms | problema |
Os culpados mais frequentes
Depois de identificar o recurso pesado, os padrões se repetem:
- Loops sem espera — script rodando a cada frame quando poderia rodar a cada segundo. De longe a causa mais comum.
- Consultas de banco em loop — cada consulta é uma ida ao MySQL; fazer isso continuamente trava o servidor inteiro.
- Scripts de HUD e minimapa — costumam atualizar muito mais rápido do que o olho humano percebe.
- Sistemas de propriedades e veículos — quando mal feitos, varrem todas as entidades do mapa repetidamente.
- Recursos duplicados — dois scripts fazendo a mesma coisa, comum em quem foi acumulando addons.
Otimize o banco de dados
Cidade que roda há meses acumula dados. Tabelas de logs, veículos e transações crescem sem parar.
Se o MySQL não tem índice nas colunas usadas nas buscas, cada consulta fica mais lenta conforme a tabela cresce — e o jogador sente como travamento.
Limpe logs antigos periodicamente e confira os índices nas colunas de identificação do jogador. Usar oxmysql em vez do antigo mysql-async também ajuda bastante.
Revise o OneSync
Se a cidade passa de 32 slots, o OneSync precisa estar ativo. Sem ele, o servidor tenta sincronizar entidades de um jeito que não foi feito para essa escala.
Confira no server.cfg se existe set onesync on e se o sv_maxclients condiz com o que a máquina aguenta.
Quando o problema é mesmo a hospedagem
Se você otimizou os scripts, arrumou o banco e o servidor ainda trava sob carga, aí sim o gargalo é hardware ou rede.
FiveM é intensivo em single-thread: a frequência do processador importa mais que a quantidade de núcleos. Um Ryzen 9 com clock alto rende mais que um processador com o dobro de núcleos e clock baixo.
Outro sinal claro: se o travamento acontece sempre no mesmo horário e você divide máquina com outros clientes, provavelmente está sofrendo com vizinhos consumindo a CPU.
E se o ping está alto para brasileiros, verifique onde a máquina está fisicamente. Servidor no exterior adiciona 120 ms ou mais, e nenhum ajuste de script resolve isso.
Rotina que evita o problema
Teste antes de instalar. Suba o script num servidor de testes e olhe o resmon antes de colocar na cidade principal.
Reinicie de madrugada. Reinício programado no txAdmin limpa acúmulo de memória e leva poucos segundos.
Meça mensalmente. O consumo muda conforme a cidade cresce; o script que estava ok com 20 jogadores pode não estar com 80.