O open.mp herdou a organização do SA-MP, com uma diferença que pega quem vem de lá: a configuração não é mais o server.cfg, é o config.json.
E há uma regra que vale para tudo: o open.mp só carrega o que estiver declarado. Copiar o arquivo para a pasta certa é metade do trabalho; a outra metade é dizer no config.json que ele existe.
Cada coisa na sua pasta
| Pasta | O que vai nela |
|---|---|
gamemodes/ |
O modo de jogo — os .amx |
filterscripts/ |
Scripts avulsos que rodam junto do gamemode |
plugins/ |
Plugins do SA-MP — arquivos .so |
components/ |
Componentes nativos do open.mp |
scriptfiles/ |
Arquivos de dados que os scripts leem e gravam |
Na raiz ficam o omp-server (o executável) e o config.json.
.amxé o que o servidor roda;.pwné o código-fonte. O servidor não compila nada. Se você só tem o.pwn, precisa compilá-lo antes — no Pawno, no qawno ou pelo compilador de linha de comando.
Conectando por SFTP
É SFTP, não FTP. O painel usa SFTP na porta 2022, não o FTP da porta 21. Escolher "FTP" no FileZilla faz a conexão falhar sem explicar o motivo.
Entre em pelican.vitthost.com.br, abra o servidor e copie os dados de SFTP que ele mostra — o endereço depende do nó e o usuário traz o identificador do servidor.
| Campo | Valor |
|---|---|
| Protocolo | SFTP - SSH File Transfer Protocol |
| Host | o que o painel mostrar (nossos nós são node-01.br.vitthost.com.br e node-02.br.vitthost.com.br) |
| Porta | 2022 |
| Usuário | o que o painel mostrar |
| Senha | a mesma do painel |
Enviando um gamemode
- Conecte no SFTP e entre em
gamemodes/. - Envie o
.amx. - Abra o
config.jsonna raiz e declare o gamemode no blocopawn, emmain_scripts:
{
"pawn": {
"main_scripts": ["meu-gamemode 1"]
}
}
O nome vai sem a extensão .amx. O número depois do espaço é o que o SA-MP chamava de gamemode0 nome 1 — quantas vezes aquele modo entra no rodízio.
- Reinicie o servidor pelo painel.
Enviando um filterscript
- Envie o
.amxparafilterscripts/. - Declare no
config.json, emside_scripts:
{
"pawn": {
"main_scripts": ["meu-gamemode 1"],
"side_scripts": ["meu-filterscript"]
}
}
- Reinicie.
Enviando um plugin
Plugin no Linux é um arquivo .so. Se você baixou um .dll, ele é do servidor de Windows e não funciona aqui — procure a versão para Linux na mesma página de download.
- Envie o
.soparaplugins/. - Declare em
legacy_plugins:
{
"pawn": {
"legacy_plugins": ["meu-plugin"]
}
}
- Reinicie.
Componentes nativos do open.mp vão em components/ e não precisam ser declarados — o servidor carrega o que encontra lá.
Quando dá errado
O servidor não sobe e o console fala de script. Leia a mensagem: ela costuma dizer qual arquivo não foi encontrado. Confira se o nome no config.json bate com o do arquivo, sem a extensão, e se respeita maiúsculas e minúsculas — no Linux isso importa.
Plugin não carrega. Três causas, nessa ordem: é .dll em vez de .so; não foi declarado em legacy_plugins; ou falta uma biblioteca do sistema de que ele depende. O console diz qual.
O gamemode sobe mas nada funciona. Confira se o .amx foi compilado com as includes que o código pede. Erro de compilação vira comportamento estranho em tempo de execução.
Servidor não sobe depois de mexer no config.json. É JSON: vírgula sobrando antes de } ou ] quebra o arquivo inteiro. Passe num validador de JSON — leva dez segundos e resolve a maior parte dos casos.
Vindo do SA-MP?
Se você está migrando um servidor de SA-MP, o conteúdo dos scripts continua valendo. O que muda é a configuração: o server.cfg não é mais lido, e tudo o que estava nele precisa ir para o config.json no formato certo.
Os gamemodes e filterscripts de SA-MP rodam, e os plugins antigos entram em legacy_plugins — é para isso que esse campo existe.
Cuidados
- Faça cópia antes de trocar gamemode. A responsabilidade pelo backup é sua, conforme a cláusula 14 dos Termos de Uso.
- Gamemode de fonte desconhecida é código rodando no seu servidor, com acesso ao banco e aos jogadores. Vale olhar o que ele faz antes de ligar.
- Para editar o
config.json, o gerenciador de arquivos do painel é mais seguro que baixar, editar e subir de novo: evita problema de codificação e de quebra de linha em arquivo de texto.
Outros tutoriais desta série:
- Minecraft Java: como enviar plugins e mods
- Minecraft Bedrock: como enviar addons
- MTA:SA: como enviar resources
Veja os planos de open.mp ou abra um ticket.