
if( HelpMenuParent ) then
	HelpMenuParent:Remove();
end

if( HelpMenuContent ) then
	HelpMenuContent:Remove();
end	

if( HelpMenuSide ) then
	HelpMenuSide:Remove();
end	

HelpMenuParent = nil;
HelpMenuContent = nil;
HelpMenuSide = nil;

HelpMenuVisible = false;



function ShowHelp()
if( ValidEntity( LocalPlayer() ) ) then
	HelpMenuVisible = !HelpMenuVisible;
	
	gui.EnableScreenClicker( HelpMenuVisible );
	
	if( HelpMenuVisible ) then
	
		if( not HelpMenuParent ) then
			CreateHelpMenu();
		end
		
		HelpMenuParent:SetVisible( true );
	
	elseif( HelpMenuParent ) then
	
		HelpMenuParent:SetVisible( false );
	
	end
end
end
usermessage.Hook( "ShowHelpMenu", ShowHelp );

local function HelpParentPaint()
if( ValidEntity( LocalPlayer() ) ) then

	draw.DrawText( "TacoScript", "GModToolName", 2, 2, Color( 0, 0, 0, 128 ) );
	draw.DrawText( "TacoScript", "GModToolName", 8, 8, Color( 0, 0, 0, 128 ) );
	draw.DrawText( "TacoScript", "GModToolName", 8, 2, Color( 0, 0, 0, 128 ) );
	draw.DrawText( "TacoScript", "GModToolName", 2, 8, Color( 0, 0, 0, 128 ) );
	draw.DrawText( "TacoScript", "GModToolName", 8, 5, Color( 0, 0, 0, 128 ) );
	draw.DrawText( "TacoScript", "GModToolName", 5, 8, Color( 0, 0, 0, 128 ) );
	draw.DrawText( "TacoScript", "GModToolName", 5, 5, Color( 255, 255, 255, 255 ) );
	
	surface.SetFont( "GModToolName" );
	local w = surface.GetTextSize( "TacoScript" );

	draw.DrawText( "Created by Rick Darkaliono. Updated by Disseminate.", "GModToolSubtitle", w + 22, 19, Color( 0, 0, 0, 128 ) );
	draw.DrawText( "Created by Rick Darkaliono. Updated by Disseminate.", "GModToolSubtitle", w + 28, 25, Color( 0, 0, 0, 128 ) );
	draw.DrawText( "Created by Rick Darkaliono. Updated by Disseminate.", "GModToolSubtitle", w + 28, 19, Color( 0, 0, 0, 128 ) );
	draw.DrawText( "Created by Rick Darkaliono. Updated by Disseminate.", "GModToolSubtitle", w + 22, 25, Color( 0, 0, 0, 128 ) );
	draw.DrawText( "Created by Rick Darkaliono. Updated by Disseminate.", "GModToolSubtitle", w + 28, 22, Color( 0, 0, 0, 128 ) );
	draw.DrawText( "Created by Rick Darkaliono. Updated by Disseminate.", "GModToolSubtitle", w + 25, 25, Color( 0, 0, 0, 128 ) );
	draw.DrawText( "Created by Rick Darkaliono. Updated by Disseminate.", "GModToolSubtitle", w + 25, 22, Color( 255, 255, 255, 255 ) );
		
end
end

function CreateHelpMenu()
if( ValidEntity( LocalPlayer() ) ) then
	local function close()
	
		ShowHelp();
	
	end

	HelpMenuParent = vgui.Create( "TacoPanel" );
	HelpMenuParent:SetPos( 50, 50 );
	HelpMenuParent:SetSize( ScrW() - 100, ScrH() - 100 );
	HelpMenuParent:SetTitle( "Shitsticks Help" );
	HelpMenuParent:SetColor( Color( 0, 0, 0, 30 ) );
	HelpMenuParent:SetPaintHook( HelpParentPaint );
	HelpMenuParent:SetCloseEvent( close );
	
	HelpMenuParent.HeaderTall = 80;
	HelpMenuParent.ColWidth = HelpMenuParent:GetWide() * .14;
	HelpMenuParent.Col2Width = HelpMenuParent:GetWide() - HelpMenuParent.ColWidth;
	HelpMenuParent.ColHeight = HelpMenuParent:GetTall() * .14;
	HelpMenuParent.Col2Height = HelpMenuParent:GetTall() - HelpMenuParent.ColHeight;
	
	HelpMenuSide = vgui.Create( "TacoPanel", HelpMenuParent );
	HelpMenuSide:SetPos( 0, HelpMenuParent.HeaderTall );
	HelpMenuSide:SetSize( HelpMenuParent.ColWidth + 20, HelpMenuParent:GetTall() );
	HelpMenuSide:SetColor( Color( 0, 0, 0, 60 ) );
	HelpMenuSide:EnableTitle( false );
	HelpMenuSide:EnableCloseButton( false );
	HelpMenuSide:EnableDragging( false );
	HelpMenuSide:EnableFullWindow( true );
	
	CreateHelpContents();
	
	local link = vgui.Create( "TacoLink", HelpMenuSide );
	link:SetPos( 10, 15 );
	link:SetLinkFont( "Default" );
	link:SetLinkText( "Basic Info" );
	link.ID = 0;
	link:SetCallback( SetContents );

	local link = vgui.Create( "TacoLink", HelpMenuSide );
	link:SetPos( 10, 30 );
	link:SetLinkFont( "Default" );
	link:SetLinkText( "Rules" );
	link.ID = 1;
	link:SetCallback( SetContents );

	local link = vgui.Create( "TacoLink", HelpMenuSide );
	link:SetPos( 10, 45 );
	link:SetLinkFont( "Default" );
	link:SetLinkText( "Chat Commands" );
	link.ID = 2;
	link:SetCallback( SetContents );
	
	local link = vgui.Create( "TacoLink", HelpMenuSide );
	link:SetPos( 10, 60 );
	link:SetLinkFont( "Default" );
	link:SetLinkText( "Console Commands" );
	link.ID = 3;
	link:SetCallback( SetContents );
	
	local link = vgui.Create( "TacoLink", HelpMenuSide );
	link:SetPos( 10, 75 );
	link:SetLinkFont( "Default" );
	link:SetLinkText( "Getting Tokens" );
	link.ID = 4;
	link:SetCallback( SetContents );
	
	local link = vgui.Create( "TacoLink", HelpMenuSide );
	link:SetPos( 10, 90 );
	link:SetLinkFont( "Default" );
	link:SetLinkText( "Business" );
	link.ID = 5;
	link:SetCallback( SetContents );
	
	local link = vgui.Create( "TacoLink", HelpMenuSide );
	link:SetPos( 10, 105 );
	link:SetLinkFont( "Default" );
	link:SetLinkText( "Stats" );
	link.ID = 6;
	link:SetCallback( SetContents );
	
	local link = vgui.Create( "TacoLink", HelpMenuSide );
	link:SetPos( 10, 120 );
	link:SetLinkFont( "Default" );
	link:SetLinkText( "Rankings" );
	link.ID = 7;
	link:SetCallback( SetContents );
	
	local link = vgui.Create( "TacoLink", HelpMenuSide );
	link:SetPos( 10, 135 );
	link:SetLinkFont( "Default" );
	link:SetLinkText( "Credits" );
	link.ID = 8;
	link:SetCallback( SetContents );
	
	local link = vgui.Create( "TacoLink", HelpMenuSide );
	link:SetPos( 10, 150 );
	link:SetLinkFont( "Default" );
	link:SetLinkText( "Website" );
	link.ID = 9;
	link:SetCallback( SetContents );
	--[[
	local link = vgui.Create( "TacoLink", HelpMenuSide );
	link:SetPos( 10, 135 );
	link:SetLinkFont( "Default" );
	link:SetLinkText( "Dave's Guide" );
	link.ID = 8;
	link:SetCallback( SetContents );--]]
	ApplyBasicInfo();
	
 end
end

function CreateHelpContents()
if( ValidEntity( LocalPlayer() ) ) then
	if( HelpMenuContent ) then
		HelpMenuContent:Remove();
		HelpMenuContent = nil;
	end

	HelpMenuContent = vgui.Create( "TacoPanel", HelpMenuParent );
	HelpMenuContent:SetPos( HelpMenuParent.ColWidth, HelpMenuParent.HeaderTall );
	HelpMenuContent:SetSize( HelpMenuParent.Col2Width, HelpMenuParent:GetTall() );
	HelpMenuContent:EnableTitle( false );
	HelpMenuContent:EnableCloseButton( false );
	HelpMenuContent:EnableDragging( false );
	HelpMenuContent:EnableFullWindow( true );
end
end

function SetContents( link )
	
	if( ValidEntity( LocalPlayer() ) ) then
		
		local id = link.ID;
		
		CreateHelpContents();
		
		if( id == 0 ) then
			ApplyBasicInfo();
		end
		
		if( id == 1 ) then
			ApplyRules();
		end
		
		if( id == 2 ) then
			ApplyChatCommands();
		end
		
		if( id == 3 ) then
			ApplyConsoleCommands();
		end
		
		if( id == 4 ) then
			ApplyGettingTokens();
		end
		
		if( id == 5 ) then
			ApplyBusiness();
		end
		
		if( id == 6 ) then
			ApplyStats();
		end
		
		if( id == 7 ) then
			ApplyRanking();
		end
		
		if( id == 8 ) then
			ApplyCredits();
		end
		
		if( id == 9 ) then
			ApplyWebsite();
		end
		
	end
	
end

function ApplyBasicInfo()

	HelpMenuContent:AddLabel( FormatLine( "TacoScript is an RP gamemode created by Rick Dark. It has been optimized and adapted for SST by Disseminate.", "Default", HelpMenuParent.Col2Width - 120 ), "Default", 10, 9, Color( 255, 255, 255, 255 ) );
	
end

function ApplyRules()
	
	if( ValidEntity( LocalPlayer() ) ) then
		
		local text = "These are the rules.\n\n";
		text = text .. "1) A roleplay name is needed.\n\n";
		
		text = text .. "Acceptable names are:\n";
		text = text .. "   Rank + First Name + Last Name (example: Rct. Rick Darkaliono)\n";
		text = text .. "   Rank + First Name + Middle Initial + Last Name (example: Rct. Richard K. Darkaliono)\n";
		text = text .. "   Rank + Two Initials + Last Name (example: Rct. J.R. Menson )\n";
		text = text .. "Any other format is not acceptable and you will be kicked after being warned for not having an RP name. And, names like Mike Hunt or other extremely witty names are bannable.\n\n";
		
		text = text .. "2) Grav-gun DMing is bannable.\n";
		text = text .. "3) Killing another player for non-RP reasons can be kickable. Excluding accidents or the like.\n";
		text = text .. "4) Arguing in OOC excessively or not shutting up can be kickable or even bannable.\n";
		text = text .. "5) Building gigantic, space-taking things, or something completely unrelated to any roleplay is kickable/bannable - unless an admin allows it.\n";
		text = text .. "6) Abusing tool trust, like removing random doors or placing dynamites and killing everyone can you get you banned from the server, temporarily or permanently, based on severity.\n";
		
		HelpMenuContent:AddLabel( FormatLine( text, "Default", HelpMenuParent.Col2Width - 120 ), "Default", 10, 9, Color( 255, 255, 255, 255 ) );
		
		surface.SetFont( "Default" );
		local w, h = surface.GetTextSize( text );
		
		text = "";
		
		text = text .. "7) \"Stupid/Dumb\" roleplay can be kickable/bannable.\n\n";
		
		text = text .. "These rules are in no way complete. \"It's not in the rules\" is NOT a valid excuse.";
		
		HelpMenuContent:AddLabel( FormatLine( text, "Default", HelpMenuParent.Col2Width - 120 ), "Default", 10, h - 3, Color( 255, 255, 255, 255 ) );	
		
	end
	
end

function ApplyChatCommands()
	
	if( ValidEntity( LocalPlayer() ) ) then
		
		local text = "These commands are typed in chat\n";
		text = text .. "You can type \"!\" to execute it as a console command (eg. !toggleholster = rp_toggleholster)\n\n";
		text = text .. "// <text> - Speak in OOC (or \"Out-Of-Character\" chat)  This text is global, and not used for RP.  Other OOC prefixes are /a, and ((\n";
		text = text .. "[[ or .// <text> - Speak in local OOC\n";
		text = text .. "/w <text> - Whisper text locally\n";
		text = text .. "/y <text> - Yell text locally\n";
		text = text .. "/an <text> - Talk anonymously locally\n";
		text = text .. "/it <text> - Talk as an object (\"/it lol\" returns \"**lol\")\n";
		text = text .. "/r <text> - If you have a radio, send a radio message\n";
		text = text .. "/pm <name> <text> - Send a private message to someone\n";
		text = text .. "/me <text> - Outputs third person text\n\n";
		
		text = text .. "/adv <text> - Advertise something for 25 credits\n";
		text = text .. "/bc <text> - MI can use this to broadcast something\n\n";
		
		text = text .. "/write - Write a letter, if you have paper\n";
		text = text .. "/title <text> - Set your character title (viewable by other players)\n\n";
		
		text = text .. "/adddoorowner <Name> - Add an owner to your door\n";
		text = text .. "/removedoorowner <Name> - Remove owner from your door\n";
		text = text .. "/doortitle <text> - Set the name of a door you're looking at (viewable by other players)\n\n";
		
		HelpMenuContent:AddLabel( FormatLine( text, "Default", HelpMenuParent.Col2Width - 120 ), "Default", 10, 9, Color( 255, 255, 255, 255 ) );
		
		surface.SetFont( "Default" );
		local w, h = surface.GetTextSize( text );
		
		text = "";
		
		text = text .. "/givegun - Give the player you're looking at the gun you're holding\n";
		text = text .. "/dropgun - Drop the current gun you're holding\n\n";
		
		text = text .. "/givemoney or /givecash or /givecredits <Amount> - Give a player you're looking at a specified number of credits\n\n";
		
		text = text .. "/help - Open help menu\n";
		text = text .. "!a <Message> - Speak to admins\n";
		
		HelpMenuContent:AddLabel( FormatLine( text, "Default", HelpMenuParent.Col2Width - 120 ), "Default", 10, h - 3, Color( 255, 255, 255, 255 ) );

	end
	
end

function ApplyConsoleCommands()
	
	if( ValidEntity( LocalPlayer() ) ) then
		
		local text = "These commands are typed in console\n\n";
		text = text .. "rp_headbob <1/0> - Toggle head bobbing\n";
		text = text .. "rp_toggleholster - Holster and unholster your weapon\n";
		text = text .. "rp_changename <name> - Change your current character's name (doesn't create new character)\n";
		text = text .. "setname <name> - Create a new character\n";
		text = text .. "rp_ramdoor - Ram a door, as opposed to pressing with reload with unholstered fists\n";
		text = text .. "rp_listsaves - List all of your current saves\n";
		text = text .. "rp_deletesave <name> - Delete a save.  PUT QUOTATION MARKS AROUND THE NAME\n";
		text = text .. "rp_animslist - Get a list of player anims\n";
		text = text .. "rp_trooperroster - Get a view of all current Mobile Infantry flags and members\n";
		text = text .. "rp_proplog [Amount of logs] - Retrieve a log of prop spawning.\n";
		text = text .. "rp_itemlog [Amount of logs] - Retrieve a log of item spawning.\n";
		text = text .. "rp_toollog [Amount of logs] - Retrieve a log of tool gun actions\n";
		text = text .. "\n";
		
		text = text .. "gm_showhelp - Show this menu\n";
		text = text .. "gm_showspare1 or F3 - Show your player menu\n";
		text = text .. "gm_showspare2 or F4 - Own properties and doors\n\n\n";
		
		HelpMenuContent:AddLabel( FormatLine( text, "Default", HelpMenuParent.Col2Width - 120 ), "Default", 10, 9, Color( 255, 255, 255, 255 ) );	
		
		surface.SetFont( "Default" );
		local w, h = surface.GetTextSize( text );
		
		if( LocalPlayer():IsAdmin() or LocalPlayer():IsSuperAdmin() ) then
			
			text = "";
			
			text = text .. "Admin commands:\n\n";
			text = text .. "rp_settrooperflag <Target> <Flags> - Set a player's current Trooper flags\n";
			text = text .. "rp_setplayerflag <Target> <Flags> - Set a player's current Psi flags. Can be A, B, or C.\n";
			text = text .. "rp_name <Target> - Issue name warning\n";
			text = text .. "rp_seeall - See where all players are\n";
			text = text .. "rp_addtooltrust <Target> - Give tool trust\n";
			text = text .. "rp_removetooltrust <Target> - Remove tool trust\n";
			text = text .. "rp_addttsteamid, rp_removettsteamid <SteamID>\n";
			text = text .. "rp_ttlist - Get TT list\n";
			text = text .. "rp_allowtools <1 or 0> - Enable/disable toolgun\n";
			text = text .. "rp_oocdelay <Amount> - Delay OOC in seconds\n";
			text = text .. "rp_mi, rp_fleet, rp_citizen <Target> - Force team commands\n";
			text = text .. "rp_kick <Name/PartialName> <Reason> - Kick a player\n";
			text = text .. "rp_ban <Name/PartialName> <Length in minutes> - Ban a player\n";
			text = text .. "rp_slap <Name/PartialName> - Slap a player\n";
			text = text .. "rp_slay <Name/PartialName> - Slay a player\n";
			text = text .. "rp_bring <Name/PartialName> - Bring a player to you\n";
			text = text .. "rp_goto <Name/PartialName> - Goto a player to you\n";
			text = text .. "rp_physgunban <Name/PartialName> - Ban a player from physgun\n";
			text = text .. "rp_physgununban <Name/PartialName> - Un-Ban a player from physgun\n";
			text = text .. "rp_noclip - Noclip yourself\n";
			text = text .. "rp_restartmap - Restart the map\n";
			text = text .. "rp_changemap <Map> - Change the map\n";
			text = text .. "rp_cleanmap - Clean the map\n";
			text = text .. "\n";
			
			HelpMenuContent:AddLabel( FormatLine( text, "Default", HelpMenuParent.Col2Width - 120 ), "Default", 10, h - 3, Color( 255, 255, 255, 255 ) );
			
			surface.SetFont( "Default" );
			local w, h2 = surface.GetTextSize( text );
			
			text = "";
			
			text = text .. "rp_spawnbug - Spawn an arachnid.\n";
			text = text .. "rp_spawnantlion <[0 or 1]> - Spawn an antlion. If 1, they have the ability to jump. If 0 or nothing, they don't.\n";
			text = text .. "rp_spawnantguard - Spawn a OH FUCK RUN.\n";
			text = text .. "rp_spawndropship - Spawn a dropship.\n";
			text = text .. "rp_spawnpod <[Name/PartialName]> - Spawn a droppod. If no name is specified, make it empty.\n";
			text = text .. "rp_shake [amplitude] - Shake everyone's screen. The nuke uses amplitude 950.\n\n";
			
			text = text .. "rp_playall [Sound Path] - Play a sound that's on the client's hard drive\n";
			text = text .. "rp_youtube [Youtube ID] - Play a youtube song. ID is what v= in the youtube URL.\n\n";
			
			text = text .. "rp_givenoclip [Name/PartialName] <[0 or 1]> - Give (or remove) a player noclip\n\n";
			
			text = text .. "rp_findowner - Find owner of door you're looking at\n";
			text = text .. "rp_unowndoor - Unown door you're looking at\n";
			text = text .. "rp_unownproperty - Unown property of the door you're looking at\n\n";
			
			text = text .. "rp_maplist - Prints a list of all maps available on the server.\n";
			text = text .. "rp_forcecharcreate [Name/PartialName] - Force a player to see charcreate window (useful for shadows).\n";
			text = text .. "rp_forcechangename [Name/PartialName] [New Name] - Force a player to change their name.\n\n";
			
			text = text .. "rp_minimize [0 or 1] - dont ask\n";
			text = text .. "rp_maximize [0 or 1] - dont ask\n";
			-- 23
			HelpMenuContent:AddLabel( FormatLine( text, "Default", HelpMenuParent.Col2Width - 120 ), "Default", 10, h + h2 - 6, Color( 255, 255, 255, 255 ) );	
			
		end
		
	end
	
end

function ApplyGettingTokens()
	
	if( ValidEntity( LocalPlayer() ) ) then
		
		text = "Credits really don't matter in SST.\n";
		text = text .. "The dev team is working on abolishing them.";
		
		HelpMenuContent:AddLabel( FormatLine( text, "Default", HelpMenuParent.Col2Width - 120 ), "Default", 10, 9, Color( 255, 255, 255, 255 ) );
		
	end
	
end

function ApplyBusiness()
	
	text = "Businesses are also unnecessary in SST.\n";
	text = text .. "Again, the dev team is working on it. However, in the meantime, here's how you use it:\n\n";
	text = text .. "1) Open the player menu\n";
	text = text .. "2) Go under the Business tab\n";
	text = text .. "3) Press Create Business\n";
	text = text .. "4) Ponder why you needed to read this to figure out how to make a business\n\n";
	
	text = text .. "You must purchase a supply license, allowing you to purchase products and sell them\n";

	HelpMenuContent:AddLabel( FormatLine( text, "Default", HelpMenuParent.Col2Width - 120 ), "Default", 10, 9, Color( 255, 255, 255, 255 ) );	
	
end

function ApplyStats()
	
	text = "Strength - The amount of damage your punches or any other melee attacks do.  Punching/melee attacking something will increase your strength.\n";
	text = text .. "Speed - The speed at which your character runs.  Running increases this.\n";
	text = text .. "Sprint - How long you can sprint for.  Running increases this.\n";
	text = text .. "Endurance - Your ability to handle damage or regenerate health over time.  Taking damage increases your endurance overtime. (Melee damage only)\n";
	text = text .. "Aim - Your character's ability to aim. Shooting raises this\n";
	text = text .. "Medic - Your character's ability to heal someone.  Healing/bandaging raises this. Just because you have a high medic skill does NOT mean you're a medic ICly.\n";
	text = text .. "Sneak - How agile you are in moving while sneaking. Crouching around while moving raises this.\n\n";
	
	text = text .. "Raising stats will become more difficult as your stat is higher.  At 85 or higher, it will be the most difficult to raise a stat.\n";
	
	HelpMenuContent:AddLabel( FormatLine( text, "Default", HelpMenuParent.Col2Width - 120 ), "Default", 10, 9, Color( 255, 255, 255, 255 ) );	
	
end

function ApplyRanking()
	
	text = "Everyone in SST that is a regular character has a rank in front of their name.\n";
	text = text .. "Here's a brief summary of all the ranks.\n\n";
	
	text = text .. "Rct. - Recruit\n";
	text = text .. "  Recruits are the newbies in the Mobile Infantry. Everyone starts out as one.\n\n";
	
	text = text .. "Pvt. - Private\n";
	text = text .. "  Privates are the greenhorns. They've been on at least one mission and have been promoted from a recruit.\n\n";
	
	text = text .. "Pfc. - Private First Class\n";
	text = text .. "  Pfc.'s are privates that have gone above and beyond expectations.\n\n";
	
	text = text .. "Cpl. - Corporal\n";
	text = text .. "  Corporals are promoted privates. They are junior NCOs and can command anyone under them. They can also promote recruits and privates.\n\n";
	
	text = text .. "Sgt. - Sargeant\n";
	text = text .. "  Sarges are NCOs. They are very experienced roleplayers. They can promote and demote recruits and privates, as well as promote private\n  first classes to Corporal with another Sarge's consultation.\n\n";
	
	text = text .. "SSgt. - Staff Sargeant\n";
	text = text .. "  Staff Sarges are senior NCOs. They can demote or promote anyone corporal and below.\n\n";
	
	HelpMenuContent:AddLabel( FormatLine( text, "Default", HelpMenuParent.Col2Width - 120 ), "Default", 10, 9, Color( 255, 255, 255, 255 ) );	
	
	surface.SetFont( "Default" );
	local w, h = surface.GetTextSize( text );
	
	text = "";
	
	text = text .. "TSgt. - Tech Sargeant\n";
	text = text .. "  TSarges are senior NCOs. They are some of the most experienced men in the MI. They can do everything a Staff Sarge can do.\n\n";
	
	text = text .. "Lt. - Lieutenant\n";
	text = text .. "  Lieutenants are the elite. They can promote, demote, or kick out anyone below them.\n";
	
	HelpMenuContent:AddLabel( FormatLine( text, "Default", HelpMenuParent.Col2Width - 120 ), "Default", 10, h - 3, Color( 255, 255, 255, 255 ) );	
	
end

function ApplyCredits()

	text = "Original Coder/Developer - \n";
	text = text .. "  Rick Dark\n\n";
	
	text = text .. "SST Developer - \n";
	text = text .. "  Disseminate\n\n";
	
	text = text .. "Lead Admins - \n";
	text = text .. "  Hazard\n";
	text = text .. "  Skippy\n\n";
	
	text = text .. "Admins - \n";
	text = text .. "  Hicks\n";
	text = text .. "  Xalphox\n";
	text = text .. "  Effey\n";
	text = text .. "  Disseminate\n";
	text = text .. "  Theo\n";
	text = text .. "  Mervill\n";
	text = text .. "  jacyte\n";
	text = text .. "  Blank\n";
	text = text .. "  Tipper\n";
	text = text .. "  Kamern\n";
	text = text .. "  Omega322\n\n";
	
	text = text .. "Deserter - \n";
	text = text .. "  0ce\n";
	
	
	HelpMenuContent:AddLabel( FormatLine( text, "Default", HelpMenuParent.Col2Width - 120 ), "Default", 10, 9, Color( 255, 255, 255, 255 ) );
	
end

function ApplyWebsite()
	
	WebHTML = vgui.Create( "HTML", HelpMenuContent );
	WebHTML:SetPos( 50, 50 );
	WebHTML:SetSize( HelpMenuParent.Col2Width - 100, HelpMenuParent.Col2Height - 100 );
	WebHTML:OpenURL( "http://www.necropolisrp.net/forums/" );

end

function ApplyDaveG()

	HelpMenuContent:AddScrollBar();
	HelpMenuContent:SetMaxScroll( 32 * ( 58 + 1 ) );
	 
	local scroll = HelpMenuContent:GetScrollAmount();
	--print(scroll)
	
	text = "";
text = text .. "Here you will find the answers to almost everything you need to know when starting out in our community. I will keep it as simple as possible. We will cover -\n";
text = text .. "\n";
text = text .. "1. Info on the Community / Server\n";
text = text .. "2. Our Roleplay Scenario\n";
text = text .. "3. Opportunities for Roleplay via Tacoscript\n";
text = text .. "4. Rules\n";
text = text .. "5. Useful Commands\n";
text = text .. "\n";
text = text .. "----------------------------------------------------\n";
text = text .. "\n";
text = text .. "1. Info on the Community / Server\n";
text = text .. "\n";
text = text .. 'Razor Roleplay was created by cocks around August 2008, along with Shitsticks.\n';
text = text .. "\n";
text = text .. "Shitsticks is constantly under development, and is scheduled for completion sometime next year. However, RazorRP reserves the right to the most up-to-date version at all times, with its new features and so forth. Other servers using Shitsticks are non-existant.\n";
text = text .. "\n";
text = text .. "Razor Roleplay is run by CERN, the team behind the Large Hadron Collider.\n";
text = text .. "\n";

	HelpMenuContent:AddLabel( FormatLine( text, "Default", HelpMenuParent.Col2Width - 120 ), "Default", 10, 9, Color( 255, 255, 255, 255 ) );	


	surface.SetFont( "Default" );
	local w, h = surface.GetTextSize( text );
	
	text = "";
text = text .. "Shitsticks is now hosted entirely by NecropolisRP, not an outisde source. i.e. dave lol.\n";
text = text .. "\n";
text = text .. "We are no longer associated with Dave or TnB.\n";
text = text .. "\n";
text = text .. "--------------------------------------------------------\n";
text = text .. "\n";
text = text .. "2. Our Roleplay Scenario\n";
text = text .. "\n";
text = text .. "- Shitsticks is a StarShip Troopers themed roleplay server, set *AFTER* the assault on Klendathu.\n";
text = text .. "\n";
text = text .. '- There are no "CPs", they are replaced by the Mobile Infantry and Fleet.\n';
text = text .. "\n";
text = text .. "- This is a strictly SERIOUS Roleplay server, with no exceptions. We believe that we offer the best, the best in Serious Roleplay on a large scale. If you wish to do any of the following things, you are best finding a community running DarkRP or so forth -\n";
text = text .. "= Starting gangs or mafias.\n";
text = text .. "= Deathmatching (DMing) - killing people with no reason.\n";
text = text .. "= Assuming Shitsticks is an RPG gamemode - The aim of our server is to Roleplay, do not become sidetracked by Shitsticks inventory features etc.\n";
text = text .. "\n";
text = text .. "-------------------------------------------------------------------\n";

	HelpMenuContent:AddLabel( FormatLine( text, "Default", HelpMenuParent.Col2Width - 120 ), "Default", 10, h + 32, Color( 255, 255, 255, 255 ) );	

	surface.SetFont( "Default" );
	local w, h2 = surface.GetTextSize( text );
	
	text = "";
	
text = text .. "\n";
text = text .. "3. Opportunities for Roleplay at SSTRP\n";
text = text .. "\n";
text = text .. "- We have 3 main Factions -\n";
text = text .. "\n";
text = text .. "> The Federation\n";
text = text .. "> The Citizens\n";
text = text .. "> The Arachnids\n";
text = text .. "\n";
text = text .. "Anyone can be in the mobile infantry, however you must be flagged by an administrator before you can /mi .\n";
text = text .. "\n";
text = text .. "Citizens -\n";
text = text .. "\n";
text = text .. "Everyone starts out as a citizen.\n";
text = text .. "\n";
text = text .. "The Arachnids soley consist of NPCs.\n";

	HelpMenuContent:AddLabel( FormatLine( text, "Default", HelpMenuParent.Col2Width - 120 ), "Default", 10, h + h2 + 28, Color( 255, 255, 255, 255 ) );	
surface.SetFont( "Default" );
	local w, h3 = surface.GetTextSize( text );
	
	text = "";
text = text .. "Everyone starts out as Private in the Mobile Infantry.\n";
text = text .. "\n";
text = text .. 'Those with good millitary capability can be promoted and then hold rank over those below them..\n';
text = text .. "\n";
text = text .. 'Also you may apply to become a member of the Fleet (Crew aboard the TFCT Yukon), although this spot is reserved for more Experienced Roleplayers.\n';
text = text .. "\n";
text = text .. "\n";
text = text .. "The Resistance -\n";
text = text .. "\n";
text = text .. "There are no 'lul shoop federazhun' rebels in SST.\n";
text = text .. "\n";
	HelpMenuContent:AddLabel( FormatLine( text, "Default", HelpMenuParent.Col2Width - 120 ), "Default", 10, h + h2 + h3 + 40, Color( 255, 255, 255, 255 ) );	

surface.SetFont( "Default" );
	local w, h4 = surface.GetTextSize( text );
	
	text = "";
text = text .. "The rest of this\n";
text = text .. "is a work in progress\n";
text = text .. "so yah, um. cocks.\n";
text = text .. "\n";
text = text .. "\n";
text = text .. "\n";
text = text .. "\n";
text = text .. "\n";
text = text .. "\n";
text = text .. "\n";
text = text .. "\n";
text = text .. "\n";
text = text .. "\n";
text = text .. "\n";
text = text .. "\n";
text = text .. "\n";
text = text .. "\n";
text = text .. "\n";
text = text .. "\n";
text = text .. "\n";
text = text .. "\n";
	HelpMenuContent:AddLabel( FormatLine( text, "Default", HelpMenuParent.Col2Width - 120 ), "Default", 10, h + h2 + h3 + h4 + 52, Color( 255, 255, 255, 255 ) );	

surface.SetFont( "Default" );
	local w, h5 = surface.GetTextSize( text );
text = "----------------------------------------------------------------------------\n";
text = text .. "\n";
text = text .. "4. Rules / terms\n";
text = text .. "\n";
text = text .. "A list of helpful terms -\n";
text = text .. "\n";
text = text .. "TT - Tooltrust. The ability to use toolgun, basic or advanced. Apply on the forum. [Very rarely used/given out in SST, only in building dropships] \n";
text = text .. "\n";
text = text .. "IC / OOC - In-Character / Out-Of-Character -\n";
text = text .. "= In Character is what your character can say or do such as 'Hello, may I buy a newspaper?'\n";
text = text .. "= Out-Of-Character is what you say to other gamers such as 'How do I open my inventory?'\n";
text = text .. "\n";
text = text .. "Metagaming - This term describes when one player is using 'OOC' information IC. For example -\n";
text = text .. "= Knowing somebodies name by looking at the tag above their head.\n";
text = text .. "= Changing how you act due to something that has been said in OOC Chat - eg 'OOC: Somebody just dropped a gun in the bar'\n";
text = text .. "= The New Life Rule. If you are killed, you do NOT know who killed you, you forget your immediate thoughts IC. DO NOT GO BACK TO WHERE YOU DIED.\n";
text = text .. "\n";
	HelpMenuContent:AddLabel( FormatLine( text, "Default", HelpMenuParent.Col2Width - 120 ), "Default", 10, h + h2 + h3 + h4 + h5 + 58, Color( 255, 255, 255, 255 ) );	
surface.SetFont( "Default" );
	local w, h6 = surface.GetTextSize( text );
	text = "";
text = text .. "Deathmatching (DMing) - Killing somebody without a decent In-Character reason is TOTALLY FORBIDDEN. We have plenty of admins present at all times of the day,\n"; 
text = text .. "and they WILL remove you from the server.\n";
text = text .. "\n";
text = text .. "Use of the Physgun - You may not propsurf (use the physgun to climb the map, or move on props). You may not move other peoples props without valid RP reasons and motives. You will have this tool removed if you abuse it.\n";
text = text .. "\n";
text = text .. "Punchwhoring - Abuse of the 'hands / fists' swep. if you are seen to be punching people for no or little reason, you will be removed.\n";
text = text .. "\n";
text = text .. "SST - StarShip Troopers\n";
text = text .. "MI - Mobile Infantry\n";
text = text .. "SM - Skymarshal\n";
text = text .. "Pvt - Private (lowest rank in the MI)\n";
text = text .. "Pfc - Private First Class\n";
text = text .. "Cpl - Corporal (a rank used to lead Privates into battle)\n";
text = text .. "Sgt - Sergeant\n";
text = text .. "SSgt - Staff Sergeant\n";
text = text .. "Lt - Lieutenant\n";
text = text .. "TFCT Yukon - The ship you are currently stationed on.\n";
	HelpMenuContent:AddLabel( FormatLine( text, "Default", HelpMenuParent.Col2Width - 120 ), "Default", 10, h + h2 + h3 + h4 + h5 + h6 + 72, Color( 255, 255, 255, 255 ) );	
surface.SetFont( "Default" );
	local w, h7 = surface.GetTextSize( text );
	text = "";
text = text .. "\n";
text = text .. "\n";
text = text .. "-----------------------------------------------------------\n";
text = text .. "\n";
text = text .. "5. Useful Commands -\n";
text = text .. "\n";
text = text .. "// - OOC Chat\n";
text = text .. "[[ - Local OOC chat\n";
text = text .. "/mi - flag up as mobile infantry\n";
text = text .. "/y - yell\n";
text = text .. "/w - whisper\n";
text = text .. "/pm Name (or part of name) - Send an PM.\n";
text = text .. "/r - Radio chat\n";
text = text .. "F3 - Open player menu / Inventory\n";
text = text .. "/givemoney ## - Gives money\n";
text = text .. "/dropweapon\n";
text = text .. "/giveweapon (must be looking closely at the player)\n";
text = text .. "It is a good idea to bind those also ^\n";
text = text .. 'bind "o" "say /dropweapon"\n';
text = text .. ' bind "p" say /giveweapon"\n';
text = text .. '!a ------ - Send a message to the admins eg "!a Someone just detonated the core"\n';
	HelpMenuContent:AddLabel( FormatLine( text, "Default", HelpMenuParent.Col2Width - 120 ), "Default", 10, h + h2 + h3 + h4 + h5 + h6 + h7 + 83, Color( 255, 255, 255, 255 ) );	
local w, h8 = surface.GetTextSize( text );
	text = "";
text = text .. "\n";
text = text .. "\n";
text = text .. "Console commands -\n";
text = text .. "rp_headbob 0 / 1 - Set this to turn off the headbob effect.\n";
text = text .. 'rp_toggleholster - toggles you lowering or aiming your weapon, bind it in console as     bind "x" "rp_toggleholster"\n';
text = text .. "(when your weapon is holstered, you are still holding it by your side, so take out your hands to put it away fully)\n";
text = text .. "rp_changename - Change the name of the current character\n";
text = text .. "name a - Opens the character creation screen. Used also for swapping to another character.\n";
text = text .. "\n";
text = text .. "\n";
	HelpMenuContent:AddLabel( FormatLine( text, "Default", HelpMenuParent.Col2Width - 120 ), "Default", 10, h + h2 + h3 + h4 + h5 + h6 + h7 + h8 + 89, Color( 255, 255, 255, 255 ) );	
local w, h9 = surface.GetTextSize( text );
	text = "";
text = text .. "------------------------------------------------------------------\n";
text = text .. "\n";
text = text .. "\n";
text = text .. "\n";
text = text .. "A FINAL NOTE -\n";
text = text .. "\n";
text = text .. "At SSTRP, we believe that the key to succesful Roleplaying is the fair and balanced integration of everyone within the\n";
text = text .. "community and server, working together to create a scenario which can be enjoyed by everyone.\n";
text = text .. "\n";
text = text .. "We encourage people to constantly strive to learn and develop their characters in as many ways as possible, and we hope to provide \n";
text = text .. "opportunities for players to be as creative as possible.\n";
text = text .. "\n";
text = text .. "Razor Roleplay is one of the only Garrysmod Roleplay Communities that provides 100% serious Roleplay, with a fair, proffesional and \n";
text = text .. "unbiased administration team. Most of all, we want YOU to enjoy your time here\n";	
	HelpMenuContent:AddLabel( FormatLine( text, "Default", HelpMenuParent.Col2Width - 120 ), "Default", 10, h + h2 + h3 + h4 + h5 + h6 + h7 + h8 + h9 + 93, Color( 255, 255, 255, 255 ) );	

end	
