1. Are you planning to upload your awesome map to Hive? Please review the rules here.
    Dismiss Notice
  2. Updated Resource Submission Rules: All model & skin resource submissions must now include an in-game screenshot. This is to help speed up the moderation process and to show how the model and/or texture looks like from the in-game camera.
    Dismiss Notice
  3. DID YOU KNOW - That you can unlock new rank icons by posting on the forums or winning contests? Click here to customize your rank or read our User Rank Policy to see a list of ranks that you can unlock. Have you won a contest and still havn't received your rank award? Then please contact the administration.
    Dismiss Notice
  4. We have recently started the 16th edition of the Mini Mapping Contest. The theme is mini RPG. Do check it out and have fun.
    Dismiss Notice
  5. Dismiss Notice
  6. The Highway to Hell has been laid open. Come along and participate in the 5th Special Effect Contest.
    Dismiss Notice
  7. Check out the Staff job openings thread.
    Dismiss Notice
Dismiss Notice
60,000 passwords have been reset on July 8, 2019. If you cannot login, read this.

Trigger Viewer

Dota Template 1.0.w3x
Variables
Initialization
--- Click me ---
Map Initialization
Hero Setup
Sentinel Heroes
Scourge Heroes
Heroes General Setup
Player Setup
Setup Players
Player Colors
Modes and Gameplay
Time is 15 seconds
Time is 45 seconds
Turn On Spawns
---------------------------
Command All Pick
Command All Random
Command Reverse
Command Super Creeps
Command Item Drop
Command Death Match
Command Short Mode
Command Ultra Short Mode
Command Uber
Command Multiboard Deaths
Hero Picks
Tavern Sentinel
Tavern Scourge
Tavern All Heroes
Tavern All Heroes Reverse
----------------------------
Random Sentinel
Random Scourge
Random All Heroes
----------------------------
Repick Sentinel
Repick Scourge
Repick All Heroes
Hero Triggers
Revive Hero
Revive Hero Timer
Revive Hero Tavern
Move Heroes
Prevent Team Kill
Item Drop
Death Match
Uber Mode
Player Triggers
Victory Sentinel
Victory Scourge
Player Leaves Game
Free Gold
Matchup
Movespeed
Multiboard
Multiboard Setup
Create Multiboard
Tally Score
Tally Clock
Tally Deaths
Sort Multiboard
Unit Spawns
Spawn Sentinel
Spawn Scourge
Move to Base
Move North Sentinel
Move North Scourge
Move Center Sentinel
Move Center Scourge
Move South Sentinel
Move South Scourge
Super Creeps
Super Creeps Setup
Supers Creeps Spawn
Hostile Creeps
Store Creeps
Revive Creeps
Item Triggers
Setup Items
River Items
River Items Taken
Creep Items
Combine Charged Items
Backdooring
Setup Invunerable
---------------------------
Sentinel North 1
Sentinel North 2
Sentinel North 3
---------------------------
Sentinel Center 1
Sentinel Center 2
Sentinel Center 3
---------------------------
Sentinel South 1
Sentinel South 2
Sentinel South 3
---------------------------
Scourge North 1
Scourge North 2
Scourge North 3
---------------------------
Scourge Center 1
Scourge Center 2
Scourge Center 3
---------------------------
Scourge South 1
Scourge South 2
Scourge South 3
---------------------------
Sentinel Base
Scourge Base
Miscellaneous
Regrow Trees Setup
RegrowTrees
Goblin Shop
First Blood
First Hero Kill
Last Hero Standing

		
Name Type Is Array Initial Value
Combine_Charged_Items boolean No
Combine_Charges_Max integer No
Creep_Positions location Yes
Creep_Types unitcode Yes
CreepItems itemcode Yes
CreepItemsCount integer No
DeathMatch integer Yes
End_Game_If_All_Gone boolean No
Game_Minutes integer No
Game_Seconds integer No
Game_Time timer No
GameMode integer No
Hero_Revive_Time_Factor real No
Heroes_All unitcode Yes
Heroes_Scourge unitcode Yes
Heroes_Sentinel unitcode Yes
Hostile_Revive_Time real No
ItemDrop integer Yes
ItemDropCount integer No
LastHeroStanding force No
LeaderboardScourge leaderboard No
LeaderboardSentinel leaderboard No
LoopCreep integer No
LoopRandom integer No
LoopSuper integer No
MODE_AllRandom_AllPick integer No 1
MODE_Normal integer No 0
MODE_Reverse integer No 2
Multiboard_Clock integer No
Multiboard_ShowDeaths boolean No true
Multiboard_Spots integer Yes
Odd_Man_Out force No
Player player No
Player_Already_Picked integer Yes
Player_Colors string Yes
Player_Starting_Gold integer No
PlayerNames string Yes
Players force No
PlayersCount integer No
PlayersScourge force No
PlayersScourgeCount integer No
PlayersScourgePlaying force No
PlayersScourgeReverse force No
PlayersSentinel force No
PlayersSentinelCount integer No
PlayersSentinelPlaying force No
PlayersSentinelReverse force No
Point location No
Random_Hero integer No
RandomData_All integer Yes
RandomData_Scourge integer Yes
RandomData_Sentinel integer Yes
RandomTotal_All integer No
RandomTotal_Scourge integer No
RandomTotal_Sentinel integer No
Repick_Cost_Ammount integer No
RevivableHeroes group No
RevivableTimersWindows timerdialog Yes
ReviveTimers timer Yes
RiverItems itemcode Yes
RiverItemsCount integer No
RiverItemsRegions location Yes
RiverItemsRegionsCount integer No
RiverItemsTaken boolean Yes
Score_Deaths integer Yes
Score_Kills integer Yes
ShortMode_On boolean No
Sort_Board_By_Kills boolean No
Super_Chances integer Yes
Super_Creeps unitcode Yes
Super_Creeps_On boolean No
Super_Names string Yes
Super_Regions rect Yes
TempInteger integer No
TempReal real No
UberMode_On boolean No
UltraShortMode_On boolean No
UnitGroup group No
Available modes (host only):

-ap
-allpick

All pick.

-ar
-allrandom

All random.

-reverse

Every player picks a Hero from either Tavern.
That Hero is randomly assigned to a player of the other team!
If there's more players in one team, those poor sobs get a random Hero.
-repick and -random are not available in this mode.

-sc
-supercreeps

Every now and then a couple Super Creeps (really strong Creeps) will spawn for your team.

-id
-itemdrop

A dying Hero drops a random item. Even undroppable ones!

-dm [number]
-deathmatch [number]

Death Match. Each player gets [number] lives.
If your Hero dies too often, you're history.
If no number is given, it defaults to 3.

-uber

Heroes start at level 10 and revive in half the time.

-sm
-shortmode

Heroes gain experience faster
Structures have less hitpoints.
You get more Gold (16 every 8 seconds, instead of only 8 every 8 seconds).

-usm
-ultrashortmode

Heroes gain experience faster.
Towers are weaker.
More money.
Heroes start at level 10 and revive in half the time.

-mb
-multiboard

Toggle.
Revival times will show either in the multiboard, visible for all players, or only for the owner of the dead Hero.


Commands available to all players:

-random

Random Hero.
Don't know what Hero to pick?
Random only works once.

-repick

Repick a Hero.
Didn't like the Hero you got?
Try another one.
Repick only works once.

-ms
-movespeed

Shows your Hero's movement speed.

-ma
-matchup

Shows which Heroes your opponents control.
Map Initialization
  Events
    Map initialization
  Conditions
  Actions
    Set VariableSet Combine_Charged_Items = True
    Set VariableSet Combine_Charges_Max = 15
    Set VariableSet End_Game_If_All_Gone = False
    Set VariableSet Hero_Revive_Time_Factor = 3.00
    Set VariableSet Hostile_Revive_Time = 120.00
    Set VariableSet Player_Starting_Gold = 700
    Set VariableSet Repick_Cost_Ammount = -150
    Set VariableSet Sort_Board_By_Kills = True
    -------- - --------
    -------- Order is important. Leave as is. --------
    -------- - --------
    Game - Set the time of day to 8.00
    Trigger - Run Setup_Players <gen> (ignoring conditions)
    Trigger - Run Sentinel_Heroes <gen> (ignoring conditions)
    Trigger - Run Scourge_Heroes <gen> (ignoring conditions)
    Trigger - Run Heroes_General_Setup <gen> (ignoring conditions)
    Trigger - Run Player_Colors <gen> (ignoring conditions)
    Trigger - Run Store_Creeps <gen> (ignoring conditions)
    Trigger - Run Setup_Invunerable <gen> (ignoring conditions)
    Trigger - Run Super_Creeps_Setup <gen> (ignoring conditions)
    Trigger - Run Setup_Items <gen> (ignoring conditions)
Change the total Heroes for Sentinel (Ran_Total_Sent).
Then change the Heroes in the array.

You MUST add every custom hero to menu: Advanced / Gameplay constants:
Techtree - Dependency Equivalents - Hero : ADD ALL THERE.
Sentinel Heroes
  Events
  Conditions
  Actions
    -------- Sentinel Heroes --------
    Set VariableSet RandomTotal_Sentinel = 8
    Set VariableSet Heroes_Sentinel[1] = Keeper of the Grove
    Set VariableSet Heroes_Sentinel[2] = Priestess of the Moon
    Set VariableSet Heroes_Sentinel[3] = Demon Hunter
    Set VariableSet Heroes_Sentinel[4] = Warden
    Set VariableSet Heroes_Sentinel[5] = Paladin
    Set VariableSet Heroes_Sentinel[6] = Archmage
    Set VariableSet Heroes_Sentinel[7] = Mountain King
    Set VariableSet Heroes_Sentinel[8] = Blood Mage
    Set VariableSet Heroes_Sentinel[9] = Alchemist
    Set VariableSet Heroes_Sentinel[10] = Naga Sea Witch
    Set VariableSet Heroes_Sentinel[11] = Tinker
    Set VariableSet Heroes_Sentinel[12] = Beastmaster
Change the total Heroes for Scourge (Ran_Total_Scrg).
Then change the Heroes in the array.

You MUST add every custom hero to menu: Advanced / Gameplay constants:
Techtree - Dependency Equivalents - Hero : ADD ALL THERE.
Scourge Heroes
  Events
  Conditions
  Actions
    -------- Scourge Heroes --------
    Set VariableSet RandomTotal_Scourge = 8
    Set VariableSet Heroes_Scourge[1] = Blademaster
    Set VariableSet Heroes_Scourge[2] = Far Seer
    Set VariableSet Heroes_Scourge[3] = Tauren Chieftain
    Set VariableSet Heroes_Scourge[4] = Shadow Hunter
    Set VariableSet Heroes_Scourge[5] = Death Knight
    Set VariableSet Heroes_Scourge[6] = Lich
    Set VariableSet Heroes_Scourge[7] = Dreadlord
    Set VariableSet Heroes_Scourge[8] = Crypt Lord
    Set VariableSet Heroes_Scourge[9] = Dark Ranger
    Set VariableSet Heroes_Scourge[10] = Firelord
    Set VariableSet Heroes_Scourge[11] = Pandaren Brewmaster
    Set VariableSet Heroes_Scourge[12] = Pit Lord
Don't touch this.
Heroes General Setup
  Events
  Conditions
  Actions
    Set VariableSet LoopRandom = 0
    Game Cache - Create a game cache from DotATemplate (stringnoformat)
    For each (Integer A) from 1 to RandomTotal_Sentinel, do (Actions)
      Loop - Actions
        Set VariableSet RandomData_Sentinel[(Integer A)] = (Integer A)
        Set VariableSet LoopRandom = (LoopRandom + 1)
        Set VariableSet Heroes_All[LoopRandom] = Heroes_Sentinel[(Integer A)]
        Game Cache - Store LoopRandom as (String(Heroes_Sentinel[(Integer A)])) of All (stringnoformat) in (Last created game cache)
        Game Cache - Store (Integer A) as (String(Heroes_Sentinel[(Integer A)])) of Sentinel (stringnoformat) in (Last created game cache)
        Set VariableSet RandomData_All[LoopRandom] = LoopRandom
    For each (Integer A) from 1 to RandomTotal_Scourge, do (Actions)
      Loop - Actions
        Set VariableSet RandomData_Scourge[(Integer A)] = (Integer A)
        Set VariableSet LoopRandom = (LoopRandom + 1)
        Set VariableSet Heroes_All[LoopRandom] = Heroes_Scourge[(Integer A)]
        Game Cache - Store LoopRandom as (String(Heroes_Scourge[(Integer A)])) of All (stringnoformat) in (Last created game cache)
        Game Cache - Store (Integer A) as (String(Heroes_Scourge[(Integer A)])) of Scourge (stringnoformat) in (Last created game cache)
        Set VariableSet RandomData_All[LoopRandom] = LoopRandom
    Set VariableSet RandomTotal_All = (RandomTotal_Sentinel + RandomTotal_Scourge)
Setup Players
  Events
  Conditions
  Actions
    -------- All players --------
    Set VariableSet Players = (All players matching ((((Matching player) controller) Equal to User) and (((Matching player) slot status) Equal to Is playing)).)
    Set VariableSet LastHeroStanding = (All players matching ((((Matching player) controller) Equal to User) and (((Matching player) slot status) Equal to Is playing)).)
    Set VariableSet PlayersCount = (Number of players in Players)
    Player Group - Pick every player in Players and do (Actions)
      Loop - Actions
        Player - Set (Picked player).Current gold to Player_Starting_Gold
        Player - Set (Picked player).Food cap to 6
    -------- Sentinel --------
    Set VariableSet PlayersSentinel = (All allies of Player 1 (Red).)
    Player Group - Remove Player 1 (Red) from PlayersSentinel.
    Set VariableSet PlayersSentinelCount = (Number of players in PlayersSentinel)
    Set VariableSet PlayersSentinelReverse = (All allies of Player 1 (Red).)
    Player Group - Remove Player 1 (Red) from PlayersSentinelReverse.
    Set VariableSet PlayersSentinelPlaying = (All allies of Player 1 (Red).)
    Player Group - Remove Player 1 (Red) from PlayersSentinelPlaying.
    -------- Scourge --------
    Set VariableSet PlayersScourge = (All allies of Player 7 (Green).)
    Player Group - Remove Player 7 (Green) from PlayersScourge.
    Set VariableSet PlayersScourgeCount = (Number of players in PlayersScourge)
    Set VariableSet PlayersScourgeReverse = (All allies of Player 7 (Green).)
    Player Group - Remove Player 7 (Green) from PlayersScourgeReverse.
    Set VariableSet PlayersScourgePlaying = (All allies of Player 7 (Green).)
    Player Group - Remove Player 7 (Green) from PlayersScourgePlaying.
    -------- General --------
    Player - Turn Gives bounty On for Player 1 (Red)
    Player - Turn Gives bounty On for Player 7 (Green)
    Player - Turn Gives bounty On for Neutral Hostile
Player Colors
  Events
  Conditions
  Actions
    Set VariableSet Player_Colors[1] = |c00ff0303
    Set VariableSet Player_Colors[2] = |c000042ff
    Set VariableSet Player_Colors[3] = |c001ce6b9
    Set VariableSet Player_Colors[4] = |c00540081
    Set VariableSet Player_Colors[5] = |c00fffc01
    Set VariableSet Player_Colors[6] = |c00ff8000
    Set VariableSet Player_Colors[7] = |c0020c000
    Set VariableSet Player_Colors[8] = |c00e55bb0
    Set VariableSet Player_Colors[9] = |c00959697
    Set VariableSet Player_Colors[10] = |c007ebff1
    Set VariableSet Player_Colors[11] = |c00106246
    Set VariableSet Player_Colors[12] = |c004e2a04
    For each (Integer A) from 1 to 12, do (Actions)
      Loop - Actions
        Set VariableSet PlayerNames[(Integer A)] = ((Player_Colors[(Integer A)] + (Name of (Player((Integer A))))) + |r)
At 15 seconds, the heroes are available.

Turn on random, and repick.

Turn off allrandom.
Turn off allpick.
Turn off reverse.
Time is 15 seconds
  Events
    Time - Elapsed game time is 15.00 seconds
  Conditions
  Actions
    Trigger - Turn on Random_Sentinel <gen>
    Trigger - Turn on Random_Scourge <gen>
    Trigger - Turn on Random_All_Heroes <gen>
    -------- - --------
    Trigger - Turn on Repick_Sentinel <gen>
    Trigger - Turn on Repick_Scourge <gen>
    Trigger - Turn on Repick_All_Heroes <gen>
    -------- - --------
    Trigger - Turn off Command_All_Pick <gen>
    Trigger - Turn off Command_All_Random <gen>
    Trigger - Turn off Command_Reverse <gen>
    Trigger - Turn off Command_Multiboard_Deaths <gen>
At 45 seconds, you can't random or repick anymore. You're stuck with your Hero.

Turn off random.
Turn off repick.
Game mode can not be changed anymore.
Time is 45 seconds
  Events
    Time - Elapsed game time is 45.00 seconds
  Conditions
  Actions
    Trigger - Turn off Random_Sentinel <gen>
    Trigger - Turn off Random_Scourge <gen>
    Trigger - Turn off Random_All_Heroes <gen>
    -------- - --------
    Trigger - Turn off Repick_Sentinel <gen>
    Trigger - Turn off Repick_Scourge <gen>
    Trigger - Turn off Repick_All_Heroes <gen>
    -------- - --------
    Trigger - Turn off Command_Super_Creeps <gen>
    Trigger - Turn off Command_Item_Drop <gen>
    Trigger - Turn off Command_Death_Match <gen>
    Trigger - Turn off Command_Short_Mode <gen>
    Trigger - Turn off Command_Uber <gen>
    -------- - --------
    Trigger - Turn on Free_Gold <gen>
Turn On Spawns
  Events
    Time - Elapsed game time is 40.00 seconds
  Conditions
  Actions
    Trigger - Turn on Spawn_Scourge <gen>
    Trigger - Turn on Spawn_Sentinel <gen>
    Trigger - Turn on Supers_Creeps_Spawn <gen>
Enable picking from either Tavern.
Command All Pick
  Events
    Player - Player 2 (Blue) types a chat message containing -ap (stringnoformat) as An exact match
    Player - Player 2 (Blue) types a chat message containing -allpick (stringnoformat) as An exact match
  Conditions
    GameMode Equal to MODE_Normal
  Actions
    Set VariableSet GameMode = MODE_AllRandom_AllPick
    Quest - Display to Players the Secret message: All pick mode enabled. You may pick from any Hero Tavern.
    Player Group - Pick every player in PlayersSentinel and do (Actions)
      Loop - Actions
        Unit - Create 1.Zone Indicator (second) for (Picked player) at (Center of Allpick_Scourge <gen>) facing Default building facing degrees
    Player Group - Pick every player in PlayersScourge and do (Actions)
      Loop - Actions
        Unit - Create 1.Zone Indicator (second) for (Picked player) at (Center of Allpick_Sentinel <gen>) facing Default building facing degrees
This command chooses random Heroes for every player.
Command All Random
  Events
    Player - Player 2 (Blue) types a chat message containing -ar (stringnoformat) as An exact match
    Player - Player 2 (Blue) types a chat message containing -allrandom (stringnoformat) as An exact match
  Conditions
    GameMode Equal to MODE_Normal
  Actions
    Set VariableSet GameMode = MODE_AllRandom_AllPick
    Quest - Display to Players the Secret message: All random mode enabled. Each player receives a random Hero.
    Player Group - Pick every player in Players and do (Actions)
      Loop - Actions
        Set VariableSet Random_Hero = (Random integer number between 1 and RandomTotal_All)
        Unit - Create 1.Heroes_All[RandomData_All[Random_Hero]] for (Picked player) at ((Picked player) start location) facing Default building facing degrees
        Quest - Display to (All enemies of (Picked player).) the Hint message: (A player has randomed + (Name of (Last created unit)))
        Set VariableSet Player_Already_Picked[(Player number of (Picked player))] = (Player_Already_Picked[(Player number of (Picked player))] + 1)
        Player Group - Pick every player in Players and do (Actions)
          Loop - Actions
            Player - Make (Unit-type of (Last created unit)) Unavailable for training/construction by (Picked player)
        Set VariableSet RandomData_All[Random_Hero] = RandomData_All[RandomTotal_All]
        Set VariableSet RandomTotal_All = (RandomTotal_All - 1)
Command Reverse
  Events
    Player - Player 2 (Blue) types a chat message containing -re (stringnoformat) as An exact match
    Player - Player 2 (Blue) types a chat message containing -reverse (stringnoformat) as An exact match
  Conditions
    GameMode Equal to MODE_Normal
  Actions
    Set VariableSet GameMode = MODE_Reverse
    Quest - Display to Players the Secret message: Reverse mode. Pick your OPPONENTS' Heroes from any Tavern. You may not repick.
    Player Group - Pick every player in PlayersSentinel and do (Actions)
      Loop - Actions
        Unit - Create 1.Zone Indicator (second) for (Picked player) at (Center of Allpick_Scourge <gen>) facing Default building facing degrees
    Player Group - Pick every player in PlayersScourge and do (Actions)
      Loop - Actions
        Unit - Create 1.Zone Indicator (second) for (Picked player) at (Center of Allpick_Sentinel <gen>) facing Default building facing degrees
    For each (Integer A) from 1 to (PlayersSentinelCount - PlayersScourgeCount), do (Actions)
      Loop - Actions
        Set VariableSet Player = (Random player from PlayersSentinelReverse)
        Player Group - Remove Player from PlayersSentinelReverse.
        Player Group - Add Player to Odd_Man_Out
    For each (Integer A) from 1 to (PlayersScourgeCount - PlayersSentinelCount), do (Actions)
      Loop - Actions
        Set VariableSet Player = (Random player from PlayersScourgeReverse)
        Player Group - Remove Player from PlayersScourgeReverse.
        Player Group - Add Player to Odd_Man_Out
    If (PlayersSentinelCount Greater than PlayersScourgeCount) then do (Display to Players the text: Sentinel has more players. A random hero will be picked.) else do (Do nothing)
    If (PlayersScourgeCount Greater than PlayersSentinelCount) then do (Display to Players the text: Scourge has more players. A random hero will be picked.) else do (Do nothing)
    Player Group - Pick every player in Odd_Man_Out and do (Actions)
      Loop - Actions
        Set VariableSet Random_Hero = (Random integer number between 1 and RandomTotal_All)
        Unit - Create 1.Heroes_All[RandomData_All[Random_Hero]] for (Picked player) at ((Picked player) start location) facing Default building facing degrees
        Quest - Display to (All enemies of (Picked player).) the Hint message: (A player has randomed + (Name of (Last created unit)))
        Set VariableSet Player_Already_Picked[(Player number of (Picked player))] = (Player_Already_Picked[(Player number of (Picked player))] + 1)
        Player Group - Pick every player in Players and do (Actions)
          Loop - Actions
            Player - Make (Unit-type of (Last created unit)) Unavailable for training/construction by (Picked player)
        Player - Add -250 to (Picked player).Current gold
        Set VariableSet RandomData_All[Random_Hero] = RandomData_All[RandomTotal_All]
        Set VariableSet RandomTotal_All = (RandomTotal_All - 1)
Command Super Creeps
  Events
    Player - Player 2 (Blue) types a chat message containing -sc (stringnoformat) as An exact match
    Player - Player 2 (Blue) types a chat message containing -supercreeps (stringnoformat) as An exact match
  Conditions
  Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        Super_Creeps_On Equal to False
      Then - Actions
        Set VariableSet Super_Creeps_On = True
        Quest - Display to Players the Secret message: Super Creeps enabled! They will spawn randomly for both sides.
      Else - Actions
        Quest - Display to (Player group((Triggering player))) the Warning message: Super Creeps is already enabled...
Command Item Drop
  Events
    Player - Player 2 (Blue) types a chat message containing -id (stringnoformat) as An exact match
    Player - Player 2 (Blue) types a chat message containing -itemdrop (stringnoformat) as An exact match
  Conditions
  Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Item_Drop <gen> is on) Equal to False
      Then - Actions
        Trigger - Turn on Item_Drop <gen>
        Quest - Display to Players the Secret message: Item Drop enabled. Dying Heroes will drop an item choosen at random.
      Else - Actions
        Quest - Display to (Player group((Triggering player))) the Warning message: Item Drop is already enabled...
Command Death Match
  Events
    Player - Player 2 (Blue) types a chat message containing -dm (stringnoformat) as A substring
    Player - Player 2 (Blue) types a chat message containing -deathmatch (stringnoformat) as A substring
  Conditions
  Actions
    Set VariableSet TempInteger = 3
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Matched chat string) Equal to -dm
        (Length of (Entered chat string)) Greater than or equal to 4
      Then - Actions
        Set VariableSet TempInteger = (Integer((Substring((Entered chat string), 4, (Length of (Entered chat string))))))
      Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Matched chat string) Equal to -deathmatch
        (Length of (Entered chat string)) Greater than or equal to 13
      Then - Actions
        Set VariableSet TempInteger = (Integer((Substring((Entered chat string), 13, (Length of (Entered chat string))))))
      Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        TempInteger Less than 1
      Then - Actions
        Set VariableSet TempInteger = 3
      Else - Actions
    Quest - Display to Players the Secret message: (Death Match enabled. Each player has + ((String(TempInteger)) + Lives.))
    Player Group - Pick every player in Players and do (Actions)
      Loop - Actions
        Set VariableSet DeathMatch[(Player number of (Picked player))] = TempInteger
    Trigger - Turn on Death_Match <gen>
Command Short Mode
  Events
    Player - Player 2 (Blue) types a chat message containing -sm (stringnoformat) as An exact match
    Player - Player 2 (Blue) types a chat message containing -shortmode (stringnoformat) as An exact match
  Conditions
  Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        ShortMode_On Equal to True
      Then - Actions
        Quest - Display to (Player group((Triggering player))) the Warning message: Short Mode is already enabled...
      Else - Actions
        Set VariableSet ShortMode_On = True
        Quest - Display to Players the Secret message: Short Mode enabled.
        Player - Set Player 1 (Red) handicap to 75.00%
        Player - Set Player 7 (Green) handicap to 75.00%
        Player Group - Pick every player in Players and do (Actions)
          Loop - Actions
            Hero - Make (Picked player) Heroes gain 150.00% experience from future kills
Command Ultra Short Mode
  Events
    Player - Player 2 (Blue) types a chat message containing -usm (stringnoformat) as An exact match
    Player - Player 2 (Blue) types a chat message containing -ultrashortmode (stringnoformat) as An exact match
  Conditions
  Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        UltraShortMode_On Equal to True
      Then - Actions
        Quest - Display to (Player group((Triggering player))) the Warning message: Ultra Short Mode is already enabled...
      Else - Actions
        Set VariableSet UltraShortMode_On = True
        Quest - Display to Players the Secret message: Ultra Short Mode enabled.
        Player - Set Player 1 (Red) handicap to 50.00%
        Player - Set Player 7 (Green) handicap to 50.00%
        Player Group - Pick every player in Players and do (Actions)
          Loop - Actions
            Hero - Make (Picked player) Heroes gain 175.00% experience from future kills
        Trigger - Turn on Uber_Mode <gen>
Command Uber
  Events
    Player - Player 2 (Blue) types a chat message containing -uber (stringnoformat) as An exact match
    Player - Player 2 (Blue) types a chat message containing -shortmode (stringnoformat) as An exact match
  Conditions
  Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        UberMode_On Equal to True
      Then - Actions
        Quest - Display to (Player group((Triggering player))) the Warning message: Uber Mode is already enabled...
      Else - Actions
        Set VariableSet UberMode_On = True
        Trigger - Turn on Uber_Mode <gen>
        Quest - Display to Players the Secret message: Uber Mode enabled.
Command Multiboard Deaths
  Events
    Player - Player 2 (Blue) types a chat message containing -mb (stringnoformat) as An exact match
    Player - Player 2 (Blue) types a chat message containing -multiboard (stringnoformat) as An exact match
  Conditions
  Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        Multiboard_ShowDeaths Equal to True
      Then - Actions
        Set VariableSet Multiboard_ShowDeaths = False
        Quest - Display to (Player group((Triggering player))) the Secret message: Multiboard will not show Hero revival times.
      Else - Actions
        Set VariableSet Multiboard_ShowDeaths = True
        Quest - Display to (Player group((Triggering player))) the Secret message: Multiboard will show Hero revival times.
Sentinel Tavern sells a Hero

Not using random. Not using allrandom.

Game mode 0: Standard play
Game mode 1: All pick or all random
Game mode 2: Reverse
Tavern Sentinel
  Events
    Unit - A unit Sells a unit
  Conditions
    GameMode Equal to MODE_Normal
    ((Sold unit) is A Hero) Equal to True
    ((Owner of (Sold unit)) is in PlayersSentinel.) Equal to True
  Actions
    Player Group - Pick every player in Players and do (Actions)
      Loop - Actions
        Player - Make (Unit-type of (Sold unit)) Unavailable for training/construction by (Picked player)
    Quest - Display to (All enemies of (Owner of (Sold unit)).) the Hint message: (A player has chosen + (Name of (Sold unit)))
    Set VariableSet RandomData_Sentinel[(Load (String((Unit-type of (Sold unit)))) of Sentinel from (Last created game cache))] = RandomData_Sentinel[RandomTotal_Sentinel]
    Set VariableSet RandomTotal_Sentinel = (RandomTotal_Sentinel - 1)
    Set VariableSet Player_Already_Picked[(Player number of (Owner of (Sold unit)))] = (Player_Already_Picked[(Player number of (Owner of (Sold unit)))] + 1)
Sentinel Tavern sells a Hero

Not using random. Not using allrandom.
Tavern Scourge
  Events
    Unit - A unit Sells a unit
  Conditions
    GameMode Equal to MODE_Normal
    ((Sold unit) is A Hero) Equal to True
    ((Owner of (Sold unit)) is in PlayersScourge.) Equal to True
  Actions
    Player Group - Pick every player in Players and do (Actions)
      Loop - Actions
        Player - Make (Unit-type of (Sold unit)) Unavailable for training/construction by (Picked player)
    Quest - Display to (All enemies of (Owner of (Sold unit)).) the Hint message: (A player has chosen + (Name of (Sold unit)))
    Set VariableSet RandomData_Scourge[(Load (String((Unit-type of (Sold unit)))) of Scourge from (Last created game cache))] = RandomData_Scourge[RandomTotal_Scourge]
    Set VariableSet RandomTotal_Scourge = (RandomTotal_Scourge - 1)
    Set VariableSet Player_Already_Picked[(Player number of (Owner of (Sold unit)))] = (Player_Already_Picked[(Player number of (Owner of (Sold unit)))] + 1)
Tavern All Heroes
  Events
    Unit - A unit Sells a unit
  Conditions
    GameMode Equal to MODE_AllRandom_AllPick
    ((Sold unit) is A Hero) Equal to True
  Actions
    Player Group - Pick every player in Players and do (Actions)
      Loop - Actions
        Player - Make (Unit-type of (Sold unit)) Unavailable for training/construction by (Picked player)
    Quest - Display to (All enemies of (Owner of (Sold unit)).) the Hint message: (A player has chosen + (Name of (Sold unit)))
    Set VariableSet RandomData_All[(Load (String((Unit-type of (Sold unit)))) of All from (Last created game cache))] = RandomData_All[RandomTotal_All]
    Set VariableSet RandomTotal_All = (RandomTotal_All - 1)
    Set VariableSet Player_Already_Picked[(Player number of (Owner of (Sold unit)))] = (Player_Already_Picked[(Player number of (Owner of (Sold unit)))] + 1)
Tavern All Heroes Reverse
  Events
    Unit - A unit Sells a unit
  Conditions
    GameMode Equal to MODE_Reverse
    ((Sold unit) is A Hero) Equal to True
  Actions
    Player Group - Pick every player in Players and do (Actions)
      Loop - Actions
        Player - Make (Unit-type of (Sold unit)) Unavailable for training/construction by (Picked player)
    Set VariableSet RandomData_All[(Load (String((Unit-type of (Sold unit)))) of All from (Last created game cache))] = RandomData_All[RandomTotal_All]
    Set VariableSet RandomTotal_All = (RandomTotal_All - 1)
    Player - Set (Owner of (Sold unit)).Available free Heroes to 0
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        ((Owner of (Sold unit)) is in PlayersSentinel.) Equal to True
      Then - Actions
        Set VariableSet Player = (Random player from PlayersScourgeReverse)
        Player Group - Remove Player from PlayersScourgeReverse.
      Else - Actions
        Set VariableSet Player = (Random player from PlayersSentinelReverse)
        Player Group - Remove Player from PlayersSentinelReverse.
    Unit - Change ownership of (Sold unit) to Player and Change color
    Quest - Display to (All enemies of Player.) the Hint message: (A player has chosen + (Name of (Sold unit)))
    Set VariableSet Player_Already_Picked[(Player number of Player)] = (Player_Already_Picked[(Player number of Player)] + 1)
Random Sentinel
  Events
    Player - Player 2 (Blue) types a chat message containing -random (stringnoformat) as An exact match
    Player - Player 3 (Teal) types a chat message containing -random (stringnoformat) as An exact match
    Player - Player 4 (Purple) types a chat message containing -random (stringnoformat) as An exact match
    Player - Player 5 (Yellow) types a chat message containing -random (stringnoformat) as An exact match
    Player - Player 6 (Orange) types a chat message containing -random (stringnoformat) as An exact match
  Conditions
    GameMode Equal to MODE_Normal
    Player_Already_Picked[(Player number of (Triggering player))] Equal to 0
  Actions
    Set VariableSet Random_Hero = (Random integer number between 1 and RandomTotal_Sentinel)
    Unit - Create 1.Heroes_Sentinel[RandomData_Sentinel[Random_Hero]] for (Triggering player) at ((Triggering player) start location) facing Default building facing degrees
    Quest - Display to (All enemies of (Triggering player).) the Hint message: (A player has randomed + (Name of (Last created unit)))
    Set VariableSet Player_Already_Picked[(Player number of (Triggering player))] = (Player_Already_Picked[(Player number of (Triggering player))] + 1)
    Player Group - Pick every player in Players and do (Actions)
      Loop - Actions
        Player - Make (Unit-type of (Last created unit)) Unavailable for training/construction by (Picked player)
    Set VariableSet RandomData_Sentinel[Random_Hero] = RandomData_Sentinel[RandomTotal_Sentinel]
    Set VariableSet RandomTotal_Sentinel = (RandomTotal_Sentinel - 1)
Random Scourge
  Events
    Player - Player 8 (Pink) types a chat message containing -random (stringnoformat) as An exact match
    Player - Player 9 (Gray) types a chat message containing -random (stringnoformat) as An exact match
    Player - Player 10 (Light Blue) types a chat message containing -random (stringnoformat) as An exact match
    Player - Player 11 (Dark Green) types a chat message containing -random (stringnoformat) as An exact match
    Player - Player 12 (Brown) types a chat message containing -random (stringnoformat) as An exact match
  Conditions
    GameMode Equal to MODE_Normal
    Player_Already_Picked[(Player number of (Triggering player))] Equal to 0
  Actions
    Set VariableSet Random_Hero = (Random integer number between 1 and RandomTotal_Scourge)
    Unit - Create 1.Heroes_Scourge[RandomData_Scourge[Random_Hero]] for (Triggering player) at ((Triggering player) start location) facing Default building facing degrees
    Quest - Display to (All enemies of (Triggering player).) the Hint message: (A player has randomed + (Name of (Last created unit)))
    Set VariableSet Player_Already_Picked[(Player number of (Triggering player))] = (Player_Already_Picked[(Player number of (Triggering player))] + 1)
    Player Group - Pick every player in Players and do (Actions)
      Loop - Actions
        Player - Make (Unit-type of (Last created unit)) Unavailable for training/construction by (Picked player)
    Set VariableSet RandomData_Scourge[Random_Hero] = RandomData_Scourge[RandomTotal_Scourge]
    Set VariableSet RandomTotal_Scourge = (RandomTotal_Scourge - 1)
Random All Heroes
  Events
    Player - Player 2 (Blue) types a chat message containing -random (stringnoformat) as An exact match
    Player - Player 3 (Teal) types a chat message containing -random (stringnoformat) as An exact match
    Player - Player 4 (Purple) types a chat message containing -random (stringnoformat) as An exact match
    Player - Player 5 (Yellow) types a chat message containing -random (stringnoformat) as An exact match
    Player - Player 6 (Orange) types a chat message containing -random (stringnoformat) as An exact match
    Player - Player 8 (Pink) types a chat message containing -random (stringnoformat) as An exact match
    Player - Player 9 (Gray) types a chat message containing -random (stringnoformat) as An exact match
    Player - Player 10 (Light Blue) types a chat message containing -random (stringnoformat) as An exact match
    Player - Player 11 (Dark Green) types a chat message containing -random (stringnoformat) as An exact match
    Player - Player 12 (Brown) types a chat message containing -random (stringnoformat) as An exact match
  Conditions
    GameMode Equal to MODE_AllRandom_AllPick
    Player_Already_Picked[(Player number of (Triggering player))] Equal to 0
  Actions
    Set VariableSet Random_Hero = (Random integer number between 1 and RandomTotal_All)
    Unit - Create 1.Heroes_All[RandomData_All[Random_Hero]] for (Triggering player) at ((Triggering player) start location) facing Default building facing degrees
    Quest - Display to (All enemies of (Triggering player).) the Hint message: (A player has randomed + (Name of (Last created unit)))
    Set VariableSet Player_Already_Picked[(Player number of (Triggering player))] = (Player_Already_Picked[(Player number of (Triggering player))] + 1)
    Player Group - Pick every player in Players and do (Actions)
      Loop - Actions
        Player - Make (Unit-type of (Last created unit)) Unavailable for training/construction by (Picked player)
    Set VariableSet RandomData_All[Random_Hero] = RandomData_All[RandomTotal_All]
    Set VariableSet RandomTotal_All = (RandomTotal_All - 1)
Repick Sentinel
  Events
    Player - Player 2 (Blue) types a chat message containing -repick (stringnoformat) as An exact match
    Player - Player 3 (Teal) types a chat message containing -repick (stringnoformat) as An exact match
    Player - Player 4 (Purple) types a chat message containing -repick (stringnoformat) as An exact match
    Player - Player 5 (Yellow) types a chat message containing -repick (stringnoformat) as An exact match
    Player - Player 6 (Orange) types a chat message containing -repick (stringnoformat) as An exact match
  Conditions
    GameMode Equal to MODE_Normal
    Player_Already_Picked[(Player number of (Triggering player))] Equal to 1
  Actions
    Quest - Display to (All enemies of (Triggering player).) the Hint message: A player has repicked!
    Unit Group - Pick every unit in (Units owned by (Triggering player) matching (((Matching unit) is A Hero) Equal to True).) and do (Actions)
      Loop - Actions
        Set VariableSet RandomTotal_Sentinel = (RandomTotal_Sentinel + 1)
        Set VariableSet RandomData_Sentinel[RandomTotal_Sentinel] = (Load (String((Unit-type of (Picked unit)))) of Sentinel from (Last created game cache))
        Player Group - Pick every player in Players and do (Actions)
          Loop - Actions
            Player - Make (Unit-type of (Picked unit)) Available for training/construction by (Picked player)
        Unit - Remove (Picked unit) from the game
    Set VariableSet Player_Already_Picked[(Player number of (Triggering player))] = (Player_Already_Picked[(Player number of (Triggering player))] + 1)
    Player - Add Repick_Cost_Ammount to (Triggering player).Current gold
    If (RandomTotal_Sentinel Greater than 1) then do (Set VariableSet Random_Hero = (Random integer number between 1 and (RandomTotal_Sentinel - 1))) else do (Set VariableSet Random_Hero = 1)
    Unit - Create 1.Heroes_Sentinel[RandomData_Sentinel[Random_Hero]] for (Triggering player) at ((Triggering player) start location) facing Default building facing degrees
    Quest - Display to (All enemies of (Triggering player).) the Hint message: (A player has randomed + (Name of (Last created unit)))
    Player Group - Pick every player in Players and do (Actions)
      Loop - Actions
        Player - Make (Unit-type of (Last created unit)) Unavailable for training/construction by (Picked player)
    Set VariableSet RandomData_Sentinel[Random_Hero] = RandomData_Sentinel[RandomTotal_Sentinel]
    Set VariableSet RandomTotal_Sentinel = (RandomTotal_Sentinel - 1)
Repick Scourge
  Events
    Player - Player 8 (Pink) types a chat message containing -repick (stringnoformat) as An exact match
    Player - Player 9 (Gray) types a chat message containing -repick (stringnoformat) as An exact match
    Player - Player 10 (Light Blue) types a chat message containing -repick (stringnoformat) as An exact match
    Player - Player 11 (Dark Green) types a chat message containing -repick (stringnoformat) as An exact match
    Player - Player 12 (Brown) types a chat message containing -repick (stringnoformat) as An exact match
  Conditions
    GameMode Equal to MODE_Normal
    Player_Already_Picked[(Player number of (Triggering player))] Equal to 1
  Actions
    Quest - Display to (All enemies of (Triggering player).) the Hint message: A player has repicked!
    Unit Group - Pick every unit in (Units owned by (Triggering player) matching (((Matching unit) is A Hero) Equal to True).) and do (Actions)
      Loop - Actions
        Set VariableSet RandomTotal_Scourge = (RandomTotal_Scourge + 1)
        Set VariableSet RandomData_Scourge[RandomTotal_Scourge] = (Load (String((Unit-type of (Picked unit)))) of Scourge from (Last created game cache))
        Player Group - Pick every player in Players and do (Actions)
          Loop - Actions
            Player - Make (Unit-type of (Picked unit)) Available for training/construction by (Picked player)
        Unit - Remove (Picked unit) from the game
    Set VariableSet Player_Already_Picked[(Player number of (Triggering player))] = (Player_Already_Picked[(Player number of (Triggering player))] + 1)
    Player - Add Repick_Cost_Ammount to (Triggering player).Current gold
    If (RandomTotal_Scourge Greater than 1) then do (Set VariableSet Random_Hero = (Random integer number between 1 and (RandomTotal_Scourge - 1))) else do (Set VariableSet Random_Hero = 1)
    Unit - Create 1.Heroes_Scourge[RandomData_Scourge[Random_Hero]] for (Triggering player) at ((Triggering player) start location) facing Default building facing degrees
    Quest - Display to (All enemies of (Triggering player).) the Hint message: (A player has randomed + (Name of (Last created unit)))
    Player Group - Pick every player in Players and do (Actions)
      Loop - Actions
        Player - Make (Unit-type of (Last created unit)) Unavailable for training/construction by (Picked player)
    Set VariableSet RandomData_Scourge[Random_Hero] = RandomData_Scourge[RandomTotal_Scourge]
    Set VariableSet RandomTotal_Scourge = (RandomTotal_Scourge - 1)
Repick All Heroes
  Events
    Player - Player 2 (Blue) types a chat message containing -repick (stringnoformat) as An exact match
    Player - Player 3 (Teal) types a chat message containing -repick (stringnoformat) as An exact match
    Player - Player 4 (Purple) types a chat message containing -repick (stringnoformat) as An exact match
    Player - Player 5 (Yellow) types a chat message containing -repick (stringnoformat) as An exact match
    Player - Player 6 (Orange) types a chat message containing -repick (stringnoformat) as An exact match
    Player - Player 8 (Pink) types a chat message containing -repick (stringnoformat) as An exact match
    Player - Player 9 (Gray) types a chat message containing -repick (stringnoformat) as An exact match
    Player - Player 10 (Light Blue) types a chat message containing -repick (stringnoformat) as An exact match
    Player - Player 11 (Dark Green) types a chat message containing -repick (stringnoformat) as An exact match
    Player - Player 12 (Brown) types a chat message containing -repick (stringnoformat) as An exact match
  Conditions
    GameMode Equal to MODE_AllRandom_AllPick
    Player_Already_Picked[(Player number of (Triggering player))] Equal to 1
  Actions
    Quest - Display to (All enemies of (Triggering player).) the Hint message: A player has repicked!
    Unit Group - Pick every unit in (Units owned by (Triggering player) matching (((Matching unit) is A Hero) Equal to True).) and do (Actions)
      Loop - Actions
        Set VariableSet RandomTotal_All = (RandomTotal_All + 1)
        Set VariableSet RandomData_All[RandomTotal_All] = (Load (String((Unit-type of (Picked unit)))) of All from (Last created game cache))
        Player Group - Pick every player in Players and do (Actions)
          Loop - Actions
            Player - Make (Unit-type of (Picked unit)) Available for training/construction by (Picked player)
        Unit - Remove (Picked unit) from the game
    Set VariableSet Player_Already_Picked[(Player number of (Triggering player))] = (Player_Already_Picked[(Player number of (Triggering player))] + 1)
    Player - Add Repick_Cost_Ammount to (Triggering player).Current gold
    If (RandomTotal_All Greater than 1) then do (Set VariableSet Random_Hero = (Random integer number between 1 and (RandomTotal_All - 1))) else do (Set VariableSet Random_Hero = 1)
    Unit - Create 1.Heroes_All[RandomData_All[Random_Hero]] for (Triggering player) at ((Triggering player) start location) facing Default building facing degrees
    Quest - Display to (All enemies of (Triggering player).) the Hint message: (A player has randomed + (Name of (Last created unit)))
    Player Group - Pick every player in Players and do (Actions)
      Loop - Actions
        Player - Make (Unit-type of (Last created unit)) Unavailable for training/construction by (Picked player)
    Set VariableSet RandomData_All[Random_Hero] = RandomData_All[RandomTotal_All]
    Set VariableSet RandomTotal_All = (RandomTotal_All - 1)
Revive Hero
  Events
    Unit - A unit Dies
  Conditions
    ((Dying unit) is A Hero) Equal to True
  Actions
    Unit Group - Add (Dying unit) to RevivableHeroes
    Set VariableSet TempReal = (((Real((Hero level of (Dying unit)))) x Hero_Revive_Time_Factor) + 5.00)
    If (UberMode_On Equal to True) then do (Set VariableSet TempReal = (TempReal x 0.50)) else do (Do nothing)
    Countdown Timer - Start ReviveTimers[(Player number of (Owner of (Dying unit)))] as a One-shot timer that will expire in TempReal seconds
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        Multiboard_ShowDeaths Equal to False
      Then - Actions
        Countdown Timer - Create a timer window for (Last started timer) with title (Name of (Owner of (Dying unit)))
        Countdown Timer - Show (Last created timer window) for (Owner of (Dying unit))
        Set VariableSet RevivableTimersWindows[(Player number of (Owner of (Dying unit)))] = (Last created timer window)
      Else - Actions
Revive Hero Timer
  Events
    Time - ReviveTimers[2] expires
    Time - ReviveTimers[3] expires
    Time - ReviveTimers[4] expires
    Time - ReviveTimers[5] expires
    Time - ReviveTimers[6] expires
    Time - ReviveTimers[8] expires
    Time - ReviveTimers[9] expires
    Time - ReviveTimers[10] expires
    Time - ReviveTimers[11] expires
    Time - ReviveTimers[12] expires
  Conditions
  Actions
    Unit Group - Pick every unit in RevivableHeroes and do (Actions)
      Loop - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            (Remaining time for ReviveTimers[(Player number of (Owner of (Picked unit)))]) Less than 1.00
          Then - Actions
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              If - Conditions
                ((Owner of (Picked unit)) is in PlayersSentinel.) Equal to True
              Then - Actions
                Hero - Instantly revive (Picked unit) at (Center of Hero_Creation_Sentinel <gen>), Show revival graphics
              Else - Actions
                Hero - Instantly revive (Picked unit) at (Center of Hero_Creation_Scourge <gen>), Show revival graphics
          Else - Actions
Revive Hero Tavern
  Events
    Unit - A unit Finishes reviving
  Conditions
    ((Reviving Hero) is in RevivableHeroes.) Equal to True
  Actions
    Unit Group - Remove (Reviving Hero) from RevivableHeroes.
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        Multiboard_ShowDeaths Equal to True
      Then - Actions
        Multiboard - Set the text for (Last created multiboard) item in column 2, row Multiboard_Spots[(Player number of (Owner of (Reviving Hero)))] to
      Else - Actions
        Countdown Timer - Destroy RevivableTimersWindows[(Player number of (Owner of (Reviving Hero)))]
    Camera - Pan camera for (Owner of (Reviving Hero)) to (Position of (Reviving Hero)) over 0.60 seconds
    Selection - Select (Reviving Hero) for (Owner of (Reviving Hero))
Move Heroes
  Events
    Unit - A unit enters HeroSpawnSentinel <gen>
    Unit - A unit enters HeroSpawnScourge <gen>
  Conditions
    (Unit-type of (Entering unit)) Not equal to Zone Indicator (second)
  Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        ((Owner of (Entering unit)) is in PlayersSentinel.) Equal to True
      Then - Actions
        Unit - Move (Entering unit) instantly to (Center of Hero_Creation_Sentinel <gen>)
      Else - Actions
        Unit - Move (Entering unit) instantly to (Center of Hero_Creation_Scourge <gen>)
    Selection - Select (Entering unit) for (Owner of (Entering unit))
    Camera - Pan camera for (Owner of (Entering unit)) to (Position of (Entering unit)) over 1.00 seconds
Prevent Team Kill
  Events
    Unit - A unit Is attacked
  Conditions
    ((Owner of (Attacking unit)) is an ally of (Owner of (Attacked unit)).) Equal to True
    (Percentage life of (Attacked unit)) Greater than 10
  Actions
    Unit - Create 1.Dummy Unit 1 for Neutral Hostile at (Position of (Attacking unit)) facing Default building facing degrees
    Unit - Add a 2.00 second Generic expiration timer to (Last created unit)
    Unit - Add Hex (Team Killer) to (Last created unit)
    Unit - Order (Last created unit) to Orc Shadow Hunter - Hex.(Attacking unit)
Item Drop
  Events
    Unit - A unit Dies
  Conditions
    ((Dying unit) is A Hero) Equal to True
  Actions
    Set VariableSet ItemDropCount = 0
    For each (Integer A) from 1 to 6, do (Actions)
      Loop - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            ((Item carried by (Dying unit) in slot (Integer A)) is owned) Equal to True
          Then - Actions
            Set VariableSet ItemDropCount = (ItemDropCount + 1)
            Set VariableSet ItemDrop[ItemDropCount] = (Integer A)
          Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        ItemDropCount Greater than 0
      Then - Actions
        Hero - Drop the item from slot ItemDrop[(Random integer number between 1 and ItemDropCount)] of (Dying unit).
      Else - Actions
Death Match
  Events
    Unit - A unit Dies
  Conditions
    ((Dying unit) is A Hero) Equal to True
  Actions
    Set VariableSet TempInteger = (Player number of (Owner of (Dying unit)))
    Set VariableSet DeathMatch[TempInteger] = (DeathMatch[TempInteger] - 1)
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        DeathMatch[TempInteger] Less than 1
      Then - Actions
        Quest - Display to Players the Hint message: ((Name of (Owner of (Dying unit))) + has died too often.)
        Game - Defeat (Owner of (Dying unit)) with the message: Defeat!
      Else - Actions
Uber Mode
  Events
    Unit - A unit enters (Playable map area)
  Conditions
    Or - Any (Conditions) are true
      Conditions
        UberMode_On Equal to True
        UltraShortMode_On Equal to True
    ((Entering unit) is A Hero) Equal to True
    (Hero level of (Entering unit)) Less than 10
  Actions
    Hero - Set (Entering unit) Hero-level to 10, Hide level-up graphics
Victory Sentinel
  Events
    Unit - The Frozen Throne 0056 <gen> Dies
  Conditions
  Actions
    Trigger - Turn off Player_Leaves_Game <gen>
    Player Group - Pick every player in PlayersSentinel and do (Victory (Picked player) (Skip dialogs, Show scores))
    Player Group - Pick every player in PlayersScourge and do (Defeat (Picked player) with the message: Defeat!)
Victory Scourge
  Events
    Unit - The World Tree 0059 <gen> Dies
  Conditions
  Actions
    Trigger - Turn off Player_Leaves_Game <gen>
    Player Group - Pick every player in PlayersScourge and do (Victory (Picked player) (Skip dialogs, Show scores))
    Player Group - Pick every player in PlayersSentinel and do (Defeat (Picked player) with the message: Defeat!)
Player Leaves Game
  Events
    Player - Player 2 (Blue) leaves the game
    Player - Player 3 (Teal) leaves the game
    Player - Player 4 (Purple) leaves the game
    Player - Player 5 (Yellow) leaves the game
    Player - Player 6 (Orange) leaves the game
    Player - Player 8 (Pink) leaves the game
    Player - Player 9 (Gray) leaves the game
    Player - Player 10 (Light Blue) leaves the game
    Player - Player 11 (Dark Green) leaves the game
    Player - Player 12 (Brown) leaves the game
  Conditions
  Actions
    Quest - Display to Players the Warning message: ((Name of (Triggering player)) + has left the game.)
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        ((Triggering player) is in PlayersSentinel.) Equal to True
      Then - Actions
        Set VariableSet TempInteger = ((((Triggering player) Current gold) / (Number of players in PlayersSentinelPlaying)) + 1)
        Player Group - Remove (Triggering player) from PlayersSentinelPlaying.
        Player Group - Pick every player in PlayersSentinelPlaying and do (Actions)
          Loop - Actions
            Player - Add TempInteger to (Picked player).Current gold
            Player - Make (Triggering player) treat (Picked player) as an Ally with shared vision and full shared units
      Else - Actions
        Set VariableSet TempInteger = ((((Triggering player) Current gold) / (Number of players in PlayersScourgePlaying)) + 1)
        Player Group - Remove (Triggering player) from PlayersScourgePlaying.
        Player Group - Pick every player in PlayersScourgePlaying and do (Actions)
          Loop - Actions
            Player - Add TempInteger to (Picked player).Current gold
            Player - Make (Triggering player) treat (Picked player) as an Ally with shared vision and full shared units
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        End_Game_If_All_Gone Equal to True
        (Number of players in PlayersSentinelPlaying) Equal to 0
      Then - Actions
        Player Group - Pick every player in PlayersScourge and do (Actions)
          Loop - Actions
            Game - Victory (Picked player) (Skip dialogs, Show scores)
      Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        End_Game_If_All_Gone Equal to True
        (Number of players in PlayersScourgePlaying) Equal to 0
      Then - Actions
        Player Group - Pick every player in PlayersSentinel and do (Actions)
          Loop - Actions
            Game - Victory (Picked player) (Skip dialogs, Show scores)
      Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        ((Triggering player) slot status) Not equal to Has left the game
      Then - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            ((Triggering player) is in PlayersSentinel.) Equal to True
          Then - Actions
            Player Group - Make (Player group((Triggering player))) treat PlayersSentinel as an Ally with shared vision and full shared units
          Else - Actions
            Player Group - Make (Player group((Triggering player))) treat PlayersScourge as an Ally with shared vision and full shared units
      Else - Actions
Free Gold
  Events
    Time - Every 8.00 seconds of game time
  Conditions
  Actions
    Set VariableSet TempInteger = 8
    If (ShortMode_On Equal to True) then do (Set VariableSet TempInteger = 12) else do (Do nothing)
    If (UltraShortMode_On Equal to True) then do (Set VariableSet TempInteger = 16) else do (Do nothing)
    Player Group - Pick every player in Players and do (Actions)
      Loop - Actions
        Player - Add TempInteger to (Picked player).Current gold
Matchup
  Events
    Player - Player 2 (Blue) types a chat message containing -ma (stringnoformat) as An exact match
    Player - Player 3 (Teal) types a chat message containing -ma (stringnoformat) as An exact match
    Player - Player 4 (Purple) types a chat message containing -ma (stringnoformat) as An exact match
    Player - Player 5 (Yellow) types a chat message containing -ma (stringnoformat) as An exact match
    Player - Player 6 (Orange) types a chat message containing -ma (stringnoformat) as An exact match
    Player - Player 8 (Pink) types a chat message containing -ma (stringnoformat) as An exact match
    Player - Player 9 (Gray) types a chat message containing -ma (stringnoformat) as An exact match
    Player - Player 10 (Light Blue) types a chat message containing -ma (stringnoformat) as An exact match
    Player - Player 11 (Dark Green) types a chat message containing -ma (stringnoformat) as An exact match
    Player - Player 12 (Brown) types a chat message containing -ma (stringnoformat) as An exact match
    Player - Player 2 (Blue) types a chat message containing -matchup (stringnoformat) as An exact match
    Player - Player 3 (Teal) types a chat message containing -matchup (stringnoformat) as An exact match
    Player - Player 4 (Purple) types a chat message containing -matchup (stringnoformat) as An exact match
    Player - Player 5 (Yellow) types a chat message containing -matchup (stringnoformat) as An exact match
    Player - Player 6 (Orange) types a chat message containing -matchup (stringnoformat) as An exact match
    Player - Player 8 (Pink) types a chat message containing -matchup (stringnoformat) as An exact match
    Player - Player 9 (Gray) types a chat message containing -matchup (stringnoformat) as An exact match
    Player - Player 10 (Light Blue) types a chat message containing -matchup (stringnoformat) as An exact match
    Player - Player 11 (Dark Green) types a chat message containing -matchup (stringnoformat) as An exact match
    Player - Player 12 (Brown) types a chat message containing -matchup (stringnoformat) as An exact match
  Conditions
  Actions
    Set VariableSet UnitGroup = (Units in (Playable map area) matching (((Matching unit) is A Hero) Equal to True))
    Unit Group - Pick every unit in UnitGroup and do (Actions)
      Loop - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            ((Owner of (Picked unit)) is an enemy of (Triggering player).) Equal to True
          Then - Actions
            Game - Display to (Player group((Triggering player))) the text: (PlayerNames[(Player number of (Owner of (Picked unit)))] + ( controls + (Name of (Picked unit))))
          Else - Actions
Movespeed
  Events
    Player - Player 2 (Blue) types a chat message containing -ms (stringnoformat) as An exact match
    Player - Player 3 (Teal) types a chat message containing -ms (stringnoformat) as An exact match
    Player - Player 4 (Purple) types a chat message containing -ms (stringnoformat) as An exact match
    Player - Player 5 (Yellow) types a chat message containing -ms (stringnoformat) as An exact match
    Player - Player 6 (Orange) types a chat message containing -ms (stringnoformat) as An exact match
    Player - Player 8 (Pink) types a chat message containing -ms (stringnoformat) as An exact match
    Player - Player 9 (Gray) types a chat message containing -ms (stringnoformat) as An exact match
    Player - Player 10 (Light Blue) types a chat message containing -ms (stringnoformat) as An exact match
    Player - Player 11 (Dark Green) types a chat message containing -ms (stringnoformat) as An exact match
    Player - Player 12 (Brown) types a chat message containing -ms (stringnoformat) as An exact match
    Player - Player 2 (Blue) types a chat message containing -movespeed (stringnoformat) as An exact match
    Player - Player 3 (Teal) types a chat message containing -movespeed (stringnoformat) as An exact match
    Player - Player 4 (Purple) types a chat message containing -movespeed (stringnoformat) as An exact match
    Player - Player 5 (Yellow) types a chat message containing -movespeed (stringnoformat) as An exact match
    Player - Player 6 (Orange) types a chat message containing -movespeed (stringnoformat) as An exact match
    Player - Player 8 (Pink) types a chat message containing -movespeed (stringnoformat) as An exact match
    Player - Player 9 (Gray) types a chat message containing -movespeed (stringnoformat) as An exact match
    Player - Player 10 (Light Blue) types a chat message containing -movespeed (stringnoformat) as An exact match
    Player - Player 11 (Dark Green) types a chat message containing -movespeed (stringnoformat) as An exact match
    Player - Player 12 (Brown) types a chat message containing -movespeed (stringnoformat) as An exact match
  Conditions
  Actions
    Set VariableSet UnitGroup = (Units owned by (Triggering player) matching (((Matching unit) is A Hero) Equal to True).)
    Unit Group - Pick every unit in UnitGroup and do (Actions)
      Loop - Actions
        Game - Display to (Player group((Triggering player))) the text: (Player_Colors[(Player number of (Triggering player))] + ((Name of (Picked unit)) + (|r movement speed is + (String((Current movement speed of (Picked unit)), 4, 3)))))
Multiboard Setup
  Events
    Time - Elapsed game time is 16.00 seconds
  Conditions
  Actions
    Countdown Timer - Start Game_Time as a One-shot timer that will expire in 999999.00 seconds
    Leaderboard - Create a leaderboard for PlayersSentinel titled Sentinel
    Set VariableSet LeaderboardSentinel = (Last created leaderboard)
    Leaderboard - Hide LeaderboardSentinel
    Leaderboard - Create a leaderboard for PlayersScourge titled Scourge
    Set VariableSet LeaderboardScourge = (Last created leaderboard)
    Leaderboard - Hide LeaderboardScourge
    Player Group - Pick every player in PlayersSentinel and do (Actions)
      Loop - Actions
        Leaderboard - Add (Picked player) to LeaderboardSentinel with label (Name of (Picked player)) and value 0
    Player Group - Pick every player in PlayersScourge and do (Actions)
      Loop - Actions
        Leaderboard - Add (Picked player) to LeaderboardScourge with label (Name of (Picked player)) and value 0
    Trigger - Run Create_Multiboard <gen> (ignoring conditions)
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        Multiboard_ShowDeaths Equal to True
      Then - Actions
        Trigger - Turn on Tally_Deaths <gen>
      Else - Actions
Multiboard with Kills and Deaths per player and per team.
Show revival times for dead Heroes.
Create Multiboard
  Events
  Conditions
  Actions
    Multiboard - Create a multiboard with 4 columns and (6 + PlayersCount) rows, titled Dota Template.
    Multiboard - Set the text for (Last created multiboard) item in column 1, row 1 to Player
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        Multiboard_ShowDeaths Equal to True
      Then - Actions
        Multiboard - Set the text for (Last created multiboard) item in column 2, row 1 to Dead
      Else - Actions
    Multiboard - Set the text for (Last created multiboard) item in column 3, row 1 to Kills
    Multiboard - Set the text for (Last created multiboard) item in column 4, row 1 to Deaths
    -------- Now set the fields for the first row, AND our player rows. --------
    Multiboard - Set the display style for (Last created multiboard) item in column 0, row 0 to Show text and Hide icons
    Multiboard - Set the width for (Last created multiboard) item in column 1, row 0 to 10.00% of the total screen width
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        Multiboard_ShowDeaths Equal to True
      Then - Actions
        Multiboard - Set the width for (Last created multiboard) item in column 2, row 0 to 4.00% of the total screen width
      Else - Actions
        Multiboard - Set the width for (Last created multiboard) item in column 2, row 0 to 0.50% of the total screen width
    Multiboard - Set the width for (Last created multiboard) item in column 3, row 0 to 3.00% of the total screen width
    Multiboard - Set the width for (Last created multiboard) item in column 4, row 0 to 5.00% of the total screen width
    Multiboard - Set the color for (Last created multiboard) item in column 2, row 0 to (70.00%, 70.00%, 70.00%) with 0% transparency
    Multiboard - Set the color for (Last created multiboard) item in column 3, row 0 to (70.00%, 70.00%, 70.00%) with 0% transparency
    Multiboard - Set the color for (Last created multiboard) item in column 4, row 0 to (70.00%, 70.00%, 70.00%) with 0% transparency
    -------- DEFINE PLAYERS ON THE BOARD --------
    Trigger - Run Sort_Multiboard <gen> (ignoring conditions)
    -------- Sentinel Team --------
    Set VariableSet TempInteger = 2
    Set VariableSet Multiboard_Spots[1] = TempInteger
    Multiboard - Set the text for (Last created multiboard) item in column 1, row TempInteger to PlayerNames[1]
    Multiboard - Set the text for (Last created multiboard) item in column 2, row TempInteger to
    Multiboard - Set the text for (Last created multiboard) item in column 3, row TempInteger to 0
    Multiboard - Set the text for (Last created multiboard) item in column 4, row TempInteger to 0
    -------- Scourge Team --------
    Set VariableSet TempInteger = ((Number of players in PlayersSentinel) + 4)
    Set VariableSet Multiboard_Spots[7] = TempInteger
    Multiboard - Set the text for (Last created multiboard) item in column 1, row TempInteger to PlayerNames[7]
    Multiboard - Set the text for (Last created multiboard) item in column 2, row TempInteger to
    Multiboard - Set the text for (Last created multiboard) item in column 3, row TempInteger to 0
    Multiboard - Set the text for (Last created multiboard) item in column 4, row TempInteger to 0
    -------- Clock --------
    Set VariableSet Multiboard_Clock = (PlayersCount + 6)
    Multiboard - Set the text for (Last created multiboard) item in column 1, row Multiboard_Clock to Game Time:
    Multiboard - Set the text for (Last created multiboard) item in column 3, row Multiboard_Clock to 0:00
    Multiboard - Set the color for (Last created multiboard) item in column 2, row 1 to (100.00%, 100.00%, 100.00%) with 0% transparency
    Multiboard - Set the color for (Last created multiboard) item in column 3, row 1 to (100.00%, 100.00%, 100.00%) with 0% transparency
    Multiboard - Set the color for (Last created multiboard) item in column 4, row 1 to (100.00%, 100.00%, 100.00%) with 0% transparency
    Multiboard - Show (Last created multiboard)
Tally Score
  Events
    Unit - A unit Dies
  Conditions
    ((Dying unit) is A Hero) Equal to True
    (Player number of (Owner of (Killing unit))) Greater than 0
    (Player number of (Owner of (Killing unit))) Less than or equal to 12
  Actions
    Set VariableSet Score_Kills[(Player number of (Owner of (Killing unit)))] = (Score_Kills[(Player number of (Owner of (Killing unit)))] + 1)
    Set VariableSet Score_Deaths[(Player number of (Owner of (Dying unit)))] = (Score_Deaths[(Player number of (Owner of (Dying unit)))] + 1)
    If (((Owner of (Dying unit)) is in PlayersSentinel.) Equal to True) then do (Set VariableSet Score_Deaths[1] = (Score_Deaths[1] + 1)) else do (Do nothing)
    If (((Owner of (Dying unit)) is in PlayersScourge.) Equal to True) then do (Set VariableSet Score_Deaths[7] = (Score_Deaths[7] + 1)) else do (Do nothing)
    Set VariableSet TempInteger = (((Hero level of (Dying unit)) x 5) + 100)
    Player - Add TempInteger to (Owner of (Killing unit)).Current gold
    Game - Display to (All players) the text: (PlayerNames[(Player number of (Owner of (Killing unit)))] + ( has just pawned + (PlayerNames[(Player number of (Owner of (Dying unit)))] + ('s head for an extra + ((String(TempInteger)) + gold.)))))
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        ((Owner of (Killing unit)) is in PlayersSentinel.) Equal to True
      Then - Actions
        Set VariableSet Score_Kills[1] = (Score_Kills[1] + 1)
      Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        ((Owner of (Killing unit)) is in PlayersScourge.) Equal to True
      Then - Actions
        Set VariableSet Score_Kills[7] = (Score_Kills[7] + 1)
      Else - Actions
    Trigger - Run Sort_Multiboard <gen> (checking conditions)
    Multiboard - Set the text for (Last created multiboard) item in column 3, row Multiboard_Spots[1] to ( + (String(Score_Kills[1])))
    Multiboard - Set the text for (Last created multiboard) item in column 3, row Multiboard_Spots[7] to ( + (String(Score_Kills[7])))
    Multiboard - Set the text for (Last created multiboard) item in column 4, row Multiboard_Spots[1] to ( + (String(Score_Deaths[1])))
    Multiboard - Set the text for (Last created multiboard) item in column 4, row Multiboard_Spots[7] to ( + (String(Score_Deaths[7])))
Tally Clock
  Events
    Time - Every 1.00 seconds of game time
  Conditions
  Actions
    Set VariableSet Game_Minutes = ((Integer((Elapsed time for Game_Time))) / 60)
    Set VariableSet Game_Seconds = ((Integer((Elapsed time for Game_Time))) mod 60)
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        Game_Seconds Greater than or equal to 10
      Then - Actions
        Multiboard - Set the text for (Last created multiboard) item in column 3, row Multiboard_Clock to ((String(Game_Minutes)) + (: + (String(Game_Seconds))))
      Else - Actions
        Multiboard - Set the text for (Last created multiboard) item in column 3, row Multiboard_Clock to ((String(Game_Minutes)) + (:0 + (String(Game_Seconds))))
Tally Deaths
  Events
    Time - Every 1.00 seconds of game time
  Conditions
    (RevivableHeroes is empty) Equal to False
  Actions
    Unit Group - Pick every unit in RevivableHeroes and do (Actions)
      Loop - Actions
        Multiboard - Set the text for (Last created multiboard) item in column 2, row Multiboard_Spots[(Player number of (Owner of (Picked unit)))] to (String((Integer((Remaining time for ReviveTimers[(Player number of (Owner of (Picked unit)))])))))
Sort Multiboard
  Events
  Conditions
  Actions
    Player Group - Pick every player in PlayersSentinel and do (Actions)
      Loop - Actions
        Leaderboard - Change the value for (Picked player) in LeaderboardSentinel to ((Score_Kills[(Player number of (Picked player))] x 10000) - Score_Deaths[(Player number of (Picked player))])
    Player Group - Pick every player in PlayersScourge and do (Actions)
      Loop - Actions
        Leaderboard - Change the value for (Picked player) in LeaderboardScourge to ((Score_Kills[(Player number of (Picked player))] x 10000) - Score_Deaths[(Player number of (Picked player))])
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        Sort_Board_By_Kills Equal to True
      Then - Actions
        Leaderboard - Sort LeaderboardSentinel by Value in Descending order
        Leaderboard - Sort LeaderboardScourge by Value in Descending order
      Else - Actions
        Leaderboard - Sort LeaderboardSentinel by Player in Ascending order
        Leaderboard - Sort LeaderboardScourge by Player in Ascending order
    Set VariableSet TempInteger = 2
    Player Group - Pick every player in PlayersSentinel and do (Actions)
      Loop - Actions
        Set VariableSet Multiboard_Spots[(Player number of (Picked player))] = ((Position of (Picked player) in LeaderboardSentinel) + TempInteger)
    Set VariableSet TempInteger = ((Number of players in PlayersSentinel) + 4)
    Player Group - Pick every player in PlayersScourge and do (Actions)
      Loop - Actions
        Set VariableSet Multiboard_Spots[(Player number of (Picked player))] = ((Position of (Picked player) in LeaderboardScourge) + TempInteger)
    Player Group - Pick every player in Players and do (Actions)
      Loop - Actions
        Set VariableSet TempInteger = (Player number of (Picked player))
        Multiboard - Set the text for (Last created multiboard) item in column 1, row Multiboard_Spots[TempInteger] to PlayerNames[TempInteger]
        Multiboard - Set the text for (Last created multiboard) item in column 2, row Multiboard_Spots[TempInteger] to
        Multiboard - Set the text for (Last created multiboard) item in column 3, row Multiboard_Spots[TempInteger] to ( + (String(Score_Kills[TempInteger])))
        Multiboard - Set the text for (Last created multiboard) item in column 4, row Multiboard_Spots[TempInteger] to ( + (String(Score_Deaths[TempInteger])))
Spawn Sentinel
  Events
    Time - Every 30.00 seconds of game time
  Conditions
  Actions
    -------- SPAWN NORTH --------
    Set VariableSet Point = (Center of War_North <gen>)
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Crypt 0091 <gen> is alive) Equal to True
      Then - Actions
        Unit - Create 3.Treant for Player 1 (Red) at Point facing 90.00 degrees
      Else - Actions
        Unit - Create 3.Treant (level 2) for Player 1 (Red) at Point facing 90.00 degrees
    Set VariableSet Point = (Center of Lore_North <gen>)
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Temple of the Damned 0079 <gen> is alive) Equal to True
      Then - Actions
        Unit - Create 3.Druid of the Talon for Player 1 (Red) at Point facing 90.00 degrees
      Else - Actions
        Unit - Create 3.Druid of the Talon (level 2) for Player 1 (Red) at Point facing 90.00 degrees
    -------- SPAWN CENTER --------
    If ((Crypt 0051 <gen> is alive) Equal to True) then do (Create 3.Treant for Player 1 (Red) at (Center of War_Center <gen>) facing 45.00 degrees) else do (Create 3.Treant (level 2) for Player 1 (Red) at (Center of War_Center <gen>) facing 45.00 degrees)
    If ((Temple of the Damned 0088 <gen> is alive) Equal to True) then do (Create 2.Druid of the Talon for Player 1 (Red) at (Center of Lore_Center <gen>) facing 45.00 degrees) else do (Create 2.Druid of the Talon (level 2) for Player 1 (Red) at (Center of Lore_Center <gen>) facing 45.00 degrees)
    -------- SPAWN SOUTH --------
    If ((Crypt 0001 <gen> is alive) Equal to True) then do (Create 3.Treant for Player 1 (Red) at (Center of War_South <gen>) facing 0.00 degrees) else do (Create 3.Treant (level 2) for Player 1 (Red) at (Center of War_South <gen>) facing 0.00 degrees)
    If ((Temple of the Damned 0077 <gen> is alive) Equal to True) then do (Create 2.Druid of the Talon for Player 1 (Red) at (Center of Lore_South <gen>) facing 0.00 degrees) else do (Create 2.Druid of the Talon (level 2) for Player 1 (Red) at (Center of Lore_South <gen>) facing 0.00 degrees)
Spawn Scourge
  Events
    Time - Every 30.00 seconds of game time
  Conditions
  Actions
    -------- SPAWN NORTH --------
    If ((Ancient of War 0099 <gen> is alive) Equal to True) then do (Create 3.Ghoul for Player 7 (Green) at (Center of Crypt_North <gen>) facing 180.00 degrees) else do (Create 3.Ghoul (level 2) for Player 7 (Green) at (Center of Crypt_North <gen>) facing 180.00 degrees)
    If ((Ancient of Lore 0104 <gen> is alive) Equal to True) then do (Create 2.Necromancer for Player 7 (Green) at (Center of Temple_North <gen>) facing 180.00 degrees) else do (Create 2.Necromancer (level 2) for Player 7 (Green) at (Center of Temple_North <gen>) facing 180.00 degrees)
    -------- SPAWN CENTER --------
    If ((Ancient of War 0100 <gen> is alive) Equal to True) then do (Create 3.Ghoul for Player 7 (Green) at (Center of Crypt_Center <gen>) facing 235.00 degrees) else do (Create 3.Ghoul (level 2) for Player 7 (Green) at (Center of Crypt_Center <gen>) facing 235.00 degrees)
    If ((Ancient of Lore 0103 <gen> is alive) Equal to True) then do (Create 2.Necromancer for Player 7 (Green) at (Center of Temple_Center <gen>) facing 235.00 degrees) else do (Create 2.Necromancer (level 2) for Player 7 (Green) at (Center of Temple_Center <gen>) facing 235.00 degrees)
    -------- SPAWN SOUTH --------
    If ((Ancient of War 0101 <gen> is alive) Equal to True) then do (Create 3.Ghoul for Player 7 (Green) at (Center of Crypt_South <gen>) facing 270.00 degrees) else do (Create 3.Ghoul (level 2) for Player 7 (Green) at (Center of Crypt_South <gen>) facing 270.00 degrees)
    If ((Ancient of Lore 0102 <gen> is alive) Equal to True) then do (Create 2.Necromancer for Player 7 (Green) at (Center of Temple_South <gen>) facing 270.00 degrees) else do (Create 2.Necromancer (level 2) for Player 7 (Green) at (Center of Temple_South <gen>) facing 270.00 degrees)
Move to Base
  Events
    Unit - A unit comes within 300.00 of Attack-North 0013 <gen>
    Unit - A unit comes within 300.00 of Attack-Mid 0008 <gen>
    Unit - A unit comes within 300.00 of Attack-South 0076 <gen>
  Conditions
    ((Owner of (Triggering unit)) Equal to Player 1 (Red)) or ((Owner of (Triggering unit)) Equal to Player 7 (Green))
  Actions
    If ((Owner of (Triggering unit)) Equal to Player 1 (Red)) then do (Order (Triggering unit) to Attack-Move To.(Position of Attack-Undead 0069 <gen>)) else do (Do nothing)
    If ((Owner of (Triggering unit)) Equal to Player 7 (Green)) then do (Order (Triggering unit) to Attack-Move To.(Position of Attack-Sentinal 0020 <gen>)) else do (Do nothing)
Move North Sentinel
  Events
    Unit - A unit enters War_North <gen>
    Unit - A unit enters Lore_North <gen>
  Conditions
    (Owner of (Triggering unit)) Equal to Player 1 (Red)
  Actions
    Unit - Order (Triggering unit) to Attack-Move To.(Position of Attack-North 0013 <gen>)
Move North Scourge
  Events
    Unit - A unit enters Crypt_North <gen>
    Unit - A unit enters Temple_North <gen>
  Conditions
    (Owner of (Triggering unit)) Equal to Player 7 (Green)
  Actions
    Unit - Order (Triggering unit) to Attack-Move To.(Position of Attack-North 0013 <gen>)
Move Center Sentinel
  Events
    Unit - A unit enters War_Center <gen>
    Unit - A unit enters Lore_Center <gen>
  Conditions
    (Owner of (Triggering unit)) Equal to Player 1 (Red)
  Actions
    Unit - Order (Triggering unit) to Attack-Move To.(Position of Attack-Mid 0008 <gen>)
Move Center Scourge
  Events
    Unit - A unit enters Crypt_Center <gen>
    Unit - A unit enters Temple_Center <gen>
  Conditions
    (Owner of (Triggering unit)) Equal to Player 7 (Green)
  Actions
    Unit - Order (Triggering unit) to Attack-Move To.(Position of Attack-Mid 0008 <gen>)
Move South Sentinel
  Events
    Unit - A unit enters War_South <gen>
    Unit - A unit enters Lore_South <gen>
  Conditions
    (Owner of (Triggering unit)) Equal to Player 1 (Red)
  Actions
    Unit - Order (Triggering unit) to Attack-Move To.(Position of Attack-South 0076 <gen>)
Move South Scourge
  Events
    Unit - A unit enters Crypt_South <gen>
    Unit - A unit enters Temple_South <gen>
  Conditions
    (Owner of (Triggering unit)) Equal to Player 7 (Green)
  Actions
    Unit - Order (Triggering unit) to Attack-Move To.(Position of Attack-South 0076 <gen>)
Super Creeps Setup
  Events
  Conditions
  Actions
    Set VariableSet Super_Creeps[1] = Zergling
    Set VariableSet Super_Creeps[2] = Black Widow
    Set VariableSet Super_Creeps[3] = Ancient Wendigo
    -------- - --------
    Set VariableSet Super_Regions[1] = Lore_North <gen>
    Set VariableSet Super_Regions[2] = Temple_North <gen>
    Set VariableSet Super_Regions[3] = Lore_Center <gen>
    Set VariableSet Super_Regions[4] = Temple_Center <gen>
    Set VariableSet Super_Regions[5] = Lore_South <gen>
    Set VariableSet Super_Regions[6] = Temple_South <gen>
    Set VariableSet Super_Names[1] = northern
    Set VariableSet Super_Names[2] = northern
    Set VariableSet Super_Names[3] = middle
    Set VariableSet Super_Names[4] = middle
    Set VariableSet Super_Names[5] = southern
    Set VariableSet Super_Names[6] = southern
Supers Creeps Spawn
  Events
    Time - Every 30.00 seconds of game time
  Conditions
    Super_Creeps_On Equal to True
    (Elapsed time for Game_Time) Greater than or equal to 180.00
  Actions
    Set VariableSet Super_Chances[1] = (Random integer number between 1 and 40)
    Set VariableSet Super_Chances[2] = (Random integer number between 1 and 60)
    Set VariableSet Super_Chances[3] = (Random integer number between 1 and 120)
    For each (Integer LoopSuper) from 1 to 3, do (Actions)
      Loop - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            Super_Chances[LoopSuper] Less than 6
          Then - Actions
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              If - Conditions
                Or - Any (Conditions) are true
                  Conditions
                    Super_Chances[LoopSuper] Equal to 1
                    Super_Chances[LoopSuper] Equal to 3
                    Super_Chances[LoopSuper] Equal to 5
              Then - Actions
                Unit - Create 1.Super_Creeps[LoopSuper] for Player 1 (Red) at (Center of Super_Regions[Super_Chances[LoopSuper]]) facing Default building facing degrees
                Game - Display to (All players) the text: (A + ((Name of (Last created unit)) + ( has spawned for the Sentinel and is heading for the + (Super_Names[Super_Chances[LoopSuper]] + path!))))
              Else - Actions
                Unit - Create 1.Super_Creeps[LoopSuper] for Player 7 (Green) at (Center of Super_Regions[Super_Chances[LoopSuper]]) facing Default building facing degrees
                Game - Display to (All players) the text: (A + ((Name of (Last created unit)) + ( has spawned for the Scourge and is heading for the + (Super_Names[Super_Chances[LoopSuper]] + path!))))
          Else - Actions
We need to store all the Creeps' LOCATIONS and TYPE into some arrays.

No, this doesn't take up much memmory or lag at all, and it's easy to do.
Store Creeps
  Events
  Conditions
  Actions
    Set VariableSet LoopCreep = 0
    Unit Group - Pick every unit in (Units owned by Neutral Hostile.) and do (Actions)
      Loop - Actions
        Set VariableSet Creep_Types[LoopCreep] = (Unit-type of (Picked unit))
        Set VariableSet Creep_Positions[LoopCreep] = (Position of (Picked unit))
        Unit - Set the custom value of (Picked unit) to LoopCreep
        Set VariableSet LoopCreep = (LoopCreep + 1)
    Custom script: call DestroyGroup(bj_lastCreatedGroup)
This trigger creates new Creeps of the ORIGINAL type and at the ORIGINAL location!

We use CUSTOM TEXT to give us our local variables. That way, multiple Creeps can revive without variables overwriting themselves.
 
Setup Items
  Events
  Conditions
  Actions
    -------- Items dropped by Creeps --------
    Set VariableSet CreepItemsCount = 10
    Set VariableSet CreepItems[1] = Healing Salve
    Set VariableSet CreepItems[2] = Healing Salve
    Set VariableSet CreepItems[3] = Rod of Necromancy
    Set VariableSet CreepItems[4] = Scroll of Speed
    Set VariableSet CreepItems[5] = Vampiric Potion
    Set VariableSet CreepItems[6] = Healing Wards
    Set VariableSet CreepItems[7] = Potion of Omniscience
    Set VariableSet CreepItems[8] = Rune of Restoration
    Set VariableSet CreepItems[9] = Khadgar's Gem of Health
    Set VariableSet CreepItems[10] = Ankh of Reincarnation
    -------- Items that spawn in or near the river --------
    Set VariableSet RiverItemsCount = 6
    Set VariableSet RiverItems[1] = Rune of Greater Damage
    Set VariableSet RiverItems[2] = Rune of Illusion
    Set VariableSet RiverItems[3] = Rune of Invisibility
    Set VariableSet RiverItems[4] = Rune of Invulnerability
    Set VariableSet RiverItems[5] = Rune of Replenishment
    Set VariableSet RiverItems[6] = Rune of Speed
    -------- They spawn in these places --------
    Set VariableSet RiverItemsRegionsCount = 2
    Set VariableSet RiverItemsRegions[1] = (Center of RiverItems01 <gen>)
    Set VariableSet RiverItemsRegions[2] = (Center of RiverItems02 <gen>)
    -------- Unless there already is an item --------
    For each (Integer A) from 1 to RiverItemsRegionsCount, do (Actions)
      Loop - Actions
        Set VariableSet RiverItemsTaken[(Integer A)] = False
River Items
  Events
    Time - Every (Random real number between 60.00 and 120.00) seconds of game time
  Conditions
  Actions
    Set VariableSet TempInteger = (((Execution count of (This trigger)) mod RiverItemsRegionsCount) + 1)
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        RiverItemsTaken[TempInteger] Equal to False
      Then - Actions
        Set VariableSet RiverItemsTaken[TempInteger] = True
        Item - Create RiverItems[(Random integer number between 1 and RiverItemsCount)] at RiverItemsRegions[TempInteger]
        Item - Set the custom value of (Last created item) to TempInteger
      Else - Actions
River Items Taken
  Events
    Unit - A unit Acquires an item
  Conditions
    (Custom value of (Item being manipulated)) Greater than 0
  Actions
    Set VariableSet RiverItemsTaken[(Custom value of (Item being manipulated))] = False
Creep Items
  Events
    Unit - A unit owned by Neutral Hostile.Dies
  Conditions
    ((Dying unit) is Summoned) Equal to False
    (Random integer number between 1 and 100) Less than or equal to 10
  Actions
    Set VariableSet Point = (Position of (Dying unit))
    Item - Create CreepItems[(Random integer number between 1 and CreepItemsCount)] at Point
This will combine ANY items that have charges, REGARDLESS of 'item class'.

If you don't like it, just delete this trigger. That's it!

 
Setup Invunerable
  Events
  Conditions
  Actions
    Unit Group - Pick every unit in (Units in (Playable map area) matching (((Matching unit) is A structure) Equal to True)) and do (Make (Picked unit) Invulnerable)
    Custom script: call DestroyGroup(bj_lastCreatedGroup)
    -------- First rows are vunerable. --------
    Unit - Make Ancient Protector 0083 <gen> Vulnerable
    Unit - Make Spirit Tower 0043 <gen> Vulnerable
    Unit - Make Ancient Protector 0042 <gen> Vulnerable
    Unit - Make Spirit Tower 0041 <gen> Vulnerable
    Unit - Make Ancient Protector 0037 <gen> Vulnerable
    Unit - Make Spirit Tower 0018 <gen> Vulnerable
Sentinel North 1
  Events
    Unit - Ancient Protector 0083 <gen> Dies
  Conditions
  Actions
    Unit - Make Ancient Protector - level 2 0071 <gen> Vulnerable
Sentinel North 2
  Events
    Unit - Ancient Protector - level 2 0071 <gen> Dies
  Conditions
  Actions
    Unit - Make Ancient Protector 0081 <gen> Vulnerable
Sentinel North 3
  Events
    Unit - Ancient Protector 0081 <gen> Dies
  Conditions
  Actions
    Unit Group - Pick every unit in (Units in InvulnerableSentinel1 <gen>) and do (Make (Picked unit) Vulnerable)
    Custom script: call DestroyGroup(bj_lastCreatedGroup)
    Unit - Make Ancient Protector - level 2 0139 <gen> Vulnerable
    Unit - Make Ancient Protector - level 2 0140 <gen> Vulnerable
Sentinel Center 1
  Events
    Unit - Ancient Protector 0042 <gen> Dies
  Conditions
  Actions
    Unit - Make Ancient Protector - level 2 0092 <gen> Vulnerable
Sentinel Center 2
  Events
    Unit - Ancient Protector - level 2 0092 <gen> Dies
  Conditions
  Actions
    Unit - Make Ancient Protector 0052 <gen> Vulnerable
Sentinel Center 3
  Events
    Unit - Ancient Protector 0052 <gen> Dies
  Conditions
  Actions
    Unit Group - Pick every unit in (Units in InvulnerableSentinel2 <gen>) and do (Make (Picked unit) Vulnerable)
    Custom script: call DestroyGroup(bj_lastCreatedGroup)
    Unit - Make Ancient Protector - level 2 0139 <gen> Vulnerable
    Unit - Make Ancient Protector - level 2 0140 <gen> Vulnerable
Sentinel South 1
  Events
    Unit - Ancient Protector 0037 <gen> Dies
  Conditions
  Actions
    Unit - Make Ancient Protector - level 2 0084 <gen> Vulnerable
Sentinel South 2
  Events
    Unit - Ancient Protector - level 2 0084 <gen> Dies
  Conditions
  Actions
    Unit - Make Ancient Protector 0049 <gen> Vulnerable
Sentinel South 3
  Events
    Unit - Ancient Protector 0049 <gen> Dies
  Conditions
  Actions
    Unit Group - Pick every unit in (Units in InvulnerableSentinel3 <gen>) and do (Make (Picked unit) Vulnerable)
    Custom script: call DestroyGroup(bj_lastCreatedGroup)
    Unit - Make Ancient Protector - level 2 0139 <gen> Vulnerable
    Unit - Make Ancient Protector - level 2 0140 <gen> Vulnerable
Scourge North 1
  Events
    Unit - Spirit Tower 0043 <gen> Dies
  Conditions
  Actions
    Unit - Make Spirit Tower - level 2 0023 <gen> Vulnerable
Scourge North 2
  Events
    Unit - Spirit Tower - level 2 0023 <gen> Dies
  Conditions
  Actions
    Unit - Make Spirit Tower 0005 <gen> Vulnerable
Scourge North 3
  Events
    Unit - Spirit Tower 0005 <gen> Dies
  Conditions
  Actions
    Unit Group - Pick every unit in (Units in InvulnerableScourge3 <gen>) and do (Make (Picked unit) Vulnerable)
    Custom script: call DestroyGroup(bj_lastCreatedGroup)
    Unit - Make Spirit Tower - level 2 0050 <gen> Vulnerable
    Unit - Make Spirit Tower - level 2 0138 <gen> Vulnerable
Scourge Center 1
  Events
    Unit - Spirit Tower 0041 <gen> Dies
  Conditions
  Actions
    Unit - Make Spirit Tower - level 2 0032 <gen> Vulnerable
Scourge Center 2
  Events
    Unit - Spirit Tower - level 2 0032 <gen> Dies
  Conditions
  Actions
    Unit - Make Spirit Tower 0106 <gen> Vulnerable
Scourge Center 3
  Events
    Unit - Spirit Tower 0106 <gen> Dies
  Conditions
  Actions
    Unit Group - Pick every unit in (Units in InvulnerableScourge2 <gen>) and do (Make (Picked unit) Vulnerable)
    Custom script: call DestroyGroup(bj_lastCreatedGroup)
    Unit - Make Spirit Tower - level 2 0050 <gen> Vulnerable
    Unit - Make Spirit Tower - level 2 0138 <gen> Vulnerable
Scourge South 1
  Events
    Unit - Spirit Tower 0018 <gen> Dies
  Conditions
  Actions
    Unit - Make Spirit Tower - level 2 0030 <gen> Vulnerable
Scourge South 2
  Events
    Unit - Spirit Tower - level 2 0030 <gen> Dies
  Conditions
  Actions
    Unit - Make Spirit Tower 0044 <gen> Vulnerable
Scourge South 3
  Events
    Unit - Spirit Tower 0044 <gen> Dies
  Conditions
  Actions
    Unit Group - Pick every unit in (Units in InvulnerableScourge1 <gen>) and do (Make (Picked unit) Vulnerable)
    Custom script: call DestroyGroup(bj_lastCreatedGroup)
    Unit - Make Spirit Tower - level 2 0050 <gen> Vulnerable
    Unit - Make Spirit Tower - level 2 0138 <gen> Vulnerable
Sentinel Base
  Events
    Unit - Ancient Protector - level 2 0139 <gen> Dies
    Unit - Ancient Protector - level 2 0140 <gen> Dies
  Conditions
  Actions
    Unit - Make The World Tree 0059 <gen> Vulnerable
Scourge Base
  Events
    Unit - Spirit Tower - level 2 0050 <gen> Dies
    Unit - Spirit Tower - level 2 0138 <gen> Dies
  Conditions
  Actions
    Unit - Make The Frozen Throne 0056 <gen> Vulnerable
Regrow Trees Setup
  Events
    Time - Elapsed game time is 5 seconds
  Conditions
  Actions
    Destructible - Pick every destructible in (Entire map) and do (Actions)
      Loop - Actions
        Trigger - Add to RegrowTrees <gen> the event ((Picked destructible) dies)
RegrowTrees
  Events
  Conditions
  Actions
    Custom script: local destructable BADTREE = GetDyingDestructable()
    Wait 150.00 seconds
    Custom script: call DestructableRestoreLife( BADTREE, GetDestructableMaxLife(BADTREE), true )
Goblin Shop
  Events
    Player - Player 2 (Blue) Selects a unit
    Player - Player 3 (Teal) Selects a unit
    Player - Player 4 (Purple) Selects a unit
    Player - Player 5 (Yellow) Selects a unit
    Player - Player 6 (Orange) Selects a unit
    Player - Player 8 (Pink) Selects a unit
    Player - Player 9 (Gray) Selects a unit
    Player - Player 10 (Light Blue) Selects a unit
    Player - Player 11 (Dark Green) Selects a unit
    Player - Player 12 (Brown) Selects a unit
  Conditions
    (Unit-type of (Triggering unit)) Equal to Goblin Merchant
  Actions
    Animation - Queue (Triggering unit)'s work (animationname) animation
First Blood
  Events
    Unit - A unit Is attacked
  Conditions
    ((Attacked unit) is A Hero) Equal to True
    ((Attacking unit) is A Hero) Equal to True
    ((Owner of (Attacking unit)) is an enemy of (Owner of (Attacked unit)).) Equal to True
  Actions
    Trigger - Turn off (This trigger)
    Player - Add 200 to (Owner of (Attacking unit)).Current gold
    Quest - Display to Players the Hint message: ((|cff00ccffFirst Blood|r - + PlayerNames[(Player number of (Owner of (Attacked unit)))]) + ( 's blood has been spilled by + (PlayerNames[(Player number of (Owner of (Attacking unit)))] + for an additional 200 Gold.)))
First Hero Kill
  Events
    Unit - A unit Dies
  Conditions
    ((Dying unit) is A Hero) Equal to True
    ((Killing unit) is A Hero) Equal to True
  Actions
    Trigger - Turn off (This trigger)
    Player - Add 200 to (Owner of (Killing unit)).Current gold
    Quest - Display to Players the Hint message: ((|cff00ccffFirst Kill|r - + PlayerNames[(Player number of (Owner of (Dying unit)))]) + ( has been killed by + (PlayerNames[(Player number of (Owner of (Killing unit)))] + for an additional 200 Gold.)))
Last Hero Standing
  Events
    Unit - A unit Dies
  Conditions
    ((Owner of (Dying unit)) is in LastHeroStanding.) Equal to True
  Actions
    Player Group - Remove (Owner of (Dying unit)) from LastHeroStanding.
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Number of players in LastHeroStanding) Less than or equal to 1
      Then - Actions
        Trigger - Turn off (This trigger)
        Player Group - Pick every player in LastHeroStanding and do (Actions)
          Loop - Actions
            Player - Add 200 to (Picked player).Current gold
            Quest - Display to Players the Hint message: (|cff00ccffLast Hero Standing|r - + (PlayerNames[(Player number of (Picked player))] + earns an additional 200 Gold.))
      Else - Actions