Create
Return to post

Comparing difference between and

View raw
  • variables
  • {
  • global:
  • 1: NumBots
  • 2: Density
  • 3: turnmode
  • 5: CurrentAngle
  • 6: ChangeInAngle
  • 7: UR
  • 8: TotalAngleUR
  • 9: SampleSize
  • 0: GameState
  • 1: Button
  • 2: DamageMode
  • 3: StrafeMode
  • 4: TurnMode
  • 5: GameMode
  • 6: BotTypeList
  • 7: BotType
  • }
  • subroutines
  • {
  • 0: HomeText
  • 1: Menu1Text
  • 2: Menu2Text
  • 3: Menu3Text
  • 4: Menu4Text
  • 5: Menu5Text
  • 6: ClearWorldEffects
  • 7: SpawnBots
  • }
  • rule("Initialisation")
  • {
  • event
  • {
  • Player Joined Match;
  • Team 1;
  • Slot 0;
  • }
  • actions
  • {
  • Global.NumBots = 2;
  • Global.Density = 15;
  • Global.SampleSize = -1;
  • Call Subroutine(Sub3);
  • Disable Built-In Game Mode Announcer;
  • Global.E = False;
  • Create Dummy Bot(Hero(Ana), Team 2, 0, Vector(Random Integer(7.500, -7.500), 0, Random Integer(7.500, -7.500)), Host Player);
  • Create Dummy Bot(Hero(Ana), Team 2, 1, Vector(Random Integer(7.500, -7.500), 0, Random Integer(7.500, -7.500)), Host Player);
  • "Set player to Genji"
  • Preload Hero(Event Player, Hero(Genji));
  • Start Forcing Player To Be Hero(Event Player, Hero(Genji));
  • "Move player to position"
  • Start Forcing Player Position(Event Player, Vector(0, 0, 0), True);
  • "Display Home Menu UI"
  • Call Subroutine(HomeText);
  • Wait(0.250, Ignore Condition);
  • "Free player to move"
  • Stop Forcing Player Position(Event Player);
  • "Set Button Positions"
  • Global.Button[0] = Vector(-20, 13.500, 5);
  • Global.Button[1] = Vector(-20, 7.500, 5);
  • Global.Button[2] = Vector(-20, 13.500, 0);
  • Global.Button[3] = Vector(-20, 7.500, 0);
  • Global.Button[4] = Vector(-20, 13.500, -5);
  • Global.Button[5] = Vector(-20, 7.500, -5);
  • Global.Button[6] = Vector(-20, 10.500, 0);
  • "Set turn mode and strafe mode to false"
  • Global.TurnMode = False;
  • Global.StrafeMode = False;
  • "Add bots to lists."
  • Global.BotTypeList[0] = Hero(Ana);
  • Global.BotTypeList[1] = Hero(Zenyatta);
  • Global.BotTypeList[2] = Hero(McCree);
  • Global.BotTypeList[3] = Hero(Widowmaker);
  • Global.BotTypeList[4] = Hero(Hanzo);
  • }
  • }
  • rule("Text Spawner")
  • rule("Home Menu Input")
  • {
  • event
  • {
  • Player Joined Match;
  • Ongoing - Each Player;
  • Team 1;
  • All;
  • Slot 0;
  • }
  • conditions
  • {
  • Is Button Held(Event Player, Interact) == True;
  • Global.GameState == 0;
  • }
  • actions
  • {
  • Create In-World Text(All Players(All Teams), Custom String("No. Bots: {0}", Global.NumBots), Vector(19.500, 1.500, -10), 1,
  • Clip Against Surfaces, Visible To Position and String, White, Default Visibility);
  • Create In-World Text(All Players(All Teams), Custom String("Dash(400%)"), Vector(19.500, 1.500, -7), 1, Clip Against Surfaces,
  • Visible To Position and String, White, Default Visibility);
  • Create In-World Text(All Players(All Teams), Custom String("Normal(100%)"), Vector(19.500, 1.500, -5), 1, Clip Against Surfaces,
  • Visible To Position and String, White, Default Visibility);
  • Create In-World Text(All Players(All Teams), Custom String("Damage multiplier:"), Vector(19.500, 2.500, -5), 1,
  • Clip Against Surfaces, Visible To Position and String, White, Default Visibility);
  • Create In-World Text(All Players(All Teams), Custom String("Nano(150%)"), Vector(19.500, 1.500, -3), 1, Clip Against Surfaces,
  • Visible To Position and String, White, Default Visibility);
  • Create In-World Text(All Players(All Teams), Custom String("Normal Mode"), Vector(19.500, 1.500, -1), 1, Clip Against Surfaces,
  • Visible To Position and String, White, Default Visibility);
  • Create In-World Text(All Players(All Teams), Custom String("180 Dash Mode"), Vector(19.500, 1.500, 1), 1, Clip Against Surfaces,
  • Visible To Position and String, White, Default Visibility);
  • Create In-World Text(All Players(All Teams), Custom String("Toggle Strafe"), Vector(19.500, 1.500, 3), 1, Clip Against Surfaces,
  • Visible To Position and String, White, Default Visibility);
  • Create In-World Text(All Players(All Teams), Custom String("Spawn Range : {0}m", Global.Density), Vector(19.500, 1.500, 6), 1,
  • Clip Against Surfaces, Visible To Position and String, White, Default Visibility);
  • Create In-World Text(All Players(All Teams), Custom String("Press Interact Key while standing inside sphere to activate."), Vector(
  • 19.500, 3, 0), 1, Clip Against Surfaces, Visible To Position and String, White, Default Visibility);
  • Create Effect(All Players(All Teams), Sphere, Blue, Vector(0, -10, 0), 0.500, Visible To Position and Radius);
  • "Button 0"
  • If(Distance Between(Global.Button[0], Ray Cast Hit Position(Eye Position(Event Player), Eye Position(Event Player)
  • + Facing Direction Of(Event Player) * Distance Between(Eye Position(Event Player), Global.Button[0]), Null, Event Player,
  • False)) <= 1);
  • Call Subroutine(ClearWorldEffects);
  • Call Subroutine(Menu1Text);
  • Wait(0.500, Ignore Condition);
  • Global.GameState = 1;
  • Global.GameMode = 1;
  • Call Subroutine(SpawnBots);
  • "Button 1"
  • disabled Else If(Distance Between(Global.Button[1], Ray Cast Hit Position(Eye Position(Event Player), Eye Position(Event Player)
  • + Facing Direction Of(Event Player) * Distance Between(Eye Position(Event Player), Global.Button[1]), Null, Event Player,
  • False)) <= 1);
  • disabled Call Subroutine(ClearWorldEffects);
  • disabled Call Subroutine(Menu2Text);
  • disabled Global.GameState = 2;
  • disabled Global.GameMode = 2;
  • "Button 4"
  • disabled Else If(Distance Between(Global.Button[4], Ray Cast Hit Position(Eye Position(Event Player), Eye Position(Event Player)
  • + Facing Direction Of(Event Player) * Distance Between(Eye Position(Event Player), Global.Button[4]), Null, Event Player,
  • False)) <= 1);
  • disabled Call Subroutine(ClearWorldEffects);
  • disabled Call Subroutine(Menu3Text);
  • disabled Global.GameState = 3;
  • disabled Global.GameMode = 3;
  • "Button 5"
  • disabled Else If(Distance Between(Global.Button[5], Ray Cast Hit Position(Eye Position(Event Player), Eye Position(Event Player)
  • + Facing Direction Of(Event Player) * Distance Between(Eye Position(Event Player), Global.Button[5]), Null, Event Player,
  • False)) <= 1);
  • disabled Call Subroutine(ClearWorldEffects);
  • disabled Call Subroutine(Menu4Text);
  • disabled Global.GameState = 4;
  • disabled Global.GameMode = 4;
  • }
  • }
  • rule("Remove Bot Button")
  • rule("Menu 1 Input")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Slot 0;
  • }
  • conditions
  • {
  • Is Button Held(Event Player, Interact) == True;
  • Distance Between(Event Player, Vector(20, 1.500, -11)) <= 2;
  • Global.GameState == 1;
  • }
  • actions
  • {
  • If(Global.NumBots > 2);
  • Global.NumBots = Global.NumBots + -1;
  • Call Subroutine(Sub1);
  • Global.turnmode = False;
  • "Button 0"
  • If(Distance Between(Global.Button[0], Ray Cast Hit Position(Eye Position(Event Player), Eye Position(Event Player)
  • + Facing Direction Of(Event Player) * Distance Between(Eye Position(Event Player), Global.Button[0]), Null, Event Player,
  • False)) <= 1);
  • Call Subroutine(ClearWorldEffects);
  • Global.DamageMode = 1;
  • Call Subroutine(Menu1Text);
  • Set Damage Dealt(Event Player, 150);
  • "Button 1"
  • Else If(Distance Between(Global.Button[1], Ray Cast Hit Position(Eye Position(Event Player), Eye Position(Event Player)
  • + Facing Direction Of(Event Player) * Distance Between(Eye Position(Event Player), Global.Button[1]), Null, Event Player,
  • False)) <= 1);
  • Call Subroutine(ClearWorldEffects);
  • Call Subroutine(HomeText);
  • Wait(0.500, Ignore Condition);
  • Global.GameState = 0;
  • Global.GameMode = 0;
  • Destroy All Dummy Bots;
  • "Button 2"
  • Else If(Distance Between(Global.Button[2], Ray Cast Hit Position(Eye Position(Event Player), Eye Position(Event Player)
  • + Facing Direction Of(Event Player) * Distance Between(Eye Position(Event Player), Global.Button[2]), Null, Event Player,
  • False)) <= 1);
  • Call Subroutine(ClearWorldEffects);
  • Global.DamageMode = 0;
  • Call Subroutine(Menu1Text);
  • Set Damage Dealt(Event Player, 100);
  • "Button 3"
  • Else If(Distance Between(Global.Button[3], Ray Cast Hit Position(Eye Position(Event Player), Eye Position(Event Player)
  • + Facing Direction Of(Event Player) * Distance Between(Eye Position(Event Player), Global.Button[3]), Null, Event Player,
  • False)) <= 1);
  • Call Subroutine(ClearWorldEffects);
  • Call Subroutine(Menu5Text);
  • Wait(0.500, Ignore Condition);
  • Global.GameState = 5;
  • "Button 4"
  • Else If(Distance Between(Global.Button[4], Ray Cast Hit Position(Eye Position(Event Player), Eye Position(Event Player)
  • + Facing Direction Of(Event Player) * Distance Between(Eye Position(Event Player), Global.Button[4]), Null, Event Player,
  • False)) <= 1);
  • Call Subroutine(ClearWorldEffects);
  • Global.DamageMode = 2;
  • Call Subroutine(Menu1Text);
  • Set Damage Dealt(Event Player, 400);
  • "Button 5"
  • Else If(Distance Between(Global.Button[5], Ray Cast Hit Position(Eye Position(Event Player), Eye Position(Event Player)
  • + Facing Direction Of(Event Player) * Distance Between(Eye Position(Event Player), Global.Button[5]), Null, Event Player,
  • False)) <= 1);
  • Call Subroutine(ClearWorldEffects);
  • If(Global.StrafeMode == False);
  • Global.StrafeMode = True;
  • Global.TurnMode = False;
  • Else;
  • Global.StrafeMode = False;
  • End;
  • Call Subroutine(Menu1Text);
  • End;
  • }
  • }
  • rule("Add Bot Button")
  • rule("Menu 2 Input")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Slot 0;
  • }
  • conditions
  • {
  • Is Button Held(Event Player, Interact) == True;
  • Distance Between(Event Player, Vector(20, 1.500, -9)) <= 2;
  • Global.GameState == 2;
  • }
  • actions
  • {
  • If(Global.NumBots < 6);
  • Global.NumBots = Global.NumBots + 1;
  • Call Subroutine(Sub0);
  • Global.turnmode = False;
  • If(Distance Between(Global.Button[0], Ray Cast Hit Position(Eye Position(Event Player), Eye Position(Event Player)
  • + Facing Direction Of(Event Player) * Distance Between(Eye Position(Event Player), Global.Button[0]), Null, Event Player,
  • False)) <= 1);
  • Global.GameState = 1;
  • Call Subroutine(Menu5Text);
  • Call Subroutine(Menu1Text);
  • Else If(Distance Between(Global.Button[1], Ray Cast Hit Position(Eye Position(Event Player), Eye Position(Event Player)
  • + Facing Direction Of(Event Player) * Distance Between(Eye Position(Event Player), Global.Button[1]), Null, Event Player,
  • False)) <= 1);
  • Global.GameState = 2;
  • Call Subroutine(Menu5Text);
  • Call Subroutine(Menu2Text);
  • Else If(Distance Between(Global.Button[2], Ray Cast Hit Position(Eye Position(Event Player), Eye Position(Event Player)
  • + Facing Direction Of(Event Player) * Distance Between(Eye Position(Event Player), Global.Button[2]), Null, Event Player,
  • False)) <= 1);
  • Global.GameState = 3;
  • Call Subroutine(Menu5Text);
  • Call Subroutine(Menu3Text);
  • Else If(Distance Between(Global.Button[3], Ray Cast Hit Position(Eye Position(Event Player), Eye Position(Event Player)
  • + Facing Direction Of(Event Player) * Distance Between(Eye Position(Event Player), Global.Button[3]), Null, Event Player,
  • False)) <= 1);
  • Global.GameState = 4;
  • Call Subroutine(Menu5Text);
  • Call Subroutine(Menu4Text);
  • End;
  • Wait(1, Ignore Condition);
  • }
  • }
  • rule("Dash DMG Button")
  • rule("Menu 3 Input")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Slot 0;
  • }
  • conditions
  • {
  • Is Button Held(Event Player, Interact) == True;
  • Distance Between(Event Player, Vector(20, 1.500, -7)) <= 2;
  • Global.GameState == 3;
  • }
  • actions
  • {
  • Destroy All Effects;
  • Wait(0.250, Ignore Condition);
  • Set Damage Dealt(Event Player, 400);
  • Create Effect(All Players(All Teams), Sparkles, Red, Event Player, 2, Visible To Position and Radius);
  • Call Subroutine(Sub3);
  • If(Distance Between(Global.Button[0], Ray Cast Hit Position(Eye Position(Event Player), Eye Position(Event Player)
  • + Facing Direction Of(Event Player) * Distance Between(Eye Position(Event Player), Global.Button[0]), Null, Event Player,
  • False)) <= 1);
  • Global.GameState = 1;
  • Call Subroutine(Menu5Text);
  • Call Subroutine(Menu1Text);
  • Else If(Distance Between(Global.Button[1], Ray Cast Hit Position(Eye Position(Event Player), Eye Position(Event Player)
  • + Facing Direction Of(Event Player) * Distance Between(Eye Position(Event Player), Global.Button[1]), Null, Event Player,
  • False)) <= 1);
  • Global.GameState = 2;
  • Call Subroutine(Menu5Text);
  • Call Subroutine(Menu2Text);
  • Else If(Distance Between(Global.Button[2], Ray Cast Hit Position(Eye Position(Event Player), Eye Position(Event Player)
  • + Facing Direction Of(Event Player) * Distance Between(Eye Position(Event Player), Global.Button[2]), Null, Event Player,
  • False)) <= 1);
  • Global.GameState = 3;
  • Call Subroutine(Menu5Text);
  • Call Subroutine(Menu3Text);
  • Else If(Distance Between(Global.Button[3], Ray Cast Hit Position(Eye Position(Event Player), Eye Position(Event Player)
  • + Facing Direction Of(Event Player) * Distance Between(Eye Position(Event Player), Global.Button[3]), Null, Event Player,
  • False)) <= 1);
  • Global.GameState = 4;
  • Call Subroutine(Menu5Text);
  • Call Subroutine(Menu4Text);
  • End;
  • Wait(1, Ignore Condition);
  • }
  • }
  • rule("Normal DMG Button")
  • rule("Menu 4 Input")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Slot 0;
  • }
  • conditions
  • {
  • Is Button Held(Event Player, Interact) == True;
  • Distance Between(Event Player, Vector(20, 1.500, -5)) <= 2;
  • Global.GameState == 4;
  • }
  • actions
  • {
  • Destroy All Effects;
  • Wait(0.250, Ignore Condition);
  • Set Damage Dealt(Event Player, 100);
  • Create Effect(All Players(All Teams), Sparkles, White, Event Player, 2, Visible To Position and Radius);
  • Call Subroutine(Sub3);
  • If(Distance Between(Global.Button[0], Ray Cast Hit Position(Eye Position(Event Player), Eye Position(Event Player)
  • + Facing Direction Of(Event Player) * Distance Between(Eye Position(Event Player), Global.Button[0]), Null, Event Player,
  • False)) <= 1);
  • Global.GameState = 1;
  • Call Subroutine(Menu5Text);
  • Call Subroutine(Menu1Text);
  • Else If(Distance Between(Global.Button[1], Ray Cast Hit Position(Eye Position(Event Player), Eye Position(Event Player)
  • + Facing Direction Of(Event Player) * Distance Between(Eye Position(Event Player), Global.Button[1]), Null, Event Player,
  • False)) <= 1);
  • Global.GameState = 2;
  • Call Subroutine(Menu5Text);
  • Call Subroutine(Menu2Text);
  • Else If(Distance Between(Global.Button[2], Ray Cast Hit Position(Eye Position(Event Player), Eye Position(Event Player)
  • + Facing Direction Of(Event Player) * Distance Between(Eye Position(Event Player), Global.Button[2]), Null, Event Player,
  • False)) <= 1);
  • Global.GameState = 3;
  • Call Subroutine(Menu5Text);
  • Call Subroutine(Menu3Text);
  • Else If(Distance Between(Global.Button[3], Ray Cast Hit Position(Eye Position(Event Player), Eye Position(Event Player)
  • + Facing Direction Of(Event Player) * Distance Between(Eye Position(Event Player), Global.Button[3]), Null, Event Player,
  • False)) <= 1);
  • Global.GameState = 4;
  • Call Subroutine(Menu5Text);
  • Call Subroutine(Menu4Text);
  • End;
  • Wait(1, Ignore Condition);
  • }
  • }
  • rule("Nano DMG Button")
  • rule("Menu 5 Input")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Slot 0;
  • }
  • conditions
  • {
  • Is Button Held(Event Player, Interact) == True;
  • Distance Between(Event Player, Vector(20, 1.500, -3)) <= 2;
  • Global.GameState == 5;
  • }
  • actions
  • {
  • Destroy All Effects;
  • Wait(0.250, Ignore Condition);
  • Set Damage Dealt(Event Player, 150);
  • Create Effect(All Players(All Teams), Sparkles, Blue, Event Player, 2, Visible To Position and Radius);
  • Call Subroutine(Sub3);
  • "Button 0"
  • If(Distance Between(Global.Button[0], Ray Cast Hit Position(Eye Position(Event Player), Eye Position(Event Player)
  • + Facing Direction Of(Event Player) * Distance Between(Eye Position(Event Player), Global.Button[0]), Null, Event Player,
  • False)) <= 1);
  • Call Subroutine(ClearWorldEffects);
  • Global.BotType = 0;
  • Call Subroutine(Menu5Text);
  • Wait(0.500, Ignore Condition);
  • Destroy All Dummy Bots;
  • Call Subroutine(SpawnBots);
  • "Button 1"
  • Else If(Distance Between(Global.Button[1], Ray Cast Hit Position(Eye Position(Event Player), Eye Position(Event Player)
  • + Facing Direction Of(Event Player) * Distance Between(Eye Position(Event Player), Global.Button[1]), Null, Event Player,
  • False)) <= 1);
  • Call Subroutine(ClearWorldEffects);
  • Call Subroutine(Menu1Text);
  • Wait(0.250, Ignore Condition);
  • Global.GameState = 1;
  • "Button 2"
  • Else If(Distance Between(Global.Button[2], Ray Cast Hit Position(Eye Position(Event Player), Eye Position(Event Player)
  • + Facing Direction Of(Event Player) * Distance Between(Eye Position(Event Player), Global.Button[2]), Null, Event Player,
  • False)) <= 1);
  • Call Subroutine(ClearWorldEffects);
  • Global.BotType = 1;
  • Call Subroutine(Menu5Text);
  • Wait(0.250, Ignore Condition);
  • Destroy All Dummy Bots;
  • Call Subroutine(SpawnBots);
  • "Button 3"
  • Else If(Distance Between(Global.Button[3], Ray Cast Hit Position(Eye Position(Event Player), Eye Position(Event Player)
  • + Facing Direction Of(Event Player) * Distance Between(Eye Position(Event Player), Global.Button[3]), Null, Event Player,
  • False)) <= 1);
  • Call Subroutine(ClearWorldEffects);
  • Global.BotType = 2;
  • Call Subroutine(Menu5Text);
  • Wait(0.250, Ignore Condition);
  • Destroy All Dummy Bots;
  • Call Subroutine(SpawnBots);
  • "Button 4"
  • Else If(Distance Between(Global.Button[4], Ray Cast Hit Position(Eye Position(Event Player), Eye Position(Event Player)
  • + Facing Direction Of(Event Player) * Distance Between(Eye Position(Event Player), Global.Button[4]), Null, Event Player,
  • False)) <= 1);
  • Call Subroutine(ClearWorldEffects);
  • Global.BotType = 3;
  • Call Subroutine(Menu5Text);
  • Wait(0.250, Ignore Condition);
  • Destroy All Dummy Bots;
  • Call Subroutine(SpawnBots);
  • "Button 5"
  • Else If(Distance Between(Global.Button[5], Ray Cast Hit Position(Eye Position(Event Player), Eye Position(Event Player)
  • + Facing Direction Of(Event Player) * Distance Between(Eye Position(Event Player), Global.Button[5]), Null, Event Player,
  • False)) <= 1);
  • Call Subroutine(ClearWorldEffects);
  • Global.BotType = 4;
  • Call Subroutine(Menu5Text);
  • Wait(0.250, Ignore Condition);
  • Destroy All Dummy Bots;
  • Call Subroutine(SpawnBots);
  • }
  • }
  • rule("Normal Mode Button")
  • rule("Home Menu Text [sub0]")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Slot 0;
  • Subroutine;
  • HomeText;
  • }
  • conditions
  • actions
  • {
  • Is Button Held(Event Player, Interact) == True;
  • Distance Between(Event Player, Vector(20, 1.500, -1)) <= 2;
  • "Button 0"
  • Create In-World Text(All Players(All Teams), Custom String("FreePlay"), Global.Button[0], 2, Do Not Clip,
  • Visible To Position and String, White, Default Visibility);
  • Create Effect(All Players(All Teams), Sphere, White, Global.Button[0], 1.250, Visible To Position and Radius);
  • "Button 1"
  • Create In-World Text(All Players(All Teams), Custom String("Coming Soon..."), Global.Button[1], 2, Do Not Clip,
  • Visible To Position and String, White, Default Visibility);
  • Create Effect(All Players(All Teams), Sphere, Red, Global.Button[1], 1.250, Visible To Position and Radius);
  • "Button 2"
  • Create In-World Text(All Players(All Teams), Custom String("Coming Soon..."), Global.Button[4], 2, Do Not Clip,
  • Visible To Position and String, White, Default Visibility);
  • Create Effect(All Players(All Teams), Sphere, Red, Global.Button[4], 1.250, Visible To Position and Radius);
  • "Button 3"
  • Create In-World Text(All Players(All Teams), Custom String("Coming Soon..."), Global.Button[5], 2, Do Not Clip,
  • Visible To Position and String, White, Default Visibility);
  • Create Effect(All Players(All Teams), Sphere, Red, Global.Button[5], 1.250, Visible To Position and Radius);
  • "Title"
  • Create In-World Text(All Players(All Teams), Custom String("Press [Interact] Key while looking circle to select."), Vector(-20, 17,
  • 0), 2.500, Do Not Clip, Visible To Position and String, White, Default Visibility);
  • }
  • }
  • rule("Menu 1 Text [sub1]")
  • {
  • event
  • {
  • Subroutine;
  • Menu1Text;
  • }
  • actions
  • {
  • Call Subroutine(Sub0);
  • Global.turnmode = False;
  • Destroy All HUD Text;
  • "Button 0"
  • Create In-World Text(All Players(All Teams), Custom String("Nano"), Global.Button[0], 2, Do Not Clip,
  • Visible To Position and String, White, Default Visibility);
  • Create Effect(All Players(All Teams), Sphere, Blue, Global.Button[0], 1.250, Visible To Position and Radius);
  • "Button 1"
  • Create In-World Text(All Players(All Teams), Custom String("Back"), Global.Button[1], 2, Do Not Clip,
  • Visible To Position and String, White, Default Visibility);
  • Create Effect(All Players(All Teams), Sphere, Orange, Global.Button[1], 1.250, Visible To Position and Radius);
  • "Button 2"
  • Create In-World Text(All Players(All Teams), Custom String("Normal"), Global.Button[2], 2, Do Not Clip,
  • Visible To Position and String, White, Default Visibility);
  • Create Effect(All Players(All Teams), Sphere, Purple, Global.Button[2], 1.250, Visible To Position and Radius);
  • "Button 3"
  • Create In-World Text(All Players(All Teams), Custom String("Enemy Type"), Global.Button[3], 2, Do Not Clip,
  • Visible To Position and String, White, Default Visibility);
  • Create Effect(All Players(All Teams), Sphere, White, Global.Button[3], 1.250, Visible To Position and Radius);
  • "Button 4"
  • Create In-World Text(All Players(All Teams), Custom String("Dash"), Global.Button[4], 2, Do Not Clip,
  • Visible To Position and String, White, Default Visibility);
  • Create Effect(All Players(All Teams), Sphere, Red, Global.Button[4], 1.250, Visible To Position and Radius);
  • "Button 5"
  • Create In-World Text(All Players(All Teams), Custom String("Strafe"), Global.Button[5], 2, Do Not Clip,
  • Visible To Position and String, White, Default Visibility);
  • If(Global.StrafeMode == False);
  • Create Effect(All Players(All Teams), Sphere, White, Global.Button[5], 1.250, Visible To Position and Radius);
  • Else;
  • Create Effect(All Players(All Teams), Sphere, Green, Global.Button[5], 1.250, Visible To Position and Radius);
  • End;
  • "Text Category"
  • Create In-World Text(All Players(All Teams), Custom String("Damage Modifier"), Vector(-20, 14.500, 0), 2, Do Not Clip,
  • Visible To Position and String, White, Default Visibility);
  • "Damage Effect"
  • If(Global.DamageMode == 0);
  • Create Effect(All Players(All Teams), Sparkles, White, Event Player, 2, Visible To Position and Radius);
  • Else If(Global.DamageMode == 1);
  • Create Effect(All Players(All Teams), Sparkles, Blue, Event Player, 2, Visible To Position and Radius);
  • Else If(Global.DamageMode == 2);
  • Create Effect(All Players(All Teams), Sparkles, Red, Event Player, 2, Visible To Position and Radius);
  • End;
  • }
  • }
  • rule("180 Mode Button")
  • rule("Menu 2 Text [sub2]")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Slot 0;
  • Subroutine;
  • Menu2Text;
  • }
  • conditions
  • actions
  • {
  • Is Button Held(Event Player, Interact) == True;
  • Distance Between(Event Player, Vector(20, 1.500, 1)) <= 2;
  • "Button 0"
  • Create In-World Text(Players In Slot(0, Team 1), Custom String("FreePlay"), Global.Button[0], 2, Do Not Clip,
  • Visible To Position and String, White, Default Visibility);
  • Create Effect(Players In Slot(0, Team 1), Sphere, White, Global.Button[0], 1.250, Visible To Position and Radius);
  • "Button 1"
  • Create In-World Text(Players In Slot(0, Team 1), Custom String("Challange"), Global.Button[1], 2, Do Not Clip,
  • Visible To Position and String, White, Default Visibility);
  • Create Effect(Players In Slot(0, Team 1), Sphere, White, Global.Button[1], 1.250, Visible To Position and Radius);
  • "Button 2"
  • Create In-World Text(Players In Slot(0, Team 1), Custom String("Reaction"), Global.Button[2], 2, Do Not Clip,
  • Visible To Position and String, White, Default Visibility);
  • Create Effect(Players In Slot(0, Team 1), Sphere, White, Global.Button[2], 1.250, Visible To Position and Radius);
  • "Button 3"
  • Create In-World Text(Players In Slot(0, Team 1), Custom String("[Null]"), Global.Button[3], 2, Do Not Clip,
  • Visible To Position and String, White, Default Visibility);
  • Create Effect(Players In Slot(0, Team 1), Sphere, White, Global.Button[3], 1.250, Visible To Position and Radius);
  • }
  • }
  • rule("Menu 3 Text [sub3]")
  • {
  • event
  • {
  • Subroutine;
  • Menu3Text;
  • }
  • actions
  • {
  • Global.E = False;
  • Call Subroutine(Sub2);
  • Global.turnmode = True;
  • "Button 0"
  • Create In-World Text(Players In Slot(0, Team 1), Custom String("FreePlay"), Global.Button[0], 2, Do Not Clip,
  • Visible To Position and String, White, Default Visibility);
  • Create Effect(Players In Slot(0, Team 1), Sphere, White, Global.Button[0], 1.250, Visible To Position and Radius);
  • "Button 1"
  • Create In-World Text(Players In Slot(0, Team 1), Custom String("Challange"), Global.Button[1], 2, Do Not Clip,
  • Visible To Position and String, White, Default Visibility);
  • Create Effect(Players In Slot(0, Team 1), Sphere, White, Global.Button[1], 1.250, Visible To Position and Radius);
  • "Button 2"
  • Create In-World Text(Players In Slot(0, Team 1), Custom String("Reaction"), Global.Button[2], 2, Do Not Clip,
  • Visible To Position and String, White, Default Visibility);
  • Create Effect(Players In Slot(0, Team 1), Sphere, White, Global.Button[2], 1.250, Visible To Position and Radius);
  • "Button 3"
  • Create In-World Text(Players In Slot(0, Team 1), Custom String("[Null]"), Global.Button[3], 2, Do Not Clip,
  • Visible To Position and String, White, Default Visibility);
  • Create Effect(Players In Slot(0, Team 1), Sphere, White, Global.Button[3], 1.250, Visible To Position and Radius);
  • }
  • }
  • rule("Strafe Mode Button")
  • rule("Menu 4 Text [sub4]")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Slot 0;
  • Subroutine;
  • Menu4Text;
  • }
  • conditions
  • actions
  • {
  • Is Button Held(Event Player, Interact) == True;
  • Distance Between(Event Player, Vector(20, 1.500, 3)) <= 2;
  • "Button 0"
  • Create In-World Text(Players In Slot(0, Team 1), Custom String("FreePlay"), Global.Button[0], 2, Do Not Clip,
  • Visible To Position and String, White, Default Visibility);
  • Create Effect(Players In Slot(0, Team 1), Sphere, White, Global.Button[0], 1.250, Visible To Position and Radius);
  • "Button 1"
  • Create In-World Text(Players In Slot(0, Team 1), Custom String("Challange"), Global.Button[1], 2, Do Not Clip,
  • Visible To Position and String, White, Default Visibility);
  • Create Effect(Players In Slot(0, Team 1), Sphere, White, Global.Button[1], 1.250, Visible To Position and Radius);
  • "Button 2"
  • Create In-World Text(Players In Slot(0, Team 1), Custom String("Reaction"), Global.Button[2], 2, Do Not Clip,
  • Visible To Position and String, White, Default Visibility);
  • Create Effect(Players In Slot(0, Team 1), Sphere, White, Global.Button[2], 1.250, Visible To Position and Radius);
  • "Button 3"
  • Create In-World Text(Players In Slot(0, Team 1), Custom String("[Null]"), Global.Button[3], 2, Do Not Clip,
  • Visible To Position and String, White, Default Visibility);
  • Create Effect(Players In Slot(0, Team 1), Sphere, White, Global.Button[3], 1.250, Visible To Position and Radius);
  • }
  • }
  • rule("Menu 5 Text [sub5]")
  • {
  • event
  • {
  • Subroutine;
  • Menu5Text;
  • }
  • actions
  • {
  • If(Global.E == True);
  • Global.E = False;
  • Else;
  • Global.E = True;
  • "Button 0"
  • Create In-World Text(All Players(All Teams), Custom String("Ana"), Global.Button[0], 2, Do Not Clip,
  • Visible To Position and String, White, Default Visibility);
  • "Button 1"
  • Create In-World Text(All Players(All Teams), Custom String("Back"), Global.Button[1], 2, Do Not Clip,
  • Visible To Position and String, White, Default Visibility);
  • Create Effect(All Players(All Teams), Sphere, Orange, Global.Button[1], 1.250, Visible To Position and Radius);
  • "Button 2"
  • Create In-World Text(All Players(All Teams), Custom String("Zen"), Global.Button[2], 2, Do Not Clip,
  • Visible To Position and String, White, Default Visibility);
  • "Button 3"
  • Create In-World Text(All Players(All Teams), Custom String("McCree"), Global.Button[3], 2, Do Not Clip,
  • Visible To Position and String, White, Default Visibility);
  • "Button 4"
  • Create In-World Text(All Players(All Teams), Custom String("Widow"), Global.Button[4], 2, Do Not Clip,
  • Visible To Position and String, White, Default Visibility);
  • "Button 5"
  • Create In-World Text(All Players(All Teams), Custom String("Hanzo"), Global.Button[5], 2, Do Not Clip,
  • Visible To Position and String, White, Default Visibility);
  • "Confirmation Buttons"
  • If(Global.BotType == 0);
  • Create Effect(All Players(All Teams), Sphere, Green, Global.Button[0], 1.250, Visible To Position and Radius);
  • Create Effect(All Players(All Teams), Sphere, White, Global.Button[2], 1.250, Visible To Position and Radius);
  • Create Effect(All Players(All Teams), Sphere, White, Global.Button[3], 1.250, Visible To Position and Radius);
  • Create Effect(All Players(All Teams), Sphere, White, Global.Button[4], 1.250, Visible To Position and Radius);
  • Create Effect(All Players(All Teams), Sphere, White, Global.Button[5], 1.250, Visible To Position and Radius);
  • Else If(Global.BotType == 1);
  • Create Effect(All Players(All Teams), Sphere, White, Global.Button[0], 1.250, Visible To Position and Radius);
  • Create Effect(All Players(All Teams), Sphere, Green, Global.Button[2], 1.250, Visible To Position and Radius);
  • Create Effect(All Players(All Teams), Sphere, White, Global.Button[3], 1.250, Visible To Position and Radius);
  • Create Effect(All Players(All Teams), Sphere, White, Global.Button[4], 1.250, Visible To Position and Radius);
  • Create Effect(All Players(All Teams), Sphere, White, Global.Button[5], 1.250, Visible To Position and Radius);
  • Else If(Global.BotType == 2);
  • Create Effect(All Players(All Teams), Sphere, White, Global.Button[0], 1.250, Visible To Position and Radius);
  • Create Effect(All Players(All Teams), Sphere, White, Global.Button[2], 1.250, Visible To Position and Radius);
  • Create Effect(All Players(All Teams), Sphere, Green, Global.Button[3], 1.250, Visible To Position and Radius);
  • Create Effect(All Players(All Teams), Sphere, White, Global.Button[4], 1.250, Visible To Position and Radius);
  • Create Effect(All Players(All Teams), Sphere, White, Global.Button[5], 1.250, Visible To Position and Radius);
  • Else If(Global.BotType == 3);
  • Create Effect(All Players(All Teams), Sphere, White, Global.Button[0], 1.250, Visible To Position and Radius);
  • Create Effect(All Players(All Teams), Sphere, White, Global.Button[2], 1.250, Visible To Position and Radius);
  • Create Effect(All Players(All Teams), Sphere, White, Global.Button[3], 1.250, Visible To Position and Radius);
  • Create Effect(All Players(All Teams), Sphere, Green, Global.Button[4], 1.250, Visible To Position and Radius);
  • Create Effect(All Players(All Teams), Sphere, White, Global.Button[5], 1.250, Visible To Position and Radius);
  • Else If(Global.BotType == 4);
  • Create Effect(All Players(All Teams), Sphere, White, Global.Button[0], 1.250, Visible To Position and Radius);
  • Create Effect(All Players(All Teams), Sphere, White, Global.Button[2], 1.250, Visible To Position and Radius);
  • Create Effect(All Players(All Teams), Sphere, White, Global.Button[3], 1.250, Visible To Position and Radius);
  • Create Effect(All Players(All Teams), Sphere, White, Global.Button[4], 1.250, Visible To Position and Radius);
  • Create Effect(All Players(All Teams), Sphere, Green, Global.Button[5], 1.250, Visible To Position and Radius);
  • End;
  • }
  • }
  • rule("Decrease Density Button")
  • rule("ClearWorldEffects [sub6]")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Slot 0;
  • Subroutine;
  • ClearWorldEffects;
  • }
  • conditions
  • actions
  • {
  • Is Button Held(Event Player, Interact) == True;
  • Distance Between(Event Player, Vector(20, 1.500, 5)) <= 2;
  • Destroy All In-World Text;
  • Destroy All Effects;
  • Wait(0.050, Ignore Condition);
  • }
  • }
  • rule("SpawnBots [sub7]")
  • {
  • event
  • {
  • Subroutine;
  • SpawnBots;
  • }
  • actions
  • {
  • If(Global.Density > 7.500);
  • Global.Density = Global.Density + -0.500;
  • Create Dummy Bot(Global.BotTypeList[Global.BotType], Team 2, 0, Vector(Random Integer(-15, 15), 0, Random Integer(-15, 15)),
  • Host Player);
  • Wait(0.050, Ignore Condition);
  • Create Dummy Bot(Global.BotTypeList[Global.BotType], Team 2, 1, Vector(Random Integer(-15, 15), 0, Random Integer(-15, 15)),
  • Host Player);
  • Wait(0.050, Ignore Condition);
  • Create Dummy Bot(Global.BotTypeList[Global.BotType], Team 2, 2, Vector(Random Integer(-15, 15), 0, Random Integer(-15, 15)),
  • Host Player);
  • Wait(0.050, Ignore Condition);
  • Create Dummy Bot(Global.BotTypeList[Global.BotType], Team 2, 3, Vector(Random Integer(-15, 15), 0, Random Integer(-15, 15)),
  • Host Player);
  • Wait(0.050, Ignore Condition);
  • Create Dummy Bot(Global.BotTypeList[Global.BotType], Team 2, 5, Vector(Random Integer(-15, 15), 0, Random Integer(-15, 15)),
  • Host Player);
  • Wait(0.050, Ignore Condition);
  • Create Dummy Bot(Global.BotTypeList[Global.BotType], Team 2, 4, Vector(Random Integer(-15, 15), 0, Random Integer(-15, 15)),
  • Host Player);
  • Wait(0.050, Ignore Condition);
  • }
  • }
  • rule("Increase Density Button")
  • rule("Set Ultimate")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Slot 0;
  • }
  • conditions
  • {
  • Is Button Held(Event Player, Interact) == True;
  • Distance Between(Event Player, Vector(20, 1.500, 7)) <= 2;
  • Ultimate Charge Percent(Event Player) == 0;
  • }
  • actions
  • {
  • If(Global.Density < 19.500);
  • Global.Density = Global.Density + 0.500;
  • Set Ultimate Charge(Event Player, 100);
  • }
  • }
  • rule("Respawn Bot 1")
  • {
  • event
  • {
  • Player Died;
  • Team 2;
  • Slot 0;
  • }
  • actions
  • {
  • Wait(0.250, Ignore Condition);
  • Destroy Dummy Bot(Team 2, 0);
  • If(Global.turnmode == True);
  • Create Dummy Bot(Hero(Ana), Team 2, 0, Vector(0.500, 0, 0), Host Player);
  • Else;
  • Create Dummy Bot(Hero(Ana), Team 2, 0, Vector(Random Integer(7.500, -7.500), 0, Random Integer(7.500, -7.500)), Host Player);
  • If(Global.TurnMode == True);
  • Create Dummy Bot(Global.BotTypeList[Global.BotType], Team 2, 0, Vector(0.500, 0, 0), Host Player);
  • Else If(Global.GameMode == 1);
  • Create Dummy Bot(Global.BotTypeList[Global.BotType], Team 2, 0, Vector(Random Integer(7.500, -7.500), 0, Random Integer(7.500,
  • -7.500)), Host Player);
  • End;
  • }
  • }
  • rule("Respawn Bot 2")
  • {
  • event
  • {
  • Player Died;
  • Team 2;
  • Slot 1;
  • }
  • actions
  • {
  • Wait(0.250, Ignore Condition);
  • Destroy Dummy Bot(Team 2, 1);
  • If(Global.turnmode == True);
  • Create Dummy Bot(Hero(Ana), Team 2, 1, Vector(-0.500, 0, 0), Host Player);
  • Else;
  • Create Dummy Bot(Hero(Ana), Team 2, 1, Vector(Random Integer(7.500, -7.500), 0, Random Integer(7.500, -7.500)), Host Player);
  • If(Global.TurnMode == True);
  • Create Dummy Bot(Global.BotTypeList[Global.BotType], Team 2, 1, Vector(-0.500, 0, 0), Host Player);
  • Else If(Global.GameMode == 1);
  • Create Dummy Bot(Global.BotTypeList[Global.BotType], Team 2, 1, Vector(Random Integer(7.500, -7.500), 0, Random Integer(7.500,
  • -7.500)), Host Player);
  • End;
  • }
  • }
  • rule("Respawn Bot 3")
  • {
  • event
  • {
  • Player Died;
  • Team 2;
  • Slot 2;
  • }
  • actions
  • {
  • Wait(0.250, Ignore Condition);
  • Destroy Dummy Bot(Team 2, 2);
  • If(Global.turnmode == True);
  • Create Dummy Bot(Hero(Ana), Team 2, 2, Vector(0, 0, 0.500), Host Player);
  • Else If(Global.NumBots >= 3);
  • Create Dummy Bot(Hero(Ana), Team 2, 2, Vector(Random Integer(Global.Density, Global.Density * -1), 0, Random Integer(
  • Global.Density, Global.Density * -1)), Host Player);
  • If(Global.TurnMode == True);
  • Create Dummy Bot(Global.BotTypeList[Global.BotType], Team 2, 2, Vector(0, 0, 0.500), Host Player);
  • Else If(Global.GameMode == 1);
  • Create Dummy Bot(Global.BotTypeList[Global.BotType], Team 2, 2, Vector(Random Integer(-15, 15), 0, Random Integer(-15, 15)),
  • Host Player);
  • End;
  • }
  • }
  • rule("Respawn Bot 4")
  • {
  • event
  • {
  • Player Died;
  • Team 2;
  • Slot 3;
  • }
  • actions
  • {
  • Wait(0.250, Ignore Condition);
  • Destroy Dummy Bot(Team 2, 3);
  • If(Global.turnmode == True);
  • Create Dummy Bot(Hero(Ana), Team 2, 3, Vector(0, 0, -0.500), Host Player);
  • Else If(Global.NumBots >= 4);
  • Create Dummy Bot(Hero(Ana), Team 2, 3, Vector(Random Integer(Global.Density, Global.Density * -1), 0, Random Integer(
  • Global.Density, Global.Density * -1)), Host Player);
  • If(Global.TurnMode == True);
  • Create Dummy Bot(Global.BotTypeList[Global.BotType], Team 2, 3, Vector(0, 0, -0.500), Host Player);
  • Else If(Global.GameMode == 1);
  • Create Dummy Bot(Global.BotTypeList[Global.BotType], Team 2, 3, Vector(Random Integer(-15, 15), 0, Random Integer(-15, 15)),
  • Host Player);
  • End;
  • }
  • }
  • rule("Respawn Bot 5")
  • {
  • event
  • {
  • Player Died;
  • Team 2;
  • Slot 4;
  • }
  • actions
  • {
  • Wait(0.250, Ignore Condition);
  • Destroy Dummy Bot(Team 2, 4);
  • If(Global.NumBots >= 5);
  • Create Dummy Bot(Hero(Ana), Team 2, 4, Vector(Random Integer(Global.Density, Global.Density * -1), 0, Random Integer(
  • Global.Density, Global.Density * -1)), Host Player);
  • If(Global.GameMode == 1);
  • Create Dummy Bot(Global.BotTypeList[Global.BotType], Team 2, 4, Vector(Random Integer(-15, 15), 0, Random Integer(-15, 15)),
  • Host Player);
  • End;
  • }
  • }
  • rule("Respawn Bot 6")
  • {
  • event
  • {
  • Player Died;
  • Team 2;
  • Slot 5;
  • }
  • actions
  • {
  • Wait(0.250, Ignore Condition);
  • Destroy Dummy Bot(Team 2, 5);
  • If(Global.NumBots == 6);
  • Create Dummy Bot(Hero(Ana), Team 2, 5, Vector(Random Integer(Global.Density, Global.Density * -1), 0, Random Integer(
  • Global.Density, Global.Density * -1)), Host Player);
  • If(Global.GameMode == 1);
  • Create Dummy Bot(Global.BotTypeList[Global.BotType], Team 2, 5, Vector(Random Integer(-15, 15), 0, Random Integer(-15, 15)),
  • Host Player);
  • End;
  • }
  • }
  • rule("Add Bots sub0")
  • rule("Strafe Loop (not mine)")
  • {
  • event
  • {
  • Subroutine;
  • Sub0;
  • Ongoing - Each Player;
  • Team 2;
  • All;
  • }
  • conditions
  • {
  • Global.StrafeMode == True;
  • }
  • actions
  • {
  • If(Global.NumBots == 3);
  • Create Dummy Bot(Hero(Ana), Team 2, 2, Vector(Random Integer(Global.Density, Global.Density * -1), 0, Random Integer(
  • Global.Density, Global.Density * -1)), Host Player);
  • Else If(Global.NumBots == 4);
  • Create Dummy Bot(Hero(Ana), Team 2, 3, Vector(Random Integer(Global.Density, Global.Density * -1), 0, Random Integer(
  • Global.Density, Global.Density * -1)), Host Player);
  • Else If(Global.NumBots == 5);
  • Create Dummy Bot(Hero(Ana), Team 2, 4, Vector(Random Integer(Global.Density, Global.Density * -1), 0, Random Integer(
  • Global.Density, Global.Density * -1)), Host Player);
  • Else If(Global.NumBots == 6);
  • Create Dummy Bot(Hero(Ana), Team 2, 5, Vector(Random Integer(Global.Density, Global.Density * -1), 0, Random Integer(
  • Global.Density, Global.Density * -1)), Host Player);
  • End;
  • Destroy All HUD Text;
  • Set Facing(Event Player, Vector(Random Integer(-20, 20), 0, Random Integer(-20, 20)), To World);
  • Start Throttle In Direction(Event Player, Left, 1, To Player, Replace existing throttle, Direction and Magnitude);
  • Wait(Random Real(0.500, 1.500), Ignore Condition);
  • Stop Throttle In Direction(Event Player);
  • Wait(0.500, Ignore Condition);
  • Start Throttle In Direction(Event Player, Right, 1, To Player, Replace existing throttle, Direction and Magnitude);
  • Wait(Random Real(0.500, 1.500), Ignore Condition);
  • Stop Throttle In Direction(Event Player);
  • Wait(0.500, Ignore Condition);
  • Loop If Condition Is True;
  • }
  • }variables
  • {
  • global:
  • 0: GameState
  • 1: Button
  • 2: DamageMode
  • 3: StrafeMode
  • 4: TurnMode
  • 5: GameMode
  • 6: BotTypeList
  • 7: BotType
  • }
  • subroutines
  • {
  • 0: HomeText
  • 1: Menu1Text
  • 2: Menu2Text
  • 3: Menu3Text
  • 4: Menu4Text
  • 5: Menu5Text
  • 6: ClearWorldEffects
  • 7: SpawnBots
  • }
  • rule("Remove Bots sub1")
  • rule("Initialisation")
  • {
  • event
  • {
  • Subroutine;
  • Sub1;
  • Player Joined Match;
  • Team 1;
  • Slot 0;
  • }
  • actions
  • {
  • If(Global.NumBots == 2);
  • Destroy Dummy Bot(Team 2, 2);
  • Else If(Global.NumBots == 3);
  • Destroy Dummy Bot(Team 2, 3);
  • Else If(Global.NumBots == 4);
  • Destroy Dummy Bot(Team 2, 4);
  • Else If(Global.NumBots == 5);
  • Destroy Dummy Bot(Team 2, 5);
  • End;
  • Destroy All HUD Text;
  • "Set player to Genji"
  • Preload Hero(Event Player, Hero(Genji));
  • Start Forcing Player To Be Hero(Event Player, Hero(Genji));
  • "Move player to position"
  • Start Forcing Player Position(Event Player, Vector(0, 0, 0), True);
  • "Display Home Menu UI"
  • Call Subroutine(HomeText);
  • Wait(0.250, Ignore Condition);
  • "Free player to move"
  • Stop Forcing Player Position(Event Player);
  • "Set Button Positions"
  • Global.Button[0] = Vector(-20, 13.500, 5);
  • Global.Button[1] = Vector(-20, 7.500, 5);
  • Global.Button[2] = Vector(-20, 13.500, 0);
  • Global.Button[3] = Vector(-20, 7.500, 0);
  • Global.Button[4] = Vector(-20, 13.500, -5);
  • Global.Button[5] = Vector(-20, 7.500, -5);
  • Global.Button[6] = Vector(-20, 10.500, 0);
  • "Set turn mode and strafe mode to false"
  • Global.TurnMode = False;
  • Global.StrafeMode = False;
  • "Add bots to lists."
  • Global.BotTypeList[0] = Hero(Ana);
  • Global.BotTypeList[1] = Hero(Zenyatta);
  • Global.BotTypeList[2] = Hero(McCree);
  • Global.BotTypeList[3] = Hero(Widowmaker);
  • Global.BotTypeList[4] = Hero(Hanzo);
  • }
  • }
  • rule("180 Mode sub2")
  • rule("Home Menu Input")
  • {
  • event
  • {
  • Subroutine;
  • Sub2;
  • Ongoing - Each Player;
  • Team 1;
  • Slot 0;
  • }
  • conditions
  • {
  • Is Button Held(Event Player, Interact) == True;
  • Global.GameState == 0;
  • }
  • actions
  • {
  • Global.NumBots = 4;
  • Kill(Players In Slot(4, Team 2), Null);
  • Kill(Players In Slot(5, Team 2), Null);
  • Create Dummy Bot(Hero(Ana), Team 2, 0, Vector(0.500, 0, 0), Host Player);
  • Create Dummy Bot(Hero(Ana), Team 2, 1, Vector(-0.500, 0, 0), Host Player);
  • Create Dummy Bot(Hero(Ana), Team 2, 2, Vector(0, 0, 0.500), Host Player);
  • Create Dummy Bot(Hero(Ana), Team 2, 3, Vector(0, 0, -0.500), Host Player);
  • Set Max Health(Players In Slot(1, All Teams), 75);
  • Set Max Health(Players In Slot(2, All Teams), 50);
  • Set Max Health(Players In Slot(3, All Teams), 25);
  • Create HUD Text(Event Player, Custom String("Unstable Rate Avg: {0}°", Global.UR), Null, Null, Left, 0, White, White, White,
  • Visible To and String, Default Visibility);
  • Create HUD Text(Event Player, Custom String("Dash Angle Diff: {0}°", Global.ChangeInAngle), Null, Null, Left, 0, White, White,
  • White, Visible To and String, Default Visibility);
  • Create HUD Text(Event Player, Custom String("Press Crouch + Interact to reset UR"), Null, Null, Right, 0, White, White, Orange,
  • Visible To and String, Default Visibility);
  • "Button 0"
  • If(Distance Between(Global.Button[0], Ray Cast Hit Position(Eye Position(Event Player), Eye Position(Event Player)
  • + Facing Direction Of(Event Player) * Distance Between(Eye Position(Event Player), Global.Button[0]), Null, Event Player,
  • False)) <= 1);
  • Call Subroutine(ClearWorldEffects);
  • Call Subroutine(Menu1Text);
  • Wait(0.500, Ignore Condition);
  • Global.GameState = 1;
  • Global.GameMode = 1;
  • Call Subroutine(SpawnBots);
  • "Button 1"
  • disabled Else If(Distance Between(Global.Button[1], Ray Cast Hit Position(Eye Position(Event Player), Eye Position(Event Player)
  • + Facing Direction Of(Event Player) * Distance Between(Eye Position(Event Player), Global.Button[1]), Null, Event Player,
  • False)) <= 1);
  • disabled Call Subroutine(ClearWorldEffects);
  • disabled Call Subroutine(Menu2Text);
  • disabled Global.GameState = 2;
  • disabled Global.GameMode = 2;
  • "Button 4"
  • disabled Else If(Distance Between(Global.Button[4], Ray Cast Hit Position(Eye Position(Event Player), Eye Position(Event Player)
  • + Facing Direction Of(Event Player) * Distance Between(Eye Position(Event Player), Global.Button[4]), Null, Event Player,
  • False)) <= 1);
  • disabled Call Subroutine(ClearWorldEffects);
  • disabled Call Subroutine(Menu3Text);
  • disabled Global.GameState = 3;
  • disabled Global.GameMode = 3;
  • "Button 5"
  • disabled Else If(Distance Between(Global.Button[5], Ray Cast Hit Position(Eye Position(Event Player), Eye Position(Event Player)
  • + Facing Direction Of(Event Player) * Distance Between(Eye Position(Event Player), Global.Button[5]), Null, Event Player,
  • False)) <= 1);
  • disabled Call Subroutine(ClearWorldEffects);
  • disabled Call Subroutine(Menu4Text);
  • disabled Global.GameState = 4;
  • disabled Global.GameMode = 4;
  • }
  • }
  • rule("Button spawner sub3")
  • rule("Menu 1 Input")
  • {
  • event
  • {
  • Subroutine;
  • Sub3;
  • Ongoing - Each Player;
  • Team 1;
  • Slot 0;
  • }
  • conditions
  • {
  • Is Button Held(Event Player, Interact) == True;
  • Global.GameState == 1;
  • }
  • actions
  • {
  • Create Effect(All Players(All Teams), Sphere, Red, Vector(20, 1, -11), 0.500, Visible To Position and Radius);
  • Create Effect(All Players(All Teams), Sphere, Green, Vector(20, 1, -9), 0.500, Visible To Position and Radius);
  • Create Effect(All Players(All Teams), Sphere, Blue, Vector(20, 1, -7), 0.500, Visible To Position and Radius);
  • Create Effect(All Players(All Teams), Sphere, Blue, Vector(20, 1, -5), 0.500, Visible To Position and Radius);
  • Create Effect(All Players(All Teams), Sphere, Blue, Vector(20, 1, -3), 0.500, Visible To Position and Radius);
  • Create Effect(All Players(All Teams), Sphere, White, Vector(20, 1, -1), 0.500, Visible To Position and Radius);
  • Create Effect(All Players(All Teams), Sphere, White, Vector(20, 1, 1), 0.500, Visible To Position and Radius);
  • Create Effect(All Players(All Teams), Sphere, Blue, Vector(20, 1, 3), 0.500, Visible To Position and Radius);
  • Create Effect(All Players(All Teams), Sphere, Red, Vector(20, 1, 5), 0.500, Visible To Position and Radius);
  • Create Effect(All Players(All Teams), Sphere, Green, Vector(20, 1, 7), 0.500, Visible To Position and Radius);
  • "Button 0"
  • If(Distance Between(Global.Button[0], Ray Cast Hit Position(Eye Position(Event Player), Eye Position(Event Player)
  • + Facing Direction Of(Event Player) * Distance Between(Eye Position(Event Player), Global.Button[0]), Null, Event Player,
  • False)) <= 1);
  • Call Subroutine(ClearWorldEffects);
  • Global.DamageMode = 1;
  • Call Subroutine(Menu1Text);
  • Set Damage Dealt(Event Player, 150);
  • "Button 1"
  • Else If(Distance Between(Global.Button[1], Ray Cast Hit Position(Eye Position(Event Player), Eye Position(Event Player)
  • + Facing Direction Of(Event Player) * Distance Between(Eye Position(Event Player), Global.Button[1]), Null, Event Player,
  • False)) <= 1);
  • Call Subroutine(ClearWorldEffects);
  • Call Subroutine(HomeText);
  • Wait(0.500, Ignore Condition);
  • Global.GameState = 0;
  • Global.GameMode = 0;
  • Destroy All Dummy Bots;
  • "Button 2"
  • Else If(Distance Between(Global.Button[2], Ray Cast Hit Position(Eye Position(Event Player), Eye Position(Event Player)
  • + Facing Direction Of(Event Player) * Distance Between(Eye Position(Event Player), Global.Button[2]), Null, Event Player,
  • False)) <= 1);
  • Call Subroutine(ClearWorldEffects);
  • Global.DamageMode = 0;
  • Call Subroutine(Menu1Text);
  • Set Damage Dealt(Event Player, 100);
  • "Button 3"
  • Else If(Distance Between(Global.Button[3], Ray Cast Hit Position(Eye Position(Event Player), Eye Position(Event Player)
  • + Facing Direction Of(Event Player) * Distance Between(Eye Position(Event Player), Global.Button[3]), Null, Event Player,
  • False)) <= 1);
  • Call Subroutine(ClearWorldEffects);
  • Call Subroutine(Menu5Text);
  • Wait(0.500, Ignore Condition);
  • Global.GameState = 5;
  • "Button 4"
  • Else If(Distance Between(Global.Button[4], Ray Cast Hit Position(Eye Position(Event Player), Eye Position(Event Player)
  • + Facing Direction Of(Event Player) * Distance Between(Eye Position(Event Player), Global.Button[4]), Null, Event Player,
  • False)) <= 1);
  • Call Subroutine(ClearWorldEffects);
  • Global.DamageMode = 2;
  • Call Subroutine(Menu1Text);
  • Set Damage Dealt(Event Player, 400);
  • "Button 5"
  • Else If(Distance Between(Global.Button[5], Ray Cast Hit Position(Eye Position(Event Player), Eye Position(Event Player)
  • + Facing Direction Of(Event Player) * Distance Between(Eye Position(Event Player), Global.Button[5]), Null, Event Player,
  • False)) <= 1);
  • Call Subroutine(ClearWorldEffects);
  • If(Global.StrafeMode == False);
  • Global.StrafeMode = True;
  • Global.TurnMode = False;
  • Else;
  • Global.StrafeMode = False;
  • End;
  • Call Subroutine(Menu1Text);
  • End;
  • }
  • }
  • rule("Strafe Loop (not mine)")
  • rule("Menu 2 Input")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 2;
  • All;
  • Team 1;
  • Slot 0;
  • }
  • conditions
  • {
  • Global.E == True;
  • Is Button Held(Event Player, Interact) == True;
  • Global.GameState == 2;
  • }
  • actions
  • {
  • Start Throttle In Direction(Event Player, Left, 1, To Player, Replace existing throttle, Direction and Magnitude);
  • Wait(Random Real(0.500, 1.500), Ignore Condition);
  • Stop Throttle In Direction(Event Player);
  • Wait(0.500, Ignore Condition);
  • Start Throttle In Direction(Event Player, Right, 1, To Player, Replace existing throttle, Direction and Magnitude);
  • Wait(Random Real(0.500, 1.500), Ignore Condition);
  • Stop Throttle In Direction(Event Player);
  • Wait(0.500, Ignore Condition);
  • Loop If Condition Is True;
  • If(Distance Between(Global.Button[0], Ray Cast Hit Position(Eye Position(Event Player), Eye Position(Event Player)
  • + Facing Direction Of(Event Player) * Distance Between(Eye Position(Event Player), Global.Button[0]), Null, Event Player,
  • False)) <= 1);
  • Global.GameState = 1;
  • Call Subroutine(Menu5Text);
  • Call Subroutine(Menu1Text);
  • Else If(Distance Between(Global.Button[1], Ray Cast Hit Position(Eye Position(Event Player), Eye Position(Event Player)
  • + Facing Direction Of(Event Player) * Distance Between(Eye Position(Event Player), Global.Button[1]), Null, Event Player,
  • False)) <= 1);
  • Global.GameState = 2;
  • Call Subroutine(Menu5Text);
  • Call Subroutine(Menu2Text);
  • Else If(Distance Between(Global.Button[2], Ray Cast Hit Position(Eye Position(Event Player), Eye Position(Event Player)
  • + Facing Direction Of(Event Player) * Distance Between(Eye Position(Event Player), Global.Button[2]), Null, Event Player,
  • False)) <= 1);
  • Global.GameState = 3;
  • Call Subroutine(Menu5Text);
  • Call Subroutine(Menu3Text);
  • Else If(Distance Between(Global.Button[3], Ray Cast Hit Position(Eye Position(Event Player), Eye Position(Event Player)
  • + Facing Direction Of(Event Player) * Distance Between(Eye Position(Event Player), Global.Button[3]), Null, Event Player,
  • False)) <= 1);
  • Global.GameState = 4;
  • Call Subroutine(Menu5Text);
  • Call Subroutine(Menu4Text);
  • End;
  • Wait(1, Ignore Condition);
  • }
  • }
  • rule("Menu 3 Input")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Slot 0;
  • }
  • conditions
  • {
  • Is Button Held(Event Player, Interact) == True;
  • Global.GameState == 3;
  • }
  • actions
  • {
  • If(Distance Between(Global.Button[0], Ray Cast Hit Position(Eye Position(Event Player), Eye Position(Event Player)
  • + Facing Direction Of(Event Player) * Distance Between(Eye Position(Event Player), Global.Button[0]), Null, Event Player,
  • False)) <= 1);
  • Global.GameState = 1;
  • Call Subroutine(Menu5Text);
  • Call Subroutine(Menu1Text);
  • Else If(Distance Between(Global.Button[1], Ray Cast Hit Position(Eye Position(Event Player), Eye Position(Event Player)
  • + Facing Direction Of(Event Player) * Distance Between(Eye Position(Event Player), Global.Button[1]), Null, Event Player,
  • False)) <= 1);
  • Global.GameState = 2;
  • Call Subroutine(Menu5Text);
  • Call Subroutine(Menu2Text);
  • Else If(Distance Between(Global.Button[2], Ray Cast Hit Position(Eye Position(Event Player), Eye Position(Event Player)
  • + Facing Direction Of(Event Player) * Distance Between(Eye Position(Event Player), Global.Button[2]), Null, Event Player,
  • False)) <= 1);
  • Global.GameState = 3;
  • Call Subroutine(Menu5Text);
  • Call Subroutine(Menu3Text);
  • Else If(Distance Between(Global.Button[3], Ray Cast Hit Position(Eye Position(Event Player), Eye Position(Event Player)
  • + Facing Direction Of(Event Player) * Distance Between(Eye Position(Event Player), Global.Button[3]), Null, Event Player,
  • False)) <= 1);
  • Global.GameState = 4;
  • Call Subroutine(Menu5Text);
  • Call Subroutine(Menu4Text);
  • End;
  • Wait(1, Ignore Condition);
  • }
  • }
  • rule("Angle")
  • rule("Menu 4 Input")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Slot 0;
  • }
  • conditions
  • {
  • Global.turnmode == True;
  • Is Using Ability 1(Event Player) == True;
  • Is Button Held(Event Player, Interact) == True;
  • Global.GameState == 4;
  • }
  • actions
  • {
  • Global.SampleSize = 1 + Global.SampleSize;
  • Global.ChangeInAngle = Absolute Value(Angle Difference(Global.CurrentAngle, Horizontal Facing Angle Of(Event Player)));
  • Global.CurrentAngle = Horizontal Facing Angle Of(Event Player);
  • If(Global.SampleSize >= 1);
  • Global.TotalAngleUR = Global.TotalAngleUR + (180 - Global.ChangeInAngle);
  • If(Distance Between(Global.Button[0], Ray Cast Hit Position(Eye Position(Event Player), Eye Position(Event Player)
  • + Facing Direction Of(Event Player) * Distance Between(Eye Position(Event Player), Global.Button[0]), Null, Event Player,
  • False)) <= 1);
  • Global.GameState = 1;
  • Call Subroutine(Menu5Text);
  • Call Subroutine(Menu1Text);
  • Else If(Distance Between(Global.Button[1], Ray Cast Hit Position(Eye Position(Event Player), Eye Position(Event Player)
  • + Facing Direction Of(Event Player) * Distance Between(Eye Position(Event Player), Global.Button[1]), Null, Event Player,
  • False)) <= 1);
  • Global.GameState = 2;
  • Call Subroutine(Menu5Text);
  • Call Subroutine(Menu2Text);
  • Else If(Distance Between(Global.Button[2], Ray Cast Hit Position(Eye Position(Event Player), Eye Position(Event Player)
  • + Facing Direction Of(Event Player) * Distance Between(Eye Position(Event Player), Global.Button[2]), Null, Event Player,
  • False)) <= 1);
  • Global.GameState = 3;
  • Call Subroutine(Menu5Text);
  • Call Subroutine(Menu3Text);
  • Else If(Distance Between(Global.Button[3], Ray Cast Hit Position(Eye Position(Event Player), Eye Position(Event Player)
  • + Facing Direction Of(Event Player) * Distance Between(Eye Position(Event Player), Global.Button[3]), Null, Event Player,
  • False)) <= 1);
  • Global.GameState = 4;
  • Call Subroutine(Menu5Text);
  • Call Subroutine(Menu4Text);
  • End;
  • Global.UR = Global.TotalAngleUR / Global.SampleSize;
  • Wait(1, Ignore Condition);
  • }
  • }
  • rule("Reset UR")
  • rule("Menu 5 Input")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Slot 0;
  • }
  • conditions
  • {
  • Is Button Held(Event Player, Crouch) == True;
  • Is Button Held(Event Player, Interact) == True;
  • Global.GameState == 5;
  • }
  • actions
  • {
  • Global.UR = 0;
  • Global.SampleSize = -1;
  • Global.TotalAngleUR = 0;
  • "Button 0"
  • If(Distance Between(Global.Button[0], Ray Cast Hit Position(Eye Position(Event Player), Eye Position(Event Player)
  • + Facing Direction Of(Event Player) * Distance Between(Eye Position(Event Player), Global.Button[0]), Null, Event Player,
  • False)) <= 1);
  • Call Subroutine(ClearWorldEffects);
  • Global.BotType = 0;
  • Call Subroutine(Menu5Text);
  • Wait(0.500, Ignore Condition);
  • Destroy All Dummy Bots;
  • Call Subroutine(SpawnBots);
  • "Button 1"
  • Else If(Distance Between(Global.Button[1], Ray Cast Hit Position(Eye Position(Event Player), Eye Position(Event Player)
  • + Facing Direction Of(Event Player) * Distance Between(Eye Position(Event Player), Global.Button[1]), Null, Event Player,
  • False)) <= 1);
  • Call Subroutine(ClearWorldEffects);
  • Call Subroutine(Menu1Text);
  • Wait(0.250, Ignore Condition);
  • Global.GameState = 1;
  • "Button 2"
  • Else If(Distance Between(Global.Button[2], Ray Cast Hit Position(Eye Position(Event Player), Eye Position(Event Player)
  • + Facing Direction Of(Event Player) * Distance Between(Eye Position(Event Player), Global.Button[2]), Null, Event Player,
  • False)) <= 1);
  • Call Subroutine(ClearWorldEffects);
  • Global.BotType = 1;
  • Call Subroutine(Menu5Text);
  • Wait(0.250, Ignore Condition);
  • Destroy All Dummy Bots;
  • Call Subroutine(SpawnBots);
  • "Button 3"
  • Else If(Distance Between(Global.Button[3], Ray Cast Hit Position(Eye Position(Event Player), Eye Position(Event Player)
  • + Facing Direction Of(Event Player) * Distance Between(Eye Position(Event Player), Global.Button[3]), Null, Event Player,
  • False)) <= 1);
  • Call Subroutine(ClearWorldEffects);
  • Global.BotType = 2;
  • Call Subroutine(Menu5Text);
  • Wait(0.250, Ignore Condition);
  • Destroy All Dummy Bots;
  • Call Subroutine(SpawnBots);
  • "Button 4"
  • Else If(Distance Between(Global.Button[4], Ray Cast Hit Position(Eye Position(Event Player), Eye Position(Event Player)
  • + Facing Direction Of(Event Player) * Distance Between(Eye Position(Event Player), Global.Button[4]), Null, Event Player,
  • False)) <= 1);
  • Call Subroutine(ClearWorldEffects);
  • Global.BotType = 3;
  • Call Subroutine(Menu5Text);
  • Wait(0.250, Ignore Condition);
  • Destroy All Dummy Bots;
  • Call Subroutine(SpawnBots);
  • "Button 5"
  • Else If(Distance Between(Global.Button[5], Ray Cast Hit Position(Eye Position(Event Player), Eye Position(Event Player)
  • + Facing Direction Of(Event Player) * Distance Between(Eye Position(Event Player), Global.Button[5]), Null, Event Player,
  • False)) <= 1);
  • Call Subroutine(ClearWorldEffects);
  • Global.BotType = 4;
  • Call Subroutine(Menu5Text);
  • Wait(0.250, Ignore Condition);
  • Destroy All Dummy Bots;
  • Call Subroutine(SpawnBots);
  • }
  • }
  • rule("Home Menu Text [sub0]")
  • {
  • event
  • {
  • Subroutine;
  • HomeText;
  • }
  • actions
  • {
  • "Button 0"
  • Create In-World Text(All Players(All Teams), Custom String("FreePlay"), Global.Button[0], 2, Do Not Clip,
  • Visible To Position and String, White, Default Visibility);
  • Create Effect(All Players(All Teams), Sphere, White, Global.Button[0], 1.250, Visible To Position and Radius);
  • "Button 1"
  • Create In-World Text(All Players(All Teams), Custom String("Coming Soon..."), Global.Button[1], 2, Do Not Clip,
  • Visible To Position and String, White, Default Visibility);
  • Create Effect(All Players(All Teams), Sphere, Red, Global.Button[1], 1.250, Visible To Position and Radius);
  • "Button 2"
  • Create In-World Text(All Players(All Teams), Custom String("Coming Soon..."), Global.Button[4], 2, Do Not Clip,
  • Visible To Position and String, White, Default Visibility);
  • Create Effect(All Players(All Teams), Sphere, Red, Global.Button[4], 1.250, Visible To Position and Radius);
  • "Button 3"
  • Create In-World Text(All Players(All Teams), Custom String("Coming Soon..."), Global.Button[5], 2, Do Not Clip,
  • Visible To Position and String, White, Default Visibility);
  • Create Effect(All Players(All Teams), Sphere, Red, Global.Button[5], 1.250, Visible To Position and Radius);
  • "Title"
  • Create In-World Text(All Players(All Teams), Custom String("Press [Interact] Key while looking circle to select."), Vector(-20, 17,
  • 0), 2.500, Do Not Clip, Visible To Position and String, White, Default Visibility);
  • }
  • }
  • rule("Menu 1 Text [sub1]")
  • {
  • event
  • {
  • Subroutine;
  • Menu1Text;
  • }
  • actions
  • {
  • "Button 0"
  • Create In-World Text(All Players(All Teams), Custom String("Nano"), Global.Button[0], 2, Do Not Clip,
  • Visible To Position and String, White, Default Visibility);
  • Create Effect(All Players(All Teams), Sphere, Blue, Global.Button[0], 1.250, Visible To Position and Radius);
  • "Button 1"
  • Create In-World Text(All Players(All Teams), Custom String("Back"), Global.Button[1], 2, Do Not Clip,
  • Visible To Position and String, White, Default Visibility);
  • Create Effect(All Players(All Teams), Sphere, Orange, Global.Button[1], 1.250, Visible To Position and Radius);
  • "Button 2"
  • Create In-World Text(All Players(All Teams), Custom String("Normal"), Global.Button[2], 2, Do Not Clip,
  • Visible To Position and String, White, Default Visibility);
  • Create Effect(All Players(All Teams), Sphere, Purple, Global.Button[2], 1.250, Visible To Position and Radius);
  • "Button 3"
  • Create In-World Text(All Players(All Teams), Custom String("Enemy Type"), Global.Button[3], 2, Do Not Clip,
  • Visible To Position and String, White, Default Visibility);
  • Create Effect(All Players(All Teams), Sphere, White, Global.Button[3], 1.250, Visible To Position and Radius);
  • "Button 4"
  • Create In-World Text(All Players(All Teams), Custom String("Dash"), Global.Button[4], 2, Do Not Clip,
  • Visible To Position and String, White, Default Visibility);
  • Create Effect(All Players(All Teams), Sphere, Red, Global.Button[4], 1.250, Visible To Position and Radius);
  • "Button 5"
  • Create In-World Text(All Players(All Teams), Custom String("Strafe"), Global.Button[5], 2, Do Not Clip,
  • Visible To Position and String, White, Default Visibility);
  • If(Global.StrafeMode == False);
  • Create Effect(All Players(All Teams), Sphere, White, Global.Button[5], 1.250, Visible To Position and Radius);
  • Else;
  • Create Effect(All Players(All Teams), Sphere, Green, Global.Button[5], 1.250, Visible To Position and Radius);
  • End;
  • "Text Category"
  • Create In-World Text(All Players(All Teams), Custom String("Damage Modifier"), Vector(-20, 14.500, 0), 2, Do Not Clip,
  • Visible To Position and String, White, Default Visibility);
  • "Damage Effect"
  • If(Global.DamageMode == 0);
  • Create Effect(All Players(All Teams), Sparkles, White, Event Player, 2, Visible To Position and Radius);
  • Else If(Global.DamageMode == 1);
  • Create Effect(All Players(All Teams), Sparkles, Blue, Event Player, 2, Visible To Position and Radius);
  • Else If(Global.DamageMode == 2);
  • Create Effect(All Players(All Teams), Sparkles, Red, Event Player, 2, Visible To Position and Radius);
  • End;
  • }
  • }
  • rule("Menu 2 Text [sub2]")
  • {
  • event
  • {
  • Subroutine;
  • Menu2Text;
  • }
  • actions
  • {
  • "Button 0"
  • Create In-World Text(Players In Slot(0, Team 1), Custom String("FreePlay"), Global.Button[0], 2, Do Not Clip,
  • Visible To Position and String, White, Default Visibility);
  • Create Effect(Players In Slot(0, Team 1), Sphere, White, Global.Button[0], 1.250, Visible To Position and Radius);
  • "Button 1"
  • Create In-World Text(Players In Slot(0, Team 1), Custom String("Challange"), Global.Button[1], 2, Do Not Clip,
  • Visible To Position and String, White, Default Visibility);
  • Create Effect(Players In Slot(0, Team 1), Sphere, White, Global.Button[1], 1.250, Visible To Position and Radius);
  • "Button 2"
  • Create In-World Text(Players In Slot(0, Team 1), Custom String("Reaction"), Global.Button[2], 2, Do Not Clip,
  • Visible To Position and String, White, Default Visibility);
  • Create Effect(Players In Slot(0, Team 1), Sphere, White, Global.Button[2], 1.250, Visible To Position and Radius);
  • "Button 3"
  • Create In-World Text(Players In Slot(0, Team 1), Custom String("[Null]"), Global.Button[3], 2, Do Not Clip,
  • Visible To Position and String, White, Default Visibility);
  • Create Effect(Players In Slot(0, Team 1), Sphere, White, Global.Button[3], 1.250, Visible To Position and Radius);
  • }
  • }
  • rule("Menu 3 Text [sub3]")
  • {
  • event
  • {
  • Subroutine;
  • Menu3Text;
  • }
  • actions
  • {
  • "Button 0"
  • Create In-World Text(Players In Slot(0, Team 1), Custom String("FreePlay"), Global.Button[0], 2, Do Not Clip,
  • Visible To Position and String, White, Default Visibility);
  • Create Effect(Players In Slot(0, Team 1), Sphere, White, Global.Button[0], 1.250, Visible To Position and Radius);
  • "Button 1"
  • Create In-World Text(Players In Slot(0, Team 1), Custom String("Challange"), Global.Button[1], 2, Do Not Clip,
  • Visible To Position and String, White, Default Visibility);
  • Create Effect(Players In Slot(0, Team 1), Sphere, White, Global.Button[1], 1.250, Visible To Position and Radius);
  • "Button 2"
  • Create In-World Text(Players In Slot(0, Team 1), Custom String("Reaction"), Global.Button[2], 2, Do Not Clip,
  • Visible To Position and String, White, Default Visibility);
  • Create Effect(Players In Slot(0, Team 1), Sphere, White, Global.Button[2], 1.250, Visible To Position and Radius);
  • "Button 3"
  • Create In-World Text(Players In Slot(0, Team 1), Custom String("[Null]"), Global.Button[3], 2, Do Not Clip,
  • Visible To Position and String, White, Default Visibility);
  • Create Effect(Players In Slot(0, Team 1), Sphere, White, Global.Button[3], 1.250, Visible To Position and Radius);
  • }
  • }
  • rule("Menu 4 Text [sub4]")
  • {
  • event
  • {
  • Subroutine;
  • Menu4Text;
  • }
  • actions
  • {
  • "Button 0"
  • Create In-World Text(Players In Slot(0, Team 1), Custom String("FreePlay"), Global.Button[0], 2, Do Not Clip,
  • Visible To Position and String, White, Default Visibility);
  • Create Effect(Players In Slot(0, Team 1), Sphere, White, Global.Button[0], 1.250, Visible To Position and Radius);
  • "Button 1"
  • Create In-World Text(Players In Slot(0, Team 1), Custom String("Challange"), Global.Button[1], 2, Do Not Clip,
  • Visible To Position and String, White, Default Visibility);
  • Create Effect(Players In Slot(0, Team 1), Sphere, White, Global.Button[1], 1.250, Visible To Position and Radius);
  • "Button 2"
  • Create In-World Text(Players In Slot(0, Team 1), Custom String("Reaction"), Global.Button[2], 2, Do Not Clip,
  • Visible To Position and String, White, Default Visibility);
  • Create Effect(Players In Slot(0, Team 1), Sphere, White, Global.Button[2], 1.250, Visible To Position and Radius);
  • "Button 3"
  • Create In-World Text(Players In Slot(0, Team 1), Custom String("[Null]"), Global.Button[3], 2, Do Not Clip,
  • Visible To Position and String, White, Default Visibility);
  • Create Effect(Players In Slot(0, Team 1), Sphere, White, Global.Button[3], 1.250, Visible To Position and Radius);
  • }
  • }
  • rule("Menu 5 Text [sub5]")
  • {
  • event
  • {
  • Subroutine;
  • Menu5Text;
  • }
  • actions
  • {
  • "Button 0"
  • Create In-World Text(All Players(All Teams), Custom String("Ana"), Global.Button[0], 2, Do Not Clip,
  • Visible To Position and String, White, Default Visibility);
  • "Button 1"
  • Create In-World Text(All Players(All Teams), Custom String("Back"), Global.Button[1], 2, Do Not Clip,
  • Visible To Position and String, White, Default Visibility);
  • Create Effect(All Players(All Teams), Sphere, Orange, Global.Button[1], 1.250, Visible To Position and Radius);
  • "Button 2"
  • Create In-World Text(All Players(All Teams), Custom String("Zen"), Global.Button[2], 2, Do Not Clip,
  • Visible To Position and String, White, Default Visibility);
  • "Button 3"
  • Create In-World Text(All Players(All Teams), Custom String("McCree"), Global.Button[3], 2, Do Not Clip,
  • Visible To Position and String, White, Default Visibility);
  • "Button 4"
  • Create In-World Text(All Players(All Teams), Custom String("Widow"), Global.Button[4], 2, Do Not Clip,
  • Visible To Position and String, White, Default Visibility);
  • "Button 5"
  • Create In-World Text(All Players(All Teams), Custom String("Hanzo"), Global.Button[5], 2, Do Not Clip,
  • Visible To Position and String, White, Default Visibility);
  • "Confirmation Buttons"
  • If(Global.BotType == 0);
  • Create Effect(All Players(All Teams), Sphere, Green, Global.Button[0], 1.250, Visible To Position and Radius);
  • Create Effect(All Players(All Teams), Sphere, White, Global.Button[2], 1.250, Visible To Position and Radius);
  • Create Effect(All Players(All Teams), Sphere, White, Global.Button[3], 1.250, Visible To Position and Radius);
  • Create Effect(All Players(All Teams), Sphere, White, Global.Button[4], 1.250, Visible To Position and Radius);
  • Create Effect(All Players(All Teams), Sphere, White, Global.Button[5], 1.250, Visible To Position and Radius);
  • Else If(Global.BotType == 1);
  • Create Effect(All Players(All Teams), Sphere, White, Global.Button[0], 1.250, Visible To Position and Radius);
  • Create Effect(All Players(All Teams), Sphere, Green, Global.Button[2], 1.250, Visible To Position and Radius);
  • Create Effect(All Players(All Teams), Sphere, White, Global.Button[3], 1.250, Visible To Position and Radius);
  • Create Effect(All Players(All Teams), Sphere, White, Global.Button[4], 1.250, Visible To Position and Radius);
  • Create Effect(All Players(All Teams), Sphere, White, Global.Button[5], 1.250, Visible To Position and Radius);
  • Else If(Global.BotType == 2);
  • Create Effect(All Players(All Teams), Sphere, White, Global.Button[0], 1.250, Visible To Position and Radius);
  • Create Effect(All Players(All Teams), Sphere, White, Global.Button[2], 1.250, Visible To Position and Radius);
  • Create Effect(All Players(All Teams), Sphere, Green, Global.Button[3], 1.250, Visible To Position and Radius);
  • Create Effect(All Players(All Teams), Sphere, White, Global.Button[4], 1.250, Visible To Position and Radius);
  • Create Effect(All Players(All Teams), Sphere, White, Global.Button[5], 1.250, Visible To Position and Radius);
  • Else If(Global.BotType == 3);
  • Create Effect(All Players(All Teams), Sphere, White, Global.Button[0], 1.250, Visible To Position and Radius);
  • Create Effect(All Players(All Teams), Sphere, White, Global.Button[2], 1.250, Visible To Position and Radius);
  • Create Effect(All Players(All Teams), Sphere, White, Global.Button[3], 1.250, Visible To Position and Radius);
  • Create Effect(All Players(All Teams), Sphere, Green, Global.Button[4], 1.250, Visible To Position and Radius);
  • Create Effect(All Players(All Teams), Sphere, White, Global.Button[5], 1.250, Visible To Position and Radius);
  • Else If(Global.BotType == 4);
  • Create Effect(All Players(All Teams), Sphere, White, Global.Button[0], 1.250, Visible To Position and Radius);
  • Create Effect(All Players(All Teams), Sphere, White, Global.Button[2], 1.250, Visible To Position and Radius);
  • Create Effect(All Players(All Teams), Sphere, White, Global.Button[3], 1.250, Visible To Position and Radius);
  • Create Effect(All Players(All Teams), Sphere, White, Global.Button[4], 1.250, Visible To Position and Radius);
  • Create Effect(All Players(All Teams), Sphere, Green, Global.Button[5], 1.250, Visible To Position and Radius);
  • End;
  • }
  • }
  • rule("ClearWorldEffects [sub6]")
  • {
  • event
  • {
  • Subroutine;
  • ClearWorldEffects;
  • }
  • actions
  • {
  • Destroy All In-World Text;
  • Destroy All Effects;
  • Wait(0.050, Ignore Condition);
  • }
  • }
  • rule("SpawnBots [sub7]")
  • {
  • event
  • {
  • Subroutine;
  • SpawnBots;
  • }
  • actions
  • {
  • Create Dummy Bot(Global.BotTypeList[Global.BotType], Team 2, 0, Vector(Random Integer(-15, 15), 0, Random Integer(-15, 15)),
  • Host Player);
  • Wait(0.050, Ignore Condition);
  • Create Dummy Bot(Global.BotTypeList[Global.BotType], Team 2, 1, Vector(Random Integer(-15, 15), 0, Random Integer(-15, 15)),
  • Host Player);
  • Wait(0.050, Ignore Condition);
  • Create Dummy Bot(Global.BotTypeList[Global.BotType], Team 2, 2, Vector(Random Integer(-15, 15), 0, Random Integer(-15, 15)),
  • Host Player);
  • Wait(0.050, Ignore Condition);
  • Create Dummy Bot(Global.BotTypeList[Global.BotType], Team 2, 3, Vector(Random Integer(-15, 15), 0, Random Integer(-15, 15)),
  • Host Player);
  • Wait(0.050, Ignore Condition);
  • Create Dummy Bot(Global.BotTypeList[Global.BotType], Team 2, 5, Vector(Random Integer(-15, 15), 0, Random Integer(-15, 15)),
  • Host Player);
  • Wait(0.050, Ignore Condition);
  • Create Dummy Bot(Global.BotTypeList[Global.BotType], Team 2, 4, Vector(Random Integer(-15, 15), 0, Random Integer(-15, 15)),
  • Host Player);
  • Wait(0.050, Ignore Condition);
  • }
  • }
  • rule("Set Ultimate")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Slot 0;
  • }
  • conditions
  • {
  • Ultimate Charge Percent(Event Player) == 0;
  • }
  • actions
  • {
  • Set Ultimate Charge(Event Player, 100);
  • }
  • }
  • rule("Respawn Bot 1")
  • {
  • event
  • {
  • Player Died;
  • Team 2;
  • Slot 0;
  • }
  • actions
  • {
  • Wait(0.250, Ignore Condition);
  • Destroy Dummy Bot(Team 2, 0);
  • If(Global.TurnMode == True);
  • Create Dummy Bot(Global.BotTypeList[Global.BotType], Team 2, 0, Vector(0.500, 0, 0), Host Player);
  • Else If(Global.GameMode == 1);
  • Create Dummy Bot(Global.BotTypeList[Global.BotType], Team 2, 0, Vector(Random Integer(7.500, -7.500), 0, Random Integer(7.500,
  • -7.500)), Host Player);
  • End;
  • }
  • }
  • rule("Respawn Bot 2")
  • {
  • event
  • {
  • Player Died;
  • Team 2;
  • Slot 1;
  • }
  • actions
  • {
  • Wait(0.250, Ignore Condition);
  • Destroy Dummy Bot(Team 2, 1);
  • If(Global.TurnMode == True);
  • Create Dummy Bot(Global.BotTypeList[Global.BotType], Team 2, 1, Vector(-0.500, 0, 0), Host Player);
  • Else If(Global.GameMode == 1);
  • Create Dummy Bot(Global.BotTypeList[Global.BotType], Team 2, 1, Vector(Random Integer(7.500, -7.500), 0, Random Integer(7.500,
  • -7.500)), Host Player);
  • End;
  • }
  • }
  • rule("Respawn Bot 3")
  • {
  • event
  • {
  • Player Died;
  • Team 2;
  • Slot 2;
  • }
  • actions
  • {
  • Wait(0.250, Ignore Condition);
  • Destroy Dummy Bot(Team 2, 2);
  • If(Global.TurnMode == True);
  • Create Dummy Bot(Global.BotTypeList[Global.BotType], Team 2, 2, Vector(0, 0, 0.500), Host Player);
  • Else If(Global.GameMode == 1);
  • Create Dummy Bot(Global.BotTypeList[Global.BotType], Team 2, 2, Vector(Random Integer(-15, 15), 0, Random Integer(-15, 15)),
  • Host Player);
  • End;
  • }
  • }
  • rule("Respawn Bot 4")
  • {
  • event
  • {
  • Player Died;
  • Team 2;
  • Slot 3;
  • }
  • actions
  • {
  • Wait(0.250, Ignore Condition);
  • Destroy Dummy Bot(Team 2, 3);
  • If(Global.TurnMode == True);
  • Create Dummy Bot(Global.BotTypeList[Global.BotType], Team 2, 3, Vector(0, 0, -0.500), Host Player);
  • Else If(Global.GameMode == 1);
  • Create Dummy Bot(Global.BotTypeList[Global.BotType], Team 2, 3, Vector(Random Integer(-15, 15), 0, Random Integer(-15, 15)),
  • Host Player);
  • End;
  • }
  • }
  • rule("Respawn Bot 5")
  • {
  • event
  • {
  • Player Died;
  • Team 2;
  • Slot 4;
  • }
  • actions
  • {
  • Wait(0.250, Ignore Condition);
  • Destroy Dummy Bot(Team 2, 4);
  • If(Global.GameMode == 1);
  • Create Dummy Bot(Global.BotTypeList[Global.BotType], Team 2, 4, Vector(Random Integer(-15, 15), 0, Random Integer(-15, 15)),
  • Host Player);
  • End;
  • }
  • }
  • rule("Respawn Bot 6")
  • {
  • event
  • {
  • Player Died;
  • Team 2;
  • Slot 5;
  • }
  • actions
  • {
  • Wait(0.250, Ignore Condition);
  • Destroy Dummy Bot(Team 2, 5);
  • If(Global.GameMode == 1);
  • Create Dummy Bot(Global.BotTypeList[Global.BotType], Team 2, 5, Vector(Random Integer(-15, 15), 0, Random Integer(-15, 15)),
  • Host Player);
  • End;
  • }
  • }
  • rule("Strafe Loop (not mine)")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 2;
  • All;
  • }
  • conditions
  • {
  • Global.StrafeMode == True;
  • }
  • actions
  • {
  • Set Facing(Event Player, Vector(Random Integer(-20, 20), 0, Random Integer(-20, 20)), To World);
  • Start Throttle In Direction(Event Player, Left, 1, To Player, Replace existing throttle, Direction and Magnitude);
  • Wait(Random Real(0.500, 1.500), Ignore Condition);
  • Stop Throttle In Direction(Event Player);
  • Wait(0.500, Ignore Condition);
  • Start Throttle In Direction(Event Player, Right, 1, To Player, Replace existing throttle, Direction and Magnitude);
  • Wait(Random Real(0.500, 1.500), Ignore Condition);
  • Stop Throttle In Direction(Event Player);
  • Wait(0.500, Ignore Condition);
  • Loop If Condition Is True;
  • }
  • }
Join the Workshop.codes Discord