Treasure Hunt

4R8R8

Treasure Hunt is a new take on the hide-and-seek gamemode, where you must first hide your treasure, and then be the first to find all the treasure around the map placed by the other players!

The game is split into 2 Phases:
Hiding Phase: You have 50 seconds to hide your treasure somewhere on the map. Press your interact key to place your treasure where your character is.
Seeking Phase: The aim to find everyone's hidden treasure first, or find the most before the time runs out! Simply run into a treasure orb to collect it.

Press your ultimate button to use your RADAR, which tells you the distance to the closest treasure (on a 50 sec cooldown). If there's enough players and the map is large enough, you can use teleporters to get to other parts of the map!

Good luck!

Code Snippet

View variables

Rules

No Rules are declared.
settings { main { Description: "Treasure Hunt v3.0 - By Parachor#1837 // Hide your treasure somewhere on the map, then try and be the first person to find everyone's treasure!" } lobby { Allow Players Who Are In Queue: Yes Map Rotation: After A Game Match Voice Chat: Enabled Max FFA Players: 10 Max Spectators: 6 Return To Lobby: Never } modes { Deathmatch { Game Length In Minutes: 9 Score To Win: 10 disabled maps { Workshop Expanse } } General { Allow Hero Switching: Off Enemy Health Bars: Off Game Mode Start: Immediately Hero Limit: Off Kill Feed: Off Respawn Time Scalar: 10% Spawn Health Packs: Disabled } } heroes { General { Damage Dealt: 10% Damage Received: 10% Movement Speed: 150% Ultimate Ability: Off Ashe { Coach Gun Cooldown Time: 50% } Junkrat { Concussion Mine Cooldown Time: 50% } Mei { Ice Wall Cooldown Time: 50% } Moira { Fade Cooldown Time: 70% } Reinhardt { Charge Cooldown Time: 60% } Symmetra { Teleporter Cooldown Time: 20% } Widowmaker { Grappling Hook Cooldown Time: 50% } Winston { Jump Pack Cooldown Time: 80% } } } } variables { global: 0: SeekingPhase 1: TreasureList 2: TreasureNo 3: SetupTime 4: RedPos 5: OrangePos 6: YellowPos 7: LimeGreenPos 8: GreenPos 9: TurquoisePos 10: AquaPos 11: SkyBluePos 12: BluePos 13: PurplePos 14: SetNo 15: TeleA1 16: TeleA2 17: TeleB1 18: TeleB2 19: Draw 20: MapHasTele 21: TeleActivated 22: RoundHero 23: BasisArray 25: ChangoverTime player: 0: Placement 1: HasPlaced 2: TreasureOrb 3: RedFound 4: OrangeFound 5: YellowFound 6: LimeGreenFound 7: GreenFound 8: TurquoiseFound 9: AquaFound 10: SkyBlueFound 11: BlueFound 12: PurpleFound 13: RedText 14: OrangeText 15: YellowText 16: LimeGreenText 17: GreenText 18: TurquoiseText 19: AquaText 20: SkyBlueText 21: BlueText 22: PurpleText 23: TeleCooldown 24: RadarCD 25: RemainingPos } rule("Permanent Setup") { event { Ongoing - Each Player; All; All; } actions { Set Status(Event Player, Null, Phased Out, 9999); disabled Create HUD Text(Event Player, Null, Null, Custom String("TREASURE HUNT v3.0 - BY PARACHOR", Null, Null, Null), Right, 0, White, White, Aqua, Visible To and String, Default Visibility); Set Player Variable(Event Player, RadarCD, 0); Set Player Variable(Event Player, RemainingPos, Empty Array); } } rule("Invis") { event { Ongoing - Each Player; All; All; } conditions { Global Variable(SeekingPhase) == False; } actions { Set Invisible(Event Player, All); } } rule("Disable/Enable Teleporters") { event { Ongoing - Global; } conditions { Global Variable(SeekingPhase) == False; } actions { Set Global Variable(TeleActivated, False); Wait(8, Ignore Condition); Abort If(Compare(Number of Players(All Teams), <=, 5)); Set Global Variable(TeleActivated, True); } } rule("Ignore Setup") { event { Ongoing - Global; } conditions { Or(Is Assembling Heroes, Is In Setup) == True; } actions { Set Match Time(0); } } rule("Hiding Phase") { event { Ongoing - Global; } conditions { Global Variable(SeekingPhase) == False; } actions { Create HUD Text(All Players(All Teams), Custom String("Hiding Phase", Null, Null, Null), Custom String( "Press Interact to hide your treasure!", Null, Null, Null), String("{0}: {1}", Custom String("Time Remaining", Null, Null, Null), Global Variable(SetupTime), Null), Top, 1, White, White, White, Visible To and String, Default Visibility); Set Global Variable(BasisArray, Empty Array); Set Global Variable(RoundHero, Random Value In Array(All Heroes)); Start Forcing Player To Be Hero(All Players(All Teams), Global Variable(RoundHero)); Set Global Variable(TreasureList, Empty Array); Set Global Variable(SetupTime, 50); Chase Global Variable Over Time(SetupTime, 0, 50, Destination and Duration); Set Global Variable(ChangoverTime, 3); Set Global Variable(Draw, True); Disable Built-In Game Mode Music; Disable Built-In Game Mode Scoring; } } rule("Force Hero") { event { Ongoing - Each Player; All; All; } conditions { Hero Of(Event Player) != Global Variable(RoundHero); } actions { Start Forcing Player To Be Hero(Event Player, Global Variable(RoundHero)); } } rule("Interact to Hide Treasure") { event { Ongoing - Each Player; All; All; } conditions { Is Button Held(Event Player, Interact) == True; Global Variable(SeekingPhase) == False; Is Alive(Event Player) == True; } actions { If(Compare(Player Variable(Event Player, TreasureOrb), !=, 0)); Destroy Effect(Player Variable(Event Player, TreasureOrb)); End; Set Player Variable(Event Player, Placement, Position Of(Event Player)); Set Player Variable(Event Player, HasPlaced, True); Create Effect(Event Player, Sphere, White, Add(Position Of(Event Player), Vector(0, 0.500, 0)), 0.250, None); Set Player Variable(Event Player, TreasureOrb, Last Created Entity); } } rule("Force Hide") { event { Ongoing - Each Player; All; All; } conditions { Global Variable(SeekingPhase) == False; Global Variable(SetupTime) <= 1; Player Variable(Event Player, HasPlaced) == False; Has Spawned(Event Player) == True; Is Alive(Event Player) == True; } actions { Set Player Variable(Event Player, Placement, Position Of(Event Player)); Set Player Variable(Event Player, HasPlaced, True); disabled Press Button(Event Player, Interact); } } rule("Phase Changeover") { event { Ongoing - Global; } conditions { Global Variable(SeekingPhase) == False; Global Variable(SetupTime) == 0; } actions { Respawn(All Players(All Teams)); Set Global Variable(SeekingPhase, True); Chase Global Variable Over Time(ChangoverTime, 0, 3.500, Destination and Duration); Destroy All HUD Text; Destroy All Effects; Set Status(All Players(All Teams), Null, Rooted, 9999); Set Invisible(All Players(All Teams), None); Wait(1, Ignore Condition); Small Message(All Players(All Teams), Custom String("Ready", Null, Null, Null)); Wait(1, Ignore Condition); Small Message(All Players(All Teams), Custom String("Set", Null, Null, Null)); Wait(1, Ignore Condition); Small Message(All Players(All Teams), Custom String("Hunt!", Null, Null, Null)); Clear Status(All Players(All Teams), Rooted); } } rule("Add To Treasure List") { event { Ongoing - Each Player; All; All; } conditions { Global Variable(SeekingPhase) == True; Player Variable(Event Player, HasPlaced) == True; } actions { Modify Global Variable(TreasureList, Append To Array, Player Variable(Event Player, Placement)); Modify Global Variable(TreasureNo, Add, 1); } } rule("Seeking Setup") { event { Ongoing - Each Player; All; All; } conditions { Global Variable(SeekingPhase) == True; Global Variable(SetupTime) == 0; Global Variable(ChangoverTime) == 0; } actions { Set Player Score(Event Player, Subtract(10, Global Variable(TreasureNo))); Create HUD Text(Event Player, Custom String("Seeking Phase", Null, Null, Null), Custom String("Find all the treasure orbs!", Null, Null, Null), Custom String("RADAR Ready in {0} seconds. (Press Q to Use)", Round To Integer(Player Variable(Event Player, RadarCD), Up), Null, Null), Left, 0, White, White, White, Visible To and String, Default Visibility); Create HUD Text(Event Player, Null, Null, Custom String("TREASURE HUNT v3.0 - BY PARACHOR", Null, Null, Null), Right, 0, White, White, Aqua, Visible To and String, Default Visibility); Set Global Variable(Draw, True); Set Player Variable(Event Player, RedFound, False); Set Player Variable(Event Player, OrangeFound, False); Set Player Variable(Event Player, YellowFound, False); Set Player Variable(Event Player, LimeGreenFound, False); Set Player Variable(Event Player, GreenFound, False); Set Player Variable(Event Player, TurquoiseFound, False); Set Player Variable(Event Player, AquaFound, False); Set Player Variable(Event Player, SkyBlueFound, False); Set Player Variable(Event Player, BlueFound, False); Set Player Variable(Event Player, PurpleFound, False); Create HUD Text(Event Player, Null, Null, Custom String("Find the red treasure", Null, Null, Null), Left, 1, White, White, Red, Visible To and String, Default Visibility); Set Player Variable(Event Player, RedText, Last Text ID); Abort If(Compare(Global Variable(TreasureNo), <, 2)); Create HUD Text(Event Player, Null, Null, Custom String("Find the orange treasure", Null, Null, Null), Left, 2, White, White, Orange, Visible To and String, Default Visibility); Set Player Variable(Event Player, OrangeText, Last Text ID); Abort If(Compare(Global Variable(TreasureNo), <, 3)); Create HUD Text(Event Player, Null, Null, Custom String("Find the yellow treasure", Null, Null, Null), Left, 3, White, White, Yellow, Visible To and String, Default Visibility); Set Player Variable(Event Player, YellowText, Last Text ID); Abort If(Compare(Global Variable(TreasureNo), <, 4)); Create HUD Text(Event Player, Null, Null, Custom String("Find the lime green treasure", Null, Null, Null), Left, 4, White, White, Lime Green, Visible To and String, Default Visibility); Set Player Variable(Event Player, LimeGreenText, Last Text ID); Abort If(Compare(Global Variable(TreasureNo), <, 5)); Create HUD Text(Event Player, Null, Null, Custom String("Find the green treasure", Null, Null, Null), Left, 5, White, White, Green, Visible To and String, Default Visibility); Set Player Variable(Event Player, GreenText, Last Text ID); Abort If(Compare(Global Variable(TreasureNo), <, 6)); Create HUD Text(Event Player, Null, Null, Custom String("Find the turquoise treasure", Null, Null, Null), Left, 6, White, White, Turquoise, Visible To and String, Default Visibility); Set Player Variable(Event Player, TurquoiseText, Last Text ID); Abort If(Compare(Global Variable(TreasureNo), <, 7)); Create HUD Text(Event Player, Null, Null, Custom String("Find the aqua treasure", Null, Null, Null), Left, 7, White, White, Aqua, Visible To and String, Default Visibility); Set Player Variable(Event Player, AquaText, Last Text ID); Abort If(Compare(Global Variable(TreasureNo), <, 8)); Create HUD Text(Event Player, Null, Null, Custom String("Find the sky blue treasure", Null, Null, Null), Left, 8, White, White, Sky Blue, Visible To and String, Default Visibility); Set Player Variable(Event Player, SkyBlueText, Last Text ID); Abort If(Compare(Global Variable(TreasureNo), <, 9)); Create HUD Text(Event Player, Null, Null, Custom String("Find the blue treasure", Null, Null, Null), Left, 9, White, White, Blue, Visible To and String, Default Visibility); Set Player Variable(Event Player, BlueText, Last Text ID); Abort If(Compare(Global Variable(TreasureNo), <, 10)); Create HUD Text(Event Player, Null, Null, Custom String("Find the purple treasure", Null, Null, Null), Left, 10, White, White, Purple, Visible To and String, Default Visibility); Set Player Variable(Event Player, PurpleText, Last Text ID); } } rule("Set Red") { event { Ongoing - Global; } conditions { Global Variable(SeekingPhase) == True; Global Variable(TreasureNo) >= 1; Global Variable(ChangoverTime) == 0; } actions { Set Global Variable(RedPos, Value In Array(Global Variable(TreasureList), 0)); Create Effect(All Players(All Teams), Sphere, Red, Add(Global Variable(RedPos), Vector(0, 0.500, 0)), 0.250, Visible To Position and Radius); Modify Global Variable(SetNo, Add, 1); Modify Global Variable(BasisArray, Append To Array, Global Variable(RedPos)); } } rule("Set Orange") { event { Ongoing - Global; } conditions { Global Variable(SeekingPhase) == True; Global Variable(TreasureNo) >= 2; Global Variable(ChangoverTime) == 0; } actions { Set Global Variable(OrangePos, Value In Array(Global Variable(TreasureList), 1)); Create Effect(All Players(All Teams), Sphere, Orange, Add(Global Variable(OrangePos), Vector(0, 0.500, 0)), 0.250, Visible To Position and Radius); Modify Global Variable(SetNo, Add, 1); Modify Global Variable(BasisArray, Append To Array, Global Variable(OrangePos)); } } rule("Set Yellow") { event { Ongoing - Global; } conditions { Global Variable(SeekingPhase) == True; Global Variable(TreasureNo) >= 3; Global Variable(ChangoverTime) == 0; } actions { Set Global Variable(YellowPos, Value In Array(Global Variable(TreasureList), 2)); Create Effect(All Players(All Teams), Sphere, Yellow, Add(Global Variable(YellowPos), Vector(0, 0.500, 0)), 0.250, Visible To Position and Radius); Modify Global Variable(SetNo, Add, 1); Modify Global Variable(BasisArray, Append To Array, Global Variable(YellowPos)); } } rule("Set Lime Green") { event { Ongoing - Global; } conditions { Global Variable(SeekingPhase) == True; Global Variable(TreasureNo) >= 4; Global Variable(ChangoverTime) == 0; } actions { Set Global Variable(LimeGreenPos, Value In Array(Global Variable(TreasureList), 3)); Create Effect(All Players(All Teams), Sphere, Lime Green, Add(Global Variable(LimeGreenPos), Vector(0, 0.500, 0)), 0.250, Visible To Position and Radius); Modify Global Variable(SetNo, Add, 1); Modify Global Variable(BasisArray, Append To Array, Global Variable(LimeGreenPos)); } } rule("Set Green") { event { Ongoing - Global; } conditions { Global Variable(SeekingPhase) == True; Global Variable(TreasureNo) >= 5; Global Variable(ChangoverTime) == 0; } actions { Set Global Variable(GreenPos, Value In Array(Global Variable(TreasureList), 4)); Create Effect(All Players(All Teams), Sphere, Green, Add(Global Variable(GreenPos), Vector(0, 0.500, 0)), 0.250, Visible To Position and Radius); Modify Global Variable(SetNo, Add, 1); Modify Global Variable(BasisArray, Append To Array, Global Variable(GreenPos)); } } rule("Set Turquoise") { event { Ongoing - Global; } conditions { Global Variable(SeekingPhase) == True; Global Variable(TreasureNo) >= 6; Global Variable(ChangoverTime) == 0; } actions { Set Global Variable(TurquoisePos, Value In Array(Global Variable(TreasureList), 5)); Create Effect(All Players(All Teams), Sphere, Turquoise, Add(Global Variable(TurquoisePos), Vector(0, 0.500, 0)), 0.250, Visible To Position and Radius); Modify Global Variable(SetNo, Add, 1); Modify Global Variable(BasisArray, Append To Array, Global Variable(TurquoisePos)); } } rule("Set Aqua") { event { Ongoing - Global; } conditions { Global Variable(SeekingPhase) == True; Global Variable(TreasureNo) >= 7; Global Variable(ChangoverTime) == 0; } actions { Set Global Variable(AquaPos, Value In Array(Global Variable(TreasureList), 6)); Create Effect(All Players(All Teams), Sphere, Aqua, Add(Global Variable(AquaPos), Vector(0, 0.500, 0)), 0.250, Visible To Position and Radius); Modify Global Variable(SetNo, Add, 1); Modify Global Variable(BasisArray, Append To Array, Global Variable(AquaPos)); } } rule("Set Sky Blue") { event { Ongoing - Global; } conditions { Global Variable(SeekingPhase) == True; Global Variable(TreasureNo) >= 8; Global Variable(ChangoverTime) == 0; } actions { Set Global Variable(SkyBluePos, Value In Array(Global Variable(TreasureList), 7)); Create Effect(All Players(All Teams), Sphere, Sky Blue, Add(Global Variable(SkyBluePos), Vector(0, 0.500, 0)), 0.250, Visible To Position and Radius); Modify Global Variable(SetNo, Add, 1); Modify Global Variable(BasisArray, Append To Array, Global Variable(SkyBluePos)); } } rule("Set Blue") { event { Ongoing - Global; } conditions { Global Variable(SeekingPhase) == True; Global Variable(TreasureNo) >= 9; Global Variable(ChangoverTime) == 0; } actions { Set Global Variable(BluePos, Value In Array(Global Variable(TreasureList), 8)); Create Effect(All Players(All Teams), Sphere, Blue, Add(Global Variable(BluePos), Vector(0, 0.500, 0)), 0.250, Visible To Position and Radius); Modify Global Variable(SetNo, Add, 1); Modify Global Variable(BasisArray, Append To Array, Global Variable(BluePos)); } } rule("Set Purple") { event { Ongoing - Global; } conditions { Global Variable(SeekingPhase) == True; Global Variable(TreasureNo) >= 10; Global Variable(ChangoverTime) == 0; } actions { Set Global Variable(PurplePos, Value In Array(Global Variable(TreasureList), 9)); Create Effect(All Players(All Teams), Sphere, Purple, Add(Global Variable(PurplePos), Vector(0, 0.500, 0)), 0.250, Visible To Position and Radius); Modify Global Variable(SetNo, Add, 1); Modify Global Variable(BasisArray, Append To Array, Global Variable(PurplePos)); } } rule("Find Red") { event { Ongoing - Each Player; All; All; } conditions { Global Variable(SeekingPhase) == True; Global Variable(TreasureNo) >= 1; Distance Between(Event Player, Global Variable(RedPos)) <= 0.750; Global Variable(ChangoverTime) == 0; Player Variable(Event Player, RedFound) == False; Global Variable(SetNo) == Global Variable(TreasureNo); } actions { Set Player Variable(Event Player, RedFound, True); Play Effect(Event Player, Buff Impact Sound, White, Event Player, 15); Create Icon(Event Player, Global Variable(RedPos), Checkmark, None, Red, False); Modify Player Score(Event Player, 1); Small Message(All Players(All Teams), Custom String("{0} found the red treasure", Event Player, Null, Null)); Destroy HUD Text(Player Variable(Event Player, RedText)); Modify Player Variable(Event Player, RemainingPos, Remove From Array By Value, Global Variable(RedPos)); } } rule("Find Orange") { event { Ongoing - Each Player; All; All; } conditions { Global Variable(SeekingPhase) == True; Global Variable(TreasureNo) >= 2; Distance Between(Event Player, Global Variable(OrangePos)) <= 0.750; Global Variable(ChangoverTime) == 0; Player Variable(Event Player, OrangeFound) == False; Global Variable(SetNo) == Global Variable(TreasureNo); } actions { Set Player Variable(Event Player, OrangeFound, True); Play Effect(Event Player, Buff Impact Sound, White, Event Player, 15); Create Icon(Event Player, Global Variable(OrangePos), Checkmark, None, Orange, False); Modify Player Score(Event Player, 1); Small Message(All Players(All Teams), Custom String("{0} found the orange treasure", Event Player, Null, Null)); Destroy HUD Text(Player Variable(Event Player, OrangeText)); Modify Player Variable(Event Player, RemainingPos, Remove From Array By Value, Global Variable(OrangePos)); } } rule("Find Yellow") { event { Ongoing - Each Player; All; All; } conditions { Global Variable(SeekingPhase) == True; Global Variable(TreasureNo) >= 3; Distance Between(Event Player, Global Variable(YellowPos)) <= 0.750; Global Variable(ChangoverTime) == 0; Player Variable(Event Player, YellowFound) == False; Global Variable(SetNo) == Global Variable(TreasureNo); } actions { Set Player Variable(Event Player, YellowFound, True); Play Effect(Event Player, Buff Impact Sound, White, Event Player, 15); Create Icon(Event Player, Global Variable(YellowPos), Checkmark, None, Yellow, False); Modify Player Score(Event Player, 1); Small Message(All Players(All Teams), Custom String("{0} found the yellow treasure", Event Player, Null, Null)); Destroy HUD Text(Player Variable(Event Player, YellowText)); Modify Player Variable(Event Player, RemainingPos, Remove From Array By Value, Global Variable(YellowPos)); } } rule("Find Lime Green") { event { Ongoing - Each Player; All; All; } conditions { Global Variable(SeekingPhase) == True; Global Variable(TreasureNo) >= 4; Distance Between(Event Player, Global Variable(LimeGreenPos)) <= 0.750; Global Variable(ChangoverTime) == 0; Player Variable(Event Player, LimeGreenFound) == False; Global Variable(SetNo) == Global Variable(TreasureNo); } actions { Set Player Variable(Event Player, LimeGreenFound, True); Play Effect(Event Player, Buff Impact Sound, White, Event Player, 15); Create Icon(Event Player, Global Variable(LimeGreenPos), Checkmark, None, Lime Green, False); Modify Player Score(Event Player, 1); Small Message(All Players(All Teams), Custom String("{0} found the lime green treasure", Event Player, Null, Null)); Destroy HUD Text(Player Variable(Event Player, LimeGreenText)); Modify Player Variable(Event Player, RemainingPos, Remove From Array By Value, Global Variable(LimeGreenPos)); } } rule("Find Green") { event { Ongoing - Each Player; All; All; } conditions { Global Variable(SeekingPhase) == True; Global Variable(TreasureNo) >= 5; Distance Between(Event Player, Global Variable(GreenPos)) <= 0.750; Global Variable(ChangoverTime) == 0; Player Variable(Event Player, GreenFound) == False; Global Variable(SetNo) == Global Variable(TreasureNo); } actions { Set Player Variable(Event Player, GreenFound, True); Play Effect(Event Player, Buff Impact Sound, White, Event Player, 15); Create Icon(Event Player, Global Variable(GreenPos), Checkmark, None, Green, False); Modify Player Score(Event Player, 1); Small Message(All Players(All Teams), Custom String("{0} found the green treasure", Event Player, Null, Null)); Destroy HUD Text(Player Variable(Event Player, GreenText)); Modify Player Variable(Event Player, RemainingPos, Remove From Array By Value, Global Variable(GreenPos)); } } rule("Find Turquoise") { event { Ongoing - Each Player; All; All; } conditions { Global Variable(SeekingPhase) == True; Global Variable(TreasureNo) >= 6; Distance Between(Event Player, Global Variable(TurquoisePos)) <= 0.750; Global Variable(ChangoverTime) == 0; Player Variable(Event Player, TurquoiseFound) == False; Global Variable(SetNo) == Global Variable(TreasureNo); } actions { Set Player Variable(Event Player, TurquoiseFound, True); Play Effect(Event Player, Buff Impact Sound, White, Event Player, 15); Create Icon(Event Player, Global Variable(TurquoisePos), Checkmark, None, Turquoise, False); Modify Player Score(Event Player, 1); Small Message(All Players(All Teams), Custom String("{0} found the turquoise treasure", Event Player, Null, Null)); Destroy HUD Text(Player Variable(Event Player, TurquoiseText)); Modify Player Variable(Event Player, RemainingPos, Remove From Array By Value, Global Variable(TurquoisePos)); } } rule("Find Aqua") { event { Ongoing - Each Player; All; All; } conditions { Global Variable(SeekingPhase) == True; Global Variable(TreasureNo) >= 7; Distance Between(Event Player, Global Variable(AquaPos)) <= 0.750; Global Variable(ChangoverTime) == 0; Player Variable(Event Player, AquaFound) == False; Global Variable(SetNo) == Global Variable(TreasureNo); } actions { Set Player Variable(Event Player, AquaFound, True); Play Effect(Event Player, Buff Impact Sound, White, Event Player, 15); Create Icon(Event Player, Global Variable(AquaPos), Checkmark, None, Aqua, False); Modify Player Score(Event Player, 1); Small Message(All Players(All Teams), Custom String("{0} found the aqua treasure", Event Player, Null, Null)); Destroy HUD Text(Player Variable(Event Player, AquaText)); Modify Player Variable(Event Player, RemainingPos, Remove From Array By Value, Global Variable(AquaPos)); } } rule("Find Sky Blue") { event { Ongoing - Each Player; All; All; } conditions { Global Variable(SeekingPhase) == True; Global Variable(TreasureNo) >= 8; Distance Between(Event Player, Global Variable(SkyBluePos)) <= 0.750; Global Variable(ChangoverTime) == 0; Player Variable(Event Player, SkyBlueFound) == False; Global Variable(SetNo) == Global Variable(TreasureNo); } actions { Set Player Variable(Event Player, SkyBlueFound, True); Play Effect(Event Player, Buff Impact Sound, White, Event Player, 15); Create Icon(Event Player, Global Variable(SkyBluePos), Checkmark, None, Sky Blue, False); Modify Player Score(Event Player, 1); Small Message(All Players(All Teams), Custom String("{0} found the sky blue treasure", Event Player, Null, Null)); Destroy HUD Text(Player Variable(Event Player, SkyBlueText)); Modify Player Variable(Event Player, RemainingPos, Remove From Array By Value, Global Variable(SkyBluePos)); } } rule("Find Blue") { event { Ongoing - Each Player; All; All; } conditions { Global Variable(SeekingPhase) == True; Global Variable(TreasureNo) >= 9; Distance Between(Event Player, Global Variable(BluePos)) <= 0.750; Global Variable(ChangoverTime) == 0; Player Variable(Event Player, BlueFound) == False; Global Variable(SetNo) == Global Variable(TreasureNo); } actions { Set Player Variable(Event Player, BlueFound, True); Play Effect(Event Player, Buff Impact Sound, White, Event Player, 15); Create Icon(Event Player, Global Variable(BluePos), Checkmark, None, Blue, False); Modify Player Score(Event Player, 1); Small Message(All Players(All Teams), Custom String("{0} found the blue treasure", Event Player, Null, Null)); Destroy HUD Text(Player Variable(Event Player, BlueText)); Modify Player Variable(Event Player, RemainingPos, Remove From Array By Value, Global Variable(BluePos)); } } rule("Find Purple") { event { Ongoing - Each Player; All; All; } conditions { Global Variable(SeekingPhase) == True; Global Variable(TreasureNo) >= 10; Distance Between(Event Player, Global Variable(PurplePos)) <= 0.750; Global Variable(ChangoverTime) == 0; Player Variable(Event Player, PurpleFound) == False; Global Variable(SetNo) == Global Variable(TreasureNo); } actions { Set Player Variable(Event Player, PurpleFound, True); Play Effect(Event Player, Buff Impact Sound, White, Event Player, 15); Create Icon(Event Player, Global Variable(PurplePos), Checkmark, None, Purple, False); Modify Player Score(Event Player, 1); Small Message(All Players(All Teams), Custom String("{0} found the purple treasure", Event Player, Null, Null)); Destroy HUD Text(Player Variable(Event Player, PurpleText)); Modify Player Variable(Event Player, RemainingPos, Remove From Array By Value, Global Variable(PurplePos)); } } rule("Copy Basis Array") { event { Ongoing - Each Player; All; All; } conditions { Global Variable(SeekingPhase) == True; Global Variable(SetupTime) == 0; Global Variable(ChangoverTime) == 0; } actions { Wait(0.250, Ignore Condition); Set Player Variable(Event Player, RemainingPos, Global Variable(BasisArray)); } } rule("Use RADAR") { event { Ongoing - Each Player; All; All; } conditions { Global Variable(SeekingPhase) == True; Is Button Held(Event Player, Ultimate) == True; Player Variable(Event Player, RadarCD) == 0; Global Variable(ChangoverTime) == 0; } actions { Set Player Variable(Event Player, RadarCD, 50); Chase Player Variable Over Time(Event Player, RadarCD, 0, 50, Destination and Duration); Small Message(Event Player, Custom String("The closest unfound treasure is {0}m away", Round To Integer(Distance Between( Event Player, Value In Array(Sorted Array(Player Variable(Event Player, RemainingPos), Distance Between(Event Player, Current Array Element)), 0)), Up), Null, Null)); } } rule("RADAR Ready") { event { Ongoing - Each Player; All; All; } conditions { Global Variable(SeekingPhase) == True; Player Variable(Event Player, RadarCD) == 0; Global Variable(ChangoverTime) == 0; } actions { Play Effect(Event Player, Buff Explosion Sound, White, Event Player, 20); Small Message(Event Player, Custom String("RADAR IS READY (PRESS Q)", Null, Null, Null)); } } rule("Draw Teleport Pads") { event { Ongoing - Global; } conditions { Global Variable(Draw) == True; Global Variable(MapHasTele) == True; Global Variable(TeleActivated) == True; } actions { Set Global Variable(Draw, False); Create Effect(All Players(All Teams), Ring, White, Global Variable(TeleA1), 2, Visible To Position and Radius); Create Effect(All Players(All Teams), Ring, White, Global Variable(TeleA2), 2, Visible To Position and Radius); Create Effect(All Players(All Teams), Ring, White, Global Variable(TeleB1), 2, Visible To Position and Radius); Create Effect(All Players(All Teams), Ring, White, Global Variable(TeleB2), 2, Visible To Position and Radius); Create Icon(All Players(All Teams), Global Variable(TeleA1), Spiral, Visible To and Position, White, False); Create Icon(All Players(All Teams), Global Variable(TeleA2), Spiral, Visible To and Position, White, False); Create Icon(All Players(All Teams), Global Variable(TeleB1), Spiral, Visible To and Position, White, False); Create Icon(All Players(All Teams), Global Variable(TeleB2), Spiral, Visible To and Position, White, False); } } rule("TeleA1") { event { Ongoing - Each Player; All; All; } conditions { Distance Between(Event Player, Global Variable(TeleA1)) <= 2; Player Variable(Event Player, TeleCooldown) == 0; Global Variable(MapHasTele) == True; Global Variable(TeleActivated) == True; } actions { Teleport(Event Player, Global Variable(TeleA2)); Set Player Variable(Event Player, TeleCooldown, 2); Chase Player Variable Over Time(Event Player, TeleCooldown, 0, 2, Destination and Duration); } } rule("TeleA2") { event { Ongoing - Each Player; All; All; } conditions { Distance Between(Event Player, Global Variable(TeleA2)) <= 2; Player Variable(Event Player, TeleCooldown) == 0; Global Variable(MapHasTele) == True; Global Variable(TeleActivated) == True; } actions { Teleport(Event Player, Global Variable(TeleA1)); Set Player Variable(Event Player, TeleCooldown, 2); Chase Player Variable Over Time(Event Player, TeleCooldown, 0, 2, Destination and Duration); } } rule("TeleB1") { event { Ongoing - Each Player; All; All; } conditions { Distance Between(Event Player, Global Variable(TeleB1)) <= 2; Player Variable(Event Player, TeleCooldown) == 0; Global Variable(MapHasTele) == True; Global Variable(TeleActivated) == True; } actions { Teleport(Event Player, Global Variable(TeleB2)); Set Player Variable(Event Player, TeleCooldown, 2); Chase Player Variable Over Time(Event Player, TeleCooldown, 0, 2, Destination and Duration); } } rule("TeleB2") { event { Ongoing - Each Player; All; All; } conditions { Distance Between(Event Player, Global Variable(TeleB2)) <= 2; Player Variable(Event Player, TeleCooldown) == 0; Global Variable(MapHasTele) == True; Global Variable(TeleActivated) == True; } actions { Teleport(Event Player, Global Variable(TeleB1)); Set Player Variable(Event Player, TeleCooldown, 2); Chase Player Variable Over Time(Event Player, TeleCooldown, 0, 2, Destination and Duration); } } rule("TELE: Blizz World") { event { Ongoing - Global; } conditions { Or(Compare(Current Map, ==, Map(Blizzard World)), Compare(Current Map, ==, Map(Blizzard World Winter))) == True; } actions { Set Global Variable(TeleA1, Vector(-76.441, 1.899, 123.678)); Set Global Variable(TeleA2, Vector(-83.150, 0.813, 121.968)); Set Global Variable(TeleB1, Vector(-15.284, 3.214, 88.980)); Set Global Variable(TeleB2, Vector(-9.354, 3.201, 88.976)); Set Global Variable(MapHasTele, True); } } rule("TELE: Horizon Lunar Colony") { event { Ongoing - Global; } conditions { Current Map == Map(Horizon Lunar Colony); } actions { Set Global Variable(TeleA1, Vector(52.652, 8.298, -49.940)); Set Global Variable(TeleA2, Vector(49.402, 7.351, -44.504)); Set Global Variable(TeleB1, Vector(16.782, 10.301, -11.672)); Set Global Variable(TeleB2, Vector(11.537, 10.302, -9.094)); Set Global Variable(MapHasTele, True); } } rule("TELE: Paris") { event { Ongoing - Global; } conditions { Current Map == Map(Paris); } actions { Set Global Variable(TeleA1, Vector(-66.717, 12.715, -28.523)); Set Global Variable(TeleA2, Vector(-66.813, 13.158, -22.513)); Set Global Variable(TeleB1, Vector(-31.466, 11.325, 17.223)); Set Global Variable(TeleB2, Vector(-27.848, 11.291, 20.657)); Set Global Variable(MapHasTele, True); } } rule("TELE: Dorado") { event { Ongoing - Global; } conditions { Current Map == Map(Dorado); } actions { Set Global Variable(TeleA1, Vector(135.677, 12.352, 27.323)); Set Global Variable(TeleA2, Vector(141.821, 12.299, 29.214)); Set Global Variable(TeleB1, Vector(83.340, 8.024, -3.873)); Set Global Variable(TeleB2, Vector(77.686, 8.005, -8.175)); Set Global Variable(MapHasTele, True); } } rule("TELE: Kings Row") { event { Ongoing - Global; } conditions { Or(Compare(Current Map, ==, Map(King's Row)), Compare(Current Map, ==, Map(King's Row Winter))) == True; } actions { Set Global Variable(TeleA1, Vector(-98.049, 2.384, -8.880)); Set Global Variable(TeleA2, Vector(-103.494, 2.163, -7.949)); Set Global Variable(TeleB1, Vector(-35.598, 1.159, -24.861)); Set Global Variable(TeleB2, Vector(-30.227, 1.206, -23.839)); Set Global Variable(MapHasTele, True); } } rule("TELE: Havana") { event { Ongoing - Global; } conditions { Current Map == Map(Havana); } actions { Set Global Variable(TeleA1, Vector(63.466, 7.115, -83.118)); Set Global Variable(TeleA2, Vector(71.023, 7.336, -82.995)); Set Global Variable(TeleB1, Vector(0.738, 7.298, -79.239)); Set Global Variable(TeleB2, Vector(-6.488, 7.148, -79.228)); Set Global Variable(MapHasTele, True); } } rule("TELE: Hanamura") { event { Ongoing - Global; } conditions { Or(Compare(Current Map, ==, Map(Hanamura)), Compare(Current Map, ==, Map(Hanamura Winter))) == True; } actions { Set Global Variable(TeleA1, Vector(26.570, 1.298, -3.684)); Set Global Variable(TeleA2, Vector(32.352, 1.363, -3.582)); Set Global Variable(TeleB1, Vector(70.927, -0.639, -0.082)); Set Global Variable(TeleB2, Vector(77.215, -0.698, 0.021)); Set Global Variable(MapHasTele, True); } } rule("TELE: Volskaya") { event { Ongoing - Global; } conditions { Current Map == Map(Volskaya Industries); } actions { Set Global Variable(TeleA1, Vector(-9.615, -1.795, 56.846)); Set Global Variable(TeleA2, Vector(-9.384, -2.331, 51.385)); Set Global Variable(TeleB1, Vector(-0.695, -4.453, 14.723)); Set Global Variable(TeleB2, Vector(3.300, -3.679, 11.365)); Set Global Variable(MapHasTele, True); } } rule("TELE: Temple of Anubis") { event { Ongoing - Global; } conditions { Current Map == Map(Temple of Anubis); } actions { Set Global Variable(TeleA1, Vector(-14.994, 2.205, 15.730)); Set Global Variable(TeleA2, Vector(-12.079, 2.269, 11.247)); Set Global Variable(TeleB1, Vector(-46.269, 2.811, 35.931)); Set Global Variable(TeleB2, Vector(-50.600, 2.811, 33.145)); Set Global Variable(MapHasTele, True); } } rule("TELE: Eichenwalde") { event { Ongoing - Global; } conditions { Or(Compare(Current Map, ==, Map(Eichenwalde)), Compare(Current Map, ==, Map(Eichenwalde Halloween))) == True; } actions { Set Global Variable(TeleA1, Vector(38.215, 6.106, -64.828)); Set Global Variable(TeleA2, Vector(31.715, 6.111, -62.060)); Set Global Variable(TeleB1, Vector(88.076, 13.971, -67.432)); Set Global Variable(TeleB2, Vector(90.394, 14.022, -58.742)); Set Global Variable(MapHasTele, True); } } rule("TELE: Hollywood") { event { Ongoing - Global; } conditions { Or(Compare(Current Map, ==, Map(Hollywood)), Compare(Current Map, ==, Map(Hollywood Halloween))) == True; } actions { Set Global Variable(TeleA1, Vector(-0.524, 2.903, -80.828)); Set Global Variable(TeleA2, Vector(-2.038, 2.834, -86.555)); Set Global Variable(TeleB1, Vector(-5.164, 2.903, -9.763)); Set Global Variable(TeleB2, Vector(-8.442, 2.905, -4.365)); Set Global Variable(MapHasTele, True); } } rule("TIME: Small Maps") { event { Ongoing - Global; } conditions { Or(Or(Or(Compare(Current Map, ==, Map(Black Forest)), Compare(Current Map, ==, Map(Black Forest Winter))), Or(Compare(Current Map, ==, Map(Ecopoint: Antarctica Winter)), Compare(Current Map, ==, Map(Ecopoint: Antarctica)))), Or(Compare(Current Map, ==, Map( Castillo)), Compare(Current Map, ==, Map(Necropolis)))) == True; Or(Is In Setup, Is Assembling Heroes) == False; } actions { Set Match Time(240); } } disabled rule("/!\\ DEBUG /!\\ Add Bot") { event { Ongoing - Each Player; All; All; } conditions { Is Button Held(Event Player, Crouch) == True; } actions { Create Dummy Bot(Hero(Ana), All Teams, -1.000, Event Player, Vector(0, 0, 0)); } } disabled rule("/!\\ DEBUG /!\\ Teleporting") { event { Ongoing - Each Player; All; All; } conditions { Is Button Held(Event Player, Primary Fire) == True; } actions { Teleport(Event Player, Add(Position Of(Event Player), Multiply(Facing Direction Of(Event Player), 5))); } } rule("Killswitch") { event { Ongoing - Each Player; All; All; } conditions { Is Button Held(Event Player, Crouch) == True; Is Button Held(Event Player, Primary Fire) == True; Is Button Held(Event Player, Secondary Fire) == True; } actions { Respawn(Event Player); } }
View Fullscreen
Copy current Rule
Copy all Rules

Update Log

3.0.0 (latest)
4R8R8
  • Added the RADAR ability.
  • Every player is now set to the same random hero at the start of a round.
2.1.0
MAV05

0 Comments

Log in or Sign up to place a comment.
Workshop.codes - Background image