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

Antes de começar

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.

Arquivo server.cfg
Localização raiz do servidor SA-MP
Encoding ANSI / Windows-1252
Porta UDP padrão 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.

01

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.

02

Configure a porta UDP:

port 7777

A 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).

03

Defina os slots disponíveis:

maxplayers 100

maxplayers 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.

04

Registre o servidor no masterlist público:

announce 1

Com 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.

NAT e porta UDP

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.

05

Defina a senha do RCON:

rcon_password J8kQ3pX9Lm2nR7vF

RCON (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.

06

Decida se RCON remoto fica habilitado:

rcon 1

rcon 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.

07

Configure proteção opcional contra spam de queries:

query 1

query 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.

Nunca exponha RCON sem senha forte

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.

08

Defina o gamemode principal:

gamemode0 grandlarc 1

A 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 1

Aqui o servidor roda dm duas vezes, depois race uma, depois derby uma, e volta pro dm.

09

Liste filterscripts (scripts auxiliares):

filterscripts gl_actions gl_property gl_mapicon

Filterscripts 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.

10

Carregue plugins nativos:

plugins streamer mysql sscanf

No 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).

Ordem de carga importa

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.

DiretivaFunçãoValor padrãoQuando ajustar
maxnpcSlots para bots controlados pelo servidor0Aumentar só se gamemode usa NPCs
lanmodeRoda em modo LAN (sem masterlist)01 apenas para rede local interna
passwordSenha para entrar no servidorvazioServidor privado/whitelist
weburlURL exibida no server infovazioSite/discord da comunidade
mapnameNome do mapa exibido”San Andreas”Customizar para freeroam temático
languageIdioma exibido no browser”English""Portuguese”, “Spanish” etc
chatloggingSalva log de chat em arquivo10 para reduzir I/O em servidores grandes
timestampTimestamp em log entries1Deixar em 1 sempre
logqueriesLog de queries do browser01 só para debug

Verificação após editar

Depois de salvar o server.cfg, reinicie o servidor e leia o log de boot.

11

Inicie o servidor e observe o output:

./samp03svr

No Windows:

samp-server.exe
12

Confira 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: XX

Se 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.

Teste de conectividade externa

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 (sem rcon_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 com tar resolve.
  • Otimização do streamer: a maior fonte de lag em SA-MP é objeto/pickup mal otimizado. Ajuste Streamer_TickRate e 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.

Tópicos:
Próximos passos VPS, dedicado ou painel gerenciado para FiveM, SAMP, MTA, Tibia e mais.Hospede seu servidor de jogos com a Hostini →
Esse tutorial foi útil?
Falar no WhatsApp