Como migrar SA-MP para Open.MP passo a passo sem perder gamemode

Guia técnico pra migrar servidor SA-MP 0.3.7 R2/R3 pra Open.MP preservando gamemode, plugins, filterscripts e jogadores ativos.

Open.MP (open multiplayer) é a continuação open-source do SA-MP, mantida pela comunidade após o projeto original ficar estagnado. O servidor foi reescrito em C++ moderno, com foco em compatibilidade total com gamemodes Pawn existentes — você não precisa reescrever uma linha do seu gamemode pra rodar nele.

Este tutorial é pra quem opera um servidor SA-MP 0.3.7 R2 ou R3 em produção e quer migrar pra Open.MP sem perder gamemode compilado, plugins carregados, filterscripts ou base de jogadores. O processo leva entre 30 e 60 minutos dependendo do tamanho do projeto, e a janela de downtime efetivo fica em torno de 5 minutos se você seguir a ordem certa.

Vamos cobrir a migração ponta a ponta em Linux (Ubuntu 22.04 LTS ou Debian 12). Windows segue lógica equivalente, mas com paths e binários diferentes.

Pré-requisitos

Antes de iniciar, verifique que você tem acesso administrativo ao servidor e backup recente do diretório do SA-MP.

Pré-requisitos

Servidor Linux Ubuntu 22.04 LTS ou Debian 12, acesso root ou sudo, gamemode .amx compilado e funcionando no SA-MP 0.3.7 R2 ou R3, e janela de manutenção de 30-60 minutos. Tenha o IP e a porta atual em mãos.

Versão Open.MP 1.4.0.2779 ou superior
Porta UDP 7777 (padrão SA-MP)
Arquitetura x86_64 (linux64)
Dependências libc6, libstdc++6

A migração assume que seu gamemode já está estável. Se o servidor está com crashes recorrentes no SA-MP original, resolva isso primeiro — Open.MP não corrige bugs do seu código Pawn.

Etapa 1 — Backup completo do servidor atual

Antes de qualquer download, snapshot do estado atual. Se algo der errado na migração, você restaura em segundos.

01

Pare o processo do SA-MP em execução:

sudo systemctl stop samp-server

Se você não usa systemd, mate o processo direto: pkill -f samp03svr. Confirme com ps aux | grep samp que nada está rodando.

02

Crie o arquivo de backup com timestamp:

cd /opt
sudo tar -czf samp-backup-$(date +%Y%m%d-%H%M).tar.gz samp/

O tarball inclui gamemodes, filterscripts, plugins, scriptfiles, server.cfg, log.txt e qualquer banco de dados SQLite. Mova esse arquivo pra fora do servidor (rsync, scp) antes de prosseguir.

03

Liste explicitamente o que você tem instalado pra referência futura:

ls -lh /opt/samp/plugins/ > /tmp/plugins-list.txt
ls -lh /opt/samp/filterscripts/ > /tmp/filterscripts-list.txt
cat /opt/samp/server.cfg > /tmp/server-cfg-original.txt

Esses três arquivos vão te ajudar a auditar a migração depois — você confere que tudo voltou.

Etapa 2 — Download e extração do Open.MP

O Open.MP é distribuído como tarball estático no GitHub oficial do projeto.

04

Baixe a release estável mais recente:

cd /opt
sudo wget https://github.com/openmultiplayer/open.mp/releases/download/v1.4.0.2779/open.mp-linux-x86_64.tar.gz

Confira o checksum SHA256 publicado na página de release antes de extrair — release legítima sempre vem com hash assinado.

05

Extraia em diretório separado, sem sobrescrever o SA-MP atual:

sudo mkdir omp
sudo tar -xzf open.mp-linux-x86_64.tar.gz -C omp/ --strip-components=1
sudo chown -R samp:samp omp/

Mantenha /opt/samp/ e /opt/omp/ lado a lado. Isso permite rollback imediato se algo falhar.

Etapa 3 — Migração de assets

Aqui você copia gamemode, plugins, filterscripts e scriptfiles do diretório SA-MP pro Open.MP. A estrutura é idêntica.

06

Copie os assets preservando permissões:

sudo cp -av /opt/samp/gamemodes/* /opt/omp/gamemodes/
sudo cp -av /opt/samp/filterscripts/* /opt/omp/filterscripts/
sudo cp -av /opt/samp/scriptfiles/* /opt/omp/scriptfiles/

-av mantém timestamps, permissões e symlinks. Confira com ls -lh /opt/omp/gamemodes/ que o .amx principal está lá com tamanho idêntico ao original.

07

Plugins precisam atenção especial — algumas versões antigas não rodam no Open.MP:

ls /opt/samp/plugins/

Pra cada plugin listado, verifique na página oficial dele se a versão atual suporta Open.MP. Os mais comuns (sscanf, streamer, MySQL R41+, Pawn.RakNet) têm builds compatíveis publicadas. Baixe as versões Open.MP-ready e coloque em /opt/omp/components/ — note que o diretório mudou de nome.

Plugins legados

Se você usa plugin que não tem release pra Open.MP em 2026 (foi abandonado), avalie alternativas antes de migrar. Forçar plugin SA-MP antigo no Open.MP causa crash silencioso na inicialização — o servidor sobe mas trava em poucos minutos.

Etapa 4 — Conversão do server.cfg para config.json

O Open.MP substituiu o formato texto plano por JSON estruturado. Felizmente, ele faz a conversão automática.

08

Copie o server.cfg pro diretório Open.MP:

sudo cp /opt/samp/server.cfg /opt/omp/

Não copie o config.json default — ele tem que ser gerado a partir do seu cfg pra preservar suas configurações.

09

Rode o servidor uma vez em modo conversor:

cd /opt/omp
sudo -u samp ./omp-server

Na primeira execução, ele detecta o server.cfg, lê todas as chaves, gera o config.json equivalente e encerra. Confira com cat config.json que o arquivo tem suas configurações (rcon_password, hostname, gamemodes, plugins, maxplayers).

10

Renomeie filterscripts e plugins dentro do config.json se necessário:

sudo nano config.json

A chave pawn.legacy_plugins aceita lista de plugins .so. A chave pawn.main_scripts define gamemodes (formato "nomedogamemode 1" igual SA-MP). Verifique que ambas refletem o que tava no server.cfg original.

Validação JSON

Rode python3 -m json.tool config.json pra validar a sintaxe antes de subir o servidor. JSON quebrado causa erro de boot sem mensagem clara.

Etapa 5 — Boot, validação e cutover

Com tudo migrado, hora de subir o Open.MP e validar que ele responde igual ao SA-MP.

11

Suba o Open.MP em foreground primeiro, pra ver o log direto:

cd /opt/omp
sudo -u samp ./omp-server

Você deve ver linhas de inicialização: versão, componentes carregados, plugins, gamemodes, e por fim Server is ready to accept connections. Erros de plugin aparecem aqui imediatamente.

12

Em outro terminal, teste conexão com cliente SA-MP normal apontando pro IP:7777. Faça login, ande pelo mapa, dispare comandos do seu gamemode. Se tudo responde igual ao SA-MP original, a migração está validada.

13

Crie unit systemd permanente pra Open.MP:

sudo nano /etc/systemd/system/omp-server.service

Conteúdo:

[Unit]
Description=Open.MP Server
After=network.target

[Service]
Type=simple
User=samp
WorkingDirectory=/opt/omp
ExecStart=/opt/omp/omp-server
Restart=on-failure
RestartSec=5

[Install]
WantedBy=multi-user.target

Ative com sudo systemctl daemon-reload && sudo systemctl enable --now omp-server. Desative a unit antiga do SA-MP com sudo systemctl disable samp-server.

Verificação

O servidor está oficialmente migrado quando todos os pontos abaixo estiverem confirmados:

systemctl status omp-server
ss -ulnp | grep 7777
tail -f /opt/omp/logs/server.log

O primeiro comando mostra unit ativa e PID. O segundo confirma que a porta UDP 7777 está escutando no processo Open.MP. O terceiro acompanha o log em tempo real — jogadores conectando aparecem como [connect] com IP e nick.

Conecte-se com o cliente SA-MP usando o mesmo IP e porta de antes. Se a tela de seleção de skin aparece, o spawn funciona e os comandos do gamemode respondem, a migração está completa.

Resolução de problemas

Servidor não inicia e sai sem mensagem

Quase sempre é plugin incompatível. Mova todos os plugins pra fora temporariamente (sudo mv /opt/omp/components/* /tmp/), suba o servidor vazio e reintroduza um plugin de cada vez até identificar o culpado.

Erro “Failed to load gamemode”

O .amx foi compilado com uma versão muito antiga do compilador Pawn (pré-3.2). Recompile com o compilador community (3.10.10+) usando o include qawno do open.mp. Não mexa no código — só recompile com headers atualizados.

Players conectam mas levam kick imediato

Verifique se rcon_password no config.json é diferente do default. Open.MP recusa conexão se rcon_password estiver vazio ou igual a “changeme”. Defina uma senha forte e reinicie.

Rollback de emergência

Se algo crítico falhar em produção, pare o Open.MP (sudo systemctl stop omp-server), reative a unit do SA-MP (sudo systemctl start samp-server) e os jogadores reconectam no servidor antigo em segundos. Os dois binários compartilham a porta 7777, mas só um pode rodar por vez.

Próximos passos

Com Open.MP rodando, alguns próximos passos naturais:

  • Recompilar o gamemode com o compilador community 3.10.10+ pra acessar as nativas novas de Open.MP (sincronização melhor de veículos, callbacks adicionais).
  • Migrar plugins legacy pras versões Open.MP-ready mantidas oficialmente no GitHub do projeto.
  • Configurar monitoramento de uptime e tickrate pra acompanhar performance comparada ao SA-MP original.
  • Se você ainda não tem firewall configurado, limite a porta 7777 só pro tráfego UDP esperado e bloqueie scans.

Se você está rodando o servidor em produção e quer infraestrutura otimizada pra latência baixa de jogadores brasileiros, os planos de hospedagem de jogos da Hostini entregam servidores com proteção contra ataques de negação de serviço e tickrate estável em locações no Brasil.

Perguntas frequentes

Open.MP é compatível com gamemodes Pawn do SA-MP 0.3.7?

Sim. Open.MP foi desenhado pra rodar o gamemode .amd compilado pro SA-MP 0.3.7 R2/R3 sem alteração. A compatibilidade cobre nativas, callbacks e o modelo de sincronização. Gamemodes que dependem de exploits do binário original podem precisar de ajuste pontual.

Preciso recompilar o gamemode com um compilador novo?

Não obrigatoriamente. O .amx existente continua rodando. Recompilar com o compilador community (3.10.10+) é recomendado pra ganhar acesso às nativas novas do Open.MP e a otimizações, mas você pode migrar primeiro e recompilar depois com calma.

Os plugins do SA-MP funcionam no Open.MP?

A maioria dos plugins populares (sscanf, MySQL R41+, streamer, YSF/FCNPC nas versões open.mp) funciona sem alteração. Plugins muito antigos ou específicos do binário SA-MP podem precisar de versão atualizada — verifique o repositório do plugin antes.

Posso manter o mesmo IP e porta pros jogadores conectarem?

Sim. Open.MP usa o mesmo protocolo de rede do SA-MP 0.3.7, então jogadores conectam com o cliente SA-MP normal no IP:porta de sempre. Nenhuma reconfiguração no lado do cliente.

O que muda no arquivo de configuração?

O server.cfg em texto plano é substituído pelo config.json estruturado. O Open.MP fornece um conversor automático na primeira execução que lê o server.cfg antigo e gera o config.json equivalente. Algumas chaves mudaram de nome.

Open.MP tem suporte a clientes além do SA-MP original?

Hoje o cliente oficial continua sendo o SA-MP 0.3.7. O projeto open.mp tem cliente próprio em desenvolvimento mas ainda não é o caminho recomendado pra produção. A migração do servidor não exige nada do lado do jogador.

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