First off I’m pretty new to starting garrys mod servers. I edited my shared.lua before adding a few custom jobs, that all went smoothly. But after adding a few more when ever anybody logs onto the server. I get this error in the console
[ERROR]gamemodes/darkrp/gamemode/shared.lua:180: '}' expected (to close '{' at line 159) near 'help'
1. unknown - gamemodes/darkrp/gamemode/shared.lua:0
Its most likely just a simple error in my shared.
Heres a pasebin of my shared.lua: http://pastebin.com/9RsfJ1gE
And here
/*--------------------------------------------------------
Default teams. If you make a team above the citizen team, people will spawn with that team!
--------------------------------------------------------*/
TEAM_CITIZEN = AddExtraTeam("Citizen", {
color = Color(20, 150, 20, 255),
model = {
"models/player/Group01/Female_01.mdl",
"models/player/Group01/Female_02.mdl",
"models/player/Group01/Female_03.mdl",
"models/player/Group01/Female_04.mdl",
"models/player/Group01/Female_06.mdl",
"models/player/group01/male_01.mdl",
"models/player/Group01/Male_02.mdl",
"models/player/Group01/male_03.mdl",
"models/player/Group01/Male_04.mdl",
"models/player/Group01/Male_05.mdl",
"models/player/Group01/Male_06.mdl",
"models/player/Group01/Male_07.mdl",
"models/player/Group01/Male_08.mdl",
"models/player/Group01/Male_09.mdl"
},
description = [[The Citizen is the most basic level of society you can hold
besides being a hobo.
You have no specific role in city life.]],
weapons = {},
command = "citizen",
max = 0,
salary = 45,
admin = 0,
vote = false,
hasLicense = false,
candemote = false,
mayorCanSetSalary = true
})
TEAM_POLICE = AddExtraTeam("Civil Protection", {
color = Color(25, 25, 170, 255),
model = {"models/player/police.mdl", "models/player/police_fem.mdl"},
description = [[The protector of every citizen that lives in the city .
You have the power to arrest criminals and protect innocents.
Hit them with your arrest baton to put them in jail
Bash them with a stunstick and they might learn better than to disobey
the law.
The Battering Ram can break down the door of a criminal with a warrant
for his/her arrest.
The Battering Ram can also unfreeze frozen props(if enabled).
Type /wanted <name> to alert the public to this criminal
OR go to tab and warrant someone by clicking the warrant button]],
weapons = {"arrest_stick", "unarrest_stick", "weapon_glock2", "stunstick", "door_ram", "weaponchecker"},
command = "cp",
max = 4,
salary = 65,
admin = 0,
vote = true,
hasLicense = true,
help = {
"Please don't abuse your job",
"When you arrest someone they are auto transported to jail.",
"They are auto let out of jail after some time",
"Type /warrant [Nick|SteamID|Status ID] to set a search warrant for a player.",
"Type /wanted [Nick|SteamID|Status ID] to alert everyone to a wanted suspect",
"Type /unwanted [Nick|SteamID|Status ID] to clear the suspect",
"Type /jailpos to set the jail position"
}
})
TEAM_GANG = AddExtraTeam("Gangster", {
color = Color(75, 75, 75, 255),
model = {
"models/player/Group03/Female_01.mdl",
"models/player/Group03/Female_02.mdl",
"models/player/Group03/Female_03.mdl",
"models/player/Group03/Female_04.mdl",
"models/player/Group03/Female_06.mdl",
"models/player/group03/male_01.mdl",
"models/player/Group03/Male_02.mdl",
"models/player/Group03/male_03.mdl",
"models/player/Group03/Male_04.mdl",
"models/player/Group03/Male_05.mdl",
"models/player/Group03/Male_06.mdl",
"models/player/Group03/Male_07.mdl",
"models/player/Group03/Male_08.mdl",
"models/player/Group03/Male_09.mdl"},
description = [[The lowest person of crime.
A gangster generally works for the Mobboss who runs a crime family.
The Mobboss sets your agenda and you follow it or you might be punished.]],
weapons = {},
command = "gangster",
max = 7,
salary = 45,
admin = 0,
vote = false,
hasLicense = false,
mayorCanSetSalary = false
})
TEAM_MOB = AddExtraTeam("Gang Leader", {
color = Color(25, 25, 25, 255),
model = "models/player/gman_high.mdl",
description = [[The Mobboss is the boss of the criminals in the city.
With his power he coordinates the gangsters and forms an efficient crime
organization.
He has the ability to break into houses by using a lockpick.
The Mobboss also can unarrest you.]],
weapons = {"lockpick", "unarrest_stick"},
command = "mobboss",
max = 1,
salary = 60,
admin = 0,
vote = false,
hasLicense = false,
mayorCanSetSalary = false,
help = {
"As the mob boss, you decide what you want the other Gangsters to do.",
"You get an Unarrest Stick which you can use to break people out of jail.",
"/agenda <Message> Sets the Gangsters' agenda. Use // to go to the next line."
}
})
TEAM_GUN = AddExtraTeam("Gun Dealer", {
color = Color(255, 140, 0, 255),
model = "models/player/monk.mdl",
description = [[A gun dealer is the only person who can sell guns to other
people.
However, make sure you aren't caught selling guns that are illegal to
the public.
/Buyshipment <name> to Buy a weapon shipment
/Buygunlab to Buy a gunlab that spawns P228 pistols]],
weapons = {},
command = "gundealer",
max = 2,
salary = 45,
admin = 0,
vote = false,
hasLicense = false,
mayorCanSetSalary = true
})
TEAM_MEDIC = AddExtraTeam("Medic", {
color = Color(47, 79, 79, 255),
model = "models/player/kleiner.mdl",
description = [[With your medical knowledge,
you heal players to proper
health.
Without a medic, people cannot be healed.
Left click with the Medical Kit to heal other players.
Right click with the Medical Kit to heal yourself.]],
weapons = {"med_kit"},
command = "medic",
max = 3,
salary = 45,
admin = 0,
vote = false,
hasLicense = false,
medic = true,
mayorCanSetSalary = true
})
TEAM_CHIEF = AddExtraTeam("Civil Protection Chief", {
color = Color(20, 20, 255, 255),
model = "models/player/combine_soldier_prisonguard.mdl",
description = [[The Chief is the leader of the Civil Protection unit.
Coordinate the police force to enforce law in the city.
Hit them with arrest baton to put them in jail.
Bash them with a stunstick and they might learn better than to
disobey the law.
The Battering Ram can break down the door of a criminal with a
warrant for his/her arrest.
Type /wanted <name> to alert the public to this criminal
Type /jailpos to set the Jail Position]],
weapons = {"arrest_stick", "unarrest_stick", "weapon_deagle2", "stunstick", "door_ram", "weaponchecker"},
command = "chief",
max = 1,
salary = 75,
admin = 0,
vote = false,
hasLicense = true,
chief = true,
NeedToChangeFrom = TEAM_POLICE, TEAM_POLICEMEDIC
help = {
"Please don't abuse your job",
"When you arrest someone they are auto transported to jail.",
"They are auto let out of jail after some time",
"Type /warrant [Nick|SteamID|Status ID] to set a search warrant for a player.",
"Type /wanted [Nick|SteamID|Status ID] to alert everyone to a wanted suspect",
"Type /unwanted [Nick|SteamID|Status ID] to clear the suspect",
"Type /jailpos to set the jail position"
}
})
TEAM_MAYOR = AddExtraTeam("Mayor", {
color = Color(150, 20, 20, 255),
model = "models/player/breen.mdl",
description = [[The Mayor of the city creates laws to serve the greater good
of the people.
If you are the mayor you may create and accept warrants.
Type /wanted <name> to warrant a player
Type /jailpos to set the Jail Position
Type /lockdown initiate a lockdown of the city.
Everyone must be inside during a lockdown.
The cops patrol the area
/unlockdown to end a lockdown]],
weapons = {},
command = "mayor",
max = 1,
salary = 85,
admin = 0,
vote = true,
hasLicense = false,
mayor = true,
help = {
"Type /warrant [Nick|SteamID|Status ID] to set a search warrant for a player.",
"Type /wanted [Nick|SteamID|Status ID] to alert everyone to a wanted suspect.",
"Type /unwanted [Nick|SteamID|Status ID] to clear the suspect.",
"Type /lockdown to initiate a lockdown",
"Type /unlockdown to end a lockdown",
"Type /placelaws to place a screen containing the laws.",
"Type /addlaw and /removelaw to edit the laws."
}
})
TEAM_HOBO = AddExtraTeam("Hobo", {
color = Color(80, 45, 0, 255),
model = "models/player/corpse1.mdl",
description = [[The lowest member of society. All people see you laugh.
You have no home.
Beg for your food and money
Sing for everyone who passes to get money
Make your own wooden home somewhere in a corner or
outside someone else's door]],
weapons = {"weapon_bugbait"},
command = "hobo",
max = 5,
salary = 0,
admin = 0,
vote = false,
hasLicense = false,
candemote = false,
hobo = true,
mayorCanSetSalary = false
})
//ADD CUSTOM TEAMS UNDER THIS LINE:
TEAM_POLICEMEDIC = AddExtraTeam("Civil Protection Medic", {
color = Color(25, 25, 1225, 255),
model = {"models/player/police.mdl", "models/player/police_fem.mdl"},
description = [[The protector of every citizen that lives in the city .
You have the power to arrest criminals and protect innocents.
Hit them with your arrest baton to put them in jail
Bash them with a stunstick and they might learn better than to disobey
the law.
As a CP Medic you have the power to heal your fellow CP's durring a shoot
out, or simply heal citizens that are in need of aid.
The Battering Ram can break down the door of a criminal with a warrant
for his/her arrest.
The Battering Ram can also unfreeze frozen props(if enabled).
Type /wanted <name> to alert the public to this criminal
OR go to tab and warrant someone by clicking the warrant button]],
weapons = {"med_kit", "arrest_stick", "unarrest_stick", "weapon_glock2", "stunstick", "door_ram", "weaponchecker"},
command = "cpmedic",
max = 2,
salary = 65,
admin = 0,
vote = true,
hasLicense = true,
help = {
"Please don't abuse your job",
"When you arrest someone they are auto transported to jail.",
"They are auto let out of jail after some time",
"Type /warrant [Nick|SteamID|Status ID] to set a search warrant for a player.",
"Type /wanted [Nick|SteamID|Status ID] to alert everyone to a wanted suspect",
"Type /unwanted [Nick|SteamID|Status ID] to clear the suspect",
"Type /jailpos to set the jail position"
}
})
TEAM_GUARD = AddExtraTeam("Guard", {
color = Color(0, 0, 204, 255),
model = "models/player/odessa.mdl",
description = [[The Guard is hired by anybody for any needs. Such as defending
a building full of money printers, or just protecting a gun shop.]],
weapons = {"stunstick", "weaponchecker"},
command = "guard",
max = 5,
salary = 45,
admin = 0,
vote = false,
hasLicense = false,
})
TEAM_THIEF = AddExtraTeam("Thief", {
color = Color(0, 0, 204, 255),
model = "models/player/t_guerilla.mdl",
description = [[The Thief starts with a lockpick. Use this to break into
peoples homes, team up with a Hacker and raid any base.]],
weapons = {"lockpick"},
command = "thief",
max = 3,
salary = 40,
admin = 0,
vote = false,
hasLicense = false,
})
TEAM_HACKER = AddExtraTeam("Hacker", {
color = Color(0, 0, 204, 255),
model = "models/Characters/hostage_04.mdl",
description = [[The Hacker starts with a keypad cracker. Use this to break
into peoples homes, team up with a Theif and raid any base.]],
weapons = {""},
command = "hacker",
max = 3,
salary = 40,
admin = 0,
vote = false,
hasLicense = false,
})
TEAM_GODFATHER = AddExtraTeam("God Father", {
color = Color(255, 255, 255, 255),
model = "models/player/magnusson.mdl",
description = [[The God Father is the boss of the Mafia in the city.
With his power he coordinates the Mafia Members and forms an
efficient crime organization.
He has the ability to break into houses by using a lockpick.
The Mobboss also can unarrest you.]],
weapons = {"lockpick", "unarrest_stick"},
command = "godfather",
max = 1,
salary = 60,
admin = 0,
vote = false,
hasLicense = false,
mayorCanSetSalary = false,
help = {
"As the god father, you decide what you want the other Mafia to do.",
"You get an Unarrest Stick which you can use to break people out of jail.",
"/agenda <Message> Sets the Mafia's agenda. Use // to go to the next line."
}
})
TEAM_MAFIA = AddExtraTeam("Mafia", {
color = Color(240, 240, 240, 255),
model = {
"models\Humans/Group02/male_02.mdl",
"models\Humans/Group02/Male_04.mdl",
"models\Humans/Group02/male_06.mdl",
"models\Humans/Group02/male_08.mdl"},
description = [[The lowest person of crime.
A Mafia generally works for the God Father who runs a crime family.
The God Father sets your agenda and you follow it or you might be punished.]],
weapons = {},
command = "Mafia",
max = 7,
salary = 45,
admin = 0,
vote = false,
hasLicense = false,
mayorCanSetSalary = false
})
TEAM_ADMIN = AddExtraTeam("Admin on Duty", {
color = Color(191, 0, 255, 255),
model = "models/Combine_Super_Soldier.mdl",
description = [[Admin on Duty, Admin only class.]],
weapons = {"lockpick"},
command = "adminonduty",
max = 50,
salary = 69,
admin = 1,
vote = false,
hasLicense = false,
mayorCanSetSalary = false,
})
TEAM_SUPERADMIN = AddExtraTeam("Superadmin on Duty", {
color = Color(191, 0, 255, 255),
model = "models/Combine_Super_Soldier.mdl",
description = [[Admin on Duty, Admin only class.]],
weapons = {"lockpick"},
command = "superadminonduty",
max = 50,
salary = 69,
admin = 1,
vote = false,
hasLicense = false,
mayorCanSetSalary = false,
})
/*
--------------------------------------------------------
HOW TO MAKE A DOOR GROUP
--------------------------------------------------------
AddDoorGroup("NAME OF THE GROUP HERE, you see this when looking at a door", Team1, Team2, team3, team4, etc.)
WARNING: THE DOOR GROUPS HAVE TO BE UNDER THE TEAMS IN SHARED.LUA. IF THEY ARE NOT, IT MIGHT MUCK UP!
The default door groups, can also be used as examples:
*/
AddDoorGroup("Cops and Mayor only", TEAM_CHIEF, TEAM_POLICE, TEAM_MAYOR, TEAM_POLICEMEDIC)
AddDoorGroup("Gundealer only", TEAM_GUN)
/*
--------------------------------------------------------
HOW TO MAKE AN AGENDA
--------------------------------------------------------
AddAgenda(Title of the agenda, Manager (who edits it), Listeners (the ones who just see and follow the agenda))
WARNING: THE AGENDAS HAVE TO BE UNDER THE TEAMS IN SHARED.LUA. IF THEY ARE NOT, IT MIGHT MUCK UP!
The default agenda's, can also be used as examples:
*/
AddAgenda("Gangster's agenda", TEAM_MOB, {TEAM_GANG})
AddAgenda("Mafia's agenda", TEAM_GODFATHER, {TEAM_MAFIA})
AddAgenda("Police agenda", TEAM_MAYOR, {TEAM_CHIEF, TEAM_POLICE, TEAM_POLICEMEDIC})
/*
---------------------------------------------------------------------------
HOW TO MAKE A GROUP CHAT
---------------------------------------------------------------------------
Pick one!
GAMEMODE:AddGroupChat(List of team variables separated by comma)
or
GAMEMODE:AddGroupChat(a function with ply as argument that returns whether a random player is in one chat group)
This one is for people who know how to script Lua.
*/
GM:AddGroupChat(function(ply) return ply:IsCP() end)
GM:AddGroupChat(TEAM_MOB, TEAM_GANG)
GM:AddGroupChat(TEAM_MAFIA, TEAM_GODFATHER)
/*---------------------------------------------------------------------------
Define which team joining players spawn into and what team you change to if demoted
---------------------------------------------------------------------------*/
GM.DefaultTeam = TEAM_CITIZEN
/*---------------------------------------------------------------------------
Define which teams belong to civil protection
Civil protection can set warrants, make people wanted and do some other police related things
---------------------------------------------------------------------------*/
GM.CivilProtection = {
[TEAM_POLICE] = true,
[TEAM_CHIEF] = true,
[TEAM_MAYOR] = true,
[TEAM_POLICEMEDIC] = true
}
/*---------------------------------------------------------------------------
Enable hitman goodies on this team
---------------------------------------------------------------------------*/
DarkRP.addHitmanTeam(TEAM_MOB)