Group/clan system - DarkRP

i want dont know how to make this, but is there anyway to make a Group or Clan system so players ingame can say /group “Penis” and then over thir head it says “Group: Penis”, like in Cider Roldeplay mod, i need this for DarkRP

i have no idea of how to make this, so thats why im asking here!

My WIP gamemode “SeriousRP” has groups (organizations) which you can start, leave, run, hire and fire people from, invite people to join, etc. - I’ve almost finished coding them. They still need a user interface though which I’ll do when I get some time.

For now, if you have DarkRP, try /job to create a job which is not listed and enable the Job to be shown above people’s heads - at least I think you can do that…

When will this come out ?

[lua]
local function ChangeGroup(ply, args)
if args == “” then return “” end

if RPArrestedPlayers[ply:SteamID()] then
	Notify(ply, 1, 5, string.format(LANGUAGE.unable, "/group", ">2"))
	return ""
end

if ply.LastGroup and 10 - (CurTime() - ply.LastGroup) >= 0 then
	Notify(ply, 1, 4, string.format(LANGUAGE.have_to_wait,  math.ceil(10 - (CurTime() - ply.LastGroup)), "/Group"))
	return ""
end
ply.LastGroup = CurTime()

if not ply:Alive() then
	Notify(ply, 1, 4, string.format(LANGUAGE.unable, "/Group", ""))
	return ""
end

if GetConVarNumber("customGroups") ~= 1 then
	Notify(ply, 1, 4, string.format(LANGUAGE.disabled, "/Group", ""))
	return ""
end

local len = string.len(args)

if len < 3 then
	Notify(ply, 1, 4, string.format(LANGUAGE.unable, "/Group", ">2"))
	return ""
end

if len > 25 then
	Notify(ply, 1, 4, string.format(LANGUAGE.unable, "/Group", "<26"))
	return ""
end

local jl = string.lower(args)
local t = ply:Group()

for k,v in pairs(Groups) do
	if jl == v.name then
		ply:ChangeGroup(k)
	end
end
NotifyAll(2, 4, string.format(ply:Nick()," Has joined Group: " , args))
ply:UpdateGroup(args)
return ""

end
AddChatCommand("/Group", ChangeGroup)
[/lua]

maybe something like that??!

orgrinal job thing:
[lua]
local function ChangeJob(ply, args)
if args == “” then return “” end

if RPArrestedPlayers[ply:SteamID()] then
	Notify(ply, 1, 5, string.format(LANGUAGE.unable, "/job", ">2"))
	return ""
end

if ply.LastJob and 10 - (CurTime() - ply.LastJob) >= 0 then
	Notify(ply, 1, 4, string.format(LANGUAGE.have_to_wait,  math.ceil(10 - (CurTime() - ply.LastJob)), "/job"))
	return ""
end
ply.LastJob = CurTime()

if not ply:Alive() then
	Notify(ply, 1, 4, string.format(LANGUAGE.unable, "/job", ""))
	return ""
end

if GetConVarNumber("customjobs") ~= 1 then
	Notify(ply, 1, 4, string.format(LANGUAGE.disabled, "/job", ""))
	return ""
end

local len = string.len(args)

if len < 3 then
	Notify(ply, 1, 4, string.format(LANGUAGE.unable, "/job", ">2"))
	return ""
end

if len > 25 then
	Notify(ply, 1, 4, string.format(LANGUAGE.unable, "/job", "<26"))
	return ""
end

local jl = string.lower(args)
local t = ply:Team()

for k,v in pairs(RPExtraTeams) do
	if jl == v.name then
		ply:ChangeTeam(k)
	end
end
NotifyAll(2, 4, string.format(LANGUAGE.job_has_become, ply:Nick(), args))
ply:UpdateJob(args)
return ""

end
AddChatCommand("/job", ChangeJob)
[/lua]

Hopefully it will be playable some time this year. That’s as accurate as I can be for now. I’m putting the progress on my wiki at http://code.google.com/p/seriousrp