Return to post
- settings
- {
- main
- {
- Description: "[v3.0] 2vs2 All Heroes - by Marc304 --- Supported Maps: Castillo, Ecopoint (+Winter), Workshop Island (+Night), Chamber, Expanse (+Night)"
- }
- lobby
- {
- Max Team 1 Players: 2
- Max Team 2 Players: 2
- }
- modes
- {
- disabled Deathmatch
- {
- Score To Win: 50
- }
- Team Deathmatch
- {
- Game Length In Minutes: 15
- Score To Win: 15
- enabled maps
- {
- Castillo
- }
- }
- General
- {
- Allow Hero Switching: Off
- Limit Roles: 2 Of Each Role Per Team
- Respawn As Random Hero: On
- Spawn Health Packs: Disabled
- }
- }
- heroes
- {
- General
- {
- Lúcio
- {
- Crossfade: Off
- }
- Mercy
- {
- Regeneration: Off
- Weapons Enabled: Caduceus Blaster Only
- }
- Sombra
- {
- Stealth: Off
- }
- }
- }
- }
- variables
- {
- global:
- 1: goalScore
- 2: rounds
- 3: showHUD
- 4: checkedAllowed
- 11: heroList
14: showHUD
- 17: heroListPos
- 22: tp1b
- 23: tp2b
- 24: tp1a
- 25: tp2a
- player:
- 3: damage
- }
- subroutines
- {
- 0: SwitchHero
- 1: Teleport
- 2: setPoints
- 3: Slowmo
- }
- rule("Credits - By Marc304")
- {
- event
- {
- Ongoing - Global;
- }
- conditions
- {
- Is Game In Progress != True;
- }
- actions
- {
- Create HUD Text(All Players(All Teams), Null, Null, Custom String("By Marc304"), Right, 0, White, White, White,
- Visible To and String, Default Visibility);
- "Map Support"
- Global.T = Last Text ID;
- Create HUD Text(All Players(All Teams), Custom String("", Global.M), Null, Custom String("Supported Map: {0}", Global.M), Left, 0,
- Yellow, White, Yellow, Visible To and String, Default Visibility);
- Global.S = Last Text ID;
disabled Create HUD Text(All Players(All Teams), Null, Custom String(
"Supported Maps: Castillo, Ecopoint, Backforest, Workshop Island, Chamber, Expanse"), Custom String(
"This message will disappear when the game starts"), Left, 1, Yellow, White, White, Visible To and String, Default Visibility);
disabled Global.U = Last Text ID;
- }
- }
- rule("[Config] Create Hero List")
- {
- event
- {
- Ongoing - Global;
- }
- actions
- {
- "Activate/Deactivate the damage stats HUD"
- Global.showHUD = Workshop Setting Toggle(Custom String("HUD"), Custom String("Show Damage HUD"), True);
- "Goal Score"
- Global.goalScore = Workshop Setting Integer(Custom String(
- "Score to Win - You need to change this also in the Team-Deathmatch Settings!"), Custom String("Score to Win"), 15, 1, 100);
- Global.checkedAllowed = True;
- }
- }
- rule("Map TPs")
- {
- event
- {
- Player Joined Match;
- All;
- All;
- }
- conditions
- {
- disabled Is Game In Progress == True;
- }
- actions
- {
- If(Current Map == Map(Castillo));
- Global.tp1a = Vector(-103.478, 45.255, 74.429);
- Global.tp2a = Vector(-96.306, 45.255, 73.033);
- Global.tp1b = Vector(-109.829, 45.255, 44.071);
- Global.tp2b = Vector(-101.077, 45.255, 42.482);
- Global.M = True;
- Else If(Current Map == Map(Ecopoint: Antarctica) || Current Map == Map(Ecopoint: Antarctica Winter));
- Global.tp1a = Vector(4.016, 18.449, -11.793);
- Global.tp2a = Vector(-0.382, 18.449, -11.793);
- Global.tp1b = Vector(3.940, 18.449, 11.958);
- Global.tp2b = Vector(-0.516, 18.449, 11.949);
- Global.M = True;
- Else If(Current Map == Map(Workshop Island) || Current Map == Map(Workshop Island Night));
- Global.tp1a = Vector(5, 5.349, 10);
- Global.tp2a = Vector(-5, 5.349, 10);
- Global.tp1b = Vector(5, 5.349, -10);
- Global.tp2b = Vector(-5, 5.349, -10);
- Global.M = True;
- Else If(Current Map == Map(Workshop Chamber) || Current Map == Map(Workshop Expanse) || Current Map == Map(
- Workshop Expanse Night));
- Global.tp1a = Vector(5, 5.349, 10);
- Global.tp2a = Vector(-5, 5.349, 10);
- Global.tp1b = Vector(5, 5.349, -10);
- Global.tp2b = Vector(-5, 5.349, -10);
- Global.M = True;
- disabled Else If(Current Map == Map(Black Forest) || Current Map == Map(Black Forest Winter));
- disabled Global.tp1a = Vector(-13.098, 19.712, 14.660);
- disabled Global.tp2a = Vector(-13.190, 19.712, -4.057);
- disabled Global.tp1b = Vector(-13.098, 19.712, 14.660);
- disabled Global.tp2b = Vector(-13.190, 19.712, -4.057);
- disabled Global.M = True;
- Else;
- Big Message(All Players(All Teams), Custom String("This map is not supported!"));
- Global.M = False;
- End;
- }
- }
rule("[Config] & Create Hero List")
- rule("Teleport")
- {
- event
- {
Ongoing - Global;
- Subroutine;
- Teleport;
- }
- actions
- {
"Goal Score"
Global.goalScore = 15;
"Activate/Deactivate the damge stats HUD"
Global.showHUD = True;
"Hero List - Don't deactivate the first Rule! (but you can change the Hero)"
Global.heroList = Hero(Soldier: 76);
Modify Global Variable(heroList, Append To Array, Hero(Ashe));
Modify Global Variable(heroList, Append To Array, Hero(Baptiste));
Modify Global Variable(heroList, Append To Array, Hero(Bastion));
Modify Global Variable(heroList, Append To Array, Hero(Brigitte));
Modify Global Variable(heroList, Append To Array, Hero(D.Va));
Modify Global Variable(heroList, Append To Array, Hero(Doomfist));
Modify Global Variable(heroList, Append To Array, Hero(Echo));
Modify Global Variable(heroList, Append To Array, Hero(Genji));
Modify Global Variable(heroList, Append To Array, Hero(Hanzo));
Modify Global Variable(heroList, Append To Array, Hero(Junkrat));
Modify Global Variable(heroList, Append To Array, Hero(Lúcio));
Modify Global Variable(heroList, Append To Array, Hero(McCree));
Modify Global Variable(heroList, Append To Array, Hero(Mei));
Modify Global Variable(heroList, Append To Array, Hero(Mercy));
Modify Global Variable(heroList, Append To Array, Hero(Moira));
Modify Global Variable(heroList, Append To Array, Hero(Orisa));
Modify Global Variable(heroList, Append To Array, Hero(Pharah));
Modify Global Variable(heroList, Append To Array, Hero(Reaper));
Modify Global Variable(heroList, Append To Array, Hero(Reinhardt));
Modify Global Variable(heroList, Append To Array, Hero(Roadhog));
Modify Global Variable(heroList, Append To Array, Hero(Sigma));
Modify Global Variable(heroList, Append To Array, Hero(Ana));
Modify Global Variable(heroList, Append To Array, Hero(Sombra));
Modify Global Variable(heroList, Append To Array, Hero(Symmetra));
Modify Global Variable(heroList, Append To Array, Hero(Torbjörn));
Modify Global Variable(heroList, Append To Array, Hero(Widowmaker));
Modify Global Variable(heroList, Append To Array, Hero(Winston));
Modify Global Variable(heroList, Append To Array, Hero(Wrecking Ball));
Modify Global Variable(heroList, Append To Array, Hero(Zarya));
Modify Global Variable(heroList, Append To Array, Hero(Zenyatta));
- Teleport(Players In Slot(0, Team 1), Global.tp1a);
- Teleport(Players In Slot(1, Team 1), Global.tp2a);
- Teleport(Players In Slot(0, Team 2), Global.tp1b);
- Teleport(Players In Slot(1, Team 2), Global.tp2b);
- }
- }
- rule("Kill")
- {
- event
- {
- Player Died;
- All;
- All;
- }
- conditions
- {
- Team Score(Team 1) != Global.goalScore;
- Team Score(Team 2) != Global.goalScore;
- disabled Number of Dead Players(Team 1) == 2;
- disabled Number of Dead Players(Team 2) == 2;
- }
- actions
- {
- If(Number of Dead Players(Team 1) == 2 || Number of Dead Players(Team 2) == 2);
- Call Subroutine(setPoints);
- Global.heroListPos += 1;
- Global.rounds += 1;
- Wait(0.200, Ignore Condition);
- Call Subroutine(SwitchHero);
- Call Subroutine(Teleport);
- Resurrect(All Players(All Teams));
- Call Subroutine(Slowmo);
- }
- }
- rule("setPoints")
- {
- event
- {
- Subroutine;
- setPoints;
- }
- actions
- {
- Modify Team Score(Team Of(Attacker), 1);
- If(Attacker == Event Player && Team Of(Event Player) == Team 1);
- Modify Team Score(Team 2, 1);
- Modify Team Score(Team 1, -1);
- Else If(Attacker == Event Player && Team Of(Event Player) == Team 2);
- Modify Team Score(Team 1, 1);
- Modify Team Score(Team 2, -1);
- End;
- Wait(0.001, Ignore Condition);
- If(Team Score(Team 1) == Global.goalScore);
- Declare Team Victory(Team 1);
- End;
- If(Team Score(Team 2) == Global.goalScore);
- Declare Team Victory(Team 2);
- }
- }
- rule("Check allowed Heroes")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Global.checkedAllowed == True;
- }
- actions
- {
- Global.heroList = Allowed Heroes(Event Player);
- Global.heroList = Array Slice(Randomized Array(Global.heroList), 0, Count Of(Global.heroList));
- Global.checkedAllowed = False;
- }
- }
- rule("Switch Hero")
- {
- event
- {
- Subroutine;
- SwitchHero;
- }
- actions
- {
- Start Forcing Player To Be Hero(All Players(All Teams), Global.heroList[Global.heroListPos]);
- Preload Hero(All Players(All Teams), Global.heroList[Global.heroListPos + 1]);
- }
- }
- rule("Start")
- {
- event
- {
- Ongoing - Global;
- }
- conditions
- {
- Is Game In Progress == True;
- }
- actions
- {
Set Objective Description(All Players(All Teams), Custom String("First to {1} Wins - Round: {0}", Global.rounds + 1,
- Set Objective Description(All Players(All Teams), Custom String("First to {1} Kills - Round: {0}", Global.rounds + 1,
- Global.goalScore), Visible To and String);
Destroy HUD Text(Global.T);
Destroy HUD Text(Global.S);
Destroy HUD Text(Global.U);
- Call Subroutine(SwitchHero);
- Call Subroutine(Teleport);
- Call Subroutine(Slowmo);
- Wait(0.200, Ignore Condition);
- Destroy HUD Text(Global.F);
- Destroy HUD Text(Global.P);
- Disable Built-In Game Mode Respawning(All Players(All Teams));
- Disable Built-In Game Mode Scoring;
- Disable Built-In Game Mode Completion;
- }
- }
rule("Teleport")
{
event
{
Subroutine;
Teleport;
}
actions
{
Teleport(Players In Slot(0, Team 1), Global.tp1a);
Teleport(Players In Slot(1, Team 1), Global.tp2a);
Teleport(Players In Slot(0, Team 2), Global.tp1b);
Teleport(Players In Slot(1, Team 2), Global.tp2b);
}
}
- rule("Slowmo")
- {
- event
- {
- Subroutine;
- Slowmo;
- }
- actions
- {
- Set Slow Motion(20);
- Wait(0.500, Ignore Condition);
- Set Slow Motion(100);
- }
- }
rule("Kill")
- rule("HUD (on)")
- {
- event
- {
Player Died;
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
Team Score(Team 1) != Global.goalScore;
Team Score(Team 2) != Global.goalScore;
disabled Number of Dead Players(Team 1) == 2;
disabled Number of Dead Players(Team 2) == 2;
- Is Game In Progress == True;
- Global.showHUD == True;
- }
- actions
- {
If(Number of Dead Players(Team 1) == 2 || Number of Dead Players(Team 2) == 2);
Call Subroutine(setPoints);
Global.heroListPos += 1;
Global.rounds += 1;
Wait(0.200, Ignore Condition);
Call Subroutine(SwitchHero);
Call Subroutine(Teleport);
Resurrect(All Players(All Teams));
Call Subroutine(Slowmo);
- Destroy All HUD Text;
- Wait(0.250, Ignore Condition);
- Create HUD Text(Event Player, Null, Null, Custom String("Damage"), Left, 1, White, White, White, Visible To and String,
- Default Visibility);
- Create HUD Text(Event Player, Null, Null, Custom String("{1}: {0}", Round To Integer(Players In Slot(0, Team 1).damage,
- To Nearest), Players In Slot(0, Team 1)), Left, 2, White, White, White, Visible To and String, Default Visibility);
- Create HUD Text(Event Player, Null, Null, Custom String("{1}: {0}", Round To Integer(Players In Slot(0, Team 2).damage,
- To Nearest), Players In Slot(0, Team 2)), Left, 3, White, White, White, Visible To and String, Default Visibility);
- }
- }
rule("HUD")
- rule("HUD (off)")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Is Game In Progress == True;
Global.showHUD == True;
- Global.showHUD == False;
- }
- actions
- {
Create HUD Text(Event Player, Null, Null, Custom String("Damage"), Left, 1, White, White, White, Visible To and String,
Default Visibility);
Create HUD Text(Event Player, Null, Null, Custom String("{1}: {0}", Round To Integer(Players In Slot(0, Team 1).D, To Nearest),
Players In Slot(0, Team 1)), Left, 2, White, White, White, Visible To and String, Default Visibility);
Create HUD Text(Event Player, Null, Null, Custom String("{1}: {0}", Round To Integer(Players In Slot(1, Team 1).D, To Nearest),
Players In Slot(1, Team 1)), Left, 3, White, White, White, Visible To and String, Default Visibility);
Create HUD Text(Event Player, Null, Null, Custom String("{1}: {0}", Round To Integer(Players In Slot(0, Team 2).D, To Nearest),
Players In Slot(0, Team 2)), Left, 4, White, White, White, Visible To and String, Default Visibility);
Create HUD Text(Event Player, Null, Null, Custom String("{1}: {0}", Round To Integer(Players In Slot(4, Team 2).D, To Nearest),
Players In Slot(1, Team 2)), Left, 3, White, White, White, Visible To and String, Default Visibility);
- Destroy All HUD Text;
- }
- }
- rule("DMG")
- {
- event
- {
- Player Dealt Damage;
- All;
- All;
- }
- conditions
- {
- Victim != Event Player;
- }
- actions
- {
Event Player.D += Event Damage;
disabled Event Player.D = Round To Integer(Event Player.D, To Nearest);
- Event Player.damage += Event Damage;
- }
- }
rule("setPoints")
- rule("More Rounds than Heroes = Set to Round 0")
- {
- event
- {
Subroutine;
setPoints;
- Ongoing - Global;
- }
- conditions
- {
- Global.heroListPos == Count Of(Global.heroList);
- }
- actions
- {
Modify Team Score(Team Of(Attacker), 1);
If(Attacker == Event Player && Team Of(Event Player) == Team 1);
Modify Team Score(Team 2, 1);
Modify Team Score(Team 1, -1);
Else If(Attacker == Event Player && Team Of(Event Player) == Team 2);
Modify Team Score(Team 1, 1);
Modify Team Score(Team 2, -1);
End;
Wait(0.001, Ignore Condition);
If(Team Score(Team 1) == Global.goalScore);
Declare Team Victory(Team 1);
End;
If(Team Score(Team 2) == Global.goalScore);
Declare Team Victory(Team 2);
- Global.heroListPos = 0;
- }
- }
rule("More Rounds than Heros = Set to Round 1")
- rule("Countdown (Join)")
- {
- event
- {
Ongoing - Global;
- Player Joined Match;
- All;
- All;
- }
- conditions
- {
Global.heroListPos == Count Of(Global.heroList);
- Is In Setup == True;
- Event Player.O != True;
- }
- actions
- {
Global.heroListPos = 1;
- Event Player.O = True;
- Wait(0.250, Ignore Condition);
- Call Subroutine(Teleport);
- Create HUD Text(Event Player, Custom String("First Hero: {0} {1}", Global.heroList[0], Hero Icon String(Global.heroList[0])), Null,
- Null, Top, 0, Team 1, White, White, Visible To and String, Default Visibility);
- }
- }
- rule("Countdown (each)")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Is In Setup == True;
- Event Player.O != True;
- }
- actions
- {
- Event Player.O = True;
- Wait(0.250, Ignore Condition);
- Call Subroutine(Teleport);
- Create HUD Text(Event Player, Custom String("First Hero: {0} {1}", Global.heroList[0], Hero Icon String(Global.heroList[0])), Null,
- Null, Top, 0, Team 1, White, White, Visible To and String, Default Visibility);
- }
- }
- rule("If Player is 1st Hero = Respawn & new Hero")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Hero Of(Event Player) == Global.heroList[0];
- Is In Setup == True;
- }
- actions
- {
- Wait(0.250, Ignore Condition);
- Kill(Event Player, Null);
- Wait(0.250, Ignore Condition);
- Respawn(Event Player);
- Wait(0.250, Ignore Condition);
- Call Subroutine(Teleport);
- }
- }
- disabled rule("[Debug] Switch Hero")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Is Button Held(Event Player, Interact) == True;
- }
- actions
- {
- Call Subroutine(SwitchHero);
- Global.heroListPos += 1;
- }
- }
- disabled rule("[Debug] Dummy")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Is Button Held(Event Player, Reload) == True;
- Is Game In Progress != True;
- }
- actions
- {
- Create Dummy Bot(Hero(Ana), Team 2, -1, Event Player, Vector(0, 0, 0));
- Create Dummy Bot(Hero(Ana), Team 1, -1, Event Player, Vector(0, 0, 0));
- Create Dummy Bot(Hero(Ana), Team 2, -1, Event Player, Vector(0, 0, 0));
- }
- }