Wie erstellt man einen leistungsstarken DarkRP-Server auf Gmod?
Par Benjamin D. · PDG
· Mis à jour le 14. August 2026 · Lecture 11 min

Inhaltsverzeichnis
Einen DarkRP Server erstellen ist der schnellste Weg, aus Garry's Mod eine eigene Rollenspiel-Community zu machen – mit Jobs, Wirtschaft, Türsystem und eigenen Regeln. Dieses Tutorial zeigt dir 2026 den kompletten Ablauf: Hardware-Anforderungen, SteamCMD-Installation, DarkRP-Gamemode, Workshop-Collection, Lua-Konfiguration, Performance-Tuning und Absicherung. Egal ob auf einem gemieteten Gameserver oder auf einem eigenen VPS.
DarkRP Server erstellen: Voraussetzungen und Hardware-Planung
DarkRP ist ein Gamemode für Garry's Mod, der auf der Source Engine läuft. Das hat eine wichtige Konsequenz: Der Server ist im Kern single-thread-lastig. Ein Kern muss die gesamte Physik, das Lua-Scripting und das Networking stemmen. Mehr Kerne helfen nur indirekt (Betriebssystem, mehrere Instanzen, Datenbank). Was wirklich zählt, ist die Single-Core-Leistung und schneller Speicher.
Was DarkRP wirklich frisst
Ein leeres DarkRP mit 20 Spielern ist harmlos. Realität sieht anders aus: 60 Spieler, 200 Props, Money-Printer, ein Dutzend Addons, PermaProps, Advanced Duplicator und ein Basewars-artiger Wirtschaftskreislauf. Genau dort entstehen die berüchtigten Lag-Spikes.
- CPU : Die Lua-Ticks laufen seriell. Ein Ryzen 9 mit hohem Boost-Takt ist hier deutlich sinnvoller als viele langsame Kerne.
- RAM : Garry's Mod ist eine 32-Bit- bzw. 64-Bit-Anwendung mit Workshop-Content im Speicher. Rechne mit 4 GB für kleine Server, 6–8 GB sobald du viele Addons und große Maps fährst. DDR5 ECC verhindert stille Speicherfehler bei Dauerbetrieb.
- Storage : Maps wie
rp_downtown_v4c_v2,rp_evocity_v33xoderrp_rockford_v2bplus Workshop-Cache summieren sich schnell auf 20–40 GB. NVMe verkürzt vor allem die Map-Ladezeiten und den Serverstart nach einem Crash. - Netzwerk : Source überträgt viele kleine Pakete. Latenz und Paketverlust sind wichtiger als reine Bandbreite. Ein Anti-DDoS-Filter ist bei öffentlichen RP-Servern kein Luxus, sondern Grundausstattung – Gameserver werden regelmäßig Ziel von Angriffen aus der eigenen Spielerschaft.
Slot-Empfehlung nach Communitygröße
| Spielerzahl | RAM | Addons / Workshop | Typischer Einsatz |
|---|---|---|---|
| bis 16 | 3–4 GB | DarkRP + 10–20 Addons | Freundesrunde, Testserver |
| 16–40 | 6 GB | DarkRP + Jobs, Waffen, ULX | Wachsende Community |
| 40–64 | 8 GB | Volle Collection, MySQL | Öffentlicher RP-Server |
| 64–100 | 10–12 GB | Custom-Addons, mehrere Maps | Etablierte Community mit Staff-Team |
Gameserver oder VPS?
Zwei Wege führen zum Ziel. Ein fertiger Garry's Mod Server mieten bringt Sofortinstallation, Panel, automatische Backups und Anti-DDoS ohne Systemadministration mit. Wer lieber die volle Kontrolle über das Betriebssystem will – mehrere Instanzen, eigene MySQL, eigener Webserver für Fast-Download – nimmt einen Linux VPS und installiert alles selbst. Für Multi-Server-Setups mit Container-Isolation ist ein Pterodactyl VPS die saubere Zwischenlösung.
Faustregel aus der Praxis: Wenn du noch nie eine systemd-Unit geschrieben hast, starte mit einem gemanagten Gameserver und wechsle später. Ein DarkRP-Projekt scheitert selten an der Hardware, aber oft daran, dass der Admin drei Wochen mit Linux-Fehlersuche verbringt statt Jobs zu balancieren.
Installation Schritt für Schritt: von SteamCMD bis zum ersten Spawn
1. Grundsystem und SteamCMD vorbereiten
Auf einem frischen Debian- oder Ubuntu-VPS legst du zuerst einen eigenen Benutzer an. Einen Gameserver als root laufen zu lassen, ist ein vermeidbares Risiko.
sudo apt update && sudo apt upgrade -y
sudo dpkg --add-architecture i386
sudo apt update
sudo apt install -y lib32gcc-s1 lib32stdc++6 curl tar screen git
sudo useradd -m -s /bin/bash gmod
sudo su - gmod
mkdir -p ~/steamcmd && cd ~/steamcmd
curl -sqL "https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz" | tar zxvf -
2. Garry's Mod Dedicated Server herunterladen
Die App-ID des GMod-Dedicated-Servers ist 4020. Der Download läuft anonym, ein Steam-Account ist nicht nötig.
cd ~/steamcmd
./steamcmd.sh +force_install_dir /home/gmod/server \
+login anonymous \
+app_update 4020 validate \
+quit
Der erste Durchlauf zieht mehrere Gigabyte. Auf NVMe ist das in wenigen Minuten erledigt, auf klassischen HDD-Storages kann es deutlich länger dauern – ein Punkt, den man beim Vergleich von Hostern gerne unterschätzt.
3. DarkRP und darkrpmodification installieren
Wichtig: DarkRP selbst wird nie direkt editiert. Alle eigenen Anpassungen gehören in das Addon darkrpmodification. Sonst gehen deine Jobs beim nächsten Update verloren.
cd /home/gmod/server/garrysmod/gamemodes
git clone https://github.com/FPtje/DarkRP.git darkrp
cd /home/gmod/server/garrysmod/addons
git clone https://github.com/FPtje/darkrpmodification.git darkrpmodification
Danach existiert der Ordner addons/darkrpmodification/lua/darkrp_customthings/ mit den Dateien jobs.lua, entities.lua, shipments.lua, doorgroups.lua und categories.lua. Genau dort baust du deinen Server.
4. Map und Workshop-Collection einbinden
DarkRP-Maps liegen fast alle im Steam Workshop. Du brauchst zwei Dinge: eine öffentliche Collection-ID und einen Steam-Web-API-Key. Den Key erzeugst du im Steam-Entwicklerbereich, die Collection legst du im Workshop an und trägst dort alle Addons ein, die Clients laden sollen.
# Datei: /home/gmod/server/garrysmod/cfg/server.cfg
hostname "Nexus RP | Deutsch | DarkRP"
sv_password ""
rcon_password "EinLangesZufaelligesPasswort_48Zeichen"
sv_region 3
sv_lan 0
sv_alltalk 0
sv_voiceenable 1
// Netzwerk / Tickrate
sv_maxrate 0
sv_minrate 100000
sv_maxupdaterate 66
sv_minupdaterate 33
sv_maxcmdrate 66
sv_mincmdrate 33
// Physik & Props
sbox_maxprops 60
sbox_maxragdolls 5
sbox_maxvehicles 2
sbox_maxeffects 10
sbox_maxdynamite 0
sbox_maxthrusters 10
sbox_godmode 0
sbox_noclip 0
// Downloads
sv_allowupload 0
sv_allowdownload 0
sv_downloadurl "https://cdn.deinedomain.de/gmod/"
Die Startzeile bindet Gamemode, Map und Collection zusammen:
cd /home/gmod/server
./srcds_run -game garrysmod -console -norestart \
+gamemode darkrp \
+map rp_downtown_v4c_v2 \
+maxplayers 64 \
+host_workshop_collection 1234567890 \
-authkey DEIN_STEAM_WEB_API_KEY \
-port 27015 \
-tickrate 33 \
+exec server.cfg
5. Dauerbetrieb mit systemd
Ein screen-Fenster reicht zum Testen, nicht für den Produktivbetrieb. Auf einem VPS gehört der Server in eine Unit, die nach Reboot und Crash automatisch neu startet.
# /etc/systemd/system/darkrp.service
[Unit]
Description=Garry's Mod DarkRP Server
After=network-online.target
[Service]
Type=simple
User=gmod
WorkingDirectory=/home/gmod/server
ExecStart=/home/gmod/server/srcds_run -game garrysmod -console -norestart \
+gamemode darkrp +map rp_downtown_v4c_v2 +maxplayers 64 \
+host_workshop_collection 1234567890 -authkey DEIN_KEY -port 27015 +exec server.cfg
Restart=on-failure
RestartSec=15
[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable --now darkrp
sudo systemctl status darkrp
journalctl -u darkrp -f
Auf einem gemanagten Gameserver entfällt dieser Teil komplett: Der Prozess wird vom Panel überwacht, du siehst die Live-Konsole im Browser, kannst neu starten, Dateien bearbeiten und Addons einspielen. Wer sich nicht mit Unit-Dateien beschäftigen will, findet in der Übersicht Alle unsere Gameserver die passende Alternative.
DarkRP konfigurieren: Jobs, Entities, Wirtschaft und Regeln
Ein technisch laufender Server ist die halbe Miete. Ob Spieler bleiben, entscheidet die Konfiguration. Hier trennt sich ein generischer Klon von einem Server mit eigener Identität.
Grundeinstellungen in settings.lua
Die zentrale Datei liegt unter addons/darkrpmodification/lua/darkrp_config/settings.lua. Ein paar Werte, an denen du fast immer drehen wirst:
GM.Config.startingmoney = 500
GM.Config.normalsalary = 45
GM.Config.paydelay = 300 -- Sekunden zwischen Gehältern
GM.Config.propertytax = false
GM.Config.doorcost = 40
GM.Config.vehiclecost = 60
GM.Config.pricecap = 5000000
GM.Config.deathblack = true
GM.Config.respawntime = 8
GM.Config.wallet = true
GM.Config.currency = "€"
GM.Config.currencyLeft = false
GM.Config.adminsents = true
GM.Config.propspawning = false
GM.Config.enablebuypistol = true
GM.Config.norespawn = true
GM.Config.needWepLicense = true
GM.Config.chatCommandPrefix = "/"
GM.Config.voiceradius = true
GM.Config.dynamicvoice = true
GM.Config.propspawning = false ist eine der wirksamsten Maßnahmen gegen Prop-Spam und damit gegen Serverlast. Wer Bauen erlauben will, kombiniert das besser mit einem begrenzten Prop-Limit pro Job.
Eigene Jobs anlegen
Jobs sind das Herz von DarkRP. Sie kommen in darkrp_customthings/jobs.lua:
TEAM_MECHANIC = DarkRP.createJob("Mechaniker", {
color = Color(190, 130, 30, 255),
model = {"models/player/Group03/male_05.mdl"},
description = [[Du reparierst Fahrzeuge und verkaufst Ersatzteile.
Ein Mechaniker greift niemand ohne Grund an.]],
weapons = {"weapon_physcannon"},
command = "mechaniker",
max = 3,
salary = 70,
admin = 0,
vote = false,
hasLicense = false,
candemote = false,
category = "Zivilisten",
PlayerSpawn = function(ply)
ply:SetHealth(100)
ply:SetArmor(25)
end
})
TEAM_SWAT = DarkRP.createJob("SWAT", {
color = Color(20, 20, 120, 255),
model = {"models/player/swat.mdl"},
description = [[Spezialeinheit der Polizei. Nur auf Anordnung des Chiefs.]],
weapons = {"weapon_stunstick", "stunstick", "door_ram", "weaponchecker"},
command = "swat",
max = 2,
salary = 120,
admin = 0,
vote = true,
hasLicense = true,
candemote = true,
category = "Staatsdienst",
customCheck = function(ply)
return table.HasValue({"superadmin", "admin", "swat"}, ply:GetUserGroup())
end,
CustomCheckFailMsg = "Du benötigst den SWAT-Rang."
})
Zwei Details, die man erst nach dem dritten Server verinnerlicht: max immer setzen (sonst spielen 30 Leute Polizei) und customCheck für Donator- oder Whitelist-Jobs verwenden. Die genaue Referenz aller Felder steht in der offiziellen DarkRP-Dokumentation.
Entities, Shipments und Wirtschaftsbalance
DarkRP.createEntity("Money Printer", {
ent = "money_printer",
model = "models/props_c17/consolebox01a.mdl",
price = 1200,
max = 2,
cmd = "buymoneyprinter",
category = "Money Printers",
allowed = {TEAM_GANGSTER, TEAM_MOB}
})
DarkRP.createShipment("MP5", {
model = "models/weapons/w_smg_mp5.mdl",
entity = "m9k_mp5",
price = 4500,
amount = 10,
separate = false,
pricesep = 600,
noship = false,
allowed = {TEAM_GUN, TEAM_BMD},
category = "Waffen"
})
Die häufigste Fehlkonfiguration bei neuen Servern: zu viele Money Printer, zu billig, zu ertragreich. Nach 48 Stunden hat jeder Millionen auf dem Konto, die Waffenpreise sind irrelevant und das Rollenspiel kippt in Deathmatch. Halte die Ausschüttung pro Minute im Verhältnis zum teuersten kaufbaren Item bei mindestens 1:200.
Administration und Datenbank
Für Ränge und Moderationsbefehle installierst du ULX und ULib in garrysmod/addons/. Für persistente Geldstände über Map-Wechsel hinweg empfiehlt sich MySQL statt der Standard-SQLite-Datei – gerade wenn du mehrere Instanzen betreibst:
sudo apt install -y mariadb-server
sudo mysql_secure_installation
sudo mysql -u root -p
CREATE DATABASE darkrp CHARACTER SET utf8mb4;
CREATE USER 'darkrp'@'localhost' IDENTIFIED BY 'starkes_passwort';
GRANT ALL PRIVILEGES ON darkrp.* TO 'darkrp'@'localhost';
FLUSH PRIVILEGES;
Danach das mysqloo-Modul in garrysmod/lua/bin/ ablegen und die Zugangsdaten in der MySQL-Konfiguration von DarkRP eintragen. Auf einem gemanagten Gameserver erledigst du den Datei-Upload direkt über den Dateimanager im Panel.
Performance, Sicherheit und laufender Betrieb
Lag-Ursachen systematisch eingrenzen
Wenn dein DarkRP ruckelt, ist selten „der Server zu schwach". Gehe in dieser Reihenfolge vor:
- Server-FPS prüfen: In der Konsole
statseingeben. Fällt der Wert unter 60, hast du ein Lua- oder Physikproblem, kein Netzwerkproblem. - Lua-Profiling: Ein Hook-Profiler zeigt, welches Addon Rechenzeit frisst. Meist sind es schlecht geschriebene Hooks in
ThinkoderHUDPaint. - Addons halbieren: Deaktiviere die Hälfte deiner Collection, teste, halbiere erneut. In 20 Minuten hast du den Übeltäter.
- Props und Entities begrenzen:
sbox_maxpropssenken, Money-Printer-Limits pro Job setzen, PermaProps aufräumen. - Erst dann Hardware: Erst wenn die Serverlast sauber ist, bringen mehr CPU-Takt und schnellerer Speicher spürbar mehr Spieler pro Instanz.
Absicherung des Servers
- RCON-Passwort: mindestens 32 zufällige Zeichen. Ein schwaches RCON-Passwort bedeutet vollständige Serverübernahme.
- Keine Superadmin-Inflation: Vergib
superadminan maximal zwei Personen. Moderatoren bekommen eigene ULX-Gruppen mit klar begrenzten Befehlen. - Lua-Ausführung sperren:
sv_allowcslua 0verhindert clientseitige Lua-Cheats. - Workshop-Addons prüfen: Backdoors in kostenlosen „Leaks" sind der häufigste Weg, wie DarkRP-Server kompromittiert werden. Lade Addons nur aus dem Workshop oder aus Quellen, deren Code du gelesen hast.
- Backups: Vor jedem größeren Config-Umbau ein Snapshot. Automatische Sicherungen decken den Alltag ab, ein manueller Stand vor dem Update rettet dich beim Fehlversuch.
Auf einem eigenen VPS kommen die üblichen Systemhärtungen dazu:
# SSH-Key statt Passwort
ssh-keygen -t ed25519 -C "admin@darkrp"
ssh-copy-id -i ~/.ssh/id_ed25519.pub admin@deine-server-ip
# Passwort-Login deaktivieren
sudo sed -i 's/^#\?PasswordAuthentication.*/PasswordAuthentication no/' /etc/ssh/sshd_config
sudo systemctl restart ssh
# Firewall
sudo apt install -y ufw fail2ban
sudo ufw allow 22/tcp
sudo ufw allow 27015/tcp
sudo ufw allow 27015/udp
sudo ufw enable
sudo systemctl enable --now fail2ban
Volumetrische DDoS-Angriffe fängst du damit nicht ab – die gehören auf Infrastrukturebene gefiltert. Bei Nexus Games ist der Anti-DDoS-Schutz auf allen Gameservern und VPS standardmäßig aktiv, du musst dafür nichts konfigurieren. Mehr Hintergründe zu Serverbetrieb und Absicherung findest du im Nexus Games Blog.
Fast-Download und Ladezeiten
Nichts vertreibt neue Spieler schneller als drei Minuten Ladebildschirm. Setze sv_allowdownload 0 und liefere Custom-Content über eine sv_downloadurl mit bzip2-komprimierten Dateien aus. Der Rest gehört in die Workshop-Collection – der Steam-Download läuft parallel und deutlich schneller als der Source-eigene Transfer.
Wartung im Alltag
| Intervall | Aufgabe | Befehl / Ort |
|---|---|---|
| Täglich | Konsole auf Lua-Errors prüfen | Panel-Konsole / journalctl -u darkrp |
| Täglich | Automatischer Neustart in Randzeiten | Cron oder Panel-Zeitplan |
| Wöchentlich | Backup verifizieren, PermaProps aufräumen | Panel-Backups |
| Monatlich | GMod-Update via SteamCMD, DarkRP git pull | app_update 4020 validate |
| Nach Bedarf | Wirtschaftsbalance und Job-Limits anpassen | jobs.lua, settings.lua |
Ein automatischer Neustart alle 12 bis 24 Stunden ist bei Source-Servern kein Zeichen von Schwäche, sondern gute Praxis: Er räumt Memory-Fragmentierung auf und hält die Server-FPS stabil. Technische Details zur Engine und zu Konsolenvariablen liefert das offizielle Garry's Mod Wiki.
Wenn die Community wächst
Ab etwa 60 gleichzeitigen Spielern lohnt es sich, über eine zweite Instanz nachzudenken – ein Testserver für neue Addons, damit du Änderungen nie live ausprobierst. Wer mehrere Projekte parallel fährt (etwa DarkRP plus ein zweites Spiel), ist mit einem Pterodactyl VPS gut bedient. Wer schlicht einen zweiten fertigen Server will, legt ihn über Nexus Games in wenigen Minuten an; die Installation läuft sofort und der Anti-DDoS greift ab dem ersten Start.
Fazit
Einen DarkRP Server erstellen ist technisch in einer Stunde erledigt – SteamCMD, Gamemode, Collection, Startparameter. Die eigentliche Arbeit beginnt danach: Jobs balancieren, Wirtschaft justieren, Addons sauber halten und Lag-Quellen konsequent ausmerzen. Wer regelmäßig Backups zieht, Rechte restriktiv vergibt und Server-FPS im Blick behält, betreibt ein RP-Projekt, das Jahre läuft statt Wochen.
FAQ
Wie viel RAM brauche ich, um einen DarkRP Server mit 64 Slots zu betreiben?Rechne mit 8 GB RAM für 64 Slots mit einer vollen Workshop-Collection, ULX, MySQL-Anbindung und mehreren Maps. Entscheidender als die reine Menge ist die Single-Core-Leistung der CPU, da Garry's Mod die Lua-Logik seriell abarbeitet. Ein Prozessor mit hohem Boost-Takt und NVMe-Storage bringt bei DarkRP spürbar mehr als zusätzliche Kerne.
Warum verschwinden meine Custom-Jobs nach einem DarkRP-Update?Weil sie direkt im Gamemode-Ordner gamemodes/darkrp/ bearbeitet wurden. Ein git pull oder eine Neuinstallation überschreibt diese Dateien. Lege alle Anpassungen ausschließlich im Addon darkrpmodification ab, konkret in lua/darkrp_customthings/jobs.lua und lua/darkrp_config/settings.lua. Dieser Ordner bleibt von Updates unberührt und lässt sich zusätzlich per Backup sichern.
Setze GM.Config.propspawning = false, damit nur bestimmte Jobs bauen dürfen, und begrenze sbox_maxprops auf 40–60. Ergänzend hilft ein Anti-Prop-Spam-Addon mit Cooldown, das Limitieren von Money Printern pro Spieler sowie ein täglicher automatischer Neustart. Prüfe mit dem Konsolenbefehl stats, ob die Server-FPS beim Spawnen einbrechen – so isolierst du die Ursache zuverlässig.