Create
Return to post

Comparing difference between and

View raw
  • settings
  • {
  • main
  • {
  • Description: "Use many different abilities to make your way across the map from checkpoint to checkpoint. Made by Mitsiee. More info on https://workshop.codes/echo-parkour. v1.0.9"
  • Description: "Use many different abilities to make your way across the map from checkpoint to checkpoint. Made by Mitsiee. More info on https://workshop.codes/echo-parkour. v1.0.10 Blizz World"
  • }
  • lobby
  • {
  • Allow Players Who Are In Queue: Yes
  • }
  • modes
  • {
  • Skirmish
  • {
  • enabled maps
  • {
  • Blizzard World
  • }
  • }
  • General
  • {
  • Game Mode Start: Manual
  • Hero Limit: Off
  • Kill Cam: Off
  • Kill Feed: Off
  • Respawn Time Scalar: 0%
  • Spawn Health Packs: Disabled
  • }
  • }
  • heroes
  • {
  • General
  • {
  • Echo
  • {
  • Damage Dealt: 10%
  • Damage Received: 10%
  • Flight Cooldown Time: 0%
  • Focusing Beam Cooldown Time: 15%
  • Glide: Off
  • No Ammunition Requirement: On
  • Quick Melee: Off
  • Sticky Bombs Cooldown Time: 0%
  • Ultimate Ability Duplicate: Off
  • }
  • enabled heroes
  • {
  • Echo
  • }
  • }
  • }
  • }
  • variables
  • {
  • global:
  • 0: CheckpointPositions
  • 1: CheckpointRadius
  • 2: RingPositions
  • player:
  • 0: JumpPadLocations
  • 1: JumpPadLoop
  • 2: JumpPadEffects
  • 3: RemoveEffectsLoop
  • 4: FindJumpPadLoop
  • 5: GrapplePoint
  • 6: GrappleEffect
  • 7: IsGrappling
  • 8: CurrentCheckpoint
  • 10: Timer
  • 11: FindRingLoop
  • 12: CurrentCheckpointRingsArray
  • 13: RingsArrayLoop
  • 14: CutOffArray
  • 15: InstructionsShown
  • 16: InstructionsText1
  • 17: InstructionsText2
  • 18: InstructionsText3
  • 19: InstructionsText4
  • 20: InstructionsText5
  • 21: InstructionsText6
  • 22: FinalTime
  • 23: BestTime
  • 24: TimerChase
  • 25: InstructionsText7
  • }
  • subroutines
  • {
  • 0: SetCurrentRingsArray
  • 1: ResetJumpPads
  • 2: SetAvailableAbilities
  • }
  • disabled rule("Made by Mitsiee. More info on https://workshop.codes/echo-parkour")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • }
  • disabled rule("Initialise")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • }
  • rule("Initialise player")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • actions
  • {
  • Set Player Variable(Event Player, CurrentCheckpoint, 0);
  • Set Player Variable(Event Player, InstructionsShown, False);
  • Set Player Variable(Event Player, TimerChase, 100000);
  • Set Status(Event Player, Null, Phased Out, 9999);
  • Call Subroutine(SetCurrentRingsArray);
  • Call Subroutine(SetAvailableAbilities);
  • }
  • }
  • rule("Phase out player")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is Alive(Event Player) == True;
  • }
  • actions
  • {
  • Set Status(Event Player, Null, Phased Out, 9999);
  • }
  • }
  • rule("Teleport player")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is Alive(Event Player) == True;
  • Is In Spawn Room(Event Player) == True;
  • }
  • actions
  • {
  • Teleport(Event Player, Add(Value In Array(Global Variable(CheckpointPositions), Player Variable(Event Player, CurrentCheckpoint)),
  • Vector(0, 0.250, 0)));
  • Wait(0.250, Ignore Condition);
  • Set Facing(Event Player, Direction Towards(Eye Position(Event Player), Value In Array(Global Variable(CheckpointPositions), Add(
  • Player Variable(Event Player, CurrentCheckpoint), 1))), To World);
  • }
  • }
  • disabled rule("HUD")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • }
  • rule("Number of checkpoints reached")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • actions
  • {
  • Create HUD Text(Event Player, Null, Custom String("Map difficulty: Medium {0}", Icon String(Warning), Null, Null), Null, Right, 1,
  • White, Orange, White, Visible To and String, Default Visibility);
  • Create HUD Text(Event Player, Null, Custom String("Checkpoint {0} / {1} {2}", Player Variable(Event Player, CurrentCheckpoint),
  • Subtract(Count Of(Global Variable(CheckpointPositions)), 1), Icon String(Flag)), Null, Right, 2, White, Turquoise, White,
  • Visible To and String, Default Visibility);
  • }
  • }
  • rule("Timer")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • actions
  • {
  • Create HUD Text(Event Player, Null, Custom String("Timer: {0}", Player Variable(Event Player, Timer), Null, Null), Null, Top, 5,
  • White, White, White, Visible To and String, Default Visibility);
  • }
  • }
  • rule("Start timer")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Or(Or(Is Using Ability 1(Event Player), Is Using Ability 2(Event Player)), Is Button Held(Event Player, Jump)) == True;
  • Player Variable(Event Player, Timer) == 0;
  • Add(Player Variable(Event Player, CurrentCheckpoint), 1) != Count Of(Global Variable(CheckpointPositions));
  • }
  • actions
  • {
  • Set Player Variable(Event Player, TimerChase, 10000);
  • Chase Player Variable At Rate(Event Player, Timer, Player Variable(Event Player, TimerChase), 1, Destination and Rate);
  • }
  • }
  • rule("How to show controls")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • actions
  • {
  • Create HUD Text(Event Player, Null, Custom String(" ", Null, Null, Null), Null, Left, 0, White, White, White,
  • Visible To and String, Default Visibility);
  • Create HUD Text(Event Player, Null, Custom String(" ", Null, Null, Null), Null, Left, 0, White, White, White,
  • Visible To and String, Default Visibility);
  • Create HUD Text(Event Player, Null, Custom String(" ", Null, Null, Null), Null, Left, 0, White, White, White,
  • Visible To and String, Default Visibility);
  • Create HUD Text(Event Player, Null, Custom String(" ", Null, Null, Null), Null, Left, 0, White, White, White,
  • Visible To and String, Default Visibility);
  • Create HUD Text(Event Player, Null, Custom String(" ", Null, Null, Null), Null, Left, 0, White, White, White,
  • Visible To and String, Default Visibility);
  • Create HUD Text(Event Player, Null, Custom String("{0} Press [Interact] to toggle full instructions", Icon String(Question Mark),
  • Null, Null), Null, Left, 0, White, Blue, White, Visible To and String, Default Visibility);
  • }
  • }
  • rule("Pressing interact to show controls")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is Button Held(Event Player, Interact) == True;
  • Player Variable(Event Player, InstructionsShown) == False;
  • }
  • actions
  • {
  • Disallow Button(Event Player, Interact);
  • Create HUD Text(Event Player, Null, Custom String("Pressing [Ability 1] will give you 2 quick boosts forward.", Null, Null, Null),
  • Null, Left, 1, White, White, White, Visible To and String, Default Visibility);
  • Set Player Variable(Event Player, InstructionsText1, Last Text ID);
  • Create HUD Text(Event Player, Null, Custom String(
  • "Pressing [Ability 2] will attach a grappling hook to a surface (20 meters range).", Null, Null, Null), Null, Left, 2, White,
  • White, White, Visible To and String, Default Visibility);
  • Set Player Variable(Event Player, InstructionsText2, Last Text ID);
  • Create HUD Text(Event Player, Null, Custom String(
  • "Pressing [Secondary fire] will spawn jump pads on the location of each sticky bomb.", Null, Null, Null), Null, Left, 3, White,
  • White, White, Visible To and String, Default Visibility);
  • Set Player Variable(Event Player, InstructionsText3, Last Text ID);
  • Create HUD Text(Event Player, Null, Custom String("The abilities you have available will vary per checkpoint.", Null, Null, Null),
  • Null, Left, 4, White, White, White, Visible To and String, Default Visibility);
  • Set Player Variable(Event Player, InstructionsText4, Last Text ID);
  • Create HUD Text(Event Player, Null, Custom String(
  • "Each checkpoint may have one or more yellow rings. Flying through these rings will recharge [Ability 1].", Null, Null, Null),
  • Null, Left, 5, White, Yellow, White, Visible To and String, Default Visibility);
  • Set Player Variable(Event Player, InstructionsText5, Last Text ID);
  • Create HUD Text(Event Player, Null, Custom String("Press [Reload] for a quick reset.", Null, Null, Null), Null, Left, 6, White,
  • Aqua, White, Visible To and String, Default Visibility);
  • Set Player Variable(Event Player, InstructionsText6, Last Text ID);
  • Create HUD Text(Event Player, Null, Custom String("Press [Crouch] + [Ultimate] + [Interact] for a full reset back to the start.",
  • Null, Null, Null), Null, Left, 7, White, Orange, White, Visible To and String, Default Visibility);
  • Set Player Variable(Event Player, InstructionsText7, Last Text ID);
  • Wait(0.100, Ignore Condition);
  • Set Player Variable(Event Player, InstructionsShown, True);
  • Allow Button(Event Player, Interact);
  • }
  • }
  • rule("Pressing interact to hide controls")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is Button Held(Event Player, Interact) == True;
  • Player Variable(Event Player, InstructionsShown) == True;
  • }
  • actions
  • {
  • Disallow Button(Event Player, Interact);
  • Destroy HUD Text(Player Variable(Event Player, InstructionsText1));
  • Destroy HUD Text(Player Variable(Event Player, InstructionsText2));
  • Destroy HUD Text(Player Variable(Event Player, InstructionsText3));
  • Destroy HUD Text(Player Variable(Event Player, InstructionsText4));
  • Destroy HUD Text(Player Variable(Event Player, InstructionsText5));
  • Destroy HUD Text(Player Variable(Event Player, InstructionsText6));
  • Destroy HUD Text(Player Variable(Event Player, InstructionsText7));
  • Wait(0.100, Ignore Condition);
  • Set Player Variable(Event Player, InstructionsShown, False);
  • Allow Button(Event Player, Interact);
  • }
  • }
  • rule("In-world instructions")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • actions
  • {
  • "----- Instructions on first checkpoint, explaining Flight"
  • Create In-World Text(Filtered Array(All Players(All Teams), Compare(Player Variable(Current Array Element, CurrentCheckpoint), ==,
  • 0)), Custom String("{0} Press [Ability 1] to launch yourself", Icon String(Question Mark), Null, Null), Add(Value In Array(
  • Global Variable(CheckpointPositions), 1), Vector(0, -2, 0)), 1, Do Not Clip, Visible To Position and String, Blue,
  • Default Visibility);
  • "----- Instructions on 2nd checkpoint, explaining Jump pads"
  • Create In-World Text(Filtered Array(All Players(All Teams), Compare(Player Variable(Current Array Element, CurrentCheckpoint), ==,
  • 1)), Custom String("{0} Press [Secondary fire] to spawn jump pads on location of bombs", Icon String(Question Mark), Null,
  • Null), Add(Value In Array(Global Variable(CheckpointPositions), 2), Vector(0, -2, 0)), 1, Do Not Clip,
  • Visible To Position and String, Blue, Default Visibility);
  • "----- Instructions on 3rd checkpoint, explaining grapple"
  • Create In-World Text(Filtered Array(All Players(All Teams), Compare(Player Variable(Current Array Element, CurrentCheckpoint), ==,
  • 2)), Custom String("{0} Press [Ability 2] to grapple, Press again to let go early", Icon String(Question Mark), Null, Null),
  • Add(Value In Array(Global Variable(CheckpointPositions), 3), Vector(0, -2, 0)), 1, Do Not Clip, Visible To Position and String,
  • Blue, Default Visibility);
  • "----- Instructions explaining Rings"
  • Create In-World Text(Filtered Array(All Players(All Teams), Compare(Player Variable(Current Array Element, CurrentCheckpoint), ==,
  • 5)), Custom String("{0} Pick up to charge [Ability 1]", Icon String(Question Mark), Null, Null), Value In Array(
  • Global Variable(RingPositions), 2), 1, Clip Against Surfaces, Visible To Position and String, Yellow, Default Visibility);
  • }
  • }
  • rule("Best and Final timer")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • actions
  • {
  • Create HUD Text(Filtered Array(Event Player, Compare(Player Variable(Current Array Element, FinalTime), >, 0)), Null,
  • Custom String("Final time: {0}", Player Variable(Event Player, FinalTime), Null, Null), Null, Top, 1, White, Orange, White,
  • Visible To and String, Default Visibility);
  • Create HUD Text(Filtered Array(Event Player, Compare(Player Variable(Current Array Element, BestTime), >, 0)), Null, Custom String(
  • "Your best time: {0}", Player Variable(Event Player, BestTime), Null, Null), Null, Top, 2, White, Turquoise, White,
  • Visible To and String, Default Visibility);
  • }
  • }
  • disabled rule("Checkpoints")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • }
  • rule("Subroutine - Available abilities")
  • {
  • event
  • {
  • Subroutine;
  • SetAvailableAbilities;
  • }
  • actions
  • {
  • Wait(0.050, Ignore Condition);
  • If(Compare(Player Variable(Event Player, CurrentCheckpoint), ==, 0));
  • Set Ability 1 Enabled(Event Player, True);
  • Set Ability 2 Enabled(Event Player, False);
  • Set Secondary Fire Enabled(Event Player, False);
  • Else If(Compare(Player Variable(Event Player, CurrentCheckpoint), ==, 1));
  • Set Ability 1 Enabled(Event Player, False);
  • Set Ability 2 Enabled(Event Player, False);
  • Set Secondary Fire Enabled(Event Player, True);
  • Else If(Compare(Player Variable(Event Player, CurrentCheckpoint), ==, 2));
  • Set Ability 1 Enabled(Event Player, False);
  • Set Ability 2 Enabled(Event Player, True);
  • Set Secondary Fire Enabled(Event Player, True);
  • Else If(Compare(Player Variable(Event Player, CurrentCheckpoint), ==, 3));
  • Set Ability 1 Enabled(Event Player, True);
  • Set Ability 2 Enabled(Event Player, False);
  • Set Secondary Fire Enabled(Event Player, True);
  • Else If(Compare(Player Variable(Event Player, CurrentCheckpoint), ==, 4));
  • Set Ability 1 Enabled(Event Player, False);
  • Set Ability 2 Enabled(Event Player, True);
  • Set Secondary Fire Enabled(Event Player, False);
  • Else If(Compare(Player Variable(Event Player, CurrentCheckpoint), ==, 5));
  • Set Ability 1 Enabled(Event Player, False);
  • Set Ability 2 Enabled(Event Player, True);
  • Set Secondary Fire Enabled(Event Player, False);
  • Else If(Compare(Player Variable(Event Player, CurrentCheckpoint), ==, 6));
  • Set Ability 1 Enabled(Event Player, False);
  • Set Ability 2 Enabled(Event Player, True);
  • Set Secondary Fire Enabled(Event Player, False);
  • Else If(Compare(Player Variable(Event Player, CurrentCheckpoint), ==, 7));
  • Set Ability 1 Enabled(Event Player, True);
  • Set Ability 2 Enabled(Event Player, False);
  • Set Secondary Fire Enabled(Event Player, True);
  • Else If(Compare(Player Variable(Event Player, CurrentCheckpoint), ==, 8));
  • Set Ability 1 Enabled(Event Player, True);
  • Set Ability 2 Enabled(Event Player, True);
  • Set Secondary Fire Enabled(Event Player, False);
  • Else If(Compare(Player Variable(Event Player, CurrentCheckpoint), ==, 9));
  • Set Ability 1 Enabled(Event Player, False);
  • Set Ability 2 Enabled(Event Player, True);
  • Set Secondary Fire Enabled(Event Player, True);
  • Else If(Compare(Player Variable(Event Player, CurrentCheckpoint), ==, 10));
  • Set Ability 1 Enabled(Event Player, True);
  • Set Ability 2 Enabled(Event Player, False);
  • Set Secondary Fire Enabled(Event Player, False);
  • Else If(Compare(Player Variable(Event Player, CurrentCheckpoint), ==, 11));
  • Set Ability 1 Enabled(Event Player, True);
  • Set Ability 2 Enabled(Event Player, False);
  • Set Secondary Fire Enabled(Event Player, True);
  • Else If(Compare(Player Variable(Event Player, CurrentCheckpoint), ==, 12));
  • Set Ability 1 Enabled(Event Player, True);
  • Set Ability 2 Enabled(Event Player, False);
  • Set Secondary Fire Enabled(Event Player, False);
  • Else If(Compare(Player Variable(Event Player, CurrentCheckpoint), ==, 13));
  • Set Ability 1 Enabled(Event Player, False);
  • Set Ability 2 Enabled(Event Player, True);
  • Set Secondary Fire Enabled(Event Player, False);
  • Else If(Compare(Player Variable(Event Player, CurrentCheckpoint), ==, 14));
  • Set Ability 1 Enabled(Event Player, True);
  • Set Ability 2 Enabled(Event Player, False);
  • Set Secondary Fire Enabled(Event Player, False);
  • Else If(Compare(Player Variable(Event Player, CurrentCheckpoint), ==, 15));
  • Set Ability 1 Enabled(Event Player, True);
  • Set Ability 2 Enabled(Event Player, True);
  • Set Secondary Fire Enabled(Event Player, True);
  • Else;
  • Set Ability 1 Enabled(Event Player, True);
  • Set Ability 2 Enabled(Event Player, True);
  • Set Secondary Fire Enabled(Event Player, True);
  • End;
  • }
  • }
  • rule("Set checkpoints")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • actions
  • {
  • Set Global Variable(CheckpointPositions, Empty Array);
  • Set Global Variable(CheckpointRadius, Empty Array);
  • "--- Start"
  • Set Global Variable(CheckpointPositions, Append To Array(Global Variable(CheckpointPositions), Vector(2.947, 1.599, 11.921)));
  • Set Global Variable(CheckpointRadius, Append To Array(Global Variable(CheckpointRadius), 2.500));
  • "--- Statue"
  • Set Global Variable(CheckpointPositions, Append To Array(Global Variable(CheckpointPositions), Vector(3.297, 5.299, 41.802)));
  • Set Global Variable(CheckpointRadius, Append To Array(Global Variable(CheckpointRadius), 3.850));
  • "--- First control point"
  • Set Global Variable(CheckpointPositions, Append To Array(Global Variable(CheckpointPositions), Vector(2.948, 3.599, 74.192)));
  • Set Global Variable(CheckpointRadius, Append To Array(Global Variable(CheckpointRadius), 2.500));
  • "--- At tank"
  • Set Global Variable(CheckpointPositions, Append To Array(Global Variable(CheckpointPositions), Vector(-26.488, 7.701, 87.481)));
  • Set Global Variable(CheckpointRadius, Append To Array(Global Variable(CheckpointRadius), 2.500));
  • "--- First bridge, upper entrance"
  • Set Global Variable(CheckpointPositions, Append To Array(Global Variable(CheckpointPositions), Vector(-63.110, 8.269, 80.420)));
  • Set Global Variable(CheckpointRadius, Append To Array(Global Variable(CheckpointRadius), 2.500));
  • "--- Second control point"
  • Set Global Variable(CheckpointPositions, Append To Array(Global Variable(CheckpointPositions), Vector(-54.107, 1.305, 110.376)));
  • Set Global Variable(CheckpointRadius, Append To Array(Global Variable(CheckpointRadius), 2.500));
  • "--- After pit near last control point"
  • Set Global Variable(CheckpointPositions, Append To Array(Global Variable(CheckpointPositions), Vector(-110.260, -2.548, 113.069)));
  • Set Global Variable(CheckpointRadius, Append To Array(Global Variable(CheckpointRadius), 2.500));
  • "--- Exit of last defenders spawn"
  • Set Global Variable(CheckpointPositions, Append To Array(Global Variable(CheckpointPositions), Vector(-141.306, 2.452, 104.917)));
  • Set Global Variable(CheckpointRadius, Append To Array(Global Variable(CheckpointRadius), 3.500));
  • "--- Balcony area half way through last control point"
  • Set Global Variable(CheckpointPositions, Append To Array(Global Variable(CheckpointPositions), Vector(-111.281, 6.446, 146.319)));
  • Set Global Variable(CheckpointRadius, Append To Array(Global Variable(CheckpointRadius), 4.500));
  • "--- Above payload spawn"
  • Set Global Variable(CheckpointPositions, Append To Array(Global Variable(CheckpointPositions), Vector(5.829, 7.722, 86.132)));
  • Set Global Variable(CheckpointRadius, Append To Array(Global Variable(CheckpointRadius), 3));
  • "--- Flower fontain at attacker spawn"
  • Set Global Variable(CheckpointPositions, Append To Array(Global Variable(CheckpointPositions), Vector(3.028, -0.102, -6.994)));
  • Set Global Variable(CheckpointRadius, Append To Array(Global Variable(CheckpointRadius), 2.750));
  • "--- Above Mike Morhaime"
  • Set Global Variable(CheckpointPositions, Append To Array(Global Variable(CheckpointPositions), Vector(-77.278, 6.574, 66.153)));
  • Set Global Variable(CheckpointRadius, Append To Array(Global Variable(CheckpointRadius), 3));
  • "--- Second bridge bridge on way to second control point"
  • Set Global Variable(CheckpointPositions, Append To Array(Global Variable(CheckpointPositions), Vector(-62.731, 7.243, 101.033)));
  • Set Global Variable(CheckpointRadius, Append To Array(Global Variable(CheckpointRadius), 2.500));
  • "--- Under second bridge bridge on way to second control point"
  • Set Global Variable(CheckpointPositions, Append To Array(Global Variable(CheckpointPositions), Vector(-61.445, 1.305, 100.506)));
  • Set Global Variable(CheckpointRadius, Append To Array(Global Variable(CheckpointRadius), 2.500));
  • "--- Water side near mr. Shark"
  • Set Global Variable(CheckpointPositions, Append To Array(Global Variable(CheckpointPositions), Vector(-18.564, 1.990, 112.210)));
  • Set Global Variable(CheckpointRadius, Append To Array(Global Variable(CheckpointRadius), 2.500));
  • "--- Flight to Duskwood"
  • Set Global Variable(CheckpointPositions, Append To Array(Global Variable(CheckpointPositions), Vector(-8.276, 7.764, 52.207)));
  • Set Global Variable(CheckpointRadius, Append To Array(Global Variable(CheckpointRadius), 3));
  • "--- Final control point"
  • Set Global Variable(CheckpointPositions, Append To Array(Global Variable(CheckpointPositions), Vector(-122.052, 1.546, 110.544)));
  • Set Global Variable(CheckpointRadius, Append To Array(Global Variable(CheckpointRadius), 3.150));
  • }
  • }
  • rule("Create checkpoint effects for player")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • actions
  • {
  • Wait(0.250, Ignore Condition);
  • Create Effect(Event Player, Ring, Blue, Subtract(Value In Array(Global Variable(CheckpointPositions), Player Variable(Event Player,
  • CurrentCheckpoint)), Vector(0, 1, 0)), Subtract(Value In Array(Global Variable(CheckpointRadius), Player Variable(Event Player,
  • CurrentCheckpoint)), 0.500), Visible To Position and Radius);
  • Create Effect(Event Player, Ring, Blue, Subtract(Value In Array(Global Variable(CheckpointPositions), Add(Player Variable(
  • Event Player, CurrentCheckpoint), 1)), Vector(0, 1, 0)), Subtract(Value In Array(Global Variable(CheckpointRadius), Add(
  • Player Variable(Event Player, CurrentCheckpoint), 1)), 0.500), Visible To Position and Radius);
  • Create Icon(Event Player, Subtract(Value In Array(Global Variable(CheckpointPositions), Add(Player Variable(Event Player,
  • CurrentCheckpoint), 1)), Vector(0, 1, 0)), Flag, Visible To and Position, Blue, True);
  • }
  • }
  • rule("Player has entered Checkpoint")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is Alive(Event Player) == True;
  • Is On Ground(Event Player) == True;
  • Distance Between(Position Of(Event Player), Value In Array(Global Variable(CheckpointPositions), Add(Player Variable(Event Player,
  • CurrentCheckpoint), 1))) <= Value In Array(Global Variable(CheckpointRadius), Add(Player Variable(Event Player,
  • CurrentCheckpoint), 1));
  • Add(Player Variable(Event Player, CurrentCheckpoint), 1) < Count Of(Global Variable(CheckpointPositions));
  • }
  • actions
  • {
  • Play Effect(Event Player, Buff Impact Sound, White, Event Player, 100);
  • Play Effect(All Players(All Teams), Good Explosion, Sky Blue, Event Player, 5);
  • Modify Player Variable(Event Player, CurrentCheckpoint, Add, 1);
  • Small Message(Event Player, Custom String("Checkpoint {0} / {1} reached", Player Variable(Event Player, CurrentCheckpoint),
  • Subtract(Count Of(Global Variable(CheckpointPositions)), 1), Null));
  • Call Subroutine(ResetJumpPads);
  • Call Subroutine(SetCurrentRingsArray);
  • Call Subroutine(SetAvailableAbilities);
  • }
  • }
  • rule("Disable jumping for specific checkpoint")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Player Variable(Event Player, CurrentCheckpoint) == 12;
  • }
  • actions
  • {
  • Disallow Button(Event Player, Jump);
  • }
  • }
  • rule("Enable jumping for non-specific checkpoints")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Player Variable(Event Player, CurrentCheckpoint) != 12;
  • }
  • actions
  • {
  • Allow Button(Event Player, Jump);
  • }
  • }
  • disabled rule("Rings")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • }
  • rule("Ring positions")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • actions
  • {
  • "------------------------"
  • Set Global Variable(RingPositions, Append To Array(Global Variable(RingPositions), 5));
  • Set Global Variable(RingPositions, Append To Array(Global Variable(RingPositions), Vector(-71.538, 5.299, 125.205)));
  • "------------------------"
  • Set Global Variable(RingPositions, Append To Array(Global Variable(RingPositions), 6));
  • Set Global Variable(RingPositions, Append To Array(Global Variable(RingPositions), Vector(-122.073, 6.547, 110.555)));
  • "------------------------"
  • Set Global Variable(RingPositions, Append To Array(Global Variable(RingPositions), 8));
  • Set Global Variable(RingPositions, Append To Array(Global Variable(RingPositions), Vector(-61.614, 14.499, 118.687)));
  • "------------------------"
  • Set Global Variable(RingPositions, Append To Array(Global Variable(RingPositions), 10));
  • Set Global Variable(RingPositions, Append To Array(Global Variable(RingPositions), Vector(3, 6.604, 28.235)));
  • Set Global Variable(RingPositions, Append To Array(Global Variable(RingPositions), Vector(3, 15.302, 43.733)));
  • Set Global Variable(RingPositions, Append To Array(Global Variable(RingPositions), Vector(-17.081, 17, 73.483)));
  • Set Global Variable(RingPositions, Append To Array(Global Variable(RingPositions), Vector(-47.842, 2.494, 63.699)));
  • "------------------------"
  • Set Global Variable(RingPositions, Append To Array(Global Variable(RingPositions), 14));
  • Set Global Variable(RingPositions, Append To Array(Global Variable(RingPositions), Vector(4.751, 17.730, 132.878)));
  • Set Global Variable(RingPositions, Append To Array(Global Variable(RingPositions), Vector(29.246, 15.927, 110.057)));
  • Set Global Variable(RingPositions, Append To Array(Global Variable(RingPositions), Vector(18.788, 10.699, 78.598)));
  • }
  • }
  • rule("Subroutine - Set current rings array")
  • {
  • event
  • {
  • Subroutine;
  • SetCurrentRingsArray;
  • }
  • actions
  • {
  • Wait(0.100, Ignore Condition);
  • Set Player Variable(Event Player, CutOffArray, False);
  • "Get the rings starting from current checkpoint"
  • Set Player Variable(Event Player, CurrentCheckpointRingsArray, Array Slice(Global Variable(RingPositions), Index Of Array Value(
  • Global Variable(RingPositions), Player Variable(Event Player, CurrentCheckpoint)), 10));
  • "Remove checkpoint number value"
  • Set Player Variable(Event Player, CurrentCheckpointRingsArray, Remove From Array(Player Variable(Event Player,
  • CurrentCheckpointRingsArray), Player Variable(Event Player, CurrentCheckpoint)));
  • For Player Variable(Event Player, RingsArrayLoop, 0, Count Of(Player Variable(Event Player, CurrentCheckpointRingsArray)), 1);
  • "Check if value is a vector, if it is, remove all further elements"
  • If(Compare(Y Component Of(Value In Array(Player Variable(Event Player, CurrentCheckpointRingsArray), Player Variable(Event Player,
  • RingsArrayLoop))), ==, 0));
  • Set Player Variable(Event Player, CutOffArray, True);
  • End;
  • If(Player Variable(Event Player, CutOffArray));
  • Set Player Variable(Event Player, CurrentCheckpointRingsArray, Remove From Array(Player Variable(Event Player,
  • CurrentCheckpointRingsArray), Value In Array(Player Variable(Event Player, CurrentCheckpointRingsArray), Player Variable(
  • Event Player, RingsArrayLoop))));
  • Modify Player Variable(Event Player, RingsArrayLoop, Subtract, 1);
  • End;
  • End;
  • }
  • }
  • rule("Create ring effects")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • actions
  • {
  • Wait(0.250, Ignore Condition);
  • Wait(0.250, Ignore Condition);
  • Create Effect(Filtered Array(Event Player, Compare(Count Of(Player Variable(Event Player, CurrentCheckpointRingsArray)), >, 0)),
  • Good Aura, Yellow, Value In Array(Player Variable(Event Player, CurrentCheckpointRingsArray), 0), 1.500,
  • Visible To Position and Radius);
  • Create Effect(Filtered Array(Event Player, Compare(Count Of(Player Variable(Event Player, CurrentCheckpointRingsArray)), >, 0)),
  • Good Aura, Yellow, Value In Array(Player Variable(Event Player, CurrentCheckpointRingsArray), 1), 1.500,
  • Visible To Position and Radius);
  • Create Effect(Filtered Array(Event Player, Compare(Count Of(Player Variable(Event Player, CurrentCheckpointRingsArray)), >, 0)),
  • Good Aura, Yellow, Value In Array(Player Variable(Event Player, CurrentCheckpointRingsArray), 2), 1.500,
  • Visible To Position and Radius);
  • Create Effect(Filtered Array(Event Player, Compare(Count Of(Player Variable(Event Player, CurrentCheckpointRingsArray)), >, 0)),
  • Good Aura, Yellow, Value In Array(Player Variable(Event Player, CurrentCheckpointRingsArray), 3), 1.500,
  • Visible To Position and Radius);
  • }
  • }
  • rule("Check if player is in Ring")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is In Air(Event Player) == True;
  • Is True For Any(Player Variable(Event Player, CurrentCheckpointRingsArray), And(Compare(Distance Between(Current Array Element,
  • Event Player), <=, 2.500), Compare(Y Component Of(Current Array Element), !=, 0))) == True;
  • }
  • actions
  • {
  • For Player Variable(Event Player, FindRingLoop, 0, Count Of(Player Variable(Event Player, CurrentCheckpointRingsArray)), 1);
  • If(Compare(Distance Between(Event Player, Value In Array(Player Variable(Event Player, CurrentCheckpointRingsArray),
  • Player Variable(Event Player, FindRingLoop))), <=, 2.500));
  • Set Player Variable(Event Player, CurrentCheckpointRingsArray, Remove From Array(Player Variable(Event Player,
  • CurrentCheckpointRingsArray), Value In Array(Player Variable(Event Player, CurrentCheckpointRingsArray), Player Variable(
  • Event Player, FindRingLoop))));
  • Set Player Variable(Event Player, FindRingLoop, 10);
  • End;
  • End;
  • Small Message(Event Player, Custom String("You picked up a ring!", Null, Null, Null));
  • Set Ability 1 Enabled(Event Player, True);
  • Play Effect(Event Player, Ring Explosion Sound, White, Event Player, 90);
  • }
  • }
  • disabled rule("Death zone")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • }
  • rule("Player is on the ground and not in a checkpoint")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is In Spawn Room(Event Player) != True;
  • Is Alive(Event Player) == True;
  • Is On Ground(Event Player) == True;
  • Or(Compare(Distance Between(Position Of(Event Player), Value In Array(Global Variable(CheckpointPositions), Add(Player Variable(
  • Event Player, CurrentCheckpoint), 1))), <=, Value In Array(Global Variable(CheckpointRadius), Add(Player Variable(Event Player,
  • CurrentCheckpoint), 1))), Compare(Distance Between(Position Of(Event Player), Value In Array(Global Variable(
  • CheckpointPositions), Player Variable(Event Player, CurrentCheckpoint))), <=, Value In Array(Global Variable(CheckpointRadius),
  • Player Variable(Event Player, CurrentCheckpoint)))) != True;
  • }
  • actions
  • {
  • Kill(Event Player, Null);
  • }
  • }
  • disabled rule("Sticky bomb")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • }
  • rule("Create Sticky Bomb jump pads")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is Firing Secondary(Event Player) == True;
  • }
  • actions
  • {
  • Set Player Variable(Event Player, JumpPadLocations, Empty Array);
  • For Player Variable(Event Player, JumpPadLoop, 0, 6, 1);
  • Wait(0.065, Ignore Condition);
  • Set Player Variable At Index(Event Player, JumpPadLocations, Player Variable(Event Player, JumpPadLoop), Ray Cast Hit Position(
  • Eye Position(Event Player), Add(Eye Position(Event Player), Multiply(Facing Direction Of(Event Player), 200)), Null,
  • All Players(All Teams), False));
  • End;
  • Set Secondary Fire Enabled(Event Player, False);
  • }
  • }
  • rule("Remove previous effects")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is Firing Secondary(Event Player) == True;
  • }
  • actions
  • {
  • For Player Variable(Event Player, RemoveEffectsLoop, 0, Count Of(Player Variable(Event Player, JumpPadEffects)), 1);
  • Destroy Effect(Value In Array(Player Variable(Event Player, JumpPadEffects), Player Variable(Event Player, RemoveEffectsLoop)));
  • End;
  • }
  • }
  • rule("[0] Sticky bomb pad delay")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Value In Array(Player Variable(Event Player, JumpPadLocations), 0) != 0;
  • }
  • actions
  • {
  • Wait(Divide(Distance Between(Position Of(Event Player), Value In Array(Player Variable(Event Player, JumpPadLocations), 0)), 50),
  • Ignore Condition);
  • Create Effect(Event Player, Sphere, Green, Value In Array(Player Variable(Event Player, JumpPadLocations), 0), 1, None);
  • Set Player Variable At Index(Event Player, JumpPadEffects, 0, Last Created Entity);
  • }
  • }
  • rule("[1] Sticky bomb pad delay")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Value In Array(Player Variable(Event Player, JumpPadLocations), 1) != 0;
  • }
  • actions
  • {
  • Wait(Divide(Distance Between(Position Of(Event Player), Value In Array(Player Variable(Event Player, JumpPadLocations), 1)), 50),
  • Ignore Condition);
  • Create Effect(Event Player, Sphere, Green, Value In Array(Player Variable(Event Player, JumpPadLocations), 1), 1, None);
  • Set Player Variable At Index(Event Player, JumpPadEffects, 1, Last Created Entity);
  • }
  • }
  • rule("[2] Sticky bomb pad delay")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Value In Array(Player Variable(Event Player, JumpPadLocations), 2) != 0;
  • }
  • actions
  • {
  • Wait(Divide(Distance Between(Position Of(Event Player), Value In Array(Player Variable(Event Player, JumpPadLocations), 2)), 50),
  • Ignore Condition);
  • Create Effect(Event Player, Sphere, Green, Value In Array(Player Variable(Event Player, JumpPadLocations), 2), 1, None);
  • Set Player Variable At Index(Event Player, JumpPadEffects, 2, Last Created Entity);
  • }
  • }
  • rule("[3] Sticky bomb pad delay")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Value In Array(Player Variable(Event Player, JumpPadLocations), 3) != 0;
  • }
  • actions
  • {
  • Wait(Divide(Distance Between(Position Of(Event Player), Value In Array(Player Variable(Event Player, JumpPadLocations), 3)), 50),
  • Ignore Condition);
  • Create Effect(Event Player, Sphere, Green, Value In Array(Player Variable(Event Player, JumpPadLocations), 3), 1, None);
  • Set Player Variable At Index(Event Player, JumpPadEffects, 3, Last Created Entity);
  • }
  • }
  • rule("[4] Sticky bomb pad delay")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Value In Array(Player Variable(Event Player, JumpPadLocations), 4) != 0;
  • }
  • actions
  • {
  • Wait(Divide(Distance Between(Position Of(Event Player), Value In Array(Player Variable(Event Player, JumpPadLocations), 4)), 50),
  • Ignore Condition);
  • Create Effect(Event Player, Sphere, Green, Value In Array(Player Variable(Event Player, JumpPadLocations), 4), 1, None);
  • Set Player Variable At Index(Event Player, JumpPadEffects, 4, Last Created Entity);
  • }
  • }
  • rule("[5] Sticky bomb pad delay")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Value In Array(Player Variable(Event Player, JumpPadLocations), 5) != 0;
  • }
  • actions
  • {
  • Wait(Divide(Distance Between(Position Of(Event Player), Value In Array(Player Variable(Event Player, JumpPadLocations), 5)), 50),
  • Ignore Condition);
  • Create Effect(Event Player, Sphere, Green, Value In Array(Player Variable(Event Player, JumpPadLocations), 5), 1, None);
  • Set Player Variable At Index(Event Player, JumpPadEffects, 5, Last Created Entity);
  • }
  • }
  • rule("Check if player is on jump pad")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is True For Any(Player Variable(Event Player, JumpPadLocations), Compare(Distance Between(Current Array Element, Event Player), <=,
  • 3)) == True;
  • }
  • actions
  • {
  • For Player Variable(Event Player, FindJumpPadLoop, 0, Count Of(Player Variable(Event Player, JumpPadLocations)), 1);
  • If(Compare(Distance Between(Event Player, Value In Array(Player Variable(Event Player, JumpPadLocations), Player Variable(
  • Event Player, FindJumpPadLoop))), <=, 3));
  • Set Player Variable At Index(Event Player, JumpPadLocations, Player Variable(Event Player, FindJumpPadLoop), Vector(0, 0, 0));
  • Destroy Effect(Value In Array(Player Variable(Event Player, JumpPadEffects), Player Variable(Event Player, FindJumpPadLoop)));
  • Set Player Variable(Event Player, FindJumpPadLoop, 6);
  • End;
  • End;
  • Apply Impulse(Event Player, Up, 15, To World, Cancel Contrary Motion);
  • Play Effect(Event Player, Explosion Sound, White, Event Player, 50);
  • }
  • }
  • rule("Subroutine - Reset jump pads")
  • {
  • event
  • {
  • Subroutine;
  • ResetJumpPads;
  • }
  • actions
  • {
  • For Player Variable(Event Player, RemoveEffectsLoop, 0, Count Of(Player Variable(Event Player, JumpPadEffects)), 1);
  • Destroy Effect(Value In Array(Player Variable(Event Player, JumpPadEffects), Player Variable(Event Player, RemoveEffectsLoop)));
  • End;
  • Set Player Variable(Event Player, JumpPadLocations, Empty Array);
  • Set Player Variable(Event Player, JumpPadEffects, Empty Array);
  • }
  • }
  • disabled rule("Flight")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • }
  • rule("Disable flight after using it")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is Using Ability 1(Event Player) == True;
  • }
  • actions
  • {
  • Disallow Button(Event Player, Ability 1);
  • Wait(0.230, Ignore Condition);
  • Allow Button(Event Player, Ability 1);
  • Wait(0.020, Ignore Condition);
  • Press Button(Event Player, Ability 1);
  • Wait(0.020, Ignore Condition);
  • Set Ability 1 Enabled(Event Player, False);
  • }
  • }
  • rule("Cheat control")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is Using Ability 1(Event Player) == True;
  • }
  • actions
  • {
  • Wait(0.650, Abort When False);
  • Small Message(Event Player, Custom String("It looks like you encountered a bug by spamming [Ability 1]. Sorry.", Null, Null,
  • Null));
  • Kill(Event Player, Null);
  • }
  • }
  • disabled rule("Beam - Grapple Hook")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • }
  • rule("Get position of grapple")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is Using Ability 2(Event Player) == True;
  • }
  • actions
  • {
  • Set Player Variable(Event Player, GrapplePoint, Ray Cast Hit Position(Eye Position(Event Player), Add(Eye Position(Event Player),
  • Multiply(Facing Direction Of(Event Player), 200)), Null, All Players(All Teams), False));
  • If(Compare(Distance Between(Position Of(Event Player), Player Variable(Event Player, GrapplePoint)), <=, 20));
  • Set Player Variable(Event Player, IsGrappling, True);
  • Create Beam Effect(All Players(All Teams), Good Beam, Event Player, Player Variable(Event Player, GrapplePoint), Sky Blue,
  • Visible To Position and Radius);
  • Set Player Variable(Event Player, GrappleEffect, Last Created Entity);
  • End;
  • }
  • }
  • rule("Is using Grapple")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Player Variable(Event Player, IsGrappling) == True;
  • Is Using Ability 2(Event Player) == True;
  • }
  • actions
  • {
  • Apply Impulse(Event Player, Vector Towards(Position Of(Event Player), Player Variable(Event Player, GrapplePoint)), Max(Min(Divide(
  • Distance Between(Position Of(Event Player), Player Variable(Event Player, GrapplePoint)), 7.500), 2), 1.500), To World,
  • Incorporate Contrary Motion);
  • Wait(0.035, Ignore Condition);
  • Loop If Condition Is True;
  • }
  • }
  • rule("Is no longer using Grapple")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is Using Ability 2(Event Player) != True;
  • }
  • actions
  • {
  • Set Player Variable(Event Player, IsGrappling, False);
  • Destroy Effect(Player Variable(Event Player, GrappleEffect));
  • }
  • }
  • disabled rule("Misc stuff")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • }
  • rule("Reset yourself")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is Button Held(Event Player, Reload) == True;
  • }
  • actions
  • {
  • Kill(Event Player, Null);
  • }
  • }
  • rule("Reset on death")
  • {
  • event
  • {
  • Player Died;
  • All;
  • All;
  • }
  • actions
  • {
  • Set Status(Event Player, Null, Hacked, 0.250);
  • Teleport(Event Player, Add(Value In Array(Global Variable(CheckpointPositions), Player Variable(Event Player, CurrentCheckpoint)),
  • Vector(0, 0.250, 0)));
  • Call Subroutine(SetCurrentRingsArray);
  • If(Compare(Count Of(Player Variable(Event Player, CurrentCheckpointRingsArray)), >, 0));
  • Set Facing(Event Player, Direction Towards(Eye Position(Event Player), Value In Array(Player Variable(Event Player,
  • CurrentCheckpointRingsArray), 0)), To World);
  • Else;
  • Set Facing(Event Player, Direction Towards(Eye Position(Event Player), Value In Array(Global Variable(CheckpointPositions), Add(
  • Player Variable(Event Player, CurrentCheckpoint), 1))), To World);
  • End;
  • Resurrect(Event Player);
  • Wait(0.020, Ignore Condition);
  • Apply Impulse(Event Player, Down, 1, To Player, Cancel Contrary Motion);
  • Call Subroutine(ResetJumpPads);
  • Call Subroutine(SetAvailableAbilities);
  • }
  • }
  • rule("Full reset")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is Button Held(Event Player, Interact) == True;
  • Is Button Held(Event Player, Ultimate) == True;
  • Is Button Held(Event Player, Crouch) == True;
  • }
  • actions
  • {
  • Set Player Variable(Event Player, CurrentCheckpoint, 0);
  • Set Player Variable(Event Player, Timer, 0);
  • Set Player Variable(Event Player, TimerChase, 0);
  • Kill(Event Player, Null);
  • }
  • }
  • rule("Last Checkpoint reached")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Add(Player Variable(Event Player, CurrentCheckpoint), 1) == Count Of(Global Variable(CheckpointPositions));
  • }
  • actions
  • {
  • Set Player Variable(Event Player, FinalTime, Player Variable(Event Player, Timer));
  • Set Player Variable(Event Player, TimerChase, Player Variable(Event Player, FinalTime));
  • Create HUD Text(Event Player, Null, Custom String("Final time: {0}", Player Variable(Event Player, FinalTime), Null, Null), Null,
  • Top, 1, White, Orange, White, Visible To and String, Default Visibility);
  • If(Compare(Player Variable(Event Player, BestTime), >, 0));
  • Set Player Variable(Event Player, BestTime, Min(Player Variable(Event Player, FinalTime), Player Variable(Event Player,
  • BestTime)));
  • Else;
  • Set Player Variable(Event Player, BestTime, Player Variable(Event Player, FinalTime));
  • End;
  • Create HUD Text(Event Player, Null, Custom String("Your best time: {0}", Player Variable(Event Player, BestTime), Null, Null),
  • Null, Top, 2, White, Turquoise, White, Visible To and String, Default Visibility);
  • Big Message(All Players(All Teams), Custom String("{0} Completed the course in {1}!", Event Player, Player Variable(Event Player,
  • FinalTime), Null));
  • Play Effect(All Players(All Teams), Good Explosion, Sky Blue, Event Player, 15);
  • Play Effect(All Players(All Teams), Good Explosion, Blue, Event Player, 10);
  • Play Effect(All Players(All Teams), Buff Explosion Sound, White, Event Player, 100);
  • }
  • }
  • rule("Infinite match timer")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • conditions
  • {
  • Match Time < 1800;
  • }
  • actions
  • {
  • Set Match Time(3599);
  • }
  • }
  • rule("Disable inspector")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • actions
  • {
  • Disable Inspector Recording;
  • }
  • }
Join the Workshop.codes Discord