Garry's ModMods & Plugins
Hide Jobs in the DarkRP F4 Menu
Hide a DarkRP job from players who should not see it with customCheck or admin, hide a whole F4 heading, or disable a default job.
DarkRP's F4 menu lists every job a player could take. Hiding a job from players who should not see it is done in the job's own definition, or by switching the job off altogether. This guide covers the options DarkRP itself provides. Checked against DarkRP 2.7.0 (GitHub source, July 2026), October 2026.
You need the full darkrpmodification addon for these edits, because jobs live in its jobs.lua. If it is not on the server yet, follow Install DarkRP modifications on GMod first. All files below are under garrysmod/addons/darkrpmodification/lua/, and you edit them in the File Manager.
Hide a job from players who cannot take it
Add a condition to the job in darkrp_customthings/jobs.lua. A job's customCheck is a function that gets the player and returns true or false. When it returns false, the player cannot take the job, and DarkRP's F4 menu does not show it to them by default. The same goes for a job that needs a different job first (NeedToChangeFrom) and for admin gating. This example keeps a job for the donator usergroup and admins:
TEAM_VIPGUARD = DarkRP.createJob("VIP Guard", {
color = Color(255, 215, 0, 255),
model = "models/player/Group03/Female_01.mdl",
description = [[You guard the VIPs.]],
weapons = {"weapon_fists"},
command = "vipguard",
max = 2,
salary = 90,
admin = 0,
vote = false,
hasLicense = false,
customCheck = function(ply) return ply:GetUserGroup() == "donator" or ply:IsAdmin() end,
CustomCheckFailMsg = "This job is for donators.",
})The message in CustomCheckFailMsg appears when someone tries and fails to get the job. Usergroups come from your admin mod, so set them up with ULX and ULib admin commands for Garry's Mod first.
For a job only admins should see, you do not need a function: set admin = 1 for admins and above, or admin = 2 for superadmins only.
Hide a whole heading
A category is a heading in the F4 menu. In darkrp_customthings/categories.lua, a category can carry a canSee function, and the file's own comment describes it as deciding whether the player can see the category and everything in it:
DarkRP.createCategory{
name = "Staff Jobs",
categorises = "jobs",
startExpanded = true,
color = Color(0, 107, 0, 255),
canSee = function(ply) return ply:IsAdmin() end,
sortOrder = 100,
}Point the jobs at it with category = "Staff Jobs". The category has to exist, or DarkRP reports an error.
Remove a default job completely
To drop one of DarkRP's built-in jobs, open darkrp_config/disabled_defaults.lua and set its entry in the jobs list to true, for example ["hobo"] = true. Its own comment warns that if you disable a job and remake it, things that rely on the job stop working, such as shipments and door groups.
Hidden or greyed out
Two settings in darkrp_config/settings.lua shape the F4 menu:
GM.Config.hideTeamUnbuyableistrueby default. It is what hides items for a different job, or ones whosecustomChecksays no. If you set it tofalse, those jobs are greyed out instead of hidden.GM.Config.hideNonBuyableisfalseby default. Leave it that way for this purpose: in DarkRP 2.7.0 setting it totruehides every job button in the F4 menu, including the ones a player can take.
A job that is full (its max is reached) is greyed out, not hidden, unless hideNonBuyable is true.
Apply the change
Save the file and restart the server from the dashboard, because DarkRP reads its files as it starts.
If your server uses an addon that replaces DarkRP's F4 menu, that addon draws its own job list. Check its documentation for hiding jobs.
Related guides

Restrict Prop Spawning to DarkRP Jobs
Let only chosen DarkRP jobs spawn props with a short PlayerSpawnProp module, plus the settings to switch prop spawning off or charge for it.
3 min read
Install Billy's Whitelist (bWhitelist) on GMod
Install Billy's Whitelist from the GmodStore tab to whitelist DarkRP jobs without editing job files, with default local storage.
3 min read
Rename DarkRP on Your GMod Server
Run DarkRP under your own name with FPtje's derived gamemode: set it up in the File Manager, change the title and point the Startup tab at it.
3 min read