Cómo crear un servidor DarkRP en Gmod rápido y optimizado
Par Benjamin D. · PDG
· Mis à jour le 14 de agosto de 2026 · Lecture 9 min

Índice
Montar un servidor DarkRP en 2026 sigue siendo la vía más directa para construir una comunidad de rol en Garry's Mod, pero exige método: base limpia de srcds, gamemode actualizado, addons filtrados y una configuración de economía coherente. En esta guía técnica repasamos la instalación completa, los archivos que realmente hay que tocar y las prácticas de rendimiento y seguridad que evitan lag y desastres en producción.
Qué necesitas antes de crear tu servidor DarkRP
DarkRP es un gamemode de Garry's Mod muy dependiente de Lua y de un solo hilo de CPU. Eso condiciona todo: puedes tener 32 GB de RAM y seguir con tickrate irregular si el núcleo que ejecuta el proceso srcds es lento. La prioridad es siempre frecuencia de reloj alta y almacenamiento rápido, no cantidad de núcleos.
Requisitos realistas según jugadores
| Slots | RAM recomendada | Addons Workshop | Notas |
|---|---|---|---|
| 16-24 | 4 GB | Hasta ~40 | Servidor de pruebas o comunidad pequeña |
| 32-48 | 6-8 GB | 60-120 | DarkRP estándar con jobs personalizados |
| 64-100 | 10-16 GB | 120+ (weapon packs, mapas, vehículos) | Requiere FastDL propio y limpieza de addons |
El disco importa más de lo que parece: un mapa como rp_downtown_v4c_v2 con 150 addons puede tardar minutos en cargar sobre almacenamiento mecánico. Con SSD NVMe el arranque baja a segundos, y los reinicios tras un crash dejan de ser un problema para los jugadores conectados.
Hosting gestionado o VPS
- Hosting de juego gestionado: instalación instantánea, panel con consola en vivo, gestor de archivos y copias de seguridad automáticas. Es la opción sensata si quieres centrarte en el Lua y no en el sistema operativo. Puedes ver las opciones en Servidor Garry's Mod.
- VPS: control total, ideal si vas a levantar varios servidores DarkRP, un TTT, una web y un bot. Con VPS Linux gestionas tú srcds, y con VPS Pterodactyl tienes un panel multi-instancia sobre Docker.
En ambos casos, el anti-DDoS incluido a nivel de infraestructura en Nexus Games te cubre los ataques volumétricos, que en Garry's Mod son habituales cuando una comunidad rival te tiene en el punto de mira.
Instalación paso a paso de un servidor DarkRP
1. Instalar el dedicated server de Garry's Mod con SteamCMD
Si trabajas sobre VPS Linux, empieza con las dependencias de 32/64 bits y un usuario sin privilegios (nunca ejecutes srcds como root):
sudo apt update && sudo apt install -y lib32gcc-s1 lib32stdc++6 curl tar screen
sudo adduser --disabled-password --gecos "" gmod
sudo su - gmod
mkdir -p ~/steamcmd && cd ~/steamcmd
curl -sqL "https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz" | tar zxvf -
./steamcmd.sh +force_install_dir /home/gmod/gmodds \
+login anonymous +app_update 4020 -beta x86-64 validate +quit
La rama x86-64 es la recomendada hoy: mejor gestión de memoria y menos crashes por límite de dirección en servidores con muchos addons.
2. Descargar el gamemode DarkRP
DarkRP se instala en garrysmod/gamemodes/. La versión mantenida se descarga desde el repositorio oficial y se acompaña de darkrpmodification, el addon donde harás todas tus personalizaciones:
cd /home/gmod/gmodds/garrysmod/gamemodes
git clone https://github.com/FPtje/DarkRP.git darkrp
cd /home/gmod/gmodds/garrysmod/addons
git clone https://github.com/FPtje/darkrpmodification.git
mv darkrpmodification/darkrpmodification-master/* darkrpmodification/ 2>/dev/null
Regla de oro: no edites nunca los archivos dentro de
gamemodes/darkrp/. Cualquier actualización sobrescribirá tu trabajo. Todo va enaddons/darkrpmodification/lua/darkrp_config/ydarkrp_customthings/.
3. Dependencias obligatorias
DarkRP necesita ULib y ULX para la administración básica, y mysqloo si quieres persistencia en MySQL en lugar de SQLite:
cd /home/gmod/gmodds/garrysmod/addons
git clone https://github.com/TeamUlysses/ulib.git
git clone https://github.com/TeamUlysses/ulx.git
Para mysqloo, coloca el binario gmsv_mysqloo_linux64.dll en garrysmod/lua/bin/. Si usas panel gestionado, el gestor de archivos del NexusPanel te permite subirlo sin FTP externo.
4. server.cfg funcional
Archivo garrysmod/cfg/server.cfg, versión mínima y sensata:
hostname "[ES] Mi Ciudad DarkRP | Serio-RP"
sv_password ""
rcon_password "CambiaEstoPorAlgoLargoYAleatorio"
sv_lan 0
sv_region 3
// Rendimiento de red
sv_maxrate 0
sv_minrate 100000
sv_maxupdaterate 66
sv_minupdaterate 33
sv_maxcmdrate 66
sv_mincmdrate 33
net_maxfilesize 64
// Seguridad
sv_allowcslua 0
sv_allowupload 0
sv_allowdownload 1
sv_kickerrornum 0
// Descargas
sv_downloadurl "https://fastdl.midominio.es/garrysmod/"
sv_loadingurl "https://midominio.es/loading/"
// Colección Workshop
host_workshop_collection 3021456789
sv_allowcslua 0 es clave: bloquea la ejecución de Lua del cliente y corta de raíz buena parte de los exploits y scripts de trampa más básicos.
5. Línea de arranque
cd /home/gmod/gmodds
./srcds_run -game garrysmod -console -strictportbind \
-port 27015 +clientport 27005 \
+maxplayers 48 \
+gamemode darkrp \
+map rp_downtown_v4c_v2 \
-authkey TU_WORKSHOP_API_KEY \
+host_workshop_collection 3021456789
La authkey se genera en el portal de desarrolladores de Steam y es imprescindible para que el servidor descargue la colección del Workshop. En un hosting gestionado, estos parámetros se rellenan en las variables de arranque del panel, sin tocar scripts.
En un VPS, envuelve el proceso en un servicio systemd para que reinicie solo:
sudo tee /etc/systemd/system/darkrp.service >/dev/null <<'EOF'
[Unit]
Description=Servidor DarkRP - Garry's Mod
After=network.target
[Service]
User=gmod
WorkingDirectory=/home/gmod/gmodds
ExecStart=/home/gmod/gmodds/srcds_run -game garrysmod -console -port 27015 +maxplayers 48 +gamemode darkrp +map rp_downtown_v4c_v2
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.target
EOF
sudo systemctl daemon-reload
sudo systemctl enable --now darkrp
sudo systemctl status darkrp
Configurar la economía, los jobs y las entidades
Ajustes generales (settings.lua)
Todo el equilibrio de tu servidor DarkRP vive en addons/darkrpmodification/lua/darkrp_config/settings.lua. Los valores que más impactan en la experiencia:
GM.Config.startingmoney = 500
GM.Config.normalsalary = 45
GM.Config.paydelay = 300 -- segundos entre pagas
GM.Config.propertytax = false
GM.Config.maxprops = 30
GM.Config.propspawning = true
GM.Config.adminspawnprops = true
GM.Config.doorcost = 30
GM.Config.vehiclecost = 300
GM.Config.pricecap = 5000
GM.Config.deathblack = true
GM.Config.respawntime = 5
GM.Config.wantedtime = 120
GM.Config.arrestspeed = 200
GM.Config.jailtimer = 120
GM.Config.chatCommandPrefix = {"/", "!"}
GM.Config.voiceradius = true
GM.Config.dm_allowdmg = false
Consejo de campo: si tu comunidad es de serio-RP, baja maxprops, activa voiceradius y sube jailtimer. Si buscas rol más casual, sube el salario base y reduce paydelay para que la progresión no se estanque.
Crear un job personalizado
En darkrp_customthings/jobs.lua:
TEAM_MECANICO = DarkRP.createJob("Mecánico", {
color = Color(60, 140, 200, 255),
model = {"models/player/Group01/male_07.mdl"},
description = [[Repara vehículos y gestiona el taller de la ciudad.]],
weapons = {"weapon_physgun"},
command = "mecanico",
max = 3,
salary = 70,
admin = 0,
vote = false,
hasLicense = false,
candemote = true,
category = "Ciudadanos",
customCheck = function(ply) return true end,
CustomCheckFailMsg = "Necesitas rango VIP."
})
Y una entidad vendible en entities.lua:
DarkRP.createEntity("Impresora de dinero", {
ent = "money_printer",
model = "models/props_c17/consoleUnit01a.mdl",
price = 1500,
max = 2,
cmd = "buyprinter",
allowed = {TEAM_MECANICO, TEAM_GANGSTER},
category = "Ilegal"
})
Tras cada cambio, valida la sintaxis antes de reiniciar. Un error de Lua en jobs.lua tumba el gamemode entero y deja a los jugadores en un menú vacío. La consola en vivo del panel te muestra el stack trace exacto con el número de línea.
Persistencia en MySQL
Con SQLite basta para 20 jugadores, pero si tienes varios servidores o una web con tienda, MySQL es obligatorio. En darkrp_config/mysql.lua:
DarkRP.registerDatabaseConfig({
enabled = true,
host = "127.0.0.1",
username = "darkrp",
password = "contrasena_fuerte",
database = "darkrp",
port = 3306
})
Y en el servidor MySQL, limita el acceso al mínimo necesario:
CREATE DATABASE darkrp CHARACTER SET utf8mb4;
CREATE USER 'darkrp'@'127.0.0.1' IDENTIFIED BY 'contrasena_fuerte';
GRANT SELECT, INSERT, UPDATE, DELETE ON darkrp.* TO 'darkrp'@'127.0.0.1';
FLUSH PRIVILEGES;
Administración con ULX
// En consola del servidor o rcon
ulx adduser TuNick superadmin
ulx addgroup moderador
ulx addgroupallow moderador ulx kick
ulx addgroupallow moderador ulx ban
ulx addgroupallow moderador ulx jailtp
Si vas a delegar tareas a tu staff sin darles acceso total al hosting, los subusuarios del panel permiten dar permiso solo a consola y reinicio, sin tocar archivos ni facturación.
Rendimiento, FastDL y seguridad de tu servidor DarkRP
Reducir el lag: lo que realmente funciona
- Auditar addons: el 80 % del lag de un servidor DarkRP viene de 3 o 4 addons mal escritos. Usa un profiler de Lua y revisa los hooks
ThinkyTickconlua_runantes de culpar al hardware. - Limitar props y entidades: cada prop físico es cálculo de física en el hilo principal.
sbox_maxprops,sbox_maxragdollsy el límite de impresoras por jugador importan. - Frecuencia de CPU: srcds no escala con núcleos. Un Ryzen 9 con RAM DDR5 ECC y NVMe da margen real donde una CPU compartida de bajo reloj colapsa a los 40 jugadores.
- Limpieza periódica: un
ulx cleanupprogramado o un reinicio nocturno automático evita la acumulación de entidades huérfanas.
FastDL bien montado
Sin FastDL, cada jugador nuevo descarga los contenidos por el canal del juego, lento y limitado. Sube tus materiales, modelos y sonidos comprimidos en .bz2 a un servidor web y apunta sv_downloadurl ahí:
cd /var/www/fastdl/garrysmod
find . -type f \( -name "*.vmt" -o -name "*.vtf" -o -name "*.mdl" -o -name "*.wav" \) \
-exec bzip2 -k {} \;
Si tienes un VPS Linux con nginx, sirve ese directorio y verás los tiempos de conexión caer de minutos a segundos. Los mapas y modelos que ya vienen de la colección Workshop no necesitan estar en FastDL.
Seguridad práctica
- RCON y contraseñas:
rcon_passwordde 24+ caracteres aleatorios, nunca reutilizada. No la pegues nunca en Discord. - sv_allowcslua 0 y
sv_allowupload 0siempre en producción. - Copias de seguridad: las automáticas del panel cubren el desastre típico (addon que corrompe la DB, staff que borra
jobs.lua). Descarga una copia local mensual. - Actualizaciones: revisa el gamemode y los addons críticos al menos una vez al mes; los exploits de DarkRP suelen parchearse rápido en el repositorio oficial.
- En VPS: claves SSH en vez de contraseña,
ufwyfail2ban.
ssh-keygen -t ed25519 -C "admin-darkrp"
ssh-copy-id -i ~/.ssh/id_ed25519.pub gmod@IP_DEL_VPS
sudo ufw default deny incoming
sudo ufw allow 22/tcp
sudo ufw allow 27015
sudo ufw allow 27005/udp
sudo ufw enable
sudo apt install -y fail2ban
sudo systemctl enable --now fail2ban
La protección anti-DDoS volumétrica ya está aplicada a nivel de red en toda la infraestructura, así que tu trabajo se limita al endurecimiento del sistema y del gamemode. Para documentación de referencia sobre variables de srcds y hooks de Lua, consulta el wiki oficial de Garry's Mod.
Crecer más allá de DarkRP
Muchas comunidades de DarkRP acaban abriendo un segundo proyecto: rol en Servidor FiveM, supervivencia en Servidor Rust o una red creativa en Servidor Minecraft. Puedes ver el catálogo completo en Todos nuestros servidores de juegos, y si necesitas automatizar whitelist o tickets, el alojamiento de bots de Discord mantiene el bot online 24/7 sin depender de tu PC.
Conclusión
Crear un servidor DarkRP sólido no es cuestión de acumular addons, sino de una base limpia: srcds x86-64, darkrpmodification para todas las personalizaciones, FastDL propio y una economía equilibrada. Añade copias de seguridad, RCON fuerte y una CPU de reloj alto, y tendrás una ciudad estable capaz de aguantar 48 jugadores sin tirones. El resto lo construye tu comunidad.
FAQ
¿Cuánta RAM y qué CPU necesito para un servidor DarkRP de 48 slots?Cuenta con 8 GB de RAM y, sobre todo, una CPU de frecuencia alta como un Ryzen 9, porque el proceso srcds usa esencialmente un solo hilo. El almacenamiento NVMe reduce drásticamente el tiempo de carga del mapa y de los addons del Workshop tras cada reinicio.
¿Por qué mis jobs personalizados no aparecen en el menú F4?Casi siempre es un error de Lua en addons/darkrpmodification/lua/darkrp_customthings/jobs.lua: una coma que falta, un modelo inexistente o un TEAM_ duplicado. Revisa la consola en vivo del panel al arrancar: te dará el archivo y la línea exacta. Corrige y reinicia el servidor.
Si solo vas a llevar un servidor DarkRP, el hosting gestionado te ahorra tiempo: instalación instantánea, consola, gestor de archivos y copias automáticas. Si planeas varias instancias, FastDL propio, MySQL y web, un VPS Linux o un VPS Pterodactyl te da el control necesario a cambio de administrarlo tú.