Garry's Mod Updated April 27, 2026

Setting Up the DarkRP Gamemode

Complete guide to installing DarkRP from GitHub, configuring it with darkrpmodification, setting up jobs and shipments, and choosing the right map.

Garry's ModDarkRPGamemodesConfiguration

Overview

DarkRP is the most popular GMod roleplay gamemode. It requires two components: the DarkRP gamemode itself and the darkrpmodification addon for all server-specific customization. You should never edit DarkRP's own source files — all changes go through darkrpmodification.

The Workshop version of DarkRP (ID 248302805) works but receives updates less frequently and can lag behind the GitHub version. Install from GitHub for production servers:

  1. Download or clone github.com/FPtje/DarkRP
  2. Upload the entire repository to:
    garrysmod/gamemodes/darkrp/
    
  3. Confirm the folder structure is:
    garrysmod/gamemodes/darkrp/gamemode/init.lua
    garrysmod/gamemodes/darkrp/gamemode/cl_init.lua
    

Configuring darkrpmodification

All customization happens through the darkrpmodification addon:

  1. Download from github.com/FPtje/darkrpmodification
  2. Upload to:
    garrysmod/addons/darkrpmodification/
    

This addon contains all the files you will actually edit. DarkRP detects it automatically on load.

Launch Configuration

Set the following in Pterodactyl startup variables:

Variable Value
GAMEMODE darkrp
SRCDS_MAP rp_downtown_v4c_v2
TICKRATE 33

Tickrate 33 is strongly recommended for DarkRP. Higher tickrates increase CPU load significantly with high player counts, and DarkRP's gameplay does not require the precision of 66-tick.

Key Configuration Files

Main Config

addons/darkrpmodification/lua/darkrp_config/config.lua

Common settings in this file:

GM.Config.enablebuysell = true        -- Enable buying/selling
GM.Config.enablelockpicking = true    -- Lock pick doors
GM.Config.maxjobs = 30                -- Max custom jobs
GM.Config.startingmoney = 500         -- Starting wallet amount
GM.Config.salary = 45                 -- Citizen base salary

Jobs

addons/darkrpmodification/lua/darkrp_customthings/jobs.lua

Example job definition:

TEAM_POLICE = DarkRP.createJob("Police Officer", {
    color = Color(25, 25, 170),
    model = {"models/player/police.mdl"},
    description = [[Protect the city. Arrest criminals.]],
    weapons = {"arrest_stick", "unarrest_stick", "stunstick"},
    command = "police",
    max = 4,
    salary = 75,
    admin = 0,
    vote = false,
})

Shipments (Gun Dealer items)

addons/darkrpmodification/lua/darkrp_customthings/shipments.lua
DarkRP.createShipment("AK47", {
    entity = "fas2_ak47",
    model = "models/weapons/w_rif_ak47.mdl",
    price = 1500,
    amount = 10,
    separate = true,
    pricesep = 200,
    allowed = {TEAM_GUN_DEALER},
})

Custom Entities

addons/darkrpmodification/lua/darkrp_customthings/entities.lua
Map Description
rp_downtown_v4c_v2 Classic DarkRP map; most players recognize it
rp_evocity_v33x Larger map; better for high player counts

Both maps require CSS content to display correctly. See the content mounting article.

Performance Guidelines

DarkRP is particularly sensitive to addon count. Keep your addon count:

  • Under 50 addons for servers with 30+ players
  • Under 75 addons for 20-player servers

Each Lua addon adds to the global tick processing time. Monitor server frame time with net_graph 4 in-game — if the server bar turns red, you have too many addons or too complex a configuration.

Common Setup Mistakes

Editing DarkRP files directly: Any DarkRP update will overwrite your changes. All customization must go in darkrpmodification.

Wrong gamemode folder name: The folder must be named exactly darkrp (lowercase). Naming it DarkRP or dark_rp causes a fallback to sandbox.

Missing darkrpmodification: DarkRP loads with defaults if darkrpmodification is not found. Custom jobs, shipments, and config changes will not apply.