Return to post
- settings
- {
- main
- {
Description: "ScrimTime v1.40\nStandard Preset\nworkshop.codes/scrimtime\n\nConfigure in Workshop Settings\n\nReady Up: Interact + Reload (Press)\nForce Team Ready: Interact + Reload (Hold)\nAdd Setup Time: Interact + Ultimate\nTeleport to Objective: Interact + Jump\nChange Language: Interact + Crouch"
Mode Name: "ScrimTime"
- Description: "=====ScrimTime===== > Version: 0.9 > Full information at: workshop.codes/scrimtime > Check Workshop Settings for customisation options > Interact + Reload to ready up"
- }
- lobby
- {
Map Rotation: After A Game
- Map Rotation: Paused
- Max Spectators: 12
- Return To Lobby: After A Game
- }
- modes
- {
Control
{
Score To Win: 3
- Assault
enabled maps
{
}
}
- Control
- Escort
{
enabled maps
{
}
}
- Hybrid
{
enabled maps
{
}
}
Push
{
enabled maps
{
New Queen Street 0
}
}
- General
- {
- Competitive Rules: On
- Game Mode Start: Immediately
- Kill Cam: Off
Limit Roles: 1 Tank 2 Offense 2 Support
- Limit Roles: 2 Of Each Role Per Team
- Skins: Off
- }
- }
workshop
{
}
- }
- variables
- {
- global:
0: Keybind_ButtonArray
1: Keybind_Command
2: Keybind_Ready
3: Keybind_DefenderTeleport
4: Keybind_AddSetupTime
5: Keybind_ChangeLanguage
6: Text_LanguageTextArray
7: Text_EnableChangeLanguage
8: Text_DefaultLanguage
9: Colour_TeamOne
10: Colour_TeamTwo
11: Colour_TextTypeA
12: Colour_TextTypeB
13: Colour_TextTypeC
14: Debug_EnableDebugMode
15: Debug_DisplayServerLoad
16: Match_CurrentMatchTime
17: Setup_RemoveAssemblingHeroes
18: Setup_SetupTimeOverride
19: Setup_AllowDefendersTeleport
20: ReadyUp_FreqMode
21: ReadyUp_CaptainMode
22: ReadyUp_EnableReadyVoiceLine
23: ReadyUp_MinimumPlayersToStart
24: ReadyUp_SetupCountdownTime
25: ReadyUp_FreezeSetupTime
26: ReadyUp_AllowForceTeamReady
27: ReadyUp_ForceTeamReadyHoldTime
28: MapComp_EnableMapCompletion
29: MapComp_ForceNonControlTwoRounds
30: MapComp_ForceControlThreeRounds
31: MapComp_TeamOneScore
32: MapComp_TeamTwoScore
33: Scoreboard_EnableScoreboard
34: Scoreboard_StatsPreset
35: Scoreboard_AllowHideScoreboard
36: Scoreboard_HideScoreboardID
37: Scoreboard_DisplayLegend
38: Scoreboard_GroupMode
39: Scoreboard_Size
40: Scoreboard_DisplayMatchTime
41: SetupAddTime_CaptainMode
42: SetupAddTime_Step
43: SetupAddTime_Max
44: Logs_EnableLogGenerator
45: Logs_OutputFormat
46: Logs_AutoMatchEndTime
47: Logs_CurrentObjectiveIndex
48: Logs_CurrentControlScoringTeam
49: Logs_TrackKills
50: Logs_TrackHeroSwaps
51: Logs_TrackObjectiveCapture
52: Logs_PointCaptureProgressStep
53: Logs_PayloadCaptureProgressStep
54: Logs_PointCaptureProgress
55: Logs_PayloadCaptureProgress
56: Logs_TrackAbilities
57: Logs_TrackUltimates
58: Logs_TrackOffensiveAssists
59: Logs_TrackDefensiveAssists
60: Logs_TrackDamage
61: Logs_TrackHealing
62: Logs_TrackDvaDemechs
63: Logs_TrackEchoDuplicates
64: Logs_TrackMercyRez
65: Logs_TrackRoundStartEnd
66: Logs_TrackMatchStartEnd
67: Logs_PlayerSummaryFrequency
68: Logs_PlayerSummaryCount
- 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
- player:
0: Text_PlayerLanguage
1: ReadyUp_PlayerReady
2: ReadyUp_CurrentHoldTime
3: Logs_LastHero
4: Logs_LastHeroTime
5: Logs_HeroesPlayedTimeArray
- 0: PlayerReady
- 1: PlayerReadyIcon
- 6: Logs_HeroesPlayedArray
7: Logs_OffensiveAssists
8: Logs_DefensiveAssists
9: Logs_CurrentHeroIterator
10: Logs_CurrentHeroIterated
11: Logs_UltimateID
12: Logs_DuplicateID
}
subroutines
{
0: CalcHeroPlayedTime
}
rule("Settings: Language Options")
{
event
{
Ongoing - Global;
}
actions
{
Global.Text_EnableChangeLanguage = Workshop Setting Toggle(Custom String("1. Language"), Custom String(
"Allow players to change language"), True, 0);
Global.Text_DefaultLanguage = Workshop Setting Combo(Custom String("1. Language"), Custom String("Default Language"), 0, Array(
Custom String("English"), Custom String("Korean (한국어)"), Custom String("Simplified Chinese (简体中文)"), Custom String(
"Japanese (日本語)"), Custom String("Spanish (Español)"), Custom String("French (Français)"), Custom String("Turkish (Türkçe)")),
0);
}
}
rule("Settings: Ready Up Options")
{
event
{
Ongoing - Global;
}
actions
{
Global.ReadyUp_FreqMode = Workshop Setting Combo(Custom String("2. Ready Up System"), Custom String("Enable Ready Up System"), 0,
Array(Custom String("Every Round"), Custom String("Only Round One"), Custom String("Off")), 0);
Global.ReadyUp_CaptainMode = Workshop Setting Combo(Custom String("2. Ready Up System"), Custom String("Who Needs To Ready Up"), 0,
Array(Custom String("All Players"), Custom String("Only Players in First Slot")), 1);
Global.ReadyUp_AllowForceTeamReady = Workshop Setting Toggle(Custom String("2. Ready Up System"), Custom String(
"Allow Players to Force Team Ready"), True, 2);
Global.ReadyUp_ForceTeamReadyHoldTime = Workshop Setting Integer(Custom String("2. Ready Up System"), Custom String(
"Force Team Ready Button Hold Time"), 3, 1, 5, 3);
Global.ReadyUp_SetupCountdownTime = Workshop Setting Integer(Custom String("2. Ready Up System"), Custom String("Countdown Timer"),
5, 5, 10, 4);
Global.ReadyUp_MinimumPlayersToStart = Workshop Setting Integer(Custom String("2. Ready Up System"), Custom String(
"Minimum Number of Players in Game"), 10, 1, 10, 5);
Global.ReadyUp_FreezeSetupTime = Workshop Setting Toggle(Custom String("2. Ready Up System"), Custom String("Freeze Setup Timer"),
False, 6);
Global.ReadyUp_EnableReadyVoiceLine = Workshop Setting Toggle(Custom String("2. Ready Up System"), Custom String(
"Play Voice Line When Readying"), True, 7);
}
- }
rule("Settings: Setup Phase Options")
- rule("Settings: Option Configuration")
- {
- event
- {
- Ongoing - Global;
- }
- actions
- {
Global.Setup_RemoveAssemblingHeroes = Workshop Setting Toggle(Custom String("3. Setup Phase"), Custom String(
- Global.Scrim_RemoveAssemblingHeroes = Workshop Setting Toggle(Custom String("Setup Options"), Custom String(
- "Remove Assembling Heroes Phase"), True, 0);
Global.Setup_AllowDefendersTeleport = Workshop Setting Toggle(Custom String("3. Setup Phase"), Custom String(
"Allow Defenders to Teleport Between Objective and Spawn"), True, 1);
Global.Setup_SetupTimeOverride = Workshop Setting Integer(Custom String("3. Setup Phase"), Custom String("Base Setup Time"), 60,
45, 300, 2);
Global.SetupAddTime_CaptainMode = Workshop Setting Combo(Custom String("3. Setup Phase"), Custom String("Who Can Add Setup Time"),
0, Array(Custom String("All Players"), Custom String("Only Players in First Slot"), Custom String("Off")), 3);
Global.SetupAddTime_Step = Workshop Setting Integer(Custom String("3. Setup Phase"), Custom String("Setup Time Added"), 30, 1, 60,
4);
Global.SetupAddTime_Max = Workshop Setting Integer(Custom String("3. Setup Phase"), Custom String("Setup Time Maximum"), 90, 45,
600, 5);
}
}
rule("Settings: Map Completion Options")
{
event
{
Ongoing - Global;
}
actions
{
Global.MapComp_EnableMapCompletion = Workshop Setting Toggle(Custom String("4. Map Completion"), Custom String(
"Ensure Full Map is Attacked on Round 2 for Non-Control Maps"), True, 0);
Global.MapComp_ForceNonControlTwoRounds = Workshop Setting Combo(Custom String("4. Map Completion"), Custom String(
"End Non-Control Maps After Two Rounds"), 0, Array(Custom String("If either team fails to complete map"), Custom String(
"Always"), Custom String("Off")), 1);
Global.MapComp_ForceControlThreeRounds = Workshop Setting Toggle(Custom String("4. Map Completion"), Custom String(
"End Control Maps After Three Rounds"), True, 2);
}
}
rule("Settings: Spectator Scoreboard Options")
{
event
{
Ongoing - Global;
}
actions
{
Global.Scoreboard_EnableScoreboard = Workshop Setting Toggle(Custom String("5. Spectator Scoreboard"), Custom String(
- 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(
- "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(
- "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,
- 0);
- Global.Scrim_ForceMatchEndAftTwoRounds = Workshop Setting Toggle(Custom String("Match Options"), 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(
- "Enable Spectator Scoreboard"), True, 0);
Global.Scoreboard_StatsPreset = Workshop Setting Combo(Custom String("5. Spectator Scoreboard"), Custom String(
"Stats Displayed Preset"), 0, Array(Custom String("Standard"), Custom String("Legacy Standard"), Custom String(
"Legacy OWL/OWC")), 1);
Global.Scoreboard_Size = Workshop Setting Combo(Custom String("5. Spectator Scoreboard"), Custom String("Size"), 0, Array(
Custom String("Small"), Custom String("Medium"), Custom String("Large")), 2);
Global.Scoreboard_GroupMode = Workshop Setting Combo(Custom String("5. Spectator Scoreboard"), Custom String(
"Player Grouping Style"), 0, Array(Custom String("Group by role, sort by team"), Custom String("Group by team, sort by role"),
Custom String("Group by team, sort by slot")), 3);
Global.Scoreboard_DisplayLegend = Workshop Setting Toggle(Custom String("5. Spectator Scoreboard"), Custom String(
"Display Legend"), True, 4);
Global.Scoreboard_DisplayMatchTime = Workshop Setting Toggle(Custom String("5. Spectator Scoreboard"), Custom String(
"Display Match Time"), True, 5);
Global.Scoreboard_AllowHideScoreboard = Workshop Setting Toggle(Custom String("5. Spectator Scoreboard"), Custom String(
"Allow Host Spectator to Toggle Scoreboard"), True, 6);
}
}
rule("Settings: Log Options")
{
event
{
Ongoing - Global;
}
actions
{
Global.Logs_EnableLogGenerator = Workshop Setting Toggle(Custom String("6. Log Generator"), Custom String("Enable Log Generator"),
False, 0);
Global.Logs_OutputFormat = Workshop Setting Combo(Custom String("6. Log Generator"), Custom String("Output Format"), 0, Array(
Custom String("CSV")), 1);
Global.Logs_TrackKills = Workshop Setting Toggle(Custom String("6. Log Generator"), Custom String("Kills and Deaths"), True, 2);
Global.Logs_TrackOffensiveAssists = Workshop Setting Toggle(Custom String("6. Log Generator"), Custom String("Offensive Assists"),
True, 3);
Global.Logs_TrackDefensiveAssists = Workshop Setting Toggle(Custom String("6. Log Generator"), Custom String("Defensive Assists"),
True, 4);
Global.Logs_TrackHeroSwaps = Workshop Setting Toggle(Custom String("6. Log Generator"), Custom String("Hero Swaps"), True, 5);
Global.Logs_TrackUltimates = Workshop Setting Toggle(Custom String("6. Log Generator"), Custom String("Ultimates"), True, 6);
Global.Logs_TrackAbilities = Workshop Setting Toggle(Custom String("6. Log Generator"), Custom String("Abilities*"), True, 7);
Global.Logs_TrackDamage = Workshop Setting Toggle(Custom String("6. Log Generator"), Custom String("Damage*"), True, 8);
Global.Logs_TrackHealing = Workshop Setting Toggle(Custom String("6. Log Generator"), Custom String("Healing*"), True, 9);
Global.Logs_TrackDvaDemechs = Workshop Setting Toggle(Custom String("6. Log Generator"), Custom String("D.Va Demechs & Remechs"),
True, 10);
Global.Logs_TrackEchoDuplicates = Workshop Setting Toggle(Custom String("6. Log Generator"), Custom String("Echo Duplicates"),
True, 11);
Global.Logs_TrackMercyRez = Workshop Setting Toggle(Custom String("6. Log Generator"), Custom String("Mercy Resurrects"), True,
12);
Global.Logs_TrackMatchStartEnd = Workshop Setting Toggle(Custom String("6. Log Generator"), Custom String("Match Start & End"),
True, 13);
Global.Logs_TrackRoundStartEnd = Workshop Setting Toggle(Custom String("6. Log Generator"), Custom String("Round Start & End"),
True, 14);
Global.Logs_TrackObjectiveCapture = Workshop Setting Toggle(Custom String("6. Log Generator"), Custom String("Objective Captures"),
True, 15);
Global.Logs_PointCaptureProgressStep = Workshop Setting Real(Custom String("6. Log Generator"), Custom String(
"Control Point Progress Increment"), 33.333, 0, 100, 16);
Global.Logs_PayloadCaptureProgressStep = Workshop Setting Real(Custom String("6. Log Generator"), Custom String(
"Payload Progress Increment"), 10, 0, 100, 17);
Global.Logs_PlayerSummaryFrequency = Workshop Setting Combo(Custom String("6. Log Generator"), Custom String(
"Player Stat Summary Frequency"), 0, Array(Custom String("Every Round End"), Custom String("Only Match End"), Custom String(
"Off")), 18);
}
}
rule("Settings: Keybind Options")
{
event
{
Ongoing - Global;
}
actions
{
Global.Keybind_ButtonArray = 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.Keybind_Command = Global.Keybind_ButtonArray[Workshop Setting Combo(Custom String("7. 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.Keybind_Ready = Global.Keybind_ButtonArray[Workshop Setting Combo(Custom String("7. Keybinds"), Custom String(
"Ready Up Toggle / Force Team Ready"), 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.Keybind_DefenderTeleport = Global.Keybind_ButtonArray[Workshop Setting Combo(Custom String("7. 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.Keybind_AddSetupTime = Global.Keybind_ButtonArray[Workshop Setting Combo(Custom String("7. Keybinds"), Custom String(
"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)];
Global.Keybind_ChangeLanguage = Global.Keybind_ButtonArray[Workshop Setting Combo(Custom String("7. Keybinds"), Custom String(
"Change Language"), 7, 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")), 4)];
}
}
rule("Settings: Debug Options")
{
event
{
Ongoing - Global;
}
actions
{
Global.Debug_EnableDebugMode = Workshop Setting Toggle(Custom String("8. Debug"), Custom String("Enable Debug Mode"), False, 0);
Global.Debug_DisplayServerLoad = Workshop Setting Toggle(Custom String("8. Debug"), Custom String("Display Server Load"), True, 1);
Global.Logs_AutoMatchEndTime = Workshop Setting Integer(Custom String("8. Debug"), Custom String("Automatically End Match Time"),
3600, 10, 3600, 2);
}
}
rule("Initialisation: Match")
{
event
{
Ongoing - Global;
}
actions
{
If(!Global.Logs_EnableLogGenerator);
Disable Inspector Recording;
End;
}
}
rule("Initialisation: Colours")
{
event
{
Ongoing - Global;
}
actions
{
Global.Colour_TeamOne = Custom Color(50, 185, 240, 255);
Global.Colour_TeamTwo = Custom Color(250, 5, 30, 255);
Global.Colour_TextTypeA = Custom Color(255, 255, 255, 255);
Global.Colour_TextTypeB = Custom Color(255, 155, 0, 255);
Global.Colour_TextTypeC = Custom Color(40, 205, 60, 255);
}
}
rule("Initialisation: Language Strings")
{
event
{
Ongoing - Global;
}
actions
{
Global.Text_LanguageTextArray[0] = Array(Custom String("ScrimTime"), Custom String("ScrimTime"), Custom String("ScrimTime"),
Custom String("ScrimTime"), Custom String("ScrimTime"), Custom String("ScrimTime"), Custom String("ScrimTime"));
Global.Text_LanguageTextArray[1] = Array(Custom String("Countdown will start when"), Custom String("카운트다운 시작 조건"), Custom String(
"倒计时将在"), Custom String("カウントダウンの開始条件"), Custom String("La cuenta regresiva comenzará cuando"), Custom String(
"Le compte à rebours commencera quand"), Custom String("GERİ SAYIM"));
Global.Text_LanguageTextArray[2] = Array(Custom String("both teams are ready"), Custom String("양쪽 팀 모두 준비"), Custom String(
"双方队伍准备时开始"), Custom String("両チームの準備が整い次第"), Custom String("ambos equipos están listos"), Custom String(
"les deux équipes sont prêtes"), Custom String("HER İKİ TAKIM HAZIR OLDUĞUNDA BAŞLAYACAK"));
Global.Text_LanguageTextArray[3] = Array(Custom String("all players are ready"), Custom String("모든 플레이어 준비"), Custom String(
"所有玩家已准备时开始"), Custom String("全員の準備が整い次第"), Custom String("todos los jugadores están listos"), Custom String(
"tous les joueurs sont prêts"), Custom String("TÜM OYUNCULAR HAZIR OLDUĞUNDA BAŞLAYACAK"));
Global.Text_LanguageTextArray[4] = Array(Custom String("For full documentation visit"), Custom String("상세한 지침은 방문해주세요"),
Custom String("有关完整文档请访问"), Custom String("フルドキュメンテーションは"), Custom String("Para la documentación completa visita"),
Custom String("Pour une documentation complète visitez"), Custom String("DAHA FAZLA BİLGİ İÇİN:"));
Global.Text_LanguageTextArray[5] = Array(Custom String("workshop.codes/scrimtime"), Custom String("workshop.codes/scrimtime"),
Custom String("workshop.codes/scrimtime"), Custom String("workshop.codes/scrimtime"), Custom String(
"workshop.codes/scrimtime"), Custom String("workshop.codes/scrimtime"), Custom String("workshop.codes/scrimtime"));
Global.Text_LanguageTextArray[6] = Array(Custom String("Import code"), Custom String("코드 가져 오기"), Custom String("导入代码"),
Custom String("コードの読み込み"), Custom String("Importar código"), Custom String("Importer le code"), Custom String("ATÖLYE KODU"));
Global.Text_LanguageTextArray[7] = Array(Custom String("DKEEH"), Custom String("DKEEH"), Custom String("DKEEH"), Custom String(
"DKEEH"), Custom String("DKEEH"), Custom String("DKEEH"), Custom String("DKEEH"));
Global.Text_LanguageTextArray[8] = Array(Custom String("You are readied up"), Custom String("준비 완료 상태입니다"), Custom String(
"你已准备就绪"), Custom String("あなたは準備完了です"), Custom String("Estás Preparado"), Custom String("Vous êtes prêt"), Custom String(
"HAZIRSIN"));
Global.Text_LanguageTextArray[9] = Array(Custom String("You are not readied up"), Custom String("준비되지 않았습니다"), Custom String(
"你未准备就绪"), Custom String("あなたは準備中です"), Custom String("No estás Preparado"), Custom String("Vous n'êtes pas prêt"),
Custom String("HAZIR DEĞİLSİN"));
Global.Text_LanguageTextArray[10] = Array(Custom String("Ready Up"), Custom String("준비 완료"), Custom String("准备就绪"), Custom String(
"準備完了"), Custom String("Marcar Preparado"), Custom String("Prêt"), Custom String("HAZIR OL"));
Global.Text_LanguageTextArray[11] = Array(Custom String("Unready"), Custom String("준비 취소"), Custom String("取消准备"), Custom String(
"準備中"), Custom String("Desmarcar Preparado"), Custom String("Pas prêt"), Custom String("HAZIR DEĞİL"));
Global.Text_LanguageTextArray[12] = Array(Custom String("(Press) Ready Up • (Hold) Force Team Ready"), Custom String(
"(누르기) 준비 완료 • (길게 누르기) 강제 팀 준비"), Custom String("(按)准备就绪 • (按住)强制队伍准备"), Custom String("(押して) 準備完了 • (押し続けて) チームを準備完了にする"),
Custom String("(Presione) Preparado • (Mantener presionado) Forzar Equipo Preparado"), Custom String(
"(Appuyez) Prêt • (Maintenez) Forcer le prêt de l'équipe"), Custom String(
"(BAS) HAZIR OL • (BASILI TUT) TAKIMI ZORLA HAZIRLA"));
Global.Text_LanguageTextArray[13] = Array(Custom String("(Press) Unready • (Hold) Force Team Ready"), Custom String(
"(누르기) 준비 취소 • (길게 누르기) 강제 팀 준비"), Custom String("(按)取消准备 • (按住)强制队伍准备"), Custom String("(押して) 準備中 • (押し続けて) チームを準備完了にする"),
Custom String("(Presione) No preparado • (Mantener presionado) Forzar Equipo Preparado"), Custom String(
"(Appuyez) Pas prêt • (Maintenez) Forcer la prêt de l'équipe"), Custom String(
"(BAS) HAZIR DEĞİL • (BASILI TUT) TAKIMI ZORLA HAZIRLA"));
Global.Text_LanguageTextArray[14] = Array(Custom String("All players ready, starting countdown"), Custom String(
"모두 준비됐습니다, 카운트다운 시작합니다"), Custom String("所有玩家已准备就绪,开始倒计时"), Custom String("全員の準備が整いました カウントダウンを開始します"), Custom String(
"Todos los jugadores están listos, comenzando la cuenta regresiva"), Custom String(
"Tous les joueurs sont prêts, début du compte à rebours"), Custom String("TÜM OYUNCULAR HAZIR, GERİ SAYIM BAŞLIYOR"));
Global.Text_LanguageTextArray[15] = Array(Custom String("Both teams ready, starting countdown"), Custom String(
"양 팀 모두 준비됐습니다 카운트다운 시작합니다"), Custom String("双方队伍都已准备就绪,开始倒计时"), Custom String("両チームの準備が整いました カウントダウンを開始します"), Custom String(
"Ambos equipos están listos, comenzando la cuenta regresiva"), Custom String(
"Les deux équipes sont prêtes, début du compte à rebours"), Custom String("HER İKİ TAKIM DA HAZIR, GERİ SAYIM BAŞLIYOR"));
Global.Text_LanguageTextArray[16] = Array(Custom String(
"All players ready, but not enough players in game ([MIN_PLAYERS_TO_START])"), Custom String(
"모든 플레이어가 준비되었지만 게임 플레이어 수가 충분하지 않음 ([MIN_PLAYERS_TO_START] 명 이상 필요)"), Custom String(
"所有玩家已准备就绪,但游戏中玩家数不足([MIN_PLAYERS_TO_START])"), Custom String(
"すべてのプレイヤーが準備完了していますが、ゲーム内のプレイヤーが足りません ([MIN_PLAYERS_TO_START])"), Custom String(
"Todos los jugadores están listos, pero no hay suficientes jugadores en el juego ([MIN_PLAYERS_TO_START])"), Custom String(
"Tous les joueurs sont prêts, mais il n'y a pas assez de joueurs dans le jeu ([MIN_PLAYERS_TO_START])"), Custom String(
"TÜM OYUNCULAR HAZIR ANCAK OYUNDA YETERLİ SAYIDA OYUNCU YOK ([MIN_PLAYERS_TO_START])"));
Global.Text_LanguageTextArray[17] = Array(Custom String(
"Both teams ready, but not enough players in game ([MIN_PLAYERS_TO_START]"), Custom String(
"양 팀 모두 준비되었지만 게임 플레이어 수가 충분하지 않음 ([MIN_PLAYERS_TO_START] 명 이상 필요)"), Custom String(
"双方队伍都已准备就绪,但游戏中玩家数不足([MIN_PLAYERS_TO_START])"), Custom String("両チームが準備完了していますが、ゲーム内のプレイヤーが足りません ([MIN_PLAYERS_TO_START])"),
Custom String("Ambos equipos están listos, pero no hay suficientes jugadores en el juego ([MIN_PLAYERS_TO_START]"),
Custom String("Les deux équipes sont prêtes, mais il n'y a pas assez de joueurs dans le jeu ([MIN_PLAYERS_TO_START])"),
Custom String("HER İKİ TAKIM DA HAZIR ANCAK OYUNDA YETERLİ SAYIDA OYUNCU YOK ([MIN_PLAYERS_TO_START])"));
Global.Text_LanguageTextArray[18] = Array(Custom String("[EVENT_PLAYER] unreadied, setup timer reset"), Custom String(
"[EVENT_PLAYER]님이 준비 취소되었습니다 설정 타이머가 다시 시작합니다"), Custom String("[EVENT_PLAYER] 取消准备,设置计时器重置"), Custom String(
"[EVENT_PLAYER] が準備中になったため、マッチ準備時間がリセットされます"), Custom String(
"[EVENT_PLAYER] no está preparado, temporizador de configuración reiniciado"), Custom String(
"[EVENT_PLAYER] n'est plus prêt, le minuteur est remis à zéro"), Custom String(
"[EVENT_PLAYER] HAZIR DEĞİL, HAZIRLIK SÜRESİ SIFIRLANIYOR"));
Global.Text_LanguageTextArray[19] = Array(Custom String("A team unreadied, setup timer reset"), Custom String(
"한 팀이 준비 취소되었습니다 설정 타이머가 다시 시작합니다"), Custom String("一支队伍取消准备,设置计时器重置"), Custom String("チームが準備中になり、マッチ準備時間がリセットされます"),
Custom String("Un equipo no está preparado, temporizador de configuración reiniciado"), Custom String(
"Une équipe n'est pas prête, le minuteur est remis à zéro"), Custom String(
"BİR TAKIM ARTIK HAZIR DEĞİL, HAZIRLIK SÜRESİ SIFIRLANIYOR"));
Global.Text_LanguageTextArray[20] = Array(Custom String("[EVENT_PLAYER] set all players on [EVENT_PLAYER_TEAM] ready"),
Custom String("[EVENT_PLAYER]가 [EVENT_PLAYER_TEAM]의 모든 플레이어를 준비 상태로 강제로 변경했습니다"), Custom String(
"[EVENT_PLAYER] 将所有玩家设置为 [EVENT_PLAYER_TEAM] 准备"), Custom String("[EVENT_PLAYER] が [EVENT_PLAYER_TEAM] のメンバーを準備完了にしました"),
Custom String("[EVENT_PLAYER] estableció que todos los jugadores de [EVENT_PLAYER_TEAM] están preparados"), Custom String(
"[EVENT_PLAYER] a mis tous les joueurs de [EVENT_PLAYER_TEAM] prêts"), Custom String(
"[EVENT_PLAYER] [EVENT_PLAYER_TEAM] TAKIMINDAKİ TÜM OYUNCULARI HAZIR HALE GETİRDİ"));
Global.Text_LanguageTextArray[21] = Array(Custom String("Teleport to the objective"), Custom String("목표지점으로 순간이동합니다"),
Custom String("传送到目标地点"), Custom String("目標地点にテレポートします"), Custom String("Teletransportarse al objetivo"), Custom String(
"Téléporter à l'objectif"), Custom String("HEDEFE IŞINLAN"));
Global.Text_LanguageTextArray[22] = Array(Custom String("Teleport back to spawn"), Custom String("스폰 지점으로 순간이동합니다"), Custom String(
"传送回重生点"), Custom String("スポーンにテレポートします"), Custom String("Teletransportarse de vuelta al spawn"), Custom String(
"Téléporter au spawn"), Custom String("BAŞLANGIÇ NOKTASINA GERİ IŞINLAN"));
Global.Text_LanguageTextArray[23] = Array(Custom String("Teleported to objective"), Custom String("목표지점으로 순간이동했습니다"),
Custom String("传送到目标地点"), Custom String("目標地点にテレポートしました"), Custom String("Teletransportado al objetivo"), Custom String(
"Téléporté à l'objectif"), Custom String("HEDEFE IŞINLANDI"));
Global.Text_LanguageTextArray[24] = Array(Custom String("Teleported to spawn"), Custom String("스폰 지점으로 순간이동했습니다"), Custom String(
"传送到重生点"), Custom String("スポーンにテレポートしました"), Custom String("Teletransportado al spawn"), Custom String(
"Téléporté à l'apparition"), Custom String("BAŞLANGIÇ NOKTASINA IŞINLANDI"));
Global.Text_LanguageTextArray[25] = Array(Custom String("Unable to teleport, please try again later"), Custom String(
"순간이동이 불가능합니다 나중에 다시 시도해주세요"), Custom String("无法传送,请稍后重试"), Custom String("テレポートできません、もう一度試してください"), Custom String(
"No se puede teletransportar, inténtalo de nuevo más tarde"), Custom String(
"Impossible de se téléporter, veuillez réessayer à un autre moment"), Custom String(
"IŞINLANAMIYOR, LÜTFEN DAHA SONRA TEKRAR DENEYİN"));
Global.Text_LanguageTextArray[26] = Array(Custom String("Add [SETUP_TIME_STEP] sec to setup timer"), Custom String(
"설정 타이머에 [SETUP_TIME_STEP] 초를 추가합니다"), Custom String("将 [SETUP_TIME_STEP] 秒添加到设置计时器中"), Custom String(
"マッチ準備時間に[SETUP_TIME_STEP]秒追加します"), Custom String("Añadir [SETUP_TIME_STEP] segundos al temporizador de configuración"),
Custom String("Ajouter [SETUP_TIME_STEP] sec au minuteur de configuration"), Custom String(
"HAZIRLIK SÜRESİNE [SETUP_TIME_STEP] SN EKLE"));
Global.Text_LanguageTextArray[27] = Array(Custom String(
"[TEAM_1_CAPTAIN] and [TEAM_2_CAPTAIN] can add [SETUP_TIME_STEP] sec to the setup timer"), Custom String(
"[TEAM_1_CAPTAIN]과(와) [TEAM_2_CAPTAIN]은(는) 설정 타이머에 [SETUP_TIME_STEP]초를 추가할 수 있습니다"), Custom String(
"[TEAM_1_CAPTAIN] 和 [TEAM_2_CAPTAIN] 可以将 [SETUP_TIME_STEP] 秒添加到设置计时器中"), Custom String(
"[TEAM_1_CAPTAIN] と [TEAM_2_CAPTAIN] はマッチ準備時間に[SETUP_TIME_STEP]秒追加できます"), Custom String(
"[TEAM_1_CAPTAIN] y [TEAM_2_CAPTAIN] pueden agregar [SETUP_TIME_STEP] segundos al temporizador de configuración"),
Custom String("[TEAM_1_CAPTAIN] et [TEAM_2_CAPTAIN] peuvent ajouter [SETUP_TIME_STEP] sec au minuteur de configuration"),
Custom String("[TEAM_1_CAPTAIN] VE [TEAM_2_CAPTAIN] HAZIRLIK SÜRESİNE [SETUP_TIME_STEP] SN EKLEYEBİLİR"));
Global.Text_LanguageTextArray[28] = Array(Custom String("[EVENT_PLAYER] added [SETUP_TIME_STEP] sec to setup timer"),
Custom String("[EVENT_PLAYER] 이(가) 설정 타이머에 [SETUP_TIME_STEP]초를 추가했습니다"), Custom String(
"[EVENT_PLAYER] 将 [SETUP_TIME_STEP] 秒添加到设置计时器中"), Custom String("[EVENT_PLAYER] がマッチ準備時間に[SETUP_TIME_STEP]秒追加しました"),
Custom String("[EVENT_PLAYER] agregó [SETUP_TIME_STEP] segundos al temporizador de configuración"), Custom String(
"[EVENT_PLAYER] a ajouté [SETUP_TIME_STEP] sec au minuteur de configuration"), Custom String(
"[EVENT_PLAYER] HAZIRLIK SÜRESİNE [SETUP_TIME_STEP] SN EKLEDİ"));
Global.Text_LanguageTextArray[29] = Array(Custom String("Setup timer cannot be extended beyond [SETUP_TIME_MAX]"), Custom String(
"설정 타이머는 [SETUP_TIME_MAX] 이상으로 연장할 수 없습니다"), Custom String("设置计时器不能超过 [SETUP_TIME_MAX]"), Custom String(
"マッチ準備時間の限界は [SETUP_TIME_MAX] 秒です、これ以上の延長はできません"), Custom String(
"El temporizador de configuración no puede extenderse más allá de [SETUP_TIME_MAX]"), Custom String(
"Le minuteur de configuration ne peut pas être prolongé au-delà de [SETUP_TIME_MAX]"), Custom String(
"HAZIRLIK SÜRESİ EN FAZLA[SETUP_TIME_MAX] OLABİLİR"));
Global.Text_LanguageTextArray[30] = Array(Custom String(
"Setting [ATTACKING_TEAM]'s score to [MAP_COMPLETION_SCORE] to ensure map completion"), Custom String(
"[ATTACKING_TEAM]의 점수를 [MAP_COMPLETION_SCORE]로 설정하여 맵 완료를 보장합니다"), Custom String(
"将 [ATTACKING_TEAM] 的得分设置为 [MAP_COMPLETION_SCORE],以确保地图完成"), Custom String(
"最終目標まで進めれるように、[ATTACKING_TEAM] のスコアを [MAP_COMPLETION_SCORE] に設定します"), Custom String(
"Estableciendo la puntuación del equipo [ATTACKING_TEAM] en [MAP_COMPLETION_SCORE] para asegurar la finalización del mapa"),
Custom String("Définir le score de [ATTACKING_TEAM] à [MAP_COMPLETION_SCORE] pour assurer l'achèvement de la carte"),
Custom String("HARİTANIN TAMAMLANMASI İÇİN [ATTACKING_TEAM] TAKIMININ SKORU [MAP_COMPLETION_SCORE] OLARAK AYARLANDI"));
Global.Text_LanguageTextArray[31] = Array(Custom String("Both teams completed map, match will proceed as normal"), Custom String(
"양 팀 모두 맵을 완료했습니다 매치는 일반적으로 진행됩니다"), Custom String("双方队伍都完成了地图,比赛将按照正常进行"), Custom String("両チームが最終目標まで進みました、マッチは通常通りに進行します"),
Custom String("Ambos equipos completaron el mapa, el partido continuará normalmente"), Custom String(
"Les deux équipes ont terminé la carte, le match se poursuivra normalement"), Custom String(
"HER İKİ TAKIM DA HARİTAYI TAMAMLADI, MAÇ NORMAL ŞEKİLDE DEVAM EDECEK"));
Global.Text_LanguageTextArray[32] = Array(Custom String("Ending match after two rounds"), Custom String("2라운드 이후 매치를 종료합니다"),
Custom String("进行两轮比赛后结束比赛"), Custom String("2ラウンド後にマッチを終了します"), Custom String("Finalizando el partido después de dos rondas"),
Custom String("Fin de la partie après deux rounds"), Custom String("İKİ TUR SONUNDA MAÇ SONLANDIRILIYOR"));
Global.Text_LanguageTextArray[33] = Array(Custom String("Ending match after three rounds"), Custom String("3라운드 이후 매치를 종료합니다"),
Custom String("进行三轮比赛后结束比赛"), Custom String("3ラウンド後にマッチを終了します"), Custom String(
"Finalizando el partido después de tres rondas"), Custom String("Fin de la partie après trois rounds"), Custom String(
"ÜÇ TUR SONUNDA MAÇ SONLANDIRILIYOR"));
Global.Text_LanguageTextArray[34] = Array(Custom String("Host toggled scoreboard on"), Custom String("호스트가 스코어보드를 켰습니다"),
Custom String("主持人打开了记分牌"), Custom String("ホストがスコアボードをオンにしました"), Custom String("El anfitrión activó el marcador"),
Custom String("L'hôte a activé le tableau des scores"), Custom String("YÖNETİCİ SKOR TABLOSUNU AÇTI"));
Global.Text_LanguageTextArray[35] = Array(Custom String("Host toggled scoreboard off"), Custom String("호스트가 스코어보드를 껐습니다"),
Custom String("主持人关闭了记分牌"), Custom String("ホストがスコアボードをオフにしました"), Custom String("El anfitrión desactivó el marcador"),
Custom String("L'hôte a désactivé le tableau des scores"), Custom String("YÖNETİCİ SKOR TABLOSUNU KAPATTI"));
Global.Text_LanguageTextArray[36] = Array(Custom String(
"Change Language • 언어 변경 • 更改语言 • 言語を変更する • Cambiar idioma • Changer de langue • DİL DEĞİŞTİR"), Custom String(
"Change Language • 언어 변경 • 更改语言 • 言語を変更する • Cambiar idioma • Changer de langue • DİL DEĞİŞTİR"), Custom String(
"Change Language • 언어 변경 • 更改语言 • 言語を変更する • Cambiar idioma • Changer de langue • DİL DEĞİŞTİR"), Custom String(
"Change Language • 언어 변경 • 更改语言 • 言語を変更する • Cambiar idioma • Changer de langue • DİL DEĞİŞTİR"), Custom String(
"Change Language • 언어 변경 • 更改语言 • 言語を変更する • Cambiar idioma • Changer de langue • DİL DEĞİŞTİR"), Custom String(
"Change Language • 언어 변경 • 更改语言 • 言語を変更する • Cambiar idioma • Changer de langue • DİL DEĞİŞTİR"), Custom String(
"Change Language • 언어 변경 • 更改语言 • 言語を変更する • Cambiar idioma • Changer de langue • DİL DEĞİŞTİR"));
Global.Text_LanguageTextArray[37] = Array(Custom String("Changed language to English"), Custom String("한국어로 언어 변경됨"),
Custom String("已更改语言为简体中文"), Custom String("言語が日本語に変更されました"), Custom String("Cambiado el idioma a español"), Custom String(
"Langue changée en français"), Custom String("DİL İNGİLİZCE OLARAK DEĞİŞTİRİLDİ"));
Global.Text_LanguageTextArray[38] = Array(Custom String("Debug Mode is enabled"), Custom String("디버그 모드가 활성화되었습니다"), Custom String(
"调试模式已启用"), Custom String("デバッグモードが有効です"), Custom String("El modo de depuración está habilitado"), Custom String(
"Le mode de débuggage est activé"), Custom String("HATA AYIKLAMA MODU ETKİN"));
- Global.Scrim_DebugMode = Workshop Setting Toggle(Custom String("Debug Options"), Custom String("Enable Scrim Debug Mode"), False,
- 0);
- }
- }
rule("Initialisation: Player")
- rule("Settings: Player Setup")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- actions
- {
Event Player.Text_PlayerLanguage = Global.Text_DefaultLanguage;
Event Player.ReadyUp_PlayerReady = False;
- Event Player.PlayerReady = False;
- Event Player.PlayerReadyIcon = Icon String(X);
- Event Player.Logs_HeroesPlayedArray = Empty Array;
- }
- }
rule("HUD Setup: Setup Info")
- rule("Match: Remove Assembling Heroes")
- {
- event
- {
- Ongoing - Global;
- }
- conditions
- {
Global.ReadyUp_FreqMode != 2;
(Match Round == 1 || Global.ReadyUp_FreqMode == 0) == True;
Is In Setup == True;
}
actions
{
"ScrimTime"
Create HUD Text(All Players(All Teams), Null, Null, Global.Text_LanguageTextArray[0][Local Player.Text_PlayerLanguage], Left, 0,
Null, Null, Global.Colour_TextTypeB, Visible To and String, Default Visibility);
"Countdown will start when"
Create HUD Text(All Players(All Teams), Null, Global.Text_LanguageTextArray[1][Local Player.Text_PlayerLanguage], Null, Left,
0.100, Null, Global.Colour_TextTypeA, Null, Visible To and String, Default Visibility);
"both teams are ready / all players are ready"
Create HUD Text(All Players(All Teams), Null,
Global.ReadyUp_CaptainMode == 1 ? Global.Text_LanguageTextArray[2][Local Player.Text_PlayerLanguage] : Custom String(
"{2} [{0}/{1}]", Count Of(Filtered Array(All Players(All Teams), Current Array Element.ReadyUp_PlayerReady)), Max(
Number Of Players(All Teams), Global.ReadyUp_MinimumPlayersToStart),
Global.Text_LanguageTextArray[3][Local Player.Text_PlayerLanguage]), Null, Left, 0.100, Null, Global.Colour_TextTypeA, Null,
Visible To and String, Default Visibility);
"Team 1 Header"
Create HUD Text(All Players(All Teams), Null, Null, Team 1, Left, 1, Null, Null, Global.Colour_TeamOne, Visible To and String,
Default Visibility);
"Team 2 Header"
Create HUD Text(All Players(All Teams), Null, Null, Team 2, Left, 3, Null, Null, Global.Colour_TeamTwo, Visible To and String,
Default Visibility);
"Import Code"
Create HUD Text(All Players(All Teams), Null, Custom String("{0}",
Global.Text_LanguageTextArray[6][Local Player.Text_PlayerLanguage]), Null, Right, 0, Null, Global.Colour_TextTypeA, Null,
Visible To and String, Default Visibility);
"DKEEH"
Create HUD Text(All Players(All Teams), Null, Custom String("{0}",
Global.Text_LanguageTextArray[7][Local Player.Text_PlayerLanguage]), Null, Right, 0.100, Null, Global.Colour_TextTypeB, Null,
Visible To and String, Default Visibility);
"For full documentation visit"
Create HUD Text(All Players(All Teams), Null, Custom String("{0}",
Global.Text_LanguageTextArray[4][Local Player.Text_PlayerLanguage]), Null, Right, 0.200, Null, Global.Colour_TextTypeA, Null,
Visible To and String, Default Visibility);
"workshop.codes/scrimtime"
Create HUD Text(All Players(All Teams), Null, Custom String("{0}",
Global.Text_LanguageTextArray[5][Local Player.Text_PlayerLanguage]), Null, Right, 0.300, Null, Global.Colour_TextTypeB, Null,
Visible To and String, Default Visibility);
If(Global.Debug_EnableDebugMode);
"Debug mode is enabled"
Create HUD Text(All Players(All Teams), Null, Null, Custom String("{0} {1} {0}", Icon String(Warning),
Global.Text_LanguageTextArray[38][Local Player.Text_PlayerLanguage]), Top, 6.100, Null, Null, Global.Colour_TextTypeB,
Visible To and String, Default Visibility);
End;
}
}
rule("HUD Setup: Ready Toggle")
{
event
{
Ongoing - Each Player;
All;
All;
}
conditions
{
Global.ReadyUp_FreqMode != 2;
(Match Round == 1 || Global.ReadyUp_FreqMode == 0) == True;
Is In Setup == True;
}
actions
{
If(Global.ReadyUp_CaptainMode == 0 || (Global.ReadyUp_CaptainMode == 1 && Slot Of(Event Player) == 0));
"Player Ready Status"
Create HUD Text(All Players(All Teams), Null, Custom String(" {0} {1}", Event Player.ReadyUp_PlayerReady ? Custom String("›")
: Custom String("•"), Event Player), Null, Left, (Team Of(Event Player) == Team 1 ? 2 : 4) + Slot Of(Event Player) * 0.100,
Null, Event Player.ReadyUp_PlayerReady ? Global.Colour_TextTypeC : Global.Colour_TextTypeB, Null, Visible To String and Color,
Visible Always);
"You are readied up / You are not readied up"
Create HUD Text(Event Player, Null, Null,
Event Player.ReadyUp_PlayerReady ? Global.Text_LanguageTextArray[8][Local Player.Text_PlayerLanguage] : Global.Text_LanguageTextArray[9][Local Player.Text_PlayerLanguage],
Top, 5.100, Null, Null, Event Player.ReadyUp_PlayerReady ? Global.Colour_TextTypeC : Global.Colour_TextTypeB, String and Color,
Visible Never);
If(Global.ReadyUp_CaptainMode == 0 && Global.ReadyUp_AllowForceTeamReady);
"(Press) Ready Up / Unready • (Hold) Force Team Ready"
Create HUD Text(Event Player, Null, Custom String("[{0} + {1}] {2}", Input Binding String(Global.Keybind_Command),
Input Binding String(Global.Keybind_Ready),
Event Player.ReadyUp_PlayerReady ? Global.Text_LanguageTextArray[13][Local Player.Text_PlayerLanguage] : Global.Text_LanguageTextArray[12][Local Player.Text_PlayerLanguage]),
Null, Top, 5.200, Null, Is Button Held(Event Player, Global.Keybind_Command) && Is Button Held(Event Player,
Global.Keybind_Ready) ? Global.Colour_TextTypeB : Global.Colour_TextTypeA, Null, String and Color, Visible Never);
Else;
"Ready Up / Unready"
Create HUD Text(Event Player, Null, Custom String("[{0} + {1}] {2}", Input Binding String(Global.Keybind_Command),
Input Binding String(Global.Keybind_Ready),
Event Player.ReadyUp_PlayerReady ? Global.Text_LanguageTextArray[11][Local Player.Text_PlayerLanguage] : Global.Text_LanguageTextArray[10][Local Player.Text_PlayerLanguage]),
Null, Top, 5.200, Null, Is Button Held(Event Player, Global.Keybind_Command) && Is Button Held(Event Player,
Global.Keybind_Ready) ? Global.Colour_TextTypeB : Global.Colour_TextTypeA, Null, String and Color, Visible Never);
End;
End;
}
}
rule("HUD Setup: Force Ready Hold Bar")
{
event
{
Ongoing - Each Player;
All;
All;
}
conditions
{
Global.ReadyUp_FreqMode != 2;
Global.ReadyUp_AllowForceTeamReady == True;
}
actions
{
Create Progress Bar HUD Text(Event Player.ReadyUp_CurrentHoldTime >= 0.200 ? Event Player : Null,
Event Player.ReadyUp_CurrentHoldTime / Global.ReadyUp_ForceTeamReadyHoldTime * 100, Null, Top, 5.500, Global.Colour_TextTypeA,
Null, Visible To Values and Color, Visible Never);
}
}
rule("HUD Setup: Defender Teleport")
{
event
{
Ongoing - Each Player;
All;
All;
}
conditions
{
Global.Setup_AllowDefendersTeleport == True;
Is In Setup == True;
Current Game Mode != Game Mode(Push);
Is Team On Defense(Team Of(Event Player)) == True;
- Is Assembling Heroes == True;
- Global.Scrim_RemoveAssemblingHeroes == True;
- }
- actions
- {
"Teleport to the objective / Teleport back to spawn"
Create HUD Text(Event Player, Null, Custom String("[{0} + {1}] {2}", Input Binding String(Global.Keybind_Command),
Input Binding String(Global.Keybind_DefenderTeleport), Is In Spawn Room(Event Player)
? Global.Text_LanguageTextArray[21][Local Player.Text_PlayerLanguage] : Global.Text_LanguageTextArray[22][Local Player.Text_PlayerLanguage]),
Null, Top, 5.300, Null, Is Button Held(Event Player, Global.Keybind_Command) && Is Button Held(Event Player,
Global.Keybind_DefenderTeleport) ? Global.Colour_TextTypeB : Global.Colour_TextTypeA, Null, String and Color, Visible Never);
- Set Match Time(0);
- }
- }
rule("HUD Setup: Add Setup Time")
- rule("Debug: Force Ready (Interact + Ability 1)")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
Global.ReadyUp_FreqMode != 2;
(Match Round == 1 || Global.ReadyUp_FreqMode == 0) == True;
Global.SetupAddTime_CaptainMode != 2;
- 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
- {
If(Slot Of(Event Player) == 0 || Global.SetupAddTime_CaptainMode == 0);
"Add {0} sec to setup timer"
Create HUD Text(Event Player, Null, Custom String("[{0} + {1}] {2}", Input Binding String(Global.Keybind_Command),
Input Binding String(Global.Keybind_AddSetupTime), String Replace(
Global.Text_LanguageTextArray[26][Local Player.Text_PlayerLanguage], Custom String("[SETUP_TIME_STEP]"),
Global.SetupAddTime_Step)), Null, Top, 5.400, Null, Is Button Held(Event Player, Global.Keybind_Command) && Is Button Held(
Event Player, Global.Keybind_AddSetupTime) ? Global.Colour_TextTypeB : Global.Colour_TextTypeA, Null, String and Color,
Visible Never);
Else;
"Add {0} sec to setup timer"
Create HUD Text(Event Player, Null, String Replace(String Replace(String Replace(
Global.Text_LanguageTextArray[27][Local Player.Text_PlayerLanguage], Custom String("[TEAM_1_CAPTAIN]"), Custom String("{0}",
Players In Slot(0, Team 1))), Custom String("[TEAM_2_CAPTAIN]"), Custom String("{0}", Players In Slot(0, Team 2))),
Custom String("[SETUP_TIME_STEP]"), Global.SetupAddTime_Step), Null, Top, 5.400, Null, Global.Colour_TextTypeA, Null, String,
Visible Never);
End;
- 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("HUD Setup: Change Language")
- rule("Debug: Reduce Timer to 5 (Interact + Alt Fire)")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
Global.Text_EnableChangeLanguage == True;
Is In Setup == True;
- Is Button Held(Host Player, Button(Interact)) == True;
- Is Button Held(Host Player, Button(Secondary Fire)) == True;
- Global.Scrim_DebugMode == True;
- }
- actions
- {
"Change Language • 更改语言 • 언어 변경 • 言語を変更する"
Create HUD Text(Event Player, Null, Custom String("[{0} + {1}] {2}", Input Binding String(Global.Keybind_Command),
Input Binding String(Global.Keybind_ChangeLanguage), Global.Text_LanguageTextArray[36][Event Player.Text_PlayerLanguage]),
Null, Top, 5.500, Null, Is Button Held(Event Player, Global.Keybind_Command) && Is Button Held(Event Player,
Global.Keybind_ChangeLanguage) ? Global.Colour_TextTypeB : Global.Colour_TextTypeA, Null, String and Color, Visible Never);
- Set Match Time(5);
- }
- }
rule("Setup: Remove Assembling Heroes")
- rule("Debug: Spawn Test Bot (Interact + Ultimate)")
- {
- event
- {
- Ongoing - Global;
- }
- conditions
- {
Global.Setup_RemoveAssemblingHeroes == True;
Is Assembling Heroes == True;
- Global.Scrim_DebugMode == True;
- Is Button Held(Host Player, Button(Interact)) == True;
- Is Button Held(Host Player, Button(Ultimate)) == True;
- }
- actions
- {
Set Match Time(0);
- Create Dummy Bot(Hero(D.Va), Opposite Team Of(Team Of(Host Player)), -1, Host Player, Vector(0, 0, 0));
- }
- }
rule("Setup: Override Setup Time")
- rule("Setup: Begin")
- {
- event
- {
- Ongoing - Global;
- }
- conditions
- {
- Is In Setup == True;
- }
- actions
- {
Wait(0.016, Ignore Condition);
Set Match Time(Global.Setup_SetupTimeOverride);
- If(Match Round == 1 || Global.Scrim_RequireReadyEveryRound == True);
- Set Match Time(3600);
- End;
- }
- }
rule("Setup: Freeze Setup Time")
- rule("Setup: HUD Setup")
- {
- event
- {
- Ongoing - Global;
- }
- conditions
- {
Global.ReadyUp_FreqMode != 2;
Global.ReadyUp_FreezeSetupTime == True;
(Match Round == 1 || Global.ReadyUp_FreqMode == 0) == True;
Is In Setup == True;
}
actions
{
Pause Match Time;
}
}
rule("Setup: Add Setup Time")
{
event
{
Ongoing - Each Player;
All;
All;
}
conditions
{
Global.ReadyUp_FreqMode != 2;
(Match Round == 1 || Global.ReadyUp_FreqMode == 0) == True;
Global.SetupAddTime_CaptainMode != 2;
- Is In Setup == True;
(Slot Of(Event Player) == 0 || Global.SetupAddTime_CaptainMode == 0) == True;
Is Button Held(Event Player, Global.Keybind_Command) == True;
Is Button Held(Event Player, Global.Keybind_AddSetupTime) == True;
- (Match Round == 1 || Global.Scrim_RequireReadyEveryRound) == True;
- }
- actions
- {
If(Match Time < Global.SetupAddTime_Max);
Set Match Time(Min(Global.SetupAddTime_Max + 0.900, Global.SetupAddTime_Step + Match Time));
Small Message(All Players(All Teams), String Replace(String Replace(
Global.Text_LanguageTextArray[28][Local Player.Text_PlayerLanguage], Custom String("[SETUP_TIME_STEP]"),
Global.SetupAddTime_Step), Custom String("[EVENT_PLAYER]"), Custom String("{0}", Event Player)));
Else;
"Setup timer cannot be extended beyond [SETUP_TIME_MAX]"
Small Message(Event Player, String Replace(Global.Text_LanguageTextArray[29][Local Player.Text_PlayerLanguage], Custom String(
"[SETUP_TIME_MAX]"), Custom String("{0}:{1}{2}", Round To Integer(Global.SetupAddTime_Max / 60, Down),
Global.SetupAddTime_Max % 60 < 10 ? Custom String("0") : Custom String(""), Round To Integer(Global.SetupAddTime_Max % 60,
Down))));
- 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);
- 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);
- End;
- }
- }
rule("Setup: Teleport to Objective/Spawn (Defenders Only)")
- rule("Setup: HUD Setup (Player)")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
Global.Setup_AllowDefendersTeleport == True;
Current Game Mode != Game Mode(Push);
Is Team On Defense(Team Of(Event Player)) == True;
- Is In Setup == True;
Is Button Held(Event Player, Global.Keybind_Command) == True;
Is Button Held(Event Player, Global.Keybind_DefenderTeleport) == True;
- (Match Round == 1 || Global.Scrim_RequireReadyEveryRound) == True;
- }
- actions
- {
If(Is In Spawn Room(Event Player));
If(Nearest Walkable Position(Objective Position(Objective Index)) != Null);
Teleport(Event Player, Nearest Walkable Position(Objective Position(Objective Index)));
"Teleported to objective"
Small Message(Event Player, Custom String("{0}", Global.Text_LanguageTextArray[23][Local Player.Text_PlayerLanguage]));
Else;
"Unable to teleport, please try again later"
Small Message(Event Player, Custom String("{0}", Global.Text_LanguageTextArray[25][Local Player.Text_PlayerLanguage]));
End;
Else;
Teleport(Event Player, Spawn Points(Team Of(Event Player)));
"Teleported to spawn"
Small Message(Event Player, Custom String("{0}", Global.Text_LanguageTextArray[24][Local Player.Text_PlayerLanguage]));
- 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);
- 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);
- 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),
- Color(White), Color(White), Visible To and String, Visible Never);
- }
- }
rule("Setup: Change Player Language")
- rule("Setup: Set Player Ready/Unready")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
Global.Text_EnableChangeLanguage == True;
- Is In Setup == True;
Is Button Held(Event Player, Global.Keybind_Command) == True;
Is Button Held(Event Player, Global.Keybind_ChangeLanguage) == 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;
- }
- actions
- {
Event Player.Text_PlayerLanguage = (Event Player.Text_PlayerLanguage + 1) % Count Of(Global.Text_LanguageTextArray[0]);
"Changed language to English"
Small Message(Event Player, Global.Text_LanguageTextArray[37][Event Player.Text_PlayerLanguage]);
- Event Player.PlayerReady = Event Player.PlayerReady ? False : True;
- Event Player.PlayerReadyIcon = Event Player.PlayerReady ? Icon String(Checkmark) : Icon String(X);
- }
- }
rule("Setup: Toggle Player Ready / Force Team Ready")
- rule("Setup: Teleport to Objective/Spawn (Defenders Only)")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
Global.ReadyUp_FreqMode != 2;
(Match Round == 1 || Global.ReadyUp_FreqMode == 0) == True;
(Slot Of(Event Player) == 0 || Global.ReadyUp_CaptainMode == 0) == True;
- Is In Setup == True;
Is Button Held(Event Player, Global.Keybind_Command) == True;
Is Button Held(Event Player, Global.Keybind_Ready) == 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;
- }
- actions
- {
If(Global.ReadyUp_CaptainMode == 0 && Global.ReadyUp_AllowForceTeamReady);
Event Player.ReadyUp_CurrentHoldTime = 0;
Chase Player Variable Over Time(Event Player, ReadyUp_CurrentHoldTime, Global.ReadyUp_ForceTeamReadyHoldTime,
Global.ReadyUp_ForceTeamReadyHoldTime, None);
Wait Until(!(Is Button Held(Event Player, Global.Keybind_Command) && Is Button Held(Event Player, Global.Keybind_Ready)),
Global.ReadyUp_ForceTeamReadyHoldTime);
Stop Chasing Player Variable(Event Player, ReadyUp_CurrentHoldTime);
Event Player.ReadyUp_CurrentHoldTime = 0;
If(Is Button Held(Event Player, Global.Keybind_Command) && Is Button Held(Event Player, Global.Keybind_Ready));
If(Is In Setup);
"[EVENT_PLAYER] set all players on [EVENT_PLAYER_TEAM] ready"
Small Message(All Players(All Teams), String Replace(String Replace(
Global.Text_LanguageTextArray[20][Local Player.Text_PlayerLanguage], Custom String("[EVENT_PLAYER]"), Custom String("{0}",
Event Player)), Custom String("[EVENT_PLAYER_TEAM]"), Custom String("{0}", Team Of(Event Player))));
All Players(Team Of(Event Player)).ReadyUp_PlayerReady = True;
If(Global.ReadyUp_EnableReadyVoiceLine);
Communicate(Event Player, Go);
End;
End;
Abort;
End;
End;
If(Event Player.ReadyUp_PlayerReady);
Event Player.ReadyUp_PlayerReady = False;
- If(Is In Spawn Room(Event Player));
- Teleport(Event Player, Objective Position(Objective Index));
- Small Message(Event Player, Custom String("Teleported to Objective"));
- Else;
Event Player.ReadyUp_PlayerReady = True;
If(Global.ReadyUp_EnableReadyVoiceLine);
Communicate(Event Player, Ready);
End;
- Respawn(Event Player);
- Small Message(Event Player, Custom String("Teleported to Spawn"));
- End;
- Wait Until(!Is Button Held(Event Player, Button(Jump)), 99999);
- }
- }
- rule("Setup: Both Teams Ready, Start Match (Captain-Only Mode)")
- {
- event
- {
- Ongoing - Global;
- }
- conditions
- {
Global.ReadyUp_FreqMode != 2;
Global.ReadyUp_CaptainMode == 1;
(Match Round == 1 || Global.ReadyUp_FreqMode == 0) == True;
- Is In Setup == True;
Players In Slot(0, Team 1).ReadyUp_PlayerReady == True;
Players In Slot(0, Team 2).ReadyUp_PlayerReady == 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;
- }
- actions
- {
If(Number Of Players(All Teams) < Global.ReadyUp_MinimumPlayersToStart);
"Both teams ready, but not enough players in game ([MIN_PLAYERS_TO_START])"
Small Message(All Players(All Teams), String Replace(Global.Text_LanguageTextArray[17][Local Player.Text_PlayerLanguage],
Custom String("[MIN_PLAYERS_TO_START]"), Global.ReadyUp_MinimumPlayersToStart));
Abort;
End;
"Both teams ready, starting countdown"
Small Message(All Players(All Teams), Global.Text_LanguageTextArray[15][Local Player.Text_PlayerLanguage]);
If(Global.ReadyUp_FreezeSetupTime);
Unpause Match Time;
End;
Set Match Time(Global.ReadyUp_SetupCountdownTime);
Wait Until(Players In Slot(0, Team 1).ReadyUp_PlayerReady == False || Players In Slot(0, Team 2).ReadyUp_PlayerReady == False,
Global.ReadyUp_SetupCountdownTime);
If(Players In Slot(0, Team 1).ReadyUp_PlayerReady == False || Players In Slot(0, Team 2).ReadyUp_PlayerReady == False);
"A team unreadied, setup timer reset"
Small Message(All Players(All Teams), Global.Text_LanguageTextArray[19][Local Player.Text_PlayerLanguage]);
If(Global.ReadyUp_FreezeSetupTime);
Pause Match Time;
End;
Set Match Time(Global.Setup_SetupTimeOverride);
- Small Message(All Players(All Teams), Custom String("Both teams 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,
- 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!"));
- Set Match Time(3600);
- End;
- }
- }
- rule("Setup: Both Teams Ready, Start Match (All Players Mode)")
- {
- event
- {
- Ongoing - Global;
- }
- conditions
- {
Global.ReadyUp_FreqMode != 2;
Global.ReadyUp_CaptainMode == 0;
(Match Round == 1 || Global.ReadyUp_FreqMode == 0) == True;
- Is In Setup == True;
Is True For All(All Players(All Teams), Current Array Element.ReadyUp_PlayerReady) == 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));
- }
- actions
- {
If(Number Of Players(All Teams) < Global.ReadyUp_MinimumPlayersToStart);
"All players ready, but not enough players in game ([MIN_PLAYERS_TO_START])"
Small Message(All Players(All Teams), String Replace(Global.Text_LanguageTextArray[16][Local Player.Text_PlayerLanguage],
Custom String("[MIN_PLAYERS_TO_START]"), Global.ReadyUp_MinimumPlayersToStart));
Abort;
End;
"All players ready, starting countdown"
Small Message(All Players(All Teams), Global.Text_LanguageTextArray[14][Local Player.Text_PlayerLanguage]);
If(Global.ReadyUp_FreezeSetupTime);
Unpause Match Time;
End;
Set Match Time(Global.ReadyUp_SetupCountdownTime);
Wait Until(Count Of(Filtered Array(All Players(All Teams), Current Array Element.ReadyUp_PlayerReady == True)) < Count Of(
All Players(All Teams)), Global.ReadyUp_SetupCountdownTime);
If(Count Of(Filtered Array(All Players(All Teams), Current Array Element.ReadyUp_PlayerReady == True)) < Count Of(All Players(
All Teams)));
"[EVENT_PLAYER] unreadied, setup timer reset"
Small Message(All Players(All Teams), String Replace(Global.Text_LanguageTextArray[18][Local Player.Text_PlayerLanguage],
Custom String("[EVENT_PLAYER]"), First Of(Filtered Array(All Players(All Teams),
Current Array Element.ReadyUp_PlayerReady == False))));
If(Global.ReadyUp_FreezeSetupTime);
Pause Match Time;
End;
Set Match Time(Global.Setup_SetupTimeOverride);
- 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!"));
- Set Match Time(3600);
- End;
- }
- }
rule("Game: Clean Up HUD Text")
{
event
{
Ongoing - Global;
}
actions
{
While(True);
Wait Until(Is Game In Progress, 99999);
Destroy All HUD Text;
Wait Until(Is Between Rounds, 99999);
Destroy All HUD Text;
End;
}
}
rule("Game: Reset Player Ready Status")
- rule("Game: Begin")
- {
- event
- {
- Ongoing - Global;
- }
- conditions
- {
Global.ReadyUp_FreqMode != 2;
- Is Game In Progress == True;
- (Match Round == 1 || Global.Scrim_RequireReadyEveryRound) == True;
- }
- actions
- {
Wait(0.016, Ignore Condition);
All Players(All Teams).ReadyUp_PlayerReady = False;
Stop Chasing Player Variable(All Players(All Teams), ReadyUp_CurrentHoldTime);
All Players(All Teams).ReadyUp_CurrentHoldTime = 0;
- Destroy All HUD Text;
- }
- }
rule("Scoreboard: Update Match Time")
{
event
{
Ongoing - Global;
}
actions
{
Global.Match_CurrentMatchTime = 0;
While(True);
Wait Until(Is Game In Progress, 99999);
Chase Global Variable At Rate(Match_CurrentMatchTime, 99999, 1, None);
Wait Until(!Is Game In Progress, 99999);
Stop Chasing Global Variable(Match_CurrentMatchTime);
End;
}
}
rule("Scoreboard: Create Match Time Display")
{
event
{
Ongoing - Global;
}
conditions
{
Global.Scoreboard_DisplayMatchTime == True;
Is Game In Progress == True;
}
actions
{
Wait(0.016, Ignore Condition);
If(Global.Scoreboard_Size == 0);
Create HUD Text(Null, Null, Custom String("{0} Match Time: {1}", Ability Icon String(Hero(Lúcio), Button(Ability 2)),
Custom String("{0}:{1}{2}", Round To Integer(Global.Match_CurrentMatchTime / 60, Down),
Global.Match_CurrentMatchTime % 60 < 10 ? Custom String("0") : Custom String(""), Round To Integer(
Global.Match_CurrentMatchTime % 60, Down))), Null, Left, 4, Null, Global.Colour_TextTypeA, Null, String, Visible Always);
Else;
Create HUD Text(Null, Null, Null, Custom String("{0} Match Time: {1}", Ability Icon String(Hero(Lúcio), Button(Ability 2)),
Custom String("{0}:{1}{2}", Round To Integer(Global.Match_CurrentMatchTime / 60, Down),
Global.Match_CurrentMatchTime % 60 < 10 ? Custom String("0") : Custom String(""), Round To Integer(
Global.Match_CurrentMatchTime % 60, Down))), Left, 4, Null, Null, Global.Colour_TextTypeA, String, Visible Always);
End;
}
}
rule("Scoreboard A (Standard): Create Legend")
{
event
{
Ongoing - Global;
}
conditions
{
Is Game In Progress == True;
Global.Scoreboard_EnableScoreboard == True;
Global.Scoreboard_DisplayLegend == True;
Global.Scoreboard_StatsPreset == 0;
}
actions
{
Wait(0.016, Ignore Condition);
If(Global.Scoreboard_Size == 0);
If(Global.Scoreboard_GroupMode == 0);
Create HUD Text(Null, Null, Custom String("{0} {1}", Ability Icon String(Hero(Genji), Button(Ultimate)), Custom String(
"K • D • DD • DT • ACC • UU")), Null, Left, 1, Null, Global.Colour_TextTypeA, Null, None, Visible Always);
Create HUD Text(Null, Null, Custom String("{0} {1}", Ability Icon String(Hero(Reinhardt), Button(Secondary Fire)), Custom String(
"K • D • DD • DT • DB • UU")), Null, Left, 2, Null, Global.Colour_TextTypeA, Null, None, Visible Always);
Create HUD Text(Null, Null, Custom String("{0} {1}", Ability Icon String(Hero(Baptiste), Button(Ability 1)), Custom String(
"K • D • DD • DT • HD • UU")), Null, Left, 3, Null, Global.Colour_TextTypeA, Null, None, Visible Always);
Else;
Create HUD Text(Null, Null, Custom String("{0} {1}", Ability Icon String(Hero(Genji), Button(Ultimate)), Custom String(
"K • D • DD • DT • ACC • UU")), Null, Left, 1.100, Null, Global.Colour_TextTypeA, Null, None, Visible Always);
Create HUD Text(Null, Null, Custom String("{0} {1}", Ability Icon String(Hero(Reinhardt), Button(Secondary Fire)), Custom String(
"K • D • DD • DT • DB • UU")), Null, Left, 1.200, Null, Global.Colour_TextTypeA, Null, None, Visible Always);
Create HUD Text(Null, Null, Custom String("{0} {1}", Ability Icon String(Hero(Baptiste), Button(Ability 1)), Custom String(
"K • D • DD • DT • HD • UU")), Null, Left, 1.300, Null, Global.Colour_TextTypeA, Null, None, Visible Always);
End;
Else;
If(Global.Scoreboard_GroupMode == 0);
Create HUD Text(Null, Null, Null, Custom String("{0} {1}", Ability Icon String(Hero(Genji), Button(Ultimate)), Custom String(
"K • D • DD • DT • ACC • UU")), Left, 1, Null, Null, Global.Colour_TextTypeA, None, Visible Always);
Create HUD Text(Null, Null, Null, Custom String("{0} {1}", Ability Icon String(Hero(Reinhardt), Button(Secondary Fire)),
Custom String("K • D • DD • DT • DB • UU")), Left, 2, Null, Null, Global.Colour_TextTypeA, None, Visible Always);
Create HUD Text(Null, Null, Null, Custom String("{0} {1}", Ability Icon String(Hero(Baptiste), Button(Ability 1)), Custom String(
"K • D • DD • DT • HD • UU")), Left, 3, Null, Null, Global.Colour_TextTypeA, None, Visible Always);
Else;
Create HUD Text(Null, Null, Null, Custom String("{0} {1}", Ability Icon String(Hero(Genji), Button(Ultimate)), Custom String(
"K • D • DD • DT • ACC • UU")), Left, 1.100, Null, Null, Global.Colour_TextTypeA, None, Visible Always);
Create HUD Text(Null, Null, Null, Custom String("{0} {1}", Ability Icon String(Hero(Reinhardt), Button(Secondary Fire)),
Custom String("K • D • DD • DT • DB • UU")), Left, 1.200, Null, Null, Global.Colour_TextTypeA, None, Visible Always);
Create HUD Text(Null, Null, Null, Custom String("{0} {1}", Ability Icon String(Hero(Baptiste), Button(Ability 1)), Custom String(
"K • D • DD • DT • HD • UU")), Left, 1.300, Null, Null, Global.Colour_TextTypeA, None, Visible Always);
End;
End;
}
}
rule("Scoreboard A (Standard): Create Player Entries (Small)")
{
event
{
Ongoing - Each Player;
All;
All;
}
conditions
{
Is Game In Progress == True;
Global.Scoreboard_EnableScoreboard == True;
Global.Scoreboard_Size == 0;
Global.Scoreboard_StatsPreset == 0;
}
actions
{
Wait(0.016, Ignore Condition);
If(Global.Scoreboard_GroupMode == 0);
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), Round To Integer(Player Stat(
Event Player, Hero Damage Dealt), To Nearest)), 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) : (Array Contains(All Support Heroes, Hero Of(Event Player)) ? Round To Integer(Player Stat(
Event Player, Healing Dealt), To Nearest) : Custom String("{0}%", Round To Integer(Player Hero Stat(Event Player, Hero Of(
Event Player), Weapon Accuracy) * 100, To Nearest))), Player Stat(Event Player, Ultimates Used))), Null, Left, (Array Contains(
All Damage Heroes, Hero Of(Event Player)) ? 1 : (Array Contains(All Tank Heroes, Hero Of(Event Player)) ? 2 : 3)) + (Team Of(
Event Player) == Team 1 ? 0.100 : 0.200), Null, Team Of(Event Player)
== Team 1 ? Global.Colour_TeamOne : Global.Colour_TeamTwo, Null, Sort Order and String, Visible Always);
Else If(Global.Scoreboard_GroupMode == 1);
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), Round To Integer(Player Stat(
Event Player, Hero Damage Dealt), To Nearest)), 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) : (Array Contains(All Support Heroes, Hero Of(Event Player)) ? Round To Integer(Player Stat(
Event Player, Healing Dealt), To Nearest) : Custom String("{0}%", Round To Integer(Player Hero Stat(Event Player, Hero Of(
Event Player), Weapon Accuracy) * 100, To Nearest))), Player Stat(Event Player, Ultimates Used))), Null, Left, (Array Contains(
All Damage Heroes, Hero Of(Event Player)) ? 1 : (Array Contains(All Tank Heroes, Hero Of(Event Player)) ? 2 : 3)) * 0.100 + (
Team Of(Event Player) == Team 1 ? 2 : 3), Null, Team Of(Event Player)
== Team 1 ? Global.Colour_TeamOne : Global.Colour_TeamTwo, Null, Sort Order and String, Visible Always);
Else;
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), Round To Integer(Player Stat(
Event Player, Hero Damage Dealt), To Nearest)), 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) : (Array Contains(All Support Heroes, Hero Of(Event Player)) ? Round To Integer(Player Stat(
Event Player, Healing Dealt), To Nearest) : Custom String("{0}%", Round To Integer(Player Hero Stat(Event Player, Hero Of(
Event Player), Weapon Accuracy) * 100, To Nearest))), Player Stat(Event Player, Ultimates Used))), Null, Left, Slot Of(
Event Player) * 0.100 + (Team Of(Event Player) == Team 1 ? 2 : 3), Null, Team Of(Event Player)
== Team 1 ? Global.Colour_TeamOne : Global.Colour_TeamTwo, Null, Sort Order and String, Visible Always);
End;
}
}
rule("Scoreboard A (Standard): Create Player Entries (Medium)")
{
event
{
Ongoing - Each Player;
All;
All;
}
conditions
{
Is Game In Progress == True;
Global.Scoreboard_EnableScoreboard == True;
Global.Scoreboard_Size == 1;
Global.Scoreboard_StatsPreset == 0;
}
actions
{
Wait(0.016, Ignore Condition);
If(Global.Scoreboard_GroupMode == 0);
Create HUD Text(Null, 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), Round To Integer(Player Stat(
Event Player, Hero Damage Dealt), To Nearest)), 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) : (Array Contains(All Support Heroes, Hero Of(Event Player)) ? Round To Integer(Player Stat(
Event Player, Healing Dealt), To Nearest) : Custom String("{0}%", Round To Integer(Player Hero Stat(Event Player, Hero Of(
Event Player), Weapon Accuracy) * 100, To Nearest))), Player Stat(Event Player, Ultimates Used))), Left, (Array Contains(
All Damage Heroes, Hero Of(Event Player)) ? 1 : (Array Contains(All Tank Heroes, Hero Of(Event Player)) ? 2 : 3)) + (Team Of(
Event Player) == Team 1 ? 0.100 : 0.200), Null, Null, Team Of(Event Player)
== Team 1 ? Global.Colour_TeamOne : Global.Colour_TeamTwo, Sort Order and String, Visible Always);
Else If(Global.Scoreboard_GroupMode == 1);
Create HUD Text(Null, 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), Round To Integer(Player Stat(
Event Player, Hero Damage Dealt), To Nearest)), 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) : (Array Contains(All Support Heroes, Hero Of(Event Player)) ? Round To Integer(Player Stat(
Event Player, Healing Dealt), To Nearest) : Custom String("{0}%", Round To Integer(Player Hero Stat(Event Player, Hero Of(
Event Player), Weapon Accuracy) * 100, To Nearest))), Player Stat(Event Player, Ultimates Used))), Left, (Array Contains(
All Damage Heroes, Hero Of(Event Player)) ? 1 : (Array Contains(All Tank Heroes, Hero Of(Event Player)) ? 2 : 3)) * 0.100 + (
Team Of(Event Player) == Team 1 ? 2 : 3), Null, Null, Team Of(Event Player)
== Team 1 ? Global.Colour_TeamOne : Global.Colour_TeamTwo, Sort Order and String, Visible Always);
Else;
Create HUD Text(Null, 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), Round To Integer(Player Stat(
Event Player, Hero Damage Dealt), To Nearest)), 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) : (Array Contains(All Support Heroes, Hero Of(Event Player)) ? Round To Integer(Player Stat(
Event Player, Healing Dealt), To Nearest) : Custom String("{0}%", Round To Integer(Player Hero Stat(Event Player, Hero Of(
Event Player), Weapon Accuracy) * 100, To Nearest))), Player Stat(Event Player, Ultimates Used))), Left, Slot Of(Event Player)
* 0.100 + (Team Of(Event Player) == Team 1 ? 2 : 3), Null, Null, Team Of(Event Player)
== Team 1 ? Global.Colour_TeamOne : Global.Colour_TeamTwo, Sort Order and String, Visible Always);
End;
}
}
rule("Scoreboard A (Standard): Create Player Entries (Large)")
{
event
{
Ongoing - Each Player;
All;
All;
}
conditions
{
Is Game In Progress == True;
Global.Scoreboard_EnableScoreboard == True;
Global.Scoreboard_Size == 2;
Global.Scoreboard_StatsPreset == 0;
}
actions
{
Wait(0.016, Ignore Condition);
If(Global.Scoreboard_GroupMode == 0);
Create HUD Text(Null, Hero Icon String(Hero Of(Event Player)), Event Player, Custom String("{1} • {2}", Custom String(
"{0} • {1} • {2}", Player Stat(Event Player, Final Blows), Player Stat(Event Player, Deaths), Round To Integer(Player Stat(
Event Player, Hero Damage Dealt), To Nearest)), 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) : (Array Contains(All Support Heroes, Hero Of(Event Player)) ? Round To Integer(Player Stat(
Event Player, Healing Dealt), To Nearest) : Custom String("{0}%", Round To Integer(Player Hero Stat(Event Player, Hero Of(
Event Player), Weapon Accuracy) * 100, To Nearest))), Player Stat(Event Player, Ultimates Used))), Left, (Array Contains(
All Damage Heroes, Hero Of(Event Player)) ? 1 : (Array Contains(All Tank Heroes, Hero Of(Event Player)) ? 2 : 3)) + (Team Of(
Event Player) == Team 1 ? 0.100 : 0.200), Team Of(Event Player) == Team 1 ? Global.Colour_TeamOne : Global.Colour_TeamTwo,
Team Of(Event Player) == Team 1 ? Global.Colour_TeamOne : Global.Colour_TeamTwo, Global.Colour_TextTypeA,
Sort Order and String, Visible Always);
Else If(Global.Scoreboard_GroupMode == 1);
Create HUD Text(Null, Hero Icon String(Hero Of(Event Player)), Event Player, Custom String("{1} • {2}", Custom String(
"{0} • {1} • {2}", Player Stat(Event Player, Final Blows), Player Stat(Event Player, Deaths), Round To Integer(Player Stat(
Event Player, Hero Damage Dealt), To Nearest)), 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) : (Array Contains(All Support Heroes, Hero Of(Event Player)) ? Round To Integer(Player Stat(
Event Player, Healing Dealt), To Nearest) : Custom String("{0}%", Round To Integer(Player Hero Stat(Event Player, Hero Of(
Event Player), Weapon Accuracy) * 100, To Nearest))), Player Stat(Event Player, Ultimates Used))), Left, (Array Contains(
All Damage Heroes, Hero Of(Event Player)) ? 1 : (Array Contains(All Tank Heroes, Hero Of(Event Player)) ? 2 : 3)) * 0.100 + (
Team Of(Event Player) == Team 1 ? 2 : 3), Team Of(Event Player) == Team 1 ? Global.Colour_TeamOne : Global.Colour_TeamTwo,
Team Of(Event Player) == Team 1 ? Global.Colour_TeamOne : Global.Colour_TeamTwo, Global.Colour_TextTypeA,
Sort Order and String, Visible Always);
Else;
Create HUD Text(Null, Hero Icon String(Hero Of(Event Player)), Event Player, Custom String("{1} • {2}", Custom String(
"{0} • {1} • {2}", Player Stat(Event Player, Final Blows), Player Stat(Event Player, Deaths), Round To Integer(Player Stat(
Event Player, Hero Damage Dealt), To Nearest)), 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) : (Array Contains(All Support Heroes, Hero Of(Event Player)) ? Round To Integer(Player Stat(
Event Player, Healing Dealt), To Nearest) : Custom String("{0}%", Round To Integer(Player Hero Stat(Event Player, Hero Of(
Event Player), Weapon Accuracy) * 100, To Nearest))), Player Stat(Event Player, Ultimates Used))), Left, Slot Of(Event Player)
* 0.100 + (Team Of(Event Player) == Team 1 ? 2 : 3), Team Of(Event Player)
== Team 1 ? Global.Colour_TeamOne : Global.Colour_TeamTwo, Team Of(Event Player)
== Team 1 ? Global.Colour_TeamOne : Global.Colour_TeamTwo, Global.Colour_TextTypeA, Sort Order and String, Visible Always);
End;
}
}
rule("Scoreboard B (Legacy Standard): Create Legend")
{
event
{
Ongoing - Global;
}
conditions
{
Is Game In Progress == True;
Global.Scoreboard_EnableScoreboard == True;
Global.Scoreboard_DisplayLegend == True;
Global.Scoreboard_StatsPreset == 1;
}
actions
{
Wait(0.016, Ignore Condition);
If(Global.Scoreboard_Size == 0);
If(Global.Scoreboard_GroupMode == 0);
Create HUD Text(Null, Null, Custom String("{0} {1}", Ability Icon String(Hero(Genji), Button(Ultimate)), Custom String(
"K • D • DD • DT • OA • UU")), Null, Left, 1, Null, Global.Colour_TextTypeA, Null, None, Visible Always);
Create HUD Text(Null, Null, Custom String("{0} {1}", Ability Icon String(Hero(Reinhardt), Button(Secondary Fire)), Custom String(
"K • D • DD • DT • DB • UU")), Null, Left, 2, Null, Global.Colour_TextTypeA, Null, None, Visible Always);
Create HUD Text(Null, Null, Custom String("{0} {1}", Ability Icon String(Hero(Baptiste), Button(Ability 1)), Custom String(
"K • D • HP • DT • OA • UU")), Null, Left, 3, Null, Global.Colour_TextTypeA, Null, None, Visible Always);
Else;
Create HUD Text(Null, Null, Custom String("{0} {1}", Ability Icon String(Hero(Genji), Button(Ultimate)), Custom String(
"K • D • DD • DT • OA • UU")), Null, Left, 1.100, Null, Global.Colour_TextTypeA, Null, None, Visible Always);
Create HUD Text(Null, Null, Custom String("{0} {1}", Ability Icon String(Hero(Reinhardt), Button(Secondary Fire)), Custom String(
"K • D • DD • DT • DB • UU")), Null, Left, 1.200, Null, Global.Colour_TextTypeA, Null, None, Visible Always);
Create HUD Text(Null, Null, Custom String("{0} {1}", Ability Icon String(Hero(Baptiste), Button(Ability 1)), Custom String(
"K • D • HP • DT • OA • UU")), Null, Left, 1.300, Null, Global.Colour_TextTypeA, Null, None, Visible Always);
End;
Else;
If(Global.Scoreboard_GroupMode == 0);
Create HUD Text(Null, Null, Null, Custom String("{0} {1}", Ability Icon String(Hero(Genji), Button(Ultimate)), Custom String(
"K • D • DD • DT • OA • UU")), Left, 1, Null, Null, Global.Colour_TextTypeA, None, Visible Always);
Create HUD Text(Null, Null, Null, Custom String("{0} {1}", Ability Icon String(Hero(Reinhardt), Button(Secondary Fire)),
Custom String("K • D • DD • DT • DB • UU")), Left, 2, Null, Null, Global.Colour_TextTypeA, None, Visible Always);
Create HUD Text(Null, Null, Null, Custom String("{0} {1}", Ability Icon String(Hero(Baptiste), Button(Ability 1)), Custom String(
"K • D • HP • DT • OA • UU")), Left, 3, Null, Null, Global.Colour_TextTypeA, None, Visible Always);
Else;
Create HUD Text(Null, Null, Null, Custom String("{0} {1}", Ability Icon String(Hero(Genji), Button(Ultimate)), Custom String(
"K • D • DD • DT • OA • UU")), Left, 1.100, Null, Null, Global.Colour_TextTypeA, None, Visible Always);
Create HUD Text(Null, Null, Null, Custom String("{0} {1}", Ability Icon String(Hero(Reinhardt), Button(Secondary Fire)),
Custom String("K • D • DD • DT • DB • UU")), Left, 1.200, Null, Null, Global.Colour_TextTypeA, None, Visible Always);
Create HUD Text(Null, Null, Null, Custom String("{0} {1}", Ability Icon String(Hero(Baptiste), Button(Ability 1)), Custom String(
"K • D • HP • DT • OA • UU")), Left, 1.300, Null, Null, Global.Colour_TextTypeA, None, Visible Always);
End;
End;
}
}
rule("Scoreboard B (Legacy Standard): Create Player Entries (Small)")
{
event
{
Ongoing - Each Player;
All;
All;
}
conditions
{
Is Game In Progress == True;
Global.Scoreboard_EnableScoreboard == True;
Global.Scoreboard_Size == 0;
Global.Scoreboard_StatsPreset == 1;
}
actions
{
Wait(0.016, Ignore Condition);
If(Global.Scoreboard_GroupMode == 0);
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), To Nearest)), 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, (Array Contains(All Damage Heroes, Hero Of(Event Player)) ? 1 : (
Array Contains(All Tank Heroes, Hero Of(Event Player)) ? 2 : 3)) + (Team Of(Event Player) == Team 1 ? 0.100 : 0.200), Null,
Team Of(Event Player) == Team 1 ? Global.Colour_TeamOne : Global.Colour_TeamTwo, Null, Sort Order and String, Visible Always);
Else If(Global.Scoreboard_GroupMode == 1);
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), To Nearest)), 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, (Array Contains(All Damage Heroes, Hero Of(Event Player)) ? 1 : (
Array Contains(All Tank Heroes, Hero Of(Event Player)) ? 2 : 3)) * 0.100 + (Team Of(Event Player) == Team 1 ? 2 : 3), Null,
Team Of(Event Player) == Team 1 ? Global.Colour_TeamOne : Global.Colour_TeamTwo, Null, Sort Order and String, Visible Always);
Else;
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), To Nearest)), 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 ? 2 : 3), Null, Team Of(Event Player) == Team 1 ? Global.Colour_TeamOne : Global.Colour_TeamTwo, Null,
Sort Order and String, Visible Always);
End;
}
}
rule("Scoreboard B (Legacy Standard): Create Player Entries (Medium)")
{
event
{
Ongoing - Each Player;
All;
All;
}
conditions
{
Is Game In Progress == True;
Global.Scoreboard_EnableScoreboard == True;
Global.Scoreboard_Size == 1;
Global.Scoreboard_StatsPreset == 1;
}
actions
{
Wait(0.016, Ignore Condition);
If(Global.Scoreboard_GroupMode == 0);
Create HUD Text(Null, 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), To Nearest)), 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))), Left, (Array Contains(All Damage Heroes, Hero Of(Event Player)) ? 1 : (
Array Contains(All Tank Heroes, Hero Of(Event Player)) ? 2 : 3)) + (Team Of(Event Player) == Team 1 ? 0.100 : 0.200), Null,
Null, Team Of(Event Player) == Team 1 ? Global.Colour_TeamOne : Global.Colour_TeamTwo, Sort Order and String, Visible Always);
Else If(Global.Scoreboard_GroupMode == 1);
Create HUD Text(Null, 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), To Nearest)), 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))), Left, (Array Contains(All Damage Heroes, Hero Of(Event Player)) ? 1 : (
Array Contains(All Tank Heroes, Hero Of(Event Player)) ? 2 : 3)) * 0.100 + (Team Of(Event Player) == Team 1 ? 2 : 3), Null,
Null, Team Of(Event Player) == Team 1 ? Global.Colour_TeamOne : Global.Colour_TeamTwo, Sort Order and String, Visible Always);
Else;
Create HUD Text(Null, 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), To Nearest)), 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))), Left, Slot Of(Event Player) * 0.100 + (Team Of(Event Player) == Team 1 ? 2 : 3),
Null, Null, Team Of(Event Player) == Team 1 ? Global.Colour_TeamOne : Global.Colour_TeamTwo, Sort Order and String,
Visible Always);
End;
}
}
rule("Scoreboard B (Legacy Standard): Create Player Entries (Large)")
{
event
{
Ongoing - Each Player;
All;
All;
}
conditions
{
Is Game In Progress == True;
Global.Scoreboard_EnableScoreboard == True;
Global.Scoreboard_Size == 2;
Global.Scoreboard_StatsPreset == 1;
}
actions
{
Wait(0.016, Ignore Condition);
If(Global.Scoreboard_GroupMode == 0);
Create HUD Text(Null, Hero Icon String(Hero Of(Event Player)), Event Player, Custom String("{1} • {2}", Null, 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), To Nearest)), 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))), Left, (Array Contains(All Damage Heroes, Hero Of(Event Player)) ? 1 : (
Array Contains(All Tank Heroes, Hero Of(Event Player)) ? 2 : 3)) + (Team Of(Event Player) == Team 1 ? 0.100 : 0.200), Team Of(
Event Player) == Team 1 ? Global.Colour_TeamOne : Global.Colour_TeamTwo, Team Of(Event Player)
== Team 1 ? Global.Colour_TeamOne : Global.Colour_TeamTwo, Global.Colour_TextTypeA, Sort Order and String, Visible Always);
Else If(Global.Scoreboard_GroupMode == 1);
Create HUD Text(Null, Hero Icon String(Hero Of(Event Player)), Event Player, Custom String("{1} • {2}", Null, 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), To Nearest)), 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))), Left, (Array Contains(All Damage Heroes, Hero Of(Event Player)) ? 1 : (
Array Contains(All Tank Heroes, Hero Of(Event Player)) ? 2 : 3)) * 0.100 + (Team Of(Event Player) == Team 1 ? 2 : 3), Team Of(
Event Player) == Team 1 ? Global.Colour_TeamOne : Global.Colour_TeamTwo, Team Of(Event Player)
== Team 1 ? Global.Colour_TeamOne : Global.Colour_TeamTwo, Global.Colour_TextTypeA, Sort Order and String, Visible Always);
Else;
Create HUD Text(Null, Hero Icon String(Hero Of(Event Player)), Event Player, Custom String("{1} • {2}", Null, 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), To Nearest)), 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))), Left, Slot Of(Event Player) * 0.100 + (Team Of(Event Player) == Team 1 ? 2 : 3),
Team Of(Event Player) == Team 1 ? Global.Colour_TeamOne : Global.Colour_TeamTwo, Team Of(Event Player)
== Team 1 ? Global.Colour_TeamOne : Global.Colour_TeamTwo, Global.Colour_TextTypeA, Sort Order and String, Visible Always);
End;
}
}
rule("Scoreboard C (Legacy OWL/OWC): Create Legend")
{
event
{
Ongoing - Global;
}
conditions
{
Is Game In Progress == True;
Global.Scoreboard_EnableScoreboard == True;
Global.Scoreboard_DisplayLegend == True;
Global.Scoreboard_StatsPreset == 2;
}
actions
{
Wait(0.016, Ignore Condition);
If(Global.Scoreboard_Size == 0);
If(Global.Scoreboard_GroupMode == 0);
Create HUD Text(Null, Null, Custom String("{0} {1}", Ability Icon String(Hero(Genji), Button(Ultimate)), Custom String(
"K • D • E • DD • DT • UU")), Null, Left, 1, Null, Global.Colour_TextTypeA, Null, None, Visible Always);
Create HUD Text(Null, Null, Custom String("{0} {1}", Ability Icon String(Hero(Reinhardt), Button(Secondary Fire)), Custom String(
"K • D • E • DD • DT • UU")), Null, Left, 2, Null, Global.Colour_TextTypeA, Null, None, Visible Always);
Create HUD Text(Null, Null, Custom String("{0} {1}", Ability Icon String(Hero(Baptiste), Button(Ability 1)), Custom String(
"K • D • E • DD • HP • UU")), Null, Left, 3, Null, Global.Colour_TextTypeA, Null, None, Visible Always);
Else;
Create HUD Text(Null, Null, Custom String("{0} {1}", Ability Icon String(Hero(Genji), Button(Ultimate)), Custom String(
"K • D • E • DD • DT • UU")), Null, Left, 1.100, Null, Global.Colour_TextTypeA, Null, None, Visible Always);
Create HUD Text(Null, Null, Custom String("{0} {1}", Ability Icon String(Hero(Reinhardt), Button(Secondary Fire)), Custom String(
"K • D • E • DD • DT • UU")), Null, Left, 1.200, Null, Global.Colour_TextTypeA, Null, None, Visible Always);
Create HUD Text(Null, Null, Custom String("{0} {1}", Ability Icon String(Hero(Baptiste), Button(Ability 1)), Custom String(
"K • D • E • DD • HP • UU")), Null, Left, 1.300, Null, Global.Colour_TextTypeA, Null, None, Visible Always);
End;
Else;
If(Global.Scoreboard_GroupMode == 0);
Create HUD Text(Null, Null, Null, Custom String("{0} {1}", Ability Icon String(Hero(Genji), Button(Ultimate)), Custom String(
"K • D • E • DD • DT • UU")), Left, 1, Null, Null, Global.Colour_TextTypeA, None, Visible Always);
Create HUD Text(Null, Null, Null, Custom String("{0} {1}", Ability Icon String(Hero(Reinhardt), Button(Secondary Fire)),
Custom String("K • D • E • DD • DT • UU")), Left, 2, Null, Null, Global.Colour_TextTypeA, None, Visible Always);
Create HUD Text(Null, Null, Null, Custom String("{0} {1}", Ability Icon String(Hero(Baptiste), Button(Ability 1)), Custom String(
"K • D • E • DD • HP • UU")), Left, 3, Null, Null, Global.Colour_TextTypeA, None, Visible Always);
Else;
Create HUD Text(Null, Null, Null, Custom String("{0} {1}", Ability Icon String(Hero(Genji), Button(Ultimate)), Custom String(
"K • D • E • DD • DT • UU")), Left, 1.100, Null, Null, Global.Colour_TextTypeA, None, Visible Always);
Create HUD Text(Null, Null, Null, Custom String("{0} {1}", Ability Icon String(Hero(Reinhardt), Button(Secondary Fire)),
Custom String("K • D • E • DD • DT • UU")), Left, 1.200, Null, Null, Global.Colour_TextTypeA, None, Visible Always);
Create HUD Text(Null, Null, Null, Custom String("{0} {1}", Ability Icon String(Hero(Baptiste), Button(Ability 1)), Custom String(
"K • D • E • DD • HP • UU")), Left, 1.300, Null, Null, Global.Colour_TextTypeA, None, Visible Always);
End;
End;
}
}
rule("Scoreboard C (Legacy OWL/OWC): Create Player Entries (Small)")
{
event
{
Ongoing - Each Player;
All;
All;
}
conditions
{
Is Game In Progress == True;
Global.Scoreboard_EnableScoreboard == True;
Global.Scoreboard_Size == 0;
Global.Scoreboard_StatsPreset == 2;
}
actions
{
Wait(0.016, Ignore Condition);
If(Global.Scoreboard_GroupMode == 0);
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), Player Stat(Event Player,
Eliminations)), Custom String("{0} • {1} • {2}", Round To Integer(Player Stat(Event Player, Hero Damage Dealt), To Nearest),
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, Damage Taken), To Nearest), Player Stat(Event Player,
Ultimates Used))), Null, Left, (Array Contains(All Damage Heroes, Hero Of(Event Player)) ? 1 : (Array Contains(All Tank Heroes,
Hero Of(Event Player)) ? 2 : 3)) + (Team Of(Event Player) == Team 1 ? 0.100 : 0.200), Null, Team Of(Event Player)
== Team 1 ? Global.Colour_TeamOne : Global.Colour_TeamTwo, Null, Sort Order and String, Visible Always);
Else If(Global.Scoreboard_GroupMode == 1);
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), To Nearest)), 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, (Array Contains(All Damage Heroes, Hero Of(Event Player)) ? 1 : (
Array Contains(All Tank Heroes, Hero Of(Event Player)) ? 2 : 3)) * 0.100 + (Team Of(Event Player) == Team 1 ? 2 : 3), Null,
Team Of(Event Player) == Team 1 ? Global.Colour_TeamOne : Global.Colour_TeamTwo, Null, Sort Order and String, Visible Always);
Else;
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), To Nearest)), 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 ? 2 : 3), Null, Team Of(Event Player) == Team 1 ? Global.Colour_TeamOne : Global.Colour_TeamTwo, Null,
Sort Order and String, Visible Always);
End;
}
}
rule("Scoreboard C (Legacy OWL/OWC): Create Player Entries (Medium)")
- rule("Game: Reset Player Ready Status")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Is Game In Progress == True;
Global.Scoreboard_EnableScoreboard == True;
Global.Scoreboard_Size == 1;
Global.Scoreboard_StatsPreset == 2;
- (Match Round == 1 || Global.Scrim_RequireReadyEveryRound) == True;
- }
- actions
- {
- Wait(0.016, Ignore Condition);
If(Global.Scoreboard_GroupMode == 0);
Create HUD Text(Null, 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), To Nearest)), 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))), Left, (Array Contains(All Damage Heroes, Hero Of(Event Player)) ? 1 : (
Array Contains(All Tank Heroes, Hero Of(Event Player)) ? 2 : 3)) + (Team Of(Event Player) == Team 1 ? 0.100 : 0.200), Null,
Null, Team Of(Event Player) == Team 1 ? Global.Colour_TeamOne : Global.Colour_TeamTwo, Sort Order and String, Visible Always);
Else If(Global.Scoreboard_GroupMode == 1);
Create HUD Text(Null, 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), To Nearest)), 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))), Left, (Array Contains(All Damage Heroes, Hero Of(Event Player)) ? 1 : (
Array Contains(All Tank Heroes, Hero Of(Event Player)) ? 2 : 3)) * 0.100 + (Team Of(Event Player) == Team 1 ? 2 : 3), Null,
Null, Team Of(Event Player) == Team 1 ? Global.Colour_TeamOne : Global.Colour_TeamTwo, Sort Order and String, Visible Always);
Else;
Create HUD Text(Null, 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), To Nearest)), 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))), Left, Slot Of(Event Player) * 0.100 + (Team Of(Event Player) == Team 1 ? 2 : 3),
Null, Null, Team Of(Event Player) == Team 1 ? Global.Colour_TeamOne : Global.Colour_TeamTwo, Sort Order and String,
Visible Always);
End;
- Event Player.PlayerReady = False;
- Event Player.PlayerReadyIcon = Icon String(X);
- }
- }
rule("Scoreboard C (Legacy OWL/OWC): Create Player Entries (Large)")
- rule("Scoreboard: Create HUD Text")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Is Game In Progress == True;
Global.Scoreboard_EnableScoreboard == True;
Global.Scoreboard_Size == 2;
Global.Scoreboard_StatsPreset == 2;
- (Match Round == 1 || Global.Scrim_RequireReadyEveryRound) == True;
- Global.Scrim_ScoreboardEnabled == True;
- }
- actions
- {
- Wait(0.016, Ignore Condition);
If(Global.Scoreboard_GroupMode == 0);
Create HUD Text(Null, Hero Icon String(Hero Of(Event Player)), Event Player, Custom String("{1} • {2}", Null, Custom String(
"{0} • {1} • {2}", Player Stat(Event Player, Final Blows), Player Stat(Event Player, Deaths), Player Stat(Event Player,
Eliminations)), Custom String("{0} • {1} • {2}", Round To Integer(Player Stat(Event Player, Hero Damage Dealt), To Nearest),
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, Damage Taken), To Nearest), Player Stat(Event Player,
Ultimates Used))), Left, (Array Contains(All Damage Heroes, Hero Of(Event Player)) ? 1 : (Array Contains(All Tank Heroes,
Hero Of(Event Player)) ? 2 : 3)) + (Team Of(Event Player) == Team 1 ? 0.100 : 0.200), Team Of(Event Player)
== Team 1 ? Global.Colour_TeamOne : Global.Colour_TeamTwo, Team Of(Event Player)
== Team 1 ? Global.Colour_TeamOne : Global.Colour_TeamTwo, Global.Colour_TextTypeA, Sort Order and String, Visible Always);
Else If(Global.Scoreboard_GroupMode == 1);
Create HUD Text(Null, Hero Icon String(Hero Of(Event Player)), Event Player, Custom String("{1} • {2}", Null, 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), To Nearest)), 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))), Left, (Array Contains(All Damage Heroes, Hero Of(Event Player)) ? 1 : (
Array Contains(All Tank Heroes, Hero Of(Event Player)) ? 2 : 3)) * 0.100 + (Team Of(Event Player) == Team 1 ? 2 : 3), Team Of(
Event Player) == Team 1 ? Global.Colour_TeamOne : Global.Colour_TeamTwo, Team Of(Event Player)
== Team 1 ? Global.Colour_TeamOne : Global.Colour_TeamTwo, Global.Colour_TextTypeA, Sort Order and String, Visible Always);
Else;
Create HUD Text(Null, Hero Icon String(Hero Of(Event Player)), Event Player, Custom String("{1} • {2}", Null, 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), To Nearest)), 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))), Left, Slot Of(Event Player) * 0.100 + (Team Of(Event Player) == Team 1 ? 2 : 3),
Team Of(Event Player) == Team 1 ? Global.Colour_TeamOne : Global.Colour_TeamTwo, Team Of(Event Player)
== Team 1 ? Global.Colour_TeamOne : Global.Colour_TeamTwo, Global.Colour_TextTypeA, Sort Order and String, Visible Always);
End;
- 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("Scoreboard: Host Spectator Toggle")
- rule("Round End: Ensure Map Completion (Map Completion Mode)")
- {
- event
- {
- Ongoing - Global;
- }
- conditions
- {
Global.Scoreboard_EnableScoreboard == True;
Global.Scoreboard_AllowHideScoreboard == True;
Is Game In Progress == True;
Is Button Held(Host Player, Button(Ultimate)) == True;
Is Button Held(Host Player, Button(Ability 1)) == True;
Team Of(Host Player) == All Teams;
}
actions
{
If(Global.Scoreboard_HideScoreboardID == Null);
"Host Toggled Scoreboard Off"
Small Message(All Players(All Teams), Global.Text_LanguageTextArray[35][Local Player.Text_PlayerLanguage]);
Create HUD Text(Null, 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, Global.Colour_TextTypeA, Global.Colour_TextTypeA, Global.Colour_TextTypeA, Visible To and String, Visible Always);
Global.Scoreboard_HideScoreboardID = Last Text ID;
Else;
"Host Toggled Scoreboard On"
Small Message(All Players(All Teams), Global.Text_LanguageTextArray[34][Local Player.Text_PlayerLanguage]);
Destroy HUD Text(Global.Scoreboard_HideScoreboardID);
Global.Scoreboard_HideScoreboardID = Null;
End;
}
}
rule("Map Completion: Save Team Scores on Round End")
{
event
{
Ongoing - Global;
}
conditions
{
Current Game Mode != Game Mode(Control);
Is Between Rounds == True;
}
actions
{
If(Is Team On Offense(Team 1));
Global.MapComp_TeamOneScore = Team Score(Team 1);
Else;
Global.MapComp_TeamTwoScore = Team Score(Team 2);
End;
}
}
rule("Map Completion: Ensure Map Completion (Non-Control)")
{
event
{
Ongoing - Global;
}
conditions
{
Global.MapComp_EnableMapCompletion == True;
- 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), String Replace(String Replace(
Global.Text_LanguageTextArray[30][Local Player.Text_PlayerLanguage], Custom String("[ATTACKING_TEAM]"), Is Team On Offense(
Team 1) ? Team 1 : Team 2), Custom String("[MAP_COMPLETION_SCORE]"), 2 + 0));
- 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), String Replace(String Replace(
Global.Text_LanguageTextArray[30][Local Player.Text_PlayerLanguage], Custom String("[ATTACKING_TEAM]"), Is Team On Offense(
Team 1) ? Team 1 : Team 2), Custom String("[MAP_COMPLETION_SCORE]"), 3 + 0));
- 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("Map Completion: Force Match End After Two Rounds (Non-Control)")
- rule("Round End: Force Match End After Two Rounds (Map Completion Mode)")
- {
- event
- {
- Ongoing - Global;
- }
- conditions
- {
Global.MapComp_ForceNonControlTwoRounds != 2;
Current Game Mode != Game Mode(Control);
- Is Between Rounds == True;
- Current Game Mode != Game Mode(Control);
- Match Round == 2;
- Global.Scrim_MapCompleteMode == True;
- Global.Scrim_ForceMatchEndAftTwoRounds == True;
- }
- actions
- {
If(Global.MapComp_ForceNonControlTwoRounds == 0 && Global.MapComp_TeamOneScore + Global.MapComp_TeamTwoScore == (
Current Game Mode == Game Mode(Assault) ? 4 : 6));
"Both teams completed map, match will proceed as normal"
Small Message(All Players(All Teams), Global.Text_LanguageTextArray[31][Local Player.Text_PlayerLanguage]);
Else;
"Ending match after two rounds"
Small Message(All Players(All Teams), Global.Text_LanguageTextArray[32][Local Player.Text_PlayerLanguage]);
Wait(1, Ignore Condition);
Declare Match Draw;
End;
}
}
rule("Map Completion: Force Match End After Three Rounds (Control)")
{
event
{
Ongoing - Global;
}
conditions
{
Global.MapComp_ForceControlThreeRounds == True;
Current Game Mode == Game Mode(Control);
Team Score(Team 1) + Team Score(Team 2) == 3;
}
actions
{
"Ending match after three rounds"
Small Message(All Players(All Teams), Global.Text_LanguageTextArray[33][Local Player.Text_PlayerLanguage]);
- 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(Team Score(Team 1) > Team Score(Team 2) ? Team 1 : Team 2);
}
}
rule("Logs: Match Start")
{
event
{
Ongoing - Global;
}
conditions
{
Global.Logs_EnableLogGenerator == True;
Match Round == 1;
}
actions
{
If(Global.Logs_TrackMatchStartEnd);
Log To Inspector(Custom String(",match_start,{0},{1}", Custom String("{0},{1},{2}", Global.Match_CurrentMatchTime, Current Map,
Current Game Mode), Custom String("{0},{1}", Team 1, Team 2)));
End;
}
}
rule("Logs: Round Start")
{
event
{
Ongoing - Global;
}
conditions
{
Global.Logs_EnableLogGenerator == True;
Is In Setup == True;
}
actions
{
Global.Logs_CurrentControlScoringTeam = All Teams;
Global.Logs_CurrentObjectiveIndex = Objective Index;
If(Global.Logs_TrackRoundStartEnd == True);
Log To Inspector(Custom String(",round_start,{0},{1},{2}", Custom String("{0},{1},{2}", Global.Match_CurrentMatchTime, Match Round,
Current Game Mode != Game Mode(Control) ? (Is Team On Offense(Team 1) ? Team 1 : Team 2) : Null), Custom String("{0},{1}",
Team Score(Team 1), Team Score(Team 2)), Custom String("{0}", Objective Index)));
Wait Until(Is Game In Progress, 99999);
Log To Inspector(Custom String(",setup_complete,{0}", Custom String("{0},{1},{2}", Global.Match_CurrentMatchTime, Match Round,
Match Time)));
End;
}
}
rule("Logs: Round Complete")
{
event
{
Ongoing - Global;
}
conditions
{
Global.Logs_EnableLogGenerator == True;
Global.Logs_TrackRoundStartEnd == True;
Is Between Rounds == True;
}
actions
{
Log To Inspector(Custom String(",round_end,{0},{1},{2}", Custom String("{0},{1},{2}", Global.Match_CurrentMatchTime, Match Round,
Current Game Mode != Game Mode(Control) ? (Is Team On Offense(Team 1) ? Team 1 : Team 2) : Null), Custom String("{0},{1}",
Team Score(Team 1), Team Score(Team 2)), Custom String("{0},{1},{2}", Objective Index, Custom String("{0},{1}",
Control Mode Scoring Percentage(Team 1), Control Mode Scoring Percentage(Team 2)), Match Time)));
}
}
rule("Logs: Match Complete")
{
event
{
Ongoing - Global;
}
conditions
{
Global.Logs_EnableLogGenerator == True;
Global.Logs_TrackMatchStartEnd == True;
Is Match Complete == True;
}
actions
{
Log To Inspector(Custom String(",match_end,{0},{1},{2}", Custom String("{0},{1}", Global.Match_CurrentMatchTime, Match Round),
Custom String("{0}", Team Score(Team 1)), Custom String("{0}", Team Score(Team 2))));
}
}
rule("Logs: Control Point Increment")
{
event
{
Ongoing - Global;
}
conditions
{
Global.Logs_EnableLogGenerator == True;
Global.Logs_PointCaptureProgressStep > 0;
Is Game In Progress == True;
Point Capture Percentage >= Global.Logs_PointCaptureProgress + Global.Logs_PointCaptureProgressStep;
}
actions
{
Log To Inspector(Custom String(",point_progress,{0},{1}", Custom String("{0},{1}", Global.Match_CurrentMatchTime, Match Round),
Custom String("{0},{1},{2}", Current Game Mode == Game Mode(Control) ? Opposite Team Of(Control Mode Scoring Team) : (
Is Team On Offense(Team 1) ? Team 1 : Team 2), Objective Index, Point Capture Percentage)));
Global.Logs_PointCaptureProgress += Global.Logs_PointCaptureProgressStep;
}
}
rule("Logs: Payload Increment")
{
event
{
Ongoing - Global;
}
conditions
{
Global.Logs_EnableLogGenerator == True;
Global.Logs_PayloadCaptureProgressStep > 0;
Is Game In Progress == True;
Payload Progress Percentage >= Global.Logs_PayloadCaptureProgress + Global.Logs_PayloadCaptureProgressStep;
}
actions
{
Log To Inspector(Custom String(",payload_progress,{0},{1}", Custom String("{0},{1}", Global.Match_CurrentMatchTime, Match Round),
Custom String("{0},{1},{2}", Is Team On Offense(Team 1) ? Team 1 : Team 2, Objective Index, Payload Progress Percentage)));
Global.Logs_PayloadCaptureProgress += Global.Logs_PayloadCaptureProgressStep;
}
}
rule("Logs: Reset Control Point Progress")
{
event
{
Ongoing - Global;
}
conditions
{
Global.Logs_EnableLogGenerator == True;
Global.Logs_PointCaptureProgressStep > 0;
Is Game In Progress == True;
Point Capture Percentage == 0;
}
actions
{
Global.Logs_PointCaptureProgress = 0;
}
}
rule("Logs: Reset Payload Progress")
{
event
{
Ongoing - Global;
}
conditions
{
Global.Logs_EnableLogGenerator == True;
Global.Logs_PayloadCaptureProgressStep > 0;
Is Game In Progress == True;
Payload Progress Percentage == 0;
}
actions
{
Global.Logs_PayloadCaptureProgress = 0;
}
}
rule("Logs: Objective Captured (Non-Control)")
{
event
{
Ongoing - Global;
}
conditions
{
Global.Logs_EnableLogGenerator == True;
Global.Logs_TrackObjectiveCapture == True;
Current Game Mode != Game Mode(Control);
Is Objective Complete(Global.Logs_CurrentObjectiveIndex) == True;
}
actions
{
Log To Inspector(Custom String(",objective_captured,{0},{1},{2}", Custom String("{0},{1}", Global.Match_CurrentMatchTime,
Match Round), Custom String("{0},{1}", Is Team On Offense(Team 1) ? Team 1 : Team 2, Objective Index), Custom String(
"{0},{1},{2}", Null, Null, Match Time)));
Global.Logs_CurrentObjectiveIndex = Objective Index;
}
}
rule("Logs: Objective Captured (Control)")
{
event
{
Ongoing - Global;
}
conditions
{
Global.Logs_EnableLogGenerator == True;
Global.Logs_TrackObjectiveCapture == True;
Is Game In Progress == True;
Current Game Mode == Game Mode(Control);
Control Mode Scoring Team != Global.Logs_CurrentControlScoringTeam;
}
actions
{
Log To Inspector(Custom String(",objective_captured,{0},{1},{2}", Custom String("{0},{1}", Global.Match_CurrentMatchTime,
Match Round), Custom String("{0},{1}", Control Mode Scoring Team, Objective Index), Custom String("{0},{1},{2}",
Control Mode Scoring Percentage(Team 1), Control Mode Scoring Percentage(Team 2), Match Time)));
Global.Logs_CurrentControlScoringTeam = Control Mode Scoring Team;
}
}
rule("Logs: Kills")
{
event
{
Player Died;
All;
All;
}
conditions
{
Global.Logs_EnableLogGenerator == True;
Global.Logs_TrackKills == True;
Is Game In Progress == True;
}
actions
{
Log To Inspector(Custom String(",kill,{0},{1}", Global.Match_CurrentMatchTime, Custom String("{0},{1},{2}", Custom String(
"{0},{1},{2}", Team Of(Attacker), Attacker, Hero Of(Attacker)), Custom String("{0},{1},{2}", Team Of(Victim), Victim, Hero Of(
Victim)), Custom String("{0},{1},{2}", Custom String("{0},{1}", Event Ability, Event Damage), Event Was Critical Hit,
Event Was Environment))));
}
}
rule("Logs: Hero Spawn/Swap")
{
event
{
Ongoing - Each Player;
All;
All;
}
conditions
{
Global.Logs_EnableLogGenerator == True;
(Global.Logs_TrackHeroSwaps || Global.Logs_PlayerSummaryCount != 2) == True;
Hero Of(Event Player) != Event Player.Logs_LastHero;
Is Match Complete == False;
}
actions
{
If(Global.Logs_TrackHeroSwaps && Array Contains(All Heroes, Hero Of(Event Player)));
If(Array Contains(All Heroes, Event Player.Logs_LastHero));
Log To Inspector(Custom String(",hero_swap,{0},{1},{2}", Global.Match_CurrentMatchTime, Custom String("{0},{1}", Team Of(
Event Player), Event Player), Custom String("{0},{1},{2}", Hero Of(Event Player), Event Player.Logs_LastHero,
Global.Match_CurrentMatchTime - Event Player.Logs_LastHeroTime)));
Else;
Log To Inspector(Custom String(",hero_spawn,{0},{1},{2}", Global.Match_CurrentMatchTime, Custom String("{0},{1}", Team Of(
Event Player), Event Player), Custom String("{0},{1},{2}", Hero Of(Event Player), Event Player.Logs_LastHero,
Global.Match_CurrentMatchTime - Event Player.Logs_LastHeroTime)));
End;
End;
If(!Array Contains(Event Player.Logs_HeroesPlayedArray, Hero Of(Event Player)) && Array Contains(All Heroes, Hero Of(
Event Player)));
Modify Player Variable(Event Player, Logs_HeroesPlayedArray, Append To Array, Hero Of(Event Player));
End;
If(Array Contains(All Heroes, Hero Of(Event Player)) && Array Contains(All Heroes, Event Player.Logs_LastHero));
Call Subroutine(CalcHeroPlayedTime);
End;
Event Player.Logs_LastHero = Hero Of(Event Player);
Event Player.Logs_LastHeroTime = Global.Match_CurrentMatchTime;
}
}
rule("Logs SUBR: Calculate Hero Played Time")
{
event
{
Subroutine;
CalcHeroPlayedTime;
}
actions
{
Event Player.Logs_HeroesPlayedTimeArray[Index Of Array Value(Event Player.Logs_HeroesPlayedArray, Event Player.Logs_LastHero)
] += Global.Match_CurrentMatchTime - Event Player.Logs_LastHeroTime;
}
}
rule("Logs: Damage")
{
event
{
Player Dealt Damage;
All;
All;
}
conditions
{
Global.Logs_EnableLogGenerator == True;
Global.Logs_TrackDamage == True;
Is Game In Progress == True;
}
actions
{
Log To Inspector(Custom String(",damage,{0},{1}", Global.Match_CurrentMatchTime, Custom String("{0},{1},{2}", Custom String(
"{0},{1},{2}", Team Of(Attacker), Attacker, Hero Of(Attacker)), Custom String("{0},{1},{2}", Team Of(Victim), Victim, Hero Of(
Victim)), Custom String("{0},{1},{2}", Custom String("{0},{1}", Event Ability, Event Damage), Event Was Critical Hit,
Event Was Environment))));
}
}
rule("Logs: Healing")
{
event
{
Player Received Healing;
All;
All;
}
conditions
{
Global.Logs_EnableLogGenerator == True;
Global.Logs_TrackHealing == True;
Is Game In Progress == True;
}
actions
{
Log To Inspector(Custom String(",healing,{0},{1}", Global.Match_CurrentMatchTime, Custom String("{0},{1},{2}", Custom String(
"{0},{1},{2}", Team Of(Healer), Healer, Hero Of(Healer)), Custom String("{0},{1},{2}", Team Of(Healee), Healee, Hero Of(
Healee)), Custom String("{0},{1},{2}", Event Ability, Event Healing, Event Was Health Pack))));
}
}
rule("Logs: Offensive Assists")
{
event
{
Ongoing - Each Player;
All;
All;
}
conditions
{
Global.Logs_EnableLogGenerator == True;
Global.Logs_TrackOffensiveAssists == True;
Event Player.Logs_OffensiveAssists < Player Stat(Event Player, Offensive Assists);
Is Game In Progress == True;
}
actions
{
Log To Inspector(Custom String(",offensive_assist,{0},{1},{2}", Custom String("{0}", Global.Match_CurrentMatchTime), Custom String(
"{0},{1},{2}", Team Of(Event Player), Event Player, Hero Of(Event Player)), Custom String("{0}", Hero Being Duplicated(
Event Player))));
Event Player.Logs_OffensiveAssists += 1;
Loop If Condition Is True;
}
}
rule("Logs: Defensive Assists")
{
event
{
Ongoing - Each Player;
All;
All;
}
conditions
{
Global.Logs_EnableLogGenerator == True;
Global.Logs_TrackDefensiveAssists == True;
Event Player.Logs_DefensiveAssists < Player Stat(Event Player, Defensive Assists);
Is Game In Progress == True;
}
actions
{
Log To Inspector(Custom String(",defensive_assist,{0},{1},{2}", Custom String("{0}", Global.Match_CurrentMatchTime), Custom String(
"{0},{1},{2}", Team Of(Event Player), Event Player, Hero Of(Event Player)), Custom String("{0}", Hero Being Duplicated(
Event Player))));
Event Player.Logs_DefensiveAssists += 1;
Loop If Condition Is True;
}
}
rule("Logs: Ability 1 Used")
{
event
{
Ongoing - Each Player;
All;
All;
}
conditions
{
Global.Logs_EnableLogGenerator == True;
Global.Logs_TrackAbilities == True;
Is Using Ability 1(Event Player) == True;
Is Game In Progress == True;
}
actions
{
Log To Inspector(Custom String(",ability_1_used,{0},{1},{2}", Custom String("{0}", Global.Match_CurrentMatchTime), Custom String(
"{0},{1},{2}", Team Of(Event Player), Event Player, Hero Of(Event Player)), Custom String("{0}", Hero Being Duplicated(
Event Player))));
}
}
rule("Logs: Ability 2 Used")
{
event
{
Ongoing - Each Player;
All;
All;
}
conditions
{
Global.Logs_EnableLogGenerator == True;
Global.Logs_TrackAbilities == True;
Is Using Ability 2(Event Player) == True;
Is Game In Progress == True;
}
actions
{
Log To Inspector(Custom String(",ability_2_used,{0},{1},{2}", Custom String("{0}", Global.Match_CurrentMatchTime), Custom String(
"{0},{1},{2}", Team Of(Event Player), Event Player, Hero Of(Event Player)), Custom String("{0}", Hero Being Duplicated(
Event Player))));
}
}
rule("Logs: Ultimate Charged")
{
event
{
Ongoing - Each Player;
All;
All;
}
conditions
{
Global.Logs_EnableLogGenerator == True;
Global.Logs_TrackUltimates == True;
Ultimate Charge Percent(Event Player) == 100;
Is Game In Progress == True;
}
actions
{
Event Player.Logs_UltimateID += 1;
If(Hero Of(Event Player) == Hero(D.Va) && Is In Alternate Form(Event Player) && Global.Logs_TrackDvaDemechs);
Log To Inspector(Custom String(",remech_charged,{0},{1},{2}", Custom String("{0}", Global.Match_CurrentMatchTime), Custom String(
"{0},{1},{2}", Team Of(Event Player), Event Player, Hero Of(Event Player)), Custom String("{0},{1}", Hero Being Duplicated(
Event Player), Event Player.Logs_UltimateID)));
Else;
Log To Inspector(Custom String(",ultimate_charged,{0},{1},{2}", Custom String("{0}", Global.Match_CurrentMatchTime), Custom String(
"{0},{1},{2}", Team Of(Event Player), Event Player, Hero Of(Event Player)), Custom String("{0},{1}", Hero Being Duplicated(
Event Player), Event Player.Logs_UltimateID)));
End;
}
}
rule("Logs: Ultimate Used")
{
event
{
Ongoing - Each Player;
All;
All;
}
conditions
{
Global.Logs_EnableLogGenerator == True;
Global.Logs_TrackUltimates == True;
Is Using Ultimate(Event Player) == True;
Hero Of(Event Player) != Hero(D.Va);
Is Game In Progress == True;
}
actions
{
Log To Inspector(Custom String(",ultimate_start,{0},{1},{2}", Custom String("{0}", Global.Match_CurrentMatchTime), Custom String(
"{0},{1},{2}", Team Of(Event Player), Event Player, Hero Of(Event Player)), Custom String("{0},{1}", Hero Being Duplicated(
Event Player), Event Player.Logs_UltimateID)));
Wait Until(!Is Using Ultimate(Event Player), 99999);
Log To Inspector(Custom String(",ultimate_end,{0},{1},{2}", Custom String("{0}", Global.Match_CurrentMatchTime), Custom String(
"{0},{1},{2}", Team Of(Event Player), Event Player, Hero Of(Event Player)), Custom String("{0},{1}", Hero Being Duplicated(
Event Player), Event Player.Logs_UltimateID)));
}
}
rule("Logs: D.Va Remech/Self-Destruct Used")
{
event
{
Ongoing - Each Player;
All;
All;
}
conditions
{
Global.Logs_EnableLogGenerator == True;
Is Using Ultimate(Event Player) == True;
Hero Of(Event Player) == Hero(D.Va);
Is Game In Progress == True;
}
actions
{
Wait(1.740, Ignore Condition);
If(Global.Logs_TrackDvaDemechs && !Is In Alternate Form(Event Player));
Log To Inspector(Custom String(",dva_remech,{0},{1},{2}", Custom String("{0}", Global.Match_CurrentMatchTime), Custom String(
"{0},{1},{2}", Team Of(Event Player), Event Player, Hero Of(Event Player)), Custom String("{0}",
Event Player.Logs_UltimateID)));
Else If(Global.Logs_TrackUltimates);
Log To Inspector(Custom String(",ultimate_start,{0},{1},{2}", Custom String("{0}", Global.Match_CurrentMatchTime), Custom String(
"{0},{1},{2}", Team Of(Event Player), Event Player, Hero Of(Event Player)), Custom String("{0},{1}", Hero Being Duplicated(
Event Player), Event Player.Logs_UltimateID)));
Wait Until(!Is Using Ultimate(Event Player), 99999);
Log To Inspector(Custom String(",ultimate_end,{0},{1},{2}", Custom String("{0}", Global.Match_CurrentMatchTime), Custom String(
"{0},{1},{2}", Team Of(Event Player), Event Player, Hero Of(Event Player)), Custom String("{0},{1}", Hero Being Duplicated(
Event Player), Event Player.Logs_UltimateID)));
End;
}
}
rule("Logs: Echo Duplicate")
{
event
{
Ongoing - Each Player;
All;
All;
}
conditions
{
Global.Logs_EnableLogGenerator == True;
Global.Logs_TrackEchoDuplicates == True;
Is Game In Progress == True;
Is Duplicating(Event Player) == True;
}
actions
{
Event Player.Logs_DuplicateID = Event Player.Logs_UltimateID;
Log To Inspector(Custom String(",echo_duplicate_start,{0},{1},{2}", Global.Match_CurrentMatchTime, Custom String("{0},{1},{2}",
Team Of(Event Player), Event Player, Hero Of(Event Player)), Custom String("{0},{1}", Hero Being Duplicated(Event Player),
Event Player.Logs_DuplicateID)));
Wait Until(!Is Duplicating(Event Player), 99999);
Log To Inspector(Custom String(",echo_duplicate_end,{0},{1},{2}", Global.Match_CurrentMatchTime, Custom String("{0},{1},{2}",
Team Of(Event Player), Event Player, Hero Of(Event Player)), Event Player.Logs_DuplicateID));
}
}
rule("Logs: Mercy Resurrect")
{
event
{
Ongoing - Each Player;
All;
All;
}
conditions
{
Global.Logs_EnableLogGenerator == True;
Global.Logs_TrackMercyRez == True;
Is Game In Progress == True;
Is Dead(Event Player) == True;
}
actions
{
Wait Until(Is Alive(Event Player), 99999);
Wait(0.240, Ignore Condition);
If(!Is In Spawn Room(Event Player) && Is Game In Progress);
Log To Inspector(Custom String(",mercy_rez,{0},{1}", Global.Match_CurrentMatchTime, Custom String("{0},{1}", Custom String(
"{0},{1},{2}", Team Of(Event Player), Players On Hero(Hero(Mercy), Team Of(Event Player)), Hero(Mercy)), Custom String(
"{0},{1},{2}", Team Of(Event Player), Event Player, Hero Of(Event Player)))));
End;
}
}
rule("Logs: Player Stat Summary")
{
event
{
Ongoing - Each Player;
All;
All;
}
conditions
{
Global.Logs_EnableLogGenerator == True;
(Global.Logs_PlayerSummaryFrequency == 0 || (Global.Logs_PlayerSummaryFrequency == 1 && Is Match Complete)) == True;
Is Between Rounds == True;
}
actions
{
Call Subroutine(CalcHeroPlayedTime);
Event Player.Logs_LastHero = Hero Of(Event Player);
Event Player.Logs_LastHeroTime = Global.Match_CurrentMatchTime;
For Player Variable(Event Player, Logs_CurrentHeroIterator, 0, Count Of(Event Player.Logs_HeroesPlayedArray), 1);
Event Player.Logs_CurrentHeroIterated = Event Player.Logs_HeroesPlayedArray[Event Player.Logs_CurrentHeroIterator];
Log To Inspector(Custom String(",player_stat,{0},{1},{2}", Custom String("{0},{1}", Global.Match_CurrentMatchTime, Match Round),
Custom String("{0},{1},{2}", Team Of(Event Player), Event Player, Event Player.Logs_CurrentHeroIterated), Custom String(
"{0},{1}", Custom String("{0},{1},{2}", Custom String("{0},{1},{2}", Custom String("{0},{1},{2}", Player Hero Stat(
Event Player, Event Player.Logs_CurrentHeroIterated, Eliminations), Player Hero Stat(Event Player,
Event Player.Logs_CurrentHeroIterated, Final Blows), Player Hero Stat(Event Player, Event Player.Logs_CurrentHeroIterated,
Deaths)), Custom String("{0},{1},{2}", Player Hero Stat(Event Player, Event Player.Logs_CurrentHeroIterated, All Damage Dealt),
Player Hero Stat(Event Player, Event Player.Logs_CurrentHeroIterated, Barrier Damage Dealt), Player Hero Stat(Event Player,
Event Player.Logs_CurrentHeroIterated, Hero Damage Dealt)), Custom String("{0},{1},{2}", Player Hero Stat(Event Player,
Event Player.Logs_CurrentHeroIterated, Healing Dealt), Player Hero Stat(Event Player, Event Player.Logs_CurrentHeroIterated,
Healing Received), Player Hero Stat(Event Player, Event Player.Logs_CurrentHeroIterated, Self Healing))), Custom String(
"{0},{1},{2}", Custom String("{0},{1}", Player Hero Stat(Event Player, Event Player.Logs_CurrentHeroIterated, Damage Taken),
Player Hero Stat(Event Player, Event Player.Logs_CurrentHeroIterated, Damage Blocked)), Custom String("{0},{1}",
Player Hero Stat(Event Player, Event Player.Logs_CurrentHeroIterated, Defensive Assists), Player Hero Stat(Event Player,
Event Player.Logs_CurrentHeroIterated, Offensive Assists)), Custom String("{0},{1}", Player Hero Stat(Event Player,
Event Player.Logs_CurrentHeroIterated, Ultimates Earned), Player Hero Stat(Event Player, Event Player.Logs_CurrentHeroIterated,
Ultimates Used))), Custom String("{0},{1}", Custom String("{0},{1},{2}", Player Hero Stat(Event Player,
Event Player.Logs_CurrentHeroIterated, Multikill Best), Player Hero Stat(Event Player, Event Player.Logs_CurrentHeroIterated,
Multikills), Player Hero Stat(Event Player, Event Player.Logs_CurrentHeroIterated, Solo Kills)), Custom String("{0},{1},{2}",
Player Hero Stat(Event Player, Event Player.Logs_CurrentHeroIterated, Objective Kills), Player Hero Stat(Event Player,
Event Player.Logs_CurrentHeroIterated, Environmental Kills), Player Hero Stat(Event Player,
Event Player.Logs_CurrentHeroIterated, Environmental Deaths)))), Custom String("{0},{1}", Custom String("{0},{1},{2}",
Custom String("{0},{1}", Player Hero Stat(Event Player, Event Player.Logs_CurrentHeroIterated, Critical Hits),
Player Hero Stat(Event Player, Event Player.Logs_CurrentHeroIterated, Critical Hit Accuracy)), Custom String("{0},{1},{2}",
Player Hero Stat(Event Player, Event Player.Logs_CurrentHeroIterated, Scoped Accuracy), Player Hero Stat(Event Player,
Event Player.Logs_CurrentHeroIterated, Scoped Critical Hit Accuracy), Player Hero Stat(Event Player,
Event Player.Logs_CurrentHeroIterated, Scoped Critical Hit Kills)), Custom String("{0},{1},{2}", Player Hero Stat(Event Player,
Event Player.Logs_CurrentHeroIterated, Shots Fired), Player Hero Stat(Event Player, Event Player.Logs_CurrentHeroIterated,
Shots Hit), Player Hero Stat(Event Player, Event Player.Logs_CurrentHeroIterated, Shots Missed))), Custom String("{0},{1}",
Custom String("{0},{1},{2}", Player Hero Stat(Event Player, Event Player.Logs_CurrentHeroIterated, Scoped Shots),
Player Hero Stat(Event Player, Event Player.Logs_CurrentHeroIterated, Scoped Hits), Player Hero Stat(Event Player,
Event Player.Logs_CurrentHeroIterated, Weapon Accuracy)),
Event Player.Logs_HeroesPlayedTimeArray[Event Player.Logs_CurrentHeroIterator])))));
End;
Global.Logs_PlayerSummaryCount += 1;
}
}
rule("Debug: Force Ready (Interact + Ability 1)")
{
event
{
Ongoing - Each Player;
All;
All;
}
conditions
{
Global.Debug_EnableDebugMode == True;
Is In Setup == True;
Is Button Held(Host Player, Button(Interact)) == True;
Is Button Held(Host Player, Button(Ability 1)) == True;
}
actions
{
All Players(All Teams).ReadyUp_PlayerReady = True;
}
}
rule("Debug: Reduce Timer to 5 (Interact + Alt Fire)")
{
event
{
Ongoing - Each Player;
All;
All;
}
conditions
{
Global.Debug_EnableDebugMode == True;
Is Button Held(Host Player, Button(Interact)) == True;
Is Button Held(Host Player, Button(Secondary Fire)) == True;
}
actions
{
Set Match Time(5);
}
}
rule("Debug: Spawn Test Bot (Interact + Melee)")
{
event
{
Ongoing - Global;
}
conditions
{
Global.Debug_EnableDebugMode == True;
Is Button Held(Host Player, Button(Interact)) == True;
Is Button Held(Host Player, Button(Melee)) == True;
}
actions
{
Create Dummy Bot(Hero(Reaper), Opposite Team Of(Team Of(Host Player)), -1, Position Of(Host Player), Vector(0, 0, 0));
}
}
rule("Debug: Automatically End Match")
{
event
{
Ongoing - Global;
}
conditions
{
Global.Debug_EnableDebugMode == True;
Global.Logs_AutoMatchEndTime < 3600;
}
actions
{
Wait(Global.Logs_AutoMatchEndTime, Ignore Condition);
Declare Team Victory(All Teams);
}
}
rule("Debug: Display Server Loads")
{
event
{
Ongoing - Global;
}
conditions
{
Global.Debug_EnableDebugMode == True;
Global.Debug_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, Global.Colour_TextTypeA, Global.Colour_TextTypeA, Global.Colour_TextTypeA,
Visible To and String, Visible Always);
- Declare Team Victory(Is Team On Offense(Team 1) ? Team 1 : Team 2);
- }
- }