← Blog

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

Ilustración del artículo : Cómo crear un servidor DarkRP en Gmod rápido y optimizado
Í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 en addons/darkrpmodification/lua/darkrp_config/ y darkrp_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 Think y Tick con lua_run antes 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_maxragdolls y 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 cleanup programado 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

  1. RCON y contraseñas: rcon_password de 24+ caracteres aleatorios, nunca reutilizada. No la pegues nunca en Discord.
  2. sv_allowcslua 0 y sv_allowupload 0 siempre en producción.
  3. 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.
  4. 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.
  5. En VPS: claves SSH en vez de contraseña, ufw y fail2ban.
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.

¿Es mejor un hosting de juego gestionado o un VPS para DarkRP?

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ú.