Back to home

Lucioball Remake

78J2F
click to copy
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/78J2F

Category:
Custom game mode

Author:
nanofanes

Rating:
9

Version:
1.11.2

Posted:
5 months ago

Last updated:
4 months ago

Tags:
lucioball football remakes remake havana havana arena arena ball balls mechanics new mechanics physics ball physics lucioball remastered lucioball recreated recreation lucioball 2 lucioball 3 lucioballl lucyball lucio

Share this workshop!

Options

<iframe width="560" height="315" src="https://www.youtube.com/embed/op6Oft0ClZ8?start=191" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>

The best lucioball remake to date. The ultimate give you 2x speed and tall jump. The ball has mechanics similar to the real lucioball. The goals are embedded inside a wall like in the real Lucioball. There's collision on inner parts of the goals. Match time depends on the size of the map. If the scores are the same by the end of the game, the tiebreaker will activate. The tiebreaker is "First to score wins". Once the big upcoming workshop update arrives, I will add support for quick melee boops and change the map from havana to workshop expanse and make the map equally big as the official lucioball maps. Havana Ayuttheya Goal

There are 2 jump pads, one to the left of the middle of the map, one to the right. jump pad

One jump pad for each goal Goal jump pad

variables
{
	global:
		0: Spawns_Array_Team_1
		1: Spawns_Array_Team_2
		2: Ball
		3: Goal_Array
		4: List_Of_Team_Scores
		5: Most_Recent_Boop
		6: Match_Status
		7: Other_Graphics_Vectors_Array
		8: Temp_In_World
		10: Glide_Configuration
		12: Goal_Collision_Number_List
		13: Time
		14: Spawn_Index_Team_1
		15: Spawn_Index_Team_2
		16: Start_Of_Round_Counter
		17: Temp_HUD_1
		18: Temp_HUD_2
		19: Wall_Components
		21: Goal_extra_numbers_List
		22: Direction_Vector
		24: Goal_Updater
		25: Scored_Goal

	player:
		1: Ultimate_Charge
		2: Is_Using_Ultimate
		3: Effect_Array
		6: Player_Correct_Spawn_Number
		8: Force_Player_Face_Ball
		9: Wall_Run_Y_Comp
}

rule("#################################################### Initialization ############################################################")
{
	event
	{
		Ongoing - Global;
	}

	conditions
	{
		Global Variable(Match_Status) == 0;
	}

	actions
	{
		Wait(0.003, Ignore Condition);
		Set Player Variable(Players In Slot(0, Team 1), Player_Correct_Spawn_Number, Random Value In Array(Array Slice(Global Variable(
			Spawn_Index_Team_1), 0, 5)));
		Wait(0.003, Ignore Condition);
		Modify Global Variable(Spawn_Index_Team_1, Remove From Array By Value, Player Variable(Players In Slot(0, Team 1),
			Player_Correct_Spawn_Number));
		Wait(0.003, Ignore Condition);
		Set Player Variable(Players In Slot(1, Team 1), Player_Correct_Spawn_Number, Random Value In Array(Array Slice(Global Variable(
			Spawn_Index_Team_1), 0, 5)));
		Wait(0.003, Ignore Condition);
		Modify Global Variable(Spawn_Index_Team_1, Remove From Array By Value, Player Variable(Players In Slot(1, Team 1),
			Player_Correct_Spawn_Number));
		Wait(0.003, Ignore Condition);
		Set Player Variable(Players In Slot(2, Team 1), Player_Correct_Spawn_Number, Random Value In Array(Array Slice(Global Variable(
			Spawn_Index_Team_1), 0, 5)));
		Wait(0.003, Ignore Condition);
		Modify Global Variable(Spawn_Index_Team_1, Remove From Array By Value, Player Variable(Players In Slot(2, Team 1),
			Player_Correct_Spawn_Number));
		Set Player Variable(Players In Slot(3, Team 1), Player_Correct_Spawn_Number, Random Value In Array(Array Slice(Global Variable(
			Spawn_Index_Team_1), 0, 5)));
		Wait(0.003, Ignore Condition);
		Modify Global Variable(Spawn_Index_Team_1, Remove From Array By Value, Player Variable(Players In Slot(3, Team 1),
			Player_Correct_Spawn_Number));
		Wait(0.003, Ignore Condition);
		Set Player Variable(Players In Slot(4, Team 1), Player_Correct_Spawn_Number, Random Value In Array(Array Slice(Global Variable(
			Spawn_Index_Team_1), 0, 5)));
		Wait(0.003, Ignore Condition);
		Modify Global Variable(Spawn_Index_Team_1, Remove From Array By Value, Player Variable(Players In Slot(4, Team 1),
			Player_Correct_Spawn_Number));
		Wait(0.003, Ignore Condition);
		Set Player Variable(Players In Slot(0, Team 2), Player_Correct_Spawn_Number, Random Value In Array(Array Slice(Global Variable(
			Spawn_Index_Team_2), 0, 5)));
		Wait(0.003, Ignore Condition);
		Modify Global Variable(Spawn_Index_Team_2, Remove From Array By Value, Player Variable(Players In Slot(0, Team 1),
			Player_Correct_Spawn_Number));
		Wait(0.003, Ignore Condition);
		Set Player Variable(Players In Slot(1, Team 2), Player_Correct_Spawn_Number, Random Value In Array(Array Slice(Global Variable(
			Spawn_Index_Team_2), 0, 5)));
		Wait(0.003, Ignore Condition);
		Modify Global Variable(Spawn_Index_Team_2, Remove From Array By Value, Player Variable(Players In Slot(1, Team 2),
			Player_Correct_Spawn_Number));
		Wait(0.003, Ignore Condition);
		Set Player Variable(Players In Slot(2, Team 2), Player_Correct_Spawn_Number, Random Value In Array(Array Slice(Global Variable(
			Spawn_Index_Team_2), 0, 5)));
		Wait(0.003, Ignore Condition);
		Modify Global Variable(Spawn_Index_Team_2, Remove From Array By Value, Player Variable(Players In Slot(2, Team 2),
			Player_Correct_Spawn_Number));
		Wait(0.003, Ignore Condition);
		Set Player Variable(Players In Slot(3, Team 2), Player_Correct_Spawn_Number, Random Value In Array(Array Slice(Global Variable(
			Spawn_Index_Team_2), 0, 5)));
		Wait(0.003, Ignore Condition);
		Modify Global Variable(Spawn_Index_Team_2, Remove From Array By Value, Player Variable(Players In Slot(3, Team 2),
			Player_Correct_Spawn_Number));
		Wait(0.003, Ignore Condition);
		Set Player Variable(Players In Slot(4, Team 2), Player_Correct_Spawn_Number, Random Value In Array(Array Slice(Global Variable(
			Spawn_Index_Team_2), 0, 5)));
		Wait(0.003, Ignore Condition);
		Modify Global Variable(Spawn_Index_Team_2, Remove From Array By Value, Player Variable(Players In Slot(4, Team 2),
			Player_Correct_Spawn_Number));
	}
}

rule("Ball Init")
{
	event
	{
		Ongoing - Global;
	}

	actions
	{
		Wait(0.016, Ignore Condition);
		Create Dummy Bot(Hero(Wrecking Ball), Team 1, 5, Value In Array(Global Variable(Goal_Array), 7), Vector(0, 0, 0));
		Wait(0.016, Ignore Condition);
		Set Move Speed(Global Variable(Ball), 0);
		Set Global Variable(Ball, Players In Slot(5, Team 1));
		Wait(0.100, Ignore Condition);
		Start Holding Button(Global Variable(Ball), Ability 1);
		Wait(0.100, Ignore Condition);
		Teleport(Global Variable(Ball), Value In Array(Global Variable(Goal_Array), 7));
		Set Move Speed(Global Variable(Ball), 110);
		Create Icon(Players Within Radius(Global Variable(Ball), 500, All Teams, Off), Global Variable(Ball), Flag,
			Visible To and Position, Sky Blue, True);
		Set Gravity(Global Variable(Ball), 50);
		Set Status(Global Variable(Ball), Null, Phased Out, 9999);
		Wait(0.016, Ignore Condition);
		Set Move Speed(Global Variable(Ball), 110);
		Set Player Variable(Global Variable(Ball), Wall_Run_Y_Comp, 0.500);
	}
}

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

	conditions
	{
		Or(Has Spawned(Event Player), Is Alive(Event Player)) == True;
		Is Dummy Bot(Event Player) == False;
	}

	actions
	{
		Set Status(Event Player, Null, Rooted, 5);
		Disable Built-In Game Mode Respawning(Event Player);
		Set Move Speed(Event Player, 120);
		Disallow Button(Event Player, Ultimate);
		Set Damage Dealt(Event Player, 1);
		Set Damage Received(Event Player, 1);
		Skip If(Compare(Team Of(Event Player), ==, Team 2), 1);
		Teleport(Event Player, Random Value In Array(Global Variable(Spawns_Array_Team_1)));
		Skip If(Compare(Team Of(Event Player), ==, Team 1), 1);
		Teleport(Event Player, Random Value In Array(Global Variable(Spawns_Array_Team_2)));
		Wait(2, Ignore Condition);
		Set Player Variable(Event Player, Force_Player_Face_Ball, True);
		Set Player Variable(Event Player, Wall_Run_Y_Comp, 7);
	}
}

rule("Array Init - for all maps")
{
	event
	{
		Ongoing - Global;
	}

	actions
	{
		Set Global Variable(List_Of_Team_Scores, Append To Array(Append To Array(Global Variable(List_Of_Team_Scores), 0), 0));
		Set Global Variable(Glide_Configuration, Empty Array);
		Modify Global Variable(Glide_Configuration, Append To Array, False);
		Modify Global Variable(Glide_Configuration, Append To Array, 0);
		Set Global Variable(Spawn_Index_Team_1, Append To Array(Append To Array(Append To Array(Append To Array(Global Variable(
			Spawn_Index_Team_1), 1), 2), 3), 4));
		Set Global Variable(Spawn_Index_Team_2, Append To Array(Append To Array(Append To Array(Append To Array(Global Variable(
			Spawn_Index_Team_2), 1), 2), 3), 4));
		Set Global Variable(Goal_Collision_Number_List, Empty Array);
		Big Message(Null, Custom String("Z Components", Null, Null, Null));
		Modify Global Variable(Goal_Collision_Number_List, Append To Array, Null);
		Modify Global Variable(Goal_Collision_Number_List, Append To Array, 2.250);
		Big Message(Null, Custom String("X Components", Null, Null, Null));
		Modify Global Variable(Goal_Collision_Number_List, Append To Array, 1.100);
		Modify Global Variable(Goal_Collision_Number_List, Append To Array, 1.100);
		Big Message(Null, Custom String("Y Components", Null, Null, Null));
		Modify Global Variable(Goal_Collision_Number_List, Append To Array, 0.900);
		Modify Global Variable(Goal_Collision_Number_List, Append To Array, 2);
		Big Message(Null, Custom String("Wait timers", Null, Null, Null));
		Modify Global Variable(Goal_Collision_Number_List, Append To Array, 0.300);
		Set Global Variable(Goal_extra_numbers_List, Empty Array);
		Big Message(Null, Custom String("Z Components", Null, Null, Null));
		Modify Global Variable(Goal_extra_numbers_List, Append To Array, -1.000);
		Big Message(Null, Custom String("X Components", Null, Null, Null));
		Modify Global Variable(Goal_extra_numbers_List, Append To Array, 1.100);
		Big Message(Null, Custom String("Y Components", Null, Null, Null));
		Modify Global Variable(Goal_extra_numbers_List, Append To Array, -0.900);
		Big Message(Null, Custom String("Z Components", Null, Null, Null));
		Modify Global Variable(Goal_extra_numbers_List, Append To Array, -1.000);
	}
}

rule("Array init - Havana")
{
	event
	{
		Ongoing - Global;
	}

	conditions
	{
		Current Map == Map(Havana);
	}

	actions
	{
		Set Global Variable(Spawns_Array_Team_1, Empty Array);
		Modify Global Variable(Spawns_Array_Team_1, Append To Array, Vector(221, 28.674, -55.000));
		Modify Global Variable(Spawns_Array_Team_1, Append To Array, Vector(215, 28.674, -61.000));
		Modify Global Variable(Spawns_Array_Team_1, Append To Array, Vector(207, 28.674, -55.000));
		Modify Global Variable(Spawns_Array_Team_1, Append To Array, Vector(223, 28.673, -60.000));
		Modify Global Variable(Spawns_Array_Team_1, Append To Array, Vector(203, 28.673, -60.000));
		Set Global Variable(Spawns_Array_Team_2, Empty Array);
		Modify Global Variable(Spawns_Array_Team_2, Append To Array, Vector(221, 28.674, -24.000));
		Modify Global Variable(Spawns_Array_Team_2, Append To Array, Vector(215, 28.674, -20.000));
		Modify Global Variable(Spawns_Array_Team_2, Append To Array, Vector(207, 28.674, -24.000));
		Modify Global Variable(Spawns_Array_Team_2, Append To Array, Vector(223, 28.673, -21.000));
		Modify Global Variable(Spawns_Array_Team_2, Append To Array, Vector(203, 28.673, -21.000));
		Set Global Variable(Goal_Array, Empty Array);
		Modify Global Variable(Goal_Array, Append To Array, 35.500);
		Modify Global Variable(Goal_Array, Append To Array, Vector(206, Value In Array(Global Variable(Goal_Array), 0), -17.500));
		Modify Global Variable(Goal_Array, Append To Array, Vector(221, Value In Array(Global Variable(Goal_Array), 0), -17.500));
		Modify Global Variable(Goal_Array, Append To Array, Vector(206, Value In Array(Global Variable(Goal_Array), 0), -62.000));
		Modify Global Variable(Goal_Array, Append To Array, Vector(221, Value In Array(Global Variable(Goal_Array), 0), -62.000));
		Modify Global Variable(Goal_Array, Append To Array, True);
		Modify Global Variable(Goal_Array, Append To Array, Vector(215, 600, -40.300));
		Modify Global Variable(Goal_Array, Append To Array, Vector(215, 28, -40.300));
		Modify Global Variable(Goal_Array, Append To Array, False);
		Modify Global Variable(Goal_Array, Append To Array, Null);
		Modify Global Variable(Goal_Array, Append To Array, False);
		Modify Global Variable(Goal_Array, Append To Array, 18);
		Modify Global Variable(Goal_Array, Append To Array, 10);
		Modify Global Variable(Goal_Array, Append To Array, 30);
		Set Global Variable(Other_Graphics_Vectors_Array, Empty Array);
		Modify Global Variable(Other_Graphics_Vectors_Array, Append To Array, Vector(205, 27.500, -40.300));
		Modify Global Variable(Other_Graphics_Vectors_Array, Append To Array, Vector(225, 27.500, -40.300));
		Set Global Variable(Wall_Components, Empty Array);
		Modify Global Variable(Wall_Components, Append To Array, 196);
		Modify Global Variable(Wall_Components, Append To Array, 229);
		Modify Global Variable(Wall_Components, Append To Array, -60.000);
		Modify Global Variable(Wall_Components, Append To Array, -20.500);
		Modify Global Variable(Wall_Components, Append To Array, 50);
	}
}

rule("Array init - Ayutthaya")
{
	event
	{
		Ongoing - Global;
	}

	conditions
	{
		Current Map == Map(Ayutthaya);
	}

	actions
	{
		Set Global Variable(Spawns_Array_Team_1, Empty Array);
		Modify Global Variable(Spawns_Array_Team_1, Append To Array, Vector(16.500, 22.173, 50));
		Modify Global Variable(Spawns_Array_Team_1, Append To Array, Vector(9, 22.173, 50));
		Modify Global Variable(Spawns_Array_Team_1, Append To Array, Vector(3, 22.498, 46));
		Modify Global Variable(Spawns_Array_Team_1, Append To Array, Vector(24, 22.173, 50));
		Modify Global Variable(Spawns_Array_Team_1, Append To Array, Vector(30, 22.173, 46));
		Set Global Variable(Spawns_Array_Team_2, Empty Array);
		Modify Global Variable(Spawns_Array_Team_2, Append To Array, Vector(24, 22.173, 110));
		Modify Global Variable(Spawns_Array_Team_2, Append To Array, Vector(30, 22.173, 114));
		Modify Global Variable(Spawns_Array_Team_2, Append To Array, Vector(16.500, 22.173, 110));
		Modify Global Variable(Spawns_Array_Team_2, Append To Array, Vector(9, 22.173, 110));
		Modify Global Variable(Spawns_Array_Team_2, Append To Array, Vector(3, 22.173, 114));
		Set Global Variable(Goal_Array, Empty Array);
		Modify Global Variable(Goal_Array, Append To Array, 29);
		Modify Global Variable(Goal_Array, Append To Array, Vector(9, Value In Array(Global Variable(Goal_Array), 0), 116));
		Modify Global Variable(Goal_Array, Append To Array, Vector(24, Value In Array(Global Variable(Goal_Array), 0), 116));
		Modify Global Variable(Goal_Array, Append To Array, Vector(9, Value In Array(Global Variable(Goal_Array), 0), 44));
		Modify Global Variable(Goal_Array, Append To Array, Vector(24, Value In Array(Global Variable(Goal_Array), 0), 44));
		Modify Global Variable(Goal_Array, Append To Array, True);
		Modify Global Variable(Goal_Array, Append To Array, Vector(15.363, 600, 83.733));
		Modify Global Variable(Goal_Array, Append To Array, Vector(16.500, 22.174, 80.500));
		Modify Global Variable(Goal_Array, Append To Array, False);
		Modify Global Variable(Goal_Array, Append To Array, Null);
		Modify Global Variable(Goal_Array, Append To Array, False);
		Modify Global Variable(Goal_Array, Append To Array, 35);
		Modify Global Variable(Goal_Array, Append To Array, 17.500);
		Modify Global Variable(Goal_Array, Append To Array, 40);
		Set Global Variable(Other_Graphics_Vectors_Array, Empty Array);
		Modify Global Variable(Other_Graphics_Vectors_Array, Append To Array, Vector(33.500, 22.174, 80.500));
		Modify Global Variable(Other_Graphics_Vectors_Array, Append To Array, Vector(0, 22.174, 80.500));
		Set Global Variable(Wall_Components, Empty Array);
		Modify Global Variable(Wall_Components, Append To Array, -4.250);
		Modify Global Variable(Wall_Components, Append To Array, 38.100);
		Modify Global Variable(Wall_Components, Append To Array, 45.500);
		Modify Global Variable(Wall_Components, Append To Array, 113.500);
		Modify Global Variable(Wall_Components, Append To Array, 52);
	}
}

rule("Global Init")
{
	event
	{
		Ongoing - Global;
	}

	actions
	{
		Set Global Variable(Time, 9999);
		Disable Built-In Game Mode Announcer;
		Create HUD Text(All Players(All Teams), Null, Custom String("Made by nanofanes#2272", Null, Null, Null), Null, Right, 1, Sky Blue,
			Sky Blue, Sky Blue, Visible To and String, Default Visibility);
		Create HUD Text(All Players(Team 1), Null, Custom String("You're on team Blue.", Null, Null, Null), Null, Right, 2, Sky Blue,
			Sky Blue, Sky Blue, Visible To and String, Default Visibility);
		Create HUD Text(All Players(Team 2), Null, Custom String("You're on team Red.", Null, Null, Null), Null, Right, 2, Sky Blue,
			Sky Blue, Sky Blue, Visible To and String, Default Visibility);
		Create HUD Text(All Players(All Teams), String("{0} {1}", Custom String("Time remaining:", Null, Null, Null), Global Variable(
			Time), Null), Null, Null, Top, 2, Sky Blue, Sky Blue, Sky Blue, Visible To and String, Default Visibility);
		Create HUD Text(All Players(All Teams), String("{0} {1} {2}", Custom String("Team", Null, Null, Null), Custom String(
			"Blue's score:", Null, Null, Null), Value In Array(Global Variable(List_Of_Team_Scores), 1)), Null, Null, Left, 1, Sky Blue,
			Sky Blue, Sky Blue, Visible To and String, Default Visibility);
		Create HUD Text(All Players(All Teams), String("{0} {1} {2}", Custom String("Team", Null, Null, Null), Custom String(
			"Red's score:", Null, Null, Null), Value In Array(Global Variable(List_Of_Team_Scores), 2)), Null, Null, Left, 2, Sky Blue,
			Sky Blue, Sky Blue, Visible To and String, Default Visibility);
		Create Effect(All Players(All Teams), Ring, Sky Blue, Value In Array(Global Variable(Other_Graphics_Vectors_Array), 0), 1.500,
			Visible To Position and Radius);
		Create Effect(All Players(All Teams), Ring, Sky Blue, Value In Array(Global Variable(Other_Graphics_Vectors_Array), 1), 1.500,
			Visible To Position and Radius);
		Wait(1, Ignore Condition);
		Set Global Variable(Time, Multiply(Value In Array(Global Variable(Goal_Array), 11), 8));
		Set Global Variable(Most_Recent_Boop, Random Value In Array(All Players(All Teams)));
		Wait(7, Ignore Condition);
		Chase Global Variable At Rate(Time, 0, 1, Destination and Rate);
		Set Global Variable(Match_Status, 1);
	}
}

rule("Directional vector outside goal")
{
	event
	{
		Ongoing - Each Player;
		Team 1;
		Slot 5;
	}

	conditions
	{
		Or(Global Variable(Goal_Updater), Compare(Speed Of(Event Player), >=, 0.001)) == True;
		Distance Between(Add(Value In Array(Global Variable(Goal_Array), 3), Vector(7.500, -4.000, 0)), Event Player) >= 7;
		Distance Between(Add(Value In Array(Global Variable(Goal_Array), 1), Vector(7.500, -4.000, 0)), Event Player) >= 7;
		X Component Of(Position Of(Event Player)) >= Value In Array(Global Variable(Wall_Components), 0);
		X Component Of(Position Of(Event Player)) <= Value In Array(Global Variable(Wall_Components), 1);
		Z Component Of(Position Of(Event Player)) >= Value In Array(Global Variable(Wall_Components), 2);
		Z Component Of(Position Of(Event Player)) <= Value In Array(Global Variable(Wall_Components), 3);
		Y Component Of(Position Of(Global Variable(Ball))) <= Subtract(Value In Array(Global Variable(Wall_Components), 4), 5);
	}

	actions
	{
		Set Global Variable(Direction_Vector, Add(Position Of(Event Player), Vector(0, 0, 0)));
		Wait(0.100, Ignore Condition);
		Loop If Condition Is True;
	}
}

rule("Directional Vector Inside Goal")
{
	event
	{
		Ongoing - Each Player;
		Team 1;
		Slot 5;
	}

	conditions
	{
		Or(And(Compare(X Component Of(Position Of(Global Variable(Ball))), >=, X Component Of(Add(Value In Array(Global Variable(
			Goal_Array), 1), Vector(1.500, 0, 0)))), Compare(X Component Of(Position Of(Global Variable(Ball))), <=, X Component Of(Add(
			Value In Array(Global Variable(Goal_Array), 2), Vector(-1.500, 0, 0))))), And(Compare(X Component Of(Position Of(
			Global Variable(Ball))), >=, X Component Of(Add(Value In Array(Global Variable(Goal_Array), 3), Vector(1.500, 0, 0)))),
			Compare(X Component Of(Position Of(Global Variable(Ball))), <=, X Component Of(Add(Value In Array(Global Variable(Goal_Array),
			4), Vector(-1.500, 0, 0)))))) == True;
		Or(Compare(Z Component Of(Position Of(Global Variable(Ball))), >=, Z Component Of(Add(Value In Array(Global Variable(Goal_Array),
			1), Vector(0, 0, -1.700)))), Compare(Z Component Of(Position Of(Global Variable(Ball))), <=, Z Component Of(Add(Value In Array(
			Global Variable(Goal_Array), 3), Vector(0, 0, 1.700))))) == True;
		Y Component Of(Position Of(Global Variable(Ball))) <= Subtract(Value In Array(Global Variable(Goal_Array), 0), 0.900);
	}

	actions
	{
		Set Global Variable(Direction_Vector, Add(Position Of(Event Player), Vector(0, 0, 0)));
		Wait(0.100, Ignore Condition);
		Loop If Condition Is True;
	}
}

rule("Goal detection team 1")
{
	event
	{
		Ongoing - Each Player;
		Team 1;
		Slot 5;
	}

	conditions
	{
		X Component Of(Position Of(Event Player)) > Add(X Component Of(Value In Array(Global Variable(Goal_Array), 3)), Value In Array(
			Global Variable(Goal_extra_numbers_List), 1));
		X Component Of(Position Of(Event Player)) < Add(X Component Of(Value In Array(Global Variable(Goal_Array), 4)), Multiply(
			Value In Array(Global Variable(Goal_extra_numbers_List), 1), -1.000));
		Z Component Of(Position Of(Event Player)) < Add(Z Component Of(Value In Array(Global Variable(Goal_Array), 3)), Value In Array(
			Global Variable(Goal_extra_numbers_List), 3));
		Y Component Of(Position Of(Event Player)) < Add(Value In Array(Global Variable(Goal_Array), 0), Value In Array(Global Variable(
			Goal_extra_numbers_List), 2));
		Y Component Of(Position Of(Event Player)) > Add(Value In Array(Global Variable(Goal_Array), 0), -15.000);
	}

	actions
	{
		Set Global Variable(Scored_Goal, True);
		Create In-World Text(All Players(All Teams), String("{0} {1}", Global Variable(Most_Recent_Boop), Custom String("Scored!", Null,
			Null, Null), Null), Add(Value In Array(Global Variable(Goal_Array), 3), Vector(7.500, -6.000, 0.500)), 4, Do Not Clip,
			Visible To Position and String, White, Default Visibility);
		Set Global Variable(Temp_In_World, Last Text ID);
		Modify Global Variable At Index(List_Of_Team_Scores, 2, Add, 1);
		Wait(1, Ignore Condition);
		Destroy In-World Text(Global Variable(Temp_In_World));
	}
}

rule("Goal detection team 2")
{
	event
	{
		Ongoing - Each Player;
		Team 1;
		Slot 5;
	}

	conditions
	{
		X Component Of(Position Of(Event Player)) > Add(X Component Of(Value In Array(Global Variable(Goal_Array), 1)), Value In Array(
			Global Variable(Goal_extra_numbers_List), 1));
		X Component Of(Position Of(Event Player)) < Add(X Component Of(Value In Array(Global Variable(Goal_Array), 2)), Multiply(
			Value In Array(Global Variable(Goal_extra_numbers_List), 1), -1.000));
		Z Component Of(Position Of(Event Player)) > Add(Z Component Of(Value In Array(Global Variable(Goal_Array), 1)), Multiply(
			Value In Array(Global Variable(Goal_extra_numbers_List), 0), -1.000));
		Y Component Of(Position Of(Event Player)) < Add(Value In Array(Global Variable(Goal_Array), 0), Value In Array(Global Variable(
			Goal_extra_numbers_List), 2));
		Y Component Of(Position Of(Event Player)) > Add(Value In Array(Global Variable(Goal_Array), 0), -15.000);
	}

	actions
	{
		Set Global Variable(Scored_Goal, True);
		Create In-World Text(All Players(All Teams), String("{0} {1}", Global Variable(Most_Recent_Boop), Custom String("Scored!", Null,
			Null, Null), Null), Add(Value In Array(Global Variable(Goal_Array), 1), Vector(7.500, -6.000, 0.500)), 4, Do Not Clip,
			Visible To Position and String, White, Default Visibility);
		Set Global Variable(Temp_In_World, Last Text ID);
		Modify Global Variable At Index(List_Of_Team_Scores, 1, Add, 1);
		Wait(1, Ignore Condition);
		Destroy In-World Text(Global Variable(Temp_In_World));
	}
}

rule("Goal Main()")
{
	event
	{
		Ongoing - Global;
	}

	conditions
	{
		Global Variable(Scored_Goal) == True;
	}

	actions
	{
		Set Move Speed(Global Variable(Ball), 0);
		Set Global Variable(Match_Status, 0);
		Stop Chasing Global Variable(Time);
		Play Effect(All Players(All Teams), Buff Impact Sound, Lime Green, Position Of(Global Variable(Ball)), 200);
		Play Effect(All Players(All Teams), Good Explosion, Red, Position Of(Global Variable(Ball)), 10);
		Teleport(Global Variable(Ball), Value In Array(Global Variable(Goal_Array), 6));
		Wait(1, Ignore Condition);
		Kill(Remove From Array(All Players(All Teams), Global Variable(Ball)), Global Variable(Most_Recent_Boop));
		Wait(4, Ignore Condition);
		Create HUD Text(All Players(All Teams), Custom String("Tip: Don't skip killcam. You can watch a replay of the goal.", Null, Null,
			Null), Null, Null, Top, 999, White, White, White, Visible To and String, Default Visibility);
		Set Global Variable(Temp_HUD_2, Last Text ID);
		Wait(5, Ignore Condition);
		Resurrect(All Players(All Teams));
		Skip If(Player Variable(Global Variable(Most_Recent_Boop), Is_Using_Ultimate), 2);
		Modify Player Variable(All Players(Team Of(Global Variable(Most_Recent_Boop))), Ultimate_Charge, Add, 10);
		Modify Player Variable(Global Variable(Most_Recent_Boop), Ultimate_Charge, Add, 20);
		Wait(0.001, Ignore Condition);
		Set Global Variable At Index(Goal_Array, 10, True);
		Set Status(All Players(All Teams), Null, Rooted, 3);
		Set Global Variable(Start_Of_Round_Counter, 3);
		Create HUD Text(All Players(All Teams), String("{0} {1}", Custom String("You can move in ", Null, Null, Null), Global Variable(
			Start_Of_Round_Counter), Null), Null, Null, Top, 999, Green, Green, Green, Visible To and String, Default Visibility);
		Chase Global Variable At Rate(Start_Of_Round_Counter, 0, 1, Destination and Rate);
		Set Global Variable(Temp_HUD_1, Last Text ID);
		Destroy HUD Text(Global Variable(Temp_HUD_2));
		Wait(0.050, Ignore Condition);
		Teleport(Global Variable(Ball), Value In Array(Global Variable(Goal_Array), 7));
		Set Player Variable(All Players(All Teams), Force_Player_Face_Ball, True);
		Wait(2.951, Ignore Condition);
		Set Global Variable(Match_Status, 1);
		Chase Global Variable At Rate(Time, 0, 1, Destination and Rate);
		Destroy HUD Text(Global Variable(Temp_HUD_1));
		Set Move Speed(Global Variable(Ball), 110);
		Small Message(Global Variable(Most_Recent_Boop), Custom String(" 10 ult for your team.   30 ult charge for you.", Null, Null,
			Null));
		Set Global Variable(Scored_Goal, False);
		Set Global Variable(Spawn_Index_Team_1, Empty Array);
		Set Global Variable(Spawn_Index_Team_2, Empty Array);
		Set Global Variable(Spawn_Index_Team_1, Append To Array(Append To Array(Append To Array(Append To Array(Append To Array(
			Global Variable(Spawn_Index_Team_1), 0), 1), 2), 3), 4));
		Set Global Variable(Spawn_Index_Team_2, Append To Array(Append To Array(Append To Array(Append To Array(Append To Array(
			Global Variable(Spawn_Index_Team_2), 0), 1), 2), 3), 4));
	}
}

rule("Goal Teleport Init")
{
	event
	{
		Ongoing - Global;
	}

	conditions
	{
		Value In Array(Global Variable(Goal_Array), 10) == True;
	}

	actions
	{
		Teleport(Players In Slot(0, Team 1), Value In Array(Global Variable(Spawns_Array_Team_1), Player Variable(Players In Slot(0,
			Team 1), Player_Correct_Spawn_Number)));
		Teleport(Players In Slot(1, Team 1), Value In Array(Global Variable(Spawns_Array_Team_1), Player Variable(Players In Slot(1,
			Team 1), Player_Correct_Spawn_Number)));
		Teleport(Players In Slot(2, Team 1), Value In Array(Global Variable(Spawns_Array_Team_1), Player Variable(Players In Slot(2,
			Team 1), Player_Correct_Spawn_Number)));
		Teleport(Players In Slot(3, Team 1), Value In Array(Global Variable(Spawns_Array_Team_1), Player Variable(Players In Slot(3,
			Team 1), Player_Correct_Spawn_Number)));
		Teleport(Players In Slot(4, Team 1), Value In Array(Global Variable(Spawns_Array_Team_1), Player Variable(Players In Slot(4,
			Team 1), Player_Correct_Spawn_Number)));
		Teleport(Players In Slot(0, Team 2), Value In Array(Global Variable(Spawns_Array_Team_2), Player Variable(Players In Slot(0,
			Team 2), Player_Correct_Spawn_Number)));
		Teleport(Players In Slot(1, Team 2), Value In Array(Global Variable(Spawns_Array_Team_2), Player Variable(Players In Slot(1,
			Team 2), Player_Correct_Spawn_Number)));
		Teleport(Players In Slot(2, Team 2), Value In Array(Global Variable(Spawns_Array_Team_2), Player Variable(Players In Slot(2,
			Team 2), Player_Correct_Spawn_Number)));
		Teleport(Players In Slot(3, Team 2), Value In Array(Global Variable(Spawns_Array_Team_2), Player Variable(Players In Slot(3,
			Team 2), Player_Correct_Spawn_Number)));
		Teleport(Players In Slot(4, Team 2), Value In Array(Global Variable(Spawns_Array_Team_2), Player Variable(Players In Slot(4,
			Team 2), Player_Correct_Spawn_Number)));
		Set Global Variable At Index(Goal_Array, 10, False);
	}
}

rule("Face ball")
{
	event
	{
		Ongoing - Each Player;
		All;
		All;
	}

	conditions
	{
		Player Variable(Event Player, Force_Player_Face_Ball) == True;
	}

	actions
	{
		Set Player Variable(Event Player, Force_Player_Face_Ball, False);
		Wait(0.050, Ignore Condition);
		Start Facing(Event Player, Direction Towards(Event Player, Global Variable(Ball)), 10000, To World, Direction and Turn Rate);
		Wait(0.100, Ignore Condition);
		Stop Facing(Event Player);
		Set Ultimate Charge(Event Player, Player Variable(Event Player, Ultimate_Charge));
	}
}

rule("Team 1 goal collision Right side")
{
	event
	{
		Ongoing - Global;
	}

	conditions
	{
		X Component Of(Position Of(Global Variable(Ball))) >= Add(X Component Of(Value In Array(Global Variable(Goal_Array), 4)), Multiply(
			Value In Array(Global Variable(Goal_Collision_Number_List), 3), -1.000));
		X Component Of(Position Of(Global Variable(Ball))) <= Add(X Component Of(Value In Array(Global Variable(Goal_Array), 4)),
			Value In Array(Global Variable(Goal_Collision_Number_List), 2));
		Y Component Of(Position Of(Global Variable(Ball))) <= Add(Value In Array(Global Variable(Goal_Array), 0), Value In Array(
			Global Variable(Goal_Collision_Number_List), 5));
		Z Component Of(Position Of(Global Variable(Ball))) <= Add(Z Component Of(Value In Array(Global Variable(Goal_Array), 4)),
			Value In Array(Global Variable(Goal_Collision_Number_List), 1));
	}

	actions
	{
		Apply Impulse(Global Variable(Ball), Direction Towards(Global Variable(Ball), Global Variable(Direction_Vector)), Add(8, Multiply(
			Speed Of(Global Variable(Ball)), 0.200)), To World, Cancel Contrary Motion);
		disabled Wait(0.150, Ignore Condition);
		disabled Set Global Variable(Goal_Updater, True);
		disabled Wait(0.100, Ignore Condition);
		disabled Set Global Variable(Goal_Updater, False);
	}
}

rule("Team 1 goal collision Left side")
{
	event
	{
		Ongoing - Global;
	}

	conditions
	{
		X Component Of(Position Of(Global Variable(Ball))) >= Add(X Component Of(Value In Array(Global Variable(Goal_Array), 3)), Multiply(
			Value In Array(Global Variable(Goal_Collision_Number_List), 2), -1.000));
		X Component Of(Position Of(Global Variable(Ball))) <= Add(X Component Of(Value In Array(Global Variable(Goal_Array), 3)),
			Value In Array(Global Variable(Goal_Collision_Number_List), 3));
		Y Component Of(Position Of(Global Variable(Ball))) <= Add(Value In Array(Global Variable(Goal_Array), 0), Value In Array(
			Global Variable(Goal_Collision_Number_List), 5));
		Z Component Of(Position Of(Global Variable(Ball))) <= Add(Z Component Of(Value In Array(Global Variable(Goal_Array), 4)),
			Value In Array(Global Variable(Goal_Collision_Number_List), 1));
	}

	actions
	{
		Apply Impulse(Global Variable(Ball), Direction Towards(Global Variable(Ball), Global Variable(Direction_Vector)), Add(8, Multiply(
			Speed Of(Global Variable(Ball)), 0.200)), To World, Cancel Contrary Motion);
		disabled Wait(0.050, Ignore Condition);
		disabled Set Global Variable(Goal_Updater, True);
		disabled Wait(0.100, Ignore Condition);
		disabled Set Global Variable(Goal_Updater, False);
	}
}

rule("Team 1 goal collision Top")
{
	event
	{
		Ongoing - Global;
	}

	conditions
	{
		X Component Of(Position Of(Global Variable(Ball))) <= Add(X Component Of(Value In Array(Global Variable(Goal_Array), 4)),
			Value In Array(Global Variable(Goal_Collision_Number_List), 3));
		X Component Of(Position Of(Global Variable(Ball))) >= Add(X Component Of(Value In Array(Global Variable(Goal_Array), 3)), Multiply(
			Value In Array(Global Variable(Goal_Collision_Number_List), 3), -1.000));
		Y Component Of(Position Of(Global Variable(Ball))) >= Add(Value In Array(Global Variable(Goal_Array), 0), Multiply(Value In Array(
			Global Variable(Goal_Collision_Number_List), 4), -1.000));
		Y Component Of(Position Of(Global Variable(Ball))) <= Add(Value In Array(Global Variable(Goal_Array), 0), Value In Array(
			Global Variable(Goal_Collision_Number_List), 5));
		Z Component Of(Position Of(Global Variable(Ball))) <= Add(Z Component Of(Value In Array(Global Variable(Goal_Array), 4)), Add(
			Value In Array(Global Variable(Goal_Collision_Number_List), 1), 1.200));
	}

	actions
	{
		Apply Impulse(Global Variable(Ball), Direction Towards(Global Variable(Ball), Global Variable(Direction_Vector)), Add(8, Multiply(
			Speed Of(Global Variable(Ball)), 0.200)), To World, Cancel Contrary Motion);
		disabled Set Global Variable(Goal_Updater, True);
		disabled Wait(0.100, Ignore Condition);
		disabled Loop If Condition Is True;
		disabled Wait(0.080, Ignore Condition);
		disabled Set Global Variable(Goal_Updater, False);
	}
}

rule("Team 2 goal collision Right side")
{
	event
	{
		Ongoing - Global;
	}

	conditions
	{
		X Component Of(Position Of(Global Variable(Ball))) <= Add(X Component Of(Value In Array(Global Variable(Goal_Array), 1)),
			Value In Array(Global Variable(Goal_Collision_Number_List), 3));
		X Component Of(Position Of(Global Variable(Ball))) >= Add(X Component Of(Value In Array(Global Variable(Goal_Array), 1)), Multiply(
			Value In Array(Global Variable(Goal_Collision_Number_List), 2), -1.000));
		Y Component Of(Position Of(Global Variable(Ball))) <= Add(Value In Array(Global Variable(Goal_Array), 0), Value In Array(
			Global Variable(Goal_Collision_Number_List), 5));
		Z Component Of(Position Of(Global Variable(Ball))) >= Add(Z Component Of(Value In Array(Global Variable(Goal_Array), 1)), Multiply(
			Value In Array(Global Variable(Goal_Collision_Number_List), 1), -1.000));
	}

	actions
	{
		Apply Impulse(Global Variable(Ball), Direction Towards(Global Variable(Ball), Global Variable(Direction_Vector)), Add(8, Multiply(
			Speed Of(Global Variable(Ball)), 0.200)), To World, Cancel Contrary Motion);
		disabled Wait(0.050, Ignore Condition);
		disabled Set Global Variable(Goal_Updater, True);
		disabled Wait(0.100, Ignore Condition);
		disabled Set Global Variable(Goal_Updater, False);
	}
}

rule("Team 2 goal collision Left side")
{
	event
	{
		Ongoing - Global;
	}

	conditions
	{
		X Component Of(Position Of(Global Variable(Ball))) <= Add(X Component Of(Value In Array(Global Variable(Goal_Array), 2)),
			Value In Array(Global Variable(Goal_Collision_Number_List), 2));
		X Component Of(Position Of(Global Variable(Ball))) >= Add(X Component Of(Value In Array(Global Variable(Goal_Array), 2)), Multiply(
			Value In Array(Global Variable(Goal_Collision_Number_List), 3), -1.000));
		Y Component Of(Position Of(Global Variable(Ball))) <= Add(Value In Array(Global Variable(Goal_Array), 0), Value In Array(
			Global Variable(Goal_Collision_Number_List), 5));
		Z Component Of(Position Of(Global Variable(Ball))) >= Add(Z Component Of(Value In Array(Global Variable(Goal_Array), 1)), Multiply(
			Value In Array(Global Variable(Goal_Collision_Number_List), 1), -1.000));
	}

	actions
	{
		Apply Impulse(Global Variable(Ball), Direction Towards(Global Variable(Ball), Global Variable(Direction_Vector)), Add(8, Multiply(
			Speed Of(Global Variable(Ball)), 0.200)), To World, Cancel Contrary Motion);
		disabled Wait(0.050, Ignore Condition);
		disabled Set Global Variable(Goal_Updater, True);
		disabled Wait(0.100, Ignore Condition);
		disabled Set Global Variable(Goal_Updater, False);
	}
}

rule("Team 2 goal collision Top")
{
	event
	{
		Ongoing - Global;
	}

	conditions
	{
		X Component Of(Position Of(Global Variable(Ball))) <= Add(X Component Of(Value In Array(Global Variable(Goal_Array), 2)),
			Value In Array(Global Variable(Goal_Collision_Number_List), 3));
		X Component Of(Position Of(Global Variable(Ball))) >= Add(X Component Of(Value In Array(Global Variable(Goal_Array), 1)), Multiply(
			Value In Array(Global Variable(Goal_Collision_Number_List), 3), -1.000));
		Y Component Of(Position Of(Global Variable(Ball))) >= Add(Value In Array(Global Variable(Goal_Array), 0), Multiply(Value In Array(
			Global Variable(Goal_Collision_Number_List), 4), -1.000));
		Y Component Of(Position Of(Global Variable(Ball))) <= Add(Value In Array(Global Variable(Goal_Array), 0), Value In Array(
			Global Variable(Goal_Collision_Number_List), 5));
		Z Component Of(Position Of(Global Variable(Ball))) >= Add(Z Component Of(Value In Array(Global Variable(Goal_Array), 1)), Multiply(
			Add(Value In Array(Global Variable(Goal_Collision_Number_List), 1), 1.200), -1.000));
	}

	actions
	{
		Apply Impulse(Global Variable(Ball), Direction Towards(Global Variable(Ball), Global Variable(Direction_Vector)), Add(8, Multiply(
			Speed Of(Global Variable(Ball)), 0.200)), To World, Cancel Contrary Motion);
		disabled Set Global Variable(Goal_Updater, True);
		disabled Wait(0.100, Ignore Condition);
		disabled Loop If Condition Is True;
		disabled Wait(0.080, Ignore Condition);
		disabled Set Global Variable(Goal_Updater, False);
	}
}

rule("-x Hammond and player")
{
	event
	{
		Ongoing - Each Player;
		All;
		All;
	}

	conditions
	{
		X Component Of(Position Of(Event Player)) <= Value In Array(Global Variable(Wall_Components), 0);
		Global Variable(Match_Status) == 1;
		Value In Array(Global Variable(Wall_Components), 0) != 0;
	}

	actions
	{
		Apply Impulse(Event Player, Direction Towards(Event Player, Add(Position Of(Event Player), Vector(10, Player Variable(Event Player,
			Wall_Run_Y_Comp), 0))), Add(8, Multiply(Speed Of(Event Player), 0.200)), To World, Cancel Contrary Motion);
		Skip If(Is Dummy Bot(Event Player), 3);
		Set Move Speed(Event Player, 200);
		Wait(0.700, Restart When True);
		Skip If(Player Variable(Event Player, Is_Using_Ultimate), 1);
		Set Move Speed(Event Player, 120);
	}
}

rule(" x Hammond and player")
{
	event
	{
		Ongoing - Each Player;
		All;
		All;
	}

	conditions
	{
		X Component Of(Position Of(Event Player)) >= Value In Array(Global Variable(Wall_Components), 1);
		Global Variable(Match_Status) == 1;
		Value In Array(Global Variable(Wall_Components), 1) != 0;
	}

	actions
	{
		Apply Impulse(Event Player, Direction Towards(Event Player, Add(Position Of(Event Player), Vector(-10.000, Player Variable(
			Event Player, Wall_Run_Y_Comp), 0))), Add(8, Multiply(Speed Of(Event Player), 0.200)), To World, Cancel Contrary Motion);
		Skip If(Is Dummy Bot(Event Player), 3);
		Set Move Speed(Event Player, 200);
		Wait(0.700, Restart When True);
		Skip If(Player Variable(Event Player, Is_Using_Ultimate), 1);
		Set Move Speed(Event Player, 120);
	}
}

rule("-z Hammond wall")
{
	event
	{
		Ongoing - Global;
	}

	conditions
	{
		Z Component Of(Position Of(Global Variable(Ball))) <= Value In Array(Global Variable(Wall_Components), 2);
		Global Variable(Match_Status) == 1;
		And(And(Compare(X Component Of(Position Of(Global Variable(Ball))), >=, X Component Of(Add(Value In Array(Global Variable(
			Goal_Array), 3), Vector(0.800, 0, 0)))), Compare(X Component Of(Position Of(Global Variable(Ball))), <=, X Component Of(Add(
			Value In Array(Global Variable(Goal_Array), 4), Vector(-0.800, 0, 0))))), Not(Compare(Y Component Of(Position Of(
			Global Variable(Ball))), >=, Subtract(Value In Array(Global Variable(Goal_Array), 0), 0.800)))) == False;
	}

	actions
	{
		Apply Impulse(Global Variable(Ball), Direction Towards(Global Variable(Ball), Add(Global Variable(Direction_Vector), Vector(0, 2,
			10))), Add(8, Multiply(Speed Of(Global Variable(Ball)), 0.200)), To World, Cancel Contrary Motion);
	}
}

rule(" z Hammond wall")
{
	event
	{
		Ongoing - Global;
	}

	conditions
	{
		Z Component Of(Position Of(Global Variable(Ball))) >= Value In Array(Global Variable(Wall_Components), 3);
		Global Variable(Match_Status) == 1;
		And(And(Compare(X Component Of(Position Of(Global Variable(Ball))), >=, X Component Of(Add(Value In Array(Global Variable(
			Goal_Array), 1), Vector(0.800, 0, 0)))), Compare(X Component Of(Position Of(Global Variable(Ball))), <=, X Component Of(Add(
			Value In Array(Global Variable(Goal_Array), 2), Vector(-0.800, 0, 0))))), Not(Compare(Y Component Of(Position Of(
			Global Variable(Ball))), >=, Subtract(Value In Array(Global Variable(Goal_Array), 0), 0.800)))) == False;
	}

	actions
	{
		Apply Impulse(Global Variable(Ball), Direction Towards(Global Variable(Ball), Add(Global Variable(Direction_Vector), Vector(0, 2,
			-10.000))), Add(8, Multiply(Speed Of(Global Variable(Ball)), 0.200)), To World, Cancel Contrary Motion);
	}
}

rule("-z Player wall")
{
	event
	{
		Ongoing - Each Player;
		All;
		All;
	}

	conditions
	{
		Z Component Of(Position Of(Event Player)) <= Add(Value In Array(Global Variable(Wall_Components), 2), -2.500);
		Is Dummy Bot(Event Player) == False;
	}

	actions
	{
		Apply Impulse(Event Player, Direction Towards(Event Player, Add(Position Of(Event Player), Vector(0, 5, 5))), 5, To World,
			Cancel Contrary Motion);
		Wait(0.300, Ignore Condition);
		Loop If Condition Is True;
	}
}

rule(" z Player wall")
{
	event
	{
		Ongoing - Each Player;
		All;
		All;
	}

	conditions
	{
		Z Component Of(Position Of(Event Player)) >= Add(Value In Array(Global Variable(Wall_Components), 3), 2.500);
		Is Dummy Bot(Event Player) == False;
	}

	actions
	{
		Apply Impulse(Event Player, Direction Towards(Event Player, Add(Position Of(Event Player), Vector(0, 5, -15.000))), 5, To World,
			Cancel Contrary Motion);
		Wait(0.300, Ignore Condition);
		Loop If Condition Is True;
	}
}

rule("Invisible roof")
{
	event
	{
		Ongoing - Each Player;
		All;
		All;
	}

	conditions
	{
		Y Component Of(Position Of(Event Player)) >= Value In Array(Global Variable(Wall_Components), 4);
		Value In Array(Global Variable(Wall_Components), 4) != 0;
		Global Variable(Match_Status) == 1;
	}

	actions
	{
		Apply Impulse(Event Player, Direction Towards(Event Player, World Vector Of(Vector(0, -1.000, 0), Event Player,
			Rotation And Translation)), Add(8, Multiply(Speed Of(Global Variable(Ball)), 0.200)), To World, Cancel Contrary Motion);
	}
}

rule("#################################################### Others #########################################################")
{
	event
	{
		Ongoing - Global;
	}
}

rule("Death")
{
	event
	{
		Player Died;
		All;
		All;
	}

	conditions
	{
		Global Variable(Match_Status) == 1;
	}

	actions
	{
		Wait(0.250, Ignore Condition);
		Respawn(Event Player);
		Wait(0.200, Ignore Condition);
		Skip If(Compare(Is Dummy Bot(Event Player), ==, False), 1);
		Teleport(Event Player, Value In Array(Global Variable(Goal_Array), 7));
		Skip If(Is Dummy Bot(Event Player), 4);
		Skip If(Compare(Team Of(Event Player), ==, Team 2), 1);
		Teleport(Event Player, Random Value In Array(Global Variable(Spawns_Array_Team_1)));
		Skip If(Compare(Team Of(Event Player), ==, Team 1), 1);
		Teleport(Event Player, Random Value In Array(Global Variable(Spawns_Array_Team_2)));
	}
}

rule("Goal team 1 Graphics")
{
	event
	{
		Ongoing - Global;
	}

	actions
	{
		Create Effect(All Players(All Teams), Ring, Sky Blue, Add(Value In Array(Global Variable(Goal_Array), 3), Vector(7.500, -6.900,
			0)), 10.500, Visible To Position and Radius);
		Create Beam Effect(All Players(All Teams), Grapple Beam, Add(Value In Array(Global Variable(Goal_Array), 3), Vector(0, 0, 0)),
			Subtract(Add(Value In Array(Global Variable(Goal_Array), 3), Vector(0, 0, 0)), Vector(0.001, 10, 0)), White,
			Visible To Position and Radius);
		Create Beam Effect(All Players(All Teams), Grapple Beam, Add(Value In Array(Global Variable(Goal_Array), 4), Vector(0, 0, 0.400)),
			Subtract(Add(Value In Array(Global Variable(Goal_Array), 4), Vector(0, 0, 0.400)), Vector(0.001, 10, 0)), White,
			Visible To Position and Radius);
		Create Beam Effect(All Players(All Teams), Grapple Beam, Value In Array(Global Variable(Goal_Array), 3), Subtract(Value In Array(
			Global Variable(Goal_Array), 3), Vector(0.001, 10, 0)), White, Visible To Position and Radius);
		Create Beam Effect(All Players(All Teams), Grapple Beam, Value In Array(Global Variable(Goal_Array), 4), Subtract(Value In Array(
			Global Variable(Goal_Array), 4), Vector(0.001, 10, 0)), White, Visible To Position and Radius);
		Create Beam Effect(All Players(All Teams), Grapple Beam, Add(Value In Array(Global Variable(Goal_Array), 3), Vector(0, 0, -0.400)),
			Subtract(Add(Value In Array(Global Variable(Goal_Array), 3), Vector(0, 0, -0.400)), Vector(0.001, 10, 0)), White,
			Visible To Position and Radius);
		Create Beam Effect(All Players(All Teams), Grapple Beam, Add(Value In Array(Global Variable(Goal_Array), 4), Vector(0, 0, -0.400)),
			Subtract(Add(Value In Array(Global Variable(Goal_Array), 4), Vector(0, 0, -0.400)), Vector(0.001, 10, 0)), White,
			Visible To Position and Radius);
		Create Beam Effect(All Players(All Teams), Grapple Beam, Add(Value In Array(Global Variable(Goal_Array), 3), Vector(0, 0, 0.400)),
			Subtract(Add(Value In Array(Global Variable(Goal_Array), 3), Vector(0, 0, 0.400)), Vector(0.001, 10, 0)), White,
			Visible To Position and Radius);
		Create Beam Effect(All Players(All Teams), Grapple Beam, Add(Value In Array(Global Variable(Goal_Array), 4), Vector(0, 0, 0.400)),
			Subtract(Add(Value In Array(Global Variable(Goal_Array), 4), Vector(0, 0, 0.400)), Vector(0.001, 10, 0)), White,
			Visible To Position and Radius);
		Create Beam Effect(All Players(All Teams), Grapple Beam, Add(Value In Array(Global Variable(Goal_Array), 3), Vector(0, 0, -0.800)),
			Subtract(Add(Value In Array(Global Variable(Goal_Array), 3), Vector(0, 0, -0.800)), Vector(0.001, 10, 0)), White,
			Visible To Position and Radius);
		Create Beam Effect(All Players(All Teams), Grapple Beam, Add(Value In Array(Global Variable(Goal_Array), 4), Vector(0, 0, -0.800)),
			Subtract(Add(Value In Array(Global Variable(Goal_Array), 4), Vector(0, 0, -0.800)), Vector(0.001, 10, 0)), White,
			Visible To Position and Radius);
		Create Beam Effect(All Players(All Teams), Grapple Beam, Add(Value In Array(Global Variable(Goal_Array), 3), Vector(0, 0, -1.200)),
			Subtract(Add(Value In Array(Global Variable(Goal_Array), 3), Vector(0, 0, -1.200)), Vector(0.001, 10, 0)), White,
			Visible To Position and Radius);
		Create Beam Effect(All Players(All Teams), Grapple Beam, Add(Value In Array(Global Variable(Goal_Array), 4), Vector(0, 0, -1.200)),
			Subtract(Add(Value In Array(Global Variable(Goal_Array), 4), Vector(0, 0, -1.200)), Vector(0.001, 10, 0)), White,
			Visible To Position and Radius);
		Create Beam Effect(All Players(All Teams), Grapple Beam, Add(Value In Array(Global Variable(Goal_Array), 3), Vector(0, 0, -1.600)),
			Subtract(Add(Value In Array(Global Variable(Goal_Array), 3), Vector(0, 0, -1.600)), Vector(0.001, 10, 0)), White,
			Visible To Position and Radius);
		Create Beam Effect(All Players(All Teams), Grapple Beam, Add(Value In Array(Global Variable(Goal_Array), 4), Vector(0, 0, -1.600)),
			Subtract(Add(Value In Array(Global Variable(Goal_Array), 4), Vector(0, 0, -1.600)), Vector(0.001, 10, 0)), White,
			Visible To Position and Radius);
		Create Beam Effect(All Players(All Teams), Grapple Beam, Add(Value In Array(Global Variable(Goal_Array), 3), Vector(0, 0, -2.000)),
			Subtract(Add(Value In Array(Global Variable(Goal_Array), 3), Vector(0, 0, -2.000)), Vector(0.001, 10, 0)), White,
			Visible To Position and Radius);
		Create Beam Effect(All Players(All Teams), Grapple Beam, Add(Value In Array(Global Variable(Goal_Array), 4), Vector(0, 0, -2.000)),
			Subtract(Add(Value In Array(Global Variable(Goal_Array), 4), Vector(0, 0, -2.000)), Vector(0.001, 10, 0)), White,
			Visible To Position and Radius);
		Create Beam Effect(All Players(All Teams), Grapple Beam, Add(Value In Array(Global Variable(Goal_Array), 3), Vector(0, 0, 0.400)),
			Add(Value In Array(Global Variable(Goal_Array), 4), Vector(0, 0, 0.400)), White, Visible To Position and Radius);
		Create Beam Effect(All Players(All Teams), Grapple Beam, Add(Value In Array(Global Variable(Goal_Array), 3), Vector(0, 0, 0)), Add(
			Value In Array(Global Variable(Goal_Array), 4), Vector(0, 0, 0)), White, Visible To Position and Radius);
		Create Beam Effect(All Players(All Teams), Grapple Beam, Add(Value In Array(Global Variable(Goal_Array), 3), Vector(0, 0, -0.400)),
			Add(Value In Array(Global Variable(Goal_Array), 4), Vector(0, 0, -0.400)), White, Visible To Position and Radius);
		Create Beam Effect(All Players(All Teams), Grapple Beam, Add(Value In Array(Global Variable(Goal_Array), 3), Vector(0, 0, -0.800)),
			Add(Value In Array(Global Variable(Goal_Array), 4), Vector(0, 0, -0.800)), White, Visible To Position and Radius);
		Create Beam Effect(All Players(All Teams), Grapple Beam, Add(Value In Array(Global Variable(Goal_Array), 3), Vector(0, 0, -1.200)),
			Add(Value In Array(Global Variable(Goal_Array), 4), Vector(0, 0, -1.200)), White, Visible To Position and Radius);
		Create Beam Effect(All Players(All Teams), Grapple Beam, Add(Value In Array(Global Variable(Goal_Array), 3), Vector(0, 0, -1.600)),
			Add(Value In Array(Global Variable(Goal_Array), 4), Vector(0, 0, -1.600)), White, Visible To Position and Radius);
		Create Beam Effect(All Players(All Teams), Grapple Beam, Add(Value In Array(Global Variable(Goal_Array), 3), Vector(0, 0, -2.000)),
			Add(Value In Array(Global Variable(Goal_Array), 4), Vector(0, 0, -2.000)), White, Visible To Position and Radius);
		Create Beam Effect(All Players(All Teams), Grapple Beam, Add(Value In Array(Global Variable(Goal_Array), 3), Vector(0, -0.300,
			-2.000)), Add(Value In Array(Global Variable(Goal_Array), 4), Vector(0, -0.300, -2.000)), White,
			Visible To Position and Radius);
		disabled Create Beam Effect(All Players(All Teams), Grapple Beam, Add(Value In Array(Global Variable(Goal_Array), 3), Vector(0, -0.900,
			-2.000)), Add(Value In Array(Global Variable(Goal_Array), 4), Vector(0, -0.900, -2.000)), White,
			Visible To Position and Radius);
		Create Beam Effect(All Players(All Teams), Grapple Beam, Add(Value In Array(Global Variable(Goal_Array), 3), Vector(0, -1.500,
			-2.000)), Add(Value In Array(Global Variable(Goal_Array), 4), Vector(0, -1.500, -2.000)), White,
			Visible To Position and Radius);
		disabled Create Beam Effect(All Players(All Teams), Grapple Beam, Add(Value In Array(Global Variable(Goal_Array), 3), Vector(0, -2.100,
			-2.000)), Add(Value In Array(Global Variable(Goal_Array), 4), Vector(0, -2.100, -2.000)), White,
			Visible To Position and Radius);
		Create Beam Effect(All Players(All Teams), Grapple Beam, Add(Value In Array(Global Variable(Goal_Array), 3), Vector(0, -2.700,
			-2.000)), Add(Value In Array(Global Variable(Goal_Array), 4), Vector(0, -2.700, -2.000)), White,
			Visible To Position and Radius);
		disabled Create Beam Effect(All Players(All Teams), Grapple Beam, Add(Value In Array(Global Variable(Goal_Array), 3), Vector(0, -3.300,
			-2.000)), Add(Value In Array(Global Variable(Goal_Array), 4), Vector(0, -3.300, -2.000)), White,
			Visible To Position and Radius);
		Create Beam Effect(All Players(All Teams), Grapple Beam, Add(Value In Array(Global Variable(Goal_Array), 3), Vector(0, -3.900,
			-2.000)), Add(Value In Array(Global Variable(Goal_Array), 4), Vector(0, -3.900, -2.000)), White,
			Visible To Position and Radius);
		disabled Create Beam Effect(All Players(All Teams), Grapple Beam, Add(Value In Array(Global Variable(Goal_Array), 3), Vector(0, -4.500,
			-2.000)), Add(Value In Array(Global Variable(Goal_Array), 4), Vector(0, -4.500, -2.000)), White,
			Visible To Position and Radius);
		Create Beam Effect(All Players(All Teams), Grapple Beam, Add(Value In Array(Global Variable(Goal_Array), 3), Vector(0, -5.100,
			-2.000)), Add(Value In Array(Global Variable(Goal_Array), 4), Vector(0, -5.100, -2.000)), White,
			Visible To Position and Radius);
		disabled Create Beam Effect(All Players(All Teams), Grapple Beam, Add(Value In Array(Global Variable(Goal_Array), 3), Vector(0, -5.700,
			-2.000)), Add(Value In Array(Global Variable(Goal_Array), 4), Vector(0, -5.700, -2.000)), White,
			Visible To Position and Radius);
		Create Beam Effect(All Players(All Teams), Grapple Beam, Add(Value In Array(Global Variable(Goal_Array), 3), Vector(0, -6.300,
			-2.000)), Add(Value In Array(Global Variable(Goal_Array), 4), Vector(0, -6.300, -2.000)), White,
			Visible To Position and Radius);
		disabled Create Beam Effect(All Players(All Teams), Grapple Beam, Add(Value In Array(Global Variable(Goal_Array), 3), Vector(0, -6.900,
			-2.000)), Add(Value In Array(Global Variable(Goal_Array), 4), Vector(0, -6.900, -2.000)), White,
			Visible To Position and Radius);
		Create Beam Effect(All Players(All Teams), Grapple Beam, Add(Value In Array(Global Variable(Goal_Array), 3), Vector(0, -7.500,
			-2.000)), Add(Value In Array(Global Variable(Goal_Array), 4), Vector(0, -7.500, -2.000)), White,
			Visible To Position and Radius);
	}
}

rule("Goal team 2 Graphics")
{
	event
	{
		Ongoing - Global;
	}

	actions
	{
		Create Effect(All Players(All Teams), Ring, Sky Blue, Add(Value In Array(Global Variable(Goal_Array), 1), Vector(7.500, -6.900,
			0)), 10.500, Visible To Position and Radius);
		Create Beam Effect(All Players(All Teams), Grapple Beam, Add(Value In Array(Global Variable(Goal_Array), 1), Vector(0, 0, 0)),
			Subtract(Add(Value In Array(Global Variable(Goal_Array), 1), Vector(0, 0, 0)), Vector(0.001, 10, 0)), White,
			Visible To Position and Radius);
		Create Beam Effect(All Players(All Teams), Grapple Beam, Add(Value In Array(Global Variable(Goal_Array), 2), Vector(0, 0, 0.400)),
			Subtract(Add(Value In Array(Global Variable(Goal_Array), 2), Vector(0, 0, 0.400)), Vector(0.001, 10, 0)), White,
			Visible To Position and Radius);
		Create Beam Effect(All Players(All Teams), Grapple Beam, Value In Array(Global Variable(Goal_Array), 1), Subtract(Value In Array(
			Global Variable(Goal_Array), 1), Vector(0.001, 10, 0)), White, Visible To Position and Radius);
		Create Beam Effect(All Players(All Teams), Grapple Beam, Value In Array(Global Variable(Goal_Array), 2), Subtract(Value In Array(
			Global Variable(Goal_Array), 2), Vector(0.001, 10, 0)), White, Visible To Position and Radius);
		Create Beam Effect(All Players(All Teams), Grapple Beam, Add(Value In Array(Global Variable(Goal_Array), 1), Vector(0, 0, -0.400)),
			Subtract(Add(Value In Array(Global Variable(Goal_Array), 1), Vector(0, 0, -0.400)), Vector(0.001, 10, 0)), White,
			Visible To Position and Radius);
		Create Beam Effect(All Players(All Teams), Grapple Beam, Add(Value In Array(Global Variable(Goal_Array), 2), Vector(0, 0, -0.400)),
			Subtract(Add(Value In Array(Global Variable(Goal_Array), 2), Vector(0, 0, -0.400)), Vector(0.001, 10, 0)), White,
			Visible To Position and Radius);
		Create Beam Effect(All Players(All Teams), Grapple Beam, Add(Value In Array(Global Variable(Goal_Array), 1), Vector(0, 0, 0.400)),
			Subtract(Add(Value In Array(Global Variable(Goal_Array), 1), Vector(0, 0, 0.400)), Vector(0.001, 10, 0)), White,
			Visible To Position and Radius);
		Create Beam Effect(All Players(All Teams), Grapple Beam, Add(Value In Array(Global Variable(Goal_Array), 2), Vector(0, 0, 0.400)),
			Subtract(Add(Value In Array(Global Variable(Goal_Array), 2), Vector(0, 0, 0.400)), Vector(0.001, 10, 0)), White,
			Visible To Position and Radius);
		Create Beam Effect(All Players(All Teams), Grapple Beam, Add(Value In Array(Global Variable(Goal_Array), 1), Vector(0, 0, -0.800)),
			Subtract(Add(Value In Array(Global Variable(Goal_Array), 1), Vector(0, 0, -0.800)), Vector(0.001, 10, 0)), White,
			Visible To Position and Radius);
		Create Beam Effect(All Players(All Teams), Grapple Beam, Add(Value In Array(Global Variable(Goal_Array), 2), Vector(0, 0, -0.800)),
			Subtract(Add(Value In Array(Global Variable(Goal_Array), 2), Vector(0, 0, -0.800)), Vector(0.001, 10, 0)), White,
			Visible To Position and Radius);
		Create Beam Effect(All Players(All Teams), Grapple Beam, Add(Value In Array(Global Variable(Goal_Array), 1), Vector(0, 0, -1.200)),
			Subtract(Add(Value In Array(Global Variable(Goal_Array), 1), Vector(0, 0, -1.200)), Vector(0.001, 10, 0)), White,
			Visible To Position and Radius);
		Create Beam Effect(All Players(All Teams), Grapple Beam, Add(Value In Array(Global Variable(Goal_Array), 2), Vector(0, 0, -1.200)),
			Subtract(Add(Value In Array(Global Variable(Goal_Array), 2), Vector(0, 0, -1.200)), Vector(0.001, 10, 0)), White,
			Visible To Position and Radius);
		Create Beam Effect(All Players(All Teams), Grapple Beam, Add(Value In Array(Global Variable(Goal_Array), 1), Vector(0, 0, -1.600)),
			Subtract(Add(Value In Array(Global Variable(Goal_Array), 1), Vector(0, 0, -1.600)), Vector(0.001, 10, 0)), White,
			Visible To Position and Radius);
		Create Beam Effect(All Players(All Teams), Grapple Beam, Add(Value In Array(Global Variable(Goal_Array), 2), Vector(0, 0, -1.600)),
			Subtract(Add(Value In Array(Global Variable(Goal_Array), 2), Vector(0, 0, -1.600)), Vector(0.001, 10, 0)), White,
			Visible To Position and Radius);
		Create Beam Effect(All Players(All Teams), Grapple Beam, Add(Value In Array(Global Variable(Goal_Array), 1), Vector(0, 0, -2.000)),
			Subtract(Add(Value In Array(Global Variable(Goal_Array), 1), Vector(0, 0, -2.000)), Vector(0.001, 10, 0)), White,
			Visible To Position and Radius);
		Create Beam Effect(All Players(All Teams), Grapple Beam, Add(Value In Array(Global Variable(Goal_Array), 2), Vector(0, 0, -2.000)),
			Subtract(Add(Value In Array(Global Variable(Goal_Array), 2), Vector(0, 0, -2.000)), Vector(0.001, 10, 0)), White,
			Visible To Position and Radius);
		Create Beam Effect(All Players(All Teams), Grapple Beam, Add(Value In Array(Global Variable(Goal_Array), 1), Vector(0, 0, 0.400)),
			Add(Value In Array(Global Variable(Goal_Array), 2), Vector(0, 0, 0.400)), White, Visible To Position and Radius);
		Create Beam Effect(All Players(All Teams), Grapple Beam, Add(Value In Array(Global Variable(Goal_Array), 1), Vector(0, 0, 0)), Add(
			Value In Array(Global Variable(Goal_Array), 2), Vector(0, 0, 0)), White, Visible To Position and Radius);
		Create Beam Effect(All Players(All Teams), Grapple Beam, Add(Value In Array(Global Variable(Goal_Array), 1), Vector(0, 0, -0.400)),
			Add(Value In Array(Global Variable(Goal_Array), 2), Vector(0, 0, -0.400)), White, Visible To Position and Radius);
		Create Beam Effect(All Players(All Teams), Grapple Beam, Add(Value In Array(Global Variable(Goal_Array), 1), Vector(0, 0, -0.800)),
			Add(Value In Array(Global Variable(Goal_Array), 2), Vector(0, 0, -0.800)), White, Visible To Position and Radius);
		Create Beam Effect(All Players(All Teams), Grapple Beam, Add(Value In Array(Global Variable(Goal_Array), 1), Vector(0, 0, -1.200)),
			Add(Value In Array(Global Variable(Goal_Array), 2), Vector(0, 0, -1.200)), White, Visible To Position and Radius);
		Create Beam Effect(All Players(All Teams), Grapple Beam, Add(Value In Array(Global Variable(Goal_Array), 1), Vector(0, 0, -1.600)),
			Add(Value In Array(Global Variable(Goal_Array), 2), Vector(0, 0, -1.600)), White, Visible To Position and Radius);
		Create Beam Effect(All Players(All Teams), Grapple Beam, Add(Value In Array(Global Variable(Goal_Array), 1), Vector(0, 0, -2.000)),
			Add(Value In Array(Global Variable(Goal_Array), 2), Vector(0, 0, -2.000)), White, Visible To Position and Radius);
		Create Beam Effect(All Players(All Teams), Grapple Beam, Add(Value In Array(Global Variable(Goal_Array), 1), Vector(0, -0.300,
			0.400)), Add(Value In Array(Global Variable(Goal_Array), 2), Vector(0, -0.300, 0.400)), White, Visible To Position and Radius);
		disabled Create Beam Effect(All Players(All Teams), Grapple Beam, Add(Value In Array(Global Variable(Goal_Array), 1), Vector(0, -0.900,
			0.400)), Add(Value In Array(Global Variable(Goal_Array), 2), Vector(0, -0.900, 0.400)), White, Visible To Position and Radius);
		Create Beam Effect(All Players(All Teams), Grapple Beam, Add(Value In Array(Global Variable(Goal_Array), 1), Vector(0, -1.500,
			0.400)), Add(Value In Array(Global Variable(Goal_Array), 2), Vector(0, -1.500, 0.400)), White, Visible To Position and Radius);
		disabled Create Beam Effect(All Players(All Teams), Grapple Beam, Add(Value In Array(Global Variable(Goal_Array), 1), Vector(0, -2.100,
			0.400)), Add(Value In Array(Global Variable(Goal_Array), 2), Vector(0, -2.100, 0.400)), White, Visible To Position and Radius);
		Create Beam Effect(All Players(All Teams), Grapple Beam, Add(Value In Array(Global Variable(Goal_Array), 1), Vector(0, -2.700,
			0.400)), Add(Value In Array(Global Variable(Goal_Array), 2), Vector(0, -2.700, 0.400)), White, Visible To Position and Radius);
		disabled Create Beam Effect(All Players(All Teams), Grapple Beam, Add(Value In Array(Global Variable(Goal_Array), 1), Vector(0, -3.300,
			0.400)), Add(Value In Array(Global Variable(Goal_Array), 2), Vector(0, -3.300, 0.400)), White, Visible To Position and Radius);
		Create Beam Effect(All Players(All Teams), Grapple Beam, Add(Value In Array(Global Variable(Goal_Array), 1), Vector(0, -3.900,
			0.400)), Add(Value In Array(Global Variable(Goal_Array), 2), Vector(0, -3.900, 0.400)), White, Visible To Position and Radius);
		disabled Create Beam Effect(All Players(All Teams), Grapple Beam, Add(Value In Array(Global Variable(Goal_Array), 1), Vector(0, -4.500,
			0.400)), Add(Value In Array(Global Variable(Goal_Array), 2), Vector(0, -4.500, 0.400)), White, Visible To Position and Radius);
		Create Beam Effect(All Players(All Teams), Grapple Beam, Add(Value In Array(Global Variable(Goal_Array), 1), Vector(0, -5.100,
			0.400)), Add(Value In Array(Global Variable(Goal_Array), 2), Vector(0, -5.100, 0.400)), White, Visible To Position and Radius);
		disabled Create Beam Effect(All Players(All Teams), Grapple Beam, Add(Value In Array(Global Variable(Goal_Array), 1), Vector(0, -5.700,
			0.400)), Add(Value In Array(Global Variable(Goal_Array), 2), Vector(0, -5.700, 0.400)), White, Visible To Position and Radius);
		Create Beam Effect(All Players(All Teams), Grapple Beam, Add(Value In Array(Global Variable(Goal_Array), 1), Vector(0, -6.300,
			0.400)), Add(Value In Array(Global Variable(Goal_Array), 2), Vector(0, -6.300, 0.400)), White, Visible To Position and Radius);
		disabled Create Beam Effect(All Players(All Teams), Grapple Beam, Add(Value In Array(Global Variable(Goal_Array), 1), Vector(0, -6.900,
			0.400)), Add(Value In Array(Global Variable(Goal_Array), 2), Vector(0, -6.900, 0.400)), White, Visible To Position and Radius);
		Create Beam Effect(All Players(All Teams), Grapple Beam, Add(Value In Array(Global Variable(Goal_Array), 1), Vector(0, -7.500,
			0.400)), Add(Value In Array(Global Variable(Goal_Array), 2), Vector(0, -7.500, 0.400)), White, Visible To Position and Radius);
	}
}

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

	actions
	{
		Create HUD Text(Host Player, Custom String("Current coordinates: {0} {1} {2}", X Component Of(Position Of(Host Player)),
			Y Component Of(Position Of(Host Player)), Z Component Of(Position Of(Host Player))), Null, Null, Left, 9, White, White, White,
			Visible To and String, Default Visibility);
		Create HUD Text(Host Player, Custom String("Speed of ball: {0}", Speed Of(Global Variable(Ball)), Null, Null), Null, Null, Left,
			10, White, White, White, Visible To and String, Default Visibility);
		Create HUD Text(Host Player, String("{0} {1}", Custom String("server load", Null, Null, Null), Add(0, Server Load), Null), Null,
			Null, Left, 11, White, White, White, Visible To and String, Default Visibility);
		Create HUD Text(Host Player, String("{0} {1}", Custom String("server peak", Null, Null, Null), Add(0, Server Load Peak), Null),
			Null, Null, Left, 12, White, White, White, Visible To and String, Default Visibility);
		Create HUD Text(Host Player, String("{0} {1}", Custom String("server average", Null, Null, Null), Add(0, Server Load Average),
			Null), Null, Null, Left, 13, White, White, White, Visible To and String, Default Visibility);
	}
}

rule("Push ball")
{
	event
	{
		Ongoing - Each Player;
		All;
		All;
	}

	conditions
	{
		Distance Between(Event Player, Global Variable(Ball)) <= 1;
		Is Dummy Bot(Event Player) == False;
		Value In Array(Global Variable(Goal_Array), 5) == True;
		Is On Ground(Event Player) == True;
		Is On Ground(Global Variable(Ball)) == True;
		Global Variable(Match_Status) == 1;
		Speed Of(Global Variable(Ball)) <= 12;
	}

	actions
	{
		Set Move Speed(Global Variable(Ball), 130);
		Start Throttle In Direction(Global Variable(Ball), Facing Direction Of(Event Player), 1, To World, Replace existing throttle,
			Direction and Magnitude);
		Wait(0.250, Restart When True);
		Stop Throttle In Direction(Global Variable(Ball));
		Set Move Speed(Global Variable(Ball), 110);
	}
}

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

	conditions
	{
		And(And(Is Firing Secondary(Event Player), Compare(Distance Between(Event Player, Global Variable(Ball)), <=, 7)), Or(
			Is In View Angle(Event Player, Global Variable(Ball), 45), And(Is In View Angle(Event Player, Global Variable(Ball), 180), And(
			Compare(Distance Between(Event Player, Global Variable(Ball)), <=, 1.500), Compare(Speed Of(Global Variable(Ball)), >=,
			Value In Array(Global Variable(Goal_Array), 12)))))) == True;
	}

	actions
	{
		Apply Impulse(Global Variable(Ball), Facing Direction Of(Event Player), Value In Array(Global Variable(Goal_Array), 11), To World,
			Cancel Contrary Motion);
		Set Global Variable(Most_Recent_Boop, Event Player);
		Skip If(And(Compare(Distance Between(Event Player, Add(Value In Array(Global Variable(Goal_Array), 1), Vector(7.500, -4.000,
			-5.000))), >=, 8.250), Compare(Distance Between(Event Player, Add(Value In Array(Global Variable(Goal_Array), 3), Vector(7.500,
			-4.000, 5))), >=, 8.250)), 7);
		Skip If(Compare(Speed Of In Direction(Global Variable(Ball), Direction Towards(Global Variable(Ball), Closest Player To(
			Global Variable(Ball), All Teams))), <=, 12.500), 6);
		Skip If(Compare(Altitude Of(Global Variable(Ball)), >=, 7.500), 5);
		Wait(0.300, Ignore Condition);
		Skip If(Compare(Global Variable(Match_Status), ==, 0), 3);
		Big Message(All Players(All Teams), String("{0} {1}", Event Player, Custom String("Saved!", Null, Null, Null), Null));
		Modify Player Variable(Event Player, Ultimate_Charge, Add, 10);
		Small Message(Event Player, Custom String("  10 ultimate charge", Null, Null, Null));
		Wait(0.016, Ignore Condition);
		Set Ultimate Charge(Event Player, Player Variable(Event Player, Ultimate_Charge));
	}
}

rule("Goal jump")
{
	event
	{
		Ongoing - Each Player;
		All;
		All;
	}

	conditions
	{
		Is Button Held(Event Player, Jump) == True;
		Global Variable(Match_Status) == 1;
		Altitude Of(Event Player) <= 2;
		Or(And(Compare(Distance Between(Event Player, Add(Value In Array(Global Variable(Goal_Array), 3), Vector(7.500, -6.900, 0))), <=,
			10.500), Compare(Team Of(Event Player), ==, Team 1)), And(Compare(Distance Between(Event Player, Add(Value In Array(
			Global Variable(Goal_Array), 1), Vector(7.500, -6.900, 0))), <=, 10.500), Compare(Team Of(Event Player), ==, Team 2))) == True;
	}

	actions
	{
		Set Gravity(Event Player, 80);
		Apply Impulse(Event Player, Direction Towards(Event Player, Add(World Vector Of(Vector(0, 0, 0), Event Player,
			Rotation And Translation), Vector(0, 1000, 0))), 12, To World, Cancel Contrary Motion);
		Wait(0.200, Ignore Condition);
		Press Button(Event Player, Jump);
		Wait(0.800, Ignore Condition);
		Set Gravity(Event Player, 100);
	}
}

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

	conditions
	{
		Ultimate Charge Percent(Event Player) == 100;
		Is Button Held(Event Player, Ultimate) == True;
		Global Variable(Match_Status) == 1;
	}

	actions
	{
		Set Player Variable(Event Player, Effect_Array, Empty Array);
		Create Effect(All Players(Opposite Team Of(Team Of(Event Player))), Energy Sound, White, Event Player, 100,
			Visible To Position and Radius);
		Modify Player Variable(Event Player, Effect_Array, Append To Array, Last Created Entity);
		Wait(0.016, Ignore Condition);
		Create Effect(All Players(Opposite Team Of(Team Of(Event Player))), Ring, Red, Event Player, 4, Visible To Position and Radius);
		Modify Player Variable(Event Player, Effect_Array, Append To Array, Last Created Entity);
		Wait(0.016, Ignore Condition);
		Create Effect(All Players(Team Of(Event Player)), Ring, Blue, Event Player, 4, Visible To Position and Radius);
		Modify Player Variable(Event Player, Effect_Array, Append To Array, Last Created Entity);
		Set Gravity(Event Player, 75);
		Set Player Variable(Event Player, Is_Using_Ultimate, True);
		Set Player Variable(Event Player, Ultimate_Charge, 0);
		Set Ultimate Charge(Event Player, 0);
		Set Move Speed(Event Player, Multiply(7, Value In Array(Global Variable(Goal_Array), 13)));
		Wait(8, Ignore Condition);
		Set Move Speed(Event Player, 120);
		Set Ultimate Charge(Event Player, 0);
		Chase Player Variable At Rate(Event Player, Ultimate_Charge, 100, 0.500, Destination and Rate);
		Set Player Variable(Event Player, Is_Using_Ultimate, False);
		Set Gravity(Event Player, 100);
		Destroy Effect(Value In Array(Player Variable(Event Player, Effect_Array), 0));
		Destroy Effect(Value In Array(Player Variable(Event Player, Effect_Array), 1));
		Destroy Effect(Value In Array(Player Variable(Event Player, Effect_Array), 2));
		Set Player Variable(Event Player, Ultimate_Charge, 0);
	}
}

rule("Tall jump")
{
	event
	{
		Ongoing - Each Player;
		All;
		All;
	}

	conditions
	{
		Or(Or(Compare(Distance Between(Event Player, Value In Array(Global Variable(Other_Graphics_Vectors_Array), 0)), <=, 1.500),
			Compare(Distance Between(Event Player, Value In Array(Global Variable(Other_Graphics_Vectors_Array), 1)), <=, 1.500)),
			Player Variable(Event Player, Is_Using_Ultimate)) == True;
		Is Button Held(Event Player, Jump) == True;
		Altitude Of(Event Player) <= 2;
	}

	actions
	{
		Set Gravity(Event Player, 80);
		Apply Impulse(Event Player, Direction Towards(Event Player, Vector(X Component Of(Position Of(Event Player)), 1000, Z Component Of(
			Position Of(Event Player)))), 12, To World, Cancel Contrary Motion);
		Wait(0.200, Ignore Condition);
		Press Button(Event Player, Jump);
		Wait(0.800, Ignore Condition);
		Set Gravity(Event Player, 100);
	}
}

rule("Win condition")
{
	event
	{
		Ongoing - Global;
	}

	conditions
	{
		Global Variable(Time) == 0;
	}

	actions
	{
		Skip If(Compare(Value In Array(Global Variable(List_Of_Team_Scores), 1), ==, Value In Array(Global Variable(List_Of_Team_Scores),
			2)), 4);
		Skip If(Compare(Subtract(Value In Array(Global Variable(List_Of_Team_Scores), 1), Value In Array(Global Variable(
			List_Of_Team_Scores), 2)), <=, 0), 1);
		Declare Team Victory(Team 1);
		Skip If(Compare(Subtract(Value In Array(Global Variable(List_Of_Team_Scores), 1), Value In Array(Global Variable(
			List_Of_Team_Scores), 2)), >=, 0), 1);
		Declare Team Victory(Team 2);
		Skip If(Compare(Value In Array(Global Variable(List_Of_Team_Scores), 1), !=, Value In Array(Global Variable(List_Of_Team_Scores),
			2)), 2);
		Set Global Variable At Index(Goal_Array, 8, True);
		Create HUD Text(All Players(All Teams), Custom String("First to score a goal wins!", Null, Null, Null), Null, Null, Top, 999, Red,
			Red, Red, Visible To and String, Default Visibility);
	}
}

rule("Tiebreaker")
{
	event
	{
		Ongoing - Global;
	}

	conditions
	{
		Global Variable(Match_Status) == 0;
		Value In Array(Global Variable(Goal_Array), 8) == True;
	}

	actions
	{
		Skip If(Compare(Subtract(Value In Array(Global Variable(List_Of_Team_Scores), 1), Value In Array(Global Variable(
			List_Of_Team_Scores), 2)), <, 0), 1);
		Declare Team Victory(Team 1);
		Skip If(Compare(Subtract(Value In Array(Global Variable(List_Of_Team_Scores), 1), Value In Array(Global Variable(
			List_Of_Team_Scores), 2)), >, 0), 1);
		Declare Team Victory(Team 2);
	}
}

rule("Bounce")
{
	event
	{
		Ongoing - Global;
	}

	conditions
	{
		Speed Of In Direction(Global Variable(Ball), World Vector Of(Vector(0, -10000.000, 0), Global Variable(Ball),
			Rotation And Translation)) >= 5;
		Altitude Of(Global Variable(Ball)) <= 0.150;
		Global Variable(Match_Status) == 1;
	}

	actions
	{
		Apply Impulse(Global Variable(Ball), Direction Towards(Global Variable(Ball), World Vector Of(Vector(0, 8, 0), Global Variable(
			Ball), Rotation And Translation)), Multiply(Speed Of In Direction(Global Variable(Ball), Direction Towards(Position Of(
			Global Variable(Ball)), World Vector Of(Vector(0, -1000.000, 0), Global Variable(Ball), Rotation And Translation))), 0.500),
			To World, Cancel Contrary Motion);
	}
}

Changelog

4 months ago 1.11.2

  • Added in melee boop
  • in 1 - 7 days, the current maps will be removed, and mode will be remade to be optimized for the new additions to workshop. Expect to see a customizable workshop expanse map.
  • bug fixes

78J2F
click to copy
4 months ago 1.11.2

  • Added in melee boop
  • in 1 - 7 days, the current maps will be removed, and mode will be remade to be optimized for the new additions to workshop. Expect to see a customizable workshop expanse map.

MYH4J
click to copy
4 months ago 1.11.2

  • Added in melee boop
  • in 1 - 7 days, the current maps will be removed, and mode will be remade to be optimized for the new additions to workshop. Expect to see a customizable workshop expanse map.

HCK2H
click to copy
4 months ago 1.11.1

  • Made invisible ceilings lower on Havana and Ayutthaya
  • Improved goals

NYJMBR
click to copy
4 months ago 1.11.0

  • Increased boop radius from 4m -> 7m
  • Increased boop field of view radius from 40 - > 45 degrees
  • Move goals on Havana and changed goal detection on havana goals
  • Improved invisible walls
  • Reduced match length on Havana and Ayutthaya
  • Reduced boop strength on Havana
  • Improved "bounce detection" (Ball bounce when it hits ground at high speed)
  • Bug fixes

DEGM6
click to copy
4 months ago 1.10.3

  • Improved boop
  • Slight decrease in wall ride upward velocity
  • Bug fixes

4H4HM
click to copy
5 months ago 1.10.2

  • Match time now depend on the map size
  • Bug fixes

GDZAB
click to copy
5 months ago 1.10.2

  • Match time now depend on the map size
  • Bug fixes

6XWRZ
click to copy
5 months ago 1.10.1

  • Added wall run in Ayutthaya
  • Increased boop strength on Ayutthaya
  • Added Invisible walls walls that will apply to players on Ayutthaya on each side (Left, Right, Front, Back)
  • Big change to goals (Goals will act exactly like the real lucioball now)
  • Bug Fixes

ZK9AC
click to copy
5 months ago 1.10.1

  • Added wall run in Ayutthaya
  • Increased boop strength on Ayutthaya
  • Added Invisible walls walls that will apply to players on Ayutthaya on each side (Left, Right, Front, Back)
  • Big change to goals (Goals will act exactly like the real lucioball now)
  • Bug Fixes

1056R
click to copy
5 months ago 1.10.0

  • Added new map: Ayutthaya!
  • Bug fixes

PP2FB
click to copy
5 months ago 1.10.0

  • Added new map: Ayutthaya!
  • Bug fixes

WQK87
click to copy
5 months ago 1.0.2

  • Improved goal collision further
  • Added invisible walls on all sides
  • Made invisible roof's height 18 meters higher up
  • Bug fixes

EGQ3F
click to copy
5 months ago 1.0.1

  • Improved goal collision
  • Bug fixes
  • Made code prettier
  • After you score a goal or first joined the game, you will now automatically look in the direction of the ball.

7E3KY
click to copy
5 months ago 1.0.0

This revision contains no notes

H1K89
click to copy