Create
Return to post

Comparing difference between and

View raw
  • settings
  • {
  • main
  • {
  • Description: "Dealing damage creates a small sphere, this can be used to confirm the size of hitboxes. R - Remove all dots created by dealing damage. F - Change the 2 leftmost bots, useful for comparing hitbox sizes."
  • }
  • lobby
  • {
  • Max Team 1 Players: 4
  • Max Team 2 Players: 8
  • }
  • modes
  • {
  • Assault
  • {
  • Limit Roles: 2 Of Each Role Per Team
  • enabled maps
  • {
  • }
  • }
  • Control
  • {
  • Limit Roles: 2 Of Each Role Per Team
  • enabled maps
  • {
  • }
  • }
  • Escort
  • {
  • Limit Roles: 2 Of Each Role Per Team
  • enabled maps
  • {
  • }
  • }
  • Hybrid
  • {
  • Limit Roles: 2 Of Each Role Per Team
  • enabled maps
  • {
  • }
  • }
  • Skirmish
  • {
  • enabled maps
  • {
  • Workshop Chamber
  • }
  • }
  • }
  • heroes
  • {
  • General
  • {
  • Moira
  • {
  • Biotic Orb Cooldown Time: 70%
  • }
  • }
  • }
  • }
  • variables
  • {
  • global:
  • 0: bot
  • 1: bot2
  • 2: bot3
  • 3: damagePos
  • 5: bot4
  • 7: bot5
  • 8: bot6
  • 9: bot7
  • 10: smallHitbox
  • 11: bigHitbox
  • 12: lastText
  • 1: smallHitbox
  • 2: bigHitbox
  • 3: lastText
  • player:
  • 0: currentHero
  • 1: entities
  • 2: healEntities
  • 3: beamEntities
  • 5: RayCast
  • 6: angle
  • 7: heals
  • 8: H0
  • 9: H1
  • 10: H2
  • 11: H3
  • 12: H4
  • 13: H5
  • 14: H6
  • 15: H7
  • 16: H8
  • 18: circleEntityHealing
  • 20: circleEntityDamage
  • }
  • subroutines
  • {
  • 0: Highlight
  • 1: CreateUltBeams
  • 2: DestroyUltBeams
  • 3: DestroyDots
  • 4: DestroyHealEffects
  • }
  • rule("init")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • actions
  • {
  • Global.damagePos = Empty Array;
  • Create HUD Text(All Players(All Teams), Custom String("Hero {0} - {1}", Host Player.A + 1, All Heroes[Host Player.A]),
  • Custom String("The green text highlights the active hitbox."), Custom String("{0} Press F to change the active hero.",
  • Icon String(Arrow: Left)), Left, 0, White, Green, White, Visible To and String, Default Visibility);
  • Create HUD Text(All Players(All Teams), Custom String(""), Null, Custom String("Press R to remove dots (from damage done)"), Left,
  • 0, Color(White), Color(White), Color(White), Visible To and String, Default Visibility);
  • Create HUD Text(All Players(All Teams), Custom String("Hero {0} - {1}", Host Player.currentHero + 1,
  • All Heroes[Host Player.currentHero]), Custom String("The green text highlights the active hitbox."), Custom String(
  • "{0} Press F to change the active hero.", Icon String(Arrow: Left)), Left, 0, Color(White), Color(Green), Color(White),
  • Visible To and String, Default Visibility);
  • Global.smallHitbox = Empty Array;
  • Global.bigHitbox = Empty Array;
  • Global.smallHitbox = Array(Hero(Reaper), Hero(Tracer), Hero(Mercy), Hero(Hanzo), Hero(Pharah), Hero(Widowmaker), Hero(Symmetra),
  • Hero(Zenyatta), Hero(Genji), Hero(McCree), Hero(Junkrat), Hero(Zarya), Hero(Soldier: 76), Hero(Lúcio), Hero(Mei), Hero(Sombra),
  • Hero(Ana), Hero(Brigitte), Hero(Moira), Hero(Ashe), Hero(Echo), Hero(Baptiste));
  • Global.bigHitbox = Array(Hero(Reinhardt), Hero(Bastion), Hero(Roadhog), Hero(Doomfist), Hero(Orisa));
  • Global.bot = Empty Array;
  • Wait(1, Ignore Condition);
  • Start Forcing Player To Be Hero(Host Player, Hero(Moira));
  • Wait(1, Ignore Condition);
  • Start Forcing Player To Be Hero(Host Player, Hero(Moira));
  • Create In-World Text(All Players(All Teams), Custom String(
  • "Normal character hitbox is used by:\r\n{0} Biotic Grasp (Primary fire - Healing) \r\n{1} Biotic Orb (Ability 2 - Damage and healing)",
  • Ability Icon String(Hero(Moira), Button(Primary Fire)), Ability Icon String(Hero(Moira), Button(Ability 2))), Vector(-10, 12,
  • -20), 1.500, Do Not Clip, Visible To Position and String, Custom Color(120, 242, 242, 255), Default Visibility);
  • Create In-World Text(All Players(All Teams), Custom String(
  • "'Capsule' shaped hitbox is used by:\r\n{0} Biotic Grasp (Secondary fire - Damage)\r\n{1} Coalescence (Ultimate - Damage and healing)",
  • Ability Icon String(Hero(Moira), Button(Secondary Fire)), Ability Icon String(Hero(Moira), Button(Ultimate))), Vector(10, 12,
  • -20), 1.500, Do Not Clip, Visible To Position and String, Custom Color(250, 85, 85, 250), Default Visibility);
  • }
  • }
  • rule("player init")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is Dummy Bot(Event Player) == False;
  • Has Spawned(Event Player) == True;
  • }
  • actions
  • {
  • Event Player.entities = Empty Array;
  • Teleport(Event Player, Vector(8, 1, -5));
  • Set Facing(Event Player, Direction Towards(Eye Position(Event Player), Vector(19.495, 3, -5)), To World);
  • Set Status(Event Player, Null, Phased Out, 9999);
  • Set Ultimate Charge(Event Player, 100);
  • Chase Player Variable At Rate(Event Player, angle, 100000000, 720, Destination and Rate);
  • }
  • }
  • rule("Dealt damage")
  • {
  • event
  • {
  • Player Dealt Damage;
  • All;
  • All;
  • }
  • actions
  • {
  • Heal(Victim, Null, Event Damage);
  • If(Event Ability == Button(Ability 2));
  • Abort;
  • End;
  • Event Player.T = Distance Between(Eye Position(Event Player), Eye Position(Victim)) / Cosine From Degrees(Angle Between Vectors(
  • Vector Towards(Eye Position(Event Player), Eye Position(Victim)), Facing Direction Of(Event Player)));
  • Event Player.R = Ray Cast Hit Position(Eye Position(Event Player), Eye Position(Event Player) + Facing Direction Of(Event Player)
  • * 200, All Players(All Teams), Event Player, True);
  • Create Effect(All Players(All Teams), Sphere, Orange, Event Player.R, 0.020, None);
  • * Event Player.T, All Players(All Teams), Event Player, True);
  • If(Count Of(Event Player.entities) >= 85);
  • Destroy Effect(First Of(Event Player.entities));
  • Modify Player Variable(Event Player, entities, Remove From Array By Index, 0);
  • End;
  • Create Effect(All Players(All Teams), Sphere, Color(Orange), Event Player.R, 0.020, None);
  • Modify Player Variable(Event Player, entities, Append To Array, Last Created Entity);
  • Wait(0.144, Ignore Condition);
  • If(Is Using Ultimate(Event Player));
  • Play Effect(All Players(All Teams), Bad Explosion, Color(White), Event Player.R, 0.100);
  • End;
  • }
  • }
  • rule("Primary fire")
  • rule("Dealt healing")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Player Dealt Healing;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is Button Held(Event Player, Primary Fire) == True;
  • }
  • actions
  • {
  • Event Player.R = Ray Cast Hit Position(Eye Position(Event Player), Eye Position(Event Player) + Facing Direction Of(Event Player)
  • * 200, All Players(All Teams), Event Player, True);
  • Modify Global Variable(damagePos, Append To Array, Event Player.R);
  • Damage(Healee, Null, Event Healing);
  • If(Is Using Ultimate(Event Player));
  • Event Player.R = Ray Cast Hit Position(Eye Position(Event Player), Eye Position(Event Player) + Facing Direction Of(Event Player)
  • * 200, All Players(All Teams), Event Player, True);
  • Play Effect(All Players(All Teams), Bad Explosion, Color(Lime Green), Event Player.R, 0.100);
  • End;
  • }
  • }
  • rule("Reload (destroy effects)")
  • rule("Reload (destroy dots)")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is Button Held(Event Player, Reload) == True;
  • Is Button Held(Event Player, Button(Reload)) == True;
  • }
  • actions
  • {
  • For Player Variable(Event Player, C, 0, Count Of(Event Player.entities), 1);
  • Destroy Effect(Event Player.entities[Event Player.C]);
  • Wait(0.016, Ignore Condition);
  • Call Subroutine(DestroyDots);
  • }
  • }
  • rule("[sub] destroy dots")
  • {
  • event
  • {
  • Subroutine;
  • DestroyDots;
  • }
  • actions
  • {
  • For Player Variable(Event Player, W, 0, Count Of(Event Player.entities), 1);
  • Destroy Effect(Event Player.entities[Event Player.W]);
  • End;
  • Event Player.entities = Empty Array;
  • }
  • }
  • rule("F (change bot hero)")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is Button Held(Event Player, Interact) == True;
  • Is Button Held(Event Player, Button(Interact)) == True;
  • }
  • actions
  • {
  • If(Event Player.A >= 31);
  • Event Player.A = 0;
  • If(Event Player.currentHero >= 31);
  • Event Player.currentHero = 0;
  • Else;
  • Event Player.A += 1;
  • Event Player.currentHero += 1;
  • End;
  • Start Forcing Player To Be Hero(Global.bot[0], All Heroes[Event Player.currentHero]);
  • Start Forcing Player To Be Hero(Global.bot[1], All Heroes[Event Player.currentHero]);
  • If(All Heroes[Event Player.currentHero] == Hero(Winston));
  • Start Forcing Player To Be Hero(Global.bot[5], Hero(Winston));
  • Else If(All Heroes[Event Player.currentHero] == Hero(Sigma));
  • Start Forcing Player To Be Hero(Global.bot[5], Hero(Sigma));
  • End;
  • Start Forcing Player To Be Hero(Global.bot, All Heroes[Event Player.A]);
  • Teleport(Global.bot, Vector(19.495, 1, -10));
  • Start Forcing Player To Be Hero(Global.bot2, All Heroes[Event Player.A]);
  • Teleport(Global.bot2, Vector(19.495, 1, -5));
  • Call Subroutine(Highlight);
  • Wait(0.400, Ignore Condition);
  • }
  • }
  • rule("Big hitbox")
  • rule("[sub] highlight bot")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • Subroutine;
  • Highlight;
  • }
  • conditions
  • actions
  • {
  • Has Spawned(Host Player) == True;
  • Is Dummy Bot(Event Player) == False;
  • Destroy In-World Text(Global.lastText);
  • If(Array Contains(Global.smallHitbox, All Heroes[Host Player.currentHero]));
  • Create In-World Text(All Players(All Teams), Custom String("2m x 3m"), Vector(20, 3.800, -5), 1.500, Do Not Clip,
  • Visible To Position and String, Color(Green), Default Visibility);
  • Else If(Array Contains(Global.bigHitbox, All Heroes[Host Player.currentHero]));
  • Create In-World Text(All Players(All Teams), Custom String("2.4m x 3.3m"), Vector(20, 3.800, -10), 1.500, Do Not Clip,
  • Visible To Position and String, Color(Green), Default Visibility);
  • Else If(All Heroes[Host Player.currentHero] == Hero(Torbjörn));
  • Create In-World Text(All Players(All Teams), Custom String("2m x 2.55m"), Vector(20, 3.800, 0), 1.500, Do Not Clip,
  • Visible To Position and String, Color(Green), Default Visibility);
  • Else If(All Heroes[Host Player.currentHero] == Hero(Wrecking Ball));
  • Create In-World Text(All Players(All Teams), Custom String("3m x 3m"), Vector(20, 3.800, 5), 1.500, Do Not Clip,
  • Visible To Position and String, Color(Green), Default Visibility);
  • Else If(All Heroes[Host Player.currentHero] == Hero(D.Va));
  • Create In-World Text(All Players(All Teams), Custom String("2.4m x 3m"), Vector(20, 3.800, 10), 1.500, Do Not Clip,
  • Visible To Position and String, Color(Green), Default Visibility);
  • Else If(All Heroes[Host Player.currentHero] == Hero(Sigma));
  • Create In-World Text(All Players(All Teams), Custom String("2.4m x 3.5m"), Vector(20, 4.200, 15), 1.500, Do Not Clip,
  • Visible To Position and String, Color(Green), Default Visibility);
  • Else If(All Heroes[Host Player.currentHero] == Hero(Winston));
  • Create In-World Text(All Players(All Teams), Custom String("2.4m x 3.5m"), Vector(20, 4.200, 15), 1.500, Do Not Clip,
  • Visible To Position and String, Color(Green), Default Visibility);
  • End;
  • Global.lastText = Last Text ID;
  • }
  • }
  • rule("create Big hitbox bot")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • actions
  • {
  • Create Dummy Bot(All Heroes[0], All Teams, -1, Vector(19.495, 1.700, -10), Direction Towards(Vector(19.495, 1.700, 0), Vector(0, 0,
  • 0)));
  • Global.bot = Last Created Entity;
  • Set Gravity(Global.bot, Absolute Value(0));
  • Wait(1, Ignore Condition);
  • Set Status(Global.bot, Null, Unkillable, 9999);
  • Teleport(Global.bot, Vector(19.495, 1, -10));
  • Create Dummy Bot(First Of(All Heroes), Team 2, -1, Vector(19.495, 0, -10), Vector(-0.996, -0.087, 0));
  • Modify Global Variable(bot, Append To Array, Last Created Entity);
  • Set Gravity(Global.bot[0], 0);
  • Wait(0.500, Ignore Condition);
  • Create Effect(All Players(All Teams), Sphere, Red, Position Of(Global.bot) + Vector(0, 1.600, 0), 1.200,
  • Set Status(Global.bot[0], Null, Unkillable, 9999);
  • Start Forcing Player Position(Global.bot[0], Vector(19.495, 0.900, -10), False);
  • Wait(0.500, Ignore Condition);
  • Create Effect(All Players(All Teams), Sphere, Color(Red), Position Of(Global.bot[0]) + Vector(0, 1.600, 0), 1.200,
  • Visible To Position and Radius);
  • Create Effect(All Players(All Teams), Sphere, Red, Position Of(Global.bot) + Vector(0, 1.300, 0), 1.200,
  • Create Effect(All Players(All Teams), Sphere, Color(Red), Position Of(Global.bot[0]) + Vector(0, 1.300, 0), 1.200,
  • Visible To Position and Radius);
  • Create Effect(All Players(All Teams), Sphere, Red, Position Of(Global.bot) + Vector(0, 1, 0), 1.200,
  • Create Effect(All Players(All Teams), Sphere, Color(Red), Position Of(Global.bot[0]) + Vector(0, 1, 0), 1.200,
  • Visible To Position and Radius);
  • Create Effect(All Players(All Teams), Sphere, Red, Position Of(Global.bot) + Vector(0, 0.700, 0), 1.200,
  • Create Effect(All Players(All Teams), Sphere, Color(Red), Position Of(Global.bot[0]) + Vector(0, 0.700, 0), 1.200,
  • Visible To Position and Radius);
  • Create In-World Text(All Players(All Teams), Custom String("2.4m x 3.3m"), Vector(20, 4, -10), 1.500, Do Not Clip,
  • Visible To Position and String, White, Default Visibility);
  • Create In-World Text(All Players(All Teams), Custom String("2.4m x 3.3m"), Vector(20, 3.800, -10), 1.500, Do Not Clip,
  • Visible To Position and String, Color(White), Default Visibility);
  • }
  • }
  • rule("Small hitbox")
  • rule("create Small hitbox bot")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Has Spawned(Host Player) == True;
  • Is Dummy Bot(Event Player) == False;
  • Ongoing - Global;
  • }
  • actions
  • {
  • Create Dummy Bot(All Heroes[0], All Teams, -1, Vector(19.495, 1.700, -5), Direction Towards(Vector(19.495, 1.700, 0), Vector(0, 0,
  • 0)));
  • Global.bot2 = Last Created Entity;
  • Set Gravity(Global.bot2, Absolute Value(0));
  • Wait(1, Ignore Condition);
  • Set Status(Global.bot2, Null, Unkillable, 9999);
  • Teleport(Global.bot2, Vector(19.495, 1, -5));
  • Create Dummy Bot(First Of(All Heroes), Team 2, -1, Vector(19.495, 0, -5), Vector(-0.996, -0.087, 0));
  • Modify Global Variable(bot, Append To Array, Last Created Entity);
  • Set Gravity(Global.bot[1], 0);
  • Wait(0.500, Ignore Condition);
  • Set Status(Global.bot[1], Null, Unkillable, 9999);
  • Start Forcing Player Position(Global.bot[1], Vector(19.495, 0.900, -5), False);
  • Wait(0.500, Ignore Condition);
  • Create Effect(All Players(All Teams), Sphere, Red, Position Of(Global.bot2) + Vector(0, 1.500, 0), 1,
  • Create Effect(All Players(All Teams), Sphere, Color(Red), Position Of(Global.bot[1]) + Vector(0, 1.500, 0), 1,
  • Visible To Position and Radius);
  • Create Effect(All Players(All Teams), Sphere, Red, Position Of(Global.bot2) + Vector(0, 1.200, 0), 1,
  • Create Effect(All Players(All Teams), Sphere, Color(Red), Position Of(Global.bot[1]) + Vector(0, 1.200, 0), 1,
  • Visible To Position and Radius);
  • Create Effect(All Players(All Teams), Sphere, Red, Position Of(Global.bot2) + Vector(0, 0.900, 0), 1,
  • Create Effect(All Players(All Teams), Sphere, Color(Red), Position Of(Global.bot[1]) + Vector(0, 0.900, 0), 1,
  • Visible To Position and Radius);
  • Create Effect(All Players(All Teams), Sphere, Red, Position Of(Global.bot2) + Vector(0, 0.500, 0), 1,
  • Create Effect(All Players(All Teams), Sphere, Color(Red), Position Of(Global.bot[1]) + Vector(0, 0.500, 0), 1,
  • Visible To Position and Radius);
  • Create In-World Text(All Players(All Teams), Custom String("2m x 3m"), Vector(20, 4, -5), 1.500, Do Not Clip,
  • Visible To Position and String, White, Default Visibility);
  • Create In-World Text(All Players(All Teams), Custom String("2m x 3m"), Vector(20, 3.800, -5), 1.500, Do Not Clip,
  • Visible To Position and String, Color(White), Default Visibility);
  • Call Subroutine(Highlight);
  • }
  • }
  • rule("create torb bot")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • Ongoing - Global;
  • }
  • conditions
  • actions
  • {
  • Has Spawned(Host Player) == True;
  • Is Dummy Bot(Event Player) == False;
  • Wait(1, Ignore Condition);
  • Create Dummy Bot(Hero(Torbjörn), Team 2, -1, Vector(19.495, 0, 0), Vector(-0.996, -0.087, 0));
  • Modify Global Variable(bot, Append To Array, Last Created Entity);
  • Set Gravity(Global.bot[2], 0);
  • Wait(0.500, Ignore Condition);
  • Set Status(Global.bot[2], Null, Unkillable, 9999);
  • Start Forcing Player Position(Global.bot[2], Vector(19.495, 0.900, 0), False);
  • Wait(0.500, Ignore Condition);
  • Create Effect(All Players(All Teams), Sphere, Color(Blue), Position Of(Global.bot[2]) + Vector(0, 1.500, 0), 1,
  • Visible To Position and Radius);
  • Create Effect(All Players(All Teams), Sphere, Color(Red), Position Of(Global.bot[2]) + Vector(0, 1.050, 0), 1,
  • Visible To Position and Radius);
  • Create Effect(All Players(All Teams), Sphere, Color(Red), Position Of(Global.bot[2]) + Vector(0, 0.850, 0), 1,
  • Visible To Position and Radius);
  • Create Effect(All Players(All Teams), Sphere, Color(Red), Position Of(Global.bot[2]) + Vector(0, 0.500, 0), 1,
  • Visible To Position and Radius);
  • Create In-World Text(All Players(All Teams), Custom String("2m x 2.55m"), Vector(20, 3.800, 0), 1.500, Do Not Clip,
  • Visible To Position and String, Color(White), Default Visibility);
  • }
  • }
  • rule("create hammond bot")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • actions
  • {
  • Create Dummy Bot(Hero(Torbjörn), All Teams, -1, Vector(19.495, 1.700, 0), Direction Towards(Vector(19.495, 1.700, 0), Vector(0, 0,
  • 0)));
  • Global.bot3 = Last Created Entity;
  • Set Gravity(Global.bot3, Absolute Value(0));
  • Wait(1, Ignore Condition);
  • Set Status(Global.bot3, Null, Unkillable, 9999);
  • Teleport(Global.bot3, Vector(19.495, 1, 0));
  • Create Dummy Bot(Hero(Wrecking Ball), Team 2, -1, Vector(19.495, 0, 5), Vector(-0.996, -0.087, 0));
  • Modify Global Variable(bot, Append To Array, Last Created Entity);
  • Set Gravity(Global.bot[3], 0);
  • Wait(0.500, Ignore Condition);
  • Set Status(Global.bot[3], Null, Unkillable, 9999);
  • Start Forcing Player Position(Global.bot[3], Vector(19.495, 0.900, 5), False);
  • Wait(0.500, Ignore Condition);
  • Create Effect(All Players(All Teams), Sphere, Blue, Position Of(Global.bot3) + Vector(0, 1.500, 0), 1,
  • Create Effect(All Players(All Teams), Sphere, Color(Red), Global.bot[3], 1.500, Visible To Position and Radius);
  • Create Effect(All Players(All Teams), Sphere, Color(Blue), Position Of(Global.bot[3]) + Vector(0, 1.600, 0), 1.200,
  • Visible To Position and Radius);
  • Create Effect(All Players(All Teams), Sphere, Red, Position Of(Global.bot3) + Vector(0, 1.050, 0), 1,
  • Create Effect(All Players(All Teams), Sphere, Color(Blue), Position Of(Global.bot[3]) + Vector(0, 1.300, 0), 1.200,
  • Visible To Position and Radius);
  • Create Effect(All Players(All Teams), Sphere, Red, Position Of(Global.bot3) + Vector(0, 0.850, 0), 1,
  • Create Effect(All Players(All Teams), Sphere, Color(Blue), Position Of(Global.bot[3]) + Vector(0, 1, 0), 1.200,
  • Visible To Position and Radius);
  • Create Effect(All Players(All Teams), Sphere, Red, Position Of(Global.bot3) + Vector(0, 0.500, 0), 1,
  • Create Effect(All Players(All Teams), Sphere, Color(Blue), Position Of(Global.bot[3]) + Vector(0, 0.750, 0), 1.200,
  • Visible To Position and Radius);
  • Create In-World Text(All Players(All Teams), Custom String("2m x 2.55m"), Vector(20, 4, 0), 1.500, Do Not Clip,
  • Visible To Position and String, White, Default Visibility);
  • Create In-World Text(All Players(All Teams), Custom String("3m x 3m"), Vector(20, 3.800, 5), 1.500, Do Not Clip,
  • Visible To Position and String, Color(White), Default Visibility);
  • }
  • }
  • rule("create hammond bot")
  • rule("create D.va bot")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • Ongoing - Global;
  • }
  • conditions
  • actions
  • {
  • Has Spawned(Host Player) == True;
  • Is Dummy Bot(Event Player) == False;
  • Wait(1, Ignore Condition);
  • Create Dummy Bot(Hero(D.Va), Team 2, -1, Vector(19.495, 0, 10), Vector(-0.996, -0.087, 0));
  • Modify Global Variable(bot, Append To Array, Last Created Entity);
  • Set Gravity(Global.bot[4], 0);
  • Wait(0.500, Ignore Condition);
  • Set Status(Global.bot[4], Null, Unkillable, 9999);
  • Start Forcing Player Position(Global.bot[4], Vector(19.495, 0.900, 10), False);
  • Wait(0.500, Ignore Condition);
  • Create Effect(All Players(All Teams), Sphere, Color(Blue), Position Of(Global.bot[4]) + Vector(0, 1.600, 0), 1.200,
  • Visible To Position and Radius);
  • Create Effect(All Players(All Teams), Sphere, Color(Red), Position Of(Global.bot[4]) + Vector(0, 1.300, 0), 1.200,
  • Visible To Position and Radius);
  • Create Effect(All Players(All Teams), Sphere, Color(Red), Position Of(Global.bot[4]) + Vector(0, 1, 0), 1.200,
  • Visible To Position and Radius);
  • Create Effect(All Players(All Teams), Sphere, Color(Red), Position Of(Global.bot[4]) + Vector(0, 0.700, 0), 1.200,
  • Visible To Position and Radius);
  • Create In-World Text(All Players(All Teams), Custom String("2.4m x 3m"), Vector(20, 3.800, 10), 1.500, Do Not Clip,
  • Visible To Position and String, Color(White), Default Visibility);
  • }
  • }
  • rule("create sigma/winston bot")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • actions
  • {
  • Create Dummy Bot(Hero(Wrecking Ball), All Teams, -1, Vector(19.495, 1.700, 5), Direction Towards(Vector(19.495, 1.700, 0), Vector(
  • 0, 0, 0)));
  • Global.bot4 = Last Created Entity;
  • Set Gravity(Global.bot4, Absolute Value(0));
  • Wait(1, Ignore Condition);
  • Set Status(Global.bot4, Null, Unkillable, 9999);
  • Teleport(Global.bot4, Vector(19.495, 1, 5));
  • Create Dummy Bot(Hero(Sigma), Team 2, -1, Vector(19.495, 0, 15), Vector(-0.996, -0.087, 0));
  • Modify Global Variable(bot, Append To Array, Last Created Entity);
  • Set Gravity(Global.bot[5], 0);
  • Wait(1, Ignore Condition);
  • Set Status(Global.bot[5], Null, Unkillable, 9999);
  • Start Forcing Player Position(Global.bot[5], Vector(19.495, 0.900, 15), False);
  • Wait(0.500, Ignore Condition);
  • Create Effect(All Players(All Teams), Sphere, Red, Global.bot4, 1.500, Visible To Position and Radius);
  • Create Effect(All Players(All Teams), Sphere, Blue, Position Of(Global.bot4) + Vector(0, 1.600, 0), 1.200,
  • Create Effect(All Players(All Teams), Sphere, Color(Blue), Position Of(Global.bot[5]) + Vector(0, 1.600, 0), 1.200,
  • Visible To Position and Radius);
  • Create Effect(All Players(All Teams), Sphere, Blue, Position Of(Global.bot4) + Vector(0, 1.300, 0), 1.200,
  • Create Effect(All Players(All Teams), Sphere, Color(Red), Position Of(Global.bot[5]) + Vector(0, 1.800, 0), 1.200,
  • Visible To Position and Radius);
  • Create Effect(All Players(All Teams), Sphere, Blue, Position Of(Global.bot4) + Vector(0, 1, 0), 1.200,
  • Create Effect(All Players(All Teams), Sphere, Color(Red), Position Of(Global.bot[5]) + Vector(0, 1.300, 0), 1.200,
  • Visible To Position and Radius);
  • Create Effect(All Players(All Teams), Sphere, Blue, Position Of(Global.bot4) + Vector(0, 0.750, 0), 1.200,
  • Create Effect(All Players(All Teams), Sphere, Color(Red), Position Of(Global.bot[5]) + Vector(0, 1, 0), 1.200,
  • Visible To Position and Radius);
  • Create In-World Text(All Players(All Teams), Custom String("3m x 3m"), Vector(20, 4, 5), 1.500, Do Not Clip,
  • Visible To Position and String, White, Default Visibility);
  • Create Effect(All Players(All Teams), Sphere, Color(Red), Position Of(Global.bot[5]) + Vector(0, 0.700, 0), 1.200,
  • Visible To Position and Radius);
  • Create In-World Text(All Players(All Teams), Custom String("2.4m x 3.5m"), Vector(20, 4.200, 15), 1.500, Do Not Clip,
  • Visible To Position and String, Color(White), Default Visibility);
  • Create In-World Text(All Players(All Teams), Custom String("Winston / Sigma"), Vector(20, 4, 15), 0.700, Do Not Clip,
  • Visible To Position and String, Color(White), Default Visibility);
  • }
  • }
  • rule("create D.va bot")
  • rule("create friendly ana bot")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • actions
  • {
  • Wait(2, Ignore Condition);
  • Create Dummy Bot(Hero(Ana), Team 1, -1, Vector(-19.495, 1, 0), Vector(1, -0.087, 0));
  • Modify Global Variable(bot, Append To Array, Last Created Entity);
  • Set Gravity(Global.bot[6], 0);
  • Wait(0.500, Ignore Condition);
  • Set Status(Global.bot[6], Null, Unkillable, 9999);
  • Start Forcing Player Position(Global.bot[6], Vector(-19.495, 0.900, 0), False);
  • Wait(0.500, Ignore Condition);
  • Create Effect(All Players(All Teams), Sphere, Color(Rose), Position Of(Global.bot[6]) + Vector(0, 1.500, 0), 1,
  • Visible To Position and Radius);
  • Create Effect(All Players(All Teams), Sphere, Color(Rose), Position Of(Global.bot[6]) + Vector(0, 1.200, 0), 1,
  • Visible To Position and Radius);
  • Create Effect(All Players(All Teams), Sphere, Color(Rose), Position Of(Global.bot[6]) + Vector(0, 0.900, 0), 1,
  • Visible To Position and Radius);
  • Create Effect(All Players(All Teams), Sphere, Color(Rose), Position Of(Global.bot[6]) + Vector(0, 0.500, 0), 1,
  • Visible To Position and Radius);
  • Create In-World Text(All Players(All Teams), Custom String("2m x 3m"), Vector(-20, 3.800, 0), 1.500, Do Not Clip,
  • Visible To Position and String, Color(White), Default Visibility);
  • Set Player Health(Global.bot[6], 100);
  • }
  • }
  • rule("Ultimate")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Has Spawned(Host Player) == True;
  • Is Dummy Bot(Event Player) == False;
  • Is Button Held(Event Player, Button(Ultimate)) == True;
  • Hero Of(Event Player) == Hero(Moira);
  • }
  • actions
  • {
  • Create Dummy Bot(Hero(Roadhog), All Teams, -1, Vector(19.495, 1.700, 10), Direction Towards(Vector(19.495, 1.700, 0), Vector(0, 0,
  • 0)));
  • Global.bot5 = Last Created Entity;
  • Set Gravity(Global.bot5, Absolute Value(0));
  • Wait(1, Ignore Condition);
  • Set Status(Global.bot5, Null, Unkillable, 9999);
  • Teleport(Global.bot5, Vector(19.495, 1, 10));
  • Start Forcing Player To Be Hero(Global.bot5, Hero(D.Va));
  • Wait(1, Ignore Condition);
  • Create Effect(All Players(All Teams), Sphere, Blue, Position Of(Global.bot5) + Vector(0, 1.600, 0), 1.200,
  • Visible To Position and Radius);
  • Create Effect(All Players(All Teams), Sphere, Red, Position Of(Global.bot5) + Vector(0, 1.300, 0), 1.200,
  • Visible To Position and Radius);
  • Create Effect(All Players(All Teams), Sphere, Red, Position Of(Global.bot5) + Vector(0, 1, 0), 1.200,
  • Visible To Position and Radius);
  • Create Effect(All Players(All Teams), Sphere, Red, Position Of(Global.bot5) + Vector(0, 0.700, 0), 1.200,
  • Visible To Position and Radius);
  • Create In-World Text(All Players(All Teams), Custom String("2.4m x 3m"), Vector(20, 4, 10), 1.500, Do Not Clip,
  • Visible To Position and String, White, Default Visibility);
  • Call Subroutine(DestroyDots);
  • Disable Hero HUD(Event Player);
  • Event Player.RayCast = Ray Cast Hit Position(Eye Position(Event Player), Eye Position(Event Player) + Facing Direction Of(
  • Event Player) * 30, All Players(All Teams), Event Player, True);
  • Start Camera(Event Player, Facing Direction Of(Event Player) * 0.200 + Ray Cast Hit Position(Eye Position(Event Player),
  • Eye Position(Event Player) + World Vector Of(Vector(0, 5, 2), Event Player, Rotation) + Facing Direction Of(Event Player)
  • * Vector(-3, -3, -3), All Players(All Teams), Event Player, True), Event Player.RayCast, 30);
  • Set Move Speed(Event Player, 40);
  • Call Subroutine(CreateUltBeams);
  • Wait(8.500, Ignore Condition);
  • Set Ultimate Charge(Event Player, 100);
  • Stop Camera(Event Player);
  • Call Subroutine(DestroyUltBeams);
  • Stop Facing(Event Player);
  • Set Move Speed(Event Player, 100);
  • Enable Hero HUD(Event Player);
  • }
  • }
  • rule("create sigma bot")
  • rule("Ray cast Ultimate")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Has Spawned(Host Player) == True;
  • Is Dummy Bot(Event Player) == False;
  • Is Using Ultimate(Event Player) == True;
  • Hero Of(Event Player) == Hero(Moira);
  • }
  • actions
  • {
  • Create Dummy Bot(Hero(Sigma), All Teams, -1, Vector(19.495, 1.700, 15), Direction Towards(Vector(19.495, 1.700, 0), Vector(0, 0,
  • 0)));
  • Global.bot6 = Last Created Entity;
  • Set Gravity(Global.bot6, Absolute Value(0));
  • Wait(1, Ignore Condition);
  • Set Status(Global.bot6, Null, Unkillable, 9999);
  • Teleport(Global.bot6, Vector(19.495, 1, 15));
  • Wait(0.500, Ignore Condition);
  • Create Effect(All Players(All Teams), Sphere, Blue, Position Of(Global.bot6) + Vector(0, 1.600, 0), 1.200,
  • Visible To Position and Radius);
  • Create Effect(All Players(All Teams), Sphere, Red, Position Of(Global.bot6) + Vector(0, 1.800, 0), 1.200,
  • Visible To Position and Radius);
  • Create Effect(All Players(All Teams), Sphere, Red, Position Of(Global.bot6) + Vector(0, 1.300, 0), 1.200,
  • Visible To Position and Radius);
  • Create Effect(All Players(All Teams), Sphere, Red, Position Of(Global.bot6) + Vector(0, 1, 0), 1.200,
  • Visible To Position and Radius);
  • Create Effect(All Players(All Teams), Sphere, Red, Position Of(Global.bot6) + Vector(0, 0.700, 0), 1.200,
  • Visible To Position and Radius);
  • Create In-World Text(All Players(All Teams), Custom String("2.4m x 3.5m"), Vector(20, 4, 15), 1.500, Do Not Clip,
  • Visible To Position and String, White, Default Visibility);
  • Event Player.RayCast = Ray Cast Hit Position(Eye Position(Event Player), Eye Position(Event Player) + Facing Direction Of(
  • Event Player) * 30, All Players(All Teams), Event Player, True);
  • Wait(0.016, Ignore Condition);
  • Loop If Condition Is True;
  • }
  • }
  • rule("[sub] Create ult beams")
  • {
  • event
  • {
  • Subroutine;
  • CreateUltBeams;
  • }
  • actions
  • {
  • disabled Create Beam Effect(All Players(All Teams), Grapple Beam, Eye Position(Event Player) + 0.515 * (Cosine From Degrees(
  • Event Player.angle % 360) * Cross Product(Facing Direction Of(Event Player), Direction From Angles(
  • Horizontal Angle From Direction(Facing Direction Of(Event Player)), Vertical Angle From Direction(Facing Direction Of(
  • Event Player)) - 90)) + Sine From Degrees(Event Player.angle % 360) * Direction From Angles(Horizontal Angle From Direction(
  • Facing Direction Of(Event Player)), Vertical Angle From Direction(Facing Direction Of(Event Player)) - 90)), Eye Position(
  • Event Player) + 0.515 * (Cosine From Degrees(Event Player.angle % 360) * Cross Product(Facing Direction Of(Event Player),
  • Direction From Angles(Horizontal Angle From Direction(Facing Direction Of(Event Player)), Vertical Angle From Direction(
  • Facing Direction Of(Event Player)) - 90)) + Sine From Degrees(Event Player.angle % 360) * Direction From Angles(
  • Horizontal Angle From Direction(Facing Direction Of(Event Player)), Vertical Angle From Direction(Facing Direction Of(
  • Event Player)) - 90) + 58.250 * Facing Direction Of(Event Player)), Color(White), Position and Radius);
  • disabled Modify Player Variable(Event Player, beamEntities, Append To Array, Last Created Entity);
  • disabled Create Beam Effect(All Players(All Teams), Grapple Beam, Eye Position(Event Player) + 0.515 * (Cosine From Degrees(
  • Event Player.angle % 360 + 45) * Cross Product(Facing Direction Of(Event Player), Direction From Angles(
  • Horizontal Angle From Direction(Facing Direction Of(Event Player)), Vertical Angle From Direction(Facing Direction Of(
  • Event Player)) - 90)) + Sine From Degrees(Event Player.angle % 360 + 45) * Direction From Angles(
  • Horizontal Angle From Direction(Facing Direction Of(Event Player)), Vertical Angle From Direction(Facing Direction Of(
  • Event Player)) - 90)), Eye Position(Event Player) + 0.515 * (Cosine From Degrees(Event Player.angle % 360 + 45)
  • * Cross Product(Facing Direction Of(Event Player), Direction From Angles(Horizontal Angle From Direction(Facing Direction Of(
  • Event Player)), Vertical Angle From Direction(Facing Direction Of(Event Player)) - 90)) + Sine From Degrees(
  • Event Player.angle % 360 + 45) * Direction From Angles(Horizontal Angle From Direction(Facing Direction Of(Event Player)),
  • Vertical Angle From Direction(Facing Direction Of(Event Player)) - 90) + 58.250 * Facing Direction Of(Event Player)), Color(
  • White), Position and Radius);
  • disabled Modify Player Variable(Event Player, beamEntities, Append To Array, Last Created Entity);
  • disabled Create Beam Effect(All Players(All Teams), Grapple Beam, Eye Position(Event Player) + 0.515 * (Cosine From Degrees(
  • Event Player.angle % 360 + 90) * Cross Product(Facing Direction Of(Event Player), Direction From Angles(
  • Horizontal Angle From Direction(Facing Direction Of(Event Player)), Vertical Angle From Direction(Facing Direction Of(
  • Event Player)) - 90)) + Sine From Degrees(Event Player.angle % 360 + 90) * Direction From Angles(
  • Horizontal Angle From Direction(Facing Direction Of(Event Player)), Vertical Angle From Direction(Facing Direction Of(
  • Event Player)) - 90)), Eye Position(Event Player) + 0.515 * (Cosine From Degrees(Event Player.angle % 360 + 90)
  • * Cross Product(Facing Direction Of(Event Player), Direction From Angles(Horizontal Angle From Direction(Facing Direction Of(
  • Event Player)), Vertical Angle From Direction(Facing Direction Of(Event Player)) - 90)) + Sine From Degrees(
  • Event Player.angle % 360 + 90) * Direction From Angles(Horizontal Angle From Direction(Facing Direction Of(Event Player)),
  • Vertical Angle From Direction(Facing Direction Of(Event Player)) - 90) + 58.250 * Facing Direction Of(Event Player)), Color(
  • White), Position and Radius);
  • disabled Modify Player Variable(Event Player, beamEntities, Append To Array, Last Created Entity);
  • disabled Create Beam Effect(All Players(All Teams), Grapple Beam, Eye Position(Event Player) + 0.515 * (Cosine From Degrees(
  • Event Player.angle % 360 + 135) * Cross Product(Facing Direction Of(Event Player), Direction From Angles(
  • Horizontal Angle From Direction(Facing Direction Of(Event Player)), Vertical Angle From Direction(Facing Direction Of(
  • Event Player)) - 90)) + Sine From Degrees(Event Player.angle % 360 + 135) * Direction From Angles(
  • Horizontal Angle From Direction(Facing Direction Of(Event Player)), Vertical Angle From Direction(Facing Direction Of(
  • Event Player)) - 90)), Eye Position(Event Player) + 0.515 * (Cosine From Degrees(Event Player.angle % 360 + 135)
  • * Cross Product(Facing Direction Of(Event Player), Direction From Angles(Horizontal Angle From Direction(Facing Direction Of(
  • Event Player)), Vertical Angle From Direction(Facing Direction Of(Event Player)) - 90)) + Sine From Degrees(
  • Event Player.angle % 360 + 135) * Direction From Angles(Horizontal Angle From Direction(Facing Direction Of(Event Player)),
  • Vertical Angle From Direction(Facing Direction Of(Event Player)) - 90) + 58.250 * Facing Direction Of(Event Player)), Color(
  • White), Position and Radius);
  • disabled Modify Player Variable(Event Player, beamEntities, Append To Array, Last Created Entity);
  • disabled Create Beam Effect(All Players(All Teams), Grapple Beam, Eye Position(Event Player) + 0.515 * (Cosine From Degrees(
  • Event Player.angle % 360 + 180) * Cross Product(Facing Direction Of(Event Player), Direction From Angles(
  • Horizontal Angle From Direction(Facing Direction Of(Event Player)), Vertical Angle From Direction(Facing Direction Of(
  • Event Player)) - 90)) + Sine From Degrees(Event Player.angle % 360 + 180) * Direction From Angles(
  • Horizontal Angle From Direction(Facing Direction Of(Event Player)), Vertical Angle From Direction(Facing Direction Of(
  • Event Player)) - 90)), Eye Position(Event Player) + 0.515 * (Cosine From Degrees(Event Player.angle % 360 + 180)
  • * Cross Product(Facing Direction Of(Event Player), Direction From Angles(Horizontal Angle From Direction(Facing Direction Of(
  • Event Player)), Vertical Angle From Direction(Facing Direction Of(Event Player)) - 90)) + Sine From Degrees(
  • Event Player.angle % 360 + 180) * Direction From Angles(Horizontal Angle From Direction(Facing Direction Of(Event Player)),
  • Vertical Angle From Direction(Facing Direction Of(Event Player)) - 90) + 58.250 * Facing Direction Of(Event Player)), Color(
  • White), Position and Radius);
  • disabled Modify Player Variable(Event Player, beamEntities, Append To Array, Last Created Entity);
  • disabled Create Beam Effect(All Players(All Teams), Grapple Beam, Eye Position(Event Player) + 0.515 * (Cosine From Degrees(
  • Event Player.angle % 360 + 225) * Cross Product(Facing Direction Of(Event Player), Direction From Angles(
  • Horizontal Angle From Direction(Facing Direction Of(Event Player)), Vertical Angle From Direction(Facing Direction Of(
  • Event Player)) - 90)) + Sine From Degrees(Event Player.angle % 360 + 225) * Direction From Angles(
  • Horizontal Angle From Direction(Facing Direction Of(Event Player)), Vertical Angle From Direction(Facing Direction Of(
  • Event Player)) - 90)), Eye Position(Event Player) + 0.515 * (Cosine From Degrees(Event Player.angle % 360 + 225)
  • * Cross Product(Facing Direction Of(Event Player), Direction From Angles(Horizontal Angle From Direction(Facing Direction Of(
  • Event Player)), Vertical Angle From Direction(Facing Direction Of(Event Player)) - 90)) + Sine From Degrees(
  • Event Player.angle % 360 + 225) * Direction From Angles(Horizontal Angle From Direction(Facing Direction Of(Event Player)),
  • Vertical Angle From Direction(Facing Direction Of(Event Player)) - 90) + 58.250 * Facing Direction Of(Event Player)), Color(
  • White), Position and Radius);
  • disabled Modify Player Variable(Event Player, beamEntities, Append To Array, Last Created Entity);
  • disabled Create Beam Effect(All Players(All Teams), Grapple Beam, Eye Position(Event Player) + 0.515 * (Cosine From Degrees(
  • Event Player.angle % 360 + 270) * Cross Product(Facing Direction Of(Event Player), Direction From Angles(
  • Horizontal Angle From Direction(Facing Direction Of(Event Player)), Vertical Angle From Direction(Facing Direction Of(
  • Event Player)) - 90)) + Sine From Degrees(Event Player.angle % 360 + 270) * Direction From Angles(
  • Horizontal Angle From Direction(Facing Direction Of(Event Player)), Vertical Angle From Direction(Facing Direction Of(
  • Event Player)) - 90)), Eye Position(Event Player) + 0.515 * (Cosine From Degrees(Event Player.angle % 360 + 270)
  • * Cross Product(Facing Direction Of(Event Player), Direction From Angles(Horizontal Angle From Direction(Facing Direction Of(
  • Event Player)), Vertical Angle From Direction(Facing Direction Of(Event Player)) - 90)) + Sine From Degrees(
  • Event Player.angle % 360 + 270) * Direction From Angles(Horizontal Angle From Direction(Facing Direction Of(Event Player)),
  • Vertical Angle From Direction(Facing Direction Of(Event Player)) - 90) + 58.250 * Facing Direction Of(Event Player)), Color(
  • White), Position and Radius);
  • disabled Modify Player Variable(Event Player, beamEntities, Append To Array, Last Created Entity);
  • disabled Create Beam Effect(All Players(All Teams), Grapple Beam, Eye Position(Event Player) + 0.515 * (Cosine From Degrees(
  • Event Player.angle % 360 + 315) * Cross Product(Facing Direction Of(Event Player), Direction From Angles(
  • Horizontal Angle From Direction(Facing Direction Of(Event Player)), Vertical Angle From Direction(Facing Direction Of(
  • Event Player)) - 90)) + Sine From Degrees(Event Player.angle % 360 + 315) * Direction From Angles(
  • Horizontal Angle From Direction(Facing Direction Of(Event Player)), Vertical Angle From Direction(Facing Direction Of(
  • Event Player)) - 90)), Eye Position(Event Player) + 0.515 * (Cosine From Degrees(Event Player.angle % 360 + 315)
  • * Cross Product(Facing Direction Of(Event Player), Direction From Angles(Horizontal Angle From Direction(Facing Direction Of(
  • Event Player)), Vertical Angle From Direction(Facing Direction Of(Event Player)) - 90)) + Sine From Degrees(
  • Event Player.angle % 360 + 315) * Direction From Angles(Horizontal Angle From Direction(Facing Direction Of(Event Player)),
  • Vertical Angle From Direction(Facing Direction Of(Event Player)) - 90) + 58.250 * Facing Direction Of(Event Player)), Color(
  • White), Position and Radius);
  • disabled Modify Player Variable(Event Player, beamEntities, Append To Array, Last Created Entity);
  • For Global Variable(N, 0, 360, 45);
  • Create Beam Effect(All Players(All Teams), Grapple Beam, Eye Position(Event Player) + 0.515 * (Cosine From Degrees(
  • Event Player.angle % 360 + Evaluate Once(Global.N)) * Cross Product(Facing Direction Of(Event Player), Direction From Angles(
  • Horizontal Angle From Direction(Facing Direction Of(Event Player)), Vertical Angle From Direction(Facing Direction Of(
  • Event Player)) - 90)) + Sine From Degrees(Event Player.angle % 360 + Evaluate Once(Global.N)) * Direction From Angles(
  • Horizontal Angle From Direction(Facing Direction Of(Event Player)), Vertical Angle From Direction(Facing Direction Of(
  • Event Player)) - 90)), Eye Position(Event Player) + 0.515 * (Cosine From Degrees(Event Player.angle % 360 + Evaluate Once(
  • Global.N)) * Cross Product(Facing Direction Of(Event Player), Direction From Angles(Horizontal Angle From Direction(
  • Facing Direction Of(Event Player)), Vertical Angle From Direction(Facing Direction Of(Event Player)) - 90))
  • + Sine From Degrees(Event Player.angle % 360 + Evaluate Once(Global.N)) * Direction From Angles(
  • Horizontal Angle From Direction(Facing Direction Of(Event Player)), Vertical Angle From Direction(Facing Direction Of(
  • Event Player)) - 90) + 58.250 * Facing Direction Of(Event Player)), Color(White), Position and Radius);
  • Modify Player Variable(Event Player, beamEntities, Append To Array, Last Created Entity);
  • End;
  • }
  • }
  • rule("create winston bot")
  • rule("[sub] Destroy ult beams")
  • {
  • event
  • {
  • Subroutine;
  • DestroyUltBeams;
  • }
  • actions
  • {
  • For Player Variable(Event Player, E, 0, Count Of(Event Player.beamEntities), 1);
  • Destroy Effect(Event Player.beamEntities[Event Player.E]);
  • End;
  • Event Player.beamEntities = Empty Array;
  • }
  • }
  • rule("Primary fire (heal) effects")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is Button Held(Event Player, Button(Primary Fire)) == True;
  • Hero Of(Event Player) == Hero(Moira);
  • Is Button Held(Event Player, Button(Secondary Fire)) == False;
  • Is Using Ultimate(Event Player) == False;
  • Is Using Ability 1(Event Player) == False;
  • Is Using Ability 2(Event Player) == False;
  • }
  • actions
  • {
  • Set Projectile Speed(Event Player, 100);
  • Create Effect(All Players(All Teams), Ring, Color(Yellow), Event Player, 15, Visible To Position and Radius);
  • Event Player.circleEntityHealing = Last Created Entity;
  • Wait(0.080, Ignore Condition);
  • While(Is Button Held(Event Player, Button(Primary Fire)));
  • Event Player.RayCast = Ray Cast Hit Position(Eye Position(Event Player), Eye Position(Event Player) + Facing Direction Of(
  • Event Player) * 15, Empty Array, Event Player, False);
  • If(Event Player.heals == 0);
  • Event Player.H0 = Eye Position(Event Player);
  • Chase Player Variable At Rate(Event Player, H0, Event Player.RayCast, 40, None);
  • Create Effect(All Players(All Teams), Sphere, Color(Yellow), Event Player.H0, 0.750, Visible To Position and Radius);
  • Else If(Event Player.heals == 1);
  • Event Player.H1 = Eye Position(Event Player);
  • Chase Player Variable At Rate(Event Player, H1, Event Player.RayCast, 40, None);
  • Create Effect(All Players(All Teams), Sphere, Color(Yellow), Event Player.H1, 0.750, Visible To Position and Radius);
  • Else If(Event Player.heals == 2);
  • Event Player.H2 = Eye Position(Event Player);
  • Chase Player Variable At Rate(Event Player, H2, Event Player.RayCast, 40, None);
  • Create Effect(All Players(All Teams), Sphere, Color(Yellow), Event Player.H2, 0.750, Visible To Position and Radius);
  • Else If(Event Player.heals == 3);
  • Event Player.H3 = Eye Position(Event Player);
  • Chase Player Variable At Rate(Event Player, H3, Event Player.RayCast, 40, None);
  • Create Effect(All Players(All Teams), Sphere, Color(Yellow), Event Player.H3, 0.750, Visible To Position and Radius);
  • Else If(Event Player.heals == 4);
  • Event Player.H4 = Eye Position(Event Player);
  • Chase Player Variable At Rate(Event Player, H4, Event Player.RayCast, 40, None);
  • Create Effect(All Players(All Teams), Sphere, Color(Yellow), Event Player.H4, 0.750, Visible To Position and Radius);
  • Else If(Event Player.heals == 5);
  • Event Player.H5 = Eye Position(Event Player);
  • Chase Player Variable At Rate(Event Player, H5, Event Player.RayCast, 40, None);
  • Create Effect(All Players(All Teams), Sphere, Color(Yellow), Event Player.H5, 0.750, Visible To Position and Radius);
  • Else If(Event Player.heals == 6);
  • Event Player.H6 = Eye Position(Event Player);
  • Chase Player Variable At Rate(Event Player, H6, Event Player.RayCast, 40, None);
  • Create Effect(All Players(All Teams), Sphere, Color(Yellow), Event Player.H6, 0.750, Visible To Position and Radius);
  • Else If(Event Player.heals == 7);
  • Event Player.H7 = Eye Position(Event Player);
  • Chase Player Variable At Rate(Event Player, H7, Event Player.RayCast, 40, None);
  • Create Effect(All Players(All Teams), Sphere, Color(Yellow), Event Player.H7, 0.750, Visible To Position and Radius);
  • Else If(Event Player.heals >= 8);
  • Event Player.H8 = Eye Position(Event Player);
  • Chase Player Variable At Rate(Event Player, H8, Event Player.RayCast, 40, None);
  • Create Effect(All Players(All Teams), Sphere, Color(Yellow), Event Player.H8, 0.750, Visible To Position and Radius);
  • Event Player.heals = -1;
  • End;
  • If(Count Of(Event Player.healEntities) >= 8);
  • Destroy Effect(First Of(Event Player.healEntities));
  • Modify Player Variable(Event Player, healEntities, Remove From Array By Index, 0);
  • End;
  • Event Player.heals += 1;
  • Modify Player Variable(Event Player, healEntities, Append To Array, Last Created Entity);
  • Wait(0.048, Ignore Condition);
  • If(Ability Resource(Event Player, Button(Primary Fire)) <= 2);
  • Wait(0.500, Ignore Condition);
  • Call Subroutine(DestroyHealEffects);
  • While(Ability Resource(Event Player, Button(Primary Fire)) < 5.200);
  • Wait(0.048, Ignore Condition);
  • End;
  • End;
  • End;
  • Destroy Effect(Event Player.circleEntityHealing);
  • }
  • }
  • rule("Destroy heal effects")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Has Spawned(Host Player) == True;
  • Is Dummy Bot(Event Player) == False;
  • Is Button Held(Event Player, Button(Primary Fire)) == False;
  • }
  • actions
  • {
  • Create Dummy Bot(Hero(Winston), All Teams, -1, Vector(19.495, 1.700, 15), Direction Towards(Vector(19.495, 1.700, 0), Vector(0, 0,
  • 0)));
  • Global.bot7 = Last Created Entity;
  • Set Gravity(Global.bot7, Absolute Value(0));
  • Wait(1, Ignore Condition);
  • Set Status(Global.bot7, Null, Unkillable, 9999);
  • Teleport(Global.bot7, Vector(19.495, 6, 15));
  • Wait(0.500, Ignore Condition);
  • Create Effect(All Players(All Teams), Sphere, Blue, Position Of(Global.bot7) + Vector(0, 1.600, 0), 1.200,
  • Visible To Position and Radius);
  • Create Effect(All Players(All Teams), Sphere, Red, Position Of(Global.bot7) + Vector(0, 1.800, 0), 1.200,
  • Visible To Position and Radius);
  • Create Effect(All Players(All Teams), Sphere, Red, Position Of(Global.bot7) + Vector(0, 1.300, 0), 1.200,
  • Visible To Position and Radius);
  • Create Effect(All Players(All Teams), Sphere, Red, Position Of(Global.bot7) + Vector(0, 1, 0), 1.200,
  • Visible To Position and Radius);
  • Create Effect(All Players(All Teams), Sphere, Red, Position Of(Global.bot7) + Vector(0, 0.700, 0), 1.200,
  • Visible To Position and Radius);
  • Call Subroutine(DestroyHealEffects);
  • }
  • }
  • rule("highlight bot")
  • rule("[sub] Destroy heal effects")
  • {
  • event
  • {
  • Subroutine;
  • Highlight;
  • DestroyHealEffects;
  • }
  • actions
  • {
  • Destroy In-World Text(Global.lastText);
  • If(Array Contains(Global.smallHitbox, All Heroes[Host Player.A]) == True);
  • Create In-World Text(All Players(All Teams), Custom String("2m x 3m"), Vector(20, 4, -5), 1.500, Do Not Clip,
  • Visible To Position and String, Green, Default Visibility);
  • Else If(Array Contains(Global.bigHitbox, All Heroes[Host Player.A]) == True);
  • Create In-World Text(All Players(All Teams), Custom String("2.4m x 3.3m"), Vector(20, 4, -10), 1.500, Do Not Clip,
  • Visible To Position and String, Green, Default Visibility);
  • Else If(All Heroes[Host Player.A] == Hero(Torbjörn));
  • Create In-World Text(All Players(All Teams), Custom String("2m x 2.55m"), Vector(20, 4, 0), 1.500, Do Not Clip,
  • Visible To Position and String, Green, Default Visibility);
  • Else If(All Heroes[Host Player.A] == Hero(Wrecking Ball));
  • Create In-World Text(All Players(All Teams), Custom String("3m x 3m"), Vector(20, 4, 5), 1.500, Do Not Clip,
  • Visible To Position and String, Green, Default Visibility);
  • Else If(All Heroes[Host Player.A] == Hero(D.Va));
  • Create In-World Text(All Players(All Teams), Custom String("2.4m x 3m"), Vector(20, 4, 10), 1.500, Do Not Clip,
  • Visible To Position and String, Green, Default Visibility);
  • Else If(All Heroes[Host Player.A] == Hero(Sigma));
  • Create In-World Text(All Players(All Teams), Custom String("2.4m x 3.5m"), Vector(20, 4, 15), 1.500, Do Not Clip,
  • Visible To Position and String, Green, Default Visibility);
  • Else If(All Heroes[Host Player.A] == Hero(Winston));
  • Create In-World Text(All Players(All Teams), Custom String("2.4m x 3.5m"), Vector(20, 4, 15), 1.500, Do Not Clip,
  • Visible To Position and String, Green, Default Visibility);
  • For Player Variable(Event Player, Z, 0, Count Of(Event Player.healEntities), 1);
  • Destroy Effect(Event Player.healEntities[Event Player.Z]);
  • End;
  • Global.lastText = Last Text ID;
  • }
  • }
  • rule("Secondary fire ring effect")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is Button Held(Event Player, Button(Secondary Fire)) == True;
  • }
  • actions
  • {
  • Event Player.circleEntityDamage = Empty Array;
  • Create Effect(All Players(All Teams), Ring, Color(Purple), Event Player, 20, Visible To Position and Radius);
  • Modify Player Variable(Event Player, circleEntityDamage, Append To Array, Last Created Entity);
  • Create Effect(All Players(All Teams), Ring, Color(Purple), Event Player, 19.950, Visible To Position and Radius);
  • Modify Player Variable(Event Player, circleEntityDamage, Append To Array, Last Created Entity);
  • Create Effect(All Players(All Teams), Ring, Color(Purple), Event Player, 20.050, Visible To Position and Radius);
  • Modify Player Variable(Event Player, circleEntityDamage, Append To Array, Last Created Entity);
  • Wait Until(Is Button Held(Event Player, Button(Secondary Fire)) == False, 1);
  • Destroy Effect(Event Player.circleEntityDamage[0]);
  • Destroy Effect(Event Player.circleEntityDamage[1]);
  • Destroy Effect(Event Player.circleEntityDamage[2]);
  • }
  • }
  • rule("Ability 2 Biotic Orb")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is Using Ability 2(Event Player) == True;
  • }
  • actions
  • {
  • Event Player.V = Empty Array;
  • Create Effect(All Players(All Teams), Sphere, Color(Yellow), Update Every Frame(Eye Position(Event Player)), 5,
  • Visible To Position and Radius);
  • Modify Player Variable(Event Player, V, Append To Array, Last Created Entity);
  • Create Effect(All Players(All Teams), Sphere, Color(Purple), Update Every Frame(Eye Position(Event Player)), 4,
  • Visible To Position and Radius);
  • Modify Player Variable(Event Player, V, Append To Array, Last Created Entity);
  • Set Projectile Speed(Event Player, 0);
  • While(Is Using Ability 2(Event Player));
  • If(Is Button Held(Event Player, Button(Primary Fire)) == True);
  • Create Effect(All Players(All Teams), Sphere, Color(Yellow), Evaluate Once(Eye Position(Event Player)), 5,
  • Visible To Position and Radius);
  • Modify Player Variable(Event Player, V, Append To Array, Last Created Entity);
  • Else If(Is Button Held(Event Player, Button(Secondary Fire)) == True);
  • Create Effect(All Players(All Teams), Sphere, Color(Purple), Evaluate Once(Eye Position(Event Player)), 4,
  • Visible To Position and Radius);
  • Modify Player Variable(Event Player, V, Append To Array, Last Created Entity);
  • End;
  • Wait(0.016, Ignore Condition);
  • If(Entity Exists(Event Player.V[2]));
  • Destroy Effect(Event Player.V[0]);
  • Destroy Effect(Event Player.V[1]);
  • Wait Until(Ability Cooldown(Event Player, Button(Ability 2)) == 0, 7);
  • Destroy Effect(Event Player.V[2]);
  • End;
  • End;
  • Destroy Effect(Event Player.V[0]);
  • Destroy Effect(Event Player.V[1]);
  • Destroy Effect(Event Player.V[2]);
  • }
  • }
Join the Workshop.codes Discord