DarkRP Error (Problem in shared.lua)

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)

Line 179 is your problem I believe:


NeedToChangeFrom = TEAM_POLICE, TEAM_POLICEMEDIC

Change it to one of these:


NeedToChangeFrom = TEAM_POLICE,


NeedToChangeFrom = { TEAM_POLICE, TEAM_POLICEMEDIC },

Okay thanks, I’ll try that out real quick… Give me a second.

[editline]9th August 2013[/editline]

I’ve tried both, I guess that was causing one problem. Maybe there’s another? When I login the “Job” on the UI is blank, same goes for the tab menu.

Now I’m getting this error


[ERROR] gamemodes/darkrp/gamemode/shared.lua:347: invalid escape sequence near '"models'
  1. unknown - gamemodes/darkrp/gamemode/shared.lua:0

Any other suggestions? Thanks so far!

From lines 344 to 362, change it from this:


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
})

To this:


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
})

Try it

Okay, one minute. Thanks!

[editline]9th August 2013[/editline]

It works!! Thank you so much!

No Worries

Okay, now it seems that all the new classes that were added, everyone is holing their arms out.
Anything?

[editline]9th August 2013[/editline]

Besides hacker and god father