Como configurar o server.cfg do SA-MP linha por linha
Aprenda o que cada diretiva do server.cfg do SA-MP faz, valores recomendados e como ajustar slots, RCON, plugins, gamemode e portas com segurança.
O server.cfg é o arquivo de configuração principal do servidor SA-MP. Ele fica na raiz da pasta do servidor, ao lado do executável samp03svr (Linux) ou samp-server.exe (Windows), e é lido apenas no boot. Qualquer mudança exige reiniciar o servidor para entrar em vigor.
A maioria dos owners novos copia um server.cfg pronto da internet sem entender o que cada linha faz — e depois sofre com servidor não aparecendo no masterlist, RCON exposto, plugins quebrando ou slots configurados errado. Este guia explica cada diretiva relevante, mostra valores recomendados e aponta as armadilhas mais comuns. Tempo estimado de leitura e ajuste: 15 a 20 minutos.
A persona aqui é alguém que acabou de baixar o pacote SA-MP server, está montando o primeiro servidor (RP, freeroam, deathmatch ou stunt) e quer entender o que está editando antes de subir em produção.
Pré-requisitos
Você precisa do pacote SA-MP server 0.3.7-R3 (ou R4) já extraído, acesso ao shell do servidor (SSH no Linux ou Remote Desktop no Windows) e um editor de texto sem formatação — nano, vim, VS Code ou Notepad++. Editores como Word ou WordPad corrompem o encoding e quebram o boot.
server.cfg raiz do servidor SA-MP ANSI / Windows-1252 7777 A codificação importa: SA-MP 0.3.7 lê o arquivo em ANSI/Windows-1252. Se você salvar como UTF-8 com BOM, o servidor pode falhar na primeira linha (echo) ou interpretar caracteres acentuados de forma errada no hostname.
Estrutura básica do server.cfg
O arquivo é uma lista plana de pares diretiva valor, um por linha, separados por espaço (não =). Comentários começam com // ou # em alguns builds, mas o mais seguro é apenas remover linhas que não usa. A ordem das diretivas não importa para o parser, mas convém agrupar por contexto: identificação, rede, segurança, conteúdo, plugins.
Um server.cfg mínimo funcional tem cerca de 12 linhas. Os exemplos que vêm com o pacote oficial trazem 20+ diretivas — várias delas opcionais. Vamos cobrir as essenciais.
Diretivas de identificação e rede
Essas linhas controlam como o servidor se apresenta na lista pública e qual porta UDP escuta.
Defina o nome público do servidor com hostname:
hostname Meu Servidor RP Brasil [PT-BR]O hostname é o que aparece no SA-MP server browser. Limite prático: 50 caracteres visíveis. Use ASCII puro sempre que possível — acentos podem renderizar como ? no cliente dependendo do locale do jogador.
Configure a porta UDP:
port 7777A porta padrão é 7777. Se for rodar múltiplos servidores no mesmo IP, incremente: 7778, 7779. Confirme que a porta está liberada no firewall em UDP (não TCP — SA-MP é estritamente UDP).
Defina os slots disponíveis:
maxplayers 100maxplayers aceita até 1000 em SA-MP 0.3.7, mas o número real depende do gamemode e da CPU. Valores típicos: 50 para RP de qualidade, 100-200 para freeroam, 500+ exige otimização cuidadosa de timers e streamers.
Registre o servidor no masterlist público:
announce 1Com announce 1, o servidor reporta status pro masterlist da SA-MP a cada 2 minutos. Use 0 se for servidor privado/teste — ele continua acessível por IP direto, mas não aparece na busca pública.
Se o servidor está atrás de NAT (casa, escritório), você precisa de port forwarding UDP da porta 7777 do roteador para o IP interno da máquina. Sem isso, jogadores externos não conseguem conectar e o masterlist não valida o servidor.
Diretivas de segurança e administração
Essas controlam acesso administrativo e proteção contra abuso.
Defina a senha do RCON:
rcon_password J8kQ3pX9Lm2nR7vFRCON (Remote Console) permite executar comandos administrativos em runtime: kick, ban, reload de gamemode. Senha fraca é equivalente a deixar o servidor aberto. Gere 16+ caracteres aleatórios. Nunca commite o server.cfg em repositório público com a senha real.
Decida se RCON remoto fica habilitado:
rcon 1rcon 1 permite login via comando /rcon login <senha> de qualquer cliente conectado. rcon 0 desabilita — você ainda pode usar RCON pelo console do servidor. Para produção, desabilitar é mais seguro.
Configure proteção opcional contra spam de queries:
query 1query 1 (padrão) responde a pings do server browser. query 0 esconde o servidor do browser mas mantém ele jogável por IP. Útil para servidores de desenvolvimento ou eventos privados.
Houve casos documentados de servidores SA-MP comprometidos por força bruta no RCON. Se você usa a senha changeme, admin, 123456 ou similar, o servidor pode ser tomado em minutos. Trate rcon_password como você trataria uma senha root de SSH.
Diretivas de conteúdo: gamemode, filterscripts e plugins
Aqui é onde o servidor decide o que de fato rodar.
Defina o gamemode principal:
gamemode0 grandlarc 1A sintaxe é gamemodeN <nome-sem-extensao> <repetições>. O nome refere a um arquivo .amx em gamemodes/. O segundo número é quantas vezes esse modo roda antes de avançar para o próximo. Use 1 se tem só um gamemode.
Para rotação de modos:
gamemode0 dm 2
gamemode1 race 1
gamemode2 derby 1Aqui o servidor roda dm duas vezes, depois race uma, depois derby uma, e volta pro dm.
Liste filterscripts (scripts auxiliares):
filterscripts gl_actions gl_property gl_mapiconFilterscripts ficam em filterscripts/ como .amx. São módulos opcionais carregados em paralelo ao gamemode. Separados por espaço. Use para funcionalidades isoladas: comandos administrativos, sistema de propriedades, anti-cheat básico.
Carregue plugins nativos:
plugins streamer mysql sscanfNo Linux, plugins são .so em plugins/. No Windows, .dll. Não inclua extensão na linha. Plugins típicos: streamer (objetos/pickups dinâmicos), mysql (banco de dados), sscanf (parsing de parâmetros), crashdetect (debug de runtime errors).
Plugins são carregados na ordem listada. Alguns dependem de outros (ex: crashdetect precisa carregar antes do streamer em algumas versões). Se o servidor crasha no boot com failed to load plugin, tente reordenar antes de assumir que o plugin está corrompido.
Diretivas opcionais comuns
Linhas que aparecem em muitos server.cfg mas nem todo servidor usa.
| Diretiva | Função | Valor padrão | Quando ajustar |
|---|---|---|---|
maxnpc | Slots para bots controlados pelo servidor | 0 | Aumentar só se gamemode usa NPCs |
lanmode | Roda em modo LAN (sem masterlist) | 0 | 1 apenas para rede local interna |
password | Senha para entrar no servidor | vazio | Servidor privado/whitelist |
weburl | URL exibida no server info | vazio | Site/discord da comunidade |
mapname | Nome do mapa exibido | ”San Andreas” | Customizar para freeroam temático |
language | Idioma exibido no browser | ”English" | "Portuguese”, “Spanish” etc |
chatlogging | Salva log de chat em arquivo | 1 | 0 para reduzir I/O em servidores grandes |
timestamp | Timestamp em log entries | 1 | Deixar em 1 sempre |
logqueries | Log de queries do browser | 0 | 1 só para debug |
Verificação após editar
Depois de salvar o server.cfg, reinicie o servidor e leia o log de boot.
Inicie o servidor e observe o output:
./samp03svrNo Windows:
samp-server.exeConfira o log e procure por essas linhas:
SA-MP Dedicated Server
----------------------
v0.3.7-R3, (C)2005-2015 SA-MP Team
[XX:XX:XX] Server Plugins
[XX:XX:XX] Loaded 3 plugins.
[XX:XX:XX] Filterscripts
[XX:XX:XX] Loaded 3 filterscripts.
[XX:XX:XX] Number of vehicle models: XXSe aparecer Failed (plugins/X.so) ou Failed.amx em algum gamemode/filterscript, a configuração tem referência a arquivo inexistente — confira nomes e caminhos.
Use o site samp-monitor.com ou similar pra confirmar que o servidor está visível externamente. Se o monitor não consegue contatar, o problema é firewall ou NAT, não o server.cfg.
Resolução de problemas comuns
Servidor inicia mas não aparece no masterlist
Verifique announce 1, confirme que a porta UDP 7777 está aberta no firewall e que o servidor não está atrás de NAT sem port forwarding. O masterlist faz uma query de validação externa — se ela falha, o servidor é removido da lista em ~10 minutos.
”Server failed to initialize” no boot
Quase sempre é problema de encoding (server.cfg salvo como UTF-8 com BOM) ou caractere inválido no hostname. Resalve em ANSI e use apenas ASCII no nome.
Plugins carregam mas funções nativas dão “undefined symbol”
Versão do plugin incompatível com o gamemode. Plugins compilados para 0.3.7 não funcionam em 0.3.DL e vice-versa. Confirme a versão do samp03svr (./samp03svr --version) e baixe o plugin correspondente.
RCON aceita comandos mas eles não fazem efeito
O usuário fez /rcon login mas não está executando comandos com prefixo /rcon. Comandos RCON sempre exigem o prefixo: /rcon kick 5, não apenas kick 5.
Próximos passos
Com o server.cfg calibrado, vale evoluir em algumas direções:
- Versionamento: coloque o
server.cfg(semrcon_password) em git, com a senha em arquivo separado lido por wrapper script. Isso permite rastrear mudanças e fazer rollback. - Monitoramento de uptime: configure um monitor externo (UptimeRobot ou similar) com check UDP na porta 7777 — alerta quando o servidor cai.
- Backup automático de gamemode e scriptfiles: SA-MP grava progresso de jogadores em
scriptfiles/. Cron diário comtarresolve. - Otimização do streamer: a maior fonte de lag em SA-MP é objeto/pickup mal otimizado. Ajuste
Streamer_TickRatee tile size baseado no número de jogadores reais.
Se você está colocando o servidor em produção com jogadores reais, uma hospedagem dedicada para SA-MP da Hostini já vem com porta UDP 7777 liberada por padrão, proteção DDoS específica para protocolo de jogos e baixa latência para o Brasil — o que evita que jogadores caiam em rajadas de ataque UDP comuns nessa comunidade.
Perguntas frequentes
Qual é a diferença entre gamemode0, gamemode1 e gamemode15?
São slots de rotação de gamemodes. O server.cfg permite até 15 entradas (gamemode0 a gamemode14). Quando o gamemode atual termina ou recebe GameModeExit(), o servidor carrega o próximo da lista em ordem circular. Se você usa apenas um modo, deixe somente a linha gamemode0.
Por que meu servidor não aparece na lista pública mesmo com announce 1?
A diretiva announce 1 só registra o servidor no masterlist da SA-MP. Se o servidor estiver atrás de NAT sem port forwarding UDP na porta 7777, ou se a porta estiver bloqueada por firewall, o masterlist não consegue validar e o servidor é omitido. Verifique também se o servidor não está atrás de Cloudflare ou proxy TCP — SA-MP só funciona com UDP direto.
Posso rodar dois servidores SA-MP no mesmo IP?
Sim, desde que cada um use uma porta UDP diferente. Mude a diretiva port no segundo server.cfg para 7778, 7779 ou outra porta livre, e libere essa porta no firewall. Lembre que a porta também precisa estar livre para conexões UDP de entrada, não apenas saída.
É seguro usar a senha rcon_password padrão 'changeme'?
Não. Manter 'changeme' ou qualquer senha simples expõe o servidor a tomadas de controle remoto — qualquer pessoa pode executar comandos administrativos via RCON. Use no mínimo 16 caracteres aleatórios e considere desabilitar RCON remoto (rcon 0) se você gerencia o servidor apenas via console local.
Qual a função real de maxnpc e quando aumentar esse valor?
maxnpc define quantos bots controlados pelo servidor (NPCs) podem existir simultaneamente. Cada NPC consome um slot e um pouco de CPU. Aumente apenas se o gamemode usa NPCs ativos (corridas, missões automatizadas). Para servidores RP convencionais, deixar em 0 economiza recursos.
O que acontece se eu deixar um plugin .so/.dll listado mas o arquivo não existir?
O servidor exibe 'Failed (plugins/X.so): ...' no console e continua a inicialização sem aquele plugin. Funções nativas do plugin viram desconhecidas, gerando 'undefined symbol' nos gamemodes que dependem dele. Sempre confira o log de boot para confirmar que todos os plugins listados carregaram com sucesso.