Create
Return to post

Comparing difference between and

View raw
  • 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);
  • }
  • }
Join the Workshop.codes Discord