Since the original creator - Kurt Stolle (check out his GitHub profile here) - isn't involved in the GMod community anymore, he allowed me to fork this project.
The following convars can be put in your ./cfg/server.cfg file.
It is recommended to not put convars in your config file unless you know exactly what the effect is the convar is. Invalid values may break the gamemode.
| Convar | Effect |
|---|---|
jb_config_debug 1/0 |
Debug mode, you might want to set this to 0 to reduce annoying console messages |
jb_config_font Roboto |
The gamemode's font. I disrecommend changing this; may cause everything to go weird! |
jb_config_website example.com |
The URL of your website. This URL will be displayed as a form of advertising your site. |
jb_config_jointime 20 [minimum: 10] |
(seconds) period when the map just loaded and people are given a chance to join. |
jb_config_setuptime 60 [minimum: 10] |
(seconds) period at the start of the round when guards may claim warden. |
jb_config_guards_allowed 30 [minimum: 1] |
Percentage of players allowed to be guard |
jb_config_guards_playtime 120 |
(minutes) playtime required to be guard (admins bypass this) |
jb_config_rebel_sensitivity 0-2 |
2 = prisoner becomes rebel on killing a guard, 1 = prisoner becomes rebel on damaging a guard, 0 = prisoner never becomes rebel. |
jb_config_prisoners_namechange 1/0 |
1 = use fake names for prisoners (ex. Prisoner 192346), 0 = use normal nicknames for prisoners |
jb_config_warden_control_enabled 1/0 |
Toggles whether warden control should be enabled or not. (recommended: always 1); |
jb_config_prisoner_special_chance 8 |
Chance a prisoner will get a random weapon. Chance = random(1,var)==1; |
jb_config_max_warden_rounds 3 |
Maximum amount of rounds a player can be warden in a row. |
jb_config_primaries_are_concealed 1/0 |
Conceal primaries - they won't draw on the player's back if this is set to 1. |
jb_config_secondaries_are_concealed 1/0 |
Conceal secondaries - they won't draw on the player's thigh if this is set to 1. |
jb_config_knives_are_concealed 1/0 |
Conceal knives - they won't draw on the player's thigh if this is set to 1. |
jb_config_grenades_are_concealed 1/0 |
Conceal grenades - they won't draw on the player's thigh if this is set to 1. |
jb_config_fist_knockback_enabled 1/0 |
Enable knockback for fist punches |
jb_config_falldamage_is_disabled 1/0 |
Disables falldamage if this is set to 1. |
jb_config_rounds_per_map 10 |
Rounds until mapvote - ONLY SET THIS IF YOU HAVE A MAPVOTE SYSTEM ON YOUR SERVER/COMMUNITY |
jb_config_notify_lastguard 1/0 |
Send the "last guard kills all" notification |
Further console commands:
| Command | Effect |
|---|---|
jb_dropweapon |
Drops the selected weapon. |
jb_pickup |
Takes the weapon in the user's crosshair. |
jb_team_select_guard |
Switches to the guard team. |
jb_team_select_prisoner |
Switches to the prisoner team. |
jb_team_select_spectator |
Switches to spectator. |
jb_admin_swap STEAMID |
Switches the player with the specified STEAMID to the opposite team. |
jb_admin_swap_specator STEAMID |
Switches the player with the specified STEAMID to spectator. |
jb_admin_revive STEAMID |
Revives the player with the specified STEAMID. |
jb_admin_configmode |
Edit KOS-zones. Spawn two points with "R", move them and save by freezing both of them using right click. The corresponding file is located at \steamapps\common\GarrysMod\garrysmod\data\jailbreak\zones. |
Chat commands (add "!" or "/" infront of the command; "/" hides it from other players):
| Command | Effect |
|---|---|
drop |
Drops the current weapon. |
pickup |
Takes the weapon in the user's crosshair. |
guard |
Switches to the guard team. |
prisoner |
Switches to the prisoner team. |
spectator |
Switches to spectator. |
teamswap, swap or swapteam |
Switches to the opposite team. |
This is how last requests are added. LR files have to put put in the lastrequests folder.
-- Initialize a new LR class
local LR = JB.CLASS_LR();
-- Give it a name and description
LR:SetName("Knife Battle");
LR:SetDescription("The guard and the prisoner both get a knife, all other weapons are stripped, and they must fight eachother until one of the two dies");
-- Give it an Icon for in the LR-menu
LR:SetIcon(Material("icon16/flag_blue.png"))
-- Setup what happens after somebody picks this Last Request
LR:SetStartCallback(function(prisoner,guard)
for _,ply in ipairs{prisoner,guard} do
ply:StripWeapons();
ply:Give("weapon_jb_knife");
ply:Give("weapon_jb_fists");
ply:SetHealth(100);
ply:SetArmor(0);
end
end)
-- Tell JailBreak that this LR is ready for use.
LR();These are all custom hooks called by the gamemode.
Format: hookname ( arguments[, optional argument] )
-- JailBreakRoundStart
-- Called when the round starts
JailBreakRoundStart ( rounds_passed )
-- JailBreakRoundEnd
-- Called when the round ends
JailBreakRoundEnd ( rounds_passed )
-- JailBreakPlayerSwitchTeam
-- Called on team switch
JailBreakPlayerSwitchTeam ( player, team )
-- JailBreakStartMapvote
-- Called when a mapvote should be started.
-- return true: Use custom mapvote system, return false: Use default system (normally; no mapvote).
JailBreakStartMapvote ( rounds_passed, extentions_passed )
-- JailBreakClaimWarden
-- Called when somebody claims warden
JailBreakClaimWarden ( player, warden_rounds_in_a_row )
-- JailBreakWardenControlChanged
-- Called when a warden control is changed
JailBreakWardenControlChanged ( player, option, value )
-- JailBreakWardenSpawnProp
-- Called when the warden spawns a prop
JailBreakWardenSpawnProp ( player, type[, model] )
-- JailBreakWardenPlacePointer
-- Called when a pointer is placed
JailBreakWardenPlacePointer ( player, type, position )
Implement a hook using the hook.Add function, example:
hook.Add("JailBreakRoundStart","JB.Examples.RoundStart",function(rounds_passed)
if rounds_passed > 5 then
print "We are past round 5. Let's kill everyone!";
for _,ply in ipairs( player.GetAll() ) do
ply:Kill();
end
end
end);