Cómo migrar SA-MP a Open.MP paso a paso sin perder el gamemode

Guía técnica para migrar un servidor SA-MP 0.3.7 R2/R3 a Open.MP conservando gamemode, plugins, filterscripts y jugadores activos.

Open.MP (open multiplayer) es la continuación open-source de SA-MP, mantenida por la comunidad después de que el proyecto original quedara estancado. El servidor fue reescrito en C++ moderno, con foco en compatibilidad total con los gamemodes Pawn existentes — no necesitas reescribir una sola línea de tu gamemode para ejecutarlo.

Este tutorial es para quien opera un servidor SA-MP 0.3.7 R2 o R3 en producción y quiere migrar a Open.MP sin perder el gamemode compilado, los plugins cargados, los filterscripts ni la base de jugadores. El proceso lleva entre 30 y 60 minutos según el tamaño del proyecto, y la ventana de downtime efectivo queda en torno a 5 minutos si sigues el orden correcto.

Vamos a cubrir la migración de punta a punta en Linux (Ubuntu 22.04 LTS o Debian 12). Windows sigue una lógica equivalente, pero con rutas y binarios diferentes.

Requisitos previos

Antes de empezar, verifica que tienes acceso administrativo al servidor y un respaldo reciente del directorio de SA-MP.

Requisitos previos

Servidor Linux Ubuntu 22.04 LTS o Debian 12, acceso root o sudo, gamemode .amx compilado y funcionando en SA-MP 0.3.7 R2 o R3, y una ventana de mantenimiento de 30-60 minutos. Ten la IP y el puerto actuales a mano.

Versión Open.MP 1.4.0.2779 o superior
Puerto UDP 7777 (predeterminado SA-MP)
Arquitectura x86_64 (linux64)
Dependencias libc6, libstdc++6

La migración asume que tu gamemode ya es estable. Si el servidor tiene crashes recurrentes en el SA-MP original, resuelve eso primero — Open.MP no corrige los bugs de tu código Pawn.

Etapa 1 — Respaldo completo del servidor actual

Antes de cualquier descarga, haz un snapshot del estado actual. Si algo sale mal en la migración, restauras en segundos.

01

Detén el proceso de SA-MP en ejecución:

sudo systemctl stop samp-server

Si no usas systemd, mata el proceso directo: pkill -f samp03svr. Confirma con ps aux | grep samp que no haya nada corriendo.

02

Crea el archivo de respaldo con timestamp:

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

El tarball incluye gamemodes, filterscripts, plugins, scriptfiles, server.cfg, log.txt y cualquier base de datos SQLite. Mueve ese archivo fuera del servidor (rsync, scp) antes de continuar.

03

Lista explícitamente lo que tienes instalado como referencia 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

Estos tres archivos te van a ayudar a auditar la migración después — confirmas que todo volvió.

Etapa 2 — Descarga y extracción de Open.MP

Open.MP se distribuye como un tarball estático en el GitHub oficial del proyecto.

04

Descarga la release estable más reciente:

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

Verifica el checksum SHA256 publicado en la página de release antes de extraer — una release legítima siempre viene con hash firmado.

05

Extrae en un directorio separado, sin sobrescribir el SA-MP actual:

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

Mantén /opt/samp/ y /opt/omp/ lado a lado. Esto permite un rollback inmediato si algo falla.

Etapa 3 — Migración de assets

Aquí copias gamemode, plugins, filterscripts y scriptfiles del directorio de SA-MP al de Open.MP. La estructura es idéntica.

06

Copia los assets preservando permisos:

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 mantiene timestamps, permisos y symlinks. Verifica con ls -lh /opt/omp/gamemodes/ que el .amx principal esté ahí con el mismo tamaño que el original.

07

Los plugins requieren atención especial — algunas versiones antiguas no corren en Open.MP:

ls /opt/samp/plugins/

Por cada plugin listado, verifica en su página oficial si la versión actual soporta Open.MP. Los más comunes (sscanf, streamer, MySQL R41+, Pawn.RakNet) tienen builds compatibles publicadas. Descarga las versiones Open.MP-ready y colócalas en /opt/omp/components/ — fíjate que el directorio cambió de nombre.

Plugins legados

Si usas un plugin que no tiene release para Open.MP en 2026 (fue abandonado), evalúa alternativas antes de migrar. Forzar un plugin SA-MP antiguo en Open.MP causa un crash silencioso en el arranque — el servidor sube pero se cuelga en pocos minutos.

Etapa 4 — Conversión de server.cfg a config.json

Open.MP reemplazó el formato texto plano por JSON estructurado. Por suerte, hace la conversión automática.

08

Copia el server.cfg al directorio de Open.MP:

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

No copies el config.json por defecto — debe generarse a partir de tu cfg para preservar tus configuraciones.

09

Ejecuta el servidor una vez en modo conversor:

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

En la primera ejecución, detecta el server.cfg, lee todas las claves, genera el config.json equivalente y termina. Verifica con cat config.json que el archivo tenga tus configuraciones (rcon_password, hostname, gamemodes, plugins, maxplayers).

10

Renombra filterscripts y plugins dentro del config.json si es necesario:

sudo nano config.json

La clave pawn.legacy_plugins acepta lista de plugins .so. La clave pawn.main_scripts define gamemodes (formato "nombredelgamemode 1" igual que SA-MP). Verifica que ambas reflejen lo que estaba en el server.cfg original.

Validación JSON

Ejecuta python3 -m json.tool config.json para validar la sintaxis antes de subir el servidor. Un JSON roto causa error de boot sin mensaje claro.

Etapa 5 — Boot, validación y cutover

Con todo migrado, llega el momento de subir Open.MP y validar que responda igual que SA-MP.

11

Sube Open.MP en foreground primero, para ver el log en directo:

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

Debes ver líneas de inicialización: versión, componentes cargados, plugins, gamemodes, y por fin Server is ready to accept connections. Los errores de plugin aparecen aquí de inmediato.

12

En otra terminal, prueba la conexión con un cliente SA-MP normal apuntando a IP:7777. Haz login, recorre el mapa, ejecuta comandos de tu gamemode. Si todo responde igual que en SA-MP original, la migración está validada.

13

Crea una unit de systemd permanente para Open.MP:

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

Contenido:

[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

Actívala con sudo systemctl daemon-reload && sudo systemctl enable --now omp-server. Desactiva la unit antigua de SA-MP con sudo systemctl disable samp-server.

Verificación

El servidor está oficialmente migrado cuando todos los puntos siguientes estén confirmados:

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

El primer comando muestra la unit activa y el PID. El segundo confirma que el puerto UDP 7777 está escuchando en el proceso de Open.MP. El tercero sigue el log en tiempo real — los jugadores conectándose aparecen como [connect] con IP y nick.

Conéctate con el cliente SA-MP usando la misma IP y puerto que antes. Si aparece la pantalla de selección de skin, el spawn funciona y los comandos del gamemode responden, la migración está completa.

Resolución de problemas

El servidor no arranca y sale sin mensaje

Casi siempre es un plugin incompatible. Mueve todos los plugins fuera temporalmente (sudo mv /opt/omp/components/* /tmp/), sube el servidor vacío y reintroduce un plugin a la vez hasta identificar el culpable.

Error “Failed to load gamemode”

El .amx fue compilado con una versión muy antigua del compilador Pawn (pre-3.2). Recompila con el compilador de la comunidad (3.10.10+) usando el include qawno de open.mp. No toques el código — solo recompila con los headers actualizados.

Los jugadores conectan pero reciben kick inmediato

Verifica que rcon_password en config.json sea diferente del default. Open.MP rechaza la conexión si rcon_password está vacío o es igual a “changeme”. Define una contraseña fuerte y reinicia.

Rollback de emergencia

Si algo crítico falla en producción, detén Open.MP (sudo systemctl stop omp-server), reactiva la unit de SA-MP (sudo systemctl start samp-server) y los jugadores reconectan al servidor antiguo en segundos. Los dos binarios comparten el puerto 7777, pero solo uno puede correr a la vez.

Próximos pasos

Con Open.MP corriendo, algunos próximos pasos naturales:

  • Recompilar el gamemode con el compilador de la comunidad 3.10.10+ para acceder a las natives nuevas de Open.MP (mejor sincronización de vehículos, callbacks adicionales).
  • Migrar plugins legacy a las versiones Open.MP-ready mantenidas oficialmente en el GitHub del proyecto.
  • Configurar monitoreo de uptime y tickrate para acompañar el rendimiento comparado con el SA-MP original.
  • Si todavía no tienes firewall configurado, limita el puerto 7777 solo al tráfico UDP esperado y bloquea los scans.

Si estás corriendo el servidor en producción y quieres infraestructura optimizada para latencia baja de jugadores en Latinoamérica, los planes de hospedaje de juegos de Hostini entregan servidores con protección contra ataques de denegación de servicio y tickrate estable en ubicaciones en Brasil.

Preguntas frecuentes

¿Open.MP es compatible con los gamemodes Pawn de SA-MP 0.3.7?

Sí. Open.MP fue diseñado para ejecutar el gamemode .amx compilado para SA-MP 0.3.7 R2/R3 sin modificaciones. La compatibilidad cubre las natives, los callbacks y el modelo de sincronización. Los gamemodes que dependen de exploits del binario original pueden requerir algún ajuste puntual.

¿Necesito recompilar el gamemode con un compilador nuevo?

No es obligatorio. El .amx existente sigue funcionando. Recompilar con el compilador de la comunidad (3.10.10+) es recomendable para acceder a las natives nuevas de Open.MP y a sus optimizaciones, pero puedes migrar primero y recompilar después con calma.

¿Los plugins de SA-MP funcionan en Open.MP?

La mayoría de los plugins populares (sscanf, MySQL R41+, streamer, YSF/FCNPC en sus versiones open.mp) funcionan sin cambios. Los plugins muy antiguos o específicos del binario SA-MP pueden necesitar una versión actualizada — verifica el repositorio del plugin antes.

¿Puedo mantener la misma IP y puerto para que los jugadores se conecten?

Sí. Open.MP usa el mismo protocolo de red que SA-MP 0.3.7, así que los jugadores se conectan con el cliente SA-MP normal a la IP:puerto de siempre. No hay reconfiguración del lado del cliente.

¿Qué cambia en el archivo de configuración?

El server.cfg en texto plano se reemplaza por el config.json estructurado. Open.MP incluye un conversor automático en la primera ejecución que lee el server.cfg antiguo y genera el config.json equivalente. Algunas claves cambiaron de nombre.

¿Open.MP tiene soporte para clientes además del SA-MP original?

Hoy el cliente oficial sigue siendo SA-MP 0.3.7. El proyecto open.mp tiene un cliente propio en desarrollo, pero aún no es el camino recomendado para producción. La migración del servidor no requiere nada del lado del jugador.

Temas:
Próximos pasos VPS, dedicado o panel gestionado para FiveM, SAMP, MTA, Tibia y más.Aloja tu servidor de juegos con Hostini →
¿Te resultó útil este tutorial?
Hablar por WhatsApp