Return to post
- settings
- {
- main
- {
Description: "=====ScrimTime===== > Version: 0.9 > Full information at: workshop.codes/scrimtime > Check Workshop Settings for customisation options > Interact + Reload to ready up"
- Description: "▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩ ▩▩▩▩ ScrimTime v0.98 ▩▩▩▩ ▩▩ workshop.codes/scrimtime ▩▩ ▩▩ Configure in Workshop Settings ▩▩ ▩▩▩ Ready Up: Interact + Reload ▩▩ ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩"
- }
- lobby
- {
- Map Rotation: Paused
- Max Spectators: 12
- Return To Lobby: After A Game
- }
- modes
- {
- Assault
- Control
- Escort
- Hybrid
- General
- {
- Competitive Rules: On
- Game Mode Start: Immediately
- Kill Cam: Off
- Limit Roles: 2 Of Each Role Per Team
- Skins: Off
- }
- }
- }
- variables
- {
- global:
- 0: Scrim_DebugMode
1: Scrim_CaptainOnlyMode
2: Scrim_MapCompleteMode
3: Scrim_ForceMatchEndAftTwoRounds
4: Scrim_RemoveAssemblingHeroes
5: Scrim_SetupCountdownTime
6: Scrim_RequireReadyEveryRound
7: Scrim_AllowDefendersTeleport
8: Logs_DebugMode
26: Scrim_ScoreboardEnabled
- 1: Scrim_EnableReadyUpSystem
- 2: Scrim_CaptainOnlyMode
- 3: Scrim_MapCompleteMode
- 4: Scrim_ForceMatchEndAftTwoRounds
- 5: Scrim_RemoveAssemblingHeroes
- 6: Scrim_SetupCountdownTime
- 7: Scrim_RequireReadyEveryRound
- 8: Scrim_AllowDefendersTeleport
- 9: Scrim_EnableSpecScoreboard
- 10: Scrim_AllowHostHideScoreboard
- 11: Scrim_HideScoreboardID
- 12: Scrim_AllowCaptainTimeAdd
- 13: Scrim_CaptainAddTimeStep
- 14: Scrim_CaptainAddTimeMax
- 15: Scrim_DisplayServerLoad
- 16: Scrims_KeybindButtonArray
- 17: Scrims_KeybindCommand
- 18: Scrims_KeybindReadyToggle
- 19: Scrims_KeybindDefenderTeleport
- 20: Scrims_KeybindCaptainAddTime
- 23: Logs_AutoMatchEndTime
- player:
0: PlayerReady
1: PlayerReadyIcon
6: Logs_HeroesPlayedArray
- 0: Scrim_PlayerReady
- 1: Scrim_PlayerReadyIcon
- 5: Logs_HeroesPlayedArray
- }
rule("Settings: Option Configuration")
- rule("Settings: Ready Up Options")
- {
- event
- {
- Ongoing - Global;
- }
- actions
- {
Global.Scrim_RemoveAssemblingHeroes = Workshop Setting Toggle(Custom String("Setup Options"), Custom String(
"Remove Assembling Heroes Phase"), True, 0);
Global.Scrim_CaptainOnlyMode = Workshop Setting Toggle(Custom String("Setup Options"), Custom String(
"Only Require Captains to Ready Up"), True, 1);
Global.Scrim_RequireReadyEveryRound = Workshop Setting Toggle(Custom String("Setup Options"), Custom String(
- Global.Scrim_EnableReadyUpSystem = Workshop Setting Toggle(Custom String("Ready Up System"), Custom String(
- "Enable Ready Up System"), True, 0);
- Global.Scrim_CaptainOnlyMode = Workshop Setting Toggle(Custom String("Ready Up System"), Custom String("Captain-Only Mode"), True,
- 1);
- Global.Scrim_RequireReadyEveryRound = Workshop Setting Toggle(Custom String("Ready Up System"), Custom String(
- "Require ready up for every round"), False, 2);
Global.Scrim_SetupCountdownTime = Workshop Setting Integer(Custom String("Setup Options"), Custom String("Setup Countdown Time"),
5, 5, 30, 3);
Global.Scrim_AllowDefendersTeleport = Workshop Setting Toggle(Custom String("Setup Options"), Custom String(
- Global.Scrim_SetupCountdownTime = Workshop Setting Integer(Custom String("Ready Up System"), Custom String("Countdown Timer"), 5,
- 5, 30, 3);
- }
- }
- rule("Settings: Setup Options")
- {
- event
- {
- Ongoing - Global;
- }
- actions
- {
- Global.Scrim_RemoveAssemblingHeroes = Workshop Setting Toggle(Custom String("Setup"), Custom String(
- "Remove Assembling Heroes Phase"), True, 0);
- Global.Scrim_AllowCaptainTimeAdd = Workshop Setting Toggle(Custom String("Setup"), Custom String(
- "Allow Captains to add Setup Time"), True, 1);
- Global.Scrim_CaptainAddTimeStep = Workshop Setting Integer(Custom String("Setup"), Custom String("Setup Time Added"), 30, 1, 60,
- 2);
- Global.Scrim_CaptainAddTimeMax = Workshop Setting Integer(Custom String("Setup"), Custom String("Setup Time Maximum"), 90, 60, 180,
- 3);
- Global.Scrim_AllowDefendersTeleport = Workshop Setting Toggle(Custom String("Setup"), Custom String(
- "Allow Defenders to Teleport Between Objective and Spawn"), True, 4);
Global.Scrim_MapCompleteMode = Workshop Setting Toggle(Custom String("Match Options"), Custom String("Map Completion Mode"), True,
- }
- }
- rule("Settings: Match Options")
- {
- event
- {
- Ongoing - Global;
- }
- actions
- {
- Global.Scrim_MapCompleteMode = Workshop Setting Toggle(Custom String("Match"), Custom String("Enable Map Completion Mode"), True,
- 0);
Global.Scrim_ForceMatchEndAftTwoRounds = Workshop Setting Toggle(Custom String("Match Options"), Custom String(
- Global.Scrim_ForceMatchEndAftTwoRounds = Workshop Setting Toggle(Custom String("Match"), Custom String(
- "Force Match to End After Two Rounds in Map Completion Mode"), True, 1);
Global.Scrim_ScoreboardEnabled = Workshop Setting Toggle(Custom String("Scoreboard Options"), Custom String(
- }
- }
- rule("Settings: Scoreboard Options")
- {
- event
- {
- Ongoing - Global;
- }
- actions
- {
- Global.Scrim_EnableSpecScoreboard = Workshop Setting Toggle(Custom String("Scoreboard"), Custom String(
- "Enable Spectator Scoreboard"), True, 0);
Global.Scrim_DebugMode = Workshop Setting Toggle(Custom String("Debug Options"), Custom String("Enable Scrim Debug Mode"), False,
0);
- Global.Scrim_AllowHostHideScoreboard = Workshop Setting Toggle(Custom String("Scoreboard"), Custom String(
- "Allow Host Spectator to Toggle Scoreboard"), True, 1);
- }
- }
rule("Settings: Player Setup")
- rule("Settings: Keybind Options")
- {
- event
- {
- Ongoing - Global;
- }
- actions
- {
- Global.Scrims_KeybindButtonArray = Array(Button(Primary Fire), Button(Secondary Fire), Button(Ability 1), Button(Ability 2),
- Button(Ultimate), Button(Interact), Button(Jump), Button(Crouch), Button(Melee), Button(Reload));
- Global.Scrims_KeybindCommand = Global.Scrims_KeybindButtonArray[Workshop Setting Combo(Custom String("Keybinds"), Custom String(
- "Command"), 5, Array(Custom String("Primary Fire"), Custom String("Secondary Fire"), Custom String("Ability 1"), Custom String(
- "Ability 2"), Custom String("Ultimate"), Custom String("Interact"), Custom String("Jump"), Custom String("Crouch"),
- Custom String("Melee"), Custom String("Reload")), 0)];
- Global.Scrims_KeybindReadyToggle = Global.Scrims_KeybindButtonArray[Workshop Setting Combo(Custom String("Keybinds"),
- Custom String("Ready Up Toggle"), 9, Array(Custom String("Primary Fire"), Custom String("Secondary Fire"), Custom String(
- "Ability 1"), Custom String("Ability 2"), Custom String("Ultimate"), Custom String("Interact"), Custom String("Jump"),
- Custom String("Crouch"), Custom String("Melee"), Custom String("Reload")), 1)];
- Global.Scrims_KeybindDefenderTeleport = Global.Scrims_KeybindButtonArray[Workshop Setting Combo(Custom String("Keybinds"),
- Custom String("Defender Teleport"), 6, Array(Custom String("Primary Fire"), Custom String("Secondary Fire"), Custom String(
- "Ability 1"), Custom String("Ability 2"), Custom String("Ultimate"), Custom String("Interact"), Custom String("Jump"),
- Custom String("Crouch"), Custom String("Melee"), Custom String("Reload")), 2)];
- Global.Scrims_KeybindCaptainAddTime = Global.Scrims_KeybindButtonArray[Workshop Setting Combo(Custom String("Keybinds"),
- Custom String("Captain Add Setup Time"), 4, Array(Custom String("Primary Fire"), Custom String("Secondary Fire"),
- Custom String("Ability 1"), Custom String("Ability 2"), Custom String("Ultimate"), Custom String("Interact"), Custom String(
- "Jump"), Custom String("Crouch"), Custom String("Melee"), Custom String("Reload")), 3)];
- }
- }
- rule("Settings: Debug Options")
- {
- event
- {
- Ongoing - Global;
- }
- actions
- {
- Global.Scrim_DebugMode = Workshop Setting Toggle(Custom String("Debug"), Custom String("Enable Debug Mode"), False, 0);
- Global.Scrim_DisplayServerLoad = Workshop Setting Toggle(Custom String("Debug"), Custom String("Display Server Load"), False, 1);
- Global.Logs_AutoMatchEndTime = Workshop Setting Integer(Custom String("Debug"), Custom String("Automatically End Match Time"),
- 3600, 10, 3600, 2);
- }
- }
- rule("Init: Match")
- {
- event
- {
- Ongoing - Global;
- }
- }
- rule("Init: Player")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- actions
- {
Event Player.PlayerReady = False;
Event Player.PlayerReadyIcon = Icon String(X);
- Event Player.Scrim_PlayerReady = False;
- Event Player.Scrim_PlayerReadyIcon = Icon String(X);
- Event Player.Logs_HeroesPlayedArray = Empty Array;
- }
- }
- rule("Match: Remove Assembling Heroes")
- {
- event
- {
- Ongoing - Global;
- }
- conditions
- {
- Is Assembling Heroes == True;
- Global.Scrim_RemoveAssemblingHeroes == True;
- }
- actions
- {
- Set Match Time(0);
- }
- }
- rule("Debug: Force Ready (Interact + Ability 1)")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Is In Setup == True;
- Is Button Held(Host Player, Button(Interact)) == True;
- Is Button Held(Host Player, Button(Ability 1)) == True;
- Global.Scrim_DebugMode == True;
- }
- actions
- {
- Start Holding Button(Event Player, Button(Interact));
- Start Holding Button(Event Player, Button(Reload));
- Stop Holding Button(Event Player, Button(Interact));
- Stop Holding Button(Event Player, Button(Reload));
- }
- }
- rule("Debug: Reduce Timer to 5 (Interact + Alt Fire)")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Is Button Held(Host Player, Button(Interact)) == True;
- Is Button Held(Host Player, Button(Secondary Fire)) == True;
- Global.Scrim_DebugMode == True;
- }
- actions
- {
- Set Match Time(5);
- }
- }
rule("Debug: Spawn Test Bot (Interact + Ultimate)")
- rule("Debug: Spawn Test Bot (Interact + Melee)")
- {
- event
- {
- Ongoing - Global;
- }
- conditions
- {
- Global.Scrim_DebugMode == True;
- Is Button Held(Host Player, Button(Interact)) == True;
Is Button Held(Host Player, Button(Ultimate)) == True;
- Is Button Held(Host Player, Button(Melee)) == True;
- }
- actions
- {
- Create Dummy Bot(Hero(D.Va), Opposite Team Of(Team Of(Host Player)), -1, Host Player, Vector(0, 0, 0));
- }
- }
- rule("Debug: Automatically End Match")
- {
- event
- {
- Ongoing - Global;
- }
- conditions
- {
- Global.Scrim_DebugMode == True;
- Global.Logs_AutoMatchEndTime < 3600;
- }
- actions
- {
- Wait(Global.Logs_AutoMatchEndTime, Ignore Condition);
- Declare Match Draw;
- }
- }
- rule("Debug: Display Server Loads")
- {
- event
- {
- Ongoing - Global;
- }
- conditions
- {
- Global.Scrim_DebugMode == True;
- Global.Scrim_DisplayServerLoad == True;
- Is Game In Progress == True;
- }
- actions
- {
- Wait(0.016, Ignore Condition);
- Create HUD Text(All Players(All Teams), Null, Custom String(
- "{0} Current Server Load\r\n{1} Average Server Load\r\n{2} Peak Server Load", Server Load, Server Load Average,
- Server Load Peak), Null, Left, 100, Color(White), Color(White), Color(White), Visible To and String, Visible Always);
- }
- }
- rule("Setup: Begin")
- {
- event
- {
- Ongoing - Global;
- }
- conditions
- {
- Is In Setup == True;
- Global.Scrim_EnableReadyUpSystem == True;
- }
- actions
- {
- If(Match Round == 1 || Global.Scrim_RequireReadyEveryRound == True);
- Set Match Time(3600);
- End;
- }
- }
- rule("Setup: HUD Setup")
- {
- event
- {
- Ongoing - Global;
- }
- conditions
- {
- Is In Setup == True;
- (Match Round == 1 || Global.Scrim_RequireReadyEveryRound) == True;
- Global.Scrim_EnableReadyUpSystem == True;
- }
- actions
- {
- Create HUD Text(All Players(All Teams), Null, Null, Custom String("workshop.codes/scrimtime"), Left, 0, Color(White), Color(White),
- Color(Yellow), Visible To and String, Default Visibility);
- Create HUD Text(All Players(All Teams), Null, Global.Scrim_CaptainOnlyMode ? Custom String(
- "Captain-only mode enabled, only {0} and {1} need to ready up", Players In Slot(0, Team 1), Players In Slot(0, Team 2))
- : Custom String("Captain-only mode disabled, all players will need to ready up"), Null, Left, 0.100, Color(White), Color(
- White), Color(White), Visible To and String, Default Visibility);
- Create HUD Text(All Players(All Teams), Team 1, Null, Null, Left, 1, Color(Blue), Color(White), Color(White),
- Visible To and String, Default Visibility);
- Create HUD Text(All Players(All Teams), Team 2, Null, Null, Left, 3, Color(Red), Color(White), Color(White), Visible To and String,
- Default Visibility);
If(Global.Scrim_DebugMode || Global.Logs_DebugMode);
- If(Global.Scrim_DebugMode);
- Create HUD Text(All Players(All Teams), Null, Null, Custom String(
"Notice: Debug Mode is enabled, turn it off in Workshop Settings if this is not intentional"), Top, -1, Null, Null, Color(
Yellow), Visible To and String, Default Visibility);
- "{0} Debug Mode is enabled, turn it off in Workshop Settings if this is not intentional {0}", Icon String(Warning)), Top, -1,
- Null, Null, Color(Yellow), Visible To and String, Default Visibility);
- End;
- }
- }
- rule("Setup: HUD Setup (Player)")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Is In Setup == True;
- (Match Round == 1 || Global.Scrim_RequireReadyEveryRound) == True;
- Global.Scrim_EnableReadyUpSystem == True;
- }
- actions
- {
- If(!Global.Scrim_CaptainOnlyMode || (Global.Scrim_CaptainOnlyMode && Slot Of(Event Player) == 0));
Create HUD Text(All Players(All Teams), Event Player.PlayerReadyIcon, Event Player, Event Player.PlayerReady ? Custom String(
"Ready") : Custom String("Not Ready"), Left, (Team Of(Event Player) == Team 1 ? 2 : 4) + Slot Of(Event Player) * 0.100,
Team Of(Event Player) == Team 1 ? Color(Blue) : Color(Red), Color(Yellow), Color(White), Visible To and String,
Visible Always);
Create HUD Text(Event Player, Custom String(""), Null, Event Player.PlayerReady ? Custom String("You are readied up")
: Custom String("You are not readied up"), Top, 5.100, Color(White), Color(White), Event Player.PlayerReady ? Color(Green)
: Color(Yellow), String and Color, Visible Never);
Create HUD Text(Event Player, Null, Custom String("Press Interact ({0}) + Reload ({2}) to {1}", Input Binding String(Button(
Interact)), Event Player.PlayerReady ? Custom String("unready") : Custom String("ready up"), Input Binding String(Button(
Reload))), Null, Top, 5.200, Color(White), Color(White), Color(White), Visible To and String, Visible Never);
- Create HUD Text(All Players(All Teams), Event Player.Scrim_PlayerReadyIcon, Event Player,
- Event Player.Scrim_PlayerReady ? Custom String("Ready") : Custom String("Not Ready"), Left, (Team Of(Event Player)
- == Team 1 ? 2 : 4) + Slot Of(Event Player) * 0.100, Team Of(Event Player) == Team 1 ? Color(Blue) : Color(Red), Color(Yellow),
- Color(White), Visible To and String, Visible Always);
- Create HUD Text(Event Player, Null, Null, Event Player.Scrim_PlayerReady ? Custom String("You are readied up") : Custom String(
- "You are not readied up"), Top, 5.100, Color(White), Color(White), Event Player.Scrim_PlayerReady ? Color(Green) : Color(
- Yellow), String and Color, Visible Never);
- Create HUD Text(Event Player, Null, Custom String("Press {0} + {2} to {1}", Custom String("{0} ({1})",
- Global.Scrims_KeybindCommand, Input Binding String(Global.Scrims_KeybindCommand)),
- Event Player.Scrim_PlayerReady ? Custom String("unready") : Custom String("ready up"), Custom String("{0} ({1})",
- Global.Scrims_KeybindReadyToggle, Input Binding String(Global.Scrims_KeybindReadyToggle))), Null, Top, 5.200, Color(White),
- Color(White), Color(White), Visible To and String, Visible Never);
- End;
- If(Global.Scrim_AllowDefendersTeleport && Is Team On Defense(Team Of(Event Player)));
Create HUD Text(Event Player, Null, Custom String("Press Interact ({0}) + Jump ({1}) to teleport between objective and spawn room",
Input Binding String(Button(Interact)), Input Binding String(Button(Jump))), Null, Top, 5.300, Color(White), Color(White),
Color(White), Visible To and String, Visible Never);
- Create HUD Text(Event Player, Null, Custom String("Press {0} + {1} to teleport between objective and spawn room", Custom String(
- "{0} ({1})", Global.Scrims_KeybindCommand, Input Binding String(Global.Scrims_KeybindCommand)), Custom String("{0} ({1})",
- Global.Scrims_KeybindDefenderTeleport, Input Binding String(Global.Scrims_KeybindDefenderTeleport))), Null, Top, 5.300, Color(
- White), Color(White), Color(White), Visible To and String, Visible Never);
- End;
- Create HUD Text(Event Player, Null, Custom String("Match will commence when {0} are ready",
Global.Scrim_CaptainOnlyMode ? Custom String("both teams") : Custom String("all players")), Null, Top, 5.400, Color(White),
- Global.Scrim_CaptainOnlyMode ? Custom String("both Captains") : Custom String("all players")), Null, Top, 5.400, Color(White),
- Color(White), Color(White), Visible To and String, Visible Never);
- }
- }
rule("Setup: Set Player Ready/Unready")
- rule("Setup: HUD Setup (Captain Add Time)")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Is In Setup == True;
(Match Round == 1 || Global.Scrim_RequireReadyEveryRound) == True;
(Slot Of(Event Player) == 0 || Global.Scrim_CaptainOnlyMode == False) == True;
Is Button Held(Event Player, Button(Interact)) == True;
Is Button Held(Event Player, Button(Reload)) == True;
- Global.Scrim_RequireReadyEveryRound == False;
- Global.Scrim_AllowCaptainTimeAdd == True;
- (!Global.Scrim_EnableReadyUpSystem || Match Round != 1) == True;
- }
- actions
- {
Event Player.PlayerReady = Event Player.PlayerReady ? False : True;
Event Player.PlayerReadyIcon = Event Player.PlayerReady ? Icon String(Checkmark) : Icon String(X);
- If(Slot Of(Event Player) == 0);
- Create HUD Text(Event Player, Null, Custom String("Press {0} + {1} to add {2} sec to the Setup Timer", Custom String("{0} ({1})",
- Global.Scrims_KeybindCommand, Input Binding String(Global.Scrims_KeybindCommand)), Custom String("{0} ({1})",
- Global.Scrims_KeybindCaptainAddTime, Input Binding String(Global.Scrims_KeybindCaptainAddTime)),
- Global.Scrim_CaptainAddTimeStep), Null, Top, 5.350, Color(White), Color(White), Color(White), Visible To and String,
- Visible Never);
- Else;
- Create HUD Text(Event Player, Null, Custom String("{0} and {1} can add {2} sec to the setup timer", Players In Slot(0, Team 1),
- Players In Slot(0, Team 2), Global.Scrim_CaptainAddTimeStep), Null, Top, 5.350, Color(White), Color(White), Color(White),
- Visible To and String, Visible Never);
- End;
- }
- }
- rule("Setup: Captain Add Time")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Is In Setup == True;
- Slot Of(Event Player) == 0;
- Global.Scrim_RequireReadyEveryRound == False;
- Global.Scrim_AllowCaptainTimeAdd == True;
- (!Global.Scrim_EnableReadyUpSystem || Match Round != 1) == True;
- Is Button Held(Event Player, Global.Scrims_KeybindCommand) == True;
- Is Button Held(Event Player, Global.Scrims_KeybindCaptainAddTime) == True;
- }
- actions
- {
- If(Match Time < Global.Scrim_CaptainAddTimeMax);
- Set Match Time(Min(Global.Scrim_CaptainAddTimeMax + 0.900, Global.Scrim_CaptainAddTimeStep + Match Time));
- Small Message(All Players(All Teams), Custom String("{0} extended setup time by {1} sec", Event Player,
- Global.Scrim_CaptainAddTimeStep));
- Else;
- Small Message(Event Player, Custom String("Setup timer cannot be extended beyond {0}", Custom String("{0}:{1}{2}",
- Round To Integer(Global.Scrim_CaptainAddTimeMax / 60, Down), Global.Scrim_CaptainAddTimeMax % 60 < 10 ? Custom String("0")
- : Custom String(""), Global.Scrim_CaptainAddTimeMax % 60)));
- End;
- }
- }
- rule("Setup: Teleport to Objective/Spawn (Defenders Only)")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Is In Setup == True;
- Global.Scrim_AllowDefendersTeleport == True;
- Is Team On Defense(Team Of(Event Player)) == True;
Is Button Held(Event Player, Button(Interact)) == True;
Is Button Held(Event Player, Button(Jump)) == True;
- Is Button Held(Event Player, Global.Scrims_KeybindCommand) == True;
- Is Button Held(Event Player, Global.Scrims_KeybindDefenderTeleport) == True;
- }
- actions
- {
- If(Is In Spawn Room(Event Player));
Teleport(Event Player, Objective Position(Objective Index));
- Teleport(Event Player, Nearest Walkable Position(Objective Position(Objective Index)));
- Small Message(Event Player, Custom String("Teleported to Objective"));
- Else;
Respawn(Event Player);
- Teleport(Event Player, Spawn Points(Team Of(Event Player)));
- Small Message(Event Player, Custom String("Teleported to Spawn"));
- End;
Wait Until(!Is Button Held(Event Player, Button(Jump)), 99999);
- }
- }
- rule("Setup: Set Player Ready/Unready")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Global.Scrim_EnableReadyUpSystem == True;
- Is In Setup == True;
- (Match Round == 1 || Global.Scrim_RequireReadyEveryRound) == True;
- (Slot Of(Event Player) == 0 || Global.Scrim_CaptainOnlyMode == False) == True;
- Is Button Held(Event Player, Global.Scrims_KeybindCommand) == True;
- Is Button Held(Event Player, Global.Scrims_KeybindReadyToggle) == True;
- }
- actions
- {
- Event Player.Scrim_PlayerReady = Event Player.Scrim_PlayerReady ? False : True;
- Event Player.Scrim_PlayerReadyIcon = Event Player.Scrim_PlayerReady ? Icon String(Checkmark) : Icon String(X);
- }
- }
- rule("Setup: Both Teams Ready, Start Match (Captain-Only Mode)")
- {
- event
- {
- Ongoing - Global;
- }
- conditions
- {
- Global.Scrim_EnableReadyUpSystem == True;
- Global.Scrim_CaptainOnlyMode == True;
- Is In Setup == True;
- (Match Round == 1 || Global.Scrim_RequireReadyEveryRound) == True;
Global.Scrim_CaptainOnlyMode == True;
Players In Slot(0, Team 1).PlayerReady == True;
Players In Slot(0, Team 2).PlayerReady == True;
- Players In Slot(0, Team 1).Scrim_PlayerReady == True;
- Players In Slot(0, Team 2).Scrim_PlayerReady == True;
- }
- actions
- {
Small Message(All Players(All Teams), Custom String("Both teams ready, commencing match!"));
- Small Message(All Players(All Teams), Custom String("Both Captains ready, commencing match"));
- Set Match Time(Global.Scrim_SetupCountdownTime);
Wait Until(Players In Slot(0, Team 1).PlayerReady == False || Players In Slot(0, Team 2).PlayerReady == False,
- Wait Until(Players In Slot(0, Team 1).Scrim_PlayerReady == False || Players In Slot(0, Team 2).Scrim_PlayerReady == False,
- Global.Scrim_SetupCountdownTime);
If(Players In Slot(0, Team 1).PlayerReady == False || Players In Slot(0, Team 2).PlayerReady == False);
Small Message(All Players(All Teams), Custom String("Someone unreadied, resetting setup time!"));
- If(Players In Slot(0, Team 1).Scrim_PlayerReady == False || Players In Slot(0, Team 2).Scrim_PlayerReady == False);
- Small Message(All Players(All Teams), Custom String("Someone unreadied, resetting setup time"));
- Set Match Time(3600);
- End;
- }
- }
- rule("Setup: Both Teams Ready, Start Match (All Players Mode)")
- {
- event
- {
- Ongoing - Global;
- }
- conditions
- {
- Global.Scrim_EnableReadyUpSystem == True;
- Global.Scrim_CaptainOnlyMode == False;
- Is In Setup == True;
- (Match Round == 1 || Global.Scrim_RequireReadyEveryRound) == True;
Global.Scrim_CaptainOnlyMode == False;
Count Of(Filtered Array(All Players(All Teams), Current Array Element.PlayerReady == True)) == Count Of(All Players(All Teams));
- Count Of(Filtered Array(All Players(All Teams), Current Array Element.Scrim_PlayerReady == True)) == Count Of(All Players(
- All Teams));
- }
- actions
- {
Small Message(All Players(All Teams), Custom String("All players ready, commencing match!"));
- Small Message(All Players(All Teams), Custom String("All players ready, commencing match"));
- Set Match Time(Global.Scrim_SetupCountdownTime);
Wait Until(Count Of(Filtered Array(All Players(All Teams), Current Array Element.PlayerReady == True)) < Count Of(All Players(
All Teams)), Global.Scrim_SetupCountdownTime);
If(Count Of(Filtered Array(All Players(All Teams), Current Array Element.PlayerReady == True)) < Count Of(All Players(All Teams)));
Small Message(All Players(All Teams), Custom String("Someone unreadied, resetting setup time!"));
- Wait Until(Count Of(Filtered Array(All Players(All Teams), Current Array Element.Scrim_PlayerReady == True)) < Count Of(
- All Players(All Teams)), Global.Scrim_SetupCountdownTime);
- If(Count Of(Filtered Array(All Players(All Teams), Current Array Element.Scrim_PlayerReady == True)) < Count Of(All Players(
- All Teams)));
- Small Message(All Players(All Teams), Custom String("Someone unreadied, resetting setup time"));
- Set Match Time(3600);
- End;
- }
- }
rule("Game: Begin")
- rule("Game: In Progress")
- {
- event
- {
- Ongoing - Global;
- }
- conditions
- {
- Is Game In Progress == True;
(Match Round == 1 || Global.Scrim_RequireReadyEveryRound) == True;
- }
- actions
- {
- Destroy All HUD Text;
- }
- }
- rule("Game: Reset Player Ready Status")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Global.Scrim_EnableReadyUpSystem == True;
- Is Game In Progress == True;
(Match Round == 1 || Global.Scrim_RequireReadyEveryRound) == True;
- }
- actions
- {
- Wait(0.016, Ignore Condition);
Event Player.PlayerReady = False;
Event Player.PlayerReadyIcon = Icon String(X);
- Event Player.Scrim_PlayerReady = False;
- Event Player.Scrim_PlayerReadyIcon = Icon String(X);
- }
- }
- rule("Scoreboard: Create HUD Text")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Is Game In Progress == True;
(Match Round == 1 || Global.Scrim_RequireReadyEveryRound) == True;
Global.Scrim_ScoreboardEnabled == True;
- Global.Scrim_EnableSpecScoreboard == True;
- }
- actions
- {
- Wait(0.016, Ignore Condition);
- Create HUD Text(Null, Null, Custom String("{0} {1} / {2}", Hero Icon String(Hero Of(Event Player)), Custom String(
- "{0} / {1} / {2}", Player Stat(Event Player, Final Blows), Player Stat(Event Player, Deaths), Array Contains(
- All Support Heroes, Hero Of(Event Player)) ? Round To Integer(Player Stat(Event Player, Healing Dealt), To Nearest)
- : Round To Integer(Player Stat(Event Player, Hero Damage Dealt), Up)), Custom String("{0} / {1} / {2}", Round To Integer(
- Player Stat(Event Player, Damage Taken), To Nearest), Array Contains(All Tank Heroes, Hero Of(Event Player))
- ? Round To Integer(Player Stat(Event Player, Damage Blocked), To Nearest) : Player Stat(Event Player, Offensive Assists),
- Player Stat(Event Player, Ultimates Used))), Null, Left, Slot Of(Event Player) * 0.100 + (Team Of(Event Player)
- == Team 1 ? 5 : 6), Null, Team Of(Event Player) == Team 1 ? Color(Blue) : Color(Red), Null, String, Visible Always);
- }
- }
rule("Round End: Ensure Map Completion (Map Completion Mode)")
- rule("Scoreboard: Host Spectator Toggle")
- {
- event
- {
- Ongoing - Global;
- }
- conditions
- {
- Is Game In Progress == True;
- Global.Scrim_EnableSpecScoreboard == True;
- Global.Scrim_AllowHostHideScoreboard == True;
- Is Button Held(Host Player, Button(Jump)) == True;
- Is Button Held(Host Player, Button(Ultimate)) == True;
- Team Of(Host Player) == All Teams;
- }
- actions
- {
- If(Global.Scrim_HideScoreboardID == Null);
- Small Message(All Players(All Teams), Custom String("Host Toggled Scoreboard Off"));
- Create HUD Text(Host Player, Null, Null, Custom String(
- " \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"),
- Left, 0, Color(White), Color(White), Color(White), Visible To and String, Visible Always);
- Global.Scrim_HideScoreboardID = Last Text ID;
- Else;
- Small Message(All Players(All Teams), Custom String("Host Toggled Scoreboard On"));
- Destroy HUD Text(Global.Scrim_HideScoreboardID);
- Global.Scrim_HideScoreboardID = Null;
- End;
- }
- }
- rule("Round Complete: Ensure Map Completion (Map Completion Mode)")
- {
- event
- {
- Ongoing - Global;
- }
- conditions
- {
- Is Between Rounds == True;
- Current Game Mode != Game Mode(Control);
- Global.Scrim_MapCompleteMode == True;
- Team Score(Is Team On Offense(Team 1) ? Team 1 : Team 2) < (Current Game Mode == Game Mode(Assault) ? 2 : 3);
- }
- actions
- {
- Wait(0.016, Ignore Condition);
- If(Current Game Mode == Game Mode(Assault));
- Small Message(All Players(All Teams), Custom String(
- "Map Completion Mode is enabled - Forcing {0}'s score to {1} to ensure map completion", Is Team On Offense(Team 1)
- ? Team 1 : Team 2, 2));
- Set Team Score(Is Team On Offense(Team 1) ? Team 1 : Team 2, 2);
- Else;
- Small Message(All Players(All Teams), Custom String(
- "Map Completion Mode is enabled - Forcing {0}'s score to {1} to ensure map completion", Is Team On Offense(Team 1)
- ? Team 1 : Team 2, 3));
- Set Team Score(Is Team On Offense(Team 1) ? Team 1 : Team 2, 3);
- End;
- }
- }
rule("Round End: Force Match End After Two Rounds (Map Completion Mode)")
- rule("Round Complete: Force Match End After Two Rounds (Map Completion Mode)")
- {
- event
- {
- Ongoing - Global;
- }
- conditions
- {
- Is Between Rounds == True;
- Current Game Mode != Game Mode(Control);
- Match Round == 2;
- Global.Scrim_MapCompleteMode == True;
- Global.Scrim_ForceMatchEndAftTwoRounds == True;
- }
- actions
- {
- Small Message(All Players(All Teams), Custom String("Map Completion Mode is enabled - Concluding match after two rounds",
- Is Team On Offense(Team 1) ? Team 1 : Team 2, 2));
- Wait(1, Ignore Condition);
Declare Team Victory(Is Team On Offense(Team 1) ? Team 1 : Team 2);
- Declare Match Draw;
- }
- }