Return to post
settings
{
main
{
Description: "NO SUDDEN MOVES: Original Gamemode by u/FearlessKat Code:VE9TP There is a creature loose in the castle, one who relies on sound rather than sight. Don't make any sudden moves, dont say a word, and if it knows you're there.... RUN. - Favorite this mode at workshop.codes/VE9TP - VERS: 2.3"
Description: "NO SUDDEN MOVES: Original Gamemode by u/FearlessKat Code:VE9TP There is a creature loose in the castle, one who relies on sound rather than sight. Don't make any sudden moves, dont say a word, and if it knows you're there.... RUN. - Favorite this mode at workshop.codes/VE9TP - VERS: 2.3.2"
}
lobby
{
Map Rotation: After A Game
Match Voice Chat: Enabled
Max Spectators: 6
Max Team 1 Players: 11
Max Team 2 Players: 1
Return To Lobby: Never
Swap Teams After Match: No
Team Balancing: After A Game
}
modes
{
Team Deathmatch
{
Game Length In Minutes: 5
Imbalanced Team Score To Win: On
Team 1 Score To Win: 1
Team 2 Score To Win: 200
enabled maps
{
Château Guillard Halloween
Eichenwalde Halloween
Hollywood Halloween
King's Row
}
}
General
{
Enemy Health Bars: Off
Game Mode Start: Manual
Game Mode Start: Immediately
Hero Limit: Off
}
}
heroes
{
Team 1
{
Healing Received: 25%
Ultimate Generation - Passive: 250%
Winston
{
Damage Dealt: 200%
Jump Pack Knockback Scalar: 75%
Primal Rage Melee Knockback Scalar: 75%
}
enabled heroes
{
Ana
Ashe
Genji
Hanzo
McCree
Mei
Mercy
Moira
Sombra
Tracer
Widowmaker
}
}
Team 2
{
Winston
{
Barrier Projector: Off
Damage Dealt: 200%
Infinite Ultimate Duration: On
Jump Pack Knockback Scalar: 75%
Primal Rage Melee Knockback Scalar: 75%
Spawn With Ultimate Ready: On
Ultimate Generation - Combat Primal Rage: 500%
Ultimate Generation - Passive Primal Rage: 500%
Ultimate Generation Primal Rage: 500%
}
enabled heroes
{
Winston
}
}
General
{
Ana
{
Sleep Dart Cooldown Time: 500%
}
Genji
{
Swift Strike Cooldown Time: 200%
}
Hanzo
{
Lunge Cooldown Time: 50%
Lunge Distance Scalar: 125%
Lunge Cooldown Time: 40%
Lunge Distance Scalar: 140%
Sonic Arrow Cooldown Time: 60%
Storm Arrows: Off
}
McCree
{
Combat Roll Cooldown Time: 30%
Damage Dealt: 25%
Flashbang Cooldown Time: 150%
}
Mei
{
Ice Wall Cooldown Time: 300%
}
Mercy
{
Regeneration: Off
Resurrect: Off
}
Sombra
{
Hack: Off
Stealth: Off
Translocator Cooldown Time: 400%
}
Tracer
{
Blink Cooldown Time: 150%
Recall Cooldown Time: 250%
}
Widowmaker
{
Grappling Hook Cooldown Time: 80%
Venom Mine: Off
}
}
}
}
variables
{
global:
1: MatchTimeLeft
3: MonsterIsAwake
5: CollisionPoints
9: MonsterMessage
10: SurvivorsMessage
player:
0: CanBeSeen
1: PosAndRot
2: UltReady
3: JoinedLate
4: HideInstructions
5: ULTTrackPlayer
}
disabled rule("CollisionPoints")
{
event
{
Ongoing - Global;
}
actions
{
Global.CollisionPoints = Empty Array;
If(Current Map == Map(Château Guillard Halloween));
Modify Global Variable(CollisionPoints, Append To Array, Vector(184.668, 4.348, 92.855));
Else If(Current Map == Map(Eichenwalde Halloween));
Modify Global Variable(CollisionPoints, Append To Array, Vector(36.855, 7.657, -57.898));
Modify Global Variable(CollisionPoints, Append To Array, Vector(39.743, 7.657, -48.789));
Modify Global Variable(CollisionPoints, Append To Array, Vector(97.769, 15.123, -101.054));
Modify Global Variable(CollisionPoints, Append To Array, Vector(101.504, 12.019, -93.850));
Modify Global Variable(CollisionPoints, Append To Array, Vector(39.140, 7.612, -58.803));
Modify Global Variable(CollisionPoints, Append To Array, Vector(42.863, 7.642, -50.112));
Modify Global Variable(CollisionPoints, Append To Array, Vector(50.337, 19.434, -109.117));
Modify Global Variable(CollisionPoints, Append To Array, Vector(57.215, 20.128, -105.683));
Modify Global Variable(CollisionPoints, Append To Array, Vector(65.534, 10.125, -107.792));
Modify Global Variable(CollisionPoints, Append To Array, Vector(48.779, 10.037, -103.427));
Modify Global Variable(CollisionPoints, Append To Array, Vector(59.300, 9.104, -78.077));
Modify Global Variable(CollisionPoints, Append To Array, Vector(56.284, 19.745, -107.855));
Modify Global Variable(CollisionPoints, Append To Array, Vector(54.568, 8.453, -103.207));
Modify Global Variable(CollisionPoints, Append To Array, Vector(62.788, 8.463, -107.108));
Modify Global Variable(CollisionPoints, Append To Array, Vector(51.468, 8.458, -104.058));
Modify Global Variable(CollisionPoints, Append To Array, Vector(55.427, 8.012, -100.553));
Modify Global Variable(CollisionPoints, Append To Array, Vector(58.251, 8.662, -80.285));
Modify Global Variable(CollisionPoints, Append To Array, Vector(99.046, 14.318, -99.555));
Modify Global Variable(CollisionPoints, Append To Array, Vector(98.249, 14.857, -96));
}
}
rule("DisableGlobal")
{
event
{
Ongoing - Global;
}
actions
{
Disable Built-In Game Mode Completion;
Disable Built-In Game Mode Announcer;
Disable Built-In Game Mode Music;
Disable Built-In Game Mode Scoring;
Disable Game Mode HUD(All Players(All Teams));
Global.MatchTimeLeft = 999;
}
}
rule("RemoveEnvironmentals")
{
event
{
Player Died;
Team 2;
All;
}
conditions
{
Event Was Environment == True;
}
actions
{
Teleport(Event Player, Nearest Walkable Position(Position Of(Event Player)));
Resurrect(Event Player);
Wait(0.100, Ignore Condition);
Press Button(Event Player, Ultimate);
Set Status(Event Player, Null, Knocked Down, 2);
Apply Impulse(Event Player, Forward, 0.001, To World, Cancel Contrary Motion);
Apply Impulse(Event Player, Backward, 0.001, To World, Cancel Contrary Motion);
Apply Impulse(Event Player, Left, 0.001, To World, Cancel Contrary Motion);
Apply Impulse(Event Player, Right, 0.001, To World, Cancel Contrary Motion);
Apply Impulse(Event Player, Up, 0.001, To World, Cancel Contrary Motion);
Apply Impulse(Event Player, Down, 0.001, To World, Cancel Contrary Motion);
}
}
rule("Croutching")
{
event
{
Ongoing - Each Player;
Team 2;
All;
}
conditions
{
Is Button Held(Event Player, Crouch) == True;
}
actions
{
Disallow Button(Event Player, Ability 1);
Start Scaling Player(Event Player, 1.150, True);
Set Move Speed(Event Player, 50);
Wait(0.300, Ignore Condition);
Loop If Condition Is True;
Allow Button(Event Player, Ability 1);
Start Scaling Player(Event Player, 1.500, True);
Skip If(Is Firing Primary(Event Player) == True, 1);
Set Move Speed(Event Player, 100);
}
}
rule("Monster")
{
event
{
Ongoing - Each Player;
Team 2;
Winston;
}
conditions
{
Has Spawned(Event Player) == True;
}
actions
{
Set Move Speed(Event Player, 100);
Start Scaling Player(Event Player, 1.500, True);
Start Modifying Hero Voice Lines(Event Player, 0.750, True);
Disable Hero HUD(Event Player);
Start Forcing Player Outlines(Event Player, All Players(All Teams), False, White);
Add Health Pool To Player(Event Player, Health, 9999, True, True);
Add Health Pool To Player(Event Player, Health, 9999, True, True);
Add Health Pool To Player(Event Player, Health, 9999, True, True);
Add Health Pool To Player(Event Player, Health, 9999, True, True);
Add Health Pool To Player(Event Player, Health, 9999, True, True);
Skip If(Is Game In Progress == False, 1);
Wait(34, Ignore Condition);
Create HUD Text(Event Player, Custom String("{0} Roar! {1}%", Ability Icon String(Hero(Winston), Button(Ultimate)),
Event Player.UltReady), Null, Null, Top, 0, Orange, White, White, Visible To and String, Default Visibility);
Create HUD Text(Filtered Array(All Players(Team 2), Current Array Element.HideInstructions != True), Null, Custom String(
"If there is one hider remaining, your ult will show you the direction they are in."), Null, Right, -3, Orange, Red, White,
Visible To and String, Default Visibility);
Create HUD Text(Filtered Array(All Players(Team 2), Current Array Element.HideInstructions != True), Null, Custom String(
"Your Ult Reveals hiders in an area around you."), Null, Right, -4, Orange, Red, White, Visible To and String,
Default Visibility);
Create HUD Text(Filtered Array(All Players(Team 2), Current Array Element.HideInstructions != True), Null, Custom String(
"Hold Crouch to fit through smaller spaces!"), Null, Right, -2, Orange, Red, White, Visible To and String, Default Visibility);
Create HUD Text(Filtered Array(All Players(Team 2), Current Array Element.HideInstructions != True), Null, Custom String(
"Hold Interact (F) to remove tips!"), Null, Right, -1, Orange, White, White, Visible To and String, Default Visibility);
}
}
rule("UltRefresh")
{
event
{
Ongoing - Each Player;
Team 2;
Winston;
}
conditions
{
Ultimate Charge Percent(Event Player) == 0;
}
actions
{
Wait(0.100, Ignore Condition);
Set Ultimate Charge(Event Player, 100);
}
}
rule("MONSTERUlt")
{
event
{
Ongoing - Each Player;
Team 2;
All;
}
conditions
{
Ultimate Charge Percent(Event Player) == 100;
Is Button Held(Event Player, Ultimate) == True;
Event Player.UltReady == 100;
}
actions
{
Stop Chasing Player Variable(Event Player, UltReady);
Event Player.UltReady = 0;
Event Player.PosAndRot[1] = Position Of(Event Player);
Event Player.PosAndRot[2] = Facing Direction Of(Event Player);
Wait(0.010, Ignore Condition);
Kill(Event Player, Null);
Wait(0.010, Ignore Condition);
Resurrect(Event Player);
Set Ultimate Charge(Event Player, 100);
Wait(0.100, Ignore Condition);
Press Button(Event Player, Ultimate);
Players Within Radius(Position Of(Event Player), 100, Opposite Team Of(Team Of(Event Player)), Off).CanBeSeen = 5;
Set Status(Players Within Radius(Position Of(Event Player), 20, Opposite Team Of(Team Of(Event Player)), Off), Null, Knocked Down,
1);
Set Status(Players Within Radius(Position Of(Event Player), 50, Opposite Team Of(Team Of(Event Player)), Off), Null, Burning, 5);
Chase Player Variable At Rate(Event Player, UltReady, 100, 2, Destination and Rate);
If(Number of Living Players(Team 1) == 1);
Skip If(Distance Between(Event Player, All Living Players(Team 1)) < 20, 6);
Event Player.ULTTrackPlayer = Eye Position(Event Player);
Chase Player Variable At Rate(Event Player, ULTTrackPlayer, Position Of(All Living Players(Team 1)), 5, Destination and Rate);
Wait(2.500, Ignore Condition);
Stop Chasing Player Variable(Event Player, ULTTrackPlayer);
Play Effect(Event Player, Bad Pickup Effect, Red, Position Of(Event Player.ULTTrackPlayer), 1.500);
Event Player.ULTTrackPlayer = Vector(0, -100, 0);
}
}
rule("UltTrackerInitialize")
{
event
{
Ongoing - Each Player;
Team 2;
Winston;
}
actions
{
Event Player.ULTTrackPlayer = Vector(0, -100, 0);
Create Effect(Event Player, Bad Aura, Red, Event Player.ULTTrackPlayer, 1, Visible To Position and Radius);
}
}
rule("SpawnCinematic")
{
event
{
Ongoing - Each Player;
Team 2;
Winston;
}
conditions
{
Has Spawned(Event Player) == True;
Is Game In Progress == True;
}
actions
{
Stop Chasing Player Variable(Event Player, UltReady);
Start Camera(Event Player, Vector(0, 500, 0), Vector(0, 600, 0), 0);
Wait(1, Ignore Condition);
Create HUD Text(Event Player, Global.MonsterMessage, Null, Null, Top, 5, White, White, White, Visible To and String,
Default Visibility);
Event Player.Z[100] = Last Text ID;
Set Status(Event Player, Null, Knocked Down, 30);
Wait(0.500, Ignore Condition);
Event Player.UltReady = 0;
Start Camera(Event Player, World Vector Of(Vector(0, 10, 2), Event Player, Rotation And Translation), Position Of(Event Player),
0);
Wait(0.100, Ignore Condition);
Start Camera(Event Player, World Vector Of(Vector(0, 0.300, 2), Event Player, Rotation And Translation), Position Of(Event Player),
0.200);
Wait(29, Ignore Condition);
Start Camera(Event Player, World Vector Of(Vector(0, 0.500, 3), Event Player, Rotation And Translation), Eye Position(
Event Player), 5);
Wait(1, Ignore Condition);
Press Button(Event Player, Ultimate);
Wait(2, Ignore Condition);
Start Camera(Event Player, Eye Position(Event Player), Eye Position(Event Player) + Facing Direction Of(Event Player) * 10, 5);
Wait(0.300, Ignore Condition);
Stop Camera(Event Player);
Chase Player Variable At Rate(Event Player, UltReady, 100, 2, Destination and Rate);
Global.MonsterIsAwake = True;
}
}
rule("SpawnSkirmish")
{
event
{
Ongoing - Each Player;
Team 2;
Winston;
}
conditions
{
Has Spawned(Event Player) == True;
Is Game In Progress == False;
}
actions
{
Stop Chasing Player Variable(Event Player, UltReady);
Event Player.UltReady = 0;
Wait(1, Ignore Condition);
Press Button(Event Player, Ultimate);
Chase Player Variable At Rate(Event Player, UltReady, 100, 2, Destination and Rate);
}
}
rule("MonsterMessage")
{
event
{
Ongoing - Global;
}
conditions
{
Is Game In Progress == True;
}
actions
{
Global.MonsterMessage = Custom String("You are the monster!");
Wait(7, Ignore Condition);
Global.MonsterMessage = Custom String("{0} Your vision is based on sound, so listen and watch carefully...", Icon String(Eye));
Wait(5, Ignore Condition);
Global.MonsterMessage = Custom String("Your {0} ultimate reveals enemies in a large radius around you.", Ability Icon String(Hero(
Winston), Button(Ultimate)));
Wait(5, Ignore Condition);
Global.MonsterMessage = Custom String(
"Once one player remains, your ult will show you the general direction of the final player.");
Wait(6, Ignore Condition);
Global.MonsterMessage = Custom String("Kill all survivors before the time runs out to win.");
Wait(4, Ignore Condition);
Global.MonsterMessage = Custom String("Get ready....");
Wait(3, Ignore Condition);
Destroy HUD Text(Players On Hero(Hero(Winston), Team 2).Z[100]);
}
}
rule("Attacking Speed")
{
event
{
Ongoing - Each Player;
Team 2;
All;
}
conditions
{
Is Button Held(Event Player, Primary Fire) == True;
Is Button Held(Event Player, Crouch) != True;
}
actions
{
Set Move Speed(Event Player, 50);
}
}
rule("Attacking Speed Normal")
{
event
{
Ongoing - Each Player;
Team 2;
All;
}
conditions
{
Is Button Held(Event Player, Primary Fire) == False;
Is Button Held(Event Player, Crouch) != True;
}
actions
{
Wait(0.500, Abort When False);
Set Move Speed(Event Player, 100);
}
}
disabled rule("PLAYER MECHANICS")
{
event
{
Ongoing - Global;
}
}
rule("InitializeSurvivor")
{
event
{
Ongoing - Each Player;
Team 1;
All;
}
conditions
{
Has Spawned(Event Player) == True;
}
actions
{
Chase Player Variable At Rate(Event Player, CanBeSeen, 0, 1, Destination and Rate);
Start Forcing Player Outlines(Event Player, All Players(All Teams), False, White);
Global.A = 0;
Enable Hero HUD(Event Player);
Stop Chasing Player Variable(Event Player, UltReady);
Stop Modifying Hero Voice Lines(Event Player);
Stop Scaling Player(Event Player);
Set Move Speed(Event Player, 100);
Remove All Health Pools From Player(Event Player);
Enable Game Mode HUD(Event Player);
}
}
rule("Survivors Message")
{
event
{
Ongoing - Global;
}
conditions
{
Is Game In Progress == True;
}
actions
{
Create HUD Text(All Players(Team 1), Global.SurvivorsMessage, Null, Null, Top, 5, White, White, White, Visible To and String,
Default Visibility);
Global.Z[100] = Last Text ID;
Global.SurvivorsMessage = Custom String("You are a survivor");
Wait(3, Ignore Condition);
Global.SurvivorsMessage = Custom String("You have a few seconds to hide, listen for the roar!", Icon String(Eye));
Wait(4, Ignore Condition);
Global.SurvivorsMessage = Custom String("The monster's vision is based on sound, so be careful not to make noise.");
Wait(6, Ignore Condition);
Global.SurvivorsMessage = Custom String(
"Pay close attention to the eye on your screen! {0} If it's red, that means you are not invisible!", Icon String(Eye));
Wait(8, Ignore Condition);
Global.SurvivorsMessage = Custom String("You cannot kill the beast, just survive until the time runs out.");
Wait(4, Ignore Condition);
Global.SurvivorsMessage = Custom String("Good luck.");
Wait(2, Ignore Condition);
Destroy HUD Text(Global.Z[100]);
}
}
rule("CrouchIncreaseSpeed")
{
event
{
Ongoing - Each Player;
Team 1;
All;
}
conditions
{
Is Crouching(Event Player) == True;
Is Alive(Event Player) == True;
}
actions
{
Set Move Speed(Event Player, 130);
}
}
rule("CrouchResetSpeed")
{
event
{
Ongoing - Each Player;
Team 1;
All;
}
conditions
{
Is Crouching(Event Player) == False;
Is Alive(Event Player) == True;
}
actions
{
Set Move Speed(Event Player, 100);
}
}
rule("Invisible")
{
event
{
Ongoing - Each Player;
Team 1;
All;
}
conditions
{
Event Player.CanBeSeen == 0;
}
actions
{
Destroy HUD Text(Event Player.Z[2]);
Set Invisible(Event Player, Enemies);
Create HUD Text(Event Player, Icon String(Eye), Null, Null, Top, -5, White, White, White, Visible To and String, Visible Never);
Event Player.Z[1] = Last Text ID;
Wait(2, Abort When False);
Destroy HUD Text(Event Player.Z[1]);
}
}
rule("Visible")
{
event
{
Ongoing - Each Player;
Team 1;
All;
}
conditions
{
Event Player.CanBeSeen > 0;
}
actions
{
Set Invisible(Event Player, None);
Destroy HUD Text(Event Player.Z[1]);
Create HUD Text(Event Player, Icon String(Eye), Null, Null, Top, -5, Red, White, White, Visible To and String, Visible Never);
Event Player.Z[2] = Last Text ID;
}
}
rule("Moving too fast")
{
event
{
Ongoing - Each Player;
Team 1;
All;
}
conditions
{
Speed Of(Event Player) > 4;
Is On Ground(Event Player) == True;
Event Player.CanBeSeen <= 1;
}
actions
{
Event Player.CanBeSeen = 0.500;
Wait(0.400, Ignore Condition);
Loop If Condition Is True;
}
}
rule("Firing Primary/secondary")
{
event
{
Ongoing - Each Player;
Team 1;
All;
}
conditions
{
(Is Firing Primary(Event Player) || Is Firing Secondary(Event Player)) == True;
Event Player.CanBeSeen <= 1;
}
actions
{
Event Player.CanBeSeen = 0.500;
Wait(0.400, Ignore Condition);
Loop If Condition Is True;
}
}
rule("Use Abilities")
{
event
{
Ongoing - Each Player;
Team 1;
All;
}
conditions
{
(Is Using Ability 1(Event Player) || Is Using Ability 2(Event Player)) == True;
Event Player.CanBeSeen <= 1;
}
actions
{
Event Player.CanBeSeen = 0.500;
Wait(0.400, Ignore Condition);
Loop If Condition Is True;
}
}
rule("Melee")
{
event
{
Ongoing - Each Player;
Team 1;
All;
}
conditions
{
Is Meleeing(Event Player) == True;
Event Player.CanBeSeen <= 1;
}
actions
{
Event Player.CanBeSeen = 0.500;
Wait(0.400, Ignore Condition);
Loop If Condition Is True;
}
}
rule("UsingUlt")
{
event
{
Ongoing - Each Player;
Team 1;
All;
}
conditions
{
Is Using Ultimate(Event Player) == True;
Event Player.CanBeSeen <= 1;
}
actions
{
Event Player.CanBeSeen = 0.500;
Wait(0.400, Ignore Condition);
Loop If Condition Is True;
}
}
rule("Too close!!!")
{
event
{
Ongoing - Each Player;
Team 1;
All;
}
conditions
{
Event Player.CanBeSeen <= 1;
Distance Between(Event Player, Players On Hero(Hero(Winston), Opposite Team Of(Team Of(Event Player)))) < 2;
Has Spawned(Players On Hero(Hero(Winston), Team 2)) == True;
}
actions
{
Event Player.CanBeSeen = 0.500;
Wait(0.400, Ignore Condition);
Loop If Condition Is True;
}
}
rule("Too close to eyelevel")
{
event
{
Ongoing - Each Player;
Team 1;
All;
}
conditions
{
Event Player.CanBeSeen <= 1;
Distance Between(Event Player, Eye Position(Players On Hero(Hero(Winston), Team 2))) < 2;
Has Spawned(Players On Hero(Hero(Winston), Team 2)) == True;
}
actions
{
Event Player.CanBeSeen = 0.500;
Wait(0.400, Ignore Condition);
Loop If Condition Is True;
}
}
rule("Voice")
{
event
{
Ongoing - Each Player;
Team 1;
All;
}
conditions
{
Is Communicating Any(Event Player) == True;
Event Player.CanBeSeen <= 1;
}
actions
{
Event Player.CanBeSeen = 1;
Wait(0.500, Ignore Condition);
Loop If Condition Is True;
}
}
rule("Wall")
{
event
{
Ongoing - Each Player;
Team 1;
All;
}
conditions
{
Is On Wall(Event Player) == True;
Event Player.CanBeSeen <= 1;
}
actions
{
Event Player.CanBeSeen = 1;
Wait(0.500, Ignore Condition);
Loop If Condition Is True;
}
}
rule("TakesDmg")
{
event
{
Player Took Damage;
Team 1;
All;
}
conditions
{
Is Alive(Event Player) == True;
}
actions
{
Event Player.CanBeSeen = 0.500;
}
}
rule("Heartbeat")
{
event
{
Ongoing - Each Player;
Team 1;
All;
}
conditions
{
Is In Line of Sight(Eye Position(Event Player), Eye Position(Players On Hero(Hero(Winston), Opposite Team Of(Team Of(
Event Player)))), Barriers Do Not Block LOS) == True;
Is Alive(Event Player) == True;
Has Spawned(Players On Hero(Hero(Winston), Team 2)) == True;
}
actions
{
Skip If(Event Player.CanBeSeen != True, 1);
Play Effect(Event Player, Debuff Impact Sound, White, Event Player, 20);
Play Effect(Event Player, Explosion Sound, White, Event Player, 15);
Wait(0.200, Ignore Condition);
Play Effect(Event Player, Explosion Sound, White, Event Player, 20);
Skip If(Event Player.CanBeSeen != True, 1);
Play Effect(Event Player, Debuff Impact Sound, White, Event Player, 25);
Skip If(Event Player.CanBeSeen > 0, 1);
Wait(0.500, Abort When False);
Wait(0.300, Abort When False);
Loop If Condition Is True;
}
}
rule("Give Away If Looking For Too Long")
{
event
{
Ongoing - Each Player;
Team 1;
All;
}
conditions
{
Is In Line of Sight(Eye Position(Event Player), Eye Position(Players On Hero(Hero(Winston), Opposite Team Of(Team Of(
Event Player)))), Barriers Do Not Block LOS) == True;
Is Alive(Event Player) == True;
Has Spawned(Players On Hero(Hero(Winston), Team 2)) == True;
}
actions
{
Wait(Random Integer(5, 12), Abort When False);
Set Status(Event Player, Null, Hacked, 0.030);
Loop If Condition Is True;
}
}
disabled rule("GAME MODE+MISC")
{
event
{
Ongoing - Global;
}
}
rule("PreventRespawning")
{
event
{
Player Died;
Team 1;
All;
}
conditions
{
Is Game In Progress == True;
}
actions
{
Disable Built-In Game Mode Respawning(Event Player);
Big Message(Event Player, Custom String("You died...."));
}
}
rule("MonsterWins")
{
event
{
Ongoing - Global;
}
conditions
{
Is Game In Progress == True;
Number of Living Players(Team 1) == Null;
Match Time > 30;
}
actions
{
Declare Team Victory(Team 2);
}
}
rule("MonsterLeaves")
{
event
{
Ongoing - Each Player;
Team 2;
All;
Ongoing - Global;
}
conditions
{
Number of Living Players(Team 2) == 0;
Number of Heroes(Hero(Winston), Team 2) == Null;
Is Game In Progress == True;
Total Time Elapsed > 30;
}
actions
{
Wait(3, Abort When False);
Declare Team Victory(Team 1);
}
}
rule("MonsterWinsIfLastPlayersHaventSpawned")
disabled rule("MonsterWinsIfLastPlayersHaventSpawned")
{
event
{
Ongoing - Global;
}
conditions
{
Is Game In Progress == True;
All Living Players(Team 1).JoinedLate == True;
}
actions
{
Declare Team Victory(Team 2);
}
}
rule("SurvivorsWin")
{
event
{
Ongoing - Global;
}
conditions
{
Global.MatchTimeLeft == 0;
Number of Living Players(Team 1) > 0;
Is Game In Progress == True;
}
actions
{
Wait(0.200, Abort When False);
Declare Team Victory(Team 1);
}
}
rule("JoinedLate")
{
event
{
Player Joined Match;
All;
All;
}
conditions
{
Is Game In Progress == True;
Global.MonsterIsAwake == True;
}
actions
{
Event Player.JoinedLate = True;
}
}
rule("Joined Late")
{
event
{
Ongoing - Each Player;
All;
All;
}
conditions
{
Is Alive(Event Player) == True;
Has Spawned(Event Player) == True;
Event Player.JoinedLate == True;
}
actions
{
Wait(0.200, Ignore Condition);
Teleport(Event Player, Vector(0, -500, 0));
Big Message(Event Player, Custom String("You joined the match late. Please, stay for next match!"));
}
}
rule("After Pregame, all people not spawned in are considered late")
{
event
{
Ongoing - Each Player;
Team 1;
All;
}
conditions
{
Is Game In Progress == True;
Has Spawned(Event Player) == False;
Global.MonsterIsAwake == True;
}
actions
{
Wait(30, Ignore Condition);
Event Player.JoinedLate = True;
}
}
rule("Quick Assemble")
{
event
{
Ongoing - Global;
}
conditions
{
Is Assembling Heroes == True;
}
actions
{
Set Match Time(12);
Set Match Time(15);
}
}
disabled rule("DEBUG:Dummy")
{
event
{
Ongoing - Global;
}
actions
{
Wait(5, Ignore Condition);
Create Dummy Bot(Hero(Winston), Team 2, -1, Vector(196.103, 2.700, 81.066), Vector(204.224, 1.700, 81.064));
Create Dummy Bot(Hero(Mercy), Team 1, -1, Vector(196.103, 2.700, 81.066), Vector(204.224, 1.700, 81.064));
Wait(50, Ignore Condition);
Destroy All Dummy Bots;
}
}
disabled rule("DEBUG:DummyMechanics")
{
event
{
Ongoing - Each Player;
All;
All;
}
conditions
{
Is Dummy Bot(Event Player) == True;
}
actions
{
Wait(10, Ignore Condition);
Press Button(Event Player, Ability 2);
disabled Wait(5, Ignore Condition);
disabled Press Button(Event Player, Jump);
Loop If Condition Is True;
}
}
rule("Timer")
{
event
{
Ongoing - Global;
}
conditions
{
Is Game In Progress == True;
Global.MonsterIsAwake == True;
"Once the monster wakes, this timer is set with all currently spawned players, and started."
Is Game In Progress == True;
}
actions
{
Pause Match Time;
Global.MatchTimeLeft = 160 + 30 * Number of Living Players(Team 1);
Wait(32, Ignore Condition);
Chase Global Variable At Rate(MatchTimeLeft, 0, 1, Destination and Rate);
Create HUD Text(All Players(All Teams), Null, Custom String("Time before Escape - {0}", Global.MatchTimeLeft), Null, Left, -2,
White, White, White, Visible To and String, Default Visibility);
Disable Game Mode HUD(All Players(All Teams));
}
}
rule("Instructions")
{
event
{
Ongoing - Each Player;
All;
All;
}
conditions
{
Is Button Held(Event Player, Interact) == True;
}
actions
{
Wait(1, Abort When False);
If(Event Player.HideInstructions != True);
Event Player.HideInstructions = True;
Else If(Event Player.HideInstructions == True);
Event Player.HideInstructions = False;
End;
}
}
rule("Match Chat MESSAGE")
{
event
{
Ongoing - Global;
}
conditions
{
Is Game In Progress == True;
}
actions
{
Wait(3, Ignore Condition);
Small Message(All Players(All Teams), Custom String("Match chat is open! Join for best experience!"));
Small Message(All Players(All Teams), Custom String("Match chat is open! Join for best experience!"));
Small Message(All Players(All Teams), Custom String("Match chat is open! Join for best experience!"));
Small Message(All Players(All Teams), Custom String("Match chat is open! Join for best experience!"));
Wait(90, Ignore Condition);
Loop If Condition Is True;
}
}
disabled rule("Hero Specific------------------")
{
event
{
Ongoing - Global;
}
}
rule("ANA COOLDOWN")
{
event
{
Ongoing - Each Player;
Team 1;
Ana;
}
conditions
{
Is Using Ability 1(Event Player) == True;
}
actions
{
Wait(1, Ignore Condition);
Set Ability Cooldown(Event Player, Button(Ability 1), 120);
}
}
rule("MCREE - Blind")
{
event
{
Player Dealt Damage;
Team 1;
McCree;
}
conditions
{
Event Ability == Button(Ability 2);
Team Of(Victim) == Opposite Team Of(Team Of(Event Player));
}
actions
{
Set Status(Victim, Null, Stunned, 2);
Wait(0.100, Ignore Condition);
All Living Players(Team 1).CanBeSeen = 0;
}
}
rule("TRACER - Bomb Knocks Down")
{
event
{
Player Dealt Damage;
Team 1;
Tracer;
}
conditions
{
Event Ability == Button(Ultimate);
}
actions
{
Set Status(Victim, Null, Knocked Down, 3);
Set Status(Victim, Event Player, Knocked Down, 2.500);
}
}
rule("Mcree - Ult Knocks down")
{
event
{
Player Dealt Damage;
Team 1;
Tracer;
}
conditions
{
Event Ability == Button(Ultimate);
}
actions
{
Set Status(Victim, Event Player, Stunned, 2);
}
}
rule("Always heal Monster")
{
event
{
Ongoing - Each Player;
Team 2;
All;
}
conditions
{
Health(Event Player) != Max Health(Event Player);
}
actions
{
Heal(Event Player, Null, 1000);
Wait(0.200, Ignore Condition);
Loop If Condition Is True;
}
}
rule("Mercy - Disallow Flight upon using")
{
event
{
Ongoing - Each Player;
Team 1;
Mercy;
}
conditions
{
Is Using Ability 1(Event Player) == True;
Is On Ground(Event Player) == False;
}
actions
{
Set Ability 1 Enabled(Event Player, False);
}
}
rule("Mercy - Allow flight once on ground again")
{
event
{
Ongoing - Each Player;
Team 1;
Mercy;
}
conditions
{
Is On Ground(Event Player) == True;
}
actions
{
Set Ability 1 Enabled(Event Player, True);
}
}
disabled rule("NOT FINISHED - DO NOT ENABLE Sniff")
{
event
{
Ongoing - Each Player;
Team 2;
All;
}
conditions
{
Is Button Held(Event Player, Secondary Fire) == True;
Is On Ground(Event Player) == True;
Is Dead(Event Player) == True;
}
actions
{
Skip If(Distance Between(Event Player, Filtered Array(All Living Players(Opposite Team Of(Team Of(Event Player))),
Closest Player To(Event Player, Opposite Team Of(Team Of(Event Player))) == Current Array Element)) > 20, 1);
Damage(Event Player, Filtered Array(All Living Players(Opposite Team Of(Team Of(Event Player))), Distance Between(Event Player,
Current Array Element) < 20), 1);
Play Effect(All Players(All Teams), Ring Explosion, White, Position Of(Event Player), 5);
Set Status(Event Player, Null, Rooted, 0.510);
Disallow Button(Event Player, Primary Fire);
Wait(0.500, Ignore Condition);
Loop If Condition Is True;
Allow Button(Event Player, Primary Fire);
}
}