Cómo configurar el server.cfg de SA-MP línea por línea

Aprende qué hace cada directiva del server.cfg de SA-MP, valores recomendados y cómo ajustar slots, RCON, plugins, gamemode y puertos con seguridad.

El server.cfg es el archivo de configuración principal del servidor SA-MP. Se ubica en la raíz de la carpeta del servidor, junto al ejecutable samp03svr (Linux) o samp-server.exe (Windows), y se lee únicamente al arrancar. Cualquier cambio exige reiniciar el servidor para que tenga efecto.

La mayoría de los owners nuevos copia un server.cfg listo de internet sin entender qué hace cada línea — y después sufre con el servidor que no aparece en el masterlist, RCON expuesto, plugins rotos o slots mal configurados. Esta guía explica cada directiva relevante, muestra valores recomendados y señala las trampas más comunes. Tiempo estimado de lectura y ajuste: 15 a 20 minutos.

La persona destinataria es alguien que acaba de descargar el paquete SA-MP server, está montando su primer servidor (RP, freeroam, deathmatch o stunt) y quiere entender lo que está editando antes de llevarlo a producción.

Prerrequisitos

Antes de empezar

Necesitas el paquete SA-MP server 0.3.7-R3 (o R4) ya extraído, acceso al shell del servidor (SSH en Linux o Remote Desktop en Windows) y un editor de texto sin formato — nano, vim, VS Code o Notepad++. Editores como Word o WordPad corrompen el encoding y rompen el arranque.

Archivo server.cfg
Ubicación raíz del servidor SA-MP
Encoding ANSI / Windows-1252
Puerto UDP por defecto 7777

La codificación importa: SA-MP 0.3.7 lee el archivo en ANSI/Windows-1252. Si lo guardas como UTF-8 con BOM, el servidor puede fallar en la primera línea (echo) o interpretar caracteres acentuados de forma incorrecta en el hostname.

Estructura básica del server.cfg

El archivo es una lista plana de pares directiva valor, uno por línea, separados por espacio (no =). Los comentarios comienzan con // o # en algunos builds, pero lo más seguro es simplemente quitar las líneas que no uses. El orden de las directivas no importa para el parser, pero conviene agruparlas por contexto: identificación, red, seguridad, contenido, plugins.

Un server.cfg mínimo funcional tiene unas 12 líneas. Los ejemplos que vienen con el paquete oficial traen más de 20 directivas — varias de ellas opcionales. Vamos a cubrir las esenciales.

Directivas de identificación y red

Estas líneas controlan cómo se presenta el servidor en la lista pública y qué puerto UDP escucha.

01

Define el nombre público del servidor con hostname:

hostname Mi Servidor RP España [ES]

El hostname es lo que aparece en el SA-MP server browser. Límite práctico: 50 caracteres visibles. Usa ASCII puro siempre que sea posible — los acentos pueden renderizarse como ? en el cliente según el locale del jugador.

02

Configura el puerto UDP:

port 7777

El puerto por defecto es 7777. Si vas a correr múltiples servidores en la misma IP, incrementa: 7778, 7779. Confirma que el puerto esté liberado en el firewall en UDP (no TCP — SA-MP es estrictamente UDP).

03

Define los slots disponibles:

maxplayers 100

maxplayers acepta hasta 1000 en SA-MP 0.3.7, pero el número real depende del gamemode y de la CPU. Valores típicos: 50 para RP de calidad, 100-200 para freeroam, 500+ exige una optimización cuidadosa de timers y streamers.

04

Registra el servidor en el masterlist público:

announce 1

Con announce 1, el servidor reporta su estado al masterlist de SA-MP cada 2 minutos. Usa 0 si es un servidor privado o de prueba — sigue accesible por IP directa, pero no aparece en la búsqueda pública.

NAT y puerto UDP

Si el servidor está detrás de NAT (casa, oficina), necesitas port forwarding UDP del puerto 7777 del router hacia la IP interna de la máquina. Sin eso, los jugadores externos no logran conectarse y el masterlist no valida el servidor.

Directivas de seguridad y administración

Estas controlan el acceso administrativo y la protección contra abusos.

05

Define la contraseña del RCON:

rcon_password J8kQ3pX9Lm2nR7vF

RCON (Remote Console) permite ejecutar comandos administrativos en tiempo de ejecución: kick, ban, reload del gamemode. Una contraseña débil equivale a dejar el servidor abierto. Genera 16+ caracteres aleatorios. Nunca subas el server.cfg a un repositorio público con la contraseña real.

06

Decide si el RCON remoto queda habilitado:

rcon 1

rcon 1 permite login vía comando /rcon login <contraseña> desde cualquier cliente conectado. rcon 0 lo deshabilita — aún puedes usar RCON desde la consola del servidor. Para producción, deshabilitarlo es más seguro.

07

Configura la protección opcional contra spam de queries:

query 1

query 1 (por defecto) responde a los pings del server browser. query 0 oculta el servidor del browser pero lo mantiene jugable por IP. Útil para servidores de desarrollo o eventos privados.

Nunca expongas RCON sin contraseña fuerte

Hay casos documentados de servidores SA-MP comprometidos por fuerza bruta en el RCON. Si usas la contraseña changeme, admin, 123456 o similares, el servidor puede ser tomado en minutos. Trata rcon_password como tratarías una contraseña root de SSH.

Directivas de contenido: gamemode, filterscripts y plugins

Aquí es donde el servidor decide qué ejecutar realmente.

08

Define el gamemode principal:

gamemode0 grandlarc 1

La sintaxis es gamemodeN <nombre-sin-extension> <repeticiones>. El nombre refiere a un archivo .amx en gamemodes/. El segundo número indica cuántas veces se ejecuta ese modo antes de avanzar al siguiente. Usa 1 si solo tienes un gamemode.

Para rotación de modos:

gamemode0 dm 2
gamemode1 race 1
gamemode2 derby 1

Aquí el servidor corre dm dos veces, luego race una, luego derby una, y vuelve a dm.

09

Lista los filterscripts (scripts auxiliares):

filterscripts gl_actions gl_property gl_mapicon

Los filterscripts viven en filterscripts/ como .amx. Son módulos opcionales cargados en paralelo al gamemode. Separados por espacios. Úsalos para funcionalidades aisladas: comandos administrativos, sistema de propiedades, anti-cheat básico.

10

Carga los plugins nativos:

plugins streamer mysql sscanf

En Linux, los plugins son .so en plugins/. En Windows, .dll. No incluyas la extensión en la línea. Plugins típicos: streamer (objetos/pickups dinámicos), mysql (base de datos), sscanf (parsing de parámetros), crashdetect (debug de errores en runtime).

El orden de carga importa

Los plugins se cargan en el orden listado. Algunos dependen de otros (ej.: crashdetect necesita cargarse antes que streamer en algunas versiones). Si el servidor crashea al arrancar con failed to load plugin, prueba reordenar antes de asumir que el plugin está corrupto.

Directivas opcionales comunes

Líneas que aparecen en muchos server.cfg pero que no todo servidor necesita.

DirectivaFunciónValor por defectoCuándo ajustar
maxnpcSlots para bots controlados por el servidor0Aumentar solo si el gamemode usa NPCs
lanmodeCorre en modo LAN (sin masterlist)01 solo para red local interna
passwordContraseña para entrar al servidorvacíoServidor privado/whitelist
weburlURL exibida en el server infovacíoSitio/discord de la comunidad
mapnameNombre del mapa exhibido”San Andreas”Personalizar para freeroam temático
languageIdioma mostrado en el browser”English""Spanish”, “Portuguese” etc.
chatloggingGuarda log de chat en archivo10 para reducir I/O en servidores grandes
timestampTimestamp en las entradas del log1Dejar en 1 siempre
logqueriesLog de queries del browser01 solo para depuración

Verificación tras editar

Después de guardar el server.cfg, reinicia el servidor y lee el log de arranque.

11

Inicia el servidor y observa la salida:

./samp03svr

En Windows:

samp-server.exe
12

Revisa el log y busca estas líneas:

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

Si aparece Failed (plugins/X.so) o Failed.amx en algún gamemode/filterscript, la configuración tiene una referencia a un archivo inexistente — revisa nombres y rutas.

Test de conectividad externa

Usa el sitio samp-monitor.com o similar para confirmar que el servidor sea visible desde el exterior. Si el monitor no logra contactar, el problema es el firewall o el NAT, no el server.cfg.

Resolución de problemas comunes

El servidor arranca pero no aparece en el masterlist

Verifica announce 1, confirma que el puerto UDP 7777 esté abierto en el firewall y que el servidor no esté detrás de NAT sin port forwarding. El masterlist hace una query de validación externa — si falla, el servidor es removido de la lista en unos 10 minutos.

”Server failed to initialize” al arrancar

Casi siempre es un problema de encoding (server.cfg guardado como UTF-8 con BOM) o un caracter inválido en el hostname. Regrábalo en ANSI y usa solo ASCII en el nombre.

Los plugins cargan pero las funciones nativas dan “undefined symbol”

Versión del plugin incompatible con el gamemode. Los plugins compilados para 0.3.7 no funcionan en 0.3.DL y viceversa. Confirma la versión del samp03svr (./samp03svr --version) y descarga el plugin correspondiente.

RCON acepta los comandos pero no hacen efecto

El usuario hizo /rcon login pero no está ejecutando los comandos con el prefijo /rcon. Los comandos RCON siempre exigen el prefijo: /rcon kick 5, no solo kick 5.

Próximos pasos

Con el server.cfg calibrado, vale la pena avanzar en algunas direcciones:

  • Versionado: pon el server.cfg (sin rcon_password) en git, con la contraseña en un archivo separado leído por un script wrapper. Eso permite rastrear cambios y hacer rollback.
  • Monitoreo de uptime: configura un monitor externo (UptimeRobot o similar) con check UDP en el puerto 7777 — alerta cuando el servidor se cae.
  • Backup automático de gamemode y scriptfiles: SA-MP guarda el progreso de los jugadores en scriptfiles/. Un cron diario con tar lo resuelve.
  • Optimización del streamer: la mayor fuente de lag en SA-MP es un objeto/pickup mal optimizado. Ajusta Streamer_TickRate y el tile size según el número real de jugadores.

Si estás poniendo el servidor en producción con jugadores reales, un hosting dedicado para SA-MP de Hostini ya viene con el puerto UDP 7777 liberado por defecto, protección DDoS específica para protocolos de juegos y baja latencia hacia Latinoamérica — lo que evita que los jugadores se caigan en ráfagas de ataques UDP comunes en esa comunidad.

Preguntas frecuentes

¿Cuál es la diferencia entre gamemode0, gamemode1 y gamemode15?

Son slots de rotación de gamemodes. El server.cfg permite hasta 15 entradas (gamemode0 a gamemode14). Cuando el gamemode actual termina o recibe GameModeExit(), el servidor carga el siguiente de la lista en orden circular. Si solo usas un modo, deja únicamente la línea gamemode0.

¿Por qué mi servidor no aparece en la lista pública aunque tengo announce 1?

La directiva announce 1 solo registra el servidor en el masterlist de SA-MP. Si el servidor está detrás de NAT sin port forwarding UDP en el puerto 7777, o si el puerto está bloqueado por firewall, el masterlist no logra validar y el servidor queda omitido. Verifica también que el servidor no esté detrás de Cloudflare o proxy TCP — SA-MP solo funciona con UDP directo.

¿Puedo correr dos servidores SA-MP en la misma IP?

Sí, siempre que cada uno use un puerto UDP distinto. Cambia la directiva port en el segundo server.cfg a 7778, 7779 u otro puerto libre, y libera ese puerto en el firewall. Recuerda que el puerto también debe estar disponible para conexiones UDP entrantes, no solo salientes.

¿Es seguro usar la contraseña rcon_password por defecto 'changeme'?

No. Mantener 'changeme' o cualquier contraseña simple expone el servidor a tomas de control remoto — cualquier persona puede ejecutar comandos administrativos vía RCON. Usa como mínimo 16 caracteres aleatorios y considera deshabilitar RCON remoto (rcon 0) si gestionas el servidor solo desde la consola local.

¿Cuál es la función real de maxnpc y cuándo aumentar ese valor?

maxnpc define cuántos bots controlados por el servidor (NPCs) pueden existir simultáneamente. Cada NPC consume un slot y algo de CPU. Auméntalo solo si el gamemode usa NPCs activos (carreras, misiones automatizadas). Para servidores RP convencionales, dejarlo en 0 ahorra recursos.

¿Qué pasa si dejo un plugin .so/.dll listado pero el archivo no existe?

El servidor muestra 'Failed (plugins/X.so): ...' en la consola y continúa la inicialización sin ese plugin. Las funciones nativas del plugin quedan como desconocidas, generando 'undefined symbol' en los gamemodes que dependen de él. Revisa siempre el log de arranque para confirmar que todos los plugins listados se cargaron con éxito.

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