Back to home
This code is over 6 months old.
Codes expire after 6 months and will no longer function.
This game is archived.
If you with to unarchive it, click the "restore" button in the options menu.
This code can also be found at workshop.codes/CMZ6Q

Category:
Training / Drills / Tools

Author:
Gecktendo

Rating:
1

Version:
2.0.0

Posted:
about 1 year ago

Last updated:
7 months ago

Tags:
chill kill hero selection status editor gecko's mod

Share this workshop!

Options

Chill Kill mode with hero selector and status editor. Press Interact to open the mod menu. Primary or secondary fire switches between menus. Pressing melee with the mod open selects the menu of interest. Pressing melee with a parameter highlighted allows the user to adjust that parameter. Pressing primary or secondary fire will toggle settings allowing users to have the experience they want in a chill / kill server. Host can apply parameters to different players allowing for high lobby customization.

variables
{
	global:
		0: L_Menu
		2: L_Hero
		3: L_Color
		4: L_True_False
		5: L_Type_Health_Pool
		6: L_Type_Visual_Effect
		7: L_GS
		8: L_CM
		9: L_HP
		10: L_AA
		11: L_SE
		12: L_VE
		13: R_GS
		14: R_CM
		15: R_HP
		16: R_AA
		17: R_SE
		18: R_VE
		19: L_HT
		20: R_HT

	player:
		0: Menu_Index
		1: ID_Menu_HUD
		2: ID_Damage_Heal
		3: ID_Health_Pools
		4: ID_Visual_Effect
		5: C_Scale
		6: C_Barrier
		7: C_Voice
		8: C_Effect
		9: P_GS
		10: P_CM
		11: P_HP
		12: P_AA
		13: P_SE
		14: P_VE
		15: P_HT
		16: S_GS
		17: S_CM
		18: S_HP
		19: S_AA
		20: S_SE
		21: S_VE
		22: II
		23: Mod_Access
}

subroutines
{
	0: S_Button_Toggle
	1: S_GS
	2: S_CM
	3: S_HP
	4: S_AA
	5: S_SE
	6: S_VE
	7: S_HT
	8: Set_Parameters
}

rule("Gecko's Mod V.2.0.0 | Code: CMZ6Q | Created by Gecktendo#1446")
{
	event
	{
		Ongoing - Global;
	}

	actions
	{
		Disable Inspector Recording;
	}
}

disabled rule("Variable Setup")
{
	event
	{
		Ongoing - Global;
	}
}

rule("Set Global Variables")
{
	event
	{
		Ongoing - Global;
	}

	actions
	{
		Global.L_Menu = Array(Custom String("General Settings"), Custom String("Combat Modifiers"), Custom String("Health Pools"),
			Custom String("Ammo and Ability Settings"), Custom String("Status Effects"), Custom String("Visual Effects"), Custom String(
			"Host Tools"));
		Global.L_Hero = All Heroes;
		Global.L_Color = Array(Custom String("White"), Custom String("Red"), Custom String("Orange"), Custom String("Yellow"),
			Custom String("Lime Green"), Custom String("Green"), Custom String("Turquoise"), Custom String("Aqua"), Custom String(
			"Sky Blue"), Custom String("Blue"), Custom String("Purple"), Custom String("Team 1"), Custom String("Team 2"), Custom String(
			"Off"));
		Global.L_Type_Health_Pool = Array(Custom String("Recoverable Health"), Custom String("Recoverable Armor"), Custom String(
			"Recoverable Shield"), Custom String("Temporary Health"), Custom String("Temporary Armor"), Custom String("Temporary Shield"));
		Global.L_Type_Visual_Effect = Array(Custom String("Sphere"), Custom String("Light Shaft"), Custom String("Orb"), Custom String(
			"Ring"), Custom String("Cloud"), Custom String("Sparkles"), Custom String("Good Aura"), Custom String("Bad Aura"));
		Global.L_True_False = Array(False, True);
		Global.L_GS = Array(Custom String("Hero"), Custom String("Third Person"), Custom String("Player Visibility"), Custom String(
			"Nameplate Visibility"), Custom String("Outline Color"), Custom String("Scaling Rate"), Custom String(
			"Player Scale (To Be Added Next Patch)"), Custom String("Barrier Scale (To Be Added Next Patch)"), Custom String(
			"Voiceline Pitch"), Custom String("Environmental Collisions"), Custom String("Floor Collisions"), Custom String(
			"Player Collisions"), Custom String("Set Parameter Savestate"), Custom String("Load Parameter Savestate"), Custom String(
			"Reset All Settings to Default"));
		Global.L_CM = Array(Custom String("Damage Dealt"), Custom String("Damage Received"), Custom String("Damage Over Time"),
			Custom String("Healing Dealt"), Custom String("Healing Received"), Custom String("Heal Over Time"), Custom String("Health"),
			Custom String("Jump Vertical Speed"), Custom String("Movement Gravity"), Custom String("Movement Speed"), Custom String(
			"Projectile Gravity"), Custom String("Projectile Speed"));
		Global.L_HP = Array(Custom String("Health #1 Type"), Custom String("Health #1 Quantity"), Custom String("Health #2 Type"),
			Custom String("Health #2 Quantity"), Custom String("Health #3 Type"), Custom String("Health #3 Quantity"), Custom String(
			"Health #4 Type"), Custom String("Health #4 Quantity"), Custom String("Health #5 Type"), Custom String("Health #5 Quantity"),
			Custom String("Health #6 Type"), Custom String("Health #6 Quantity"), Custom String("Health #7 Type"), Custom String(
			"Health #7 Quantity"), Custom String("Health #8 Type"), Custom String("Health #8 Quantity"), Custom String("Health #9 Type"),
			Custom String("Health #9 Quantity"), Custom String("Health #10 Type"), Custom String("Health #10 Quantity"), Custom String(
			"Health #11 Type"), Custom String("Health #11 Quantity"), Custom String("Health #12 Type"), Custom String(
			"Health #12 Quantity"), Custom String("Health #13 Type"), Custom String("Health #13 Quantity"), Custom String(
			"Health #14 Type"), Custom String("Health #14 Quantity"), Custom String("Health #15 Type"), Custom String(
			"Health #15 Quantity"));
		Global.L_AA = Array(Custom String("Primary Enabled"), Custom String("Weapon 1 Ammo"), Custom String("Weapon 1 Max Ammo"),
			Custom String("Weapon 2 Ammo"), Custom String("Weapon 2 Max Ammo"), Custom String("Secondary Enabled"), Custom String(
			"Secondary Ability Cooldown"), Custom String("Ability 1 Enabled"), Custom String("Ability 1 Cooldown"), Custom String(
			"Ability 2 Enabled"), Custom String("Ability 2 Cooldown"), Custom String("Ultimate Enabled"), Custom String(
			"Ultimate Cooldown"), Custom String("Jump Enabled"), Custom String("Jump Ability Cooldown"), Custom String("Crouch Enabled"),
			Custom String("Crouch Ability Cooldown"), Custom String("Melee Enabled"), Custom String("Reload Enabled"));
		Global.L_SE = Array(Custom String("Hacked"), Custom String("Burning"), Custom String("Knocked Down"), Custom String("Asleep"),
			Custom String("Frozen"), Custom String("Unkillable"), Custom String("Invincible"), Custom String("Phased Out"), Custom String(
			"Rooted"), Custom String("Stunned"), Custom String("Killed"));
		Global.L_VE = Array(Custom String("Animation Speed"), Custom String("Custom #1: Orbiting Comet"), Custom String(
			"Custom #2: Groovy Bloom"), Custom String("Custom #3: Technicolor Hero"), Custom String("Custom #4: Spotlights"),
			Custom String("Custom #5: Atomic Power"));
		Global.L_HT = Array(Custom String("Selected Player"), Custom String("Selected Menu"), Custom String(
			"Selected Parameter From Menu"), Custom String(
			"Apply Your Selected Parameter Settings From Your Savestate to Selected Player"), Custom String(
			"Apply All Your Savestate Settings to Selected Player"), Custom String("Allow Selected Player Mod Access"), Custom String(
			"Teleport Selected Player To Host's Reticle"), Custom String("Gamespeed"));
		Global.R_GS = Array(Hero(Reaper), False, True, True, Custom String("Off"), 1000, 100, 100, 100, True, True, True, Custom String(
			"Melee"), Custom String("Melee"), Custom String("Melee"));
		Global.R_CM = Array(100, 100, 0, 100, 100, 0, 100, 100, 100, 100, 100, 100);
		Global.R_HP = Array(Custom String("Recoverable Health"), 0, Custom String("Recoverable Health"), 0, Custom String(
			"Recoverable Health"), 0, Custom String("Recoverable Health"), 0, Custom String("Recoverable Health"), 0, Custom String(
			"Recoverable Health"), 0, Custom String("Recoverable Health"), 0, Custom String("Recoverable Health"), 0, Custom String(
			"Recoverable Health"), 0, Custom String("Recoverable Health"), 0, Custom String("Recoverable Health"), 0, Custom String(
			"Recoverable Health"), 0, Custom String("Recoverable Health"), 0, Custom String("Recoverable Health"), 0, Custom String(
			"Recoverable Health"), 0);
		Global.R_AA = Array(True, 20, 20, 20, 20, True, 10, True, 10, True, 10, True, 360, True, 5, True, 5, True, True);
		Global.R_SE = Array(False, False, False, False, False, False, False, False, False, False, False);
		Global.R_VE = Array(2.500, False, False, False, False, False);
		Global.R_HT = Array(Custom String("All Non Host Players"), Custom String(""""), Custom String(""""), Custom String("Melee"),
			Custom String("Melee"), True, Custom String("Melee"), 100);
	}
}

rule("Set Player Variables")
{
	event
	{
		Player Joined Match;
		All;
		All;
	}

	actions
	{
		Event Player.Menu_Index = Array(0, 0, 0);
		Event Player.ID_Menu_HUD = Array(Empty Array, Empty Array);
		Event Player.C_Scale = 100;
		Event Player.C_Barrier = 100;
		Event Player.C_Voice = 100;
		Event Player.C_Effect = 0;
		Event Player.P_GS = Global.R_GS;
		Event Player.P_CM = Global.R_CM;
		Event Player.P_HP = Global.R_HP;
		Event Player.P_AA = Global.R_AA;
		Event Player.P_SE = Global.R_SE;
		Event Player.P_VE = Global.R_VE;
		Event Player.P_HT = Global.R_HT;
		Event Player.S_GS = Global.R_GS;
		Event Player.S_CM = Global.R_CM;
		Event Player.S_HP = Global.R_HP;
		Event Player.S_AA = Global.R_AA;
		Event Player.S_SE = Global.R_SE;
		Event Player.S_VE = Global.R_VE;
		Event Player.II = 0;
		Event Player.Mod_Access = True;
	}
}

rule("Set Miscellaneous Player Settings")
{
	event
	{
		Ongoing - Each Player;
		All;
		All;
	}

	conditions
	{
		Has Spawned(Event Player) == True;
	}

	actions
	{
		Event Player.P_GS[0] = Hero Of(Event Player);
		Start Modifying Hero Voice Lines(Event Player, Event Player.C_Voice / 100, True);
		Chase Player Variable At Rate(Event Player, C_Effect, 1, 1 / Event Player.P_VE[0], Destination and Rate);
	}
}

disabled rule("Menu HUDs")
{
	event
	{
		Ongoing - Global;
	}
}

rule("Instructions HUD")
{
	event
	{
		Ongoing - Global;
	}

	actions
	{
		Create HUD Text(Filtered Array(All Players(All Teams), Current Array Element.Mod_Access == True), Custom String(
			"Gecko's Mod Controls:"), Null, Null, Left, 0, Green, White, White, Visible To and String, Default Visibility);
		Create HUD Text(Filtered Array(All Players(All Teams),
			Current Array Element.Menu_Index[0] == 0 && Current Array Element.Mod_Access == True), Null, Null, Custom String(
			"({0}) Interact - Open Mod Menu", Input Binding String(Button(Interact))), Left, 1, White, White, White, Visible To and String,
			Default Visibility);
		Create HUD Text(Filtered Array(All Players(All Teams),
			Current Array Element.Menu_Index[0] == 1 || Current Array Element.Menu_Index[0] == 2), Null, Null, Custom String(
			"({0}) Interact - Exit Current Folder or Parameter / Close Mod Menu", Input Binding String(Button(Interact))), Left, 1, White,
			White, White, Visible To and String, Default Visibility);
		Create HUD Text(Filtered Array(All Players(All Teams),
			Current Array Element.Menu_Index[0] == 1 || Current Array Element.Menu_Index[0] == 2), Null, Null, Custom String(
			"({0}) Primary Fire - Previous Folder / Parameter", Input Binding String(Button(Primary Fire))), Left, 2, White, White, White,
			Visible To and String, Default Visibility);
		Create HUD Text(Filtered Array(All Players(All Teams),
			Current Array Element.Menu_Index[0] == 1 || Current Array Element.Menu_Index[0] == 2), Null, Null, Custom String(
			"({0}) Secondary Fire - Next Folder / Parameter", Input Binding String(Button(Secondary Fire))), Left, 3, White, White, White,
			Visible To and String, Default Visibility);
		Create HUD Text(Filtered Array(All Players(All Teams), Current Array Element.Menu_Index[0] == 1), Null, Null, Custom String(
			"({0}) Melee - Open Folder", Input Binding String(Button(Melee))), Left, 4, White, White, White, Visible To and String,
			Default Visibility);
		Create HUD Text(Filtered Array(All Players(All Teams), Current Array Element.Menu_Index[0] == 2), Null, Null, Custom String(
			"({0}) Hold Melee   Look Up / Down - Adjust Selected Parameter", Input Binding String(Button(Melee))), Left, 4, White, White,
			White, Visible To and String, Default Visibility);
		Create HUD Text(Filtered Array(All Players(All Teams), Current Array Element.Menu_Index[0] == 2), Null, Null, Custom String(
			"({0}) Reload - Reset Parameter to Default Settings", Input Binding String(Button(Reload))), Left, 5, White, White, White,
			Visible To and String, Default Visibility);
		Create HUD Text(Filtered Array(All Players(All Teams), Current Array Element.Menu_Index[0] == 3), Null, Null, Custom String(
			"({0}) Release Melee - Apply Parameter Setting", Input Binding String(Button(Melee))), Left, 1, White, White, White,
			Visible To and String, Default Visibility);
	}
}

rule("Spacers HUD")
{
	event
	{
		Ongoing - Global;
	}

	actions
	{
		"Create Primary HUD"
		Create HUD Text(All Players(All Teams), Null, Null, Custom String(" "), Top, 1, White, White, White, Visible To and String,
			Default Visibility);
		Create HUD Text(All Players(All Teams), Null, Null, Custom String(" "), Top, 2, White, White, White, Visible To and String,
			Default Visibility);
		Create HUD Text(All Players(All Teams), Null, Null, Custom String(" "), Top, 3, White, White, White, Visible To and String,
			Default Visibility);
		Create HUD Text(All Players(All Teams), Null, Null, Custom String(" "), Top, 4, White, White, White, Visible To and String,
			Default Visibility);
		Create HUD Text(All Players(All Teams), Null, Null, Custom String(" "), Top, 5, White, White, White, Visible To and String,
			Default Visibility);
		Create HUD Text(All Players(All Teams), Null, Null, Custom String(" "), Top, 6, White, White, White, Visible To and String,
			Default Visibility);
		Create HUD Text(All Players(All Teams), Null, Null, Custom String(" "), Top, 7, White, White, White, Visible To and String,
			Default Visibility);
		Create HUD Text(All Players(All Teams), Null, Null, Custom String(" "), Top, 8, White, White, White, Visible To and String,
			Default Visibility);
		Create HUD Text(All Players(All Teams), Null, Null, Custom String(" "), Top, 9, White, White, White, Visible To and String,
			Default Visibility);
	}
}

rule("Close Menu HUD")
{
	event
	{
		Ongoing - Each Player;
		All;
		All;
	}

	conditions
	{
		Event Player.Menu_Index[0] == 0;
	}

	actions
	{
		Destroy In-World Text(Event Player.ID_Menu_HUD[0]);
		Destroy HUD Text(Event Player.ID_Menu_HUD[0]);
		Destroy In-World Text(Event Player.ID_Menu_HUD[1]);
		Destroy HUD Text(Event Player.ID_Menu_HUD[1]);
		Destroy In-World Text(Event Player.ID_Menu_HUD[2]);
		Destroy HUD Text(Event Player.ID_Menu_HUD[2]);
		Call Subroutine(S_Button_Toggle);
	}
}

rule("Primary HUD")
{
	event
	{
		Ongoing - Each Player;
		All;
		All;
	}

	conditions
	{
		Event Player.Menu_Index[0] == 1;
	}

	actions
	{
		Call Subroutine(S_Button_Toggle);
		Destroy HUD Text(Event Player.ID_Menu_HUD[0]);
		Destroy HUD Text(Event Player.ID_Menu_HUD[1]);
		Create HUD Text(Event Player, Custom String("{0} - {1}", Event Player.Menu_Index[1], Global.L_Menu[Event Player.Menu_Index[1]]),
			Null, Null, Top, 10, Green, White, White, Visible To and String, Default Visibility);
		Event Player.ID_Menu_HUD[0] = Last Text ID;
	}
}

rule("Secondary HUD")
{
	event
	{
		Ongoing - Each Player;
		All;
		All;
	}

	conditions
	{
		Event Player.Menu_Index[0] == 2;
	}

	actions
	{
		Destroy HUD Text(Event Player.ID_Menu_HUD[1]);
		"Create Secondary HUD"
		If(Event Player.Menu_Index[1] == 0);
			Create HUD Text(Event Player, Null, Null, Custom String("{0} - {1}: {2}", Event Player.Menu_Index[2],
				Global.L_GS[Event Player.Menu_Index[2]], Event Player.P_GS[Event Player.Menu_Index[2]]), Top, 11, White, White, White,
				Visible To and String, Default Visibility);
		End;
		If(Event Player.Menu_Index[1] == 1);
			Create HUD Text(Event Player, Null, Null, Custom String("{0} - {1}: {2}", Event Player.Menu_Index[2],
				Global.L_CM[Event Player.Menu_Index[2]], Event Player.P_CM[Event Player.Menu_Index[2]]), Top, 11, White, White, White,
				Visible To and String, Default Visibility);
		End;
		If(Event Player.Menu_Index[1] == 2);
			Create HUD Text(Event Player, Null, Null, Custom String("{0} - {1}: {2}", Event Player.Menu_Index[2],
				Global.L_HP[Event Player.Menu_Index[2]], Event Player.P_HP[Event Player.Menu_Index[2]]), Top, 11, White, White, White,
				Visible To and String, Default Visibility);
		End;
		If(Event Player.Menu_Index[1] == 3);
			Create HUD Text(Event Player, Null, Null, Custom String("{0} - {1}: {2}", Event Player.Menu_Index[2],
				Global.L_AA[Event Player.Menu_Index[2]], Event Player.P_AA[Event Player.Menu_Index[2]]), Top, 11, White, White, White,
				Visible To and String, Default Visibility);
		End;
		If(Event Player.Menu_Index[1] == 4);
			Create HUD Text(Event Player, Null, Null, Custom String("{0} - {1}: {2}", Event Player.Menu_Index[2],
				Global.L_SE[Event Player.Menu_Index[2]], Event Player.P_SE[Event Player.Menu_Index[2]]), Top, 11, White, White, White,
				Visible To and String, Default Visibility);
		End;
		If(Event Player.Menu_Index[1] == 5);
			Create HUD Text(Event Player, Null, Null, Custom String("{0} - {1}: {2}", Event Player.Menu_Index[2],
				Global.L_VE[Event Player.Menu_Index[2]], Event Player.P_VE[Event Player.Menu_Index[2]]), Top, 11, White, White, White,
				Visible To and String, Default Visibility);
		End;
		If(Event Player.Menu_Index[1] == 6);
			Create HUD Text(Event Player, Null, Null, Custom String("{0} - {1}: {2}", Event Player.Menu_Index[2],
				Global.L_HT[Event Player.Menu_Index[2]], Event Player.P_HT[Event Player.Menu_Index[2]]), Top, 11, White, White, White,
				Visible To and String, Default Visibility);
		End;
		Event Player.ID_Menu_HUD[1] = Last Text ID;
	}
}

rule("Tertiary HUD")
{
	event
	{
		Ongoing - Each Player;
		All;
		All;
	}

	conditions
	{
		Event Player.Menu_Index[0] == 3;
	}

	actions
	{
		"Destroy HUD and In-World Text"
		Destroy HUD Text(Event Player.ID_Menu_HUD[1]);
		"Create Secondary HUD"
		If(Event Player.Menu_Index[1] == 0);
			Create HUD Text(Event Player, Null, Null, Custom String("{0} {1} {2}", Icon String(Arrow: Down), Custom String("{0} - {1}: {2}",
				Event Player.Menu_Index[2], Global.L_GS[Event Player.Menu_Index[2]], Event Player.P_GS[Event Player.Menu_Index[2]]),
				Icon String(Arrow: Up)), Top, 11, White, White, White, Visible To and String, Default Visibility);
		Else If(Event Player.Menu_Index[1] == 1);
			Create HUD Text(Event Player, Null, Null, Custom String("{0} {1} {2}", Icon String(Arrow: Down), Custom String("{0} - {1}: {2}",
				Event Player.Menu_Index[2], Global.L_CM[Event Player.Menu_Index[2]], Event Player.P_CM[Event Player.Menu_Index[2]]),
				Icon String(Arrow: Up)), Top, 11, White, White, White, Visible To and String, Default Visibility);
		Else If(Event Player.Menu_Index[1] == 2);
			Create HUD Text(Event Player, Null, Null, Custom String("{0} {1} {2}", Icon String(Arrow: Down), Custom String("{0} - {1}: {2}",
				Event Player.Menu_Index[2], Global.L_HP[Event Player.Menu_Index[2]], Event Player.P_HP[Event Player.Menu_Index[2]]),
				Icon String(Arrow: Up)), Top, 11, White, White, White, Visible To and String, Default Visibility);
		Else If(Event Player.Menu_Index[1] == 3);
			Create HUD Text(Event Player, Null, Null, Custom String("{0} {1} {2}", Icon String(Arrow: Down), Custom String("{0} - {1}: {2}",
				Event Player.Menu_Index[2], Global.L_AA[Event Player.Menu_Index[2]], Event Player.P_AA[Event Player.Menu_Index[2]]),
				Icon String(Arrow: Up)), Top, 11, White, White, White, Visible To and String, Default Visibility);
		Else If(Event Player.Menu_Index[1] == 4);
			Create HUD Text(Event Player, Null, Null, Custom String("{0} {1} {2}", Icon String(Arrow: Down), Custom String("{0} - {1}: {2}",
				Event Player.Menu_Index[2], Global.L_SE[Event Player.Menu_Index[2]], Event Player.P_SE[Event Player.Menu_Index[2]]),
				Icon String(Arrow: Up)), Top, 11, White, White, White, Visible To and String, Default Visibility);
		Else If(Event Player.Menu_Index[1] == 5);
			Create HUD Text(Event Player, Null, Null, Custom String("{0} {1} {2}", Icon String(Arrow: Down), Custom String("{0} - {1}: {2}",
				Event Player.Menu_Index[2], Global.L_VE[Event Player.Menu_Index[2]], Event Player.P_VE[Event Player.Menu_Index[2]]),
				Icon String(Arrow: Up)), Top, 11, White, White, White, Visible To and String, Default Visibility);
		Else If(Event Player.Menu_Index[1] == 6);
			Create HUD Text(Event Player, Null, Null, Custom String("{0} {1} {2}", Icon String(Arrow: Down), Custom String("{0} - {1}: {2}",
				Event Player.Menu_Index[2], Global.L_HT[Event Player.Menu_Index[2]], Event Player.P_HT[Event Player.Menu_Index[2]]),
				Icon String(Arrow: Up)), Top, 11, White, White, White, Visible To and String, Default Visibility);
		End;
		Event Player.ID_Menu_HUD[1] = Last Text ID;
	}
}

disabled rule("Menu Controls")
{
	event
	{
		Ongoing - Global;
	}
}

rule("Interact: Open Mod Menu / Close Mod Menu / Back Button")
{
	event
	{
		Ongoing - Each Player;
		All;
		All;
	}

	conditions
	{
		Is Button Held(Event Player, Interact) == True;
		Event Player.Mod_Access == True;
	}

	actions
	{
		If(Event Player.Menu_Index[0] == 0);
			Event Player.Menu_Index[0] = 1;
		Else If(Event Player.Menu_Index[0] == 1);
			Event Player.Menu_Index[0] = 0;
		Else If(Event Player.Menu_Index[0] == 2);
			Event Player.Menu_Index[0] = 1;
			Event Player.Menu_Index[2] = 0;
		End;
	}
}

rule("Primary Fire: Go to Previous Folder or Parameter in List")
{
	event
	{
		Ongoing - Each Player;
		All;
		All;
	}

	conditions
	{
		Is Button Held(Event Player, Primary Fire) == True;
		Event Player.Menu_Index[0] != 0;
		Event Player.Mod_Access == True;
	}

	actions
	{
		While(Is Button Held(Event Player, Primary Fire) == True);
			If(Event Player.Menu_Index[0] == 1);
				If(Host Player == Event Player);
					Event Player.Menu_Index[1] = (Event Player.Menu_Index[1] - 1   Count Of(Global.L_Menu)) % Count Of(Global.L_Menu);
				Else If(Host Player != Event Player);
					Event Player.Menu_Index[1] = (Event Player.Menu_Index[1] - 1   (Count Of(Global.L_Menu) - 1)) % (Count Of(Global.L_Menu) - 1);
				End;
			Else If(Event Player.Menu_Index[0] == 2);
				If(Event Player.Menu_Index[1] == 0);
					Event Player.Menu_Index[2] = (Event Player.Menu_Index[2] - 1   Count Of(Global.L_GS)) % Count Of(Global.L_GS);
				Else If(Event Player.Menu_Index[1] == 1);
					Event Player.Menu_Index[2] = (Event Player.Menu_Index[2] - 1   Count Of(Global.L_CM)) % Count Of(Global.L_CM);
				Else If(Event Player.Menu_Index[1] == 2);
					Event Player.Menu_Index[2] = (Event Player.Menu_Index[2] - 1   Count Of(Global.L_HP)) % Count Of(Global.L_HP);
				Else If(Event Player.Menu_Index[1] == 3);
					Event Player.Menu_Index[2] = (Event Player.Menu_Index[2] - 1   Count Of(Global.L_AA)) % Count Of(Global.L_AA);
				Else If(Event Player.Menu_Index[1] == 4);
					Event Player.Menu_Index[2] = (Event Player.Menu_Index[2] - 1   Count Of(Global.L_SE)) % Count Of(Global.L_SE);
				Else If(Event Player.Menu_Index[1] == 5);
					Event Player.Menu_Index[2] = (Event Player.Menu_Index[2] - 1   Count Of(Global.L_VE)) % Count Of(Global.L_VE);
				Else If(Event Player.Menu_Index[1] == 6);
					Event Player.Menu_Index[2] = (Event Player.Menu_Index[2] - 1   Count Of(Global.L_HT)) % Count Of(Global.L_HT);
				End;
			End;
			Wait(0.250, Ignore Condition);
		End;
	}
}

rule("Secondary Fire: Go to Next Folder or Parameter in List")
{
	event
	{
		Ongoing - Each Player;
		All;
		All;
	}

	conditions
	{
		Is Button Held(Event Player, Secondary Fire) == True;
		Event Player.Menu_Index[0] != 0;
		Event Player.Mod_Access == True;
	}

	actions
	{
		While(Is Button Held(Event Player, Secondary Fire) == True);
			If(Event Player.Menu_Index[0] == 1);
				If(Host Player == Event Player);
					Event Player.Menu_Index[1] = (Event Player.Menu_Index[1]   1) % Count Of(Global.L_Menu);
				Else If(Host Player != Event Player);
					Event Player.Menu_Index[1] = (Event Player.Menu_Index[1]   1) % (Count Of(Global.L_Menu) - 1);
				End;
			Else If(Event Player.Menu_Index[0] == 2);
				If(Event Player.Menu_Index[1] == 0);
					Event Player.Menu_Index[2] = (Event Player.Menu_Index[2]   1) % Count Of(Global.L_GS);
				Else If(Event Player.Menu_Index[1] == 1);
					Event Player.Menu_Index[2] = (Event Player.Menu_Index[2]   1) % Count Of(Global.L_CM);
				Else If(Event Player.Menu_Index[1] == 2);
					Event Player.Menu_Index[2] = (Event Player.Menu_Index[2]   1) % Count Of(Global.L_HP);
				Else If(Event Player.Menu_Index[1] == 3);
					Event Player.Menu_Index[2] = (Event Player.Menu_Index[2]   1) % Count Of(Global.L_AA);
				Else If(Event Player.Menu_Index[1] == 4);
					Event Player.Menu_Index[2] = (Event Player.Menu_Index[2]   1) % Count Of(Global.L_SE);
				Else If(Event Player.Menu_Index[1] == 5);
					Event Player.Menu_Index[2] = (Event Player.Menu_Index[2]   1) % Count Of(Global.L_VE);
				Else If(Event Player.Menu_Index[1] == 6);
					Event Player.Menu_Index[2] = (Event Player.Menu_Index[2]   1) % Count Of(Global.L_HT);
				End;
			End;
			Wait(0.250, Ignore Condition);
		End;
	}
}

rule("Melee: Open Folder / Adjust Parameter / Apply Parameter Settings")
{
	event
	{
		Ongoing - Each Player;
		All;
		All;
	}

	conditions
	{
		Is Button Held(Event Player, Melee) == True;
		Event Player.Menu_Index[0] != 0;
		Event Player.Mod_Access == True;
	}

	actions
	{
		If(Event Player.Menu_Index[0] == 1);
			Event Player.Menu_Index[0] = 2;
		Else If(Event Player.Menu_Index[0] == 2);
			Event Player.Menu_Index[0] = 3;
		End;
	}
}

rule("Reload: Reset Parameter to Default")
{
	event
	{
		Ongoing - Each Player;
		All;
		All;
	}

	conditions
	{
		Is Button Held(Event Player, Reload) == True;
		Event Player.Menu_Index[0] == 2;
		Event Player.Mod_Access == True;
	}

	actions
	{
		If(Event Player.Menu_Index[1] == 0);
			Event Player.P_GS[Event Player.Menu_Index[2]] = Global.R_GS[Event Player.Menu_Index[2]];
		Else If(Event Player.Menu_Index[1] == 1);
			Event Player.P_CM[Event Player.Menu_Index[2]] = Global.R_CM[Event Player.Menu_Index[2]];
		Else If(Event Player.Menu_Index[1] == 2);
			Event Player.P_HP[Event Player.Menu_Index[2]] = Global.R_HP[Event Player.Menu_Index[2]];
		Else If(Event Player.Menu_Index[1] == 3);
			Event Player.P_AA[Event Player.Menu_Index[2]] = Global.R_AA[Event Player.Menu_Index[2]];
		Else If(Event Player.Menu_Index[1] == 4);
			Event Player.P_SE[Event Player.Menu_Index[2]] = Global.R_SE[Event Player.Menu_Index[2]];
		Else If(Event Player.Menu_Index[1] == 5);
			Event Player.P_VE[Event Player.Menu_Index[2]] = Global.R_VE[Event Player.Menu_Index[2]];
		Else If(Event Player.Menu_Index[1] == 6);
			Event Player.P_HT[Event Player.Menu_Index[2]] = Global.R_HT[Event Player.Menu_Index[2]];
		End;
		Event Player.Menu_Index[0] = 4;
	}
}

disabled rule("Ability Cooldowns")
{
	event
	{
		Ongoing - Global;
	}
}

rule("Secondary Fire Ability Cooldown")
{
	event
	{
		Ongoing - Each Player;
		All;
		All;
	}

	conditions
	{
		Ability Cooldown(Event Player, Button(Secondary Fire)) != 0;
	}

	actions
	{
		Set Ability Cooldown(Event Player, Button(Secondary Fire), Event Player.P_AA[6]);
	}
}

rule("Ability 1 Cooldown")
{
	event
	{
		Ongoing - Each Player;
		All;
		All;
	}

	conditions
	{
		Ability Cooldown(Event Player, Button(Ability 1)) != 0;
	}

	actions
	{
		Set Ability Cooldown(Event Player, Button(Ability 1), Event Player.P_AA[8]);
	}
}

rule("Ability 2 Cooldown")
{
	event
	{
		Ongoing - Each Player;
		All;
		All;
	}

	conditions
	{
		Ability Cooldown(Event Player, Button(Ability 2)) != 0;
	}

	actions
	{
		Set Ability Cooldown(Event Player, Button(Ability 2), Event Player.P_AA[10]);
	}
}

rule("Ultimate Charge Cooldown")
{
	event
	{
		Ongoing - Each Player;
		All;
		All;
	}

	conditions
	{
		Ultimate Charge Percent(Event Player) != 100;
		Is Using Ultimate(Event Player) == False;
		Has Spawned(Event Player) == True;
	}

	actions
	{
		If(Event Player.P_AA[12] >= 1.600);
			While(Ultimate Charge Percent(Event Player) != 100);
				Set Ultimate Charge(Event Player, Ultimate Charge Percent(Event Player)   1);
				Wait(Event Player.P_AA[12] / 100, Abort When False);
			End;
		Else If(Event Player.P_AA[12] < 1.600 && Event Player.P_AA[12] > 0);
			While(Ultimate Charge Percent(Event Player) != 100);
				Set Ultimate Charge(Event Player, Ultimate Charge Percent(Event Player)   1.600 / Event Player.P_AA[12]);
				Wait(0.016, Abort When False);
			End;
		Else If(Event Player.P_AA[12] <= 0);
			Set Ultimate Charge(Event Player, 100);
		End;
	}
}

rule("Jump Ability Cooldown")
{
	event
	{
		Ongoing - Each Player;
		All;
		All;
	}

	conditions
	{
		Ability Cooldown(Event Player, Button(Jump)) != 0;
	}

	actions
	{
		Set Ability Cooldown(Event Player, Button(Jump), Event Player.P_AA[14]);
	}
}

rule("Crouch Ability Cooldown")
{
	event
	{
		Ongoing - Each Player;
		All;
		All;
	}

	conditions
	{
		Ability Cooldown(Event Player, Button(Crouch)) != 0;
	}

	actions
	{
		Set Ability Cooldown(Event Player, Button(Crouch), Event Player.P_AA[16]);
	}
}

disabled rule("Menu Loops")
{
	event
	{
		Ongoing - Global;
	}
}

rule("Tertiary Menu #0 General Settings Loop")
{
	event
	{
		Ongoing - Each Player;
		All;
		All;
	}

	conditions
	{
		Event Player.Menu_Index[0] == 3;
		Event Player.Menu_Index[1] == 0;
	}

	actions
	{
		While(Is Button Held(Event Player, Melee) == True);
			If(Event Player.Menu_Index[2] == 0);
				Event Player.P_GS[0] = Global.L_Hero[Round To Integer((Vertical Facing Angle Of(Event Player) / 178.001   0.500) * Count Of(
					Global.L_Hero), Down)];
			Else If(Event Player.Menu_Index[2] == 1);
				Event Player.P_GS[1] = Global.L_True_False[Round To Integer((Vertical Facing Angle Of(Event Player) / -178.001   0.500) * Count Of(
					Global.L_True_False), Down)];
			Else If(Event Player.Menu_Index[2] == 2);
				Event Player.P_GS[2] = Global.L_True_False[Round To Integer((Vertical Facing Angle Of(Event Player) / -178.001   0.500) * Count Of(
					Global.L_True_False), Down)];
			Else If(Event Player.Menu_Index[2] == 3);
				Event Player.P_GS[3] = Global.L_True_False[Round To Integer((Vertical Facing Angle Of(Event Player) / -178.001   0.500) * Count Of(
					Global.L_True_False), Down)];
			Else If(Event Player.Menu_Index[2] == 4);
				Event Player.P_GS[4] = Global.L_Color[Round To Integer((Vertical Facing Angle Of(Event Player) / 178.001   0.500) * Count Of(
					Global.L_Color), Down)];
			Else If(Event Player.Menu_Index[2] == 5);
				Event Player.P_GS[5] = (1000 ^ (Vertical Facing Angle Of(Event Player) / -178.001   0.500) * 1 - 1) / 999 * 1000;
			Else If(Event Player.Menu_Index[2] == 6);
				Event Player.P_GS[6] = Round To Integer((100 ^ (Vertical Facing Angle Of(Event Player) / -178.001   0.500) * 1 - 1)
					/ 99 * 1991   10, Down);
			Else If(Event Player.Menu_Index[2] == 7);
				Event Player.P_GS[7] = Round To Integer((100 ^ (Vertical Facing Angle Of(Event Player) / -178.001   0.500) * 1 - 1)
					/ 99 * 1991   10, Down);
			Else If(Event Player.Menu_Index[2] == 8);
				Event Player.P_GS[8] = Round To Integer((Vertical Facing Angle Of(Event Player) / -178.001   0.500) * 101   50, Down);
			Else If(Event Player.Menu_Index[2] == 9);
				Event Player.P_GS[9] = Global.L_True_False[Round To Integer((Vertical Facing Angle Of(Event Player) / -178.001   0.500) * Count Of(
					Global.L_True_False), Down)];
			Else If(Event Player.Menu_Index[2] == 10);
				Event Player.P_GS[10] = Global.L_True_False[Round To Integer((Vertical Facing Angle Of(Event Player) / -178.001   0.500)
					* Count Of(Global.L_True_False), Down)];
			Else If(Event Player.Menu_Index[2] == 11);
				Event Player.P_GS[11] = Global.L_True_False[Round To Integer((Vertical Facing Angle Of(Event Player) / -178.001   0.500)
					* Count Of(Global.L_True_False), Down)];
			Else If(Event Player.Menu_Index[2] == 12 || Event Player.Menu_Index[2] == 13 || Event Player.Menu_Index[2] == 14);
				Call Subroutine(S_GS);
				If(Event Player.Menu_Index[2] != 12);
					Abort;
				End;
			End;
			Wait(0.100, Ignore Condition);
		End;
		Event Player.Menu_Index[0] = 4;
	}
}

rule("Tertiary Menu #1 Combat Modifiers Loop")
{
	event
	{
		Ongoing - Each Player;
		All;
		All;
	}

	conditions
	{
		Event Player.Menu_Index[0] == 3;
		Event Player.Menu_Index[1] == 1;
	}

	actions
	{
		While(Is Button Held(Event Player, Melee) == True);
			Event Player.P_CM[Event Player.Menu_Index[2]] = (1000 ^ (Vertical Facing Angle Of(Event Player) / -178   0.500) * 1 - 1)
				/ 999 * 10000;
			Wait(0.100, Ignore Condition);
		End;
		Event Player.Menu_Index[0] = 4;
	}
}

rule("Tertiary Menu #2 Health Pools Loop")
{
	event
	{
		Ongoing - Each Player;
		All;
		All;
	}

	conditions
	{
		Event Player.Menu_Index[0] == 3;
		Event Player.Menu_Index[1] == 2;
	}

	actions
	{
		While(Is Button Held(Event Player, Melee) == True);
			If(Event Player.Menu_Index[2] % 2 == 0);
				Event Player.P_HP[Event Player.Menu_Index[2]] = Global.L_Type_Health_Pool[Round To Integer((Vertical Facing Angle Of(Event Player)
					/ 178.001   0.500) * Count Of(Global.L_Type_Health_Pool), Down)];
			Else If(Event Player.Menu_Index[2] % 2 == 1);
				Event Player.P_HP[Event Player.Menu_Index[2]] = Round To Integer((100 ^ (Vertical Facing Angle Of(Event Player) / -178   0.500)
					* 1 - 1) / 99 * 9999, To Nearest);
			End;
			Wait(0.100, Ignore Condition);
		End;
		Event Player.Menu_Index[0] = 4;
	}
}

rule("Tertiary Menu #3 Ammo and Abilities Loop")
{
	event
	{
		Ongoing - Each Player;
		All;
		All;
	}

	conditions
	{
		Event Player.Menu_Index[0] == 3;
		Event Player.Menu_Index[1] == 3;
	}

	actions
	{
		While(Is Button Held(Event Player, Melee) == True);
			If(Event Player.Menu_Index[2] == 0);
				Event Player.P_AA[0] = Global.L_True_False[Round To Integer((Vertical Facing Angle Of(Event Player) / -178.001   0.500) * Count Of(
					Global.L_True_False), Down)];
			Else If(Event Player.Menu_Index[2] == 1);
				Event Player.P_AA[Event Player.Menu_Index[2]] = Round To Integer((100 ^ (Vertical Facing Angle Of(Event Player) / -178.001   0.500)
					* 1 - 1) / 99 * 1001, Down);
			Else If(Event Player.Menu_Index[2] == 2);
				Event Player.P_AA[Event Player.Menu_Index[2]] = Round To Integer((100 ^ (Vertical Facing Angle Of(Event Player) / -178.001   0.500)
					* 1 - 1) / 99 * 1001, Down);
			Else If(Event Player.Menu_Index[2] == 3);
				Event Player.P_AA[Event Player.Menu_Index[2]] = Round To Integer((100 ^ (Vertical Facing Angle Of(Event Player) / -178.001   0.500)
					* 1 - 1) / 99 * 1001, Down);
			Else If(Event Player.Menu_Index[2] == 4);
				Event Player.P_AA[Event Player.Menu_Index[2]] = Round To Integer((100 ^ (Vertical Facing Angle Of(Event Player) / -178.001   0.500)
					* 1 - 1) / 99 * 1001, Down);
			Else If(Event Player.Menu_Index[2] == 5);
				Event Player.P_AA[Event Player.Menu_Index[2]] = Global.L_True_False[Round To Integer((Vertical Facing Angle Of(Event Player)
					/ -178.001   0.500) * Count Of(Global.L_True_False), Down)];
			Else If(Event Player.Menu_Index[2] == 6);
				Event Player.P_AA[Event Player.Menu_Index[2]] = (100 ^ (Vertical Facing Angle Of(Event Player) / -178   0.500) * 1 - 1) / 99 * 999;
			Else If(Event Player.Menu_Index[2] == 7);
				Event Player.P_AA[Event Player.Menu_Index[2]] = Global.L_True_False[Round To Integer((Vertical Facing Angle Of(Event Player)
					/ -178.001   0.500) * Count Of(Global.L_True_False), Down)];
			Else If(Event Player.Menu_Index[2] == 8);
				Event Player.P_AA[Event Player.Menu_Index[2]] = (100 ^ (Vertical Facing Angle Of(Event Player) / -178   0.500) * 1 - 1) / 99 * 999;
			Else If(Event Player.Menu_Index[2] == 9);
				Event Player.P_AA[Event Player.Menu_Index[2]] = Global.L_True_False[Round To Integer((Vertical Facing Angle Of(Event Player)
					/ -178.001   0.500) * Count Of(Global.L_True_False), Down)];
			Else If(Event Player.Menu_Index[2] == 10);
				Event Player.P_AA[Event Player.Menu_Index[2]] = (100 ^ (Vertical Facing Angle Of(Event Player) / -178   0.500) * 1 - 1) / 99 * 999;
			Else If(Event Player.Menu_Index[2] == 11);
				Event Player.P_AA[Event Player.Menu_Index[2]] = Global.L_True_False[Round To Integer((Vertical Facing Angle Of(Event Player)
					/ -178.001   0.500) * Count Of(Global.L_True_False), Down)];
			Else If(Event Player.Menu_Index[2] == 12);
				Event Player.P_AA[Event Player.Menu_Index[2]] = (100 ^ (Vertical Facing Angle Of(Event Player) / -178   0.500) * 1 - 1) / 99 * 999;
			Else If(Event Player.Menu_Index[2] == 13);
				Event Player.P_AA[Event Player.Menu_Index[2]] = Global.L_True_False[Round To Integer((Vertical Facing Angle Of(Event Player)
					/ -178.001   0.500) * Count Of(Global.L_True_False), Down)];
			Else If(Event Player.Menu_Index[2] == 14);
				Event Player.P_AA[Event Player.Menu_Index[2]] = (100 ^ (Vertical Facing Angle Of(Event Player) / -178   0.500) * 1 - 1) / 99 * 999;
			Else If(Event Player.Menu_Index[2] == 15);
				Event Player.P_AA[Event Player.Menu_Index[2]] = Global.L_True_False[Round To Integer((Vertical Facing Angle Of(Event Player)
					/ -178.001   0.500) * Count Of(Global.L_True_False), Down)];
			Else If(Event Player.Menu_Index[2] == 16);
				Event Player.P_AA[Event Player.Menu_Index[2]] = (100 ^ (Vertical Facing Angle Of(Event Player) / -178   0.500) * 1 - 1) / 99 * 999;
			Else If(Event Player.Menu_Index[2] == 17);
				Event Player.P_AA[Event Player.Menu_Index[2]] = Global.L_True_False[Round To Integer((Vertical Facing Angle Of(Event Player)
					/ -178.001   0.500) * Count Of(Global.L_True_False), Down)];
			Else If(Event Player.Menu_Index[2] == 18);
				Event Player.P_AA[Event Player.Menu_Index[2]] = Global.L_True_False[Round To Integer((Vertical Facing Angle Of(Event Player)
					/ -178.001   0.500) * Count Of(Global.L_True_False), Down)];
			End;
			Wait(0.100, Ignore Condition);
		End;
		Event Player.Menu_Index[0] = 4;
	}
}

rule("Tertiary Menu #4 Status Effects Loop")
{
	event
	{
		Ongoing - Each Player;
		All;
		All;
	}

	conditions
	{
		Event Player.Menu_Index[0] == 3;
		Event Player.Menu_Index[1] == 4;
	}

	actions
	{
		While(Is Button Held(Event Player, Melee) == True);
			Event Player.P_SE[Event Player.Menu_Index[2]] = Global.L_True_False[Round To Integer((Vertical Facing Angle Of(Event Player)
				/ -178.001   0.500) * Count Of(Global.L_True_False), Down)];
			Wait(0.100, Ignore Condition);
		End;
		Event Player.Menu_Index[0] = 4;
	}
}

rule("Tertiary Menu #5 Visual Effects Loop")
{
	event
	{
		Ongoing - Each Player;
		All;
		All;
	}

	conditions
	{
		Event Player.Menu_Index[0] == 3;
		Event Player.Menu_Index[1] == 5;
	}

	actions
	{
		While(Is Button Held(Event Player, Melee) == True);
			If(Event Player.Menu_Index[2] == 0);
				Event Player.P_VE[Event Player.Menu_Index[2]] = (100 ^ (Vertical Facing Angle Of(Event Player) / -178.001   0.500) * 1 - 1)
					/ 99 * 120   0.100;
			Else If(Event Player.Menu_Index[2] >= 1 && Event Player.Menu_Index[2] <= 5);
				Event Player.P_VE[Event Player.Menu_Index[2]] = Global.L_True_False[Round To Integer((Vertical Facing Angle Of(Event Player)
					/ -178.001   0.500) * Count Of(Global.L_True_False), Down)];
			End;
			Wait(0.100, Ignore Condition);
		End;
		Event Player.Menu_Index[0] = 4;
	}
}

rule("Tertiary Menu #6 Host Tools Loop")
{
	event
	{
		Ongoing - Each Player;
		All;
		All;
	}

	conditions
	{
		Is Button Held(Event Player, Melee) == True;
		Event Player.Menu_Index[0] == 3;
		Event Player.Menu_Index[1] == 6;
	}

	actions
	{
		While(Is Button Held(Event Player, Melee) == True);
			If(Event Player.Menu_Index[2] == 0);
				Event Player.P_HT[Event Player.Menu_Index[2]] = Append To Array(Custom String("All Non Host Players"), Filtered Array(All Players(
					All Teams), Current Array Element != Host Player))[Round To Integer((Vertical Facing Angle Of(Event Player) / 178.001   0.500)
					* Count Of(All Players(All Teams)), Down)];
			Else If(Event Player.Menu_Index[2] == 1);
				Event Player.P_HT[Event Player.Menu_Index[2]] = Global.L_Menu[Round To Integer((Vertical Facing Angle Of(Event Player)
					/ 178.001   0.500) * (Count Of(Global.L_Menu) - 1), Down)];
				Event Player.P_HT[Event Player.Menu_Index[2]   1] = Custom String("");
			Else If(Event Player.Menu_Index[2] == 2);
				If(Event Player.P_HT[1] == Global.L_Menu[0]);
					Event Player.P_HT[Event Player.Menu_Index[2]] = Global.L_GS[Round To Integer((Vertical Facing Angle Of(Event Player)
						/ 178.001   0.500) * (Count Of(Global.L_GS) - 3), Down)];
				Else If(Event Player.P_HT[1] == Global.L_Menu[1]);
					Event Player.P_HT[Event Player.Menu_Index[2]] = Global.L_CM[Round To Integer((Vertical Facing Angle Of(Event Player)
						/ 178.001   0.500) * Count Of(Global.L_CM), Down)];
				Else If(Event Player.P_HT[1] == Global.L_Menu[2]);
					Event Player.P_HT[Event Player.Menu_Index[2]] = Global.L_HP[Round To Integer((Vertical Facing Angle Of(Event Player)
						/ 178.001   0.500) * Count Of(Global.L_HP), Down)];
				Else If(Event Player.P_HT[1] == Global.L_Menu[3]);
					Event Player.P_HT[Event Player.Menu_Index[2]] = Global.L_AA[Round To Integer((Vertical Facing Angle Of(Event Player)
						/ 178.001   0.500) * Count Of(Global.L_AA), Down)];
				Else If(Event Player.P_HT[1] == Global.L_Menu[4]);
					Event Player.P_HT[Event Player.Menu_Index[2]] = Global.L_SE[Round To Integer((Vertical Facing Angle Of(Event Player)
						/ 178.001   0.500) * Count Of(Global.L_SE), Down)];
				Else If(Event Player.P_HT[1] == Global.L_Menu[5]);
					Event Player.P_HT[Event Player.Menu_Index[2]] = Global.L_VE[Round To Integer((Vertical Facing Angle Of(Event Player)
						/ 178.001   0.500) * Count Of(Global.L_VE), Down)];
				End;
			Else If(Event Player.Menu_Index[2] == 3);
			Else If(Event Player.Menu_Index[2] == 4);
			Else If(Event Player.Menu_Index[2] == 5);
				If(Event Player.P_HT[0] == Custom String("All Non Host Players"));
					Remove From Array(All Players(All Teams), Host Player).Mod_Access = Global.L_True_False[Round To Integer((Vertical Facing Angle Of(
						Event Player) / -178.001   0.500) * Count Of(Global.L_True_False), Down)];
				Else If(Event Player.P_HT[0] != Custom String("All Non Host Players"));
					Event Player.P_HT[0].Mod_Access = Global.L_True_False[Round To Integer((Vertical Facing Angle Of(Event Player) / -178.001   0.500)
						* Count Of(Global.L_True_False), Down)];
				End;
				Event Player.P_HT[Event Player.Menu_Index[2]] = Global.L_True_False[Round To Integer((Vertical Facing Angle Of(Event Player)
					/ -178.001   0.500) * Count Of(Global.L_True_False), Down)];
			Else If(Event Player.Menu_Index[2] == 6);
			Else If(Event Player.Menu_Index[2] == 7);
				Event Player.P_HT[Event Player.Menu_Index[2]] = (100 ^ (Vertical Facing Angle Of(Event Player) / -178.001   0.500) * 1 - 1)
					/ 99 * 90   10;
			End;
			Wait(0.100, Ignore Condition);
		End;
		Event Player.Menu_Index[0] = 4;
	}
}

disabled rule("Subroutines")
{
	event
	{
		Ongoing - Global;
	}
}

rule("Execute Subroutines")
{
	event
	{
		Ongoing - Each Player;
		All;
		All;
	}

	conditions
	{
		Event Player.Menu_Index[0] == 4;
	}

	actions
	{
		If(Event Player.Menu_Index[1] == 0);
			Call Subroutine(S_GS);
		Else If(Event Player.Menu_Index[1] == 1);
			Call Subroutine(S_CM);
		Else If(Event Player.Menu_Index[1] == 2);
			Call Subroutine(S_HP);
		Else If(Event Player.Menu_Index[1] == 3);
			Call Subroutine(S_AA);
		Else If(Event Player.Menu_Index[1] == 4);
			Call Subroutine(S_SE);
		Else If(Event Player.Menu_Index[1] == 5);
			Call Subroutine(S_VE);
		Else If(Event Player.Menu_Index[1] == 6);
			Call Subroutine(S_HT);
		End;
		Event Player.Menu_Index[0] = 2;
	}
}

rule("SUB: Button Toggle")
{
	event
	{
		Subroutine;
		S_Button_Toggle;
	}

	actions
	{
		If(Event Player.Menu_Index[0] == 0);
			Allow Button(Event Player, Primary Fire);
			Allow Button(Event Player, Secondary Fire);
			Allow Button(Event Player, Interact);
			Allow Button(Event Player, Melee);
			Allow Button(Event Player, Reload);
		Else;
			Disallow Button(Event Player, Primary Fire);
			Disallow Button(Event Player, Secondary Fire);
			Disallow Button(Event Player, Interact);
			Disallow Button(Event Player, Melee);
			Disallow Button(Event Player, Reload);
		End;
	}
}

rule("SUB: Set General Settings")
{
	event
	{
		Subroutine;
		S_GS;
	}

	actions
	{
		If(Event Player.Menu_Index[2] == 0);
			Start Forcing Player To Be Hero(Event Player, Event Player.P_GS[0]);
			Stop Forcing Player To Be Hero(Event Player);
		Else If(Event Player.Menu_Index[2] == 1);
			If(Event Player.P_GS[1] == True);
				Start Camera(Event Player, Ray Cast Hit Position(Eye Position(Event Player), Eye Position(Event Player) - Facing Direction Of(
					Event Player) * 2 * Distance Between(Eye Position(Event Player), Position Of(Event Player))   Vector(0,
					0.400 * Distance Between(Eye Position(Event Player), Position Of(Event Player)), 0), Null, Null, False), Ray Cast Hit Position(
					Eye Position(Event Player), Eye Position(Event Player)   Facing Direction Of(Event Player) * 100, Null, Null, False), Max(
					Event Player.P_CM[9] / 5, 20));
			Else If(Event Player.P_GS[1] == False);
				Stop Camera(Event Player);
			End;
		Else If(Event Player.Menu_Index[2] == 2);
			If(Event Player.P_GS[2] == True);
				Set Invisible(Event Player, None);
			Else If(Event Player.P_GS[2] == False);
				Set Invisible(Event Player, All);
			End;
		Else If(Event Player.Menu_Index[2] == 3);
			If(Event Player.P_GS[3] == True);
				Enable Nameplates(Event Player, All Players(All Teams));
			Else If(Event Player.P_GS[3] == False);
				Disable Nameplates(Event Player, All Players(All Teams));
			End;
		Else If(Event Player.Menu_Index[2] == 4);
			If(Event Player.P_GS[4] == Global.L_Color[0]);
				Start Forcing Player Outlines(Event Player, All Players(All Teams), True, White);
			Else If(Event Player.P_GS[4] == Global.L_Color[1]);
				Start Forcing Player Outlines(Event Player, All Players(All Teams), True, Red);
			Else If(Event Player.P_GS[4] == Global.L_Color[2]);
				Start Forcing Player Outlines(Event Player, All Players(All Teams), True, Orange);
			Else If(Event Player.P_GS[4] == Global.L_Color[3]);
				Start Forcing Player Outlines(Event Player, All Players(All Teams), True, Yellow);
			Else If(Event Player.P_GS[4] == Global.L_Color[4]);
				Start Forcing Player Outlines(Event Player, All Players(All Teams), True, Lime Green);
			Else If(Event Player.P_GS[4] == Global.L_Color[5]);
				Start Forcing Player Outlines(Event Player, All Players(All Teams), True, Green);
			Else If(Event Player.P_GS[4] == Global.L_Color[6]);
				Start Forcing Player Outlines(Event Player, All Players(All Teams), True, Turquoise);
			Else If(Event Player.P_GS[4] == Global.L_Color[7]);
				Start Forcing Player Outlines(Event Player, All Players(All Teams), True, Aqua);
			Else If(Event Player.P_GS[4] == Global.L_Color[8]);
				Start Forcing Player Outlines(Event Player, All Players(All Teams), True, Sky Blue);
			Else If(Event Player.P_GS[4] == Global.L_Color[9]);
				Start Forcing Player Outlines(Event Player, All Players(All Teams), True, Blue);
			Else If(Event Player.P_GS[4] == Global.L_Color[10]);
				Start Forcing Player Outlines(Event Player, All Players(All Teams), True, Purple);
			Else If(Event Player.P_GS[4] == Global.L_Color[11]);
				Start Forcing Player Outlines(Event Player, All Players(All Teams), True, Team 1);
			Else If(Event Player.P_GS[4] == Global.L_Color[12]);
				Start Forcing Player Outlines(Event Player, All Players(All Teams), True, Team 2);
			Else If(Event Player.P_GS[4] == Global.L_Color[13]);
				Stop Forcing Player Outlines(Event Player, All Players(All Teams));
			End;
		Else If(Event Player.Menu_Index[2] == 5);
		Else If(Event Player.Menu_Index[2] == 6);
			Chase Player Variable At Rate(Event Player, C_Scale, Event Player.P_GS[6], Event Player.P_GS[5], None);
		Else If(Event Player.Menu_Index[2] == 7);
			Chase Player Variable At Rate(Event Player, C_Barrier, Event Player.P_GS[7], Event Player.P_GS[5], None);
		Else If(Event Player.Menu_Index[2] == 8);
			Chase Player Variable At Rate(Event Player, C_Voice, Event Player.P_GS[8], Event Player.P_GS[5], None);
		Else If(Event Player.Menu_Index[2] == 9 || Event Player.Menu_Index[2] == 10);
			If(Event Player.P_GS[10] == False);
				Disable Movement Collision With Environment(Event Player, True);
				Event Player.P_GS[9] = False;
			Else If(Event Player.P_GS[9] == False);
				Disable Movement Collision With Environment(Event Player, False);
			Else;
				Enable Movement Collision With Environment(Event Player);
			End;
		Else If(Event Player.Menu_Index[2] == 11);
			If(Event Player.P_GS[11] == True);
				Enable Movement Collision With Players(Event Player);
			Else If(Event Player.P_GS[11] == False);
				Disable Movement Collision With Players(Event Player);
			End;
		Else If(Event Player.Menu_Index[2] == 12);
			Event Player.S_GS = Event Player.P_GS;
			Event Player.S_CM = Event Player.P_CM;
			Event Player.S_HP = Event Player.P_HP;
			Event Player.S_AA = Event Player.P_AA;
			Event Player.S_SE = Event Player.P_SE;
			Event Player.S_VE = Event Player.P_VE;
			Big Message(Event Player, Custom String("Current Parameters Saved to Savestate"));
		Else If(Event Player.Menu_Index[2] == 13);
			Event Player.P_GS = Event Player.S_GS;
			Event Player.P_CM = Event Player.S_CM;
			Event Player.P_HP = Event Player.S_HP;
			Event Player.P_AA = Event Player.S_AA;
			Event Player.P_SE = Event Player.S_SE;
			Event Player.P_VE = Event Player.S_VE;
			Call Subroutine(Set_Parameters);
		Else If(Event Player.Menu_Index[2] == 14);
			Event Player.P_GS = Global.R_GS;
			Event Player.P_CM = Global.R_CM;
			Event Player.P_HP = Global.R_HP;
			Event Player.P_AA = Global.R_AA;
			Event Player.P_SE = Global.R_SE;
			Event Player.P_VE = Global.R_VE;
			Call Subroutine(Set_Parameters);
		End;
	}
}

rule("SUB: Set Combat Modifiers")
{
	event
	{
		Subroutine;
		S_CM;
	}

	actions
	{
		If(Event Player.Menu_Index[2] == 0);
			Set Damage Dealt(Event Player, Event Player.P_CM[0]);
		Else If(Event Player.Menu_Index[2] == 1);
			Set Damage Received(Event Player, Event Player.P_CM[1]);
		Else If(Event Player.Menu_Index[2] == 2);
			Stop Damage Over Time(Event Player.ID_Damage_Heal[0]);
			If(Event Player.P_CM[2] != 0);
				Start Damage Over Time(Event Player, Null, 9999, Event Player.P_CM[2]);
				Event Player.ID_Damage_Heal[0] = Last Damage Over Time ID;
			End;
		Else If(Event Player.Menu_Index[2] == 3);
			Set Healing Dealt(Event Player, Event Player.P_CM[3]);
		Else If(Event Player.Menu_Index[2] == 4);
			Set Healing Received(Event Player, Event Player.P_CM[4]);
		Else If(Event Player.Menu_Index[2] == 5);
			Stop Heal Over Time(Event Player.ID_Damage_Heal[1]);
			If(Event Player.P_CM[5] != 0);
				Start Heal Over Time(Event Player, Null, 9999, Event Player.P_CM[5]);
				Event Player.ID_Damage_Heal[1] = Last Heal Over Time ID;
			End;
		Else If(Event Player.Menu_Index[2] == 6);
			Set Max Health(Event Player, Event Player.P_CM[6]);
			Wait(0.016, Ignore Condition);
			Heal(Event Player, Null, 100000);
		Else If(Event Player.Menu_Index[2] == 7);
			Set Jump Vertical Speed(Event Player, Event Player.P_CM[7]);
		Else If(Event Player.Menu_Index[2] == 8);
			Set Gravity(Event Player, Event Player.P_CM[8]);
		Else If(Event Player.Menu_Index[2] == 9);
			Set Move Speed(Event Player, Event Player.P_CM[9]);
		Else If(Event Player.Menu_Index[2] == 10);
			Set Projectile Gravity(Event Player, Event Player.P_CM[10]);
		Else If(Event Player.Menu_Index[2] == 11);
			Set Projectile Speed(Event Player, Event Player.P_CM[11]);
		End;
	}
}

rule("SUB: Set Health Pools")
{
	event
	{
		Subroutine;
		S_HP;
	}

	actions
	{
		Remove Health Pool From Player(Event Player.ID_Health_Pools[Round To Integer(Event Player.Menu_Index[2] / 2, Down)]);
		If(Event Player.P_HP[Round To Integer(Event Player.Menu_Index[2] / 2, Down) * 2   1] != 0);
			If(Event Player.P_HP[Round To Integer(Event Player.Menu_Index[2] / 2, Down) * 2] == Global.L_Type_Health_Pool[0]);
				Add Health Pool To Player(Event Player, Health, Event Player.P_HP[Round To Integer(Event Player.Menu_Index[2] / 2, Down) * 2   1],
					True, False);
			Else If(Event Player.P_HP[Round To Integer(Event Player.Menu_Index[2] / 2, Down) * 2] == Global.L_Type_Health_Pool[1]);
				Add Health Pool To Player(Event Player, Armor, Event Player.P_HP[Round To Integer(Event Player.Menu_Index[2] / 2, Down) * 2   1],
					True, False);
			Else If(Event Player.P_HP[Round To Integer(Event Player.Menu_Index[2] / 2, Down) * 2] == Global.L_Type_Health_Pool[2]);
				Add Health Pool To Player(Event Player, Shields, Event Player.P_HP[Round To Integer(Event Player.Menu_Index[2] / 2, Down) * 2   1],
					True, False);
			Else If(Event Player.P_HP[Round To Integer(Event Player.Menu_Index[2] / 2, Down) * 2] == Global.L_Type_Health_Pool[3]);
				Add Health Pool To Player(Event Player, Health, Event Player.P_HP[Round To Integer(Event Player.Menu_Index[2] / 2, Down) * 2   1],
					False, False);
			Else If(Event Player.P_HP[Round To Integer(Event Player.Menu_Index[2] / 2, Down) * 2] == Global.L_Type_Health_Pool[4]);
				Add Health Pool To Player(Event Player, Armor, Event Player.P_HP[Round To Integer(Event Player.Menu_Index[2] / 2, Down) * 2   1],
					False, False);
			Else If(Event Player.P_HP[Round To Integer(Event Player.Menu_Index[2] / 2, Down) * 2] == Global.L_Type_Health_Pool[5]);
				Add Health Pool To Player(Event Player, Shields, Event Player.P_HP[Round To Integer(Event Player.Menu_Index[2] / 2, Down) * 2   1],
					False, False);
			End;
			Event Player.ID_Health_Pools[Round To Integer(Event Player.Menu_Index[2] / 2, Down)] = Last Created Health Pool;
		End;
	}
}

rule("SUB: Set Ammo and Abilities")
{
	event
	{
		Subroutine;
		S_AA;
	}

	actions
	{
		If(Event Player.Menu_Index[2] == 0);
			Set Primary Fire Enabled(Event Player, Event Player.P_AA[0]);
		Else If(Event Player.Menu_Index[2] == 1);
			Set Ammo(Event Player, 0, Event Player.P_AA[1]);
		Else If(Event Player.Menu_Index[2] == 2);
			Set Max Ammo(Event Player, 0, Event Player.P_AA[2]);
		Else If(Event Player.Menu_Index[2] == 3);
			Set Ammo(Event Player, 1, Event Player.P_AA[3]);
		Else If(Event Player.Menu_Index[2] == 4);
			Set Max Ammo(Event Player, 1, Event Player.P_AA[4]);
		Else If(Event Player.Menu_Index[2] == 5);
			Set Secondary Fire Enabled(Event Player, Event Player.P_AA[5]);
		Else If(Event Player.Menu_Index[2] == 6);
			Set Ability Cooldown(Event Player, Button(Secondary Fire), 0);
		Else If(Event Player.Menu_Index[2] == 7);
			Set Ability 1 Enabled(Event Player, Event Player.P_AA[7]);
		Else If(Event Player.Menu_Index[2] == 8);
			Set Ability Cooldown(Event Player, Button(Ability 1), 0);
		Else If(Event Player.Menu_Index[2] == 9);
			Set Ability 2 Enabled(Event Player, Event Player.P_AA[9]);
		Else If(Event Player.Menu_Index[2] == 10);
			Set Ability Cooldown(Event Player, Button(Ability 2), 0);
		Else If(Event Player.Menu_Index[2] == 11);
			Set Ultimate Ability Enabled(Event Player, Event Player.P_AA[11]);
		Else If(Event Player.Menu_Index[2] == 13);
			Set Jump Enabled(Event Player, Event Player.P_AA[13]);
		Else If(Event Player.Menu_Index[2] == 14);
			Set Ability Cooldown(Event Player, Button(Jump), 0);
		Else If(Event Player.Menu_Index[2] == 15);
			Set Crouch Enabled(Event Player, Event Player.P_AA[15]);
		Else If(Event Player.Menu_Index[2] == 16);
			Set Ability Cooldown(Event Player, Button(Crouch), 0);
		Else If(Event Player.Menu_Index[2] == 17);
			Set Melee Enabled(Event Player, Event Player.P_AA[17]);
		Else If(Event Player.Menu_Index[2] == 18);
			Set Reload Enabled(Event Player, Event Player.P_AA[18]);
		End;
	}
}

rule("SUB: Set Status Effects")
{
	event
	{
		Subroutine;
		S_SE;
	}

	actions
	{
		If(Event Player.Menu_Index[2] == 0);
			If(Event Player.P_SE[0] == True);
				Set Status(Event Player, Null, Hacked, 9999);
			Else If(Event Player.P_SE[0] == False);
				Clear Status(Event Player, Hacked);
			End;
		Else If(Event Player.Menu_Index[2] == 1);
			If(Event Player.P_SE[1] == True);
				Set Status(Event Player, Null, Burning, 9999);
			Else If(Event Player.P_SE[1] == False);
				Clear Status(Event Player, Burning);
			End;
		Else If(Event Player.Menu_Index[2] == 2);
			If(Event Player.P_SE[2] == True);
				Set Status(Event Player, Null, Knocked Down, 9999);
			Else If(Event Player.P_SE[2] == False);
				Clear Status(Event Player, Knocked Down);
			End;
		Else If(Event Player.Menu_Index[2] == 3);
			If(Event Player.P_SE[3] == True);
				Set Status(Event Player, Null, Asleep, 9999);
			Else If(Event Player.P_SE[3] == False);
				Clear Status(Event Player, Asleep);
			End;
		Else If(Event Player.Menu_Index[2] == 4);
			If(Event Player.P_SE[4] == True);
				Set Status(Event Player, Null, Frozen, 9999);
			Else If(Event Player.P_SE[4] == False);
				Clear Status(Event Player, Frozen);
			End;
		Else If(Event Player.Menu_Index[2] == 5);
			If(Event Player.P_SE[5] == True);
				Set Status(Event Player, Null, Unkillable, 9999);
			Else If(Event Player.P_SE[5] == False);
				Clear Status(Event Player, Unkillable);
			End;
		Else If(Event Player.Menu_Index[2] == 6);
			If(Event Player.P_SE[6] == True);
				Set Status(Event Player, Null, Invincible, 9999);
			Else If(Event Player.P_SE[6] == False);
				Clear Status(Event Player, Invincible);
			End;
		Else If(Event Player.Menu_Index[2] == 7);
			If(Event Player.P_SE[7] == True);
				Set Status(Event Player, Null, Phased Out, 9999);
			Else If(Event Player.P_SE[7] == False);
				Clear Status(Event Player, Phased Out);
			End;
		Else If(Event Player.Menu_Index[2] == 8);
			If(Event Player.P_SE[8] == True);
				Set Status(Event Player, Null, Rooted, 9999);
			Else If(Event Player.P_SE[8] == False);
				Clear Status(Event Player, Rooted);
			End;
		Else If(Event Player.Menu_Index[2] == 9);
			If(Event Player.P_SE[9] == True);
				Set Status(Event Player, Null, Stunned, 9999);
			Else If(Event Player.P_SE[9] == False);
				Clear Status(Event Player, Stunned);
			End;
		Else If(Event Player.Menu_Index[2] == 10);
			If(Event Player.P_SE[10] == True);
				Disable Built-In Game Mode Respawning(Event Player);
				Kill(Event Player, Null);
			Else If(Event Player.P_SE[10] == False);
				Enable Built-In Game Mode Respawning(Event Player);
				Resurrect(Event Player);
			End;
		End;
	}
}

rule("SUB: Set Visual Effects")
{
	event
	{
		Subroutine;
		S_VE;
	}

	actions
	{
		If(Event Player.Menu_Index[2] != 0);
			Destroy Effect(Event Player.ID_Visual_Effect[0]);
			Destroy Effect(Event Player.ID_Visual_Effect[1]);
			Destroy Effect(Event Player.ID_Visual_Effect[2]);
			Destroy Effect(Event Player.ID_Visual_Effect[3]);
			Destroy Effect(Event Player.ID_Visual_Effect[4]);
			Destroy Effect(Event Player.ID_Visual_Effect[5]);
			Destroy Effect(Event Player.ID_Visual_Effect[6]);
			Destroy Effect(Event Player.ID_Visual_Effect[7]);
			Destroy Effect(Event Player.ID_Visual_Effect[8]);
			Destroy Effect(Event Player.ID_Visual_Effect[9]);
			Wait(0.016, Ignore Condition);
			If(Event Player.Menu_Index[2] == 1 && Event Player.P_VE[1] == True);
				Event Player.P_VE[2] = False;
				Event Player.P_VE[3] = False;
				Event Player.P_VE[4] = False;
				Event Player.P_VE[5] = False;
				Create Effect(All Players(All Teams), Sphere, White, Eye Position(Event Player)   Vector(Sine From Degrees((
					Event Player.C_Effect   1) % 1 * 360) * 0.750, Sine From Degrees((Event Player.C_Effect   1) % 1 * 360) * 0.500,
					Cosine From Degrees((Event Player.C_Effect   1) % 1 * 360) * 1) * Distance Between(Eye Position(Event Player), Position Of(
					Event Player)), 0.150 * Distance Between(Eye Position(Event Player), Position Of(Event Player)), Position and Radius);
				Event Player.ID_Visual_Effect[0] = Last Created Entity;
				Create Effect(All Players(All Teams), Good Aura, Sky Blue, Eye Position(Event Player)   Vector(Sine From Degrees((
					Event Player.C_Effect   0.950) % 1 * 360) * 0.750, Sine From Degrees((Event Player.C_Effect   0.950) % 1 * 360) * 0.500,
					Cosine From Degrees((Event Player.C_Effect   0.950) % 1 * 360) * 1) * Distance Between(Eye Position(Event Player), Position Of(
					Event Player)), 0.090 * Distance Between(Eye Position(Event Player), Position Of(Event Player)), Position and Radius);
				Event Player.ID_Visual_Effect[1] = Last Created Entity;
				Create Effect(All Players(All Teams), Good Aura, Sky Blue, Eye Position(Event Player)   Vector(Sine From Degrees((
					Event Player.C_Effect   0.900) % 1 * 360) * 0.750, Sine From Degrees((Event Player.C_Effect   0.900) % 1 * 360) * 0.500,
					Cosine From Degrees((Event Player.C_Effect   0.900) % 1 * 360) * 1) * Distance Between(Eye Position(Event Player), Position Of(
					Event Player)), 0.080 * Distance Between(Eye Position(Event Player), Position Of(Event Player)), Position and Radius);
				Event Player.ID_Visual_Effect[2] = Last Created Entity;
				Create Effect(All Players(All Teams), Good Aura, Sky Blue, Eye Position(Event Player)   Vector(Sine From Degrees((
					Event Player.C_Effect   0.850) % 1 * 360) * 0.750, Sine From Degrees((Event Player.C_Effect   0.850) % 1 * 360) * 0.500,
					Cosine From Degrees((Event Player.C_Effect   0.850) % 1 * 360) * 1) * Distance Between(Eye Position(Event Player), Position Of(
					Event Player)), 0.070 * Distance Between(Eye Position(Event Player), Position Of(Event Player)), Position and Radius);
				Event Player.ID_Visual_Effect[3] = Last Created Entity;
				Create Effect(All Players(All Teams), Good Aura, Blue, Eye Position(Event Player)   Vector(Sine From Degrees((
					Event Player.C_Effect   0.800) % 1 * 360) * 0.750, Sine From Degrees((Event Player.C_Effect   0.800) % 1 * 360) * 0.500,
					Cosine From Degrees((Event Player.C_Effect   0.800) % 1 * 360) * 1) * Distance Between(Eye Position(Event Player), Position Of(
					Event Player)), 0.060 * Distance Between(Eye Position(Event Player), Position Of(Event Player)), Position and Radius);
				Event Player.ID_Visual_Effect[4] = Last Created Entity;
				Create Effect(All Players(All Teams), Good Aura, Blue, Eye Position(Event Player)   Vector(Sine From Degrees((
					Event Player.C_Effect   0.750) % 1 * 360) * 0.750, Sine From Degrees((Event Player.C_Effect   0.750) % 1 * 360) * 0.500,
					Cosine From Degrees((Event Player.C_Effect   0.750) % 1 * 360) * 1) * Distance Between(Eye Position(Event Player), Position Of(
					Event Player)), 0.050 * Distance Between(Eye Position(Event Player), Position Of(Event Player)), Position and Radius);
				Event Player.ID_Visual_Effect[5] = Last Created Entity;
				Create Effect(All Players(All Teams), Good Aura, Blue, Eye Position(Event Player)   Vector(Sine From Degrees((
					Event Player.C_Effect   0.700) % 1 * 360) * 0.750, Sine From Degrees((Event Player.C_Effect   0.700) % 1 * 360) * 0.500,
					Cosine From Degrees((Event Player.C_Effect   0.700) % 1 * 360) * 1) * Distance Between(Eye Position(Event Player), Position Of(
					Event Player)), 0.040 * Distance Between(Eye Position(Event Player), Position Of(Event Player)), Position and Radius);
				Event Player.ID_Visual_Effect[6] = Last Created Entity;
				Create Effect(All Players(All Teams), Good Aura, Purple, Eye Position(Event Player)   Vector(Sine From Degrees((
					Event Player.C_Effect   0.650) % 1 * 360) * 0.750, Sine From Degrees((Event Player.C_Effect   0.650) % 1 * 360) * 0.500,
					Cosine From Degrees((Event Player.C_Effect   0.650) % 1 * 360) * 1) * Distance Between(Eye Position(Event Player), Position Of(
					Event Player)), 0.030 * Distance Between(Eye Position(Event Player), Position Of(Event Player)), Position and Radius);
				Event Player.ID_Visual_Effect[7] = Last Created Entity;
				Create Effect(All Players(All Teams), Good Aura, Purple, Eye Position(Event Player)   Vector(Sine From Degrees((
					Event Player.C_Effect   0.600) % 1 * 360) * 0.750, Sine From Degrees((Event Player.C_Effect   0.600) % 1 * 360) * 0.500,
					Cosine From Degrees((Event Player.C_Effect   0.600) % 1 * 360) * 1) * Distance Between(Eye Position(Event Player), Position Of(
					Event Player)), 0.020 * Distance Between(Eye Position(Event Player), Position Of(Event Player)), Position and Radius);
				Event Player.ID_Visual_Effect[8] = Last Created Entity;
				Create Effect(All Players(All Teams), Good Aura, Purple, Eye Position(Event Player)   Vector(Sine From Degrees((
					Event Player.C_Effect   0.550) % 1 * 360) * 0.750, Sine From Degrees((Event Player.C_Effect   0.550) % 1 * 360) * 0.500,
					Cosine From Degrees((Event Player.C_Effect   0.550) % 1 * 360) * 1) * Distance Between(Eye Position(Event Player), Position Of(
					Event Player)), 0.010 * Distance Between(Eye Position(Event Player), Position Of(Event Player)), Position and Radius);
				Event Player.ID_Visual_Effect[9] = Last Created Entity;
			Else If(Event Player.Menu_Index[2] == 2 && Event Player.P_VE[2] == True);
				Event Player.P_VE[1] = False;
				Event Player.P_VE[3] = False;
				Event Player.P_VE[4] = False;
				Event Player.P_VE[5] = False;
				Create Effect(All Players(All Teams), Good Aura, Red, Eye Position(Event Player), (Event Player.C_Effect   0)
					% 1 * Distance Between(Eye Position(Event Player), Position Of(Event Player)), Position and Radius);
				Event Player.ID_Visual_Effect[0] = Last Created Entity;
				Create Effect(All Players(All Teams), Good Aura, Orange, Eye Position(Event Player), (Event Player.C_Effect   0.900)
					% 1 * Distance Between(Eye Position(Event Player), Position Of(Event Player)), Position and Radius);
				Event Player.ID_Visual_Effect[1] = Last Created Entity;
				Create Effect(All Players(All Teams), Good Aura, Yellow, Eye Position(Event Player), (Event Player.C_Effect   0.800)
					% 1 * Distance Between(Eye Position(Event Player), Position Of(Event Player)), Position and Radius);
				Event Player.ID_Visual_Effect[2] = Last Created Entity;
				Create Effect(All Players(All Teams), Good Aura, Lime Green, Eye Position(Event Player), (Event Player.C_Effect   0.700)
					% 1 * Distance Between(Eye Position(Event Player), Position Of(Event Player)), Position and Radius);
				Event Player.ID_Visual_Effect[3] = Last Created Entity;
				Create Effect(All Players(All Teams), Good Aura, Green, Eye Position(Event Player), (Event Player.C_Effect   0.600)
					% 1 * Distance Between(Eye Position(Event Player), Position Of(Event Player)), Position and Radius);
				Event Player.ID_Visual_Effect[4] = Last Created Entity;
				Create Effect(All Players(All Teams), Good Aura, Turquoise, Eye Position(Event Player), (Event Player.C_Effect   0.500)
					% 1 * Distance Between(Eye Position(Event Player), Position Of(Event Player)), Position and Radius);
				Event Player.ID_Visual_Effect[5] = Last Created Entity;
				Create Effect(All Players(All Teams), Good Aura, Aqua, Eye Position(Event Player), (Event Player.C_Effect   0.400)
					% 1 * Distance Between(Eye Position(Event Player), Position Of(Event Player)), Position and Radius);
				Event Player.ID_Visual_Effect[6] = Last Created Entity;
				Create Effect(All Players(All Teams), Good Aura, Sky Blue, Eye Position(Event Player), (Event Player.C_Effect   0.300)
					% 1 * Distance Between(Eye Position(Event Player), Position Of(Event Player)), Position and Radius);
				Event Player.ID_Visual_Effect[7] = Last Created Entity;
				Create Effect(All Players(All Teams), Good Aura, Blue, Eye Position(Event Player), (Event Player.C_Effect   0.200)
					% 1 * Distance Between(Eye Position(Event Player), Position Of(Event Player)), Position and Radius);
				Event Player.ID_Visual_Effect[8] = Last Created Entity;
				Create Effect(All Players(All Teams), Good Aura, Purple, Eye Position(Event Player), (Event Player.C_Effect   0.100)
					% 1 * Distance Between(Eye Position(Event Player), Position Of(Event Player)), Position and Radius);
				Event Player.ID_Visual_Effect[9] = Last Created Entity;
			Else If(Event Player.Menu_Index[2] == 3 && Event Player.P_VE[3] == True);
				Event Player.P_VE[1] = False;
				Event Player.P_VE[2] = False;
				Event Player.P_VE[4] = False;
				Event Player.P_VE[5] = False;
				Create Effect(All Players(All Teams), Ring, Red, Event Player, (Event Player.C_Effect   0) % 1 * Distance Between(Eye Position(
					Event Player), Position Of(Event Player)), Position and Radius);
				Event Player.ID_Visual_Effect[0] = Last Created Entity;
				Create Effect(All Players(All Teams), Ring, Orange, Event Player, (Event Player.C_Effect   0.900) % 1 * Distance Between(
					Eye Position(Event Player), Position Of(Event Player)), Position and Radius);
				Event Player.ID_Visual_Effect[1] = Last Created Entity;
				Create Effect(All Players(All Teams), Ring, Yellow, Event Player, (Event Player.C_Effect   0.800) % 1 * Distance Between(
					Eye Position(Event Player), Position Of(Event Player)), Position and Radius);
				Event Player.ID_Visual_Effect[2] = Last Created Entity;
				Create Effect(All Players(All Teams), Ring, Lime Green, Event Player, (Event Player.C_Effect   0.700) % 1 * Distance Between(
					Eye Position(Event Player), Position Of(Event Player)), Position and Radius);
				Event Player.ID_Visual_Effect[3] = Last Created Entity;
				Create Effect(All Players(All Teams), Ring, Green, Event Player, (Event Player.C_Effect   0.600) % 1 * Distance Between(
					Eye Position(Event Player), Position Of(Event Player)), Position and Radius);
				Event Player.ID_Visual_Effect[4] = Last Created Entity;
				Create Effect(All Players(All Teams), Ring, Turquoise, Event Player, (Event Player.C_Effect   0.500) % 1 * Distance Between(
					Eye Position(Event Player), Position Of(Event Player)), Position and Radius);
				Event Player.ID_Visual_Effect[5] = Last Created Entity;
				Create Effect(All Players(All Teams), Ring, Aqua, Event Player, (Event Player.C_Effect   0.400) % 1 * Distance Between(
					Eye Position(Event Player), Position Of(Event Player)), Position and Radius);
				Event Player.ID_Visual_Effect[6] = Last Created Entity;
				Create Effect(All Players(All Teams), Ring, Sky Blue, Event Player, (Event Player.C_Effect   0.300) % 1 * Distance Between(
					Eye Position(Event Player), Position Of(Event Player)), Position and Radius);
				Event Player.ID_Visual_Effect[7] = Last Created Entity;
				Create Effect(All Players(All Teams), Ring, Blue, Event Player, (Event Player.C_Effect   0.200) % 1 * Distance Between(
					Eye Position(Event Player), Position Of(Event Player)), Position and Radius);
				Event Player.ID_Visual_Effect[8] = Last Created Entity;
				Create Effect(All Players(All Teams), Ring, Purple, Event Player, (Event Player.C_Effect   0.100) % 1 * Distance Between(
					Eye Position(Event Player), Position Of(Event Player)), Position and Radius);
				Event Player.ID_Visual_Effect[9] = Last Created Entity;
			Else If(Event Player.Menu_Index[2] == 4 && Event Player.P_VE[4] == True);
				Event Player.P_VE[1] = False;
				Event Player.P_VE[2] = False;
				Event Player.P_VE[3] = False;
				Event Player.P_VE[5] = False;
				Create Effect(All Players(All Teams), Light Shaft, White, Position Of(Event Player)   Vector(Sine From Degrees((
					Event Player.C_Effect   1) % 1 * 360), 0, Cosine From Degrees((Event Player.C_Effect   1) % 1 * 360)) * Distance Between(
					Eye Position(Event Player), Position Of(Event Player)) * Sine From Degrees(Event Player.C_Effect * 180),
					0.500 * Distance Between(Eye Position(Event Player), Position Of(Event Player)), Position and Radius);
				Event Player.ID_Visual_Effect[0] = Last Created Entity;
				Create Effect(All Players(All Teams), Light Shaft, Yellow, Position Of(Event Player)   Vector(Sine From Degrees((
					Event Player.C_Effect   0.900) % 1 * 360), 0, Cosine From Degrees((Event Player.C_Effect   0.900) % 1 * 360))
					* Distance Between(Eye Position(Event Player), Position Of(Event Player)) * Sine From Degrees(Event Player.C_Effect * 180),
					0.500 * Distance Between(Eye Position(Event Player), Position Of(Event Player)), Position and Radius);
				Event Player.ID_Visual_Effect[1] = Last Created Entity;
				Create Effect(All Players(All Teams), Light Shaft, Lime Green, Position Of(Event Player)   Vector(Sine From Degrees((
					Event Player.C_Effect   0.800) % 1 * 360), 0, Cosine From Degrees((Event Player.C_Effect   0.800) % 1 * 360))
					* Distance Between(Eye Position(Event Player), Position Of(Event Player)) * Sine From Degrees(Event Player.C_Effect * 180),
					0.500 * Distance Between(Eye Position(Event Player), Position Of(Event Player)), Position and Radius);
				Event Player.ID_Visual_Effect[2] = Last Created Entity;
				Create Effect(All Players(All Teams), Light Shaft, Green, Position Of(Event Player)   Vector(Sine From Degrees((
					Event Player.C_Effect   0.700) % 1 * 360), 0, Cosine From Degrees((Event Player.C_Effect   0.700) % 1 * 360))
					* Distance Between(Eye Position(Event Player), Position Of(Event Player)) * Sine From Degrees(Event Player.C_Effect * 180),
					0.500 * Distance Between(Eye Position(Event Player), Position Of(Event Player)), Position and Radius);
				Event Player.ID_Visual_Effect[3] = Last Created Entity;
				Create Effect(All Players(All Teams), Light Shaft, Turquoise, Position Of(Event Player)   Vector(Sine From Degrees((
					Event Player.C_Effect   0.600) % 1 * 360), 0, Cosine From Degrees((Event Player.C_Effect   0.600) % 1 * 360))
					* Distance Between(Eye Position(Event Player), Position Of(Event Player)) * Sine From Degrees(Event Player.C_Effect * 180),
					0.500 * Distance Between(Eye Position(Event Player), Position Of(Event Player)), Position and Radius);
				Event Player.ID_Visual_Effect[4] = Last Created Entity;
				Create Effect(All Players(All Teams), Light Shaft, White, Position Of(Event Player)   Vector(Sine From Degrees((
					Event Player.C_Effect   0.500) % 1 * 360), 0, Cosine From Degrees((Event Player.C_Effect   0.500) % 1 * 360))
					* Distance Between(Eye Position(Event Player), Position Of(Event Player)) * Sine From Degrees(Event Player.C_Effect * 180),
					0.500 * Distance Between(Eye Position(Event Player), Position Of(Event Player)), Position and Radius);
				Event Player.ID_Visual_Effect[5] = Last Created Entity;
				Create Effect(All Players(All Teams), Light Shaft, Yellow, Position Of(Event Player)   Vector(Sine From Degrees((
					Event Player.C_Effect   0.400) % 1 * 360), 0, Cosine From Degrees((Event Player.C_Effect   0.400) % 1 * 360))
					* Distance Between(Eye Position(Event Player), Position Of(Event Player)) * Sine From Degrees(Event Player.C_Effect * 180),
					0.500 * Distance Between(Eye Position(Event Player), Position Of(Event Player)), Position and Radius);
				Event Player.ID_Visual_Effect[6] = Last Created Entity;
				Create Effect(All Players(All Teams), Light Shaft, Lime Green, Position Of(Event Player)   Vector(Sine From Degrees((
					Event Player.C_Effect   0.300) % 1 * 360), 0, Cosine From Degrees((Event Player.C_Effect   0.300) % 1 * 360))
					* Distance Between(Eye Position(Event Player), Position Of(Event Player)) * Sine From Degrees(Event Player.C_Effect * 180),
					0.500 * Distance Between(Eye Position(Event Player), Position Of(Event Player)), Position and Radius);
				Event Player.ID_Visual_Effect[7] = Last Created Entity;
				Create Effect(All Players(All Teams), Light Shaft, Green, Position Of(Event Player)   Vector(Sine From Degrees((
					Event Player.C_Effect   0.200) % 1 * 360), 0, Cosine From Degrees((Event Player.C_Effect   0.200) % 1 * 360))
					* Distance Between(Eye Position(Event Player), Position Of(Event Player)) * Sine From Degrees(Event Player.C_Effect * 180),
					0.500 * Distance Between(Eye Position(Event Player), Position Of(Event Player)), Position and Radius);
				Event Player.ID_Visual_Effect[8] = Last Created Entity;
				Create Effect(All Players(All Teams), Light Shaft, Turquoise, Position Of(Event Player)   Vector(Sine From Degrees((
					Event Player.C_Effect   0.100) % 1 * 360), 0, Cosine From Degrees((Event Player.C_Effect   0.100) % 1 * 360))
					* Distance Between(Eye Position(Event Player), Position Of(Event Player)) * Sine From Degrees(Event Player.C_Effect * 180),
					0.500 * Distance Between(Eye Position(Event Player), Position Of(Event Player)), Position and Radius);
				Event Player.ID_Visual_Effect[9] = Last Created Entity;
			Else If(Event Player.Menu_Index[2] == 5 && Event Player.P_VE[5] == True);
				Event Player.P_VE[1] = False;
				Event Player.P_VE[2] = False;
				Event Player.P_VE[3] = False;
				Event Player.P_VE[4] = False;
				Create Effect(All Players(All Teams), Sphere, White, Eye Position(Event Player)   Vector(0, Distance Between(Eye Position(
					Event Player), Position Of(Event Player)), 0), 0.125 * Distance Between(Eye Position(Event Player), Position Of(Event Player)),
					Position and Radius);
				Event Player.ID_Visual_Effect[0] = Last Created Entity;
				Create Effect(All Players(All Teams), Sphere, Red, Eye Position(Event Player)   Vector(Sine From Degrees((
					Event Player.C_Effect   0.100) % 1 * 360) * Sine From Degrees(-45), Sine From Degrees((Event Player.C_Effect   0.100)
					% 1 * 360) * Cosine From Degrees(-45), Cosine From Degrees((Event Player.C_Effect   0.100) % 1 * 360) * Cosine From Degrees(
					70)) * Distance Between(Eye Position(Event Player), Position Of(Event Player))   Vector(0, Distance Between(Eye Position(
					Event Player), Position Of(Event Player)), 0), 0.050 * Distance Between(Eye Position(Event Player), Position Of(Event Player)),
					Position and Radius);
				Event Player.ID_Visual_Effect[1] = Last Created Entity;
				Create Effect(All Players(All Teams), Sphere, Red, Eye Position(Event Player)   Vector(Sine From Degrees((
					Event Player.C_Effect   0.400) % 1 * 360) * Sine From Degrees(0), Sine From Degrees((Event Player.C_Effect   0.400) % 1 * 360)
					* Cosine From Degrees(0), Cosine From Degrees((Event Player.C_Effect   0.400) % 1 * 360) * Cosine From Degrees(70))
					* Distance Between(Eye Position(Event Player), Position Of(Event Player))   Vector(0, Distance Between(Eye Position(
					Event Player), Position Of(Event Player)), 0), 0.050 * Distance Between(Eye Position(Event Player), Position Of(Event Player)),
					Position and Radius);
				Event Player.ID_Visual_Effect[2] = Last Created Entity;
				Create Effect(All Players(All Teams), Sphere, Red, Eye Position(Event Player)   Vector(Sine From Degrees((
					Event Player.C_Effect   0.700) % 1 * 360) * Sine From Degrees(45), Sine From Degrees((Event Player.C_Effect   0.700) % 1 * 360)
					* Cosine From Degrees(45), Cosine From Degrees((Event Player.C_Effect   0.700) % 1 * 360) * Cosine From Degrees(70))
					* Distance Between(Eye Position(Event Player), Position Of(Event Player))   Vector(0, Distance Between(Eye Position(
					Event Player), Position Of(Event Player)), 0), 0.050 * Distance Between(Eye Position(Event Player), Position Of(Event Player)),
					Position and Radius);
				Event Player.ID_Visual_Effect[3] = Last Created Entity;
				Create Effect(All Players(All Teams), Sphere, Red, Eye Position(Event Player)   Vector(Sine From Degrees((
					Event Player.C_Effect   0.200) % 1 * 360) * Cosine From Degrees(-45), Cosine From Degrees((Event Player.C_Effect   0.200)
					% 1 * 360) * Cosine From Degrees(70), Sine From Degrees((Event Player.C_Effect   0.200) % 1 * 360) * Sine From Degrees(-45))
					* Distance Between(Eye Position(Event Player), Position Of(Event Player))   Vector(0, Distance Between(Eye Position(
					Event Player), Position Of(Event Player)), 0), 0.050 * Distance Between(Eye Position(Event Player), Position Of(Event Player)),
					Position and Radius);
				Event Player.ID_Visual_Effect[4] = Last Created Entity;
				Create Effect(All Players(All Teams), Sphere, Red, Eye Position(Event Player)   Vector(Sine From Degrees((
					Event Player.C_Effect   0.500) % 1 * 360) * Cosine From Degrees(0), Cosine From Degrees((Event Player.C_Effect   0.500)
					% 1 * 360) * Cosine From Degrees(70), Sine From Degrees((Event Player.C_Effect   0.500) % 1 * 360) * Sine From Degrees(0))
					* Distance Between(Eye Position(Event Player), Position Of(Event Player))   Vector(0, Distance Between(Eye Position(
					Event Player), Position Of(Event Player)), 0), 0.050 * Distance Between(Eye Position(Event Player), Position Of(Event Player)),
					Position and Radius);
				Event Player.ID_Visual_Effect[5] = Last Created Entity;
				Create Effect(All Players(All Teams), Sphere, Red, Eye Position(Event Player)   Vector(Sine From Degrees((
					Event Player.C_Effect   0.800) % 1 * 360) * Cosine From Degrees(45), Cosine From Degrees((Event Player.C_Effect   0.800)
					% 1 * 360) * Cosine From Degrees(70), Sine From Degrees((Event Player.C_Effect   0.800) % 1 * 360) * Sine From Degrees(45))
					* Distance Between(Eye Position(Event Player), Position Of(Event Player))   Vector(0, Distance Between(Eye Position(
					Event Player), Position Of(Event Player)), 0), 0.050 * Distance Between(Eye Position(Event Player), Position Of(Event Player)),
					Position and Radius);
				Event Player.ID_Visual_Effect[6] = Last Created Entity;
				Create Effect(All Players(All Teams), Sphere, Red, Eye Position(Event Player)   Vector(Cosine From Degrees((
					Event Player.C_Effect   0.300) % 1 * 360) * Cosine From Degrees(70), Sine From Degrees((Event Player.C_Effect   0.300)
					% 1 * 360) * Sine From Degrees(-45), Sine From Degrees((Event Player.C_Effect   0.300) % 1 * 360) * Cosine From Degrees(-45))
					* Distance Between(Eye Position(Event Player), Position Of(Event Player))   Vector(0, Distance Between(Eye Position(
					Event Player), Position Of(Event Player)), 0), 0.050 * Distance Between(Eye Position(Event Player), Position Of(Event Player)),
					Position and Radius);
				Event Player.ID_Visual_Effect[7] = Last Created Entity;
				Create Effect(All Players(All Teams), Sphere, Red, Eye Position(Event Player)   Vector(Cosine From Degrees((
					Event Player.C_Effect   0.600) % 1 * 360) * Cosine From Degrees(70), Sine From Degrees((Event Player.C_Effect   0.600)
					% 1 * 360) * Sine From Degrees(0), Sine From Degrees((Event Player.C_Effect   0.600) % 1 * 360) * Cosine From Degrees(0))
					* Distance Between(Eye Position(Event Player), Position Of(Event Player))   Vector(0, Distance Between(Eye Position(
					Event Player), Position Of(Event Player)), 0), 0.050 * Distance Between(Eye Position(Event Player), Position Of(Event Player)),
					Position and Radius);
				Event Player.ID_Visual_Effect[8] = Last Created Entity;
				Create Effect(All Players(All Teams), Sphere, Red, Eye Position(Event Player)   Vector(Cosine From Degrees((
					Event Player.C_Effect   0.900) % 1 * 360) * Cosine From Degrees(70), Sine From Degrees((Event Player.C_Effect   0.900)
					% 1 * 360) * Sine From Degrees(45), Sine From Degrees((Event Player.C_Effect   0.900) % 1 * 360) * Cosine From Degrees(45))
					* Distance Between(Eye Position(Event Player), Position Of(Event Player))   Vector(0, Distance Between(Eye Position(
					Event Player), Position Of(Event Player)), 0), 0.050 * Distance Between(Eye Position(Event Player), Position Of(Event Player)),
					Position and Radius);
				Event Player.ID_Visual_Effect[9] = Last Created Entity;
			End;
		End;
	}
}

rule("SUB: Set Host Tools")
{
	event
	{
		Subroutine;
		S_HT;
	}

	actions
	{
		Enable Inspector Recording;
		If(Event Player.Menu_Index[2] == 0);
		Else If(Event Player.Menu_Index[2] == 1);
		Else If(Event Player.Menu_Index[2] == 2);
		Else If(Event Player.Menu_Index[2] == 3);
			If(Event Player.P_HT[0] == Custom String("All Non Host Players"));
				If(Index Of Array Value(Global.L_Menu, Event Player.P_HT[1]) == 0);
					Remove From Array(All Players(All Teams), Event Player).P_GS[Index Of Array Value(Global.L_GS, Event Player.P_HT[2])
						] = Event Player.P_GS[Index Of Array Value(Global.L_GS, Event Player.P_HT[2])];
					Remove From Array(All Players(All Teams), Event Player).Menu_Index = Array(4, Index Of Array Value(Global.L_Menu,
						Event Player.P_HT[1]), Index Of Array Value(Global.L_GS, Event Player.P_HT[2]));
				Else If(Index Of Array Value(Global.L_Menu, Event Player.P_HT[1]) == 1);
					Remove From Array(All Players(All Teams), Event Player).P_CM[Index Of Array Value(Global.L_CM, Event Player.P_HT[2])
						] = Event Player.P_CM[Index Of Array Value(Global.L_CM, Event Player.P_HT[2])];
					Remove From Array(All Players(All Teams), Event Player).Menu_Index = Array(4, Index Of Array Value(Global.L_Menu,
						Event Player.P_HT[1]), Index Of Array Value(Global.L_CM, Event Player.P_HT[2]));
				Else If(Index Of Array Value(Global.L_Menu, Event Player.P_HT[1]) == 2);
					Remove From Array(All Players(All Teams), Event Player).P_HP[Index Of Array Value(Global.L_HP, Event Player.P_HT[2])
						] = Event Player.P_HP[Index Of Array Value(Global.L_HP, Event Player.P_HT[2])];
					Remove From Array(All Players(All Teams), Event Player).Menu_Index = Array(4, Index Of Array Value(Global.L_Menu,
						Event Player.P_HT[1]), Index Of Array Value(Global.L_HP, Event Player.P_HT[2]));
				Else If(Index Of Array Value(Global.L_Menu, Event Player.P_HT[1]) == 3);
					Remove From Array(All Players(All Teams), Event Player).P_AA[Index Of Array Value(Global.L_AA, Event Player.P_HT[2])
						] = Event Player.P_AA[Index Of Array Value(Global.L_AA, Event Player.P_HT[2])];
					Remove From Array(All Players(All Teams), Event Player).Menu_Index = Array(4, Index Of Array Value(Global.L_Menu,
						Event Player.P_HT[1]), Index Of Array Value(Global.L_AA, Event Player.P_HT[2]));
				Else If(Index Of Array Value(Global.L_Menu, Event Player.P_HT[1]) == 4);
					Remove From Array(All Players(All Teams), Event Player).P_SE[Index Of Array Value(Global.L_SE, Event Player.P_HT[2])
						] = Event Player.P_SE[Index Of Array Value(Global.L_SE, Event Player.P_HT[2])];
					Remove From Array(All Players(All Teams), Event Player).Menu_Index = Array(4, Index Of Array Value(Global.L_Menu,
						Event Player.P_HT[1]), Index Of Array Value(Global.L_SE, Event Player.P_HT[2]));
				Else If(Index Of Array Value(Global.L_Menu, Event Player.P_HT[1]) == 5);
					Remove From Array(All Players(All Teams), Event Player).P_VE[Index Of Array Value(Global.L_VE, Event Player.P_HT[2])
						] = Event Player.P_VE[Index Of Array Value(Global.L_VE, Event Player.P_HT[2])];
					Remove From Array(All Players(All Teams), Event Player).Menu_Index = Array(4, Index Of Array Value(Global.L_Menu,
						Event Player.P_HT[1]), Index Of Array Value(Global.L_VE, Event Player.P_HT[2]));
				End;
			Else If(Event Player.P_HT[0] != Custom String("All Non Host Players"));
				If(Index Of Array Value(Global.L_Menu, Event Player.P_HT[1]) == 0);
					Event Player.P_HT[0].P_GS[Index Of Array Value(Global.L_GS, Event Player.P_HT[2])] = Event Player.P_GS[Index Of Array Value(
						Global.L_GS, Event Player.P_HT[2])];
					Event Player.P_HT[0].Menu_Index = Array(4, Index Of Array Value(Global.L_Menu, Event Player.P_HT[1]), Index Of Array Value(
						Global.L_GS, Event Player.P_HT[2]));
				Else If(Index Of Array Value(Global.L_Menu, Event Player.P_HT[1]) == 1);
					Event Player.P_HT[0].P_CM[Index Of Array Value(Global.L_CM, Event Player.P_HT[2])] = Event Player.P_CM[Index Of Array Value(
						Global.L_CM, Event Player.P_HT[2])];
					Event Player.P_HT[0].Menu_Index = Array(4, Index Of Array Value(Global.L_Menu, Event Player.P_HT[1]), Index Of Array Value(
						Global.L_CM, Event Player.P_HT[2]));
				Else If(Index Of Array Value(Global.L_Menu, Event Player.P_HT[1]) == 2);
					Event Player.P_HT[0].P_HP[Index Of Array Value(Global.L_HP, Event Player.P_HT[2])] = Event Player.P_HP[Index Of Array Value(
						Global.L_HP, Event Player.P_HT[2])];
					Event Player.P_HT[0].Menu_Index = Array(4, Index Of Array Value(Global.L_Menu, Event Player.P_HT[1]), Index Of Array Value(
						Global.L_HP, Event Player.P_HT[2]));
				Else If(Index Of Array Value(Global.L_Menu, Event Player.P_HT[1]) == 3);
					Event Player.P_HT[0].P_AA[Index Of Array Value(Global.L_AA, Event Player.P_HT[2])] = Event Player.P_AA[Index Of Array Value(
						Global.L_AA, Event Player.P_HT[2])];
					Event Player.P_HT[0].Menu_Index = Array(4, Index Of Array Value(Global.L_Menu, Event Player.P_HT[1]), Index Of Array Value(
						Global.L_AA, Event Player.P_HT[2]));
				Else If(Index Of Array Value(Global.L_Menu, Event Player.P_HT[1]) == 4);
					Event Player.P_HT[0].P_SE[Index Of Array Value(Global.L_SE, Event Player.P_HT[2])] = Event Player.P_SE[Index Of Array Value(
						Global.L_SE, Event Player.P_HT[2])];
					Event Player.P_HT[0].Menu_Index = Array(4, Index Of Array Value(Global.L_Menu, Event Player.P_HT[1]), Index Of Array Value(
						Global.L_SE, Event Player.P_HT[2]));
				Else If(Index Of Array Value(Global.L_Menu, Event Player.P_HT[1]) == 5);
					Event Player.P_HT[0].P_VE[Index Of Array Value(Global.L_VE, Event Player.P_HT[2])] = Event Player.P_VE[Index Of Array Value(
						Global.L_VE, Event Player.P_HT[2])];
					Event Player.P_HT[0].Menu_Index = Array(4, Index Of Array Value(Global.L_Menu, Event Player.P_HT[1]), Index Of Array Value(
						Global.L_VE, Event Player.P_HT[2]));
				End;
			End;
		Else If(Event Player.Menu_Index[2] == 4);
			If(Event Player.P_HT[0] == Custom String("All Non Host Players"));
				Remove From Array(All Players(All Teams), Event Player).S_GS = Event Player.S_GS;
				Remove From Array(All Players(All Teams), Event Player).S_CM = Event Player.S_CM;
				Remove From Array(All Players(All Teams), Event Player).S_HP = Event Player.S_HP;
				Remove From Array(All Players(All Teams), Event Player).S_AA = Event Player.S_AA;
				Remove From Array(All Players(All Teams), Event Player).S_SE = Event Player.S_SE;
				Remove From Array(All Players(All Teams), Event Player).S_VE = Event Player.S_VE;
				Remove From Array(All Players(All Teams), Event Player).Menu_Index = Array(3, 0, 13);
			Else If(Event Player.P_HT[0] != Custom String("All Non Host Players"));
				Event Player.P_HT[0].S_GS = Event Player.S_GS;
				Event Player.P_HT[0].S_CM = Event Player.S_CM;
				Event Player.P_HT[0].S_HP = Event Player.S_HP;
				Event Player.P_HT[0].S_AA = Event Player.S_AA;
				Event Player.P_HT[0].S_SE = Event Player.S_SE;
				Event Player.P_HT[0].S_VE = Event Player.S_VE;
				Event Player.P_HT[0].Menu_Index = Array(3, 0, 13);
			End;
		Else If(Event Player.Menu_Index[2] == 5);
			If(Event Player.P_HT[Event Player.Menu_Index[2]] == False);
				If(Event Player.P_HT[0] == Custom String("All Non Host Players"));
					Remove From Array(All Players(All Teams), Event Player).Menu_Index = Array(0, 0, 0);
				Else If(Event Player.P_HT[0] != Custom String("All Non Host Players"));
					Global.L_HT[0].Menu_Index = Array(0, 0, 0);
				End;
			End;
		Else If(Event Player.Menu_Index[2] == 6);
			If(Event Player.P_HT[0] == Custom String("All Non Host Players"));
				Teleport(Remove From Array(All Players(All Teams), Event Player), Ray Cast Hit Position(Eye Position(Event Player), Eye Position(
					Event Player)   Facing Direction Of(Event Player) * 100, Null, Null, False));
			Else If(Event Player.P_HT[0] != Custom String("All Non Host Players"));
				Teleport(Event Player.P_HT[0], Ray Cast Hit Position(Eye Position(Event Player), Eye Position(Event Player)   Facing Direction Of(
					Event Player) * 100, Null, Null, False));
			End;
		Else If(Event Player.Menu_Index[2] == 7);
			Set Slow Motion(Event Player.P_HT[0]);
		End;
		Global.L_HT = Array(Custom String("Selected Player"), Custom String("Selected Menu"), Custom String(
			"Selected Parameter From Menu"), Custom String(
			"Apply Your Selected Parameter Settings From Your Savestate to Selected Player"), Custom String(
			"Apply All Your Savestate Settings to Selected Player"), Custom String("Allow Selected Player Mod Access"), Custom String(
			"Teleport Selected Player To Host's Reticle"), Custom String("Gamespeed"));
		If(Event Player.P_HT[0] == Custom String("All Non Host Players"));
		Else If(Event Player.P_HT[0] != Custom String("All Non Host Players"));
		End;
		Disable Inspector Recording;
	}
}

rule("SUB: Set Parameters")
{
	event
	{
		Subroutine;
		Set_Parameters;
	}

	actions
	{
		Event Player.Menu_Index = Array(0, 0, 0);
		Destroy HUD Text(Event Player.ID_Menu_HUD[0]);
		Destroy HUD Text(Event Player.ID_Menu_HUD[1]);
		Call Subroutine(S_Button_Toggle);
		Wait(0.016, Ignore Condition);
		While(Event Player.II < Count Of(Global.L_GS) - 3);
			Event Player.Menu_Index[2] = Event Player.II;
			Call Subroutine(S_GS);
			Event Player.II  = 1;
			Wait(0.016, Ignore Condition);
		End;
		Event Player.II = 0;
		While(Event Player.II < Count Of(Global.L_CM));
			Event Player.Menu_Index[2] = Event Player.II;
			Call Subroutine(S_CM);
			Event Player.II  = 1;
			Wait(0.016, Ignore Condition);
		End;
		Event Player.II = 0;
		While(Event Player.II < Count Of(Global.L_HP));
			Event Player.Menu_Index[2] = Event Player.II;
			Call Subroutine(S_HP);
			Event Player.II  = 1;
			Wait(0.016, Ignore Condition);
		End;
		Event Player.II = 0;
		While(Event Player.II < Count Of(Global.L_AA));
			Event Player.Menu_Index[2] = Event Player.II;
			Call Subroutine(S_AA);
			Event Player.II  = 1;
			Wait(0.016, Ignore Condition);
		End;
		Event Player.II = 0;
		While(Event Player.II < Count Of(Global.L_SE));
			Event Player.Menu_Index[2] = Event Player.II;
			Call Subroutine(S_SE);
			Event Player.II  = 1;
			Wait(0.016, Ignore Condition);
		End;
		Event Player.II = 0;
		While(Event Player.II < Count Of(Global.L_VE));
			Event Player.Menu_Index[2] = Event Player.II;
			Call Subroutine(S_VE);
			Event Player.II  = 1;
			Wait(0.016, Ignore Condition);
		End;
		Event Player.II = 0;
		Event Player.Menu_Index = Array(0, 0, 0);
	}
}

disabled rule("Miscellaneous")
{
	event
	{
		Ongoing - Global;
	}
}

rule("Reset Effect Chaser")
{
	event
	{
		Ongoing - Each Player;
		All;
		All;
	}

	conditions
	{
		Event Player.C_Effect == 1;
	}

	actions
	{
		Event Player.C_Effect = 0;
	}
}

rule("Gecko's Tips")
{
	event
	{
		Ongoing - Global;
	}

	actions
	{
		Wait(20, Ignore Condition);
		Small Message(All Players(All Teams), Custom String("Gecko's Tip 1: Changing the projectile speed & projectile gravity to 0%"));
		Wait(3, Ignore Condition);
		Small Message(All Players(All Teams), Custom String("Gecko's Tip 1: will cause your bullets to suspend in air."));
		Wait(37, Ignore Condition);
		Small Message(All Players(All Teams), Custom String(
			"Gecko's Tip 2: If you are being griefed by other players, set "Phased Out""));
		Wait(3, Ignore Condition);
		Small Message(All Players(All Teams), Custom String("Gecko's Tip 2: to false and they won't be able to stun lock you."));
		Wait(37, Ignore Condition);
		Small Message(All Players(All Teams), Custom String("Gecko's Tip 3: Large characters can crash the server on regular maps"));
		Wait(3, Ignore Condition);
		Small Message(All Players(All Teams), Custom String("Gecko's Tip 3: turning environmental collisions to false fixes this..."));
		Wait(3, Ignore Condition);
		Small Message(All Players(All Teams), Custom String("Gecko's Tip 3: but you will frequently fall out of the map."));
		Wait(34, Ignore Condition);
		Small Message(All Players(All Teams), Custom String(
			"Gecko's Tip 4: Scaling rate for barriers, characters and voice line pitch is adjustable"));
		Wait(3, Ignore Condition);
		Small Message(All Players(All Teams), Custom String("Gecko's Tip 4: 100 units equates to 100% per second."));
		Wait(37, Ignore Condition);
		Small Message(All Players(All Teams), Custom String(
			"Gecko's Tip 5: You can create new player health pools by turning main health to 1%"));
		Wait(3, Ignore Condition);
		Small Message(All Players(All Teams), Custom String(
			"Gecko's Tip 5: and then replenish the health with whatever health pool type you want."));
		Wait(37, Ignore Condition);
		Small Message(All Players(All Teams), Custom String(
			"Gecko's Tip 6: If you are stuck in the skybox you can toggle Floor Collisions to false..."));
		Wait(3, Ignore Condition);
		Small Message(All Players(All Teams), Custom String(
			"Gecko's Tip 6: just remember to flip it back to true so you can stay on the map after."));
		Wait(37, Ignore Condition);
		Small Message(All Players(All Teams), Custom String("Gecko's Tip 7: Character selection is turned off for the spawn rooms."));
		Wait(3, Ignore Condition);
		Small Message(All Players(All Teams), Custom String(
			"Gecko's Tip 7: You can switch characters with the first parameter under General Settings."));
		Wait(37, Ignore Condition);
		Small Message(All Players(All Teams), Custom String(
			"Gecko's Tip 8: Orisa can draw pictures using her gun by turning projectile speed"));
		Wait(3, Ignore Condition);
		Small Message(All Players(All Teams), Custom String(
			"Gecko's Tip 8: to 0% since her bullets last for minutes when suspended in air."));
		disabled Wait(37, Ignore Condition);
		disabled Small Message(All Players(All Teams), Custom String("Gecko's Tip 9: The game host can teleport all players to their position"));
		disabled Wait(3, Ignore Condition);
		disabled Small Message(All Players(All Teams), Custom String("Gecko's Tip 9: by using the "Group Up" voice line."));
		Wait(17, Ignore Condition);
		Loop;
	}
}

Changelog

7 months ago 2.0.0

  • New Menu Overhaul -Added Health Pools -Added Ability to adjust cooldowns of abilities, including ultimate charge speed. -Added Custom Effects for players. -Players can save / load savestates. -Host can set game speed, teleport selected players to reticle, toggle mod permissions for players and can set parameters for players. -Added a kill tag to the Status Effects menu. -Added Instructions to the HUD.

CMZ6Q
click to copy
about 1 year ago 1.2.0

  • Added player speed, player gravity, projectile speed, and projectile gravity to the adjustable parameter list.

X2QVD
click to copy
about 1 year ago 1.1.0

-Added a NoClip Toggle

P5DW9
click to copy
about 1 year ago 1.0.0

This revision contains no notes

0ZPYD
click to copy