El servidor dedicado de Garry's Mod se instala con SteamCMD (app 4020, login anónimo) y se inicia con srcds_run (Linux) o srcds.exe (Windows). Cuenta con unos 30 minutos, un VPS o un PC y un token de servidor GSLT, obligatorio según la wiki de Facepunch. Fuente principal: wiki.facepunch.com/gmod.
Instalación paso a paso
Elige la máquina: VPS Linux (Ubuntu/Debian) o PC Windows; la carga depende sobre todo de los addons y el modo de juego.
Crea un usuario no root (steam) e instala SteamCMD y las bibliotecas de 32 bits.
Descarga el servidor: app_update 4020 validate con login anónimo.
Crea un token GSLT (AppID 4000) en steamcommunity.com/dev/managegameservers.
Genera la línea de lanzamiento con la herramienta «Línea de lanzamiento de Garry's Mod» e inicia srcds_run.
Configura garrysmod/cfg/server.cfg con la herramienta «Generador de server.cfg para Garry's Mod».
Añade tus addons con una colección Workshop (+host_workshop_collection).
Abre los puertos (27015 UDP/TCP como mínimo) en ufw, en el proveedor y en el router.
Prueba en local (connect 127.0.0.1 en la consola del juego) y luego desde otra conexión.
Crea un servicio systemd y programa actualizaciones y copias de seguridad.
Requisitos previos
- Sistema: Linux (Ubuntu/Debian) o Windows. La wiki de Facepunch da los comandos de Windows y Linux.
- Recursos: la wiki no fija mínimos. Parte de 2 vCPU, 4 GB de RAM y varios GB de disco, y ajusta según tus addons y jugadores (no documentado oficialmente).
- Cuentas: una cuenta de Steam para el token GSLT (AppID 4000); el servidor se instala con login anónimo.
Instalación local en Windows
Tras descomprimir SteamCMD en C:\steamcmd, instala el servidor y ejecuta srcds.exe (ejemplo de la wiki de Facepunch). Después prueba con connect 127.0.0.1 en la consola del juego.
cd C:\steamcmd
steamcmd +force_install_dir C:\gmodds +login anonymous +app_update 4020 validate +quit
cd C:\gmodds
srcds.exe -console -game garrysmod +maxplayers 20 +gamemode sandbox +map gm_construct +sv_setsteamaccount YOUR_GSLT_TOKENVPS Linux: usuario y dependencias
El servidor Source es un programa de 32 bits: activa la arquitectura i386 e instala las bibliotecas de 32 bits. Los paquetes vienen de la wiki de Team Fortress (mismo motor); los nombres pueden variar según la distribución.
sudo adduser steam
sudo dpkg --add-architecture i386
sudo apt update
sudo apt install -y lib32gcc-s1 lib32stdc++6 lib32z1 steamcmd
su - steamVPS Linux: instalación y primer inicio
Comando de instalación en Linux de la wiki de Facepunch y luego inicio con srcds_run. La página no detalla los puertos ni la ubicación exacta de server.cfg; se aplican los valores estándar de Source (ver más abajo).
steamcmd +login anonymous +force_install_dir /home/steam/gmodds +app_update 4020 validate +quit
cd /home/steam/gmodds
./srcds_run -game garrysmod -console +maxplayers 32 +gamemode sandbox +map gm_construct +sv_setsteamaccount YOUR_GSLT_TOKENWorkshop y token GSLT
Según la wiki de Facepunch, +sv_setsteamaccount es obligatorio (sin él se penaliza la posición del servidor) y +host_workshop_collection añade los addons de una colección pública o no listada, subcolecciones incluidas. host_workshop_autoupdate 0 detiene las actualizaciones automáticas pero puede impedir que entren jugadores si la versión del mapa está desfasada. La wiki menciona también un nuevo formato cfg/srcds_workshop_ids.txt (versión 2026.09.22 o posterior): consulta su página «Workshop for Dedicated Servers». Para descargas en el cliente, mira la herramienta «Gestor de colección Workshop».
./srcds_run -game garrysmod -console +maxplayers 32 +gamemode sandbox +map gm_construct \
+host_workshop_collection 123456789 \
+sv_setsteamaccount YOUR_GSLT_TOKENPuertos a abrir y cortafuegos Linux (ufw)
Estos puertos son los valores estándar de los servidores Source (la página consultada de la wiki de Facepunch no los lista). Para cambiar el puerto de juego usa -port N en la línea de lanzamiento. Los addons Workshop se descargan vía Steam: no se documenta ningún puerto extra para el jugador.
Abre solo lo necesario y prueba desde otra conexión (no desde el propio servidor).
- 27015/udp: juego (puerto Source por defecto)
- 27015/tcp: RCON
- 27005/udp: comunicación con el cliente
- 27020/udp: SourceTV (opcional)
sudo ufw allow OpenSSH
sudo ufw allow 27015/udp
sudo ufw allow 27015/tcp
sudo ufw allow 27005/udp
sudo ufw allow 27020/udp
sudo ufw enable
sudo ufw statusCortafuegos de Windows (netsh)
En un símbolo del sistema de administrador, crea una regla de entrada por puerto (o abre «Firewall de Windows Defender con seguridad avanzada»).
netsh advfirewall firewall add rule name="Garry's Mod 27015 UDP" dir=in action=allow protocol=UDP localport=27015
netsh advfirewall firewall add rule name="Garry's Mod 27015 TCP" dir=in action=allow protocol=TCP localport=27015
netsh advfirewall firewall add rule name="Garry's Mod 27005 UDP" dir=in action=allow protocol=UDP localport=27005
netsh advfirewall firewall add rule name="Garry's Mod 27020 UDP" dir=in action=allow protocol=UDP localport=27020Cortafuegos del proveedor y redirección de puertos (router)
En un proveedor (OVH, Hetzner, Scaleway…), abre también los mismos puertos en el cortafuegos o «security group» del proveedor: ufw no basta si hay un cortafuegos previo. En casa, crea en el router una redirección (NAT) de cada puerto a la IP local de la máquina (fíjala o resérvala por DHCP).
Prueba: desde otra conexión, añade el servidor como «IP:puerto» en el navegador de servidores de Garry's Mod o en la consola. Si falla, revisa en orden: servicio iniciado, cortafuegos local, cortafuegos del proveedor, redirección NAT.
Inicio automático: servicio systemd
Crea /etc/systemd/system/gmod.service (como root) y actívalo. Adapta el usuario y las rutas; consulta los registros con journalctl -u gmod -f.
[Unit]
Description=Garry's Mod dedicated server
After=network-online.target
Wants=network-online.target
[Service]
User=steam
WorkingDirectory=/home/steam/gmodds
ExecStart=/home/steam/gmodds/srcds_run -game garrysmod -console -norestart +maxplayers 32 +gamemode sandbox +map gm_construct +sv_setsteamaccount YOUR_GSLT_TOKEN
Restart=on-failure
RestartSec=10
[Install]
WantedBy=multi-user.target
# then:
# sudo systemctl daemon-reload
# sudo systemctl enable --now gmodWindows: tarea programada al inicio
En Windows, una tarea programada ejecuta tu script .bat al iniciar el sistema (ejecuta el comando en un símbolo de administrador).
schtasks /Create /TN "Garry's Mod server" /TR "C:\gmodds\start-gmod.bat" /SC ONSTART /RU SYSTEM /RL HIGHESTActualizaciones, copias de seguridad y reinicios programados
Detén el servicio antes de actualizar (mismo comando SteamCMD que en la instalación), copia con regularidad los archivos de configuración y datos, y programa un reinicio diario si el servidor se degrada con el tiempo.
sudo systemctl stop gmod
steamcmd +force_install_dir /home/steam/gmodds +login anonymous +app_update 4020 validate +quit
sudo systemctl start gmod
# backup
tar czf ~/gmod-$(date +%F).tar.gz -C /home/steam/gmodds garrysmod/cfg garrysmod/data garrysmod/addons
# daily restart at 05:00 (root crontab: sudo crontab -e)
0 5 * * * systemctl restart gmodRegistrar y encontrar tu servidor
Añade tu servidor en https://game-rank.com/jeux/garrys-mod para que la comunidad lo vea. Para encontrarlo en el juego, usa el navegador de servidores o conéctate directamente con su IP:puerto.
Solución de problemas: errores frecuentes
- Los clientes se quedan cargando o «missing content»: addons no entregados a los jugadores. Solución: añade los IDs en workshop.lua (resource.AddWorkshop) o configura sv_downloadurl (FastDL) y comprueba que la colección sea pública.
- Servidor invisible desde fuera: el servicio funciona pero nadie puede conectarse. Causa: puerto cerrado (ufw, cortafuegos del proveedor o falta la redirección NAT). Solución: abre los puertos indicados en los tres niveles y prueba desde otra conexión.
- Puerto ya en uso al iniciar: otra instancia ocupa el puerto. Solución: lista los procesos con ss -lunp | grep 27015, detén la instancia anterior o asigna un puerto distinto con -port a cada servidor.
- SteamCMD «Failed to install app» o descarga detenida: causa frecuente, disco lleno o permisos insuficientes en la carpeta. Solución: revisa df -h y el propietario de la carpeta y repite el comando con validate (varias veces si hace falta).
- srcds_run: «No such file or directory» o falta una biblioteca de 32 bits: el servidor Source es de 32 bits. Solución: activa la arquitectura i386 (dpkg --add-architecture i386) e instala lib32gcc-s1 y lib32stdc++6.
Preguntas frecuentes
- ¿Es obligatorio el token GSLT?
- La wiki de Facepunch indica que +sv_setsteamaccount es obligatorio y que omitirlo penaliza la posición del servidor. Usa el AppID 4000 para crear el token.
- ¿Cómo cambio de modo de juego (DarkRP, TTT…)?
- Con +gamemode <carpeta> en la línea de lanzamiento, donde la carpeta está en garrysmod/gamemodes/ o en la carpeta gamemodes/ de un addon. También puedes cambiar la variable gamemode y luego cambiar de mapa.
- ¿Puedo ejecutar el servidor como root?
- No se recomienda: crea un usuario dedicado (por ejemplo steam) sin derechos de administrador e instala y ejecuta el servidor con él. Así un fallo del servidor o de un plugin no compromete toda la máquina.
- Mi servidor de Garry's Mod no aparece en la lista: ¿qué reviso?
- Comprueba primero que los puertos estén abiertos en todos los niveles, que el servidor no esté en modo LAN (sv_lan 0) y, si el juego lo exige, que se aporte un token de servidor (GSLT) válido. La lista de Steam puede tardar unos minutos en actualizarse; mientras, conéctate por IP:puerto.
