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. The Lich King demands your service! We've reached the 19th edition of the Icon Contest. Come along and make some chilling servants for the one true king.
    Dismiss Notice
  5. The 4th SFX Contest has started. Be sure to participate and have a fun factor in it.
    Dismiss Notice
  6. The poll for the 21st Terraining Contest is LIVE. Be sure to check out the entries and vote for one.
    Dismiss Notice
  7. The results are out! Check them out.
    Dismiss Notice
  8. Don’t forget to sign up for the Hive Cup. There’s a 555 EUR prize pool. Sign up now!
    Dismiss Notice
  9. The Hive Workshop Cup contest results have been announced! See the maps that'll be featured in the Hive Workshop Cup tournament!
    Dismiss Notice
  10. 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

2P Night Elf 01 V.2.0.w3x
Variables
Map Initialization
PreInit
Friends For Ever
Map Initialization
Setup Starting Force
Setup Players
Setup Quest
Setup Sound and Music
Setup FOW
Opening Cinematic
Intro Cinematic Cancel
Opening Cinematic A
Scout Summoned
Scout Summoned Move
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Start Mission
Start Mission QUE
Start Mission
Start AI
Hero Exp
Hints
Tree of Life QUE
Tree of Life
Wisp Check
Wisp QUE
Wisp
Shadowmeld QUE
Shadowmeld
Scout QUE
Scout
Ancient Eat Tree QUE
Ancient Eat Tree
Expansion QUE
Expansion
Waterfalls
Waterfalls ON Start
Waterfalls ON After
Waterfalls OFF
Rescue Units
Four Archers
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Leaderboard
Create Leaderboard
Destroy Leaderboard
Night Elf Base Quest
Ancient of War Gold
Ancient of War Lumber
Build Ancient of War Check
Build Ancient of War QUEUE
Build Ancient of War
Begin Building Ancient Of War QUEUE
Begin Building Ancient Of War
Entangle Gold Mine QUEUE
Entangle Gold Mine
Ancient of War QUEUE
Ancient of War
Build a Moonwell QUEUE
Build a Moonwell
Moon Well QUEUE
Moon Well
Archer Trained QUEUE
Archer Trained
All 3 completed
Night Elf Base Completed
Crate Items
Crate 01
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Furbolg Quest
No Hero Present QUEUE
No Hero Present
Furbolg Quest Hero Present QUEUE
Furbolg Quest Hero Present
Furbolg Quest Completed QUEUE
Furbolg Quest Completed
Furbolg Leader Board
TEN Furbolg Found
Quest Reward
Furbolg Returns Home
Keep Moving Furbolg
Furbog Ready for Removal
Furbolg Leaves the Map
Dead Units
Shaman Dead
Tyrande Dead
Furbolg Village
Furbolg Vis Enable
Furbolg Vis Disable
Wandering Furbolg 01
Wandering Furbolg 02
Wandering Furbolg 03 A
Wandering Furbolg 03 B
Wandering Furbolg 04
Wandering Furbolg 05 Shaman
Wandering Furbolg 06 Champion
Furbolg Attacked by the Player QUE
Furbolg Attacked by the Player
Furbolg Attacked After Quest Complete
Furbolg 01
Furbolg Found 01 QUEUE
Furbolg Found 01
Furbolg 01 Home
Furbolg 02 Home
Furbolg Move 01
Furbolg Move 02
Furbolg 02
Furbolg Gaurd QUEUE
Furbolg Gaurd Dead
Furbolg Found 02
Furbolg 03 Home
Furbolg 04 Home
Furbolg 05 Home
Furbolg Move 03
Furbolg Move 04
Furbolg Move 05
Furbolg Hut A Receives Damage
Furbolg Hut B Receives Damage
Furbolg Ensnared
Furbolg 03
Furbolg Found 03 QUEUE
Furbolg Found 03
Furbolg 06 Home
Furbolg Move 06
Furbolg 04
Furbolg Found 04 QUEUE
Furbolg Found 04
Furbolg 07 Home
Furbolg 08 Home
Furbolg Move 07
Furbolg Move 08
Furbolg 05
Furbolg Found 05 A QUEUE
Furbolg Found 05 B QUEUE
Furbolg Found 05
Furbolg 09 Home
Furbolg 10 Home
Furbolg Move 09
Furbolg Move 10
Furbolg 06
Furbolg Found 06 QUE
Furbolg Found 06
Furbolg 11 Home
Furbolg 12 Home
Furbolg Move 11
Furbolg Move 12
Create the Furbolg hut
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Footman Encampment
Awake the Footman
Footman Sleep
Footman Awake
Human Orc Base
Harvest
Tyrande Enters Enemy Base QUEUE
Tyrande Enters Enemy Base
Yellow AI
Add Orc Units
Patrol Fliers
Red AI
Red Gold
Red Lumber
Light Blue AI
Light Blue Gold
Light Blue Lumber
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Ending Cinematic
Ending Cinematic Cancel
Ending Cinematic QUEUE
Ending Cinematic
Defeat Condition
Defeat
Spells
PowerShot
SleepingVenom
AOEHeal
Systems
TimerUtils
Food
GiveResource
ExchangeUnits
GUI Friendly Damage Detection
CinematicSkip
Gametexts&GameModes
Starttext
Endtext
SaveCodeEtc
GameModeNormal
GameModeInsane
Starting
New
PlayersSetup
Other
BonusTent
Variables
PlayerLeaves
InsaneModeCheck
Timer
Extras Track
//TESH.scrollpos=30
//TESH.alwaysfold=0
function SaveLoad_InitialSetup takes nothing returns nothing
    local integer i = 0
    local integer j = 0

    loop
        set udg_SaveLoad_Compress[i + 48] = j
        set udg_SaveLoad_Uncompress[i] = i + 48
        set j = j + 1
        set i = i + 1
        exitwhen i >= 10
    endloop
    set i = 0
    loop
        set udg_SaveLoad_Compress[i + 97] = j
        set udg_SaveLoad_Compress[i + 65] = j + 26
        set udg_SaveLoad_Uncompress[i + 10] = i + 97
        set udg_SaveLoad_Uncompress[i + 26 + 10] = i + 65
        set j = j + 1
        set i = i + 1
        exitwhen i >= 26
    endloop
endfunction

function SaveLoad_Id2CId takes integer n returns integer
    local integer i = n / (256 * 256 * 256)
    local integer r
    set n = n - i * (256 * 256 * 256)
    set r = udg_SaveLoad_Compress[i]
    set i = n / (256 * 256)
    set n = n - i * (256 * 256)
    set r = r * 64 + udg_SaveLoad_Compress[i]
    set i = n / 256
    set r = r * 64 + udg_SaveLoad_Compress[i]
    return r * 64 + udg_SaveLoad_Compress[n - i * 256]
endfunction

function SaveLoad_CId2Id takes integer n returns integer
    local integer i = n / (64 * 64 * 64)
    local integer r
    set n = n - i * (64 * 64 * 64)
    set r = udg_SaveLoad_Uncompress[i]
    set i = n / (64 * 64)
    set n = n - i * (64 * 64)
    set r = r * 256 + udg_SaveLoad_Uncompress[i]
    set i = n / 64
    set r = r * 256 + udg_SaveLoad_Uncompress[i]
    return r * 256 + udg_SaveLoad_Uncompress[n - i * 64]
endfunction

function SaveLoad_Unit2Integer takes unit u returns integer
    local integer i = 0
    local integer n = GetUnitTypeId(u)
    if udg_SaveLoad_Initialized == false then
        set udg_SaveLoad_Initialized = true
        call SaveLoad_InitialSetup()
    endif
    loop
        set i = i + 1
        exitwhen i > udg_SaveLoad_Heroes_LastIndex
        if udg_SaveLoad_Heroes[i] == n then
            return i
        endif
    endloop
    return SaveLoad_Id2CId(n)
endfunction
function SaveLoad_Integer2Unit takes integer i returns integer
    if udg_SaveLoad_Initialized == false then
        set udg_SaveLoad_Initialized = true
        call SaveLoad_InitialSetup()
    endif
    if i <= udg_SaveLoad_Heroes_LastIndex then
        return udg_SaveLoad_Heroes[i]
    endif
    return SaveLoad_CId2Id(i)
endfunction

function SaveLoad_Item2Integer takes item t returns integer
    local integer i = 0
    local integer n = GetItemTypeId(t)
    if udg_SaveLoad_Initialized == false then
        set udg_SaveLoad_Initialized = true
        call SaveLoad_InitialSetup()
    endif
    loop
        set i = i + 1
        exitwhen i > udg_SaveLoad_Items_LastIndex
        if udg_SaveLoad_Items[i] == n then
            return i
        endif
    endloop
    return SaveLoad_Id2CId(n)
endfunction
function SaveLoad_Integer2Item takes integer i returns integer
    if udg_SaveLoad_Initialized == false then
        set udg_SaveLoad_Initialized = true
        call SaveLoad_InitialSetup()
    endif
    if i <= udg_SaveLoad_Items_LastIndex then
        return udg_SaveLoad_Items[i]
    endif
    return SaveLoad_CId2Id(i)
endfunction

function SaveLoad_Ability2Integer takes integer a returns integer
    local integer i = 0
    if udg_SaveLoad_Initialized == false then
        set udg_SaveLoad_Initialized = true
        call SaveLoad_InitialSetup()
    endif
    loop
        set i = i + 1
        exitwhen i > udg_SaveLoad_Abilities_LastIndex
        if udg_SaveLoad_Abilities[i] == a then
            return i
        endif
    endloop
    return SaveLoad_Id2CId(a)
endfunction
function SaveLoad_Integer2Ability takes integer i returns integer
    if udg_SaveLoad_Initialized == false then
        set udg_SaveLoad_Initialized = true
        call SaveLoad_InitialSetup()
    endif
    if i <= udg_SaveLoad_Abilities_LastIndex then
        return udg_SaveLoad_Abilities[i]
    endif
    return SaveLoad_CId2Id(i)
endfunction

function SaveLoad_Color takes string s returns string
    local integer i = StringLength(s)
    local string c
    local string r = ""

    loop
        set i = i - 1
        set c = SubString(s,i,i + 1)
        if c == "0" or c == "1" or c == "2" or c == "3" or c == "4" or c == "5" or c == "6" or c == "7" or c == "8" or c == "9" then
            set r = "|cffff9999" + c + "|r" + r
        elseif c == "-" then
            set r = "|cffdddddd-|r" + r
        elseif c == "a" or c == "b" or c == "c" or c == "d" or c == "e" or c == "f" or c == "g" or c == "h" or c == "i" or c == "j" or c == "k" or c == "l" or c == "m" or c == "n" or c == "o" or c == "p" or c == "q" or c == "r" or c == "s" or c == "t" or c == "u" or c == "v" or c == "w" or c == "x" or c == "y" or c == "z" then
            set r = "|cff99ff99" + c + "|r" + r
        elseif c == "A" or c == "B" or c == "C" or c == "D" or c == "E" or c == "F" or c == "G" or c == "H" or c == "I" or c == "J" or c == "K" or c == "L" or c == "M" or c == "N" or c == "O" or c == "P" or c == "Q" or c == "R" or c == "S" or c == "T" or c == "U" or c == "V" or c == "W" or c == "X" or c == "Y" or c == "Z" then
            set r = "|cff9999ff" + c + "|r" + r
        else
            set r = c + r
        endif
        exitwhen i <= 0
    endloop
    return r
endfunction

function SaveLoad_EncodeChar takes string n returns integer
    local integer i = 0
    local string s1 = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
    local string s2 = "abcdefghijklmnopqrstuvwxyz"
    local string s3 = "0123456789"

    loop
        if SubString(s1,i,i + 1) == n then
            return i
        endif
        if SubString(s2,i,i + 1) == n then
            return i
        endif
        set i = i + 1
        exitwhen i >= 26
    endloop
    set i = 0
    loop
        if SubString(s3,i,i + 1) == n then
            return i
        endif
        set i = i + 1
        exitwhen i >= 10
    endloop
    return 0
endfunction

function SaveLoad_EncodeVerify takes string buffer returns integer
    local integer i = 0
    local integer j = 0
    local string name = GetPlayerName(GetTriggerPlayer())
    if udg_SaveLoad_UsePlayername == true then
        loop
            set j = j + SaveLoad_EncodeChar(SubString(name,i,i + 1))
            set i = i + 1
            exitwhen i >= StringLength(name)
        endloop
    endif
    set i = 0
    loop
        set j = j + SaveLoad_EncodeChar(SubString(buffer,i,i + 1))
        set i = i + 1
        exitwhen i >= StringLength(buffer)
    endloop
    return j
endfunction

function SaveLoad_EncodeValues takes nothing returns string
    local integer i
    local integer j
    local integer k
    local integer l
    local integer m
    local integer CodeLength = StringLength(udg_SaveLoad_Alphabet)
    local integer array a
    local string buffer = ""
    local string c = ""
    local integer skip = 0
    local integer CONST = 1000000
    local string abc = "0123456789"

    set i = 0
    loop
        set i = i + 1
        exitwhen i > udg_SaveCount
        set buffer = buffer + I2S(udg_Save[i]) + "-"
    endloop
    set buffer = buffer + I2S(SaveLoad_EncodeVerify(buffer))
    if udg_Save[1] == 0 then
        set buffer = "-" + buffer
    endif

    set i = 0
    loop
        set a[i] = 0
        set i = i + 1
        exitwhen i >= 100
    endloop

    set m = 0
    set i = 0
    loop
        set j = 0
        loop
            set a[j] = a[j] * 11
            set j = j + 1
            exitwhen j > m
        endloop

        set l = 0
        set c = SubString(buffer,i,i + 1)
        loop
            exitwhen SubString(abc,l,l + 1) == c
            set l = l + 1
            exitwhen l > 9
        endloop
        set a[0] = a[0] + l

        set j = 0
        loop
            set k = a[j] / CONST
            set a[j] = a[j] - k * CONST
            set a[j + 1] = a[j + 1] + k
            set j = j + 1
            exitwhen j > m
        endloop
        if k > 0 then
            set m = m + 1
        endif
        set i = i + 1
        exitwhen i >= StringLength(buffer)
    endloop

    set buffer = ""
    loop
        exitwhen m < 0
        set j = m
        loop
            exitwhen j <= 0
            set k = a[j] / CodeLength
            set a[j - 1] = a[j - 1] + (a[j] - k * CodeLength) * CONST
            set a[j] = k
            set j = j - 1
        endloop
        set k = a[j] / CodeLength
        set i = a[j] - k * CodeLength
        set buffer = buffer + SubString(udg_SaveLoad_Alphabet,i,i + 1)
        set a[j] = k
        if a[m] == 0 then
            set m = m - 1
        endif
    endloop

    set i = StringLength(buffer)
    set skip = 0
    set c = ""
    loop
        set i = i - 1
        set c = c + SubString(buffer,i,i + 1)
        set skip = skip + 1
        if skip == 4 and i > 0 then
            set c = c + "-"
            set skip = 0
        endif
        exitwhen i <= 0
    endloop
    return c
endfunction

function SaveLoad_DecodeValues takes string s returns boolean
    local integer i
    local integer j
    local integer k
    local integer l
    local integer SaveCode = 0
    local integer m
    local integer array a
    local string buffer = ""
    local integer CodeLength = StringLength(udg_SaveLoad_Alphabet)
    local integer skip = -1
    local integer CONST = 1000000
    local string abc = "0123456789-"
    local string c

    set i = 0
    loop
        set a[i] = 0
        set i = i + 1
        exitwhen i >= 100
    endloop

    set m = 0

    set i = 0
    loop
        set j = 0
        loop
            set a[j] = a[j] * CodeLength
            set j = j + 1
            exitwhen j > m
        endloop

        set skip = skip + 1
        if skip == 4 then
            set skip = 0
            set i = i + 1
        endif

        set l = CodeLength
        set c = SubString(s,i,i + 1)
        loop
            set l = l - 1
            exitwhen l < 1
            exitwhen SubString(udg_SaveLoad_Alphabet,l,l + 1) == c
        endloop
        set a[0] = a[0] + l

        set j = 0
        loop
            set k = a[j] / CONST
            set a[j] = a[j] - k * CONST
            set a[j + 1] = a[j + 1] + k
            set j = j + 1
            exitwhen j > m
        endloop
        if k > 0 then
            set m = m + 1
        endif
        set i = i + 1
        exitwhen i >= StringLength(s)
    endloop

    loop
        exitwhen m < 0
        set j = m
        loop
            exitwhen j <= 0
            set k = a[j] / 11
            set a[j - 1] = a[j - 1] + (a[j] - k * 11) * CONST
            set a[j] = k
            set j = j - 1
        endloop
        set k = a[j] / 11
        set i = a[j] - k * 11
        set buffer = SubString(abc,i,i + 1) + buffer
        set a[j] = k
        if a[m] == 0 then
            set m = m - 1
        endif
    endloop

    set i = 0
    set j = 0
    loop
        loop
            exitwhen i >= StringLength(buffer)
            exitwhen i > 0 and SubString(buffer,i,i + 1) == "-" and SubString(buffer,i - 1,i) != "-"
            set i = i + 1
        endloop
        if i < StringLength(buffer) then
            set k = i
        endif
        set SaveCode = SaveCode + 1
        set udg_Save[SaveCode] = S2I(SubString(buffer,j,i))
        set j = i + 1
        set i = i + 1
        exitwhen i >= StringLength(buffer)
    endloop

    set j = SaveLoad_EncodeVerify(SubString(buffer,0,k))
    set udg_SaveCount = SaveCode - 1
    if j == udg_Save[SaveCode] then
        return true
    endif
    return false
endfunction

function SaveLoad_Encode takes nothing returns string
    if udg_SaveLoad_CaseSensitive == false then
        set udg_SaveLoad_Alphabet = StringCase(udg_SaveLoad_Alphabet,true)
    endif
    return SaveLoad_Color(SaveLoad_EncodeValues())
endfunction

function SaveLoad_Decode takes string s returns boolean
    if udg_SaveLoad_CaseSensitive == false then
        set udg_SaveLoad_Alphabet = StringCase(udg_SaveLoad_Alphabet,true)
        set s = StringCase(s,true)
    endif
    if SaveLoad_DecodeValues(s) then
        return true
    endif
    return false
endfunction
Name Type Is Array Initial Value
AncientofWarCompleted boolean No false
AncientOfWarReq questitem No
AncientofWarResource integer No 0
Archer01 unit No
BonusesFound integer No
BonusesTotal integer No
BooleanQuestReqTyrandeRetAdded boolean No false
BootsofElvenkind item No
CancelIntro boolean No false
CancelOutro boolean No false
CaptainVis fogmodifier No
Code string No
DiffInteger integer No
Doom1 unit No
Doom2 unit No
Doom3 unit No
Doom4 unit No
Doom5 unit No
Doom6 unit No
Doom7 unit No
EndingFootman unit No
EndingGrunt unit No
Ensnare01 effect No
Ensnare02 effect No
Ensnare03 effect No
EntangleReq questitem No
ExchangeFail boolean No
ExchangePGroup1 force No
ExchangePGroup2 force No
ExchangePickedUnit unit No
ExchangeReceivePlayer player No
ExchangeSendPlayer player No
ExchangeSuccess boolean No
ExchangeTip boolean No
ExchangeUGroup group No
EXTAS integer No
EXTRAStotal integer No
FinalScore integer No
FootmanSleep effect No
FootmanVis fogmodifier No
FurbogVis fogmodifier No
Furbolg quest No
Furbolg01 unit No
Furbolg02 unit No
Furbolg03 unit No
Furbolg04 unit No
Furbolg05 unit No
Furbolg06 unit No
Furbolg07 unit No
Furbolg08 unit No
Furbolg09 unit No
Furbolg10 unit No
Furbolg11 unit No
Furbolg12 unit No
FurbolgContinueMove group No
FurbolgFound integer No 0
FurbolgGroup group No
FurbolgReq questitem No
FurbolgReq02 questitem No
FurbolgTalk effect No
GAMEOVER boolean No false
GameSelection boolean No
GDD__Integers integer Yes
GDD__LeftMapGroup group No
GDD__TriggerArray trigger Yes
GDD__UnitArray unit Yes
GDD_Damage real No
GDD_DamagedUnit unit No
GDD_DamageSource unit No
GDD_Event real No
Hero1 unit No
Hero1Inventory string No
Hero2 unit No
Hero2Inventory string No
Hound1 unit No
Hound2 unit No
InCombatDelay real No 4.00
InCombatTimer timer No
InsaneMode boolean No
InvadersQuest quest No
InvadersQuestReq questitem No
ItemVis fogmodifier No
LeaderboardArcherActive boolean No
LeaderBoardCounter leaderboard No
LeaderboardCreated boolean No false
LeaderboardFurbolgActive boolean No false
LocalPlayer player No
MissingFurbolgVis01 fogmodifier No
MissingFurbolgVis02 fogmodifier No
MissingFurbolgVis03 fogmodifier No
MissingFurbolgVis04 fogmodifier No
MissingFurbolgVis05 fogmodifier No
MissingFurbolgVis06 fogmodifier No
MoonwellCompleted boolean No false
MoonwellReq questitem No
NightElfBaseQuest quest No
Orc01 unit No
Orc02 unit No
Paladin unit No
PandamoniumG unit No
RaiderGroup group No
RankInteger integer No
Save integer Yes
SaveCount integer No
SaveLoad_Abilities abilcode Yes
SaveLoad_Abilities_LastIndex integer No
SaveLoad_Alphabet string No
SaveLoad_CaseSensitive boolean No
SaveLoad_Compress integer Yes
SaveLoad_Heroes unitcode Yes
SaveLoad_Heroes_LastIndex integer No
SaveLoad_Initialized boolean No
SaveLoad_Items itemcode Yes
SaveLoad_Items_LastIndex integer No
SaveLoad_Uncompress integer Yes
SaveLoad_UsePlayername boolean No
ScoreBonuses integer No
ScoreExtra integer No
ScoreLimit integer Yes
ScoreMax integer No
ScoreRank string No
ScoreSubquest integer No
ScoreTime integer No
ScoreTotal integer No
Scout unit No UnitNull
Shandris unit No
SideQuestActivated boolean No false
StagDos unit No
StagUno unit No
SubquestsComplete integer No
SubquestsTotal integer No
Suura unit No
TempInteger integer No
TempItem item No
TempP1Group force No
TempP2Group force No
TempPlayer player No
TempPoint location No
TempUGroup1 group No
TempUGroup2 group No
TempUnit unit No
Tich unit No
TimeMax real No
TimeMin real No
TimeRange real No
TimerHours integer No
TimerMinutes integer No
TimerSeconds integer No
TimerString string No
TimerStringHours string No
TimerStringMinutes string No
TimerStringSeconds string No
TimerTotal integer No
TimeTotal integer No
TrainArchers integer No 0
TrainArchersCompleted boolean No false
TrainArchersReq questitem No
Tyrande unit No
Validate boolean No
VoteNew1 boolean No
VoteNew2 boolean No
Waterfall01P1 fogmodifier No
Waterfall02P1 fogmodifier No
Waterfall03P1 fogmodifier No
WaterfallShine weathereffect No
WispGroup group No
PreInit
  Events
    Time - Elapsed game time is 0.00 seconds
  Conditions
  Actions
    Trigger - Run Friends_For_Ever <gen> (checking conditions)
    Trigger - Run Variables <gen> (checking conditions)
    Game - Set Lock resource trading to On
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Player 2 (Blue) slot status) Equal to Is playing
        (Player 3 (Teal) slot status) Equal to Is playing
        (Player 2 (Blue) controller) Equal to User
        (Player 3 (Teal) controller) Equal to User
      Then - Actions
        Set GameSelection = True
        Set InsaneMode = False
        Trigger - Turn on New <gen>
        Trigger - Turn on Starttext <gen>
        Trigger - Turn on GameModeInsane <gen>
        Trigger - Turn on GameModeNormal <gen>
        Trigger - Run Starttext <gen> (checking conditions)
      Else - Actions
        Set GameSelection = False
        Set GAMEOVER = True
        Game - Display to (All players) for 600.00 seconds the text: |cff218359-=NIGHT ELF CHAPTER 1=-|r
        Game - Display to (All players) for 600.00 seconds the text: Enemies At The Gate
        Game - Display to (All players) for 600.00 seconds the text:
        Game - Display to (All players) for 600.00 seconds the text: Not enough players are detected.
Friends For Ever
  Events
  Conditions
  Actions
    Player - Change color of Player 5 (Yellow) to Red, Changing color of existing units
    Player - Change color of Player 6 (Orange) to Red, Changing color of existing units
    Player - Change color of Player 8 (Pink) to Red, Changing color of existing units
    Player - Change color of Player 4 (Purple) to Light Blue, Changing color of existing units
    Player - Change color of Player 9 (Gray) to Light Blue, Changing color of existing units
    Player - Make Player 12 (Brown) treat Player 1 (Red) as an Ally
    Player - For Player 12 (Brown), turn Friendly spell targeting Off toward Player 1 (Red)
    Player - Make Player 12 (Brown) treat Player 5 (Yellow) as an Ally
    Player - For Player 12 (Brown), turn Friendly spell targeting Off toward Player 5 (Yellow)
    Player - Make Player 12 (Brown) treat Player 6 (Orange) as an Ally
    Player - For Player 12 (Brown), turn Friendly spell targeting Off toward Player 6 (Orange)
    Player - Make Player 12 (Brown) treat Player 8 (Pink) as an Ally
    Player - For Player 12 (Brown), turn Friendly spell targeting Off toward Player 8 (Pink)
    Player - Make Player 12 (Brown) treat Player 9 (Gray) as an Ally
    Player - For Player 12 (Brown), turn Friendly spell targeting Off toward Player 9 (Gray)
    Player - Make Player 12 (Brown) treat Player 10 (Light Blue) as an Ally
    Player - For Player 12 (Brown), turn Friendly spell targeting Off toward Player 10 (Light Blue)
    Player - Make Player 1 (Red) treat Player 12 (Brown) as an Ally
    Player - Make Player 5 (Yellow) treat Player 12 (Brown) as an Ally
    Player - Make Player 6 (Orange) treat Player 12 (Brown) as an Ally
    Player - Make Player 8 (Pink) treat Player 12 (Brown) as an Ally
    Player - Make Player 9 (Gray) treat Player 12 (Brown) as an Ally
    Player - Make Player 10 (Light Blue) treat Player 12 (Brown) as an Ally
    Player - Hide Player 11 (Dark Green) in the post-game score screen
    Player - Hide Player 4 (Purple) in the post-game score screen
    Player - Hide Player 5 (Yellow) in the post-game score screen
    Player - Hide Player 6 (Orange) in the post-game score screen
    Player - Hide Player 7 (Green) in the post-game score screen
    Player - Hide Player 8 (Pink) in the post-game score screen
    Player - Hide Player 9 (Gray) in the post-game score screen
    Player - Hide Player 12 (Brown) in the post-game score screen
Map Initialization
  Events
  Conditions
  Actions
    Trigger - Turn on GiveResource <gen>
    Trigger - Turn on ExchangeUnits <gen>
    Trigger - Run Setup_Starting_Force <gen> (checking conditions)
    Trigger - Run Setup_Players <gen> (checking conditions)
    Trigger - Run Setup_Quest <gen> (checking conditions)
    Trigger - Run Setup_Sound_and_Music <gen> (checking conditions)
    Trigger - Run Setup_FOW <gen> (checking conditions)
    Trigger - Run Food <gen> (checking conditions)
    -------- --------- --------
    Trigger - Run Opening_Cinematic_A <gen> (checking conditions)
    Trigger - Turn on Timer <gen>
Setup Starting Force
  Events
  Conditions
  Actions
    -------- -------- --------
    Unit Group - Add Wisp 0010 <gen> to WispGroup
    Unit Group - Add Wisp 0097 <gen> to WispGroup
    Unit Group - Add Wisp 0099 <gen> to WispGroup
    Unit Group - Add Wisp 0102 <gen> to WispGroup
    Unit Group - Add Wisp 0107 <gen> to WispGroup
    Unit Group - Add Wisp 0110 <gen> to WispGroup
Setup Players
  Events
  Conditions
  Actions
    AI - Ignore Wind Rider 0070 <gen>'s guard position
    AI - Ignore Wind Rider 0071 <gen>'s guard position
    -------- ---------- --------
    Unit Group - Add Raider 0073 <gen> to RaiderGroup
    Unit Group - Add Raider 0085 <gen> to RaiderGroup
    Unit Group - Add Raider 0084 <gen> to RaiderGroup
    Unit Group - Add Troll Headhunter 0003 <gen> to RaiderGroup
    Unit Group - Add Troll Headhunter 0052 <gen> to RaiderGroup
    Unit Group - Add Troll Headhunter 0115 <gen> to RaiderGroup
    -------- Starting Gold --------
    Player - Set Player 1 (Red) Current gold to 750
    Player - Set Player 1 (Red) Current lumber to 750
    -------- - --------
    Player - Set Player 10 (Light Blue) Current gold to 750
    Player - Set Player 10 (Light Blue) Current lumber to 750
Setup Quest
  Events
  Conditions
  Actions
    Quest - Create a Required quest titled Night Elf Base with the description Night Elf bases are more than mere trees: they are living, extended organisms that can uproot and move through the forests when attacked., using icon path ReplaceableTextures\CommandButtons\BTNAncientoftheEarth.tga
    Set NightElfBaseQuest = (Last created quest)
    -------- - --------
    Quest - Create a quest requirement for NightElfBaseQuest with the description Entangle a gold mine
    Set EntangleReq = (Last created quest requirement)
    -------- - --------
    Quest - Create a quest requirement for NightElfBaseQuest with the description Construct a Moon Well
    Set MoonwellReq = (Last created quest requirement)
    -------- - --------
    Quest - Create a quest requirement for NightElfBaseQuest with the description Construct an Ancient of War
    Set AncientOfWarReq = (Last created quest requirement)
    -------- - --------
    Quest - Create a quest requirement for NightElfBaseQuest with the description Train 5 Archers
    Set TrainArchersReq = (Last created quest requirement)
    -------- ---------- --------
    Quest - Create a Optional, undiscovered quest titled Furbolg Village with the description The Furbolgs are moving deeper into the forests of Ashenvale. Their tribal elder senses something evil spreading through the land. Before the tribe can leave, all of the wandering Furbolgs need to be escorted back to their village., using icon path ReplaceableTextures\CommandButtons\BTNFurbolgShaman.tga
    Set Furbolg = (Last created quest)
    Quest - Create a quest requirement for Furbolg with the description Locate 10 Missing Furbolgs
    Set FurbolgReq = (Last created quest requirement)
    -------- ---------- --------
    Special Effect - Create a special effect attached to the overhead of Furbolg Elder Shaman 0074 <gen> using Abilities\Spells\Other\TalkToMe\TalkToMe.mdl
    Set FurbolgTalk = (Last created special effect)
    -------- ---------- --------
    Quest - Create a Required, undiscovered quest titled Invaders with the description The Orcs and Humans have set up a base in the Ashenvale Forest. Tyrande Whisperwind, protector of the Night Elves, has sworn to destroy all that enter the forest uninvited., using icon path ReplaceableTextures\CommandButtons\BTNAncientoftheMoon.tga
    Set InvadersQuest = (Last created quest)
    Quest - Create a quest requirement for InvadersQuest with the description Slay the Paladin
    Set InvadersQuestReq = (Last created quest requirement)
Setup Sound and Music
  Events
  Conditions
  Actions
    Sound - Attach WispWhat3 <gen> to Wisp 0099 <gen>
    Sound - Attach ArcherReady1 <gen> to Archer 0005 <gen>
    Sound - Attach FootmanYesAttack3 <gen> to Footman 0072 <gen>
    Sound - Attach CreepSleepLoop1 <gen> to Footman 0072 <gen>
    -------- --------- --------
    Sound - Attach HumanCallToArmsWhat1 <gen> to Town Hall 0017 <gen>
    -------- --------- --------
    Sound - Add WaterStreamLoop1 <gen> across StreamLoop01 <gen>
    Sound - Add WaterStreamLoop1 <gen> across StreamLoop02 <gen>
    Sound - Add WaterStreamLoop1 <gen> across StreamLoop03 <gen>
    Sound - Add WaterStreamLoop1 <gen> across StreamLoop04 <gen>
    Sound - Add WaterStreamLoop1 <gen> across StreamLoop05 <gen>
    Sound - Add WaterStreamLoop1 <gen> across StreamLoop06 <gen>
    Sound - Add WaterStreamLoop1 <gen> across StreamLoop07 <gen>
    Sound - Add WaterStreamLoop1 <gen> across StreamLoop08 <gen>
    Sound - Add WaterStreamLoop1 <gen> across StreamLoop09 <gen>
    Sound - Add WaterStreamLoop1 <gen> across StreamLoop10 <gen>
    Sound - Add WaterStreamLoop1 <gen> across StreamLoop11 <gen>
    -------- Music Theme --------
    Sound - Clear the music list
    Wait 0.01 seconds
    Sound - Play Comradeship
    Sound - Set the music list to Music, starting with song 0
Setup FOW
  Events
  Conditions
  Actions
    Visibility - Create an initially Enabled visibility modifier for Player 2 (Blue) emitting Visibility from (Center of Vis_01 <gen>) to a radius of 512
    Visibility - Destroy (Last created visibility modifier)
    -------- - --------
    Visibility - Create an initially Enabled visibility modifier for Player 2 (Blue) emitting Visibility from (Center of Vis_02 <gen>) to a radius of 512
    Visibility - Destroy (Last created visibility modifier)
    -------- - --------
    Visibility - Create an initially Enabled visibility modifier for Player 2 (Blue) emitting Visibility from (Center of Vis_03 <gen>) to a radius of 512
    Visibility - Destroy (Last created visibility modifier)
    -------- - --------
    Visibility - Create an initially Enabled visibility modifier for Player 2 (Blue) emitting Visibility from (Center of Vis_04 <gen>) to a radius of 512
    Visibility - Destroy (Last created visibility modifier)
    -------- - --------
    Visibility - Create an initially Enabled visibility modifier for Player 2 (Blue) emitting Visibility from (Center of Vis_05 <gen>) to a radius of 512
    Visibility - Destroy (Last created visibility modifier)
    -------- - --------
    Visibility - Create an initially Enabled visibility modifier for Player 2 (Blue) emitting Visibility from (Center of Vis_06 <gen>) to a radius of 512
    Visibility - Destroy (Last created visibility modifier)
    -------- - --------
    Visibility - Create an initially Enabled visibility modifier for Player 2 (Blue) emitting Visibility from (Center of Vis_07 <gen>) to a radius of 512
    Visibility - Destroy (Last created visibility modifier)
    -------- - --------
Intro Cinematic Cancel
  Events
  Conditions
  Actions
    Trigger - Turn off (This trigger)
    Set CancelIntro = False
    -------- ---------- --------
    Visibility - Create an initially Enabled visibility modifier for Player 2 (Blue) emitting Visibility from (Center of Orc_Forge <gen>) to a radius of 600.00
    Visibility - Destroy (Last created visibility modifier)
    Visibility - Create an initially Enabled visibility modifier for Player 2 (Blue) emitting Visibility from (Center of Vis_Town_01 <gen>) to a radius of 896.00
    Visibility - Destroy (Last created visibility modifier)
    Visibility - Create an initially Enabled visibility modifier for Player 2 (Blue) emitting Visibility from (Center of Vis_Town_02 <gen>) to a radius of 896.00
    Visibility - Destroy (Last created visibility modifier)
    -------- ---------- --------
    Unit - Remove Scout from the game
    -------- ---------- --------
    Cinematic - Fade out over 0.40 seconds using texture White Mask and color (0%, 0%, 0%) with 0% transparency
    Wait 0.50 seconds
    Cinematic - Turn cinematic mode Off for (All players)
    Unit - Set mana of Tyrande to 100%
    Camera - Reset camera for Player 2 (Blue) to standard game-view over 0.01 seconds
    Camera - Reset camera for Player 3 (Teal) to standard game-view over 0.01 seconds
    Camera - Apply gg_cam_01_Intro_Skipped for Player 2 (Blue) over 0.01 seconds
    Camera - Apply gg_cam_01_Intro_Skipped for Player 3 (Teal) over 0.01 seconds
    Unit - Move Shandris instantly to (Center of 01_Shandris_C <gen>), facing 0.00 degrees
    Unit - Move Tyrande instantly to (Center of 01_Tyrande_D <gen>), facing 0.00 degrees
    Animation - Reset Priestess of the Moon 0004 <gen>'s body-part facing
    Animation - Reset Shandris's body-part facing
    Trigger - Turn off Scout_Summoned <gen>
    Cinematic - Fade in over 0.40 seconds using texture White Mask and color (0%, 0%, 0%) with 0% transparency
    -------- ---------- --------
    Trigger - Run Start_Mission_QUE <gen> (checking conditions)
Opening Cinematic A
  Events
  Conditions
  Actions
    Custom script: set cinSkip = false
    -------- --------- --------
    Environment - Set sky to Dalaran Sky
    Game - Set the time of day to 6.30
    Game - Turn the day/night cycle Off
    Environment - Set fog to style 0 (fogstyle), z-start 1000, z-end 6000.00, density 25.00 and color (10.00%, 20.00%, 10.00%)
    -------- ---------- --------
    Cinematic - Turn cinematic mode On for (All players)
    Camera - Apply gg_cam_01_Intro_Cinematic_01 for Player 2 (Blue) over 0 seconds
    Camera - Apply gg_cam_01_Intro_Cinematic_01 for Player 3 (Teal) over 0 seconds
    Cinematic - Fade out over 0.00 seconds using texture White Mask and color (0%, 0%, 0%) with 0% transparency
    Wait 2.00 seconds
    Cinematic - Fade in over 2.00 seconds using texture White Mask and color (0%, 0%, 0%) with 0% transparency
    Camera - Apply gg_cam_01_Intro_Cinematic_02 for Player 2 (Blue) over 13.00 seconds
    Camera - Apply gg_cam_01_Intro_Cinematic_02 for Player 3 (Teal) over 13.00 seconds
    Trigger - Run PlayersSetup <gen> (checking conditions)
    Wait 2 seconds
    -------- NOW SKIPPABLE --------
    Wait 8.00 seconds
    Custom script: if cinSkip then
    Custom script: return
    Custom script: endif
    Cinematic - Fade out over 3.00 seconds using texture White Mask and color (0%, 0%, 0%) with 0% transparency
    -------- ---------- --------
    Unit - Order Shandris to Move To (Center of 01_Shandris_A <gen>)
    -------- ---------- --------
    Wait 3.00 seconds
    Custom script: if cinSkip then
    Custom script: return
    Custom script: endif
    Camera - Apply gg_cam_01_Intro_Cinematic_03 for Player 2 (Blue) over 0 seconds
    Camera - Apply gg_cam_01_Intro_Cinematic_03 for Player 3 (Teal) over 0 seconds
    Custom script: if cinSkip then
    Custom script: return
    Custom script: endif
    Cinematic - Fade in over 3.00 seconds using texture White Mask and color (0%, 0%, 0%) with 0% transparency
    Custom script: if cinSkip then
    Custom script: return
    Custom script: endif
    Camera - Apply gg_cam_01_Intro_Cinematic_04 for Player 2 (Blue) over 25.00 seconds
    Camera - Apply gg_cam_01_Intro_Cinematic_04 for Player 3 (Teal) over 25.00 seconds
    Animation - Lock Shandris's Head to face Priestess of the Moon 0004 <gen>, offset by (0, 0, 90)
    Unit - Order Shandris to Move To (Center of 01_Shandris_A2 <gen>)
    Wait 5.00 seconds
    Custom script: if cinSkip then
    Custom script: return
    Custom script: endif
    Cinematic - Send transmission to (All players) from Shandris named Shandris Feathermoon: Play N01Shandris01 <gen> and display Pardon, Priestess, but you've been staring out across Ashenvale for hours.. Modify duration: Add 0 seconds and Wait
    Custom script: if cinSkip then
    Custom script: return
    Custom script: endif
    Wait 1.00 seconds
    Custom script: if cinSkip then
    Custom script: return
    Custom script: endif
    Animation - Lock Priestess of the Moon 0004 <gen>'s Head to face Shandris, offset by (0, 0, 90)
    Wait 0.50 seconds
    Custom script: if cinSkip then
    Custom script: return
    Custom script: endif
    Cinematic - Send transmission to (All players) from Tyrande named Tyrande Whisperwind: Play N01Tyrande02 <gen> and display I sense something dark stirring within the forests, Shandris. It feels as if it's heading this way. . Modify duration: Add 0 seconds and Wait
    Custom script: if cinSkip then
    Custom script: return
    Custom script: endif
    Cinematic - Send transmission to (All players) from Shandris named Shandris Feathermoon: Play N01Shandris03 <gen> and display The greenskins who killed Cenarius?. Modify duration: Add 0 seconds and Wait
    Custom script: if cinSkip then
    Custom script: return
    Custom script: endif
    -------- ---------- --------
    Camera - Apply gg_cam_01_Intro_Cinematic_05 for Player 2 (Blue) over 0 seconds
    Camera - Apply gg_cam_01_Intro_Cinematic_05 for Player 3 (Teal) over 0 seconds
    Camera - Apply gg_cam_01_Intro_Cinematic_06 for Player 2 (Blue) over 7.00 seconds
    Camera - Apply gg_cam_01_Intro_Cinematic_06 for Player 3 (Teal) over 7.00 seconds
    Wait 1.00 seconds
    Custom script: if cinSkip then
    Custom script: return
    Custom script: endif
    Animation - Reset Priestess of the Moon 0004 <gen>'s body-part facing
    Animation - Reset Shandris's body-part facing
    Custom script: if cinSkip then
    Custom script: return
    Custom script: endif
    Cinematic - Send transmission to (All players) from Tyrande named Tyrande Whisperwind: Play N01Tyrande04 <gen> and display Perhaps. Perhaps something more.. Modify duration: Add 0 seconds and Wait
    Wait 1.00 seconds
    Custom script: if cinSkip then
    Custom script: return
    Custom script: endif
    Unit - Order Tyrande to Night Elf Priestess Of The Moon - Scout
    Custom script: if cinSkip then
    Custom script: return
    Custom script: endif
    Wait for (Last played sound) to be 0 seconds from finished playing
    Custom script: if cinSkip then
    Custom script: return
    Custom script: endif
    Wait 0.50 seconds
    Custom script: if cinSkip then
    Custom script: return
    Custom script: endif
    Camera - Apply gg_cam_01_Intro_Cinematic_07 for Player 2 (Blue) over 5.00 seconds
    Camera - Apply gg_cam_01_Intro_Cinematic_07 for Player 3 (Teal) over 5.00 seconds
    -------- ---------- --------
    Unit - Order Peasant 0032 <gen> to Harvest Ashenvale Tree Wall 0997 <gen>
    Unit - Order Peon 0034 <gen> to Harvest Ashenvale Tree Wall 0051 <gen>
    Unit - Order Peon 0035 <gen> to Harvest Ashenvale Tree Wall 0043 <gen>
    -------- ---------- --------
    Wait 1.00 seconds
    Custom script: if cinSkip then
    Custom script: return
    Custom script: endif
    Cinematic - Fade out over 3.00 seconds using texture White Mask and color (0%, 0%, 0%) with 0% transparency
    Wait 4.00 seconds
    Custom script: if cinSkip then
    Custom script: return
    Custom script: endif
    Unit - Move Scout instantly to (Center of Scout_01 <gen>), facing 125.00 degrees
    Unit - Order Scout to Move To (Center of Scout_02 <gen>)
    Custom script: if cinSkip then
    Custom script: return
    Custom script: endif
    AI - Ignore Footman 0038 <gen>'s guard position
    AI - Ignore Grunt 0040 <gen>'s guard position
    Camera - Apply gg_cam_01_Intro_Cinematic_09 for Player 2 (Blue) over 0 seconds
    Camera - Apply gg_cam_01_Intro_Cinematic_09 for Player 3 (Teal) over 0 seconds
    Camera - Apply gg_cam_01_Intro_Cinematic_10 for Player 2 (Blue) over 30.00 seconds
    Camera - Apply gg_cam_01_Intro_Cinematic_10 for Player 3 (Teal) over 30.00 seconds
    Cinematic - Fade in over 1.00 seconds using texture White Mask and color (0%, 0%, 0%) with 0% transparency
    Wait 2.00 seconds
    Custom script: if cinSkip then
    Custom script: return
    Custom script: endif
    Animation - Play Paladin's Spell animation
    Cinematic - Send transmission to (All players) from Paladin named Duke Lionheart: Play N01Paladin05 <gen> and display Put your backs into it! Jaina and the orc warchief expect this base to be built swiftly!. Modify duration: Add 0 seconds and Wait
    Custom script: if cinSkip then
    Custom script: return
    Custom script: endif
    Wait for (Last played sound) to be 0 seconds from finished playing
    Custom script: if cinSkip then
    Custom script: return
    Custom script: endif
    Animation - Reset Paladin's animation
    Unit - Order Footman 0038 <gen> to Move To (Center of 01_Footman_A <gen>)
    Wait 1.00 seconds
    Custom script: if cinSkip then
    Custom script: return
    Custom script: endif
    Unit - Order Footman 0038 <gen> to Hold Position
    Animation - Play Footman 0038 <gen>'s Attack animation
    Cinematic - Send transmission to (All players) from Footman 0038 <gen> named Footman: Play N01Footman06 <gen> and display Bah! We shouldn't even be here! Or siding with the orcs.. Modify duration: Add 0 seconds and Don't wait
    Custom script: if cinSkip then
    Custom script: return
    Custom script: endif
    Unit - Make Paladin face Footman 0038 <gen> over 0.50 seconds
    Wait for (Last played sound) to be 1.00 seconds from finished playing
    Custom script: if cinSkip then
    Custom script: return
    Custom script: endif
    Animation - Reset Footman 0038 <gen>'s animation
    Animation - Lock Footman 0038 <gen>'s Head to face Grunt 0040 <gen>, offset by (0, 0, 90)
    Wait for (Last played sound) to be 1.00 seconds from finished playing
    Custom script: if cinSkip then
    Custom script: return
    Custom script: endif
    Animation - Lock Grunt 0040 <gen>'s Head to face Footman 0038 <gen>, offset by (0, 0, 90)
    Unit - Order Grunt 0040 <gen> to Move To (Center of 01_Grunt_A <gen>)
    Wait 1.00 seconds
    Custom script: if cinSkip then
    Custom script: return
    Custom script: endif
    Unit - Order Grunt 0040 <gen> to Hold Position
    Camera - Apply gg_cam_01_Intro_Cinematic_11 for Player 2 (Blue) over 0 seconds
    Camera - Apply gg_cam_01_Intro_Cinematic_11 for Player 3 (Teal) over 0 seconds
    Cinematic - Send transmission to (All players) from Grunt 0040 <gen> named Grunt: Play N01Grunt07 <gen> and display We're here to hunt the remaining demons, human. You're lucky our goals are the same.. Modify duration: Add 0 seconds and Wait
    Custom script: if cinSkip then
    Custom script: return
    Custom script: endif
    Unit - Order Grunt 0040 <gen> to Hold Position
    Unit - Order Paladin to Move To (Center of 01_Paladin_A <gen>)
    Camera - Apply gg_cam_01_Intro_Cinematic_12 for Player 2 (Blue) over 0 seconds
    Wait 0.50 seconds
    Custom script: if cinSkip then
    Custom script: return
    Custom script: endif
    Animation - Lock Footman 0038 <gen>'s Head to face Paladin, offset by (0, 0, 90)
    Animation - Lock Grunt 0040 <gen>'s Head to face Paladin, offset by (0, 0, 90)
    Cinematic - Send transmission to (All players) from Paladin named Duke Lionheart: Play N01Paladin08 <gen> and display All right, you men! Mind your business! Back to work! . Modify duration: Add 0 seconds and Wait
    Custom script: if cinSkip then
    Custom script: return
    Custom script: endif
    Wait for (Last played sound) to be 0 seconds from finished playing
    Custom script: if cinSkip then
    Custom script: return
    Custom script: endif
    Animation - Reset Footman 0038 <gen>'s body-part facing
    Unit - Order Footman 0038 <gen> to Stop
    Animation - Reset Grunt 0040 <gen>'s body-part facing
    Unit - Order Grunt 0040 <gen> to Stop
    Cinematic - Fade out over 1.00 seconds using texture White Mask and color (0%, 0%, 0%) with 0% transparency
    -------- ---------- --------
    Wait 1.00 seconds
    Custom script: if cinSkip then
    Custom script: return
    Custom script: endif
    Cinematic - Fade in over 1.00 seconds using texture White Mask and color (0%, 0%, 0%) with 0% transparency
    Camera - Apply gg_cam_01_Intro_Cinematic_13 for Player 2 (Blue) over 0 seconds
    Camera - Apply gg_cam_01_Intro_Cinematic_13 for Player 3 (Teal) over 0 seconds
    Camera - Apply gg_cam_01_Intro_Cinematic_14 for Player 2 (Blue) over 20.00 seconds
    Camera - Apply gg_cam_01_Intro_Cinematic_14 for Player 3 (Teal) over 20.00 seconds
    Cinematic - Send transmission to (All players) from Tyrande named Tyrande Whisperwind: Play N01Tyrande09 <gen> and display So, these orcs and humans presume to run rampant through our lands? They will regret ever stepping foot into Ashenvale. We will establish a base and deal with these outlanders as they deserve. . Modify duration: Add 0 seconds and Don't wait
    Wait 15.00 seconds
    Custom script: if cinSkip then
    Custom script: return
    Custom script: endif
    Wait for N01Tyrande09 <gen> to be 0 seconds from finished playing
    Custom script: if cinSkip then
    Custom script: return
    Custom script: endif
    -------- ---------- --------
    Unit - Remove Scout from the game
    -------- ---------- --------
    Unit - Order Shandris to Move To (Center of 01_Shandris_B <gen>)
    Unit - Order Tyrande to Move To (Center of 01_Tyrande_C <gen>)
    -------- ---------- --------
    Cinematic - Fade out over 5.00 seconds using texture White Mask and color (0%, 0%, 0%) with 0% transparency
    Wait 5.00 seconds
    Custom script: if cinSkip then
    Custom script: return
    Custom script: endif
    -------- ---------- --------
    Unit - Move Shandris instantly to (Center of 01_Shandris_B <gen>)
    Unit - Move Tyrande instantly to (Center of 01_Tyrande_C <gen>)
    -------- ---------- --------
    Cinematic - Fade out over 0.00 seconds using texture White Mask and color (0%, 0%, 0%) with 0% transparency
    Unit - Set Shandris movement speed to 270.00
    Unit - Order Shandris to Move To (Center of 01_Shandris_C <gen>)
    Unit - Order Tyrande to Move To (Center of 01_Tyrande_D <gen>)
    -------- ---------- --------
    Camera - Apply gg_cam_01_Intro_Cinematic_15 for Player 2 (Blue) over 0 seconds
    Camera - Apply gg_cam_01_Intro_Cinematic_15 for Player 3 (Teal) over 0 seconds
    Wait 1.00 seconds
    Custom script: if cinSkip then
    Custom script: return
    Custom script: endif
    -------- NO LONGER SKIPPABLE --------
    Set CancelIntro = False
    Cinematic - Turn cinematic mode Off for (All players)
    Unit - Set mana of Tyrande to 100%
    Camera - Apply gg_cam_01_Intro_Skipped for Player 2 (Blue) over 0.01 seconds
    Camera - Apply gg_cam_01_Intro_Skipped for Player 3 (Teal) over 0.01 seconds
    Camera - Reset camera for Player 2 (Blue) to standard game-view over 0.01 seconds
    Camera - Reset camera for Player 3 (Teal) to standard game-view over 0.01 seconds
    Unit - Set Shandris movement speed to (Default movement speed of Shandris)
    Cinematic - Fade in over 1.00 seconds using texture White Mask and color (0%, 0%, 0%) with 0% transparency
    -------- ---------- --------
    Trigger - Run Start_Mission_QUE <gen> (checking conditions)
    Trigger - Turn off Scout_Summoned <gen>
    Trigger - Run Harvest <gen> (checking conditions)
Scout Summoned
  Events
    Unit - A unit owned by Player 2 (Blue) Spawns a summoned unit
  Conditions
    CancelIntro Equal to False
  Actions
    Set Scout = (Summoned unit)
    Unit - Order Scout to Follow Paladin
Scout Summoned Move
  Events
    Unit - A unit enters Scout_02 <gen>
  Conditions
    (Entering unit) Equal to Scout
    CancelIntro Equal to False
  Actions
    Unit - Order Scout to Move To (Center of Scout_03 <gen>)
    Wait 4.00 seconds
    Unit - Order Scout to Move To (Center of Scout_04 <gen>)
Start Mission QUE
  Events
  Conditions
  Actions
    Selection - Select Priestess of the Moon 0004 <gen> for Player 2 (Blue)
    Selection - Select Ranger General 0002 <gen> for Player 3 (Teal)
    Game - Turn the day/night cycle On
    Environment - Set sky to None
    -------- --------- --------
    Player - Set Player 2 (Blue) Current gold to 100
    Player - Set Player 2 (Blue) Current lumber to 10
    Player - Set Player 3 (Teal) Current gold to 100
    Player - Set Player 3 (Teal) Current lumber to 10
    Trigger - Turn on Hero_Exp <gen>
    -------- ---------- --------
    Trigger - Add Start_Mission <gen> to the trigger queue (Checking conditions)
Start Mission
  Events
  Conditions
  Actions
    Trigger - Turn on Scout_QUE <gen>
    Trigger - Turn on Shadowmeld_QUE <gen>
    -------- - --------
    Trigger - Run Add_Orc_Units <gen> (checking conditions)
    Trigger - Run Patrol_Fliers <gen> (checking conditions)
    Trigger - Run Start_AI <gen> (checking conditions)
    Trigger - Run Harvest <gen> (checking conditions)
    -------- Move Paladin --------
    Unit - Order Paladin to Move To (Center of 02_Paladin_Patrol <gen>)
    -------- Main Quest --------
    Wait 1.00 seconds
    Trigger - Run Furbolg_Ensnared <gen> (checking conditions)
    Trigger - Run Create_the_Furbolg_hut <gen> (checking conditions)
    Quest - Display to (All players) the Quest Discovered message: |cffffcc00MAIN QUEST|rNight Elf Base - Entangle a gold mine - Construct a Moon Well - Construct an Ancient of War - Train 5 Archers
    Wait 10.00 seconds
    Sound - Setup all volume channels for speech
    Cinematic - Send transmission to (All players) from Tyrande named Tyrande Whisperwind: Play N01Tyrande23 <gen> and display The tree of life is the heart of our night elf villages. Use the tree's ability to entangle the gold mine. After entangling the mine, send wisps in to extract gold.. Modify duration: Add 0 seconds and Wait
    Sound - Reset all volume channels to 100%
    Cinematic - Flash a speech indicator for Tree of Life 0009 <gen> of color (100%, 100%, 100%) with 0% transparency
    -------- Hint Entangle Gold Mine --------
    Wait 5.00 seconds
    Quest - Display to (All players) the Simple Hint message: |cff32CD32HINT|r - The Tree of Life is used to entangle gold mines. Select the Tree of Life and then right-click on a mine.
    Wait Campaign hint delay seconds
    Trigger - Remove (This trigger) from the trigger queue
Start AI
  Events
  Conditions
  Actions
    AI - Start campaign AI script for Player 5 (Yellow): n01_yellow.ai (aiscript)
    AI - Start campaign AI script for Player 8 (Pink): n01_pink.ai (aiscript)
    AI - Start campaign AI script for Player 9 (Gray): n01_gray.ai (aiscript)
Hero Exp
  Events
    Unit - A unit owned by Player 2 (Blue) Gains a level
    Unit - A unit owned by Player 3 (Teal) Gains a level
  Conditions
  Actions
    Hero - Set (Triggering unit) Hero-level to 2, Hide level-up graphics
    Hero - Disable experience gain for (Triggering unit)
Tree of Life QUE
  Events
    Unit - A unit owned by Player 2 (Blue) Begins construction
    Unit - A unit owned by Player 3 (Teal) Begins construction
  Conditions
    GAMEOVER Equal to False
    (Unit-type of (Constructing structure)) Equal to Entangled Gold Mine
  Actions
    Trigger - Turn off (This trigger)
    Trigger - Add Tree_of_Life <gen> to the trigger queue (Checking conditions)
Tree of Life
  Events
  Conditions
    GAMEOVER Equal to False
  Actions
    Trigger - Turn off (This trigger)
    -------- ---------- --------
    Sound - Setup all volume channels for speech
    Cinematic - Send transmission to (All players) from Tyrande named Tyrande Whisperwind: Play N01Tyrande26 <gen> and display Wisps are friendly spirits that harvest gold and lumber for our villages. They also create the structures that allow us to train more warriors.. Modify duration: Add 0 seconds and Wait
    Sound - Reset all volume channels to 100%
    -------- ---------- --------
    Sound - Play WispWhat3 <gen>
    Cinematic - Flash a speech indicator for Wisp 0097 <gen> of color (100%, 100%, 100%) with 0% transparency
    Cinematic - Flash a speech indicator for Wisp 0099 <gen> of color (100%, 100%, 100%) with 0% transparency
    Cinematic - Flash a speech indicator for Wisp 0010 <gen> of color (100%, 100%, 100%) with 0% transparency
    Cinematic - Flash a speech indicator for Wisp 0102 <gen> of color (100%, 100%, 100%) with 0% transparency
    Cinematic - Flash a speech indicator for Wisp 0107 <gen> of color (100%, 100%, 100%) with 0% transparency
    Cinematic - Flash a speech indicator for Wisp 0110 <gen> of color (100%, 100%, 100%) with 0% transparency
    Wait Campaign hint delay seconds
    Quest - Display to (All players) the Simple Hint message: |cff32CD32HINT|r - Wisps can attach themselves to trees and return lumber resources without leaving or damaging the tree.
    Wait Campaign hint delay seconds
    Trigger - Remove (This trigger) from the trigger queue
Wisp Check
  Events
    Unit - A unit owned by Player 2 (Blue) Begins training a unit
    Unit - A unit owned by Player 3 (Teal) Begins training a unit
  Conditions
    GAMEOVER Equal to False
    (Trained unit-type) Equal to Wisp
  Actions
    Trigger - Turn off Wisp_QUE <gen>
    If (((Wisp <gen> is queued) Equal to True) and ((Wisp <gen> is on) Equal to True)) then do (Remove Wisp <gen> from the trigger queue) else do (Do nothing)
Wisp QUE
  Events
    Unit - A unit owned by Player 2 (Blue) Is issued an order targeting an object
    Unit - A unit owned by Player 3 (Teal) Is issued an order targeting an object
  Conditions
    GAMEOVER Equal to False
    ((Ordered unit) is in WispGroup) Equal to True
  Actions
    Trigger - Turn off (This trigger)
    Trigger - Add Wisp <gen> to the trigger queue (Checking conditions)
Wisp
  Events
  Conditions
    GAMEOVER Equal to False
  Actions
    Trigger - Turn off (This trigger)
    Quest - Display to (All players) the Simple Hint message: |cff32CD32HINT|r - You can build more Wisps from the Tree of Life.
    Cinematic - Flash a speech indicator for Tree of Life 0009 <gen> of color (100%, 100%, 100%) with 0% transparency
    Wait 0.30 seconds
    Cinematic - Flash a speech indicator for Tree of Life 0009 <gen> of color (100%, 100%, 100%) with 0% transparency
    Wait Campaign hint delay seconds
    Trigger - Remove (This trigger) from the trigger queue
Shadowmeld QUE
  Events
    Game - The in-game time of day becomes Greater than or equal to 18.50
  Conditions
    (Paladin is alive) Equal to True
    GAMEOVER Equal to False
  Actions
    Trigger - Turn off (This trigger)
    -------- ---------- --------
    Trigger - Add Shadowmeld <gen> to the trigger queue (Checking conditions)
Shadowmeld
  Events
  Conditions
    GAMEOVER Equal to False
  Actions
    Trigger - Turn off (This trigger)
    Quest - Display to (All players) the Simple Hint message: |cff32CD32HINT|r - At nighttime, many Night Elf units can Shadowmeld and hide automatically while stationary.
    Wait Campaign hint delay seconds
    Trigger - Remove (This trigger) from the trigger queue
Scout QUE
  Events
    Unit - A unit owned by Player 2 (Blue) Spawns a summoned unit
    Unit - A unit owned by Player 3 (Teal) Spawns a summoned unit
  Conditions
    GAMEOVER Equal to False
  Actions
    Trigger - Turn off (This trigger)
    Trigger - Add Scout <gen> to the trigger queue (Checking conditions)
Scout
  Events
  Conditions
    GAMEOVER Equal to False
  Actions
    Trigger - Turn off (This trigger)
    Quest - Display to (All players) the Simple Hint message: |cff32CD32HINT|r - The summoned scout can detect invisible units or be used to scout an enemy base.
    Wait Campaign hint delay seconds
    Trigger - Remove (This trigger) from the trigger queue
Ancient Eat Tree QUE
  Events
    Unit - A unit owned by Player 2 (Blue) Is attacked
    Unit - A unit owned by Player 3 (Teal) Is attacked
  Conditions
    GAMEOVER Equal to False
    ((Attacked unit) is An Ancient) Equal to True
  Actions
    Trigger - Turn off (This trigger)
    Trigger - Add Ancient_Eat_Tree <gen> to the trigger queue (Checking conditions)
Ancient Eat Tree
  Events
  Conditions
    GAMEOVER Equal to False
  Actions
    Trigger - Turn off (This trigger)
    Quest - Display to (All players) the Simple Hint message: |cff32CD32HINT|r - When uprooted, an Ancient can use the Eat Tree ability to regain health.
    Wait Campaign hint delay seconds
    Trigger - Remove (This trigger) from the trigger queue
Expansion QUE
  Events
    Unit - A unit owned by Player 2 (Blue) Dies
    Unit - A unit owned by Player 3 (Teal) Dies
  Conditions
    GAMEOVER Equal to False
    (Unit-type of (Dying unit)) Equal to Entangled Gold Mine
    Or - Any (Conditions) are true
      Conditions
        (Number of units in (Units owned by Player 2 (Blue) matching (((Unit-type of (Matching unit)) Equal to Entangled Gold Mine) and (((Matching unit) is alive) Equal to True)))) Equal to 0
        (Number of units in (Units owned by Player 3 (Teal) matching (((Unit-type of (Matching unit)) Equal to Entangled Gold Mine) and (((Matching unit) is alive) Equal to True)))) Equal to 0
  Actions
    Trigger - Turn off (This trigger)
    Trigger - Add Expansion <gen> to the trigger queue (Checking conditions)
Expansion
  Events
  Conditions
    GAMEOVER Equal to False
  Actions
    Trigger - Turn off (This trigger)
    Quest - Display to (All players) the Simple Hint message: |cff32CD32HINT|r - Construct a new Tree of Life near a gold mine to entangle, or uproot your Tree of Life to entangle the gold mine.
    Wait Campaign hint delay seconds
    Trigger - Remove (This trigger) from the trigger queue
Waterfalls ON Start
  Events
    Unit - A unit enters Waterfall_Vista <gen>
  Conditions
    Or - Any (Conditions) are true
      Conditions
        (Owner of (Entering unit)) Equal to Player 2 (Blue)
        (Owner of (Entering unit)) Equal to Player 3 (Teal)
    ((Entering unit) is A ground unit) Equal to True
  Actions
    Trigger - Turn off (This trigger)
    Environment - Create at Waterfall_Shine <gen> the weather effect Rays Of Light
    Set WaterfallShine = (Last created weather effect)
    Environment - Turn WaterfallShine On
    Visibility - Create an initially Enabled visibility modifier for Player 2 (Blue) emitting Visibility from (Center of Waterfall_01 <gen>) to a radius of 600.00
    Set Waterfall01P1 = (Last created visibility modifier)
    Visibility - Create an initially Enabled visibility modifier for Player 2 (Blue) emitting Visibility from (Center of Waterfall_02 <gen>) to a radius of 600.00
    Set Waterfall02P1 = (Last created visibility modifier)
    Visibility - Create an initially Enabled visibility modifier for Player 2 (Blue) emitting Visibility from (Center of Waterfall_03 <gen>) to a radius of 600.00
    Set Waterfall03P1 = (Last created visibility modifier)
Waterfalls ON After
  Events
    Unit - A unit enters Waterfall_Vista <gen>
  Conditions
    Or - Any (Conditions) are true
      Conditions
        (Owner of (Entering unit)) Equal to Player 2 (Blue)
        (Owner of (Entering unit)) Equal to Player 3 (Teal)
    ((Entering unit) is A ground unit) Equal to True
  Actions
    Trigger - Turn off (This trigger)
    Environment - Turn WaterfallShine On
    Visibility - Enable Waterfall01P1
    Visibility - Enable Waterfall02P1
    Visibility - Enable Waterfall03P1
Waterfalls OFF
  Events
    Unit - A unit owned by Player 2 (Blue) Dies
    Unit - A unit owned by Player 3 (Teal) Dies
    Unit - A unit leaves Waterfall_Vista <gen>
  Conditions
    Or - Any (Conditions) are true
      Conditions
        ((Owner of (Leaving unit)) Equal to Player 2 (Blue)) or ((Owner of (Dying unit)) Equal to Player 2 (Blue))
        ((Owner of (Leaving unit)) Equal to Player 3 (Teal)) or ((Owner of (Dying unit)) Equal to Player 3 (Teal))
    (Number of units in (Units in Waterfall_Vista <gen> matching (((Matching unit) is alive) Equal to True))) Less than or equal to 0
  Actions
    Trigger - Turn on Waterfalls_ON_After <gen>
    Visibility - Disable Waterfall01P1
    Visibility - Disable Waterfall02P1
    Visibility - Disable Waterfall03P1
    Environment - Turn WaterfallShine Off
Four Archers
  Events
    Unit - A unit comes within 256 of Archer 0005 <gen>
    Unit - A unit comes within 256 of Archer 0006 <gen>
    Unit - A unit comes within 256 of Archer 0007 <gen>
    Unit - A unit comes within 256 of Archer 0054 <gen>
  Conditions
    GAMEOVER Equal to False
    (Owner of (Triggering unit)) Not equal to Player 11 (Dark Green)
  Actions
    Trigger - Turn off (This trigger)
    Sound - Play ArcherReady1 <gen>
    Cinematic - Ping minimap for (All players) at (Center of 03_Rescue_Archers_01 <gen>) for 4.00 seconds
    Unit - Change ownership of Archer 0005 <gen> to Player 2 (Blue) and Change color
    Unit - Change ownership of Archer 0006 <gen> to Player 2 (Blue) and Change color
    Unit - Change ownership of Archer 0007 <gen> to Player 3 (Teal) and Change color
    Unit - Change ownership of Archer 0054 <gen> to Player 3 (Teal) and Change color
    Set BonusesFound = (BonusesFound + 1)
Create Leaderboard
  Events
  Conditions
    LeaderboardArcherActive Equal to False
    LeaderboardFurbolgActive Equal to False
  Actions
    Set LeaderboardCreated = True
    Leaderboard - Create a leaderboard for (All players) titled
    Set LeaderBoardCounter = (Last created leaderboard)
Destroy Leaderboard
  Events
  Conditions
    LeaderboardArcherActive Equal to False
    LeaderboardFurbolgActive Equal to False
  Actions
    Leaderboard - Destroy LeaderBoardCounter
Ancient of War Gold
  Events
    Time - Every 1.00 seconds of game time
  Conditions
    ((Player 2 (Blue) Current gold) + (Player 3 (Teal) Current gold)) Greater than or equal to 300
    GAMEOVER Equal to False
  Actions
    Trigger - Turn off (This trigger)
    Set AncientofWarResource = (AncientofWarResource + 1)
    -------- ---------- --------
    Trigger - Run Build_Ancient_of_War_QUEUE <gen> (checking conditions)
Ancient of War Lumber
  Events
    Time - Every 1.00 seconds of game time
  Conditions
    ((Player 2 (Blue) Current lumber) + (Player 3 (Teal) Current lumber)) Greater than or equal to 75
    GAMEOVER Equal to False
  Actions
    Trigger - Turn off (This trigger)
    Set AncientofWarResource = (AncientofWarResource + 1)
    -------- ---------- --------
    Trigger - Run Build_Ancient_of_War_QUEUE <gen> (checking conditions)
Build Ancient of War Check
  Events
    Unit - A unit owned by Player 2 (Blue) Begins construction
    Unit - A unit owned by Player 3 (Teal) Begins construction
  Conditions
    GAMEOVER Equal to False
    (Unit-type of (Constructing structure)) Equal to Ancient of War
  Actions
    Trigger - Turn off Build_Ancient_of_War_QUEUE <gen>
    If (((Build_Ancient_of_War <gen> is queued) Equal to True) and ((Build_Ancient_of_War <gen> is on) Equal to True)) then do (Remove Build_Ancient_of_War <gen> from the trigger queue) else do (Do nothing)
Build Ancient of War QUEUE
  Events
  Conditions
    GAMEOVER Equal to False
    AncientofWarResource Greater than or equal to 2
  Actions
    Trigger - Turn off (This trigger)
    Trigger - Add Build_Ancient_of_War <gen> to the trigger queue (Checking conditions)
Build Ancient of War
  Events
  Conditions
    GAMEOVER Equal to False
  Actions
    Trigger - Turn off (This trigger)
    Sound - Setup all volume channels for speech
    Cinematic - Send transmission to (All players) from Tyrande named Tyrande Whisperwind: Play N01Tyrande25 <gen> and display To train more troops, construct an ancient of war.. Modify duration: Add 0 seconds and Wait
    Sound - Reset all volume channels to 100%
    Wait 2.00 seconds
    Trigger - Remove (This trigger) from the trigger queue
Begin Building Ancient Of War QUEUE
  Events
    Unit - A unit owned by Player 2 (Blue) Begins construction
    Unit - A unit owned by Player 3 (Teal) Begins construction
  Conditions
    GAMEOVER Equal to False
    (Unit-type of (Constructing structure)) Equal to Ancient of War
  Actions
    Trigger - Turn off (This trigger)
    Trigger - Add Begin_Building_Ancient_Of_War <gen> to the trigger queue (Checking conditions)
Begin Building Ancient Of War
  Events
  Conditions
    GAMEOVER Equal to False
  Actions
    Trigger - Turn off (This trigger)
    Quest - Display to (All players) the Simple Hint message: |cff32CD32HINT|r - The Wisp is a Night Elf spirit that is consumed when constructing an Ancient.
    Wait Campaign hint delay seconds
    Trigger - Remove (This trigger) from the trigger queue
Entangle Gold Mine QUEUE
  Events
    Unit - A unit owned by Player 2 (Blue) Finishes construction
    Unit - A unit owned by Player 3 (Teal) Finishes construction
  Conditions
    GAMEOVER Equal to False
    (Unit-type of (Constructed structure)) Equal to Entangled Gold Mine
  Actions
    Trigger - Turn off (This trigger)
    Trigger - Add Entangle_Gold_Mine <gen> to the trigger queue (Checking conditions)
Entangle Gold Mine
  Events
  Conditions
    GAMEOVER Equal to False
  Actions
    Trigger - Turn off (This trigger)
    Quest - Mark EntangleReq as Completed
    Quest - Display to (All players) the Quest Update message: |cffffcc00MAIN QUEST UPDATE|r Night Elf Base - |cff808080Entangle a gold mine (Completed)|r - Construct a Moon Well - Construct an Ancient of War - Train 5 Archers
    Wait Campaign quest delay seconds
    Quest - Display to (All players) the Simple Hint message: |cff32CD32HINT|r - Place Wisps in the Entangled Gold Mine to begin harvesting.
    Wait Campaign hint delay seconds
    Trigger - Remove (This trigger) from the trigger queue
Ancient of War QUEUE
  Events
    Unit - A unit owned by Player 2 (Blue) Finishes construction
    Unit - A unit owned by Player 3 (Teal) Finishes construction
  Conditions
    GAMEOVER Equal to False
    (Unit-type of (Constructed structure)) Equal to Ancient of War
  Actions
    Trigger - Turn off (This trigger)
    -------- ---------- --------
    Trigger - Add Ancient_of_War <gen> to the trigger queue (Checking conditions)
Ancient of War
  Events
  Conditions
    GAMEOVER Equal to False
  Actions
    Trigger - Turn off (This trigger)
    Set AncientofWarCompleted = True
    Quest - Mark AncientOfWarReq as Completed
    -------- ---------- --------
    If ((MoonwellCompleted Equal to False) and (TrainArchersCompleted Equal to False)) then do (Display to (All players) the Quest Update message: |cffffcc00MAIN QUEST UPDATE|r Night Elf Base - |cff808080Entangle a gold mine (Completed)|r - Construct a Moon Well - |cff808080Construct an Ancient of War (Completed)|r - Train 5 Archers) else do (Do nothing)
    If ((MoonwellCompleted Equal to True) and (TrainArchersCompleted Equal to False)) then do (Display to (All players) the Quest Update message: |cffffcc00MAIN QUEST UPDATE|r Night Elf Base - |cff808080Entangle a gold mine (Completed)|r - |cff808080Construct a Moon Well (Completed)|r - |cff808080Construct an Ancient of War (Completed)|r - Train 5 Archers) else do (Do nothing)
    Trigger - Run All_3_completed <gen> (checking conditions)
    -------- ---------- --------
    Trigger - Run Create_Leaderboard <gen> (checking conditions)
    -------- - --------
    Leaderboard - Add Player 2 (Blue) to LeaderBoardCounter with label and value 0
    Leaderboard - Change the display style for LeaderBoardCounter to Hide the title, Show labels, Hide values, and Hide icons
    Leaderboard - Change the color of the value for Player 2 (Blue) in LeaderBoardCounter to (100%, 100%, 100%) with 0% transparency
    Leaderboard - Change the color of the label for Player 2 (Blue) in LeaderBoardCounter to (100%, 80.00%, 0.00%) with 0% transparency
    Leaderboard - Change the label for Player 2 (Blue) in LeaderBoardCounter to Archers Trained |cffffffff0/5|r
    Set LeaderboardArcherActive = True
    -------- ---------- --------
    Wait Campaign quest delay seconds
    Trigger - Remove (This trigger) from the trigger queue
Build a Moonwell QUEUE
  Events
    Time - Every 1.00 seconds of game time
  Conditions
    ((Player 2 (Blue) Current gold) + (Player 3 (Teal) Current gold)) Greater than or equal to 150
    GAMEOVER Equal to False
  Actions
    Trigger - Turn off (This trigger)
    Trigger - Add Build_a_Moonwell <gen> to the trigger queue (Checking conditions)
Build a Moonwell
  Events
  Conditions
    GAMEOVER Equal to False
  Actions
    Trigger - Turn off (This trigger)
    Sound - Setup all volume channels for speech
    Cinematic - Send transmission to (All players) from Tyrande named Tyrande Whisperwind: Play N01Tyrande24 <gen> and display The moon wells are the source of our nourishment and strength. You can build additional moon wells to nourish more troops.. Modify duration: Add 0 seconds and Wait
    Sound - Reset all volume channels to 100%
    Wait 2.00 seconds
    Trigger - Remove (This trigger) from the trigger queue
Moonwell completed before an Ancient of War has finished construction
Moon Well QUEUE
  Events
    Unit - A unit owned by Player 2 (Blue) Finishes construction
    Unit - A unit owned by Player 3 (Teal) Finishes construction
  Conditions
    GAMEOVER Equal to False
    (Unit-type of (Constructed structure)) Equal to Moon Well
  Actions
    Trigger - Turn off (This trigger)
    -------- ---------- --------
    Trigger - Add Moon_Well <gen> to the trigger queue (Checking conditions)
Moonwell completed before an Ancient of War has finished construction
Moon Well
  Events
  Conditions
    GAMEOVER Equal to False
  Actions
    Trigger - Turn off (This trigger)
    Set MoonwellCompleted = True
    Quest - Mark MoonwellReq as Completed
    -------- ---------- --------
    If ((AncientofWarCompleted Equal to False) and (TrainArchersCompleted Equal to False)) then do (Display to (All players) the Quest Update message: |cffffcc00MAIN QUEST UPDATE|r Night Elf Base - |cff808080Entangle a gold mine (Completed)|r - |cff808080Construct a Moon Well (Completed)|r - Construct an Ancient of War - Train 5 Archers) else do (Do nothing)
    If ((AncientofWarCompleted Equal to True) and (TrainArchersCompleted Equal to False)) then do (Display to (All players) the Quest Update message: |cffffcc00MAIN QUEST UPDATE|r Night Elf Base - |cff808080Entangle a gold mine (Completed)|r - |cff808080Construct a Moon Well (Completed)|r - |cff808080Construct an Ancient of War (Completed)|r - Train 5 Archers) else do (Do nothing)
    -------- ---------- --------
    Wait Campaign quest delay seconds
    Quest - Display to (All players) the Simple Hint message: |cff32CD32HINT|r - Moon Wells can be used to replenish the life energies and mana of any friendly units that drink from their tranquil waters.
    -------- ---------- --------
    Wait Campaign hint delay seconds
    Trigger - Run All_3_completed <gen> (checking conditions)
    Trigger - Remove (This trigger) from the trigger queue
Archer Trained QUEUE
  Events
    Unit - A unit owned by Player 2 (Blue) Finishes training a unit
    Unit - A unit owned by Player 3 (Teal) Finishes training a unit
  Conditions
    GAMEOVER Equal to False
    (Trained unit-type) Equal to Archer
  Actions
    Set TrainArchers = (TrainArchers + 1)
    -------- ---------- --------
    If (TrainArchers Equal to 1) then do (Change the label for Player 2 (Blue) in LeaderBoardCounter to Archers Trained |cffffffff1/5|r) else do (Do nothing)
    If (TrainArchers Equal to 2) then do (Change the label for Player 2 (Blue) in LeaderBoardCounter to Archers Trained |cffffffff2/5|r) else do (Do nothing)
    If (TrainArchers Equal to 3) then do (Change the label for Player 2 (Blue) in LeaderBoardCounter to Archers Trained |cffffffff3/5|r) else do (Do nothing)
    If (TrainArchers Equal to 4) then do (Change the label for Player 2 (Blue) in LeaderBoardCounter to Archers Trained |cffffffff4/5|r) else do (Do nothing)
    If (TrainArchers Equal to 5) then do (Change the label for Player 2 (Blue) in LeaderBoardCounter to Archers Trained |cffffffff5/5|r) else do (Do nothing)
    -------- ---------- --------
    If (TrainArchers Equal to 5) then do (Add Archer_Trained <gen> to the trigger queue (Checking conditions)) else do (Do nothing)
Archer Trained
  Events
  Conditions
    GAMEOVER Equal to False
  Actions
    Trigger - Turn off (This trigger)
    Set TrainArchersCompleted = True
    Quest - Mark TrainArchersReq as Completed
    -------- ---------- --------
    If (MoonwellCompleted Equal to False) then do (Display to (All players) the Quest Update message: |cffffcc00MAIN QUEST UPDATE|r Night Elf Base - |cff808080Entangle a gold mine (Completed)|r - Construct a Moon Well - |cff808080Construct an Ancient of War (Completed)|r - |cff808080Train 5 Archers (Completed)|r) else do (Do nothing)
    If (MoonwellCompleted Equal to False) then do (Wait Campaign quest delay seconds) else do (Do nothing)
    -------- ---------- --------
    Trigger - Run All_3_completed <gen> (checking conditions)
    Trigger - Remove (This trigger) from the trigger queue
All 3 completed
  Events
  Conditions
    GAMEOVER Equal to False
    AncientofWarCompleted Equal to True
    MoonwellCompleted Equal to True
    TrainArchersCompleted Equal to True
  Actions
    Trigger - Turn off (This trigger)
    Set LeaderboardArcherActive = False
    Leaderboard - Remove Player 2 (Blue) from LeaderBoardCounter
    Trigger - Run Destroy_Leaderboard <gen> (checking conditions)
    -------- ---------- --------
    Quest - Mark NightElfBaseQuest as Completed
    Quest - Display to (All players) the Quest Completed message: |cffffcc00MAIN QUEST COMPLETED|r Night Elf Base
    Wait Campaign quest delay seconds
    Trigger - Add Night_Elf_Base_Completed <gen> to the trigger queue (Checking conditions)
Night Elf Base Completed
  Events
  Conditions
    GAMEOVER Equal to False
  Actions
    Quest - Mark InvadersQuest as Discovered
    Quest - Display to (All players) the Quest Discovered message: |cffffcc00MAIN QUEST|rInvaders - Slay the Paladin
    -------- ---------- --------
    AI - Send Player 1 (Red) the AI Command (0, 0)
    AI - Send Player 10 (Light Blue) the AI Command (0, 0)
    -------- ---------- --------
    Wait Campaign quest delay seconds
    Trigger - Remove (This trigger) from the trigger queue
Crate 01
  Events
    Destructible - Crates 2254 <gen> dies
  Conditions
  Actions
    Item - Create Ring of Protection +1 at (Position of Crates 2254 <gen>)
No Hero Present QUEUE
  Events
    Unit - A unit enters 03_Furbolg_Village_A <gen>
    Unit - A unit enters 03_Furbolg_Village_B <gen>
  Conditions
    GAMEOVER Equal to False
    (Paladin is alive) Equal to True
    ((Entering unit) is A ground unit) Equal to True
    Or - Any (Conditions) are true
      Conditions
        (Owner of (Entering unit)) Equal to Player 2 (Blue)
        (Owner of (Entering unit)) Equal to Player 3 (Teal)
    ((Unit-type of (Entering unit)) Not equal to (Unit-type of Tyrande)) and ((Distance between (Position of Furbolg Elder Shaman 0074 <gen>) and (Position of Tyrande)) Greater than or equal to 2000.00)
  Actions
    Trigger - Turn off (This trigger)
    Trigger - Add No_Hero_Present <gen> to the trigger queue (Checking conditions)
No Hero Present
  Events
  Conditions
    GAMEOVER Equal to False
  Actions
    Quest - Display to (All players) the Hint message: |cff32CD32HINT|r - The Elder Furbolg wishes to speak with Tyrande.
    Cinematic - Ping minimap for (All players) at (Center of 03_Furbolg_Wander_05 <gen>) for 4.00 seconds
    Wait Campaign hint delay seconds
    Trigger - Remove (This trigger) from the trigger queue
Furbolg Quest Hero Present QUEUE
  Events
    Unit - A unit comes within 700.00 of Furbolg Elder Shaman 0074 <gen>
  Conditions
    GAMEOVER Equal to False
    (Paladin is alive) Equal to True
    Or - Any (Conditions) are true
      Conditions
        (Triggering unit) Equal to Tyrande
        (Triggering unit) Equal to Shandris
  Actions
    Trigger - Turn off (This trigger)
    Trigger - Turn on Furbolg_Quest_Hero_Present <gen>
    Trigger - Add Furbolg_Quest_Hero_Present <gen> to the trigger queue (Checking conditions)
Furbolg Quest Hero Present
  Events
  Conditions
    (Tyrande is alive) Equal to True
    GAMEOVER Equal to False
  Actions
    Trigger - Turn off (This trigger)
    Trigger - Turn off No_Hero_Present_QUEUE <gen>
    Trigger - Turn off Wandering_Furbolg_05_Shaman <gen>
    -------- Side Quest --------
    Set SideQuestActivated = True
    -------- Grant Vision --------
    Unit - Grant shared vision of Furbolg Tracker 0077 <gen> to Player 2 (Blue)
    Unit - Grant shared vision of Furbolg 0079 <gen> to Player 2 (Blue)
    Unit - Grant shared vision of Furbolg Elder Shaman 0074 <gen> to Player 2 (Blue)
    Unit - Grant shared vision of Furbolg Champion 0076 <gen> to Player 2 (Blue)
    Unit - Grant shared vision of Furbolg 0078 <gen> to Player 2 (Blue)
    Unit - Grant shared vision of Furbolg 0080 <gen> to Player 2 (Blue)
    Unit - Grant shared vision of Furbolg Tracker 0075 <gen> to Player 2 (Blue)
    Unit - Grant shared vision of Furbolg Tracker 0094 <gen> to Player 2 (Blue)
    Unit - Grant shared vision of Furbolg Tracker 0077 <gen> to Player 3 (Teal)
    Unit - Grant shared vision of Furbolg 0079 <gen> to Player 3 (Teal)
    Unit - Grant shared vision of Furbolg Elder Shaman 0074 <gen> to Player 3 (Teal)
    Unit - Grant shared vision of Furbolg Champion 0076 <gen> to Player 3 (Teal)
    Unit - Grant shared vision of Furbolg 0078 <gen> to Player 3 (Teal)
    Unit - Grant shared vision of Furbolg 0080 <gen> to Player 3 (Teal)
    Unit - Grant shared vision of Furbolg Tracker 0075 <gen> to Player 3 (Teal)
    Unit - Grant shared vision of Furbolg Tracker 0094 <gen> to Player 3 (Teal)
    -------- ---------- --------
    Unit - Order Furbolg Elder Shaman 0074 <gen> to Move To (Position of Tyrande)
    Wait 0.40 seconds
    Unit - Order Furbolg Elder Shaman 0074 <gen> to Stop
    Special Effect - Destroy FurbolgTalk
    -------- ---------- --------
    Visibility - Disable FurbogVis
    -------- Create the Missing Furbolg --------
    Unit - Create 1 Furbolg for Player 12 (Brown) at (Center of Furbolg_01_A <gen>) facing 315.00 degrees
    Set Furbolg01 = (Last created unit)
    Unit Group - Add Furbolg01 to FurbolgGroup
    -------- - --------
    Unit - Create 1 Furbolg for Player 12 (Brown) at (Center of Furbolg_01_B <gen>) facing 225.00 degrees
    Set Furbolg02 = (Last created unit)
    Unit Group - Add Furbolg02 to FurbolgGroup
    -------- - --------
    Unit - Create 1 Furbolg Tracker for Player 12 (Brown) at (Center of Furbolg_03_A <gen>) facing 315.00 degrees
    Set Furbolg06 = (Last created unit)
    Unit Group - Add Furbolg06 to FurbolgGroup
    -------- - --------
    Unit - Create 1 Furbolg Shaman for Player 12 (Brown) at (Center of Furbolg_04_A <gen>) facing 170.00 degrees
    Set Furbolg07 = (Last created unit)
    Unit Group - Add Furbolg07 to FurbolgGroup
    -------- - --------
    Unit - Create 1 Furbolg Tracker for Player 12 (Brown) at (Center of Furbolg_04_A <gen>) facing 170.00 degrees
    Set Furbolg08 = (Last created unit)
    Unit Group - Add Furbolg08 to FurbolgGroup
    -------- - --------
    Unit - Create 1 Furbolg Shaman for Player 12 (Brown) at (Center of Furbolg_05_A <gen>) facing 225.00 degrees
    Set Furbolg09 = (Last created unit)
    Unit Group - Add Furbolg09 to FurbolgGroup
    -------- - --------
    Unit - Create 1 Furbolg Tracker for Player 12 (Brown) at (Center of Furbolg_05_B <gen>) facing 310.00 degrees
    Set Furbolg10 = (Last created unit)
    Unit Group - Add Furbolg10 to FurbolgGroup
    -------- - --------
    Unit - Create 1 Furbolg Tracker for Player 12 (Brown) at (Center of Furbolg_06_A <gen>) facing 280.00 degrees
    Set Furbolg11 = (Last created unit)
    Unit Group - Add Furbolg11 to FurbolgGroup
    -------- - --------
    Unit - Create 1 Furbolg for Player 12 (Brown) at (Center of Furbolg_06_B <gen>) facing 310.00 degrees
    Set Furbolg12 = (Last created unit)
    Unit Group - Add Furbolg12 to FurbolgGroup
    -------- Turn on Discover Furbolg Triggers --------
    Trigger - Turn on Furbolg_Found_01_QUEUE <gen>
    Trigger - Turn on Furbolg_Found_03_QUEUE <gen>
    Trigger - Turn on Furbolg_Found_04_QUEUE <gen>
    Trigger - Turn on Furbolg_Found_05_A_QUEUE <gen>
    Trigger - Turn on Furbolg_Found_05_B_QUEUE <gen>
    Trigger - Turn on Furbolg_Found_06_QUE <gen>
    -------- ---------- --------
    Sound - Setup all volume channels for speech
    If ((Furbolg Elder Shaman 0074 <gen> is alive) Equal to True) then do (Send transmission to (All players) from Furbolg Elder Shaman 0074 <gen> named Furbolg Shaman: Play N01FurbolgS17 <gen> and display We are preparing to leave this place, Priestess. There is a terrible evil corrupting these lands, and I will not allow it to consume my people. Unfortunately, we cannot leave until the rest of our tribe has been accounted for.. Modify duration: Add 0 seconds and Wait) else do (Do nothing)
    If (((Tyrande is alive) Equal to True) and ((Furbolg Elder Shaman 0074 <gen> is alive) Equal to True)) then do (Send transmission to (All players) from Tyrande named Tyrande: Play N01Tyrande18 <gen> and display Do not fear, old one. I will find your tribesmen and lead them back to you. . Modify duration: Add 0 seconds and Wait) else do (Do nothing)
    If (((Tyrande is alive) Equal to True) and ((Furbolg Elder Shaman 0074 <gen> is alive) Equal to True)) then do (Send transmission to (All players) from Furbolg Elder Shaman 0074 <gen> named Furbolg Shaman: Play N01FurbolgS19 <gen> and display Thank you, Priestess. We will reward you when you return.. Modify duration: Add 0 seconds and Wait) else do (Do nothing)
    Sound - Reset all volume channels to 100%
    -------- ---------- --------
    Trigger - Turn on Wandering_Furbolg_05_Shaman <gen>
    -------- ---------- --------
    Trigger - Run Create_Leaderboard <gen> (checking conditions)
    -------- - --------
    Leaderboard - Add Player 12 (Brown) to LeaderBoardCounter with label and value 0
    Leaderboard - Change the display style for LeaderBoardCounter to Hide the title, Show labels, Hide values, and Hide icons
    Leaderboard - Change the color of the value for Player 12 (Brown) in LeaderBoardCounter to (100%, 100%, 100%) with 0% transparency
    Leaderboard - Change the color of the label for Player 12 (Brown) in LeaderBoardCounter to (100.00%, 80.00%, 0.00%) with 0% transparency
    Leaderboard - Change the label for Player 12 (Brown) in LeaderBoardCounter to Furbolgs Located |cffffffff0/10|r
    Set LeaderboardFurbolgActive = True
    -------- ---------- --------
    Quest - Mark Furbolg as Discovered
    -------- ---------- --------
    Quest - Display to (All players) the Quest Update message: |cffffcc00OPTIONAL QUEST|r Furbolg Village - Locate 10 Missing Furbolgs
    Wait Campaign quest delay seconds
    Trigger - Remove (This trigger) from the trigger queue
Furbolg Quest Completed QUEUE
  Events
    Time - Every 1.00 seconds of game time
  Conditions
    GAMEOVER Equal to False
    FurbolgFound Greater than or equal to 10
    (Furbolg_Return_Home_01 <gen> contains Tyrande) Equal to True
  Actions
    Trigger - Turn off (This trigger)
    Trigger - Add Furbolg_Quest_Completed <gen> to the trigger queue (Checking conditions)
Furbolg Quest Completed
  Events
  Conditions
    GAMEOVER Equal to False
  Actions
    -------- Furbolg No longer Wander --------
    Trigger - Turn off (This trigger)
    Trigger - Turn off Wandering_Furbolg_01 <gen>
    Trigger - Turn off Wandering_Furbolg_02 <gen>
    Trigger - Turn off Wandering_Furbolg_03_A <gen>
    Trigger - Turn off Wandering_Furbolg_03_B <gen>
    Trigger - Turn off Wandering_Furbolg_04 <gen>
    Trigger - Turn off Wandering_Furbolg_05_Shaman <gen>
    Trigger - Turn off Wandering_Furbolg_06_Champion <gen>
    Set LeaderboardFurbolgActive = False
    Leaderboard - Remove Player 12 (Brown) from LeaderBoardCounter
    Trigger - Run Destroy_Leaderboard <gen> (checking conditions)
    Special Effect - Destroy FurbolgTalk
    -------- ---------- --------
    Unit - Order Furbolg Elder Shaman 0074 <gen> to Move To (Position of Tyrande)
    Wait 0.20 seconds
    Unit - Order Furbolg Elder Shaman 0074 <gen> to Stop
    -------- ---------- --------
    Sound - Setup all volume channels for speech
    Cinematic - Send transmission to (All players) from Furbolg Elder Shaman 0074 <gen> named Furbolg Shaman: Play N01FurbolgS21 <gen> and display Many thanks, Priestess! Now we can evacuate the village. Please accept the aid of our champion. He will protect your life with his own.. Modify duration: Add 0 seconds and Wait
    Cinematic - Send transmission to (All players) from Tyrande named Tyrande Whisperwind: Play N01Tyrande22 <gen> and display Your offer is a generous one. May Elune light your path to safety.. Modify duration: Add 0 seconds and Wait
    Sound - Reset all volume channels to 100%
    -------- ---------- --------
    Wait Campaign hint delay seconds
    Quest - Display to (All players) the New Unit Acquired message: |cff87CEEBNEW UNIT ACQUIRED|r Furbolg - Medium melee unit that can attack ground units.Furbolg Champion - Heavy melee unit that can attack ground units.
    -------- New Units --------
    Unit - Change ownership of Furbolg Champion 0076 <gen> to Player 2 (Blue) and Change color
    Unit - Change ownership of Furbolg 0078 <gen> to Player 2 (Blue) and Change color
    Unit - Change ownership of Furbolg Tracker 0094 <gen> to Player 3 (Teal) and Change color
    Unit - Change ownership of Furbolg 0080 <gen> to Player 3 (Teal) and Change color
    Cinematic - Flash a speech indicator for Furbolg Champion 0076 <gen> of color (100%, 100%, 100%) with 0% transparency
    Cinematic - Flash a speech indicator for Furbolg 0078 <gen> of color (100%, 100%, 100%) with 0% transparency
    Cinematic - Flash a speech indicator for Furbolg Tracker 0094 <gen> of color (100%, 100%, 100%) with 0% transparency
    Cinematic - Flash a speech indicator for Furbolg 0080 <gen> of color (100%, 100%, 100%) with 0% transparency
    -------- - --------
    Unit - Order Furbolg Champion 0076 <gen> to Move To (Position of Tyrande)
    Unit - Order Furbolg 0078 <gen> to Move To (Position of Tyrande)
    Unit - Order Furbolg Tracker 0094 <gen> to Move To (Position of Tyrande)
    Unit - Order Furbolg 0080 <gen> to Move To (Position of Tyrande)
    Wait 0.50 seconds
    Unit - Order Furbolg Champion 0076 <gen> to Stop
    Unit - Order Furbolg 0078 <gen> to Stop
    Unit - Order Furbolg 0080 <gen> to Stop
    Unit - Order Furbolg Tracker 0094 <gen> to Stop
    Wait Campaign quest delay seconds
    -------- Add Furbolg to Furbolg Group --------
    Unit Group - Add Furbolg 0079 <gen> to FurbolgContinueMove
    Unit Group - Add Furbolg Tracker 0075 <gen> to FurbolgContinueMove
    Unit Group - Add Furbolg Tracker 0077 <gen> to FurbolgContinueMove
    Unit Group - Add Furbolg Elder Shaman 0074 <gen> to FurbolgContinueMove
    -------- - --------
    Unit - Order Furbolg 0079 <gen> to Move To (Center of Furbolg_Return_Home_02 <gen>)
    Unit - Order Furbolg Tracker 0075 <gen> to Move To (Center of Furbolg_Return_Home_02 <gen>)
    Unit - Order Furbolg Tracker 0077 <gen> to Move To (Center of Furbolg_Return_Home_02 <gen>)
    Unit - Order Furbolg Elder Shaman 0074 <gen> to Move To (Center of Furbolg_Return_Home_02 <gen>)
    Trigger - Run Keep_Moving_Furbolg <gen> (ignoring conditions)
    -------- Quest Completed --------
    Set SubquestsComplete = 1
    Quest - Mark Furbolg as Completed
    Quest - Mark FurbolgReq as Completed
    If (BooleanQuestReqTyrandeRetAdded Equal to True) then do (Mark FurbolgReq02 as Completed) else do (Do nothing)
    Quest - Display to (All players) the Quest Completed message: |cffffcc00OPTIONAL QUEST COMPLETED|rFurbolg Village
    Wait Campaign quest delay seconds
    Trigger - Remove (This trigger) from the trigger queue
Furbolg Leader Board
  Events
  Conditions
    FurbolgFound Less than or equal to 10
  Actions
    Set FurbolgFound = (FurbolgFound + 1)
    If (FurbolgFound Equal to 1) then do (Change the label for Player 12 (Brown) in LeaderBoardCounter to Furbolgs Located |cffffffff1/10|r) else do (Do nothing)
    If (FurbolgFound Equal to 2) then do (Change the label for Player 12 (Brown) in LeaderBoardCounter to Furbolgs Located |cffffffff2/10|r) else do (Do nothing)
    If (FurbolgFound Equal to 3) then do (Change the label for Player 12 (Brown) in LeaderBoardCounter to Furbolgs Located |cffffffff3/10|r) else do (Do nothing)
    If (FurbolgFound Equal to 4) then do (Change the label for Player 12 (Brown) in LeaderBoardCounter to Furbolgs Located |cffffffff4/10|r) else do (Do nothing)
    If (FurbolgFound Equal to 5) then do (Change the label for Player 12 (Brown) in LeaderBoardCounter to Furbolgs Located |cffffffff5/10|r) else do (Do nothing)
    If (FurbolgFound Equal to 6) then do (Change the label for Player 12 (Brown) in LeaderBoardCounter to Furbolgs Located |cffffffff6/10|r) else do (Do nothing)
    If (FurbolgFound Equal to 7) then do (Change the label for Player 12 (Brown) in LeaderBoardCounter to Furbolgs Located |cffffffff7/10|r) else do (Do nothing)
    If (FurbolgFound Equal to 8) then do (Change the label for Player 12 (Brown) in LeaderBoardCounter to Furbolgs Located |cffffffff8/10|r) else do (Do nothing)
    If (FurbolgFound Equal to 9) then do (Change the label for Player 12 (Brown) in LeaderBoardCounter to Furbolgs Located |cffffffff9/10|r) else do (Do nothing)
    If (FurbolgFound Equal to 10) then do (Change the label for Player 12 (Brown) in LeaderBoardCounter to Furbolgs Located |cffffffff10/10|r) else do (Do nothing)
    -------- ---------- --------
    Trigger - Run TEN_Furbolg_Found <gen> (checking conditions)
TEN Furbolg Found
  Events
  Conditions
    GAMEOVER Equal to False
    FurbolgFound Equal to 10
  Actions
    Special Effect - Create a special effect attached to the overhead of Furbolg Elder Shaman 0074 <gen> using Abilities\Spells\Other\TalkToMe\TalkToMe.mdl
    Set FurbolgTalk = (Last created special effect)
    -------- ---------- --------
    If ((Furbolg_Return_Home_01 <gen> contains Tyrande) Equal to False) then do (Add Quest_Reward <gen> to the trigger queue (Checking conditions)) else do (Do nothing)
Quest Reward
  Events
  Conditions
    GAMEOVER Equal to False
  Actions
    Trigger - Turn off (This trigger)
    Quest - Create a quest requirement for Furbolg with the description Return Tyrande to the Furbolg Shaman
    Set FurbolgReq02 = (Last created quest requirement)
    Set BooleanQuestReqTyrandeRetAdded = True
    Quest - Display to (All players) the Quest Update message: |cffffcc00OPTIONAL QUEST UPDATE|r Furbolg Village - |cff808080Locate 10 Missing Furbolgs (Completed)|r - Return Tyrande to the Furbolg Shaman
    Quest - Mark FurbolgReq as Completed
    Wait Campaign hint delay seconds
    Trigger - Remove (This trigger) from the trigger queue
Furbolg Returns Home
  Events
    Unit - A unit enters Furbolg_Return_Home_01 <gen>
  Conditions
    ((Entering unit) is in FurbolgGroup) Equal to True
  Actions
    Unit Group - Add (Entering unit) to FurbolgContinueMove
    Trigger - Turn on Keep_Moving_Furbolg <gen>
Keep Moving Furbolg
  Events
    Time - Every 6.00 seconds of game time
  Conditions
  Actions
    Unit Group - Order FurbolgContinueMove to Move To (Center of Furbolg_Return_Home_02 <gen>)
Furbog Ready for Removal
  Events
    Unit - A unit enters Furbolg_Return_Home_02 <gen>
  Conditions
    ((Entering unit) is in FurbolgContinueMove) Equal to True
  Actions
    Unit Group - Remove (Entering unit) from FurbolgContinueMove
    Unit - Turn collision for (Entering unit) Off
    Unit - Order (Entering unit) to Move To (Center of 03_Furbolg_Remove <gen>)
Furbolg Leaves the Map
  Events
    Unit - A unit enters 03_Furbolg_Remove <gen>
  Conditions
  Actions
    Unit - Remove (Entering unit) from the game
Shaman Dead
  Events
    Unit - A unit owned by Player 12 (Brown) Dies
  Conditions
    (Dying unit) Equal to Furbolg Elder Shaman 0074 <gen>
  Actions
    Sound - Stop N01FurbolgS17 <gen> Immediately
    Sound - Stop N01FurbolgS19 <gen> Immediately
    Sound - Stop N01FurbolgS21 <gen> Immediately
Tyrande Dead
  Events
    Unit - A unit owned by Player 2 (Blue) Dies
  Conditions
    (Dying unit) Equal to Tyrande
  Actions
    Sound - Stop N01Tyrande02 <gen> Immediately
    Sound - Stop N01Tyrande04 <gen> Immediately
    Sound - Stop N01Tyrande09 <gen> Immediately
    Sound - Stop N01Tyrande12 <gen> Immediately
    Sound - Stop N01Tyrande13 <gen> Immediately
    Sound - Stop N01Tyrande16 <gen> Immediately
    Sound - Stop N01Tyrande18 <gen> Immediately
    Sound - Stop N01Tyrande20 <gen> Immediately
    Sound - Stop N01Tyrande22 <gen> Immediately
    Sound - Stop N01Tyrande23 <gen> Immediately
    Sound - Stop N01Tyrande24 <gen> Immediately
    Sound - Stop N01Tyrande25 <gen> Immediately
    Sound - Stop N01Tyrande26 <gen> Immediately
    Sound - Stop N01Tyrande27 <gen> Immediately
    Sound - Stop N01Tyrande29 <gen> Immediately
    Sound - Stop N01Tyrande34 <gen> Immediately
Furbolg Vis Enable
  Events
    Unit - A unit enters 03_Furbolg_Village_A <gen>
    Unit - A unit enters 03_Furbolg_Village_B <gen>
  Conditions
    Or - Any (Conditions) are true
      Conditions
        (Owner of (Entering unit)) Equal to Player 2 (Blue)
        (Owner of (Entering unit)) Equal to Player 3 (Teal)
    ((Entering unit) is A ground unit) Equal to True
  Actions
    Trigger - Turn off (This trigger)
    Visibility - Create an initially Enabled visibility modifier for Player 2 (Blue) emitting Visibility from (Center of 03_Furbolg_Visiblity <gen>) to a radius of 700.00
    Set FurbogVis = (Last created visibility modifier)
Furbolg Vis Disable
  Events
    Unit - A unit leaves 03_Furbolg_Village_A <gen>
    Unit - A unit leaves 03_Furbolg_Village_B <gen>
    Unit - A unit owned by Player 2 (Blue) Dies
    Unit - A unit owned by Player 3 (Teal) Dies
  Conditions
    Or - Any (Conditions) are true
      Conditions
        ((Owner of (Leaving unit)) Equal to Player 2 (Blue)) or ((Owner of (Dying unit)) Equal to Player 2 (Blue))
        ((Owner of (Leaving unit)) Equal to Player 3 (Teal)) or ((Owner of (Dying unit)) Equal to Player 3 (Teal))
    (Number of units in (Units in 03_Furbolg_Village_A <gen> matching (((Matching unit) is alive) Equal to True))) Less than or equal to 0
    (Number of units in (Units in 03_Furbolg_Village_B <gen> matching (((Matching unit) is alive) Equal to True))) Less than or equal to 0
  Actions
    Visibility - Disable FurbogVis
Wandering Furbolg 01
  Events
    Time - Every 9.00 seconds of game time
  Conditions
  Actions
    Unit - Order Furbolg Tracker 0077 <gen> to Move To (Random point in 03_Furbolg_Wander_01 <gen>)
Wandering Furbolg 02
  Events
    Time - Every 14.00 seconds of game time
  Conditions
  Actions
    Unit - Order Furbolg Tracker 0075 <gen> to Move To (Random point in 03_Furbolg_Wander_02 <gen>)
Wandering Furbolg 03 A
  Events
    Time - Every 11.00 seconds of game time
  Conditions
  Actions
    Unit - Order Furbolg 0080 <gen> to Move To (Random point in 03_Furbolg_Wander_03 <gen>)
Wandering Furbolg 03 B
  Events
    Time - Every 16.00 seconds of game time
  Conditions
  Actions
    Unit - Order Furbolg 0078 <gen> to Move To (Random point in 03_Furbolg_Wander_03 <gen>)
Wandering Furbolg 04
  Events
    Time - Every 7.00 seconds of game time
  Conditions
  Actions
    Unit - Order Furbolg 0079 <gen> to Move To (Random point in 03_Furbolg_Wander_04 <gen>)
Wandering Furbolg 05 Shaman
  Events
    Time - Every 17.00 seconds of game time
  Conditions
  Actions
    Unit - Order Furbolg Elder Shaman 0074 <gen> to Move To (Random point in 03_Furbolg_Wander_05 <gen>)
Wandering Furbolg 06 Champion
  Events
    Time - Every 20.00 seconds of game time
  Conditions
  Actions
    Unit - Order Furbolg Champion 0076 <gen> to Move To (Random point in 03_Furbolg_Wander_06 <gen>)
Furbolg Attacked by the Player QUE
  Events
    Unit - A unit owned by Player 12 (Brown) Dies
  Conditions
    GAMEOVER Equal to False
    Or - Any (Conditions) are true
      Conditions
        (Owner of (Killing unit)) Equal to Player 2 (Blue)
        (Owner of (Killing unit)) Equal to Player 3 (Teal)
  Actions
    Trigger - Turn off (This trigger)
    Trigger - Add Furbolg_Attacked_by_the_Player <gen> to the trigger queue (Checking conditions)
Furbolg Attacked by the Player
  Events
  Conditions
    GAMEOVER Equal to False
  Actions
    Player - Make Player 12 (Brown) treat Player 2 (Blue) as an Enemy
    Player - Make Player 12 (Brown) treat Player 3 (Teal) as an Enemy
    Player - Make Player 2 (Blue) treat Player 12 (Brown) as an Enemy
    Player - Make Player 3 (Teal) treat Player 12 (Brown) as an Enemy
    Player - Make Player 6 (Orange) treat Player 12 (Brown) as an Enemy
    Player - Make Player 12 (Brown) treat Player 6 (Orange) as an Enemy
    -------- Remove Vision --------
    Unit - Deny shared vision of Furbolg Tracker 0077 <gen> to Player 2 (Blue)
    Unit - Deny shared vision of Furbolg 0079 <gen> to Player 2 (Blue)
    Unit - Deny shared vision of Furbolg Elder Shaman 0074 <gen> to Player 2 (Blue)
    Unit - Deny shared vision of Furbolg Champion 0076 <gen> to Player 2 (Blue)
    Unit - Deny shared vision of Furbolg 0078 <gen> to Player 2 (Blue)
    Unit - Deny shared vision of Furbolg 0080 <gen> to Player 2 (Blue)
    Unit - Deny shared vision of Furbolg Tracker 0075 <gen> to Player 2 (Blue)
    Unit - Deny shared vision of Furbolg Tracker 0077 <gen> to Player 3 (Teal)
    Unit - Deny shared vision of Furbolg 0079 <gen> to Player 3 (Teal)
    Unit - Deny shared vision of Furbolg Elder Shaman 0074 <gen> to Player 3 (Teal)
    Unit - Deny shared vision of Furbolg Champion 0076 <gen> to Player 3 (Teal)
    Unit - Deny shared vision of Furbolg 0078 <gen> to Player 3 (Teal)
    Unit - Deny shared vision of Furbolg 0080 <gen> to Player 3 (Teal)
    Unit - Deny shared vision of Furbolg Tracker 0075 <gen> to Player 3 (Teal)
    -------- Turn off all effects --------
    Special Effect - Destroy Ensnare01
    Special Effect - Destroy Ensnare02
    Special Effect - Destroy Ensnare03
    Special Effect - Destroy FurbolgTalk
    -------- Turn off all the discover Furbolgs --------
    Trigger - Turn off No_Hero_Present_QUEUE <gen>
    Trigger - Turn off Furbolg_Quest_Hero_Present_QUEUE <gen>
    Trigger - Turn off Furbolg_Quest_Completed_QUEUE <gen>
    Trigger - Turn off Furbolg_Found_01_QUEUE <gen>
    Trigger - Turn off Furbolg_Gaurd_QUEUE <gen>
    Trigger - Turn off Furbolg_Gaurd_Dead <gen>
    Trigger - Turn off Furbolg_Found_03_QUEUE <gen>
    Trigger - Turn off Furbolg_Found_04_QUEUE <gen>
    Trigger - Turn off Furbolg_Found_05_A_QUEUE <gen>
    Trigger - Turn off Furbolg_Found_05_B_QUEUE <gen>
    Trigger - Turn off Furbolg_Found_06_QUE <gen>
    -------- Turn off Wander --------
    Trigger - Turn off Wandering_Furbolg_01 <gen>
    Trigger - Turn off Wandering_Furbolg_02 <gen>
    Trigger - Turn off Wandering_Furbolg_03_A <gen>
    Trigger - Turn off Wandering_Furbolg_03_B <gen>
    Trigger - Turn off Wandering_Furbolg_04 <gen>
    Trigger - Turn off Wandering_Furbolg_05_Shaman <gen>
    Trigger - Turn off Wandering_Furbolg_06_Champion <gen>
    -------- ---------- --------
    Set SubquestsComplete = 0
    Set LeaderboardFurbolgActive = False
    Leaderboard - Remove Player 12 (Brown) from LeaderBoardCounter
    Trigger - Run Destroy_Leaderboard <gen> (checking conditions)
    -------- IF PLAYER AGGROS AFTER QUEST DONE --------
    If ((Furbolg is completed) Equal to True) then do (Run Furbolg_Attacked_After_Quest_Complete <gen> (checking conditions)) else do (Do nothing)
    If ((Furbolg is completed) Equal to True) then do (Remove (This trigger) from the trigger queue) else do (Do nothing)
    If ((Furbolg is completed) Equal to True) then do (Skip remaining actions) else do (Do nothing)
    -------- ---------- --------
    Quest - Mark Furbolg as Discovered
    Quest - Mark Furbolg as Failed
    Quest - Display to (All players) the Quest Failed message: |cffffcc00OPTIONAL QUEST FAILED|rFurbolg Village
    Wait Campaign quest delay seconds
    Trigger - Remove (This trigger) from the trigger queue
Furbolg Attacked After Quest Complete
  Events
  Conditions
  Actions
    Unit - Change ownership of Furbolg Champion 0076 <gen> to Player 12 (Brown) and Change color
    Unit - Change ownership of Furbolg 0078 <gen> to Player 12 (Brown) and Change color
    Unit - Change ownership of Furbolg Tracker 0094 <gen> to Player 12 (Brown) and Change color
    Unit - Change ownership of Furbolg 0080 <gen> to Player 12 (Brown) and Change color
    Cinematic - Flash a speech indicator for Furbolg Champion 0076 <gen> of color (100%, 100%, 100%) with 0% transparency
    Cinematic - Flash a speech indicator for Furbolg 0078 <gen> of color (100%, 100%, 100%) with 0% transparency
    Cinematic - Flash a speech indicator for Furbolg Tracker 0094 <gen> of color (100%, 100%, 100%) with 0% transparency
    Cinematic - Flash a speech indicator for Furbolg 0080 <gen> of color (100%, 100%, 100%) with 0% transparency
    Unit Group - Add Furbolg Champion 0076 <gen> to FurbolgContinueMove
    Unit Group - Add Furbolg 0078 <gen> to FurbolgContinueMove
    Unit Group - Add Furbolg Tracker 0094 <gen> to FurbolgContinueMove
    Unit Group - Add Furbolg 0080 <gen> to FurbolgContinueMove
    Unit - Order Furbolg Champion 0076 <gen> to Move To (Center of Furbolg_Return_Home_02 <gen>)
    Unit - Order Furbolg 0078 <gen> to Move To (Center of Furbolg_Return_Home_02 <gen>)
    Unit - Order Furbolg Tracker 0094 <gen> to Move To (Center of Furbolg_Return_Home_02 <gen>)
    Unit - Order Furbolg 0080 <gen> to Move To (Center of Furbolg_Return_Home_02 <gen>)
Furbolg Found 01 QUEUE
  Events
    Unit - A unit enters Furbolg_Discovered_01 <gen>
  Conditions
    GAMEOVER Equal to False
    Or - Any (Conditions) are true
      Conditions
        (Owner of (Entering unit)) Equal to Player 2 (Blue)
        (Owner of (Entering unit)) Equal to Player 3 (Teal)
    ((Entering unit) is A ground unit) Equal to True
  Actions
    Trigger - Turn off (This trigger)
    Trigger - Add Furbolg_Found_01 <gen> to the trigger queue (Checking conditions)
Furbolg Found 01
  Events
  Conditions
    GAMEOVER Equal to False
  Actions
    Trigger - Turn off (This trigger)
    Cinematic - Ping minimap for (All players) at (Center of Furbolg_01_B <gen>) for 4.00 seconds
    Visibility - Create an initially Enabled visibility modifier for Player 2 (Blue) emitting Visibility from (Center of Furbolg_01_Vis <gen>) to a radius of 600.00
    Set MissingFurbolgVis01 = (Last created visibility modifier)
    Visibility - Enable MissingFurbolgVis01
    -------- Furbolg 01 --------
    Unit - Grant shared vision of Furbolg01 to Player 2 (Blue)
    Unit - Grant shared vision of Furbolg01 to Player 3 (Teal)
    Trigger - Run Furbolg_Leader_Board <gen> (checking conditions)
    -------- Furbolg 02 --------
    Unit - Grant shared vision of Furbolg02 to Player 2 (Blue)
    Unit - Grant shared vision of Furbolg02 to Player 3 (Teal)
    Trigger - Run Furbolg_Leader_Board <gen> (checking conditions)
    -------- --------- --------
    Wait 1.00 seconds
    Unit - Order Furbolg01 to Move To (Center of Furbolg_Return_Home_01 <gen>)
    Unit - Order Furbolg02 to Move To (Center of Furbolg_Return_Home_01 <gen>)
    Cinematic - Flash a speech indicator for Furbolg01 of color (100%, 100%, 100%) with 0% transparency
    Cinematic - Flash a speech indicator for Furbolg02 of color (100%, 100%, 100%) with 0% transparency
    -------- ----------- --------
    Trigger - Turn on Furbolg_Move_01 <gen>
    Trigger - Turn on Furbolg_Move_02 <gen>
    Visibility - Disable MissingFurbolgVis01
    -------- ----------- --------
    Quest - Display to (All players) the Quest Update message: |cffffcc00OPTIONAL QUEST UPDATE|r Furbolg Village - Furbolgs located
    Wait Campaign quest delay seconds
    Trigger - Remove (This trigger) from the trigger queue
Furbolg 01 Home
  Events
    Unit - A unit enters Furbolg_Return_Home_01 <gen>
  Conditions
    (Triggering unit) Equal to Furbolg01
  Actions
    Trigger - Turn off (This trigger)
    Trigger - Turn off Furbolg_Move_01 <gen>
Furbolg 02 Home
  Events
    Unit - A unit enters Furbolg_Return_Home_01 <gen>
  Conditions
    (Triggering unit) Equal to Furbolg02
  Actions
    Trigger - Turn off (This trigger)
    Trigger - Turn off Furbolg_Move_02 <gen>
Furbolg Move 01
  Events
    Time - Every 3.00 seconds of game time
  Conditions
  Actions
    Unit - Order Furbolg01 to Move To (Center of Furbolg_Return_Home_01 <gen>)
Furbolg Move 02
  Events
    Time - Every 3.00 seconds of game time
  Conditions
  Actions
    Unit - Order Furbolg02 to Move To (Center of Furbolg_Return_Home_01 <gen>)
Furbolg Gaurd QUEUE
  Events
    Unit - A unit owned by Player 6 (Orange) Dies
  Conditions
    GAMEOVER Equal to False
    ((Dying unit) is in RaiderGroup) Equal to True
  Actions
    Unit Group - Remove (Dying unit) from RaiderGroup
    If ((Number of units in RaiderGroup) Equal to 0) then do (Turn on Furbolg_Gaurd_Dead <gen>) else do (Do nothing)
    If ((Number of units in RaiderGroup) Equal to 0) then do (Destroy Ensnare01) else do (Do nothing)
    If ((Number of units in RaiderGroup) Equal to 0) then do (Destroy Ensnare02) else do (Do nothing)
    If ((Number of units in RaiderGroup) Equal to 0) then do (Destroy Ensnare03) else do (Do nothing)
Furbolg Gaurd Dead
  Events
    Time - Every 0.50 seconds of game time
  Conditions
    GAMEOVER Equal to False
    SideQuestActivated Equal to True
    Or - Any (Conditions) are true
      Conditions
        (Number of units in (Units owned by Player 2 (Blue) matching (((((Matching unit) is A ground unit) Equal to True) and (((Matching unit) is alive) Equal to True)) and ((Distance between (Position of (Matching unit)) and (Position of Furbolg 0089 <gen>)) Less than or equal to 800.00)))) Not equal to 0
        (Number of units in (Units owned by Player 3 (Teal) matching (((((Matching unit) is A ground unit) Equal to True) and (((Matching unit) is alive) Equal to True)) and ((Distance between (Position of (Matching unit)) and (Position of Furbolg 0089 <gen>)) Less than or equal to 800.00)))) Not equal to 0
  Actions
    Trigger - Turn off (This trigger)
    Trigger - Add Furbolg_Found_02 <gen> to the trigger queue (Checking conditions)
Furbolg Found 02
  Events
  Conditions
    GAMEOVER Equal to False
  Actions
    Trigger - Turn off (This trigger)
    Cinematic - Ping minimap for (All players) at (Center of Furbolg_02_Vis <gen>) for 4.00 seconds
    Visibility - Create an initially Enabled visibility modifier for Player 2 (Blue) emitting Visibility from (Center of Furbolg_02_Vis <gen>) to a radius of 600.00
    Set MissingFurbolgVis02 = (Last created visibility modifier)
    Visibility - Enable MissingFurbolgVis02
    -------- Furbolg 03 --------
    Set Furbolg03 = Furbolg 0086 <gen>
    Unit Group - Add Furbolg03 to FurbolgGroup
    Unit - Grant shared vision of Furbolg03 to Player 2 (Blue)
    Unit - Grant shared vision of Furbolg03 to Player 3 (Teal)
    Trigger - Run Furbolg_Leader_Board <gen> (checking conditions)
    -------- Furbolg 04 --------
    Set Furbolg04 = Furbolg 0089 <gen>
    Unit Group - Add Furbolg04 to FurbolgGroup
    Unit - Grant shared vision of Furbolg04 to Player 2 (Blue)
    Unit - Grant shared vision of Furbolg04 to Player 3 (Teal)
    Trigger - Run Furbolg_Leader_Board <gen> (checking conditions)
    -------- Furbolg 05 --------
    Set Furbolg05 = Furbolg Shaman 0088 <gen>
    Unit Group - Add Furbolg05 to FurbolgGroup
    Unit - Grant shared vision of Furbolg05 to Player 2 (Blue)
    Unit - Grant shared vision of Furbolg05 to Player 3 (Teal)
    Trigger - Run Furbolg_Leader_Board <gen> (checking conditions)
    -------- ---------- --------
    Wait 1.00 seconds
    Unit - Order Furbolg03 to Move To (Center of Furbolg_Return_Home_01 <gen>)
    Unit - Order Furbolg04 to Move To (Center of Furbolg_Return_Home_01 <gen>)
    Unit - Order Furbolg05 to Move To (Center of Furbolg_Return_Home_01 <gen>)
    Cinematic - Flash a speech indicator for Furbolg03 of color (100%, 100%, 100%) with 0% transparency
    Cinematic - Flash a speech indicator for Furbolg04 of color (100%, 100%, 100%) with 0% transparency
    Cinematic - Flash a speech indicator for Furbolg05 of color (100%, 100%, 100%) with 0% transparency
    -------- ----------- --------
    Trigger - Turn on Furbolg_Move_03 <gen>
    Trigger - Turn on Furbolg_Move_04 <gen>
    Trigger - Turn on Furbolg_Move_05 <gen>
    Visibility - Disable MissingFurbolgVis02
    -------- ----------- --------
    Quest - Display to (All players) the Quest Update message: |cffffcc00OPTIONAL QUEST UPDATE|r Furbolg Village - Furbolgs located
    Wait Campaign quest delay seconds
    Trigger - Remove (This trigger) from the trigger queue
Furbolg 03 Home
  Events
    Unit - A unit enters Furbolg_Return_Home_01 <gen>
  Conditions
    (Entering unit) Equal to Furbolg03
  Actions
    Trigger - Turn off (This trigger)
    Trigger - Turn off Furbolg_Move_03 <gen>
Furbolg 04 Home
  Events
    Unit - A unit enters Furbolg_Return_Home_01 <gen>
  Conditions
    (Entering unit) Equal to Furbolg04
  Actions
    Trigger - Turn off (This trigger)
    Trigger - Turn off Furbolg_Move_04 <gen>
Furbolg 05 Home
  Events
    Unit - A unit enters Furbolg_Return_Home_01 <gen>
  Conditions
    (Entering unit) Equal to Furbolg05
  Actions
    Trigger - Turn off (This trigger)
    Trigger - Turn off Furbolg_Move_05 <gen>
Furbolg Move 03
  Events
    Time - Every 3.00 seconds of game time
  Conditions
  Actions
    Unit - Order Furbolg03 to Move To (Center of Furbolg_Return_Home_01 <gen>)
Furbolg Move 04
  Events
    Time - Every 3.00 seconds of game time
  Conditions
  Actions
    Unit - Order Furbolg04 to Move To (Center of Furbolg_Return_Home_01 <gen>)
Furbolg Move 05
  Events
    Time - Every 3.00 seconds of game time
  Conditions
  Actions
    Unit - Order Furbolg05 to Move To (Center of Furbolg_Return_Home_01 <gen>)
Furbolg Hut A Receives Damage
  Events
    Unit - A unit owned by Neutral Passive Is attacked
  Conditions
    (Attacked unit) Equal to Furbolg Hut 0113 <gen>
    (Owner of (Attacking unit)) Equal to Player 9 (Gray)
  Actions
    Unit - Set life of Furbolg Hut 0113 <gen> to 98.00%
Furbolg Hut B Receives Damage
  Events
    Unit - A unit owned by Neutral Passive Is attacked
  Conditions
    (Attacked unit) Equal to Furbolg Hut 0098 <gen>
    (Owner of (Attacking unit)) Equal to Player 9 (Gray)
  Actions
    Unit - Set life of Furbolg Hut 0098 <gen> to 98.00%
Furbolg Ensnared
  Events
  Conditions
  Actions
    Special Effect - Create a special effect attached to the origin of Furbolg 0086 <gen> using Abilities\Spells\Orc\Ensnare\ensnareTarget.mdl
    Set Ensnare01 = (Last created special effect)
    -------- - --------
    Special Effect - Create a special effect attached to the origin of Furbolg 0089 <gen> using Abilities\Spells\Orc\Ensnare\ensnareTarget.mdl
    Set Ensnare02 = (Last created special effect)
    -------- - --------
    Special Effect - Create a special effect attached to the origin of Furbolg Shaman 0088 <gen> using Abilities\Spells\Orc\Ensnare\ensnareTarget.mdl
    Set Ensnare03 = (Last created special effect)
    -------- - --------
Furbolg Found 03 QUEUE
  Events
    Unit - A unit enters Furbolg_Discovered_03 <gen>
  Conditions
    GAMEOVER Equal to False
    Or - Any (Conditions) are true
      Conditions
        (Owner of (Entering unit)) Equal to Player 2 (Blue)
        (Owner of (Entering unit)) Equal to Player 3 (Teal)
    ((Entering unit) is A ground unit) Equal to True
  Actions
    Trigger - Turn off (This trigger)
    Trigger - Add Furbolg_Found_03 <gen> to the trigger queue (Checking conditions)
Furbolg Found 03
  Events
  Conditions
    GAMEOVER Equal to False
  Actions
    Trigger - Turn off (This trigger)
    Cinematic - Ping minimap for (All players) at (Center of Furbolg_03_Vis <gen>) for 4.00 seconds
    Visibility - Create an initially Enabled visibility modifier for Player 2 (Blue) emitting Visibility from (Center of Furbolg_03_Vis <gen>) to a radius of 600.00
    Set MissingFurbolgVis03 = (Last created visibility modifier)
    Visibility - Enable MissingFurbolgVis03
    -------- Furbolg 06 --------
    Unit - Grant shared vision of Furbolg06 to Player 2 (Blue)
    Unit - Grant shared vision of Furbolg06 to Player 3 (Teal)
    Trigger - Run Furbolg_Leader_Board <gen> (checking conditions)
    -------- ---------- --------
    Wait 1.00 seconds
    Unit - Order Furbolg06 to Move To (Center of Furbolg_Return_Home_01 <gen>)
    Cinematic - Flash a speech indicator for Furbolg06 of color (100%, 100%, 100%) with 0% transparency
    -------- ----------- --------
    Trigger - Turn on Furbolg_Move_06 <gen>
    Visibility - Disable MissingFurbolgVis03
    -------- ----------- --------
    Quest - Display to (All players) the Quest Update message: |cffffcc00OPTIONAL QUEST UPDATE|r Furbolg Village - Furbolg located
    Wait Campaign quest delay seconds
    Trigger - Remove (This trigger) from the trigger queue
Furbolg 06 Home
  Events
    Unit - A unit enters Furbolg_Return_Home_01 <gen>
  Conditions
    (Entering unit) Equal to Furbolg06
  Actions
    Trigger - Turn off (This trigger)
    Trigger - Turn off Furbolg_Move_06 <gen>
Furbolg Move 06
  Events
    Time - Every 3.00 seconds of game time
  Conditions
  Actions
    Unit - Order Furbolg06 to Move To (Center of Furbolg_Return_Home_01 <gen>)
Furbolg Found 04 QUEUE
  Events
    Unit - A unit enters Furbolg_Discovered_04 <gen>
  Conditions
    GAMEOVER Equal to False
    Or - Any (Conditions) are true
      Conditions
        (Owner of (Entering unit)) Equal to Player 2 (Blue)
        (Owner of (Entering unit)) Equal to Player 3 (Teal)
    ((Entering unit) is A ground unit) Equal to True
  Actions
    Trigger - Turn off (This trigger)
    Trigger - Add Furbolg_Found_04 <gen> to the trigger queue (Checking conditions)
Furbolg Found 04
  Events
  Conditions
    GAMEOVER Equal to False
  Actions
    Trigger - Turn off (This trigger)
    Cinematic - Ping minimap for (All players) at (Center of Furbolg_04_Vis <gen>) for 4.00 seconds
    Visibility - Create an initially Enabled visibility modifier for Player 2 (Blue) emitting Visibility from (Center of Furbolg_04_Vis <gen>) to a radius of 600.00
    Set MissingFurbolgVis04 = (Last created visibility modifier)
    Visibility - Enable MissingFurbolgVis04
    -------- Furbolg 07 --------
    Unit - Grant shared vision of Furbolg07 to Player 2 (Blue)
    Unit - Grant shared vision of Furbolg07 to Player 3 (Teal)
    Trigger - Run Furbolg_Leader_Board <gen> (checking conditions)
    -------- Furbolg 08 --------
    Unit - Grant shared vision of Furbolg08 to Player 2 (Blue)
    Unit - Grant shared vision of Furbolg08 to Player 3 (Teal)
    Trigger - Run Furbolg_Leader_Board <gen> (checking conditions)
    -------- - --------
    Wait 1.00 seconds
    Unit - Order Furbolg07 to Move To (Center of Furbolg_Return_Home_01 <gen>)
    Unit - Order Furbolg08 to Move To (Center of Furbolg_Return_Home_01 <gen>)
    Cinematic - Flash a speech indicator for Furbolg07 of color (100%, 100%, 100%) with 0% transparency
    Cinematic - Flash a speech indicator for Furbolg08 of color (100%, 100%, 100%) with 0% transparency
    -------- ----------- --------
    Trigger - Turn on Furbolg_Move_07 <gen>
    Trigger - Turn on Furbolg_Move_08 <gen>
    Visibility - Disable MissingFurbolgVis04
    -------- ----------- --------
    Quest - Display to (All players) the Quest Update message: |cffffcc00OPTIONAL QUEST UPDATE|r Furbolg Village - Furbolgs located
    Wait Campaign quest delay seconds
    Trigger - Remove (This trigger) from the trigger queue
Furbolg 07 Home
  Events
    Unit - A unit enters Furbolg_Return_Home_01 <gen>
  Conditions
    (Entering unit) Equal to Furbolg07
  Actions
    Trigger - Turn off (This trigger)
    Trigger - Turn off Furbolg_Move_07 <gen>
Furbolg 08 Home
  Events
    Unit - A unit enters Furbolg_Return_Home_01 <gen>
  Conditions
    (Entering unit) Equal to Furbolg08
  Actions
    Trigger - Turn off (This trigger)
    Trigger - Turn off Furbolg_Move_08 <gen>
Furbolg Move 07
  Events
    Time - Every 2 seconds of game time
  Conditions
  Actions
    Unit - Order Furbolg07 to Move To (Center of Furbolg_Return_Home_01 <gen>)
Furbolg Move 08
  Events
    Time - Every 2 seconds of game time
  Conditions
  Actions
    Unit - Order Furbolg08 to Move To (Center of Furbolg_Return_Home_01 <gen>)
Furbolg Found 05 A QUEUE
  Events
    Unit - A unit enters Furbolg_Discovered_05A <gen>
  Conditions
    GAMEOVER Equal to False
    Or - Any (Conditions) are true
      Conditions
        (Owner of (Entering unit)) Equal to Player 2 (Blue)
        (Owner of (Entering unit)) Equal to Player 3 (Teal)
    ((Entering unit) is A ground unit) Equal to True
  Actions
    Trigger - Turn off (This trigger)
    Trigger - Turn off Furbolg_Found_05_B_QUEUE <gen>
    Trigger - Add Furbolg_Found_05 <gen> to the trigger queue (Checking conditions)
Furbolg Found 05 B QUEUE
  Events
    Unit - A unit enters Furbolg_Discovered_05B <gen>
  Conditions
    GAMEOVER Equal to False
    Or - Any (Conditions) are true
      Conditions
        (Owner of (Entering unit)) Equal to Player 2 (Blue)
        (Owner of (Entering unit)) Equal to Player 3 (Teal)
    ((Entering unit) is A ground unit) Equal to True
  Actions
    Trigger - Turn off (This trigger)
    Trigger - Turn off Furbolg_Found_05_A_QUEUE <gen>
    Trigger - Add Furbolg_Found_05 <gen> to the trigger queue (Checking conditions)
Furbolg Found 05
  Events
  Conditions
    GAMEOVER Equal to False
  Actions
    Trigger - Turn off (This trigger)
    Cinematic - Ping minimap for (All players) at (Center of Furbolg_05_Vis <gen>) for 4.00 seconds
    Visibility - Create an initially Enabled visibility modifier for Player 2 (Blue) emitting Visibility from (Center of Furbolg_05_Vis <gen>) to a radius of 600.00
    Set MissingFurbolgVis05 = (Last created visibility modifier)
    Visibility - Enable MissingFurbolgVis05
    -------- Furbolg 09 --------
    Unit - Grant shared vision of Furbolg09 to Player 2 (Blue)
    Unit - Grant shared vision of Furbolg09 to Player 3 (Teal)
    Trigger - Run Furbolg_Leader_Board <gen> (checking conditions)
    -------- Furbolg 10 --------
    Unit - Grant shared vision of Furbolg10 to Player 2 (Blue)
    Unit - Grant shared vision of Furbolg10 to Player 3 (Teal)
    Trigger - Run Furbolg_Leader_Board <gen> (checking conditions)
    -------- ---------- --------
    Wait 0.50 seconds
    Cinematic - Flash a speech indicator for Furbolg09 of color (100%, 100%, 100%) with 0% transparency
    Cinematic - Flash a speech indicator for Furbolg10 of color (100%, 100%, 100%) with 0% transparency
    Unit - Order Furbolg09 to Move To (Center of Furbolg_Return_Home_01 <gen>)
    Unit - Order Furbolg10 to Move To (Center of Furbolg_Return_Home_01 <gen>)
    -------- ----------- --------
    Trigger - Turn on Furbolg_Move_09 <gen>
    Trigger - Turn on Furbolg_Move_10 <gen>
    Visibility - Disable MissingFurbolgVis05
    -------- ----------- --------
    Quest - Display to (All players) the Quest Update message: |cffffcc00OPTIONAL QUEST UPDATE|r Furbolg Village - Furbolgs located
    Wait Campaign quest delay seconds
    Trigger - Remove (This trigger) from the trigger queue
Furbolg 09 Home
  Events
    Unit - A unit enters Furbolg_Return_Home_01 <gen>
  Conditions
    (Entering unit) Equal to Furbolg09
  Actions
    Trigger - Turn off (This trigger)
    Trigger - Turn off Furbolg_Move_09 <gen>
Furbolg 10 Home
  Events
    Unit - A unit enters Furbolg_Return_Home_01 <gen>
  Conditions
    (Entering unit) Equal to Furbolg10
  Actions
    Trigger - Turn off (This trigger)
    Trigger - Turn off Furbolg_Move_10 <gen>
Furbolg Move 09
  Events
    Time - Every 3.00 seconds of game time
  Conditions
  Actions
    Unit - Order Furbolg09 to Move To (Center of Furbolg_Return_Home_01 <gen>)
Furbolg Move 10
  Events
    Time - Every 3.00 seconds of game time
  Conditions
  Actions
    Unit - Order Furbolg10 to Move To (Center of Furbolg_Return_Home_01 <gen>)
Furbolg Found 06 QUE
  Events
    Unit - A unit enters Furbolg_Discovered_06 <gen>
  Conditions
    GAMEOVER Equal to False
    Or - Any (Conditions) are true
      Conditions
        (Owner of (Entering unit)) Equal to Player 2 (Blue)
        (Owner of (Entering unit)) Equal to Player 3 (Teal)
    ((Entering unit) is A ground unit) Equal to True
  Actions
    Trigger - Turn off (This trigger)
    Trigger - Add Furbolg_Found_06 <gen> to the trigger queue (Checking conditions)
Furbolg Found 06
  Events
  Conditions
    GAMEOVER Equal to False
  Actions
    Trigger - Turn off (This trigger)
    Cinematic - Ping minimap for (All players) at (Center of Furbolg_06_Vis <gen>) for 4.00 seconds
    Visibility - Create an initially Enabled visibility modifier for Player 2 (Blue) emitting Visibility from (Center of Furbolg_06_Vis <gen>) to a radius of 600.00
    Set MissingFurbolgVis06 = (Last created visibility modifier)
    Visibility - Enable MissingFurbolgVis06
    -------- Furbolg 11 --------
    Unit - Grant shared vision of Furbolg11 to Player 2 (Blue)
    Unit - Grant shared vision of Furbolg11 to Player 3 (Teal)
    Trigger - Run Furbolg_Leader_Board <gen> (checking conditions)
    -------- Furbolg 12 --------
    Unit - Grant shared vision of Furbolg12 to Player 2 (Blue)
    Unit - Grant shared vision of Furbolg12 to Player 3 (Teal)
    Trigger - Run Furbolg_Leader_Board <gen> (checking conditions)
    -------- - --------
    Wait 1.00 seconds
    Cinematic - Flash a speech indicator for Furbolg11 of color (100%, 100%, 100%) with 0% transparency
    Cinematic - Flash a speech indicator for Furbolg12 of color (100%, 100%, 100%) with 0% transparency
    Unit - Order Furbolg11 to Move To (Center of Furbolg_Return_Home_01 <gen>)
    Unit - Order Furbolg12 to Move To (Center of Furbolg_Return_Home_01 <gen>)
    -------- ----------- --------
    Trigger - Turn on Furbolg_Move_11 <gen>
    Trigger - Turn on Furbolg_Move_12 <gen>
    Visibility - Disable MissingFurbolgVis06
    -------- ----------- --------
    Quest - Display to (All players) the Quest Update message: |cffffcc00OPTIONAL QUEST UPDATE|r Furbolg Village - Furbolgs located
    Wait Campaign quest delay seconds
    Trigger - Remove (This trigger) from the trigger queue
Furbolg 11 Home
  Events
    Unit - A unit enters Furbolg_Return_Home_01 <gen>
  Conditions
    (Entering unit) Equal to Furbolg11
  Actions
    Trigger - Turn off (This trigger)
    Trigger - Turn off Furbolg_Move_11 <gen>
Furbolg 12 Home
  Events
    Unit - A unit enters Furbolg_Return_Home_01 <gen>
  Conditions
    (Entering unit) Equal to Furbolg12
  Actions
    Trigger - Turn off (This trigger)
    Trigger - Turn off Furbolg_Move_12 <gen>
Furbolg Move 11
  Events
    Time - Every 3.00 seconds of game time
  Conditions
  Actions
    Unit - Order Furbolg11 to Move To (Center of Furbolg_Return_Home_01 <gen>)
Furbolg Move 12
  Events
    Time - Every 3.00 seconds of game time
  Conditions
  Actions
    Unit - Order Furbolg12 to Move To (Center of Furbolg_Return_Home_01 <gen>)
Create the Furbolg hut
  Events
  Conditions
  Actions
    Unit - Create 1 Furbolg Hut for Neutral Passive at (Center of Furbolg_hut_A <gen>) facing Default building facing degrees
    Unit - Create 1 Furbolg Hut for Neutral Passive at (Center of Furbolg_hut_B <gen>) facing Default building facing degrees
Awake the Footman
  Events
    Unit - Footman 0072 <gen> Is attacked
  Conditions
    Or - Any (Conditions) are true
      Conditions
        (Owner of (Attacking unit)) Equal to Player 2 (Blue)
        (Owner of (Attacking unit)) Equal to Player 3 (Teal)
    GAMEOVER Equal to False
  Actions
    Trigger - Turn off (This trigger)
    Trigger - Turn off Footman_Sleep <gen>
    Trigger - Run Footman_Awake <gen> (ignoring conditions)
    Trigger - Turn off Footman_Awake <gen>
    -------- - --------
    AI - Start campaign AI script for Player 4 (Purple): n01_purple.ai (aiscript)
    Visibility - Create an initially Enabled visibility modifier for Player 2 (Blue) emitting Visibility from (Center of Footman_Vis <gen>) to a radius of 600.00
    Set FootmanVis = (Last created visibility modifier)
    Visibility - Enable FootmanVis
    Special Effect - Destroy FootmanSleep
    Sound - Play FootmanYesAttack3 <gen>
    Wait 0.50 seconds
    Unit - Create 1 Footman for Player 4 (Purple) at (Center of Footman_01 <gen>) facing 300.00 degrees
    Unit - Order (Last created unit) to Attack-Move To (Center of Footman_Attack <gen>)
    -------- - --------
    Wait 0.50 seconds
    Unit - Create 1 Footman for Player 4 (Purple) at (Center of Footman_02 <gen>) facing 300.00 degrees
    Unit - Order (Last created unit) to Attack-Move To (Center of Footman_Attack <gen>)
    Wait 0.50 seconds
    Unit - Create 1 Footman for Player 4 (Purple) at (Center of Footman_01 <gen>) facing 220.00 degrees
    Unit - Order (Last created unit) to Attack-Move To (Center of Footman_Attack <gen>)
    -------- - --------
    Wait 2 seconds
    Visibility - Disable FootmanVis
Footman Sleep
  Events
    Game - The in-game time of day becomes Equal to 18.00
  Conditions
  Actions
    Unit - Pause Footman 0072 <gen>
    Special Effect - Create a special effect attached to the overhead of Footman 0072 <gen> using Abilities\Spells\Other\CreepSleep\CreepSleeptarget.mdl
    Set FootmanSleep = (Last created special effect)
    Sound - Play CreepSleepLoop1 <gen>
Footman Awake
  Events
    Game - The in-game time of day becomes Equal to 6.00
  Conditions
  Actions
    Unit - Unpause Footman 0072 <gen>
    Special Effect - Destroy FootmanSleep
    Sound - Stop CreepSleepLoop1 <gen> Immediately
Harvest
  Events
  Conditions
  Actions
    Unit - Order Peasant 0062 <gen> to Harvest Nearby Lumber
    Unit - Order Peasant 0063 <gen> to Harvest Nearby Lumber
    Unit - Order Peasant 0064 <gen> to Harvest Nearby Lumber
    -------- ---------- --------
    Unit - Order Peon 0092 <gen> to Harvest Nearby Lumber
    Unit - Order Peon 0091 <gen> to Harvest Nearby Lumber
Tyrande Enters Enemy Base QUEUE
  Events
    Unit - A unit enters 02_Enemy_Town <gen>
  Conditions
    GAMEOVER Equal to False
    Or - Any (Conditions) are true
      Conditions
        (Entering unit) Equal to Tyrande
        (Entering unit) Equal to Shandris
    (Paladin is alive) Equal to True
  Actions
    Set TempUnit = (Triggering unit)
    Trigger - Turn off (This trigger)
    Trigger - Add Tyrande_Enters_Enemy_Base <gen> to the trigger queue (Checking conditions)
Tyrande Enters Enemy Base
  Events
  Conditions
    GAMEOVER Equal to False
    (TempUnit is alive) Equal to True
  Actions
    Trigger - Turn off (This trigger)
    Visibility - Create an initially Enabled visibility modifier for Player 2 (Blue) emitting Visibility from (Center of 02_Captain_Smack <gen>) to a radius of 512
    Set CaptainVis = (Last created visibility modifier)
    Visibility - Enable CaptainVis
    Sound - Setup all volume channels for speech
    Cinematic - Send transmission to (All players) from Tyrande named Tyrande Whisperwind: Play N01Tyrande27 <gen> and display Bandu thoribas, mortals! You will pay for defiling these lands! . Modify duration: Add 0 seconds and Wait
    Sound - Reset all volume channels to 100%
    Visibility - Disable CaptainVis
    Trigger - Remove (This trigger) from the trigger queue
Add Orc Units
  Events
  Conditions
  Actions
    Unit - Create 1 Peon for Player 5 (Yellow) at (Center of Orc_Peon_01 <gen>) facing 180.00 degrees
    Unit - Order (Last created unit) to Harvest Nearby Lumber
    Unit - Create 1 Peon for Player 5 (Yellow) at (Center of Orc_Peon_02 <gen>) facing 180.00 degrees
    Unit - Order (Last created unit) to Harvest Nearby Lumber
    Unit - Create 1 Peon for Player 5 (Yellow) at (Center of Orc_Peon_03 <gen>) facing 180.00 degrees
    Unit - Order (Last created unit) to Harvest Nearby Lumber
    Unit - Create 1 War Mill for Player 5 (Yellow) at (Center of Orc_Forge <gen>) facing (Position of (Triggering unit))
    Trigger - Add to Extras_Track <gen> the event ((Last created unit) Dies)
    Unit - Create 1 Raider for Player 5 (Yellow) at (Center of Orc_Grunt_01 <gen>) facing 225.00 degrees
    Set Orc01 = (Last created unit)
    AI - Ignore (Last created unit)'s guard position
    Unit - Create 1 Troll Headhunter for Player 5 (Yellow) at (Center of Orc_Grunt_02 <gen>) facing 225.00 degrees
    Set Orc02 = (Last created unit)
    AI - Ignore (Last created unit)'s guard position
Patrol Fliers
  Events
  Conditions
  Actions
    Unit - Order Wind Rider 0071 <gen> to Patrol To (Center of Patrol_01 <gen>)
    Unit - Order Wind Rider 0070 <gen> to Patrol To (Center of Patrol_02 <gen>)
    -------- - --------
    Unit - Order Gryphon Rider 0041 <gen> to Patrol To (Center of Gryph_Patrol_01 <gen>)
    Unit - Order Gryphon Rider 0065 <gen> to Patrol To (Center of Gryph_Patrol_02 <gen>)
Red Gold
  Events
    Player - Player 1 (Red)'s Current gold becomes Less than or equal to 500.00
  Conditions
  Actions
    Player - Add 1000 to Player 1 (Red) Current gold
Red Lumber
  Events
    Player - Player 1 (Red)'s Current lumber becomes Less than or equal to 500.00
  Conditions
  Actions
    Player - Add 1000 to Player 1 (Red) Current lumber
Light Blue Gold
  Events
    Player - Player 10 (Light Blue)'s Current gold becomes Less than or equal to 500.00
  Conditions
  Actions
    Player - Add 1000 to Player 10 (Light Blue) Current gold
Light Blue Lumber
  Events
    Player - Player 10 (Light Blue)'s Current lumber becomes Less than or equal to 500.00
  Conditions
  Actions
    Player - Add 1000 to Player 10 (Light Blue) Current lumber
Ending Cinematic Cancel
  Events
  Conditions
  Actions
    Set CancelOutro = False
    Cinematic - Fade out over 2 seconds using texture White Mask and color (0%, 0%, 0%) with 0% transparency
    Wait 2 seconds
    Cinematic - Turn cinematic mode Off for (All players)
    Unit Group - Pick every unit in (Units in (Playable map area)) and do (Actions)
      Loop - Actions
        Unit - Make (Picked unit) Invulnerable
        Unit - Order (Picked unit) to Stop
        Unit - Hide (Picked unit)
    Trigger - Run SaveCodeEtc <gen> (checking conditions)
    Trigger - Run Endtext <gen> (checking conditions)
Ending Cinematic QUEUE
  Events
    Unit - A unit owned by Player 10 (Light Blue) Dies
  Conditions
    GAMEOVER Equal to False
    (Dying unit) Equal to Paladin
  Actions
    Trigger - Turn off (This trigger)
    Trigger - Clear all pending triggers from the trigger queue
    Trigger - Turn off GiveResource <gen>
    Trigger - Turn off ExchangeUnits <gen>
    Trigger - Add Ending_Cinematic <gen> to the trigger queue (Checking conditions)
Ending Cinematic
  Events
  Conditions
  Actions
    -------- Turn Off Everything --------
    Custom script: set cinSkip = false
    Trigger - Turn off No_Hero_Present_QUEUE <gen>
    Trigger - Turn off Furbolg_Quest_Hero_Present_QUEUE <gen>
    Trigger - Turn off Furbolg_Quest_Completed_QUEUE <gen>
    Trigger - Turn off Furbolg_Found_01_QUEUE <gen>
    Trigger - Turn off Furbolg_Gaurd_QUEUE <gen>
    Trigger - Turn off Furbolg_Gaurd_Dead <gen>
    Trigger - Turn off Furbolg_Found_03_QUEUE <gen>
    Trigger - Turn off Furbolg_Found_04_QUEUE <gen>
    Trigger - Turn off Furbolg_Found_05_A_QUEUE <gen>
    Trigger - Turn off Furbolg_Found_05_B_QUEUE <gen>
    Trigger - Turn off Furbolg_Found_06_QUE <gen>
    -------- ---------- --------
    Trigger - Turn off (This trigger)
    Environment - Set sky to Dalaran Sky
    Unit - Remove All buffs from Tyrande
    Unit - Make Tyrande Invulnerable
    Quest - Display to (All players) the Quest Completed message: |cffffcc00MAIN QUEST COMPLETED|rInvaders
    Wait Campaign quest delay seconds
    -------- ---------- --------
    Player - Make Player 10 (Light Blue) treat Player 2 (Blue) as an Ally with shared vision
    Player - Make Player 1 (Red) treat Player 2 (Blue) as an Ally with shared vision
    Player - Make Player 2 (Blue) treat Player 1 (Red) as an Ally with shared vision
    Player - Make Player 2 (Blue) treat Player 10 (Light Blue) as an Ally with shared vision
    Player - Make Player 10 (Light Blue) treat Player 3 (Teal) as an Ally with shared vision
    Player - Make Player 1 (Red) treat Player 3 (Teal) as an Ally with shared vision
    Player - Make Player 3 (Teal) treat Player 1 (Red) as an Ally with shared vision
    Player - Make Player 3 (Teal) treat Player 10 (Light Blue) as an Ally with shared vision
    Leaderboard - Hide LeaderBoardCounter
    -------- ---------- --------
    Cinematic - Fade out over 2.00 seconds using texture White Mask and color (0%, 0%, 0%) with 0% transparency
    Cinematic - Turn cinematic mode On for (All players)
    Selection - Clear selection
    Unit - Create 1 Stag for Neutral Passive at (Center of Bambi <gen>) facing 270.00 degrees
    Set StagUno = (Last created unit)
    Unit - Create 1 Stag for Neutral Passive at (Center of Bambi2 <gen>) facing 250.00 degrees
    Set StagDos = (Last created unit)
    Unit - Create 1 Pandaren for Neutral Passive at (Center of Deer_Run_A <gen>) facing 250.00 degrees
    Set PandamoniumG = (Last created unit)
    Sound - Set music volume to 100%
    Sound - Play Tension
    Wait 2.00 seconds
    If (CancelOutro Equal to True) then do (Skip remaining actions) else do (Do nothing)
    Unit - Create 1 Doom Guard (Standard) for Player 7 (Green) at (Center of DoomGuard <gen>) facing 250.00 degrees
    Set Doom1 = (Last created unit)
    Unit - Hide Doom1
    Unit - Pause Doom1
    Unit - Set mana of Doom1 to 100%
    Unit - Create 1 Doom Guard (Standard) for Player 7 (Green) at (Center of DoomG2 <gen>) facing 250.00 degrees
    Set Doom2 = (Last created unit)
    Unit - Hide Doom2
    Unit - Pause Doom2
    Unit - Set mana of Doom2 to 100%
    Unit - Create 1 Doom Guard (Standard) for Player 7 (Green) at (Center of DoomG3 <gen>) facing 250.00 degrees
    Set Doom3 = (Last created unit)
    Unit - Hide Doom3
    Unit - Pause Doom3
    Unit - Set mana of Doom3 to 100%
    Unit - Create 1 Doom Guard (Standard) for Player 7 (Green) at (Center of Scout_03 <gen>) facing 250.00 degrees
    Set Doom4 = (Last created unit)
    Unit - Hide Doom4
    Unit - Pause Doom4
    Unit - Set mana of Doom4 to 100%
    Unit - Create 1 Doom Guard (Standard) for Player 7 (Green) at (Center of DoomAppear <gen>) facing 250.00 degrees
    Set Doom5 = (Last created unit)
    Unit - Pause Doom5
    Unit - Hide Doom5
    Unit - Create 1 Doom Guard (Standard) for Player 7 (Green) at (Center of DoomAppear2 <gen>) facing 250.00 degrees
    Set Doom6 = (Last created unit)
    Unit - Pause Doom6
    Unit - Hide Doom6
    Unit - Create 1 Doom Guard (Standard) for Player 7 (Green) at (Center of DoomAppear3 <gen>) facing 250.00 degrees
    Set Doom7 = (Last created unit)
    Unit - Pause Doom6
    Unit - Hide Doom7
    Unit - Create 1 Dreadlord for Player 7 (Green) at (Center of TichondriusAppear <gen>) facing 250.00 degrees
    Set Tich = (Last created unit)
    Hero - Create Orb of Fire and give it to Tich
    Unit - Change color of Tich to Red
    Unit - Pause Tich
    Unit - Hide Tich
    Unit - Create 1 Fel Stalker for Player 7 (Green) at (Center of HoundAppear <gen>) facing 250.00 degrees
    Set Hound1 = (Last created unit)
    Unit - Pause Hound1
    Unit - Hide Hound1
    Unit - Create 1 Fel Stalker for Player 7 (Green) at (Center of HoundAppear2 <gen>) facing 250.00 degrees
    Set Hound2 = (Last created unit)
    Unit - Pause Hound2
    Unit - Hide Hound2
    -------- ---------- --------
    Set CancelOutro = True
    Cinematic - Fade in over 0.40 seconds using texture White Mask and color (0%, 0%, 0%) with 0% transparency
    Camera - Apply gg_cam_Oh_Deer for Player 2 (Blue) over 0 seconds
    Camera - Apply gg_cam_Oh_Deer for Player 3 (Teal) over 0 seconds
    Wait 1.50 seconds
    Custom script: if cinSkip then
    Custom script: return
    Custom script: endif
    Unit - Make StagDos face StagUno over 0.30 seconds
    Wait 0.30 seconds
    Custom script: if cinSkip then
    Custom script: return
    Custom script: endif
    Unit - Order StagUno to Move To (Center of Deer_Run_A <gen>)
    Unit - Order StagDos to Move To (Center of Deer_Run_B <gen>)
    Wait 0.50 seconds
    Custom script: if cinSkip then
    Custom script: return
    Custom script: endif
    Unit - Order PandamoniumG to Move To (Center of Panda_Run <gen>)
    Wait 2.00 seconds
    Custom script: if cinSkip then
    Custom script: return
    Custom script: endif
    Cinematic - Fade out over 1.00 seconds using texture White Mask and color (0%, 0%, 0%) with 0% transparency
    Wait 1.00 seconds
    Custom script: if cinSkip then
    Custom script: return
    Custom script: endif
    Unit Group - Pick every unit in (Units owned by Player 2 (Blue)) and do (Hide (Picked unit))
    Unit Group - Pick every unit in (Units owned by Player 3 (Teal)) and do (Hide (Picked unit))
    If ((Tyrande is alive) Equal to True) then do (Unhide Tyrande) else do (Do nothing)
    If ((Tyrande is alive) Equal to True) then do (Move Tyrande instantly to (Center of 04_Tyrande <gen>)) else do (Instantly revive Tyrande at (Center of 04_Tyrande <gen>), Hide revival graphics)
    Unit - Make Priestess of the Moon 0004 <gen> face (Center of Fire <gen>) over 0.30 seconds
    Unit - Create 1 Su'ura for Player 11 (Dark Green) at (Center of 04_Suura <gen>) facing 220.00 degrees
    Set Suura = (Last created unit)
    Unit - Make Suura face (Center of Fire <gen>) over 0.30 seconds
    Unit - Create 1 Archer for Player 2 (Blue) at (Center of 04_Archer_02 <gen>) facing 220.00 degrees
    Unit - Create 1 Archer for Player 11 (Dark Green) at (Center of 04_Archer_01 <gen>) facing 220.00 degrees
    Camera - Apply gg_cam_Meteor_Shower for Player 2 (Blue) over 0.00 seconds
    Camera - Apply gg_cam_Meteor_Shower for Player 3 (Teal) over 0.00 seconds
    Cinematic - Fade in over 0.40 seconds using texture White Mask and color (0%, 0%, 0%) with 0% transparency
    Wait 1.00 seconds
    Custom script: if cinSkip then
    Custom script: return
    Custom script: endif
    Sound - Setup all volume channels for cinematics
    Sound - Play N01Archimonde30 <gen>
    Game - Set the time of day to 18.01
    -------- ALL UNITS PAUSED HERE --------
    Unit - Pause all units
    Wait 2.00 seconds
    Custom script: if cinSkip then
    Custom script: return
    Custom script: endif
    Sound - Set music volume to 100%
    Sound - Play Doom
    Camera - Apply gg_cam_Meteor_Shower_B for Player 2 (Blue) over 5.50 seconds
    Camera - Apply gg_cam_Meteor_Shower_B for Player 3 (Teal) over 5.50 seconds
    Wait 1.00 seconds
    Custom script: if cinSkip then
    Custom script: return
    Custom script: endif
    Unit - Unpause Doom2
    Unit - Unpause Doom3
    Unit - Order Doom2 to Special Doom Guard - Rain Of Fire (Center of Fire2 <gen>)
    Unit - Order Doom3 to Special Doom Guard - Rain Of Fire (Center of FireHouses <gen>)
    Wait 0.50 seconds
    Custom script: if cinSkip then
    Custom script: return
    Custom script: endif
    Unit - Unpause Doom1
    Unit - Unpause Doom4
    Unit - Order Doom1 to Special Doom Guard - Rain Of Fire (Center of Fire <gen>)
    Unit - Order Doom4 to Special Doom Guard - Rain Of Fire (Center of FireWarMill <gen>)
    Wait 0.50 seconds
    Custom script: if cinSkip then
    Custom script: return
    Custom script: endif
    Unit - Order Doom1 to Special Doom Guard - Rain Of Fire (Center of Fire <gen>)
    Unit - Order Doom3 to Special Doom Guard - Rain Of Fire (Center of FireHouses <gen>)
    Wait 0.50 seconds
    Custom script: if cinSkip then
    Custom script: return
    Custom script: endif
    Unit - Order Doom2 to Special Doom Guard - Rain Of Fire (Center of Fire2 <gen>)
    Unit - Order Doom4 to Special Doom Guard - Rain Of Fire (Center of FireWarMill <gen>)
    Wait 0.50 seconds
    Custom script: if cinSkip then
    Custom script: return
    Custom script: endif
    Unit - Order Doom1 to Special Doom Guard - Rain Of Fire (Center of Fire <gen>)
    Unit - Order Doom3 to Special Doom Guard - Rain Of Fire (Center of FireHouses <gen>)
    Wait 0.50 seconds
    Custom script: if cinSkip then
    Custom script: return
    Custom script: endif
    Unit - Set mana of Doom1 to 100%
    Unit - Set mana of Doom2 to 100%
    Unit - Set mana of Doom3 to 100%
    Unit - Set mana of Doom4 to 100%
    Unit - Order Doom2 to Special Doom Guard - Rain Of Fire (Center of Fire2 <gen>)
    Unit - Order Doom4 to Special Doom Guard - Rain Of Fire (Center of FireWarMill <gen>)
    Wait 0.50 seconds
    Custom script: if cinSkip then
    Custom script: return
    Custom script: endif
    Unit - Order Doom1 to Special Doom Guard - Rain Of Fire (Center of Fire <gen>)
    Unit - Order Doom3 to Special Doom Guard - Rain Of Fire (Center of FireHouses <gen>)
    If ((Farm 0049 <gen> is alive) Equal to True) then do (Kill Farm 0049 <gen>) else do (Do nothing)
    If ((Farm 0050 <gen> is alive) Equal to True) then do (Kill Farm 0050 <gen>) else do (Do nothing)
    Wait 0.50 seconds
    Custom script: if cinSkip then
    Custom script: return
    Custom script: endif
    Unit - Order Doom2 to Special Doom Guard - Rain Of Fire (Center of Fire2 <gen>)
    If ((Barracks 0019 <gen> is alive) Equal to True) then do (Kill Barracks 0019 <gen>) else do (Do nothing)
    Unit - Order Doom4 to Special Doom Guard - Rain Of Fire (Center of FireWarMill <gen>)
    If ((War Mill 0022 <gen> is alive) Equal to True) then do (Kill War Mill 0022 <gen>) else do (Do nothing)
    Wait 0.50 seconds
    Custom script: if cinSkip then
    Custom script: return
    Custom script: endif
    Unit - Order Doom1 to Special Doom Guard - Rain Of Fire (Center of Fire <gen>)
    If ((Blacksmith 0020 <gen> is alive) Equal to True) then do (Kill Blacksmith 0020 <gen>) else do (Do nothing)
    Unit - Order Doom3 to Special Doom Guard - Rain Of Fire (Center of FireHouses <gen>)
    If ((Farm 0051 <gen> is alive) Equal to True) then do (Kill Farm 0051 <gen>) else do (Do nothing)
    Wait 0.50 seconds
    Custom script: if cinSkip then
    Custom script: return
    Custom script: endif
    Unit - Order Doom2 to Special Doom Guard - Rain Of Fire (Center of Fire2 <gen>)
    Unit - Order Doom4 to Special Doom Guard - Rain Of Fire (Center of FireWarMill <gen>)
    Wait 0.50 seconds
    Custom script: if cinSkip then
    Custom script: return
    Custom script: endif
    Unit - Order Doom1 to Special Doom Guard - Rain Of Fire (Center of Fire <gen>)
    Unit - Order Doom3 to Special Doom Guard - Rain Of Fire (Center of FireHouses <gen>)
    Camera - Apply gg_cam_Demons_Comin for Player 2 (Blue) over 0.00 seconds
    Camera - Apply gg_cam_Demons_Comin for Player 3 (Teal) over 0.00 seconds
    Wait 0.50 seconds
    Custom script: if cinSkip then
    Custom script: return
    Custom script: endif
    Unit - Order Doom2 to Special Doom Guard - Rain Of Fire (Center of Fire2 <gen>)
    Unit - Order Doom4 to Special Doom Guard - Rain Of Fire (Center of FireWarMill <gen>)
    Wait 0.50 seconds
    Custom script: if cinSkip then
    Custom script: return
    Custom script: endif
    Unit - Order Doom1 to Special Doom Guard - Rain Of Fire (Center of Fire <gen>)
    Unit - Order Doom3 to Special Doom Guard - Rain Of Fire (Center of FireHouses <gen>)
    Unit - Remove Doom1 from the game
    Unit - Remove Doom2 from the game
    Unit - Remove Doom3 from the game
    Unit - Remove Doom4 from the game
    Wait 0.50 seconds
    Custom script: if cinSkip then
    Custom script: return
    Custom script: endif
    Camera - Apply gg_cam_Demons_Comin_B for Player 2 (Blue) over 6.50 seconds
    Camera - Apply gg_cam_Demons_Comin_B for Player 3 (Teal) over 6.50 seconds
    Wait 3.00 seconds
    Custom script: if cinSkip then
    Custom script: return
    Custom script: endif
    Unit - Make Priestess of the Moon 0004 <gen> face (Center of TichondriusAppear <gen>) over 0.30 seconds
    Unit - Make Suura face (Center of TichondriusAppear <gen>) over 0.30 seconds
    Unit - Unhide Doom5
    Special Effect - Create a special effect attached to the origin of Doom5 using Abilities\Spells\Human\MassTeleport\MassTeleportTarget.mdl
    Sound - Set position of DarkSummoningTarget1 <gen> to (Center of DoomAppear <gen>) with Z offset 0
    Sound - Play DarkSummoningTarget1 <gen>
    Wait 0.20 seconds
    Custom script: if cinSkip then
    Custom script: return
    Custom script: endif
    Unit - Unhide Doom6
    Special Effect - Create a special effect attached to the origin of Doom6 using Abilities\Spells\Human\MassTeleport\MassTeleportTarget.mdl
    Sound - Set position of DarkSummoningTarget1 <gen> to (Center of DoomAppear2 <gen>) with Z offset 0
    Sound - Play DarkSummoningTarget1 <gen>
    Wait 0.20 seconds
    Custom script: if cinSkip then
    Custom script: return
    Custom script: endif
    Unit - Unhide Doom7
    Special Effect - Create a special effect attached to the origin of Doom7 using Abilities\Spells\Human\MassTeleport\MassTeleportTarget.mdl
    Sound - Set position of DarkSummoningTarget1 <gen> to (Center of DoomAppear3 <gen>) with Z offset 0
    Sound - Play DarkSummoningTarget1 <gen>
    Unit - Unhide Hound1
    Special Effect - Create a special effect attached to the origin of Hound1 using Abilities\Spells\Human\MassTeleport\MassTeleportTarget.mdl
    Sound - Set position of DarkSummoningTarget1 <gen> to (Center of HoundAppear <gen>) with Z offset 0
    Sound - Play DarkSummoningTarget1 <gen>
    Wait 0.20 seconds
    Custom script: if cinSkip then
    Custom script: return
    Custom script: endif
    Unit - Unhide Hound2
    Special Effect - Create a special effect attached to the origin of Hound2 using Abilities\Spells\Human\MassTeleport\MassTeleportTarget.mdl
    Sound - Set position of DarkSummoningTarget1 <gen> to (Center of HoundAppear2 <gen>) with Z offset 0
    Sound - Play DarkSummoningTarget1 <gen>
    Wait 0.35 seconds
    Custom script: if cinSkip then
    Custom script: return
    Custom script: endif
    Unit - Unhide Tich
    Special Effect - Create a special effect attached to the origin of Tich using Abilities\Spells\Human\MassTeleport\MassTeleportTarget.mdl
    Sound - Set position of DarkSummoningTarget1 <gen> to (Center of TichondriusAppear <gen>) with Z offset 0
    Sound - Play DarkSummoningTarget1 <gen>
    -------- ---------- --------
    Player - Set Player 1 (Red) handicap to 10.00%
    Player - Set Player 10 (Light Blue) handicap to 10.00%
    -------- ---------- --------
    Destructible - Pick every destructible in 04_Destroy_Trees <gen> and do (Kill (Picked destructible))
    Wait 1.00 seconds
    Custom script: if cinSkip then
    Custom script: return
    Custom script: endif
    Unit - Create 1 Ghoul for Player 7 (Green) at (Center of 04_Undead_Invasion_01 <gen>) facing Default building facing degrees
    Unit - Order (Last created unit) to Move To (Center of 04_Undead_Invasion_01_A <gen>)
    Unit - Create 1 Ghoul for Player 7 (Green) at (Center of 04_Undead_Invasion_02 <gen>) facing Default building facing degrees
    Unit - Order (Last created unit) to Move To (Center of 04_Undead_Invasion_02_A <gen>)
    Unit - Create 1 Ghoul for Player 7 (Green) at (Center of 04_Undead_Invasion_03 <gen>) facing Default building facing degrees
    Unit - Order (Last created unit) to Move To (Center of 04_Undead_Invasion_03_A <gen>)
    -------- ---------- --------
    Cinematic - Fade out over 1.00 seconds using texture White Mask and color (0%, 0%, 0%) with 0% transparency
    Wait 1.00 seconds
    Custom script: if cinSkip then
    Custom script: return
    Custom script: endif
    Unit Group - Pick every unit in (Units owned by Player 10 (Light Blue)) and do (Unpause (Picked unit))
    Unit Group - Pick every unit in (Units owned by Player 1 (Red)) and do (Unpause (Picked unit))
    Unit Group - Pick every unit in (Units in (Playable map area) owned by Player 2 (Blue)) and do (Hide (Picked unit))
    Unit Group - Pick every unit in (Units in (Playable map area) owned by Player 3 (Teal)) and do (Hide (Picked unit))
    Camera - Apply gg_cam_04_Ending_Cinematic_02 for Player 2 (Blue) over 0 seconds
    Camera - Apply gg_cam_04_Ending_Cinematic_02 for Player 3 (Teal) over 0 seconds
    Cinematic - Fade in over 0.50 seconds using texture White Mask and color (0%, 0%, 0%) with 0% transparency
    -------- ---------- --------
    Unit - Create 1 Ghoul for Player 7 (Green) at (Center of 04_Undead_Invasion_01 <gen>) facing Default building facing degrees
    Unit - Order (Last created unit) to Move To (Center of 04_Undead_Invasion_01_A <gen>)
    Unit - Create 1 Ghoul for Player 7 (Green) at (Center of 04_Undead_Invasion_02 <gen>) facing Default building facing degrees
    Unit - Order (Last created unit) to Move To (Center of 04_Undead_Invasion_02_A <gen>)
    Unit - Create 1 Ghoul for Player 7 (Green) at (Center of 04_Undead_Invasion_03 <gen>) facing Default building facing degrees
    Unit - Order (Last created unit) to Move To (Center of 04_Undead_Invasion_03_A <gen>)
    -------- ---------- --------
    Unit - Create 1 Grunt for Player 1 (Red) at (Center of 04_Grunt_A <gen>) facing 225.00 degrees
    Set EndingGrunt = (Last created unit)
    Unit - Create 1 Footman for Player 10 (Light Blue) at (Center of 04_Grunt_A <gen>) facing 210.00 degrees
    Set EndingFootman = (Last created unit)
    Camera - Apply gg_cam_04_Ending_Cinematic_03 for Player 2 (Blue) over 12.00 seconds
    Camera - Apply gg_cam_04_Ending_Cinematic_03 for Player 3 (Teal) over 12.00 seconds
    Sound - Setup all volume channels for cinematics
    Cinematic - Send transmission to (All players) from EndingGrunt named Grunt: Play N01Grunt31 <gen> and display It's the undead! Defend yourselves!. Modify duration: Add 0 seconds and Don't wait
    Sound - Set volume of TreeFall1 <gen> to 70.00%
    Sound - Play TreeFall1 <gen>
    Sound - Set volume of TreeFall2 <gen> to 70.00%
    Sound - Play TreeFall2 <gen>
    Player - Make Player 1 (Red) treat Player 7 (Green) as an Enemy
    -------- ---------- --------
    Player - Set Player 1 (Red) handicap to 10.00%
    Player - Set Player 10 (Light Blue) handicap to 10.00%
    -------- ---------- --------
    Wait 2.00 seconds
    Custom script: if cinSkip then
    Custom script: return
    Custom script: endif
    Sound - Reset all volume channels to 100%
    Unit - Create 1 Doom Guard (Standard) for Player 7 (Green) at (Center of 04_Undead_Invasion_01 <gen>) facing Default building facing degrees
    Unit - Order (Last created unit) to Move To (Center of 04_Undead_Invasion_01_A <gen>)
    Unit - Create 1 Ghoul for Player 7 (Green) at (Center of 04_Undead_Invasion_02 <gen>) facing Default building facing degrees
    Unit - Order (Last created unit) to Move To (Center of 04_Undead_Invasion_02_A <gen>)
    Unit - Create 1 Ghoul for Player 7 (Green) at (Center of 04_Undead_Invasion_03 <gen>) facing Default building facing degrees
    Unit - Order (Last created unit) to Move To (Center of 04_Undead_Invasion_03_A <gen>)
    -------- ---------- --------
    Wait 3.00 seconds
    Custom script: if cinSkip then
    Custom script: return
    Custom script: endif
    Wait for N01Grunt31 <gen> to be 0 seconds from finished playing
    Custom script: if cinSkip then
    Custom script: return
    Custom script: endif
    Unit - Explode Farm 0044 <gen>
    Unit - Create 1 Doom Guard (Standard) for Player 7 (Green) at (Center of 04_Undead_Invasion_01 <gen>) facing Default building facing degrees
    Unit - Order (Last created unit) to Move To (Center of 04_Undead_Invasion_01_A <gen>)
    Unit - Create 1 Ghoul for Player 7 (Green) at (Center of 04_Undead_Invasion_02 <gen>) facing Default building facing degrees
    Unit - Order (Last created unit) to Move To (Center of 04_Undead_Invasion_02_A <gen>)
    Unit - Create 1 Ghoul for Player 7 (Green) at (Center of 04_Undead_Invasion_03 <gen>) facing Default building facing degrees
    Unit - Order (Last created unit) to Move To (Center of 04_Undead_Invasion_03_A <gen>)
    -------- ---------- --------
    Sound - Setup all volume channels for speech
    Cinematic - Send transmission to (All players) from EndingFootman named Footman: Play N01Footman32 <gen> and display They must have followed us from Lordaeron!. Modify duration: Add 0 seconds and Don't wait
    Player - Make Player 10 (Light Blue) treat Player 7 (Green) as an Enemy
    -------- ---------- --------
    Wait 1.00 seconds
    Custom script: if cinSkip then
    Custom script: return
    Custom script: endif
    Sound - Reset all volume channels to 100%
    Unit - Explode Farm 0043 <gen>
    Unit - Create 1 Abomination for Player 7 (Green) at (Center of 04_Undead_Invasion_01 <gen>) facing Default building facing degrees
    Unit - Order (Last created unit) to Attack-Move To (Center of (Playable map area))
    Unit - Create 1 Abomination for Player 7 (Green) at (Center of 04_Undead_Invasion_02 <gen>) facing Default building facing degrees
    Unit - Order (Last created unit) to Attack-Move To (Center of (Playable map area))
    Unit - Create 1 Gargoyle for Player 7 (Green) at (Center of 04_Undead_Invasion_04 <gen>) facing Default building facing degrees
    Unit - Order (Last created unit) to Attack-Move To (Center of (Playable map area))
    Unit - Create 1 Gargoyle for Player 7 (Green) at (Center of 04_Undead_Invasion_04 <gen>) facing Default building facing degrees
    Unit - Order (Last created unit) to Attack-Move To (Center of (Playable map area))
    -------- ---------- --------
    Wait 1.00 seconds
    Custom script: if cinSkip then
    Custom script: return
    Custom script: endif
    Unit - Explode Farm 0045 <gen>
    Unit - Create 1 Ghoul for Player 7 (Green) at (Center of 04_Undead_Invasion_01 <gen>) facing Default building facing degrees
    Unit - Order (Last created unit) to Move To (Center of 04_Undead_Invasion_01_A <gen>)
    Unit - Create 1 Ghoul for Player 7 (Green) at (Center of 04_Undead_Invasion_02 <gen>) facing Default building facing degrees
    Unit - Order (Last created unit) to Move To (Center of 04_Undead_Invasion_02_A <gen>)
    Unit - Create 1 Gargoyle for Player 7 (Green) at (Center of 04_Undead_Invasion_04 <gen>) facing Default building facing degrees
    Unit - Order (Last created unit) to Attack-Move To (Center of (Playable map area))
    Unit - Create 1 Gargoyle for Player 7 (Green) at (Center of 04_Undead_Invasion_04 <gen>) facing Default building facing degrees
    Unit - Order (Last created unit) to Attack-Move To (Center of (Playable map area))
    Unit - Create 1 Gargoyle for Player 7 (Green) at (Center of 04_Undead_Invasion_04 <gen>) facing Default building facing degrees
    Unit - Order (Last created unit) to Attack-Move To (Center of (Playable map area))
    Unit - Create 1 Gargoyle for Player 7 (Green) at (Center of 04_Undead_Invasion_04 <gen>) facing Default building facing degrees
    Unit - Order (Last created unit) to Attack-Move To (Center of (Playable map area))
    -------- ---------- --------
    Wait 1.00 seconds
    Custom script: if cinSkip then
    Custom script: return
    Custom script: endif
    Unit - Create 1 Abomination for Player 7 (Green) at (Center of 04_Undead_Invasion_01 <gen>) facing Default building facing degrees
    Unit - Order (Last created unit) to Attack-Move To (Center of (Playable map area))
    Unit - Create 1 Abomination for Player 7 (Green) at (Center of 04_Undead_Invasion_02 <gen>) facing Default building facing degrees
    Unit - Order (Last created unit) to Attack-Move To (Center of (Playable map area))
    Unit - Create 1 Abomination for Player 7 (Green) at (Center of 04_Undead_Invasion_03 <gen>) facing Default building facing degrees
    Unit - Order (Last created unit) to Attack-Move To (Center of (Playable map area))
    Unit - Create 1 Gargoyle for Player 7 (Green) at (Center of 04_Undead_Invasion_04 <gen>) facing Default building facing degrees
    Unit - Order (Last created unit) to Attack-Move To (Center of (Playable map area))
    Unit - Create 1 Gargoyle for Player 7 (Green) at (Center of 04_Undead_Invasion_04 <gen>) facing Default building facing degrees
    Unit - Order (Last created unit) to Attack-Move To (Center of (Playable map area))
    Unit - Create 1 Gargoyle for Player 7 (Green) at (Center of 04_Undead_Invasion_04 <gen>) facing Default building facing degrees
    Unit - Order (Last created unit) to Attack-Move To (Center of (Playable map area))
    Unit - Create 1 Gargoyle for Player 7 (Green) at (Center of 04_Undead_Invasion_04 <gen>) facing Default building facing degrees
    Unit - Order (Last created unit) to Attack-Move To (Center of (Playable map area))
    -------- ---------- --------
    Wait 1.00 seconds
    Custom script: if cinSkip then
    Custom script: return
    Custom script: endif
    Unit - Create 1 Abomination for Player 7 (Green) at (Center of 04_Undead_Invasion_01 <gen>) facing Default building facing degrees
    Unit - Order (Last created unit) to Attack-Move To (Center of (Playable map area))
    Unit - Create 1 Abomination for Player 7 (Green) at (Center of 04_Undead_Invasion_02 <gen>) facing Default building facing degrees
    Unit - Order (Last created unit) to Attack-Move To (Center of (Playable map area))
    Unit - Create 1 Gargoyle for Player 7 (Green) at (Center of 04_Undead_Invasion_04 <gen>) facing Default building facing degrees
    Unit - Order (Last created unit) to Attack-Move To (Center of (Playable map area))
    Unit - Create 1 Gargoyle for Player 7 (Green) at (Center of 04_Undead_Invasion_04 <gen>) facing Default building facing degrees
    Unit - Order (Last created unit) to Attack-Move To (Center of (Playable map area))
    -------- ---------- --------
    Wait 1.00 seconds
    Custom script: if cinSkip then
    Custom script: return
    Custom script: endif
    Wait for N01Footman32 <gen> to be 0 seconds from finished playing
    Custom script: if cinSkip then
    Custom script: return
    Custom script: endif
    Camera - Apply gg_cam_04_Ending_Cinematic_04 for Player 2 (Blue) over 0 seconds
    Camera - Apply gg_cam_04_Ending_Cinematic_04 for Player 3 (Teal) over 0 seconds
    Camera - Apply gg_cam_04_Ending_Cinematic_05 for Player 2 (Blue) over 10.00 seconds
    Camera - Apply gg_cam_04_Ending_Cinematic_05 for Player 3 (Teal) over 10.00 seconds
    Sound - Setup all volume channels for cinematics
    Cinematic - Send transmission to (All players) from a Player 3 (Teal) Archer named Archer at (Center of (Playable map area)): Play N01Archer33 <gen> and display Elune save us! The dead advance in waves!. Modify duration: Add 0 seconds and Wait
    Cinematic - Send transmission to (All players) from Tyrande named Tyrande Whisperwind: Play N01Tyrande34 <gen> and display Quickly, my sisters, back to the trees! We are no match for a force this vast.. Modify duration: Add 0 seconds and Don't wait
    -------- ---------- --------
    Wait 1.00 seconds
    Custom script: if cinSkip then
    Custom script: return
    Custom script: endif
    Unit - Create 1 Abomination for Player 7 (Green) at (Center of 04_Undead_Invasion_01 <gen>) facing Default building facing degrees
    Unit - Order (Last created unit) to Attack-Move To (Center of (Playable map area))
    Unit - Create 1 Abomination for Player 7 (Green) at (Center of 04_Undead_Invasion_02 <gen>) facing Default building facing degrees
    Unit - Order (Last created unit) to Attack-Move To (Center of (Playable map area))
    Unit - Create 1 Abomination for Player 7 (Green) at (Center of 04_Undead_Invasion_03 <gen>) facing Default building facing degrees
    Unit - Order (Last created unit) to Attack-Move To (Center of (Playable map area))
    Unit - Create 1 Gargoyle for Player 7 (Green) at (Center of 04_Undead_Invasion_04 <gen>) facing Default building facing degrees
    Unit - Order (Last created unit) to Attack-Move To (Center of (Playable map area))
    Unit - Create 1 Gargoyle for Player 7 (Green) at (Center of 04_Undead_Invasion_04 <gen>) facing Default building facing degrees
    Unit - Order (Last created unit) to Attack-Move To (Center of (Playable map area))
    Unit - Create 1 Gargoyle for Player 7 (Green) at (Center of 04_Undead_Invasion_04 <gen>) facing Default building facing degrees
    Unit - Order (Last created unit) to Attack-Move To (Center of (Playable map area))
    -------- ---------- --------
    Wait 2.00 seconds
    Custom script: if cinSkip then
    Custom script: return
    Custom script: endif
    Unit - Unhide Tyrande
    Unit - Order Tyrande to Move To (Center of TyrandeRun01 <gen>)
    Wait for (Last played sound) to be 0 seconds from finished playing
    Custom script: if cinSkip then
    Custom script: return
    Custom script: endif
    Wait 0.50 seconds
    Custom script: if cinSkip then
    Custom script: return
    Custom script: endif
    Set CancelOutro = False
    Cinematic - Fade out over 2.00 seconds using texture White Mask and color (0%, 0%, 0%) with 0% transparency
    Sound - Remove WaterStreamLoop1 <gen> across StreamLoop01 <gen>
    Sound - Remove WaterStreamLoop1 <gen> across StreamLoop02 <gen>
    Sound - Remove WaterStreamLoop1 <gen> across StreamLoop03 <gen>
    Sound - Remove WaterStreamLoop1 <gen> across StreamLoop04 <gen>
    Sound - Remove WaterStreamLoop1 <gen> across StreamLoop05 <gen>
    Sound - Remove WaterStreamLoop1 <gen> across StreamLoop06 <gen>
    Sound - Remove WaterStreamLoop1 <gen> across StreamLoop07 <gen>
    Sound - Remove WaterStreamLoop1 <gen> across StreamLoop08 <gen>
    Sound - Remove WaterStreamLoop1 <gen> across StreamLoop09 <gen>
    Sound - Remove WaterStreamLoop1 <gen> across StreamLoop10 <gen>
    Sound - Remove WaterStreamLoop1 <gen> across StreamLoop11 <gen>
    Wait 2.00 seconds
    Trigger - Remove (This trigger) from the trigger queue
    -------- Victory --------
    Cinematic - Turn cinematic mode Off for (All players)
    Unit Group - Pick every unit in (Units in (Playable map area)) and do (Actions)
      Loop - Actions
        Unit - Make (Picked unit) Invulnerable
        Unit - Order (Picked unit) to Stop
        Unit - Hide (Picked unit)
    Trigger - Run Endtext <gen> (checking conditions)
Defeat
  Events
    Unit - A unit owned by Player 2 (Blue) Dies
    Unit - A unit owned by Player 3 (Teal) Dies
  Conditions
    GAMEOVER Equal to False
    Or - Any (Conditions) are true
      Conditions
        (Count structures controlled by Player 2 (Blue) (Include incomplete structures)) Equal to 0
        (Count structures controlled by Player 3 (Teal) (Include incomplete structures)) Equal to 0
  Actions
    Set GAMEOVER = True
    Sound - Play QuestFailed <gen>
    Quest - Display to (All players) the Mission Failed message: |cffffcc00MISSION FAILED|rAll of your buildings have been destroyed
    Wait Campaign quest delay seconds
    Trigger - Turn off ExchangeUnits <gen>
    Trigger - Turn off GiveResource <gen>
    Unit Group - Pick every unit in (Units in (Playable map area)) and do (Actions)
      Loop - Actions
        Unit - Make (Picked unit) Invulnerable
        Unit - Order (Picked unit) to Stop
        Unit - Hide (Picked unit)
//TESH.scrollpos=0
//TESH.alwaysfold=0
//! zinc
library MyLib requires TimerUtils{
    constant integer SPELL_ID = 'A001';
    constant integer UNIT_ID = 'e000';
    function Damage (integer level) -> integer{
        if (level == 3)
            return level * 100 + 50;
        else
            return level * 100 + 100;
    }
    function Speed (integer level) -> integer{
        return level * 5 + 15;
    }
   
    function MaxDistance (integer level) -> integer{
        return level * 250 + 500;
    }
    struct myStruct{
        integer maxDistance, damage, speed, currentDistance, level;
        unit caster;
        unit dummy;
        method loopActions(){
            location loc = GetUnitLoc(this.dummy);
            location tmpLoc = PolarProjectionBJ(loc,this.speed,GetUnitFacing(this.dummy));
            real x = GetLocationX(tmpLoc);
            real y = GetLocationY(tmpLoc);
            group grp = CreateGroup();
            unit u, d;
            GroupEnumUnitsInRange(grp, x, y, 100, null);
            SetUnitX(this.dummy,x);
            SetUnitY(this.dummy,y);
            this.currentDistance = this.currentDistance + this.speed;
            do{
                u = FirstOfGroup(grp);
                if (IsUnitEnemy(u,GetOwningPlayer(this.dummy)) && IsUnitType(u, UNIT_TYPE_STRUCTURE) == FALSE && GetUnitState(u, UNIT_STATE_LIFE) > 0 ){
                    d = CreateUnit(GetOwningPlayer(this.dummy), 'e001', x, y, 0);
                    UnitAddAbility(d, 'A002');
                    SetUnitAbilityLevel(d, 'A002', this.level);
                    IssueTargetOrder(d, "creepthunderbolt", u);
                    UnitApplyTimedLife(d, 'BTLF', 1.00);
                    KillUnit(this.dummy);
                    UnitDamageTarget(this.caster, u, this.damage, true, false, ATTACK_TYPE_NORMAL, DAMAGE_TYPE_NORMAL, WEAPON_TYPE_WHOKNOWS);
                    this.destroy();
                    ReleaseTimer(GetExpiredTimer());
                    DestroyGroup(grp);
                    break;
                }
                GroupRemoveUnit(grp,u);
            }
            while (u != null);
            if (this.currentDistance > this.maxDistance && GetUnitState(this.dummy, UNIT_STATE_LIFE) > 0 ){
                KillUnit(this.dummy);
                this.destroy();
                ReleaseTimer(GetExpiredTimer());
            }
            RemoveLocation(loc);
            RemoveLocation(tmpLoc);
            DestroyGroup(grp);
            d = null;
            u = null;
            loc = null;
            tmpLoc = null;
        }
    }
   
    function onLoop(){
        myStruct a = GetTimerData(GetExpiredTimer());
        a.loopActions();
    }
    function start(){
        timer tm = NewTimer();
        myStruct a = myStruct.create();
        unit u = GetTriggerUnit();
        location loc1;
        location loc2 = GetSpellTargetLoc();
        integer level = GetUnitAbilityLevel(u, SPELL_ID);
        if (GetSpellAbilityId() == SPELL_ID ){
            a.maxDistance = MaxDistance(level);
            a.damage = Damage(level);
            a.speed = Speed(level);
            a.currentDistance = 0;
            a.caster = u;
            a.level = GetUnitAbilityLevel(a.caster, SPELL_ID);
            loc1 = GetUnitLoc(a.caster);
            a.dummy = CreateUnitAtLoc(GetTriggerPlayer(), UNIT_ID, loc1, AngleBetweenPoints(loc1,loc2));
            SetUnitX(a.dummy,GetLocationX(loc1));
            SetUnitY(a.dummy,GetLocationY(loc1));
            SetTimerData(tm,a);
            TimerStart(tm,0.03125,true,function onLoop);
        }
        else{
            a.destroy();
            ReleaseTimer(tm);
        }
        RemoveLocation(loc1);
        RemoveLocation(loc2);
        loc1 = null;
        loc2 = null;
        tm = null;
        u = null;
    }
    function onInit(){
        gg_trg_PowerShot = CreateTrigger();
        TriggerRegisterPlayerUnitEvent(gg_trg_PowerShot, Player(2),EVENT_PLAYER_UNIT_SPELL_EFFECT, null);
        TriggerAddAction(gg_trg_PowerShot,function start);
    }
}
//! endzinc
//TESH.scrollpos=2
//TESH.alwaysfold=0
//! zinc
library SleepingVenom{
    function SleepingVenom(){
        location loc;
        unit u;
        if (GetRandomInt(1, 20) <= GetUnitAbilityLevel(udg_GDD_DamageSource, 'A003')){
            loc = GetUnitLoc(udg_GDD_DamagedUnit);
            u = CreateUnitAtLoc(GetOwningPlayer(udg_GDD_DamageSource), 'e001', loc, 0);
            UnitAddAbility(u, 'A004');
            SetUnitAbilityLevel(u, 'A004', GetUnitAbilityLevel(udg_GDD_DamageSource, 'A003'));
            IssueTargetOrder(u, "sleep", udg_GDD_DamagedUnit);
            UnitApplyTimedLife( u, 'BTLF', 1.00);
            RemoveLocation(loc);
        }
        loc = null;
        u = null;
    }
    function onInit(){
        gg_trg_SleepingVenom = CreateTrigger();
        TriggerRegisterVariableEvent(gg_trg_SleepingVenom, "udg_GDD_Event", EQUAL, 0);
        TriggerAddAction(gg_trg_SleepingVenom, function SleepingVenom);
    }
}
//! endzinc
//TESH.scrollpos=0
//TESH.alwaysfold=0
//! zinc
library AOEHeal{
    function AOEHeal(){
        unit u, trgUnit = GetTriggerUnit();
        player p = GetTriggerPlayer();
        real x = GetUnitX(trgUnit), y = GetUnitY(trgUnit);
        group grp = CreateGroup();
        integer spellId = GetSpellAbilityId();
        if (spellId == 'AHhb' && GetUnitAbilityLevel(trgUnit, spellId) == 1){
            GroupEnumUnitsInRange(grp, x, y, 600, null);
            do{
                u = FirstOfGroup(grp);
                if (u!=trgUnit && GetOwningPlayer(u)==p && IsUnitType(u,UNIT_TYPE_STRUCTURE) == FALSE && u != GetSpellTargetUnit()){
                    DestroyEffect(AddSpecialEffect("Abilities\\Spells\\Human\\HolyBolt\\HolyBoltSpecialArt.mdl", GetUnitX(u), GetUnitY(u)));
                    if (GetUnitState(u, UNIT_STATE_LIFE) + 400 > GetUnitState(u,UNIT_STATE_MAX_LIFE))
                        SetUnitState(u, UNIT_STATE_LIFE, GetUnitState(u, UNIT_STATE_MAX_LIFE));
                    else
                        SetUnitState(u, UNIT_STATE_LIFE, GetUnitState(u, UNIT_STATE_LIFE) + 400);
                }
                GroupRemoveUnit(grp, u);
            }
            while (u != null);
        }
        DestroyGroup(grp);
        grp = null;
        p = null;
        u = null;
        trgUnit = null;
    }
    function onInit (){
        trigger t = CreateTrigger();
        TriggerRegisterPlayerUnitEvent( t, Player(9), EVENT_PLAYER_UNIT_SPELL_EFFECT, null );
        TriggerAddAction( t, function AOEHeal);
    }
}
//! endzinc
Default melee game initialization for all players
//TESH.scrollpos=0
//TESH.alwaysfold=0
library TimerUtils initializer init
//*********************************************************************
//* TimerUtils (red+blue+orange flavors for 1.24b+) 2.0
//* ----------
//*
//*  To implement it , create a custom text trigger called TimerUtils
//* and paste the contents of this script there.
//*
//*  To copy from a map to another, copy the trigger holding this
//* library to your map.
//*
//* (requires vJass)   More scripts: htt://www.wc3c.net
//*
//* For your timer needs:
//*  * Attaching
//*  * Recycling (with double-free protection)
//*
//* set t=NewTimer()      : Get a timer (alternative to CreateTimer)
//* set t=NewTimerEx(x)   : Get a timer (alternative to CreateTimer), call
//*                            Initialize timer data as x, instead of 0.
//*
//* ReleaseTimer(t)       : Relese a timer (alt to DestroyTimer)
//* SetTimerData(t,2)     : Attach value 2 to timer
//* GetTimerData(t)       : Get the timer's value.
//*                         You can assume a timer's value is 0
//*                         after NewTimer.
//*
//* Multi-flavor:
//*    Set USE_HASH_TABLE to true if you don't want to complicate your life.
//*
//* If you like speed and giberish try learning about the other flavors.
//*
//********************************************************************

//================================================================
    globals
        //How to tweak timer utils:
        // USE_HASH_TABLE = true  (new blue)
        //  * SAFEST
        //  * SLOWEST (though hash tables are kind of fast)
        //
        // USE_HASH_TABLE = false, USE_FLEXIBLE_OFFSET = true  (orange)
        //  * kinda safe (except there is a limit in the number of timers)
        //  * ALMOST FAST
        //
        // USE_HASH_TABLE = false, USE_FLEXIBLE_OFFSET = false (red)
        //  * THE FASTEST (though is only  faster than the previous method
        //                  after using the optimizer on the map)
        //  * THE LEAST SAFE ( you may have to tweak OFSSET manually for it to
        //                     work)
        //
        private constant boolean USE_HASH_TABLE      = true
        private constant boolean USE_FLEXIBLE_OFFSET = false

        private constant integer OFFSET     = 0x100000
        private          integer VOFFSET    = OFFSET
             
        //Timers to preload at map init:
        private constant integer QUANTITY   = 256
       
        //Changing this  to something big will allow you to keep recycling
        // timers even when there are already AN INCREDIBLE AMOUNT of timers in
        // the stack. But it will make things far slower so that's probably a bad idea...
        private constant integer ARRAY_SIZE = 8190

    endglobals

    //==================================================================================================
    globals
        private integer array data[ARRAY_SIZE]
        private hashtable     ht
    endglobals
   
   

    //It is dependent on jasshelper's recent inlining optimization in order to perform correctly.
    function SetTimerData takes timer t, integer value returns nothing
        static if(USE_HASH_TABLE) then
            // new blue
            call SaveInteger(ht,0,GetHandleId(t), value)
           
        elseif (USE_FLEXIBLE_OFFSET) then
            // orange
            static if (DEBUG_MODE) then
                if(GetHandleId(t)-VOFFSET<0) then
                    call BJDebugMsg("SetTimerData: Wrong handle id, only use SetTimerData on timers created by NewTimer")
                endif
            endif
            set data[GetHandleId(t)-VOFFSET]=value
        else
            // new red
            static if (DEBUG_MODE) then
                if(GetHandleId(t)-OFFSET<0) then
                    call BJDebugMsg("SetTimerData: Wrong handle id, only use SetTimerData on timers created by NewTimer")
                endif
            endif
            set data[GetHandleId(t)-OFFSET]=value
        endif        
    endfunction

    function GetTimerData takes timer t returns integer
        static if(USE_HASH_TABLE) then
            // new blue
            return LoadInteger(ht,0,GetHandleId(t) )
           
        elseif (USE_FLEXIBLE_OFFSET) then
            // orange
            static if (DEBUG_MODE) then
                if(GetHandleId(t)-VOFFSET<0) then
                    call BJDebugMsg("SetTimerData: Wrong handle id, only use SetTimerData on timers created by NewTimer")
                endif
            endif
            return data[GetHandleId(t)-VOFFSET]
        else
            // new red
            static if (DEBUG_MODE) then
                if(GetHandleId(t)-OFFSET<0) then
                    call BJDebugMsg("SetTimerData: Wrong handle id, only use SetTimerData on timers created by NewTimer")
                endif
            endif
            return data[GetHandleId(t)-OFFSET]
        endif        
    endfunction

    //==========================================================================================
    globals
        private timer array tT[ARRAY_SIZE]
        private integer tN = 0
        private constant integer HELD=0x28829022
        //use a totally random number here, the more improbable someone uses it, the better.
       
        private boolean       didinit = false
    endglobals
    private keyword init

    //==========================================================================================
    // I needed to decide between duplicating code ignoring the "Once and only once" rule
    // and using the ugly textmacros. I guess textmacros won.
    //
    //! textmacro TIMERUTIS_PRIVATE_NewTimerCommon takes VALUE
    // On second thought, no.
    //! endtextmacro

    function NewTimerEx takes integer value returns timer
        if (tN==0) then
            if (not didinit) then
                //This extra if shouldn't represent a major performance drawback
                //because QUANTITY rule is not supposed to be broken every day.
                call init.evaluate()
                set tN = tN - 1
            else
                //If this happens then the QUANTITY rule has already been broken, try to fix the
                // issue, else fail.
                debug call BJDebugMsg("NewTimer: Warning, Exceeding TimerUtils_QUANTITY, make sure all timers are getting recycled correctly")
                set tT[0]=CreateTimer()
                static if( not USE_HASH_TABLE) then
                    debug call BJDebugMsg("In case of errors, please increase it accordingly, or set TimerUtils_USE_HASH_TABLE to true")
                    static if( USE_FLEXIBLE_OFFSET) then
                        if (GetHandleId(tT[0])-VOFFSET<0) or (GetHandleId(tT[0])-VOFFSET>=ARRAY_SIZE) then
                            //all right, couldn't fix it
                            call BJDebugMsg("NewTimer: Unable to allocate a timer, you should probably set TimerUtils_USE_HASH_TABLE to true or fix timer leaks.")
                            return null
                        endif
                    else
                        if (GetHandleId(tT[0])-OFFSET<0) or (GetHandleId(tT[0])-OFFSET>=ARRAY_SIZE) then
                            //all right, couldn't fix it
                            call BJDebugMsg("NewTimer: Unable to allocate a timer, you should probably set TimerUtils_USE_HASH_TABLE to true or fix timer leaks.")
                            return null
                        endif
                    endif
                endif
            endif
        else
            set tN=tN-1
        endif
        call SetTimerData(tT[tN],value)
     return tT[tN]
    endfunction
   
    function NewTimer takes nothing returns timer
        return NewTimerEx(0)
    endfunction


    //==========================================================================================
    function ReleaseTimer takes timer t returns nothing
        if(t==null) then
            debug call BJDebugMsg("Warning: attempt to release a null timer")
            return
        endif
        if (tN==ARRAY_SIZE) then
            debug call BJDebugMsg("Warning: Timer stack is full, destroying timer!!")

            //stack is full, the map already has much more troubles than the chance of bug
            call DestroyTimer(t)
        else
            call PauseTimer(t)
            if(GetTimerData(t)==HELD) then
                debug call BJDebugMsg("Warning: ReleaseTimer: Double free!")
                return
            endif
            call SetTimerData(t,HELD)
            set tT[tN]=t
            set tN=tN+1
        endif    
    endfunction

    private function init takes nothing returns nothing
     local integer i=0
     local integer o=-1
     local boolean oops = false
        if ( didinit ) then
            return
        else
            set didinit = true
        endif
     
        static if( USE_HASH_TABLE ) then
            set ht = InitHashtable()
            loop
                exitwhen(i==QUANTITY)
                set tT[i]=CreateTimer()
                call SetTimerData(tT[i], HELD)
                set i=i+1
            endloop