1. Are you planning to upload your awesome map to Hive? Please review the rules here.
    Dismiss Notice
  2. And she's bought a stairway to heaven. The 6th Special Effect Contest Results are here.
    Dismiss Notice
  3. Seek unity between the elements in the 22nd Terraining Contest Poll.
    Dismiss Notice
  4. Seize the moment! The 18th Mini Mapping Contest has commenced.
    Dismiss Notice
  5. The heavens smile on the old faithful. The 16th Techtree Contest has begun.
    Dismiss Notice
  6. 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 Sentinel 04 v1.05.w3x
Variables
Initialization
Initialization
Preface and Systems
SAVE & LOAD
SaveLoad Initialization
SaveLoad Load
SaveLoad Save
TWO PLAYER INITIALIZATION
Two Player Initialization
START OF GAME TRIGGERS
Start SCREEN INIT
Start SCREEN TEXT
Start TOOGLE DIFFICULTY
Start FINISH
Start APPLY CHANGES
END OF GAME TRIGGERS
End Game
POWERUPS
Powerups ACQUIRE
Powerups COMMON
SHARE
Share INIT
Share Research BEGIN
Share Research CANCEL
Share Research FINISH
Share Techtree BEGIN CONSTRUCTION
Share Techtree CANCEL CONSTRUCTION
Share Techtree FINISH CONSTRUCTION
Share Techtree BEGIN AN UPGRADE
Share Techtree CANCEL AN UPGRADE
Share Techtree FINISH AN UPGRADE
Share DEATH
Share COMMON
ITEM
ITEM Initialization
ITEM Unit Drops
ITEM Desc Drops
CINEMATIC
Enable or Disable Experience
Prepare for Cinematic
Restore after Cinematic
Skip Cinematic
MISC
Bounty INIT
Bounty WORK
Hero Stats SINGLE HERO
Hero Stats INITIATE
Tribute
Player Leaves
Spells
Portal Scroll CAST
HERO
Blade Shield INIT
Blade Shield BEGIN
Blade Shield LOOP
Blade Shield EXPIRE
Blade Shield DEATH
Blade Shield LOADS INTO TRANSPORT
Shift
Shift WORK
Eclipse INIT
Eclipse LEARN
Eclipse BEGIN
Eclipse EXPIRE
Twilight Guardian BEGIN
Twilight Guardian DEATH
Hero Glow COSMETIC
ITEM
Shadow Orb INIT
Shadow Orb CUMULATIVE
xxxxxxxxxxxxxxxxxxxx
Intro Cinematic
Intro Setup
Intro Cinematic Q
Intro Cleanup
Gameplay
Intro RunnerEntersCave
Intro RunnerWounded
StupidBoatTricks
Arrive
Ancient Summoned
Watcher Turn
Arrive Setup
Arrive Cleanup
Arrive Cinematic Q
Victory Cinematic
Victory Setup
Victory Cinematic Q
Victory Cleanup
TreeBridge MiniCin
Destroy Tree Bridge MiniCin
xxxxxxxxxxxxxxxxxxxx
Quests
Quest Boat Create
Quest Boat Discover Que
Quest Boat Completed Que
Quest Escape Create
Quest Escape Discover Que
Quest Escape Completed
Quest Excavator Create
Quest Excavator Discover Que
Quest Excavator Update Que
Quest Excavator Killed Track
Mission Failed BaseDead
Mission Failed Runner dead
Mission Failed Boats dead
Hints
Hint Runner Que
Hint Upgrade Que
Hint Upgrade
Hint Teleport Que
Hint Teleport
Hint Gold Coins Que
Hint Gold Coins
Hint Barrels Trees Que
AI
Start AI
AI Resources
xxxxxxxxxxxxxxxxxxxx
Combat Check
Combat Detected
Combat Resolved
Victory Defeat
Defeat Runner Dead
Defeat Boats Dead
Defeat Units Dead
Runner Quest
Runner Quest
xxxxxxxxxxxxxxxxxxxx
Minimap Pings
Ping Boat
Ping Escape
Voice Overs
VO Runner Slain Que
VO ReachBoats Que
VO Excavation Sites Que
Excavators
Staff of TP Var Assign
ExcavatorsMine1
ExcavatorsMine2
ExcavatorsMine3
ExcavatorsMine4
Excavator01Attacked
Excavator02Attacked
Excavator03Attacked
Excavator04Attacked
ExcavatorAttacker
Reinforcements
Get Boats
Reinforce01
Runner Victory
Runner Makes It
xxxxxxxxxxxxxxxxxxxx
Ambush
Ambush Tripwire
Ambush
Ambush Expire
Panda
Secret Found Brewmaster Area
HiPanda
HiPanda2
ByePanda
Storm
Secret Found Storm Area
Secret Found Cool Stuff
PathingBlockersKill
The Storm
Occasional Lightning
Waterfalls
Waterfalls COMMON
xxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxx
Debug
TestPause
TestPause2
Stand2Test
Stand2Test2
Stand2Test3
Stand2Testoff
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 = "|cffffcc00" + 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 = "|cffff6060" + 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 = "|cff6060ff" + c + "|r" + r
        elseif c == "-" then
            set r = "|cffdddddd-|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
        call DisplayTextToPlayer(GetTriggerPlayer(),0,0,"Decoding sucessful")
        return true
    endif
    call DisplayTextToPlayer(GetTriggerPlayer(),0,0,"Decoding failed")
    return false
endfunction
Name Type Is Array Initial Value
AI_Helper_Timer timer No
Ambush_Vis_A fogmodifier No
Ambush_Vis_B fogmodifier No
AmbushTimer timer Yes
AmbushUnit unit Yes
Ancient unit No
AncientSizeX real No 100.00
AncientSizeY real No 100.00
AncientSizeZ real No 100.00
AncientSpawner unit No
APG2_Player force No Force01
ArrivalBump terraindeformation No
ArrivalWitness unit No
ArriveSkipped boolean No
Bonus_Agility integer No
Bonus_Intelligence integer No
Bonus_Strength integer No
Bounty_NEUTRAL_BASE integer Yes
Bounty_NEUTRAL_DICE integer Yes
Bounty_NEUTRAL_SIDES integer Yes
Bounty_RACE_BASE integer Yes
Bounty_RACE_DICE integer Yes
Bounty_RACE_SIDES integer Yes
CameraReturnPoint location No
Cinematic_NAME string No
Cinematic_Preparation_Finished boolean No
Code string No
Code_Is_Active boolean No
CombatCheckTimer timer No
CONSTANT_Glaive_COUNT_MAX integer Yes
CONSTANT_Glaive_COUNT_MIN integer Yes
CONSTANT_Glaive_DAMAGE real Yes
CONSTANT_Glaive_DAMAGE_RANGE real Yes
CONSTANT_Glaive_DURATION real Yes
CONSTANT_Glaive_EFFECT_01 string Yes
CONSTANT_Glaive_EFFECT_02 string Yes
CONSTANT_Glaive_EFFECT_03 modelfile Yes
CONSTANT_Glaive_EFFECT_04 modelfile Yes
CONSTANT_Glaive_EFFECT_05 modelfile Yes
CONSTANT_Glaive_HIT_EFFECT_01 string Yes
CONSTANT_Glaive_HIT_EFFECT_02 modelfile Yes
CONSTANT_Glaive_HIT_EFFECT_03 modelfile Yes
CONSTANT_Glaive_HIT_EFFECT_04 modelfile Yes
CONSTANT_Glaive_HIT_EFFECT_05 modelfile Yes
CONSTANT_Glaive_INTERVAL real Yes
CONSTANT_Glaive_LIMIT integer No
CONSTANT_Glaive_ORBITRANGE real Yes
CONSTANT_Glaive_SPEED_PER_SEC real Yes
CurrentRunner unit No
Difficulty string No
EMPTY itemcode No
EntangledGoldMine unit No UnitNull
EntangledGoldMine2 unit No UnitNull
ExcavationVis fogmodifier No
ExcavationVis_B fogmodifier No
Excavator01 unit No
Excavator02 unit No
Excavator03 unit No
Excavator04 unit No
Excavator_TIMER timer Yes
ExcavatorsKilledInt integer No
ExpDisabledForMaiev boolean No false
FinalVision01_1 fogmodifier No
FinalVision01_2 fogmodifier No
Furion unit No
GameHasStarted boolean No
GameOver boolean No false
Gives_Bounty force No
Glaive_ANGLE real Yes
Glaive_EFFECT_01 effect Yes
Glaive_EFFECT_02 effect Yes
Glaive_EFFECT_03 effect Yes
Glaive_EFFECT_04 effect Yes
Glaive_EFFECT_05 effect Yes
Glaive_EXPIRE timer Yes
Glaive_GROUP group Yes
Glaive_LEVEL integer Yes
Glaive_LOOP timer Yes
Glaive_OWNER unit Yes
Glaive_OWNER_HIDDEN unit Yes
Glaive_STATE string Yes
Glaive_TARGET unit Yes
Glaive_TARGET_HIDDEN unit Yes
Glaive_UNIT unit Yes
HiddenUnits group No
HuntressShaniqua unit No UnitNull
InCinematic boolean No false
InfernalSpawnedBoo boolean No
InFlashback boolean No
IntroNaga1 unit No
IntroNaga2 unit No
IntroNaga3 unit No
IntroNagaGroup group No
IntroNagaMyrm1 unit No
IntroNagaMyrm2 unit No
IntroRunner unit No
IntroRunnerInCave boolean No
IntroSkipped boolean No false
ITEM_DESC destructable Yes
ITEM_DESC_Item_Type itemcode Yes
ITEM_DESC_Item_Type_INSANE itemcode Yes
ITEM_DESC_Total integer No
ITEM_UNIT unit Yes
ITEM_UNIT_Item_Type itemcode Yes
ITEM_UNIT_Item_Type_INSANE itemcode Yes
ITEM_UNIT_Total integer No
LightningTimer timer No
Maiden_OWNER unit Yes
Maiden_TIMER timer Yes
Maiden_UPDATE timer Yes
Maiev unit No UnitNull
MaievReturnSpot location No
MiniCinUnit unit No
Multiboard_Current_Column integer No
Multiboard_Current_Row integer No
Multiboard_Hero_Icon string No
Multiboard_Item_Used boolean Yes
Multiboard_Name_Used boolean No
Multiboard_Skill abilcode Yes
Multiboard_Skill_Icon string Yes
Multiboard_Skill_Name string Yes
Multiboard_Skill_Used boolean Yes
Multiboard_Unit unit No
Mutliboard_Hero_Statistics multiboard No
NewRunnerCountdown timer No
NewWarden unit No
NewWardenReturnSpot location No
P4_Naga player No Player03
PeonExcavator unitcode No opeo
PitLord unit No
Platform_01_On boolean No true
Platform_02_On boolean No true
Player_Color playercolor Yes
Player_Color_String string Yes
Player_One player No Player01
Player_One_Agreed boolean No
Player_One_Color integer No
Player_One_Skipped boolean No
Player_Two player No
Player_Two_Agreed boolean No
Player_Two_Color integer No
Player_Two_Skipped boolean No
Powerups_Gold integer No
Powerups_Lumber integer No
QuestBoatBaseReq questitem No
QuestBoatReqBoat questitem No
QuestBoatReqNoDie questitem No
QuestBoats quest No
QuestEscape quest No
QuestEscapeHardTransport questitem No
QuestEscapeReqEsc questitem No
QuestEscapeReqNoDie questitem No
QuestESCBaseReq questitem No
QuestExcavators quest No
QuestExcavatorsKILLReq questitem No
QuestExcavatorUpdateIsRunning boolean No
RandomSound integer No
Research_Name_1 string Yes
Research_Name_2 string Yes
Research_Name_3 string Yes
Research_Type techcode Yes
RevivalAltar unit No UnitNull
RevivalHero unit No UnitNull
RevivalReturnSpot location No
RevivalSpot location 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_Integer integer No
SaveLoad_Item_String string Yes
SaveLoad_Items itemcode Yes
SaveLoad_Items_LastIndex integer No
SaveLoad_Uncompress integer Yes
SaveLoad_UsePlayername boolean No
SelectedUnits group No
SentinelSpawner unit No
Shadow_Orb_OWNER unit Yes
Shadow_Orb_OWNER_INTEGER integer Yes
Shadow_Orb_OWNER_ORB item Yes
Shadow_Orb_TIMER timer Yes
Shadow_Orb_TYPE itemcode Yes
Share_DISPLAY boolean Yes
Share_FAKE unitcode Yes
Share_REAL unitcode Yes
Shift_OWNER unit Yes
Shift_TARGET unit Yes
Shift_TIMER timer Yes
SpeakerUnit unit No
StaffofTP item No
TempGroup group Yes
TempInteger integer Yes
TempItem item No
TempItemType itemcode No
TempPoint location Yes
TempText string Yes
TempUnitGroup group No
Twilight_FOLK group Yes
Twilight_TIMER timer Yes
Twilight_UNIT unit Yes
Tyrande unit No
Under_Construction group No
Validate boolean No
VictoryBoat unit No
VictorySkipped boolean No false
WarderReturnSpot location No
Waterfall01Boo boolean No
Waterfall01VisA fogmodifier No
Waterfall01VisA_B fogmodifier No
Waterfall01VisB fogmodifier No
Waterfall01VisB_B fogmodifier No
Waterfall02Boo boolean No
Waterfall02VisA fogmodifier No
Waterfall02VisA_B fogmodifier No
Waterfall02VisB fogmodifier No
Waterfall02VisB_B fogmodifier No
Waterfall03Boo boolean No
Waterfall03VisA fogmodifier No
Waterfall03VisA_B fogmodifier No
Waterfall04Boo boolean No
Waterfall04VisA fogmodifier No
Waterfall04VisA_B fogmodifier No
Waterfall05Boo boolean No
Waterfall05Vis fogmodifier No
Waterfall05Vis_B fogmodifier No
Waterfall06Boo boolean No
Waterfall06Vis fogmodifier No
Waterfall06Vis_B fogmodifier No
Weather weathereffect No
Initialization
  Events
    Map initialization
  Conditions
  Actions
    Set VariableSet Maiev = Warden 0010 <gen>
    Set VariableSet NewWarden = Warden 0177 <gen>
    Game - Set ally color filtering to 0
    Unit - Turn collision for Circle of Power 0252 <gen> Off.
    Set VariableSet TempPoint[1] = (Center of Circle_of_Power <gen>)
    Unit - Move Circle of Power 0252 <gen> instantly to TempPoint[1]
    Custom script: call RemoveLocation(udg_TempPoint[1])
    For each (Integer A) from 1 to 12, do (Actions)
      Loop - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            Or - Any (Conditions) are true
              Conditions
                (Integer A) Equal to 2
                (Integer A) Equal to 3
                (Integer A) Equal to 8
          Then - Actions
            Player - Make (Player((Integer A))) treat Player 2 (Blue) as an Ally with shared vision
            Player - Make (Player((Integer A))) treat Player 3 (Teal) as an Ally with shared vision
            Player - Make (Player((Integer A))) treat Player 8 (Pink) as an Ally with shared vision
            Player - Make (Player((Integer A))) treat Player 4 (Purple) as an Enemy
            Player - Make (Player((Integer A))) treat Player 5 (Yellow) as an Enemy
            Player - Make (Player((Integer A))) treat Player 6 (Orange) as an Enemy
            Player - Make (Player((Integer A))) treat Player 7 (Green) as an Enemy
            Player - Make (Player((Integer A))) treat Player 10 (Light Blue) as an Enemy
            Player - Make (Player((Integer A))) treat Player 12 (Brown) as an Neutral
          Else - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            Or - Any (Conditions) are true
              Conditions
                (Integer A) Equal to 4
                (Integer A) Equal to 5
                (Integer A) Equal to 6
                (Integer A) Equal to 7
                (Integer A) Equal to 10
          Then - Actions
            Player - Make (Player((Integer A))) treat Player 2 (Blue) as an Enemy
            Player - Make (Player((Integer A))) treat Player 3 (Teal) as an Enemy
            Player - Make (Player((Integer A))) treat Player 8 (Pink) as an Enemy
            Player - Make (Player((Integer A))) treat Player 4 (Purple) as an Neutral with shared vision
            Player - Make (Player((Integer A))) treat Player 5 (Yellow) as an Neutral with shared vision
            Player - Make (Player((Integer A))) treat Player 6 (Orange) as an Neutral with shared vision
            Player - Make (Player((Integer A))) treat Player 7 (Green) as an Neutral with shared vision
            Player - Make (Player((Integer A))) treat Player 10 (Light Blue) as an Neutral with shared vision
            Player - Make (Player((Integer A))) treat Player 12 (Brown) as an Neutral
            Player - Make (Player((Integer A))) treat Neutral Hostile as an Neutral
            Player - Make Neutral Hostile treat (Player((Integer A))) as an Neutral
          Else - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            (Integer A) Equal to 12
          Then - Actions
            Player - Make (Player((Integer A))) treat Player 2 (Blue) as an Neutral
            Player - Make (Player((Integer A))) treat Player 3 (Teal) as an Neutral
            Player - Make (Player((Integer A))) treat Player 8 (Pink) as an Neutral
            Player - Make (Player((Integer A))) treat Player 4 (Purple) as an Neutral
            Player - Make (Player((Integer A))) treat Player 5 (Yellow) as an Neutral
            Player - Make (Player((Integer A))) treat Player 6 (Orange) as an Neutral
            Player - Make (Player((Integer A))) treat Player 7 (Green) as an Neutral
            Player - Make (Player((Integer A))) treat Player 10 (Light Blue) as an Neutral
            Player - Make (Player((Integer A))) treat Player 12 (Brown) as an Neutral
            Player - Make (Player((Integer A))) treat Neutral Hostile as an Neutral
            Player - Make Neutral Hostile treat (Player((Integer A))) as an Neutral
          Else - Actions
    Player - Make Player 8 (Pink) treat Player 2 (Blue) as an Ally with shared vision and full shared units
    Player - Make Player 2 (Blue) treat Player 8 (Pink) as an Ally with shared vision and full shared units
    Player - Make Player 8 (Pink) treat Player 3 (Teal) as an Ally with shared vision and full shared units
    Player - Make Player 3 (Teal) treat Player 8 (Pink) as an Ally with shared vision and full shared units
    Leaderboard - Hide (Leaderboard of Player 5 (Yellow))
    Player - Change color of Player 8 (Pink) to Yellow, Changing color of existing units
    Player - Disable sleeping for all creeps
    Player - Change color of Player 4 (Purple) to Purple, Changing color of existing units
    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 - 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 10 (Light Blue) in the post-game score screen
    Player - Hide Player 12 (Brown) in the post-game score screen
    Set VariableSet TempGroup[1] = (Units of type Moon Well)
    Unit Group - Pick every unit in TempGroup[1] and do (Actions)
      Loop - Actions
        Unit - Set mana of (Picked unit) to 100%
        Unit - Order (Picked unit) to Night Elf Moon Well - Activate Replenish Mana And Life.
    Custom script: call DestroyGroup(udg_TempGroup[1])
    Set VariableSet HuntressShaniqua = Huntress 0137 <gen>
    Unit - Make Night Elf Transport Ship 0084 <gen> Invulnerable
    Unit - Make Night Elf Transport Ship 0092 <gen> Invulnerable
    Unit - Disable supply usage for Night Elf Transport Ship 0092 <gen>.
    Unit - Disable supply usage for Night Elf Transport Ship 0092 <gen>.
    Unit - Disable supply usage for Hippogryph 0094 <gen>.
    Unit - Disable supply usage for Hippogryph 0088 <gen>.
    Unit - Disable supply usage for Hippogryph 0233 <gen>.
    Unit - Disable supply usage for Glaive Thrower 0201 <gen>.
    Unit - Disable supply usage for Glaive Thrower 0200 <gen>.
    Unit - Disable supply usage for Huntress 0172 <gen>.
    Unit - Disable supply usage for Huntress 0173 <gen>.
    Set VariableSet Excavator01 = Mur'gul Slave 0054 <gen>
    Set VariableSet Excavator02 = Mur'gul Slave 0065 <gen>
    Set VariableSet Excavator03 = Mur'gul Slave 0119 <gen>
    Set VariableSet Excavator04 = Mur'gul Slave 0053 <gen>
    Trigger - Run Quest_Boat_Create <gen> (checking conditions)
    Trigger - Run Quest_Escape_Create <gen> (checking conditions)
    Trigger - Run Quest_Excavator_Create <gen> (checking conditions)
    Animation - Play the death (animationname) animation for all doodads of type YOlb (doodadcode) within (Playable map area).
    Game - Set the time of day to 19.00
    Animation - Play the death (animationname) animation for all doodads of type YOfb (doodadcode) within BlueFireDoods <gen>.
    Animation - Play the death (animationname) animation for all doodads of type ZZcd (doodadcode) within Intro_RocksFallKILL <gen>.
    Animation - Change Rat 0294 <gen>'s size to (120.00%, 120.00%, 120.00%) of its original size
    Unit - Add Evasion (Neutral Hostile 100%) to Rat 0294 <gen>
    Unit - Add Spell Immunity to Rat 0294 <gen>
    Trigger - Run Start_SCREEN_INIT <gen> (ignoring conditions)
    Trigger - Run Start_SCREEN_TEXT <gen> (ignoring conditions)
SaveLoad Initialization
  Events
    Map initialization
  Conditions
  Actions
    Set VariableSet SaveLoad_Items[1] = Claws of Attack +15
    Set VariableSet SaveLoad_Item_String[1] = ReplaceableTextures\CommandButtons\BTNClawsOfAttack.blp
    Set VariableSet SaveLoad_Items[2] = Crown of Kings +5
    Set VariableSet SaveLoad_Item_String[2] = ReplaceableTextures\CommandButtons\BTNHelmutPurple.blp
    Set VariableSet SaveLoad_Items[3] = Kelen's Dagger of Escape
    Set VariableSet SaveLoad_Item_String[3] = ReplaceableTextures\CommandButtons\BTNDaggerOfEscape.blp
    Set VariableSet SaveLoad_Items[4] = Mask of Death
    Set VariableSet SaveLoad_Item_String[4] = ReplaceableTextures\CommandButtons\BTNMaskOfDeath.blp
    Set VariableSet SaveLoad_Items[5] = Orb of Frost
    Set VariableSet SaveLoad_Item_String[5] = ReplaceableTextures\CommandButtons\BTNOrbOfFrost.blp
    Set VariableSet SaveLoad_Items[6] = Ring of Protection +5
    Set VariableSet SaveLoad_Item_String[6] = ReplaceableTextures\CommandButtons\BTNRingGreen.blp
    Set VariableSet SaveLoad_Items[7] = Amulet of the Wild
    Set VariableSet SaveLoad_Item_String[7] = ReplaceableTextures\CommandButtons\BTNAmuletOftheWild.blp
    Set VariableSet SaveLoad_Items[8] = Book of the Dead
    Set VariableSet SaveLoad_Item_String[8] = ReplaceableTextures\CommandButtons\BTNBookOfTheDead.blp
    Set VariableSet SaveLoad_Items[9] = Demonic Figurine
    Set VariableSet SaveLoad_Item_String[9] = ReplaceableTextures\CommandButtons\BTNDoomGuard.blp
    Set VariableSet SaveLoad_Items[10] = Healing Wards
    Set VariableSet SaveLoad_Item_String[10] = ReplaceableTextures\CommandButtons\BTNHealingWard.blp
    Set VariableSet SaveLoad_Items[11] = Health Stone
    Set VariableSet SaveLoad_Item_String[11] = ReplaceableTextures\CommandButtons\BTNHealthStone.blp
    Set VariableSet SaveLoad_Items[12] = Ice Shard
    Set VariableSet SaveLoad_Item_String[12] = ReplaceableTextures\CommandButtons\BTNIceShard.blp
    Set VariableSet SaveLoad_Items[13] = Inferno Stone
    Set VariableSet SaveLoad_Item_String[13] = ReplaceableTextures\CommandButtons\BTNInfernalStone.blp
    Set VariableSet SaveLoad_Items[14] = Mana Stone
    Set VariableSet SaveLoad_Item_String[14] = ReplaceableTextures\CommandButtons\BTNManaStone.blp
    Set VariableSet SaveLoad_Items[15] = Potion of Divinity
    Set VariableSet SaveLoad_Item_String[15] = ReplaceableTextures\CommandButtons\BTNPotionOfDivinity.blp
    Set VariableSet SaveLoad_Items[16] = Potion of Greater Healing
    Set VariableSet SaveLoad_Item_String[16] = ReplaceableTextures\CommandButtons\BTNPotionGreen.blp
    Set VariableSet SaveLoad_Items[17] = Potion of Greater Mana
    Set VariableSet SaveLoad_Item_String[17] = ReplaceableTextures\CommandButtons\BTNPotionBlueBig.blp
    Set VariableSet SaveLoad_Items[18] = Potion of Invulnerability
    Set VariableSet SaveLoad_Item_String[18] = ReplaceableTextures\CommandButtons\BTNGreaterInvulneralbility.blp
    Set VariableSet SaveLoad_Items[19] = Potion of Omniscience
    Set VariableSet SaveLoad_Item_String[19] = ReplaceableTextures\CommandButtons\BTNPotionOfOmniscience.blp
    Set VariableSet SaveLoad_Items[20] = Potion of Restoration
    Set VariableSet SaveLoad_Item_String[20] = ReplaceableTextures\CommandButtons\BTNPotionOfRestoration.blp
    Set VariableSet SaveLoad_Items[21] = Red Drake Egg
    Set VariableSet SaveLoad_Item_String[21] = ReplaceableTextures\CommandButtons\BTNRedDragon.blp
    Set VariableSet SaveLoad_Items[22] = Replenishment Potion
    Set VariableSet SaveLoad_Item_String[22] = ReplaceableTextures\CommandButtons\BTNRejuvPotion.blp
    Set VariableSet SaveLoad_Items[23] = Scroll of Animate Dead
    Set VariableSet SaveLoad_Item_String[23] = ReplaceableTextures\CommandButtons\BTNSnazzyScrollPurple.blp
    Set VariableSet SaveLoad_Items[24] = Scroll of Restoration
    Set VariableSet SaveLoad_Item_String[24] = ReplaceableTextures\CommandButtons\BTNScrollOfHealing.blp
    Set VariableSet SaveLoad_Items[25] = Scroll of Resurrection
    Set VariableSet SaveLoad_Item_String[25] = ReplaceableTextures\CommandButtons\BTNSnazzyScroll.blp
    Set VariableSet SaveLoad_Items[26] = Scroll of the Beast
    Set VariableSet SaveLoad_Item_String[26] = ReplaceableTextures\CommandButtons\BTNSnazzyScrollGreen.blp
    Set VariableSet SaveLoad_Items[27] = Sentry Wards
    Set VariableSet SaveLoad_Item_String[27] = ReplaceableTextures\CommandButtons\BTNSentryWard.blp
    Set VariableSet SaveLoad_Items[28] = Spiked Collar
    Set VariableSet SaveLoad_Item_String[28] = ReplaceableTextures\CommandButtons\BTNFelHound.blp
    Set VariableSet SaveLoad_Items[29] = Stone Token
    Set VariableSet SaveLoad_Item_String[29] = ReplaceableTextures\CommandButtons\BTNRockGolem.blp
    Set VariableSet SaveLoad_Items[30] = Talisman of the Wild
    Set VariableSet SaveLoad_Item_String[30] = ReplaceableTextures\CommandButtons\BTNStone.blp
    Set VariableSet SaveLoad_Items[31] = Wand of Illusion
    Set VariableSet SaveLoad_Item_String[31] = ReplaceableTextures\CommandButtons\BTNWand.blp
    Set VariableSet SaveLoad_Items[32] = Wand of Lightning Shield
    Set VariableSet SaveLoad_Item_String[32] = ReplaceableTextures\CommandButtons\BTNStarWand.blp
    Set VariableSet SaveLoad_Items[33] = Wand of Mana Stealing
    Set VariableSet SaveLoad_Item_String[33] = ReplaceableTextures\CommandButtons\BTNWandOfManaSteal.blp
    Set VariableSet SaveLoad_Items[34] = Wand of Shadowsight
    Set VariableSet SaveLoad_Item_String[34] = ReplaceableTextures\CommandButtons\BTNWandOfShadowSight.blp
    Set VariableSet SaveLoad_Items[35] = Wand of the Wind
    Set VariableSet SaveLoad_Item_String[35] = ReplaceableTextures\CommandButtons\BTNWandOfCyclone.blp
    Set VariableSet SaveLoad_Items[36] = Amulet of Recall
    Set VariableSet SaveLoad_Item_String[36] = ReplaceableTextures\CommandButtons\BTNAmulet.blp
    Set VariableSet SaveLoad_Items[37] = Ancient Figurine
    Set VariableSet SaveLoad_Item_String[37] = ReplaceableTextures\CommandButtons\BTNClayFigurine.blp
    Set VariableSet SaveLoad_Items[38] = Anti-magic Potion
    Set VariableSet SaveLoad_Item_String[38] = ReplaceableTextures\CommandButtons\BTNSnazzyPotion.blp
    Set VariableSet SaveLoad_Items[39] = Arcane Scroll
    Set VariableSet SaveLoad_Item_String[39] = ReplaceableTextures\CommandButtons\BTNBansheeAdept.blp
    Set VariableSet SaveLoad_Items[40] = Bracer of Agility
    Set VariableSet SaveLoad_Item_String[40] = ReplaceableTextures\CommandButtons\BTNRingPurple.blp
    Set VariableSet SaveLoad_Items[41] = Claws of Attack +3
    Set VariableSet SaveLoad_Item_String[41] = ReplaceableTextures\CommandButtons\BTNClawsOfAttack.blp
    Set VariableSet SaveLoad_Items[42] = Druid Pouch
    Set VariableSet SaveLoad_Item_String[42] = ReplaceableTextures\CommandButtons\BTNDust.blp
    Set VariableSet SaveLoad_Items[43] = Dust of Appearance
    Set VariableSet SaveLoad_Item_String[43] = ReplaceableTextures\CommandButtons\BTNDustOfAppearance.blp
    Set VariableSet SaveLoad_Items[44] = Essence of Aszune
    Set VariableSet SaveLoad_Item_String[44] = ReplaceableTextures\CommandButtons\BTNHeartOfAszune.blp
    Set VariableSet SaveLoad_Items[45] = Frost Wyrm Skull Shield
    Set VariableSet SaveLoad_Item_String[45] = ReplaceableTextures\CommandButtons\BTNGrimWard.blp
    Set VariableSet SaveLoad_Items[46] = Gem of True Seeing
    Set VariableSet SaveLoad_Item_String[46] = ReplaceableTextures\CommandButtons\BTNGem.blp
    Set VariableSet SaveLoad_Items[47] = Goblin Land Mines
    Set VariableSet SaveLoad_Item_String[47] = ReplaceableTextures\CommandButtons\BTNGoblinLandMine.blp
    Set VariableSet SaveLoad_Items[48] = Goblin Night Scope
    Set VariableSet SaveLoad_Item_String[48] = ReplaceableTextures\CommandButtons\BTNTelescope.blp
    Set VariableSet SaveLoad_Items[49] = Greater Replenishment Potion
    Set VariableSet SaveLoad_Item_String[49] = ReplaceableTextures\CommandButtons\BTNGreaterRejuvPotion.blp
    Set VariableSet SaveLoad_Items[50] = Greater Scroll of Replenishment
    Set VariableSet SaveLoad_Item_String[50] = ReplaceableTextures\CommandButtons\BTNGreaterRejuvScroll.blp
    Set VariableSet SaveLoad_Items[51] = Horn of the Clouds
    Set VariableSet SaveLoad_Item_String[51] = ReplaceableTextures\CommandButtons\BTNHornOfFog.blp
    Set VariableSet SaveLoad_Items[52] = Ironwood Branch
    Set VariableSet SaveLoad_Item_String[52] = ReplaceableTextures\CommandButtons\BTNNatureTouchGrow.blp
    Set VariableSet SaveLoad_Items[53] = Jade Ring
    Set VariableSet SaveLoad_Item_String[53] = ReplaceableTextures\CommandButtons\BTNRingJadeFalcon.blp
    Set VariableSet SaveLoad_Items[54] = Keg of Ale
    Set VariableSet SaveLoad_Item_String[54] = ReplaceableTextures\CommandButtons\BTNBarrel.blp
    Set VariableSet SaveLoad_Items[55] = Lesser Replenishment Potion
    Set VariableSet SaveLoad_Item_String[55] = ReplaceableTextures\CommandButtons\BTNLesserRejuvPotion.blp
    Set VariableSet SaveLoad_Items[56] = Lesser Scroll of Replenishment
    Set VariableSet SaveLoad_Item_String[56] = ReplaceableTextures\CommandButtons\BTNLesserRejuvScroll.blp
    Set VariableSet SaveLoad_Items[57] = Lion's Ring
    Set VariableSet SaveLoad_Item_String[57] = ReplaceableTextures\CommandButtons\BTNRingLionHead.blp
    Set VariableSet SaveLoad_Items[58] = Maul of Strength
    Set VariableSet SaveLoad_Item_String[58] = ReplaceableTextures\CommandButtons\BTNHammer.blp
    Set VariableSet SaveLoad_Items[59] = Minor Replenishment Potion
    Set VariableSet SaveLoad_Item_String[59] = ReplaceableTextures\CommandButtons\BTNMinorRejuvPotion.blp
    Set VariableSet SaveLoad_Items[60] = Necklace of Spell Immunity
    Set VariableSet SaveLoad_Item_String[60] = ReplaceableTextures\CommandButtons\BTNNecklace.blp
    Set VariableSet SaveLoad_Items[61] = Orb of Corruption
    Set VariableSet SaveLoad_Item_String[61] = ReplaceableTextures\CommandButtons\BTNOrbOfCorruption.blp
    Set VariableSet SaveLoad_Items[62] = Orb of Fire
    Set VariableSet SaveLoad_Item_String[62] = ReplaceableTextures\CommandButtons\BTNOrbOfFire.blp
    Set VariableSet SaveLoad_Items[63] = Orb of Kil'jaeden
    Set VariableSet SaveLoad_Item_String[63] = ReplaceableTextures\CommandButtons\BTNUsedSoulGem.blp
    Set VariableSet SaveLoad_Items[64] = Orb of Lightning
    Set VariableSet SaveLoad_Item_String[64] = ReplaceableTextures\CommandButtons\BTNOrbOfLightning.blp
    Set VariableSet SaveLoad_Items[65] = Orb of Lightning
    Set VariableSet SaveLoad_Item_String[65] = ReplaceableTextures\CommandButtons\BTNOrbOfLightning.blp
    Set VariableSet SaveLoad_Items[66] = Orb of Slow
    Set VariableSet SaveLoad_Item_String[66] = ReplaceableTextures\CommandButtons\BTNOrbofSlowness.blp
    Set VariableSet SaveLoad_Items[67] = Orb of Venom
    Set VariableSet SaveLoad_Item_String[67] = ReplaceableTextures\CommandButtons\BTNOrbOfVenom.blp
    Set VariableSet SaveLoad_Items[68] = Potion of Greater Invisibility
    Set VariableSet SaveLoad_Item_String[68] = ReplaceableTextures\CommandButtons\BTNGreaterInvisibility.blp
    Set VariableSet SaveLoad_Items[69] = Potion of Speed
    Set VariableSet SaveLoad_Item_String[69] = ReplaceableTextures\CommandButtons\BTNPotionRed.blp
    Set VariableSet SaveLoad_Items[70] = Ring of Protection +1
    Set VariableSet SaveLoad_Item_String[70] = ReplaceableTextures\CommandButtons\BTNRingGreen.blp
    Set VariableSet SaveLoad_Items[71] = Ring of Superiority
    Set VariableSet SaveLoad_Item_String[71] = ReplaceableTextures\CommandButtons\BTNGoldRing.blp
    Set VariableSet SaveLoad_Items[72] = Ring of the Archmagi (version 2)
    Set VariableSet SaveLoad_Item_String[72] = ReplaceableTextures\CommandButtons\BTNRingJadeFalcon.blp
    Set VariableSet SaveLoad_Items[73] = Ring of the Archmagi (version 4)
    Set VariableSet SaveLoad_Item_String[73] = ReplaceableTextures\CommandButtons\BTNRingJadeFalcon.blp
    Set VariableSet SaveLoad_Items[74] = Ring of the Archmagi (version 1)
    Set VariableSet SaveLoad_Item_String[74] = ReplaceableTextures\CommandButtons\BTNRingJadeFalcon.blp
    Set VariableSet SaveLoad_Items[75] = Ring of the Archmagi (version 3)
    Set VariableSet SaveLoad_Item_String[75] = ReplaceableTextures\CommandButtons\BTNRingJadeFalcon.blp
    Set VariableSet SaveLoad_Items[76] = Scepter of Mastery
    Set VariableSet SaveLoad_Item_String[76] = ReplaceableTextures\CommandButtons\BTNRingJadeFalcon.blp
    Set VariableSet SaveLoad_Items[77] = Shadow Orb +1
    Set VariableSet SaveLoad_Item_String[77] = ReplaceableTextures\CommandButtons\BTNOrbOfDarkness.blp
    Set VariableSet SaveLoad_Items[78] = Shadow Orb +10
    Set VariableSet SaveLoad_Item_String[78] = ReplaceableTextures\CommandButtons\BTNOrbOfDarkness.blp
    Set VariableSet SaveLoad_Items[79] = Shadow Orb +2
    Set VariableSet SaveLoad_Item_String[79] = ReplaceableTextures\CommandButtons\BTNOrbOfDarkness.blp
    Set VariableSet SaveLoad_Items[80] = Shadow Orb +3
    Set VariableSet SaveLoad_Item_String[80] = ReplaceableTextures\CommandButtons\BTNOrbOfDarkness.blp
    Set VariableSet SaveLoad_Items[81] = Shadow Orb +4
    Set VariableSet SaveLoad_Item_String[81] = ReplaceableTextures\CommandButtons\BTNOrbOfDarkness.blp
    Set VariableSet SaveLoad_Items[82] = Shadow Orb +5
    Set VariableSet SaveLoad_Item_String[82] = ReplaceableTextures\CommandButtons\BTNOrbOfDarkness.blp
    Set VariableSet SaveLoad_Items[83] = Shadow Orb +6
    Set VariableSet SaveLoad_Item_String[83] = ReplaceableTextures\CommandButtons\BTNOrbOfDarkness.blp
    Set VariableSet SaveLoad_Items[84] = Shadow Orb +7
    Set VariableSet SaveLoad_Item_String[84] = ReplaceableTextures\CommandButtons\BTNOrbOfDarkness.blp
    Set VariableSet SaveLoad_Items[85] = Shadow Orb +8
    Set VariableSet SaveLoad_Item_String[85] = ReplaceableTextures\CommandButtons\BTNOrbOfDarkness.blp
    Set VariableSet SaveLoad_Items[86] = Shadow Orb +9
    Set VariableSet SaveLoad_Item_String[86] = ReplaceableTextures\CommandButtons\BTNOrbOfDarkness.blp
    Set VariableSet SaveLoad_Items[87] = Shamanic Totem
    Set VariableSet SaveLoad_Item_String[87] = ReplaceableTextures\CommandButtons\BTNEntrapmentWard.blp
    Set VariableSet SaveLoad_Items[88] = Skull Shield
    Set VariableSet SaveLoad_Item_String[88] = ReplaceableTextures\CommandButtons\BTNGrimWard.blp
    Set VariableSet SaveLoad_Items[89] = Spider Ring
    Set VariableSet SaveLoad_Item_String[89] = ReplaceableTextures\CommandButtons\BTNRingVioletSpider.blp
    Set VariableSet SaveLoad_Items[90] = Staff of Preservation
    Set VariableSet SaveLoad_Item_String[90] = ReplaceableTextures\CommandButtons\BTNStaffOfPreservation.blp
    Set VariableSet SaveLoad_Items[91] = Staff of Reanimation
    Set VariableSet SaveLoad_Item_String[91] = ReplaceableTextures\CommandButtons\BTNWandSkull.blp
    Set VariableSet SaveLoad_Items[92] = Tiny Altar of Kings
    Set VariableSet SaveLoad_Item_String[92] = ReplaceableTextures\CommandButtons\BTNAltarOfKings.blp
    Set VariableSet SaveLoad_Items[93] = Tiny Barracks
    Set VariableSet SaveLoad_Item_String[93] = ReplaceableTextures\CommandButtons\BTNHumanBarracks.blp
    Set VariableSet SaveLoad_Items[94] = Tiny Blacksmith
    Set VariableSet SaveLoad_Item_String[93] = ReplaceableTextures\CommandButtons\BTNBlacksmith.blp
    Set VariableSet SaveLoad_Items[95] = Tiny Farm
    Set VariableSet SaveLoad_Item_String[95] = ReplaceableTextures\CommandButtons\BTNFarm.blp
    Set VariableSet SaveLoad_Items[96] = Tiny Lumber Mill
    Set VariableSet SaveLoad_Item_String[96] = ReplaceableTextures\CommandButtons\BTNHumanLumberMill.blp
    Set VariableSet SaveLoad_Items[97] = Totem of Might
    Set VariableSet SaveLoad_Item_String[97] = ReplaceableTextures\CommandButtons\BTNEntrapmentWard.blp
    Set VariableSet SaveLoad_Items[98] = Voodoo Doll
    Set VariableSet SaveLoad_Item_String[98] = ReplaceableTextures\CommandButtons\BTNShadowPact.blp
    Set VariableSet SaveLoad_Items[99] = Alleria's Flute of Accuracy
    Set VariableSet SaveLoad_Item_String[99] = ReplaceableTextures\CommandButtons\BTNAlleriaFlute.blp
    Set VariableSet SaveLoad_Items[100] = Amulet of Spell Shield
    Set VariableSet SaveLoad_Item_String[100] = ReplaceableTextures\CommandButtons\BTNSpellShieldAmulet.blp
    Set VariableSet SaveLoad_Items[101] = Ancient Janggo of Endurance
    Set VariableSet SaveLoad_Item_String[101] = ReplaceableTextures\CommandButtons\BTNJanggo.blp
    Set VariableSet SaveLoad_Items[102] = Belt of Giant Strength +6
    Set VariableSet SaveLoad_Item_String[102] = ReplaceableTextures\CommandButtons\BTNBelt.blp
    Set VariableSet SaveLoad_Items[103] = Boots of Quel'Thalas +6
    Set VariableSet SaveLoad_Item_String[103] = ReplaceableTextures\CommandButtons\BTNBoots.blp
    Set VariableSet SaveLoad_Items[104] = Boots of Speed
    Set VariableSet SaveLoad_Item_String[104] = ReplaceableTextures\CommandButtons\BTNBootsOfSpeed.blp
    Set VariableSet SaveLoad_Items[105] = Circlet of Nobility
    Set VariableSet SaveLoad_Item_String[105] = ReplaceableTextures\CommandButtons\BTNCirclet.blp
    Set VariableSet SaveLoad_Items[106] = Claws of Attack +12
    Set VariableSet SaveLoad_Item_String[106] = ReplaceableTextures\CommandButtons\BTNClawsOfAttack.blp
    Set VariableSet SaveLoad_Items[107] = Claws of Attack +6
    Set VariableSet SaveLoad_Item_String[107] = ReplaceableTextures\CommandButtons\BTNClawsOfAttack.blp
    Set VariableSet SaveLoad_Items[108] = Claws of Attack +9
    Set VariableSet SaveLoad_Item_String[108] = ReplaceableTextures\CommandButtons\BTNClawsOfAttack.blp
    Set VariableSet SaveLoad_Items[109] = Cloak of Flames
    Set VariableSet SaveLoad_Item_String[109] = ReplaceableTextures\CommandButtons\BTNCloakOfFlames.blp
    Set VariableSet SaveLoad_Items[110] = Cloak of Shadows
    Set VariableSet SaveLoad_Item_String[110] = ReplaceableTextures\CommandButtons\BTNCloak.blp
    Set VariableSet SaveLoad_Items[111] = Crystal Ball
    Set VariableSet SaveLoad_Item_String[111] = ReplaceableTextures\CommandButtons\BTNCrystalBall.blp
    Set VariableSet SaveLoad_Items[112] = Diamond of Summoning
    Set VariableSet SaveLoad_Item_String[112] = ReplaceableTextures\CommandButtons\BTNDarkSummoning.blp
    Set VariableSet SaveLoad_Items[113] = Gauntlets of Ogre Strength +3
    Set VariableSet SaveLoad_Item_String[113] = ReplaceableTextures\CommandButtons\BTNGauntletsOfOgrePower.blp
    Set VariableSet SaveLoad_Items[114] = Gloves of Haste
    Set VariableSet SaveLoad_Item_String[114] = ReplaceableTextures\CommandButtons\BTNGlove.blp
    Set VariableSet SaveLoad_Items[115] = Helm of Valor
    Set VariableSet SaveLoad_Item_String[115] = ReplaceableTextures\CommandButtons\BTNHelmOfValor.blp
    Set VariableSet SaveLoad_Items[116] = Hood of Cunning
    Set VariableSet SaveLoad_Item_String[116] = ReplaceableTextures\CommandButtons\BTNHoodOfCunning.blp
    Set VariableSet SaveLoad_Items[117] = Khadgar's Gem of Health
    Set VariableSet SaveLoad_Item_String[117] = ReplaceableTextures\CommandButtons\BTNPeriapt1.blp
    Set VariableSet SaveLoad_Items[118] = Khadgar's Pipe of Insight
    Set VariableSet SaveLoad_Item_String[118] = ReplaceableTextures\CommandButtons\BTNPipeOfInsight.blp
    Set VariableSet SaveLoad_Items[119] = Legion Doom-Horn
    Set VariableSet SaveLoad_Item_String[119] = ReplaceableTextures\CommandButtons\BTNHornOfDoom.blp
    Set VariableSet SaveLoad_Items[120] = Mantle of Intelligence +3
    Set VariableSet SaveLoad_Item_String[120] = ReplaceableTextures\CommandButtons\BTNMantleOfIntelligence.blp
    Set VariableSet SaveLoad_Items[121] = Medallion of Courage
    Set VariableSet SaveLoad_Item_String[121] = ReplaceableTextures\CommandButtons\BTNMedalionOfCourage.blp
    Set VariableSet SaveLoad_Items[122] = Orb of Darkness
    Set VariableSet SaveLoad_Item_String[122] = ReplaceableTextures\CommandButtons\BTNOrbOfDarkness.blp
    Set VariableSet SaveLoad_Items[123] = Pendant of Energy
    Set VariableSet SaveLoad_Item_String[123] = ReplaceableTextures\CommandButtons\BTNPendantOfEnergy.blp
    Set VariableSet SaveLoad_Items[124] = Pendant of Mana
    Set VariableSet SaveLoad_Item_String[124] = ReplaceableTextures\CommandButtons\BTNPendantOfMana.blp
    Set VariableSet SaveLoad_Items[125] = Periapt of Vitality
    Set VariableSet SaveLoad_Item_String[125] = ReplaceableTextures\CommandButtons\BTNPeriapt.blp
    Set VariableSet SaveLoad_Items[126] = Ring of Protection +2
    Set VariableSet SaveLoad_Item_String[126] = ReplaceableTextures\CommandButtons\BTNRingGreen.blp
    Set VariableSet SaveLoad_Items[127] = Ring of Protection +3
    Set VariableSet SaveLoad_Item_String[127] = ReplaceableTextures\CommandButtons\BTNRingGreen.blp
    Set VariableSet SaveLoad_Items[128] = Ring of Protection +4
    Set VariableSet SaveLoad_Item_String[128] = ReplaceableTextures\CommandButtons\BTNRingGreen.blp
    Set VariableSet SaveLoad_Items[129] = Ring of Regeneration
    Set VariableSet SaveLoad_Item_String[129] = ReplaceableTextures\CommandButtons\BTNRingSkull.blp
    Set VariableSet SaveLoad_Items[130] = Robe of the Magi +6
    Set VariableSet SaveLoad_Item_String[130] = ReplaceableTextures\CommandButtons\BTNRobeOfTheMagi.blp
    Set VariableSet SaveLoad_Items[131] = Runed Bracers
    Set VariableSet SaveLoad_Item_String[131] = ReplaceableTextures\CommandButtons\BTNRunedBracers.blp
    Set VariableSet SaveLoad_Items[132] = Scourge Bone Chimes
    Set VariableSet SaveLoad_Item_String[132] = ReplaceableTextures\CommandButtons\BTNBoneChimes.blp
    Set VariableSet SaveLoad_Items[133] = Slippers of Agility +3
    Set VariableSet SaveLoad_Item_String[133] = ReplaceableTextures\CommandButtons\BTNSlippersOfAgility.blp
    Set VariableSet SaveLoad_Items[134] = Sobi Mask
    Set VariableSet SaveLoad_Item_String[134] = ReplaceableTextures\CommandButtons\BTNSobiMask.blp
    Set VariableSet SaveLoad_Items[135] = Staff of Silence
    Set VariableSet SaveLoad_Item_String[135] = ReplaceableTextures\CommandButtons\BTNStaffOfSilence.blp
    Set VariableSet SaveLoad_Items[136] = Staff of Teleportation
    Set VariableSet SaveLoad_Item_String[136] = ReplaceableTextures\CommandButtons\BTNStaffOfTeleportation.blp
    Set VariableSet SaveLoad_Items[137] = Talisman of Evasion
    Set VariableSet SaveLoad_Item_String[137] = ReplaceableTextures\CommandButtons\BTNTalisman.blp
    Set VariableSet SaveLoad_Items[138] = The Lion Horn of Stormwind
    Set VariableSet SaveLoad_Item_String[138] = ReplaceableTextures\CommandButtons\BTNLionHorn.blp
    Set VariableSet SaveLoad_Items[139] = Warsong Battle Drums
    Set VariableSet SaveLoad_Item_String[139] = ReplaceableTextures\CommandButtons\BTNDrum.blp
    Set VariableSet SaveLoad_Items[140] = Clarity Potion
    Set VariableSet SaveLoad_Item_String[140] = ReplaceableTextures\CommandButtons\BTNPotionOfClarity.blp
    Set VariableSet SaveLoad_Items[141] = Healing Salve
    Set VariableSet SaveLoad_Item_String[141] = ReplaceableTextures\CommandButtons\BTNHealingSalve.blp
    Set VariableSet SaveLoad_Items[142] = Ivory Tower
    Set VariableSet SaveLoad_Item_String[142] = ReplaceableTextures\CommandButtons\BTNHumanWatchTower.blp
    Set VariableSet SaveLoad_Items[142] = Lesser Clarity Potion
    Set VariableSet SaveLoad_Item_String[142] = ReplaceableTextures\CommandButtons\BTNLesserClarityPotion.blp
    Set VariableSet SaveLoad_Items[143] = Mechanical Critter
    Set VariableSet SaveLoad_Item_String[143] = ReplaceableTextures\CommandButtons\BTNMechanicalCritter.blp
    Set VariableSet SaveLoad_Items[144] = Moonstone
    Set VariableSet SaveLoad_Item_String[144] = ReplaceableTextures\CommandButtons\BTNMoonStone.blp
    Set VariableSet SaveLoad_Items[145] = Potion of Healing
    Set VariableSet SaveLoad_Item_String[145] = ReplaceableTextures\CommandButtons\BTNPotionGreenSmall.blp
    Set VariableSet SaveLoad_Items[146] = Potion of Invisibility
    Set VariableSet SaveLoad_Item_String[146] = ReplaceableTextures\CommandButtons\BTNPotionGreenSmall.blp
    Set VariableSet SaveLoad_Items[147] = Potion of Lesser Invulnerability
    Set VariableSet SaveLoad_Item_String[147] = ReplaceableTextures\CommandButtons\BTNLesserInvulneralbility.blp
    Set VariableSet SaveLoad_Items[148] = Potion of Mana
    Set VariableSet SaveLoad_Item_String[148] = ReplaceableTextures\CommandButtons\BTNPotionBlueSmall.blp
    Set VariableSet SaveLoad_Items[149] = Rod of Necromancy
    Set VariableSet SaveLoad_Item_String[149] = ReplaceableTextures\CommandButtons\BTNRodOfNecromancy.blp
    Set VariableSet SaveLoad_Items[150] = Sacrificial Skull
    Set VariableSet SaveLoad_Item_String[150] = ReplaceableTextures\CommandButtons\BTNSacrificialSkull.blp
    Set VariableSet SaveLoad_Items[151] = Scroll of Healing
    Set VariableSet SaveLoad_Item_String[151] = ReplaceableTextures\CommandButtons\BTNScrollOfTownPortal.blp
    Set VariableSet SaveLoad_Items[152] = Scroll of Mana
    Set VariableSet SaveLoad_Item_String[152] = ReplaceableTextures\CommandButtons\BTNScrollOfProtection.blp
    Set VariableSet SaveLoad_Items[153] = Scroll of Protection
    Set VariableSet SaveLoad_Item_String[153] = ReplaceableTextures\CommandButtons\BTNScroll.blp
    Set VariableSet SaveLoad_Items[154] = Scroll of Regeneration
    Set VariableSet SaveLoad_Item_String[154] = ReplaceableTextures\CommandButtons\BTNScrollOfRegenerationGreen.blp
    Set VariableSet SaveLoad_Items[155] = Scroll of Speed
    Set VariableSet SaveLoad_Item_String[155] = ReplaceableTextures\CommandButtons\BTNScrollOfHaste.blp
    Set VariableSet SaveLoad_Items[156] = Scroll of Town Portal
    Set VariableSet SaveLoad_Item_String[156] = ReplaceableTextures\CommandButtons\BTNScrollUber.blp
    Set VariableSet SaveLoad_Items[157] = Spider Silk Broach
    Set VariableSet SaveLoad_Item_String[157] = ReplaceableTextures\CommandButtons\BTNSpiderSilkBroach.blp
    Set VariableSet SaveLoad_Items[158] = Staff of Negation
    Set VariableSet SaveLoad_Item_String[158] = ReplaceableTextures\CommandButtons\BTNStaffOfNegation.blp
    Set VariableSet SaveLoad_Items[159] = Staff of Sanctuary
    Set VariableSet SaveLoad_Item_String[159] = ReplaceableTextures\CommandButtons\BTNStaffOfSanctuary.blp
    Set VariableSet SaveLoad_Items[160] = Tiny Castle
    Set VariableSet SaveLoad_Item_String[160] = ReplaceableTextures\CommandButtons\BTNTinyCastle.blp
    Set VariableSet SaveLoad_Items[161] = Tiny Great Hall
    Set VariableSet SaveLoad_Item_String[161] = ReplaceableTextures\CommandButtons\BTNGreathall.blp
    Set VariableSet SaveLoad_Items[162] = Tome of Retraining
    Set VariableSet SaveLoad_Item_String[162] = ReplaceableTextures\CommandButtons\BTNTomeOfRetraining.blp
    Set VariableSet SaveLoad_Items[163] = Vampiric Potion
    Set VariableSet SaveLoad_Item_String[163] = ReplaceableTextures\CommandButtons\BTNPotionOfVampirism.blp
    Set VariableSet SaveLoad_Items[164] = Wand of Negation
    Set VariableSet SaveLoad_Item_String[164] = ReplaceableTextures\CommandButtons\BTNWandSkull.blp
    Set VariableSet SaveLoad_Items[165] = Wand of Neutralization
    Set VariableSet SaveLoad_Item_String[165] = ReplaceableTextures\CommandButtons\BTNWandOfNeutralization.blp
    Set VariableSet SaveLoad_Items_LastIndex = 165
    Set VariableSet SaveLoad_Alphabet = ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz
    Set VariableSet SaveLoad_CaseSensitive = True
    Set VariableSet SaveLoad_UsePlayername = False
    Set VariableSet SaveLoad_Initialized = False
    Set VariableSet Code = AceHart
    Set VariableSet Save[1] = 0
    Set VariableSet SaveCount = 1
    Set VariableSet Validate = False
    Set VariableSet SaveLoad_Compress[1] = 0
    Set VariableSet SaveLoad_Uncompress[1] = 0
    -------- List of Heroes --------
    Set VariableSet SaveLoad_Heroes[1] = Paladin
    Set VariableSet SaveLoad_Heroes[2] = Archmage
    Set VariableSet SaveLoad_Heroes[3] = Mountain King
    Set VariableSet SaveLoad_Heroes[4] = Blood Mage
    -------- Number of Heroes --------
    Set VariableSet SaveLoad_Heroes_LastIndex = 4
    -------- List of Abilities --------
    Set VariableSet SaveLoad_Abilities[1] = Banish
    Set VariableSet SaveLoad_Abilities[2] = Flame Strike
    Set VariableSet SaveLoad_Abilities[3] = Phoenix
    Set VariableSet SaveLoad_Abilities[4] = Siphon Mana
    -------- Number of Abilities --------
    Set VariableSet SaveLoad_Abilities_LastIndex = 4
SaveLoad Load
  Events
  Conditions
    (Substring((Entered chat string), 1, 6)) Equal to (Matched chat string)
    (Length of (Entered chat string)) Greater than 6
    GameHasStarted Equal to False
  Actions
    Set VariableSet Code = (Substring((Entered chat string), 7, (Length of (Entered chat string))))
    Custom script: set udg_Validate = SaveLoad_Decode( udg_Code )
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        Validate Equal to False
      Then - Actions
        -------- Invalid code --------
        Trigger - Run Start_SCREEN_TEXT <gen> (checking conditions)
        Game - Display to (Player group((Triggering player))) the text: There's some error in this code, sorry.
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            Code_Is_Active Equal to True
          Then - Actions
            Game - Display to (All players) the text: However, a valid code has already been entered. You may proceed to play the map using that one.
          Else - Actions
        Skip remaining actions
      Else - Actions
    Set VariableSet SaveCount = 1
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        Save[1] Not equal to 103
      Then - Actions
        Trigger - Run Start_SCREEN_TEXT <gen> (checking conditions)
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            (Substring((String(Save[SaveCount])), 1, 2)) Not equal to 10
          Then - Actions
            Game - Display to (All players) for 600.00 seconds the text: This code is from an older release.
          Else - Actions
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              If - Conditions
                (Substring((String(Save[SaveCount])), 3, 3)) Not equal to 3
              Then - Actions
                Game - Display to (All players) for 600.00 seconds the text: This code is not from the previous map of the campaign.
              Else - Actions
                Game - Display to (All players) for 600.00 seconds the text: Unknown loading error.
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            Code_Is_Active Equal to True
          Then - Actions
            Game - Display to (All players) the text: However, a valid code has already been entered. You may proceed to play the map using that one.
          Else - Actions
        Skip remaining actions
      Else - Actions
        Sound - Play GoodJob <gen>
        Set VariableSet Code_Is_Active = True
    Set VariableSet Bonus_Strength = 0
    Set VariableSet Bonus_Intelligence = 0
    Set VariableSet Bonus_Agility = 0
    Unit - Remove Fan of Knives from Maiev
    Unit - Remove Blink from Maiev
    Unit - Remove Shadow Strike from Maiev
    Unit - Remove Vengeance from Maiev
    Hero - Modify unspent skill points of Maiev: Set to (Hero level of Maiev) points
    Unit - Remove Blade Shield from NewWarden
    Unit - Remove Shift from NewWarden
    Unit - Remove Summon Twilight Guardian from NewWarden
    Unit - Remove Vengeance from NewWarden
    Hero - Modify unspent skill points of NewWarden: Set to (Hero level of NewWarden) points
    For each (Integer A) from 1 to 6, do (Actions)
      Loop - Actions
        Hero - Drop the item from slot (Integer A) of Maiev.
        Item - Remove (Last dropped item)
        Hero - Drop the item from slot (Integer A) of NewWarden.
        Item - Remove (Last dropped item)
    -------- --- --------
    Set VariableSet Bonus_Strength = Save[2]
    Set VariableSet Bonus_Agility = Save[3]
    Set VariableSet Bonus_Intelligence = Save[4]
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Substring((String(Save[5])), 1, 1)) Equal to 4
      Then - Actions
        Hero - Learn skill for Maiev: Fan of Knives
        Hero - Learn skill for Maiev: Fan of Knives
        Hero - Learn skill for Maiev: Fan of Knives
      Else - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            (Substring((String(Save[5])), 1, 1)) Equal to 3
          Then - Actions
            Hero - Learn skill for Maiev: Fan of Knives
            Hero - Learn skill for Maiev: Fan of Knives
          Else - Actions
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              If - Conditions
                (Substring((String(Save[5])), 1, 1)) Equal to 2
              Then - Actions
                Hero - Learn skill for Maiev: Fan of Knives
              Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Substring((String(Save[5])), 2, 2)) Equal to 4
      Then - Actions
        Hero - Learn skill for Maiev: Blink
        Hero - Learn skill for Maiev: Blink
        Hero - Learn skill for Maiev: Blink
      Else - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            (Substring((String(Save[5])), 2, 2)) Equal to 3
          Then - Actions
            Hero - Learn skill for Maiev: Blink
            Hero - Learn skill for Maiev: Blink
          Else - Actions
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              If - Conditions
                (Substring((String(Save[5])), 2, 2)) Equal to 2
              Then - Actions
                Hero - Learn skill for Maiev: Blink
              Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Substring((String(Save[5])), 3, 3)) Equal to 4
      Then - Actions
        Hero - Learn skill for Maiev: Shadow Strike
        Hero - Learn skill for Maiev: Shadow Strike
        Hero - Learn skill for Maiev: Shadow Strike
      Else - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            (Substring((String(Save[5])), 3, 3)) Equal to 3
          Then - Actions
            Hero - Learn skill for Maiev: Shadow Strike
            Hero - Learn skill for Maiev: Shadow Strike
          Else - Actions
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              If - Conditions
                (Substring((String(Save[5])), 3, 3)) Equal to 2
              Then - Actions
                Hero - Learn skill for Maiev: Shadow Strike
              Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Substring((String(Save[5])), 4, 4)) Equal to 2
      Then - Actions
        Hero - Learn skill for Maiev: Vengeance
      Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Substring((String(Save[6])), 1, 1)) Equal to 4
      Then - Actions
        Hero - Learn skill for NewWarden: Blade Shield
        Hero - Learn skill for NewWarden: Blade Shield
        Hero - Learn skill for NewWarden: Blade Shield
      Else - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            (Substring((String(Save[6])), 1, 1)) Equal to 3
          Then - Actions
            Hero - Learn skill for NewWarden: Blade Shield
            Hero - Learn skill for NewWarden: Blade Shield
          Else - Actions
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              If - Conditions
                (Substring((String(Save[6])), 1, 1)) Equal to 2
              Then - Actions
                Hero - Learn skill for NewWarden: Blade Shield
              Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Substring((String(Save[6])), 2, 2)) Equal to 4
      Then - Actions
        Hero - Learn skill for NewWarden: Shift
        Hero - Learn skill for NewWarden: Shift
        Hero - Learn skill for NewWarden: Shift
      Else - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            (Substring((String(Save[6])), 2, 2)) Equal to 3
          Then - Actions
            Hero - Learn skill for NewWarden: Shift
            Hero - Learn skill for NewWarden: Shift
          Else - Actions
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              If - Conditions
                (Substring((String(Save[6])), 2, 2)) Equal to 2
              Then - Actions
                Hero - Learn skill for NewWarden: Shift
              Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Substring((String(Save[6])), 3, 3)) Equal to 4
      Then - Actions
        Hero - Learn skill for NewWarden: Summon Twilight Guardian
        Hero - Learn skill for NewWarden: Summon Twilight Guardian
        Hero - Learn skill for NewWarden: Summon Twilight Guardian
      Else - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            (Substring((String(Save[6])), 3, 3)) Equal to 3
          Then - Actions
            Hero - Learn skill for NewWarden: Summon Twilight Guardian
            Hero - Learn skill for NewWarden: Summon Twilight Guardian
          Else - Actions
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              If - Conditions
                (Substring((String(Save[6])), 3, 3)) Equal to 2
              Then - Actions
                Hero - Learn skill for NewWarden: Summon Twilight Guardian
              Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Substring((String(Save[6])), 4, 4)) Equal to 2
      Then - Actions
        Hero - Learn skill for NewWarden: Vengeance
      Else - Actions
    Set VariableSet SaveCount = 7
    Set VariableSet SaveLoad_Integer = Save[SaveCount]
    For each (Integer A) from 1 to SaveLoad_Integer, do (Actions)
      Loop - Actions
        Set VariableSet SaveCount = (SaveCount + 1)
        Custom script: set udg_TempItemType = SaveLoad_Integer2Item(udg_Save[udg_SaveCount])
        Hero - Create TempItemType and give it to Maiev
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            Or - Any (Conditions) are true
              Conditions
                TempItemType Equal to Healing Wards
                TempItemType Equal to Sentry Wards
                TempItemType Equal to Talisman of the Wild
                TempItemType Equal to Wand of Illusion
                TempItemType Equal to Wand of Lightning Shield
                TempItemType Equal to Wand of Mana Stealing
                TempItemType Equal to Wand of Shadowsight
                TempItemType Equal to Wand of the Wind
                TempItemType Equal to Dust of Appearance
                TempItemType Equal to Goblin Land Mines
                TempItemType Equal to Scepter of Mastery
                TempItemType Equal to Rod of Necromancy
                TempItemType Equal to Spider Silk Broach
                TempItemType Equal to Healing Salve
                TempItemType Equal to Wand of Negation
                TempItemType Equal to Wand of Neutralization
          Then - Actions
            Set VariableSet SaveCount = (SaveCount + 1)
            Item - Set charges remaining in (Last created item) to Save[SaveCount]
          Else - Actions
    Set VariableSet SaveCount = (SaveCount + 1)
    Set VariableSet SaveLoad_Integer = Save[SaveCount]
    For each (Integer A) from 1 to SaveLoad_Integer, do (Actions)
      Loop - Actions
        Set VariableSet SaveCount = (SaveCount + 1)
        Custom script: set udg_TempItemType = SaveLoad_Integer2Item(udg_Save[udg_SaveCount])
        Hero - Create TempItemType and give it to NewWarden
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            Or - Any (Conditions) are true
              Conditions
                TempItemType Equal to Healing Wards
                TempItemType Equal to Sentry Wards
                TempItemType Equal to Talisman of the Wild
                TempItemType Equal to Wand of Illusion
                TempItemType Equal to Wand of Lightning Shield
                TempItemType Equal to Wand of Mana Stealing
                TempItemType Equal to Wand of Shadowsight
                TempItemType Equal to Wand of the Wind
                TempItemType Equal to Dust of Appearance
                TempItemType Equal to Goblin Land Mines
                TempItemType Equal to Scepter of Mastery
                TempItemType Equal to Rod of Necromancy
                TempItemType Equal to Spider Silk Broach
                TempItemType Equal to Healing Salve
                TempItemType Equal to Wand of Negation
                TempItemType Equal to Wand of Neutralization
          Then - Actions
            Set VariableSet SaveCount = (SaveCount + 1)
            Item - Set charges remaining in (Last created item) to Save[SaveCount]
          Else - Actions
    Trigger - Run Start_SCREEN_TEXT <gen> (checking conditions)
SaveLoad Save
  Events
  Conditions
  Actions
    For each (Integer A) from 1 to 30, do (Actions)
      Loop - Actions
        Set VariableSet Save[(Integer A)] = 0
    Set VariableSet SaveCount = 0
    Set VariableSet SaveCount = (SaveCount + 1)
    Set VariableSet Save[SaveCount] = 104
    Set VariableSet SaveCount = (SaveCount + 1)
    Set VariableSet Save[SaveCount] = Bonus_Strength
    Set VariableSet SaveCount = (SaveCount + 1)
    Set VariableSet Save[SaveCount] = Bonus_Agility
    Set VariableSet SaveCount = (SaveCount + 1)
    Set VariableSet Save[SaveCount] = Bonus_Intelligence
    Set VariableSet SaveCount = (SaveCount + 1)
    Set VariableSet Save[SaveCount] = ((1000 x (Level of Fan of Knives for Maiev)) + (((Level of Blink for Maiev) x 100) + (((Level of Shadow Strike for Maiev) x 10) + ((Level of Vengeance for Maiev) + 1111))))
    Set VariableSet SaveCount = (SaveCount + 1)
    Set VariableSet Save[SaveCount] = ((1000 x (Level of Blade Shield for NewWarden)) + (((Level of Shift for NewWarden) x 100) + (((Level of Summon Twilight Guardian for NewWarden) x 10) + ((Level of Eclipse for NewWarden) + 1111))))
    Set VariableSet SaveCount = (SaveCount + 1)
    Set VariableSet Save[SaveCount] = (Number of items carried by Maiev)
    For each (Integer A) from 1 to 6, do (Actions)
      Loop - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            (Item carried by Maiev in slot (Integer A)) Not equal to No item
          Then - Actions
            Set VariableSet SaveCount = (SaveCount + 1)
            Set VariableSet TempItem = (Item carried by Maiev in slot (Integer A))
            Custom script: set udg_Save[udg_SaveCount] = SaveLoad_Item2Integer( udg_TempItem )
            -------- The number of charges it has --------
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              If - Conditions
                Or - Any (Conditions) are true
                  Conditions
                    (Item-type of (Item carried by Maiev in slot (Integer A))) Equal to Healing Wards
                    (Item-type of (Item carried by Maiev in slot (Integer A))) Equal to Sentry Wards
                    (Item-type of (Item carried by Maiev in slot (Integer A))) Equal to Talisman of the Wild
                    (Item-type of (Item carried by Maiev in slot (Integer A))) Equal to Wand of Illusion
                    (Item-type of (Item carried by Maiev in slot (Integer A))) Equal to Wand of Lightning Shield
                    (Item-type of (Item carried by Maiev in slot (Integer A))) Equal to Wand of Mana Stealing
                    (Item-type of (Item carried by Maiev in slot (Integer A))) Equal to Wand of Shadowsight
                    (Item-type of (Item carried by Maiev in slot (Integer A))) Equal to Wand of the Wind
                    (Item-type of (Item carried by Maiev in slot (Integer A))) Equal to Dust of Appearance
                    (Item-type of (Item carried by Maiev in slot (Integer A))) Equal to Goblin Land Mines
                    (Item-type of (Item carried by Maiev in slot (Integer A))) Equal to Scepter of Mastery
                    (Item-type of (Item carried by Maiev in slot (Integer A))) Equal to Rod of Necromancy
                    (Item-type of (Item carried by Maiev in slot (Integer A))) Equal to Spider Silk Broach
                    (Item-type of (Item carried by Maiev in slot (Integer A))) Equal to Healing Salve
                    (Item-type of (Item carried by Maiev in slot (Integer A))) Equal to Wand of Negation
                    (Item-type of (Item carried by Maiev in slot (Integer A))) Equal to Wand of Neutralization
              Then - Actions
                Set VariableSet SaveCount = (SaveCount + 1)
                Set VariableSet Save[SaveCount] = (Charges remaining in (Item carried by Maiev in slot (Integer A)))
              Else - Actions
          Else - Actions
    Set VariableSet SaveCount = (SaveCount + 1)
    Set VariableSet Save[SaveCount] = (Number of items carried by NewWarden)
    For each (Integer A) from 1 to 6, do (Actions)
      Loop - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            (Item carried by NewWarden in slot (Integer A)) Not equal to No item
          Then - Actions
            Set VariableSet SaveCount = (SaveCount + 1)
            Set VariableSet TempItem = (Item carried by NewWarden in slot (Integer A))
            Custom script: set udg_Save[udg_SaveCount] = SaveLoad_Item2Integer( udg_TempItem )
            -------- The number of charges it has --------
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              If - Conditions
                Or - Any (Conditions) are true
                  Conditions
                    (Item-type of (Item carried by NewWarden in slot (Integer A))) Equal to Healing Wards
                    (Item-type of (Item carried by NewWarden in slot (Integer A))) Equal to Sentry Wards
                    (Item-type of (Item carried by NewWarden in slot (Integer A))) Equal to Talisman of the Wild
                    (Item-type of (Item carried by NewWarden in slot (Integer A))) Equal to Wand of Illusion
                    (Item-type of (Item carried by NewWarden in slot (Integer A))) Equal to Wand of Lightning Shield
                    (Item-type of (Item carried by NewWarden in slot (Integer A))) Equal to Wand of Mana Stealing
                    (Item-type of (Item carried by NewWarden in slot (Integer A))) Equal to Wand of Shadowsight
                    (Item-type of (Item carried by NewWarden in slot (Integer A))) Equal to Wand of the Wind
                    (Item-type of (Item carried by NewWarden in slot (Integer A))) Equal to Dust of Appearance
                    (Item-type of (Item carried by NewWarden in slot (Integer A))) Equal to Goblin Land Mines
                    (Item-type of (Item carried by NewWarden in slot (Integer A))) Equal to Scepter of Mastery
                    (Item-type of (Item carried by NewWarden in slot (Integer A))) Equal to Rod of Necromancy
                    (Item-type of (Item carried by NewWarden in slot (Integer A))) Equal to Spider Silk Broach
                    (Item-type of (Item carried by NewWarden in slot (Integer A))) Equal to Healing Salve
                    (Item-type of (Item carried by NewWarden in slot (Integer A))) Equal to Wand of Negation
                    (Item-type of (Item carried by NewWarden in slot (Integer A))) Equal to Wand of Neutralization
              Then - Actions
                Set VariableSet SaveCount = (SaveCount + 1)
                Set VariableSet Save[SaveCount] = (Charges remaining in (Item carried by NewWarden in slot (Integer A)))
              Else - Actions
          Else - Actions
    Custom script: set udg_Code = SaveLoad_Encode()
    -------- Show code to player --------
    Game - Display to (All players) for 600.00 seconds the text: (Your code: + Code)
Two Player Initialization
  Events
    Map initialization
  Conditions
  Actions
    Set VariableSet Player_One = Player 2 (Blue)
    Set VariableSet Player_One_Color = 2
    Set VariableSet Player_Two = Player 3 (Teal)
    Set VariableSet Player_Two_Color = 3
    Game - Disable ally color button and Disable creep camp button
    Trigger - Add to Tribute <gen> the event (Player_One types a chat message containing -gold (stringnoformat) as A substring)
    Trigger - Add to Tribute <gen> the event (Player_Two types a chat message containing -gold (stringnoformat) as A substring)
    Trigger - Add to Tribute <gen> the event (Player_One types a chat message containing -lumber (stringnoformat) as A substring)
    Trigger - Add to Tribute <gen> the event (Player_Two types a chat message containing -lumber (stringnoformat) as A substring)
    Trigger - Add to Player_Leaves <gen> the event (Player_One leaves the game)
    Trigger - Add to Player_Leaves <gen> the event (Player_Two leaves the game)
    Trigger - Add to Start_FINISH <gen> the event (Player_One types a chat message containing -ok (stringnoformat) as A substring)
    Trigger - Add to Start_FINISH <gen> the event (Player_Two types a chat message containing -ok (stringnoformat) as A substring)
    Trigger - Add to Start_TOOGLE_DIFFICULTY <gen> the event (Player_One types a chat message containing -normal (stringnoformat) as A substring)
    Trigger - Add to Start_TOOGLE_DIFFICULTY <gen> the event (Player_Two types a chat message containing -normal (stringnoformat) as A substring)
    Trigger - Add to Start_TOOGLE_DIFFICULTY <gen> the event (Player_One types a chat message containing -insane (stringnoformat) as A substring)
    Trigger - Add to Start_TOOGLE_DIFFICULTY <gen> the event (Player_Two types a chat message containing -insane (stringnoformat) as A substring)
    Trigger - Add to Enable_or_Disable_Experience <gen> the event (A unit owned by Player_One.Gains a level)
    Trigger - Add to Enable_or_Disable_Experience <gen> the event (A unit owned by Player_Two.Gains a level)
    Trigger - Add to Skip_Cinematic <gen> the event (Player_One skips a cinematic sequence)
    Trigger - Add to Skip_Cinematic <gen> the event (Player_Two skips a cinematic sequence)
    Trigger - Add to SaveLoad_Load <gen> the event (Player_One types a chat message containing -load (stringnoformat) as A substring)
    Trigger - Add to SaveLoad_Load <gen> the event (Player_Two types a chat message containing -load (stringnoformat) as A substring)
    Set VariableSet Powerups_Gold = 250
    Set VariableSet Powerups_Lumber = 250
    Player - Set Player_One.Food max to 60
    Player - Set Player_Two.Food max to 60
    -------- xxxxx --------
    Set VariableSet Player_Color_String[1] = |cffFF0202
    Set VariableSet Player_Color[1] = Red
    Set VariableSet Player_Color_String[2] = |cff0041FF
    Set VariableSet Player_Color[2] = Blue
    Set VariableSet Player_Color_String[3] = |cff1BE5B8
    Set VariableSet Player_Color[3] = Teal
    Set VariableSet Player_Color_String[4] = |cff530080
    Set VariableSet Player_Color[4] = Purple
    Set VariableSet Player_Color_String[5] = |cffFFFF00
    Set VariableSet Player_Color[5] = Yellow
    Set VariableSet Player_Color_String[6] = |cffFE890D
    Set VariableSet Player_Color[6] = Orange
    Set VariableSet Player_Color_String[7] = |cff1FBF00
    Set VariableSet Player_Color[7] = Green
    Set VariableSet Player_Color_String[8] = |cffE45AAA
    Set VariableSet Player_Color[8] = Pink
    Set VariableSet Player_Color_String[9] = |cff949596
    Set VariableSet Player_Color[9] = Gray
    Set VariableSet Player_Color_String[10] = |cff7DBEF1
    Set VariableSet Player_Color[10] = Light Blue
    Set VariableSet Player_Color_String[11] = |cff0F6145
    Set VariableSet Player_Color[11] = Dark Green
    Set VariableSet Player_Color_String[12] = |cff4D2903
    Set VariableSet Player_Color[12] = Brown
    Set VariableSet Share_REAL[1] = Tree of Life
    Set VariableSet Share_FAKE[1] = Tree of Life (Requirement)
    Set VariableSet Share_DISPLAY[1] = False
    Set VariableSet Share_REAL[2] = Tree of Ages
    Set VariableSet Share_FAKE[2] = Tree of Ages (Requirement)
    Set VariableSet Share_DISPLAY[2] = False
    Set VariableSet Share_REAL[3] = Tree of Eternity
    Set VariableSet Share_FAKE[3] = Tree of Eternity (Requirement)
    Set VariableSet Share_DISPLAY[3] = False
    Set VariableSet Share_REAL[4] = Altar of Elders
    Set VariableSet Share_FAKE[4] = Altar of Elders (Requirement)
    Set VariableSet Share_DISPLAY[4] = False
    Set VariableSet Share_REAL[5] = Hunter's Hall
    Set VariableSet Share_FAKE[5] = Hunter's Hall (Requirement)
    Set VariableSet Share_DISPLAY[5] = False
    Set VariableSet Share_REAL[6] = Ancient of Wind
    Set VariableSet Share_FAKE[6] = Ancient of Wind (Requirement)
    Set VariableSet Share_DISPLAY[6] = False
    Set VariableSet Share_REAL[7] = Ancient of Wonders
    Set VariableSet Share_FAKE[7] = Ancient of Wonders (Requirement)
    Set VariableSet Share_DISPLAY[7] = False
    For each (Integer A) from 1 to 7, do (Actions)
      Loop - Actions
        Set VariableSet TempGroup[1] = (Units owned by Player_One of type Share_REAL[(Integer A)])
        Set VariableSet TempGroup[2] = (Units owned by Player_Two of type Share_REAL[(Integer A)])
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            ((Number of units in TempGroup[1]) + (Number of units in TempGroup[2])) Not equal to 0
          Then - Actions
            Set VariableSet Share_DISPLAY[(Integer A)] = True
          Else - Actions
        Custom script: call DestroyGroup(udg_TempGroup[1])
        Custom script: call DestroyGroup(udg_TempGroup[2])
Start SCREEN INIT
  Events
  Conditions
  Actions
    Cinematic - Fade out over 0.00 seconds using texture White Mask and color (0%, 0%, 0%) with 0% transparency
    Trigger - Run Prepare_for_Cinematic <gen> (checking conditions)
    Wait until (Cinematic_Preparation_Finished Equal to True), checking every 0.10 seconds
    Trigger - Turn on SaveLoad_Load <gen>
    Sound - Clear the music list
    Wait 0.01 seconds
    Sound - Play Main Screen.
    Sound - Set the music list to Music, starting with song 0
    Visibility - Create an initially Enabled visibility modifier for Player_One emitting Black mask across (Playable map area)
    Visibility - Destroy (Last created visibility modifier)
    Visibility - Create an initially Enabled visibility modifier for Player_Two emitting Black mask across (Playable map area)
    Visibility - Destroy (Last created visibility modifier)
    Set VariableSet Difficulty = Normal
    Set VariableSet Code_Is_Active = False
    Trigger - Run Start_SCREEN_TEXT <gen> (ignoring conditions)
Start SCREEN TEXT
  Events
  Conditions
    GameHasStarted Equal to False
  Actions
    Cinematic - Clear the screen of text messages for (All players).
    Game - Display to (All players) for 600.00 seconds the text: |cff60cc60CHAPTER FOUR|rWrath of the Betrayer
    Game - Display to (All players) for 600.00 seconds the text: (|cff60cc60Difficulty:|r |cffffcc00 + (Difficulty + |r))
    Game - Display to (All players) for 600.00 seconds the text:
    Game - Display to (All players) for 600.00 seconds the text: |cff727272You can adjust the difficulty by typing |cffffffff-Normal|r |cff727272or|r |cffffffff-Insane|r|cff727272.|r |cff60cc60/|r |cff727272You can use the code received at the end of the previous map to|r |cffffffff-load|r |cff727272your heroes' stats, items and skills.|r |cff60cc60/|r |cff727272If you're done, you can start the level by both players typing|r |cffffffff-ok|r|cff727272.|r
    Trigger - Run Hero_Stats_INITIATE <gen> (ignoring conditions)
Start TOOGLE DIFFICULTY
  Events
  Conditions
    GameHasStarted Equal to False
  Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        Difficulty Equal to Normal
        (Matched chat string) Equal to -insane
      Then - Actions
        Set VariableSet Difficulty = Insane
        Sound - Play QuestLog <gen>
        Trigger - Run Start_SCREEN_TEXT <gen> (checking conditions)
      Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        Difficulty Equal to Insane
        (Matched chat string) Equal to -normal
      Then - Actions
        Set VariableSet Difficulty = Normal
        Sound - Play QuestLog <gen>
        Trigger - Run Start_SCREEN_TEXT <gen> (checking conditions)
      Else - Actions
Start FINISH
  Events
  Conditions
    GameHasStarted Equal to False
  Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Name of (Triggering player)) Equal to WorldEdit
      Then - Actions
        Set VariableSet Player_One_Agreed = True
        Set VariableSet Player_Two_Agreed = True
        Player - For Player_One, turn Shared units On toward Player_Two
        Player - For Player_One, turn Full shared units On toward Player_Two
        Player - For Player_Two, turn Shared units On toward Player_One
        Player - For Player_Two, turn Full shared units On toward Player_One
      Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Triggering player) Equal to Player_One
      Then - Actions
        Set VariableSet Player_One_Agreed = True
      Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Triggering player) Equal to Player_Two
      Then - Actions
        Set VariableSet Player_Two_Agreed = True
      Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        Player_One_Agreed Equal to True
        Player_Two_Agreed Equal to True
      Then - Actions
        Cinematic - Clear the screen of text messages for (All players).
        Cinematic - Disable user control for (All players).
        Sound - Play GoodJob <gen>
        Wait for GoodJob <gen> to be 0 seconds from finished playing
        Unit Group - Pick every unit in HiddenUnits and do (Actions)
          Loop - Actions
            Unit - Unhide (Picked unit)
            Unit Group - Remove (Picked unit) from HiddenUnits.
        Unit - Change ownership of Maiev to Player_One and Change color
        Unit - Change ownership of NewWarden to Player_Two and Change color
        Trigger - Run Start_APPLY_CHANGES <gen> (ignoring conditions)
        Trigger - Run Powerups_COMMON <gen> (ignoring conditions)
        Multiboard - Hide Mutliboard_Hero_Statistics
        Multiboard - Destroy Mutliboard_Hero_Statistics
        Set VariableSet GameHasStarted = True
        Cinematic - Enable user control for (All players).
        Trigger - Add Intro_Cinematic_Q <gen> to the trigger queue (Checking conditions)
      Else - Actions
Start APPLY CHANGES
  Events
  Conditions
    GameHasStarted Equal to False
  Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        Difficulty Not equal to Insane
      Then - Actions
        Set VariableSet Powerups_Gold = 500
        Player - Set Player_One.Current gold to 250
        Player - Set Player_One.Current lumber to 250
        Player - Set Player_Two.Current gold to 250
        Player - Set Player_Two.Current lumber to 250
        Hero - Disable experience gain for Naga Sea Witch 0215 <gen>.
        Hero - Make Player_One Heroes gain 30.00% experience from future kills
        Hero - Make Player_Two Heroes gain 30.00% experience from future kills
        Unit - Remove Naga Royal Guard 0290 <gen> from the game
        Unit - Remove Naga Royal Guard 0289 <gen> from the game
        Unit - Remove Naga Royal Guard 0287 <gen> from the game
        Unit - Remove Naga Royal Guard 0288 <gen> from the game
        Unit Group - Remove Tree of Eternity 0009 <gen> from HiddenUnits.
        Unit - Unhide Tree of Eternity 0009 <gen>
        Unit - Replace Tree of Eternity 0009 <gen> with a Tree of Eternity using The new unit's default life and mana
        Unit - Order (Last replaced unit) to Night Elf Tree Of Life - Entangle (Instant).Gold Mine 0001 <gen>
        Unit Group - Add (Last replaced unit) to HiddenUnits
        Unit - Hide (Last replaced unit)
        Unit Group - Remove Tree of Eternity 0008 <gen> from HiddenUnits.
        Unit - Unhide Tree of Eternity 0008 <gen>
        Unit - Replace Tree of Eternity 0008 <gen> with a Tree of Eternity using The new unit's default life and mana
        Unit - Order (Last replaced unit) to Night Elf Tree Of Life - Entangle (Instant).Gold Mine 0004 <gen>
        Unit Group - Add (Last replaced unit) to HiddenUnits
        Unit - Hide (Last replaced unit)
      Else - Actions
        Hero - Make Player 2 (Blue) Heroes gain 24.00% experience from future kills
        Hero - Make Player 3 (Teal) Heroes gain 24.00% experience from future kills
        Hero - Set Naga Sea Witch 0215 <gen> Hero-level to 8, Hide level-up graphics
        Hero - Disable experience gain for Naga Sea Witch 0215 <gen>.
        Hero - Learn skill for Naga Sea Witch 0215 <gen>: Neutral Sea Witch - Mana Shield
        Hero - Learn skill for Naga Sea Witch 0215 <gen>: Neutral Sea Witch - Mana Shield
        Hero - Modify Strength of Naga Sea Witch 0215 <gen>: Add 9.
        Hero - Modify Agility of Naga Sea Witch 0215 <gen>: Add 6.
        Hero - Modify Intelligence of Naga Sea Witch 0215 <gen>: Add 7.
        Hero - Drop the item from slot 1 of Naga Sea Witch 0215 <gen>.
        Item - Remove (Last dropped item)
        Hero - Create Staff of Negation and give it to Naga Sea Witch 0215 <gen>
        Player - Set the current research level of Rnat (techcode) to 3 for Player 5 (Yellow)
        Player - Set the current research level of Rnam (techcode) to 3 for Player 5 (Yellow)
        Player - Set the current research level of Rgfo (techcode) to 3 for Player 7 (Green)
        Set VariableSet Powerups_Gold = 400
        Player - Set Player_One.Current gold to 150
        Player - Set Player_One.Current lumber to 150
        Player - Set Player_Two.Current gold to 150
        Player - Set Player_Two.Current lumber to 150
        Unit Group - Remove Ancient Protector 0284 <gen> from HiddenUnits.
        Unit - Unhide Ancient Protector 0284 <gen>
        Unit Group - Remove Ancient Protector 0285 <gen> from HiddenUnits.
        Unit - Unhide Ancient Protector 0285 <gen>
        Unit Group - Remove Ancient Protector 0286 <gen> from HiddenUnits.
        Unit - Unhide Ancient Protector 0286 <gen>
        Unit Group - Remove Ancient Protector 0032 <gen> from HiddenUnits.
        Unit - Unhide Ancient Protector 0032 <gen>
        Unit - Remove Ancient Protector 0284 <gen> from the game
        Unit - Remove Ancient Protector 0285 <gen> from the game
        Unit - Remove Ancient Protector 0032 <gen> from the game
        Unit - Remove Ancient Protector 0286 <gen> from the game
        Unit Group - Remove Tree of Eternity 0009 <gen> from HiddenUnits.
        Unit - Unhide Tree of Eternity 0009 <gen>
        Unit - Replace Tree of Eternity 0009 <gen> with a Tree of Ages using The new unit's default life and mana
        Unit - Order (Last replaced unit) to Night Elf Tree Of Life - Entangle (Instant).Gold Mine 0001 <gen>
        Unit Group - Add (Last replaced unit) to HiddenUnits
        Unit - Hide (Last replaced unit)
        Unit Group - Remove Tree of Eternity 0008 <gen> from HiddenUnits.
        Unit - Unhide Tree of Eternity 0008 <gen>
        Unit - Replace Tree of Eternity 0008 <gen> with a Tree of Ages using The new unit's default life and mana
        Unit - Order (Last replaced unit) to Night Elf Tree Of Life - Entangle (Instant).Gold Mine 0004 <gen>
        Unit Group - Add (Last replaced unit) to HiddenUnits
        Unit - Hide (Last replaced unit)
        -------- --- --------
        Unit - Replace Mur'gul Cliffrunner 0179 <gen> with a Snap Dragon using The new unit's max life and mana
        Unit - Replace Mur'gul Cliffrunner 0180 <gen> with a Snap Dragon using The new unit's max life and mana
        Unit - Replace Mur'gul Cliffrunner 0183 <gen> with a Snap Dragon using The new unit's max life and mana
        Unit - Replace Mur'gul Cliffrunner 0181 <gen> with a Snap Dragon using The new unit's max life and mana
        Unit - Replace Mur'gul Cliffrunner 0193 <gen> with a Mur'gul Tidewarrior using The new unit's max life and mana
        Unit - Replace Mur'gul Cliffrunner 0193 <gen> with a Mur'gul Tidewarrior using The new unit's max life and mana
        Unit - Replace Naga Myrmidon 0209 <gen> with a Naga Royal Guard using The new unit's max life and mana
        Unit - Replace Mur'gul Reaver 0109 <gen> with a Naga Myrmidon using The new unit's max life and mana
        Unit - Replace Mur'gul Reaver 0120 <gen> with a Naga Myrmidon using The new unit's max life and mana
        Set VariableSet TempPoint[1] = (Center of Insane_02 <gen>)
        Unit - Create 1.Spider Crab Limbripper for Neutral Hostile at TempPoint[1] facing 150.00 degrees
        Custom script: call RemoveLocation(udg_TempPoint[1])
        Set VariableSet TempPoint[1] = (Center of Insane_03 <gen>)
        Unit - Create 1.Spider Crab Limbripper for Neutral Hostile at TempPoint[1] facing 200.00 degrees
        Custom script: call RemoveLocation(udg_TempPoint[1])
        Set VariableSet TempPoint[1] = (Center of Insane_01 <gen>)
        Unit - Create 1.Spider Crab Behemoth for Neutral Hostile at TempPoint[1] facing 175.00 degrees
        Custom script: call RemoveLocation(udg_TempPoint[1])
        Set VariableSet TempPoint[1] = (Center of Insane_04 <gen>)
        Unit - Create 1.Snap Dragon for Player 5 (Yellow) at TempPoint[1] facing 180.00 degrees
        Custom script: call RemoveLocation(udg_TempPoint[1])
        Set VariableSet TempPoint[1] = (Center of Insane_05 <gen>)
        Unit - Create 1.Snap Dragon for Player 5 (Yellow) at TempPoint[1] facing 180.00 degrees
        Custom script: call RemoveLocation(udg_TempPoint[1])
        Set VariableSet TempPoint[1] = (Center of Insane_06 <gen>)
        Unit - Create 1.Naga Siren for Player 5 (Yellow) at TempPoint[1] facing 270.00 degrees
        Custom script: call RemoveLocation(udg_TempPoint[1])
        Set VariableSet TempPoint[1] = (Center of Insane_07 <gen>)
        Unit - Create 1.Dragon Turtle for Player 5 (Yellow) at TempPoint[1] facing 270.00 degrees
        Custom script: call RemoveLocation(udg_TempPoint[1])
        Set VariableSet TempPoint[1] = (Center of Insane_08 <gen>)
        Unit - Create 1.Naga Myrmidon for Player 5 (Yellow) at TempPoint[1] facing 315.00 degrees
        Custom script: call RemoveLocation(udg_TempPoint[1])
    Wait 0.01 seconds
    Trigger - Run Share_COMMON <gen> (checking conditions)
End Game
  Events
  Conditions
  Actions
    Trigger - Clear the trigger queue
    Cinematic - Turn cinematic mode Off for (All players)
    Cinematic - Clear the screen of text messages for (All players).
    Cinematic - Fade out over 0.00 seconds using texture White Mask and color (0%, 0%, 0%) with 0% transparency
    Sound - Clear the music list
    Wait 0.01 seconds
    Sound - Play Main Screen.
    Trigger - Run Prepare_for_Cinematic <gen> (checking conditions)
    Unit - Change ownership of Maiev to Neutral Passive and Change color
    Unit - Change ownership of NewWarden to Neutral Passive and Change color
    Game - Display to (All players) for 600.00 seconds the text: |cff60cc60MISSION COMPLETED|rWrath of the Betrayer
    Game - Display to (All players) for 600.00 seconds the text:
    Trigger - Run SaveLoad_Save <gen> (ignoring conditions)
    Game - Display to (All players) for 600.00 seconds the text:
    Game - Display to (All players) for 600.00 seconds the text: |cff727272You can use this code on the next map |cffffffffBalancing the Scales|r |cff727272to load your heroes' stats, items and skills.|r
    Trigger - Run Hero_Stats_INITIATE <gen> (ignoring conditions)
    Visibility - Create an initially Enabled visibility modifier for Player_One emitting Black mask across (Playable map area)
    Visibility - Create an initially Enabled visibility modifier for Player_Two emitting Black mask across (Playable map area)
    Sound - Play QuestCompleted <gen>
Powerups ACQUIRE
  Events
    Unit - A unit Acquires an item
  Conditions
  Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        Or - Any (Conditions) are true
          Conditions
            (Item-type of (Item being manipulated)) Equal to Gold Coins
            (Item-type of (Item being manipulated)) Equal to Bundle of Lumber
            (Item-type of (Item being manipulated)) Equal to Tome of Agility
            (Item-type of (Item being manipulated)) Equal to Tome of Greater Agility
            (Item-type of (Item being manipulated)) Equal to Tome of Intelligence
            (Item-type of (Item being manipulated)) Equal to Tome of Greater Intelligence
            (Item-type of (Item being manipulated)) Equal to Tome of Strength
            (Item-type of (Item being manipulated)) Equal to Tome of Greater Strength
            (Item-type of (Item being manipulated)) Equal to Manual of Health
            (Item-type of (Item being manipulated)) Equal to Tome of Knowledge
            (Item-type of (Item being manipulated)) Equal to Glyph of Fortification
        Or - Any (Conditions) are true
          Conditions
            (Owner of (Hero manipulating item)) Equal to Player_One
            (Owner of (Hero manipulating item)) Equal to Player_Two
      Then - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            (Owner of (Hero manipulating item)) Equal to Player_One
          Then - Actions
            Game - Display to (Player group(Player_One)) the text: (((Player_Color_String[Player_One_Color] + (Name of Player_One)) + |r has acquired a |cffffcc00) + ((Name of (Item being manipulated)) + |r.))
            Game - Display to (Player group(Player_Two)) the text: (((Player_Color_String[Player_One_Color] + (Name of Player_One)) + |r has acquired a |cffffcc00) + ((Name of (Item being manipulated)) + |r.))
          Else - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            (Owner of (Hero manipulating item)) Equal to Player_Two
          Then - Actions
            Game - Display to (Player group(Player_One)) the text: (((Player_Color_String[Player_Two_Color] + (Name of Player_Two)) + |r has acquired a |cffffcc00) + ((Name of (Item being manipulated)) + |r.))
            Game - Display to (Player group(Player_Two)) the text: (((Player_Color_String[Player_Two_Color] + (Name of Player_Two)) + |r has acquired a |cffffcc00) + ((Name of (Item being manipulated)) + |r.))
          Else - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            (Item-type of (Item being manipulated)) Equal to Gold Coins
          Then - Actions
            Player - Add (Powerups_Gold / 2) to Player_One.Current gold
            Player - Add (Powerups_Gold / 2) to Player_Two.Current gold
            Set VariableSet TempPoint[1] = (Position of (Item being manipulated))
            Special Effect - Create a special effect at TempPoint[1] using Abilities\Spells\Items\ResourceItems\ResourceEffectTarget.mdl
            Special Effect - Destroy (Last created special effect)
            Floating Text - Create floating text that reads (|cffffcc00+ + (String((Powerups_Gold / 2)))) at TempPoint[1] with Z offset 0, using font size 10, color (100%, 100%, 100%), and 0% transparency
            Custom script: call RemoveLocation(udg_TempPoint[1])
            Floating Text - Set the velocity of (Last created floating text) to 64 towards 90 degrees
            Floating Text - Change (Last created floating text): Disable permanence
            Floating Text - Change the lifespan of (Last created floating text) to 3.00 seconds
            Floating Text - Change the fading age of (Last created floating text) to 2.40 seconds
          Else - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            (Item-type of (Item being manipulated)) Equal to Bundle of Lumber
          Then - Actions
            Player - Add (Powerups_Lumber / 2) to Player_One.Current lumber
            Player - Add (Powerups_Lumber / 2) to Player_Two.Current lumber
            Set VariableSet TempPoint[1] = (Position of (Item being manipulated))
            Floating Text - Create floating text that reads (|cff60cc60+ + (String((Powerups_Lumber / 2)))) at TempPoint[1] with Z offset 0, using font size 10, color (100%, 100%, 100%), and 0% transparency
            Custom script: call RemoveLocation(udg_TempPoint[1])
            Floating Text - Set the velocity of (Last created floating text) to 64 towards 90 degrees
            Floating Text - Change (Last created floating text): Disable permanence
            Floating Text - Change the lifespan of (Last created floating text) to 3.00 seconds
            Floating Text - Change the fading age of (Last created floating text) to 2.40 seconds
          Else - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            (Item-type of (Item being manipulated)) Equal to Tome of Intelligence
          Then - Actions
            Set VariableSet Bonus_Intelligence = (Bonus_Intelligence + 1)
            Trigger - Run Powerups_COMMON <gen> (checking conditions)
            Set VariableSet TempPoint[1] = (Position of (Item being manipulated))
            Special Effect - Create a special effect at TempPoint[1] using Abilities\Spells\Items\AIim\AIimTarget.mdl
            Special Effect - Destroy (Last created special effect)
            Custom script: call RemoveLocation(udg_TempPoint[1])
          Else - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            (Item-type of (Item being manipulated)) Equal to Tome of Greater Intelligence
          Then - Actions
            Set VariableSet Bonus_Intelligence = (Bonus_Intelligence + 2)
            Trigger - Run Powerups_COMMON <gen> (checking conditions)
            Set VariableSet TempPoint[1] = (Position of (Item being manipulated))
            Special Effect - Create a special effect at TempPoint[1] using Abilities\Spells\Items\AIim\AIimTarget.mdl
            Special Effect - Destroy (Last created special effect)
            Custom script: call RemoveLocation(udg_TempPoint[1])
          Else - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            (Item-type of (Item being manipulated)) Equal to Tome of Agility
          Then - Actions
            Set VariableSet Bonus_Agility = (Bonus_Agility + 1)
            Trigger - Run Powerups_COMMON <gen> (checking conditions)
            Set VariableSet TempPoint[1] = (Position of (Item being manipulated))
            Special Effect - Create a special effect at TempPoint[1] using Abilities\Spells\Items\AIam\AIamTarget.mdl
            Special Effect - Destroy (Last created special effect)
            Custom script: call RemoveLocation(udg_TempPoint[1])
          Else - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            (Item-type of (Item being manipulated)) Equal to Tome of Greater Agility
          Then - Actions
            Set VariableSet Bonus_Agility = (Bonus_Agility + 2)
            Trigger - Run Powerups_COMMON <gen> (checking conditions)
            Set VariableSet TempPoint[1] = (Position of (Item being manipulated))
            Special Effect - Create a special effect at TempPoint[1] using Abilities\Spells\Items\AIam\AIamTarget.mdl
            Special Effect - Destroy (Last created special effect)
            Custom script: call RemoveLocation(udg_TempPoint[1])
          Else - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            (Item-type of (Item being manipulated)) Equal to Tome of Strength
          Then - Actions
            Set VariableSet Bonus_Strength = (Bonus_Strength + 1)
            Trigger - Run Powerups_COMMON <gen> (checking conditions)
            Set VariableSet TempPoint[1] = (Position of (Item being manipulated))
            Special Effect - Create a special effect at TempPoint[1] using Abilities\Spells\Items\AIsm\AIsmTarget.mdl
            Special Effect - Destroy (Last created special effect)
            Custom script: call RemoveLocation(udg_TempPoint[1])
          Else - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            (Item-type of (Item being manipulated)) Equal to Tome of Greater Strength
          Then - Actions
            Set VariableSet Bonus_Strength = (Bonus_Strength + 2)
            Trigger - Run Powerups_COMMON <gen> (checking conditions)
            Set VariableSet TempPoint[1] = (Position of (Item being manipulated))
            Special Effect - Create a special effect at TempPoint[1] using Abilities\Spells\Items\AIsm\AIsmTarget.mdl
            Special Effect - Destroy (Last created special effect)
            Custom script: call RemoveLocation(udg_TempPoint[1])
          Else - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            (Item-type of (Item being manipulated)) Equal to Manual of Health
          Then - Actions
            Set VariableSet Bonus_Strength = (Bonus_Strength + 1)
            Trigger - Run Powerups_COMMON <gen> (checking conditions)
            Set VariableSet TempPoint[1] = (Position of (Item being manipulated))
            Special Effect - Create a special effect at TempPoint[1] using Abilities\Spells\Items\AIsm\AIsmTarget.mdl
            Special Effect - Destroy (Last created special effect)
            Custom script: call RemoveLocation(udg_TempPoint[1])
          Else - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            (Item-type of (Item being manipulated)) Equal to Tome of Knowledge
          Then - Actions
            Set VariableSet Bonus_Strength = (Bonus_Strength + 1)
            Set VariableSet Bonus_Intelligence = (Bonus_Intelligence + 1)
            Set VariableSet Bonus_Agility = (Bonus_Agility + 1)
            Trigger - Run Powerups_COMMON <gen> (checking conditions)
            Set VariableSet TempPoint[1] = (Position of (Item being manipulated))
            Special Effect - Create a special effect at TempPoint[1] using Abilities\Spells\Items\AIem\AIemTarget.mdl
            Special Effect - Destroy (Last created special effect)
            Custom script: call RemoveLocation(udg_TempPoint[1])
          Else - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            (Item-type of (Item being manipulated)) Equal to Glyph of Fortification
          Then - Actions
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              If - Conditions
                (Owner of (Hero manipulating item)) Equal to Player_One
              Then - Actions
                Player - Set the current research level of Rgfo (techcode) to (Current research level of Rgfo (techcode) for Player_One) for Player_Two
              Else - Actions
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              If - Conditions
                (Owner of (Hero manipulating item)) Equal to Player_Two
              Then - Actions
                Player - Set the current research level of Rgfo (techcode) to (Current research level of Rgfo (techcode) for Player_Two) for Player_One
              Else - Actions
          Else - Actions
      Else - Actions
Powerups COMMON
  Events
  Conditions
  Actions
    Set VariableSet TempGroup[1] = (Units owned by Player_One matching (((Matching unit) is A Hero) Equal to True).)
    Unit Group - Pick every unit in TempGroup[1] and do (Actions)
      Loop - Actions
        Unit - Add Agility Bonus (Powerups) to (Picked unit)
        Unit - Set level of Agility Bonus (Powerups) for (Picked unit) to (Bonus_Agility + 1)
        Unit - Add Strength Bonus (Powerups) to (Picked unit)
        Unit - Set level of Strength Bonus (Powerups) for (Picked unit) to (Bonus_Strength + 1)
        Unit - Add Intelligence Bonus (Powerups) to (Picked unit)
        Unit - Set level of Intelligence Bonus (Powerups) for (Picked unit) to (Bonus_Intelligence + 1)
    Custom script: call DestroyGroup(udg_TempGroup[1])
    Set VariableSet TempGroup[1] = (Units owned by Player_Two matching (((Matching unit) is A Hero) Equal to True).)
    Unit Group - Pick every unit in TempGroup[1] and do (Actions)
      Loop - Actions
        Unit - Add Agility Bonus (Powerups) to (Picked unit)
        Unit - Set level of Agility Bonus (Powerups) for (Picked unit) to (Bonus_Agility + 1)
        Unit - Add Strength Bonus (Powerups) to (Picked unit)
        Unit - Set level of Strength Bonus (Powerups) for (Picked unit) to (Bonus_Strength + 1)
        Unit - Add Intelligence Bonus (Powerups) to (Picked unit)
        Unit - Set level of Intelligence Bonus (Powerups) for (Picked unit) to (Bonus_Intelligence + 1)
    Custom script: call DestroyGroup(udg_TempGroup[1])
Share INIT
  Events
    Map initialization
  Conditions
  Actions
    Set VariableSet Research_Type[1] = Resm (techcode)
    Set VariableSet Research_Name_1[1] = Strength of the Moon
    Set VariableSet Research_Name_2[1] = Improved Strength of the Moon
    Set VariableSet Research_Name_3[1] = Advanced Strength of the Moon
    Set VariableSet Research_Type[2] = Resw (techcode)
    Set VariableSet Research_Name_1[2] = Strength of the Wild
    Set VariableSet Research_Name_2[2] = Improved Strength of the Wild
    Set VariableSet Research_Name_3[2] = Advanced Strength of the Wild
    Set VariableSet Research_Type[3] = Rema (techcode)
    Set VariableSet Research_Name_1[3] = Moon Armor
    Set VariableSet Research_Name_2[3] = Improved Moon Armor
    Set VariableSet Research_Name_3[3] = Advanced Moon Armor
    Set VariableSet Research_Type[4] = Rerh (techcode)
    Set VariableSet Research_Name_1[4] = Reinforced Hides
    Set VariableSet Research_Name_2[4] = Improved Reinforced Hides
    Set VariableSet Research_Name_3[4] = Advanced Reinforced Hides
    Set VariableSet Research_Type[5] = Reuv (techcode)
    Set VariableSet Research_Name_1[5] = Ultravision
    Set VariableSet Research_Type[6] = Renb (techcode)
    Set VariableSet Research_Name_1[6] = Nature's Blessing
    Set VariableSet Research_Type[7] = Resc (techcode)
    Set VariableSet Research_Name_1[7] = Sentinel
    Set VariableSet Research_Type[8] = Remg (techcode)
    Set VariableSet Research_Name_1[8] = Upgrade Moon Glaive
    Set VariableSet Research_Type[9] = Reib (techcode)
    Set VariableSet Research_Name_1[9] = Improved Bows
    Set VariableSet Research_Type[10] = Remk (techcode)
    Set VariableSet Research_Name_1[10] = Marksmanship
    Set VariableSet Research_Type[11] = Redt (techcode)
    Set VariableSet Research_Name_1[11] = Druid of the Talon Adept Training
    Set VariableSet Research_Name_2[11] = Druid of the Talon Master Training
    Set VariableSet Research_Type[12] = Redc (techcode)
    Set VariableSet Research_Name_1[12] = Druid of the Claw Adept Training
    Set VariableSet Research_Name_2[12] = Druid of the Claw Master Training
    Set VariableSet Research_Type[13] = Resi (techcode)
    Set VariableSet Research_Name_1[13] = Abolish Magic
    Set VariableSet Research_Type[14] = Recb (techcode)
    Set VariableSet Research_Name_1[14] = Corrosive Breath
    Set VariableSet Research_Type[15] = Reht (techcode)
    Set VariableSet Research_Name_1[15] = Hyppogryph Taming
    Set VariableSet Research_Type[16] = Repb (techcode)
    Set VariableSet Research_Name_1[16] = Vorpal Blades
    Set VariableSet Research_Type[17] = Rers (techcode)
    Set VariableSet Research_Name_1[17] = Resistant Skin
    Set VariableSet Research_Type[18] = Rehs (techcode)
    Set VariableSet Research_Name_1[18] = Hardened Skin
    Set VariableSet Research_Type[19] = Reeb (techcode)
    Set VariableSet Research_Name_1[19] = Mark of the Claw
    Set VariableSet Research_Type[20] = Reec (techcode)
    Set VariableSet Research_Name_1[20] = Mark of the Talon
    Set VariableSet Research_Type[21] = Rews (techcode)
    Set VariableSet Research_Name_1[21] = Well Spring
Share Research BEGIN
  Events
    Unit - A unit Begins research
  Conditions
    Or - Any (Conditions) are true
      Conditions
        (Researched tech-type) Equal to Resm (techcode)
        (Researched tech-type) Equal to Resw (techcode)
        (Researched tech-type) Equal to Rema (techcode)
        (Researched tech-type) Equal to Rerh (techcode)
        (Researched tech-type) Equal to Reuv (techcode)
        (Researched tech-type) Equal to Renb (techcode)
        (Researched tech-type) Equal to Resc (techcode)
        (Researched tech-type) Equal to Remg (techcode)
        (Researched tech-type) Equal to Reib (techcode)
        (Researched tech-type) Equal to Remk (techcode)
        (Researched tech-type) Equal to Redt (techcode)
        (Researched tech-type) Equal to Redc (techcode)
        (Researched tech-type) Equal to Resi (techcode)
        (Researched tech-type) Equal to Recb (techcode)
        (Researched tech-type) Equal to Reht (techcode)
        (Researched tech-type) Equal to Repb (techcode)
        (Researched tech-type) Equal to Rers (techcode)
        (Researched tech-type) Equal to Rehs (techcode)
        (Researched tech-type) Equal to Reeb (techcode)
        (Researched tech-type) Equal to Reec (techcode)
        (Researched tech-type) Equal to Rews (techcode)
  Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Owner of (Researching unit)) Equal to Player_One
      Then - Actions
        Player - Set the max research level of (Researched tech-type) to (Current research level of (Researched tech-type) for Player_Two) for Player_Two
      Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Owner of (Researching unit)) Equal to Player_Two
      Then - Actions
        Player - Set the max research level of (Researched tech-type) to (Current research level of (Researched tech-type) for Player_One) for Player_One
      Else - Actions
Share Research CANCEL
  Events
    Unit - A unit Cancels research
  Conditions
    Or - Any (Conditions) are true
      Conditions
        (Researched tech-type) Equal to Resm (techcode)
        (Researched tech-type) Equal to Resw (techcode)
        (Researched tech-type) Equal to Rema (techcode)
        (Researched tech-type) Equal to Rerh (techcode)
        (Researched tech-type) Equal to Reuv (techcode)
        (Researched tech-type) Equal to Renb (techcode)
        (Researched tech-type) Equal to Resc (techcode)
        (Researched tech-type) Equal to Remg (techcode)
        (Researched tech-type) Equal to Reib (techcode)
        (Researched tech-type) Equal to Remk (techcode)
        (Researched tech-type) Equal to Redt (techcode)
        (Researched tech-type) Equal to Redc (techcode)
        (Researched tech-type) Equal to Resi (techcode)
        (Researched tech-type) Equal to Recb (techcode)
        (Researched tech-type) Equal to Reht (techcode)
        (Researched tech-type) Equal to Repb (techcode)
        (Researched tech-type) Equal to Rers (techcode)
        (Researched tech-type) Equal to Rehs (techcode)
        (Researched tech-type) Equal to Reeb (techcode)
        (Researched tech-type) Equal to Reec (techcode)
        (Researched tech-type) Equal to Rews (techcode)
  Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Owner of (Researching unit)) Equal to Player_One
      Then - Actions
        Player - Set the max research level of (Researched tech-type) to (Max research level of (Researched tech-type) for Player_One) for Player_Two
      Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Owner of (Researching unit)) Equal to Player_Two
      Then - Actions
        Player - Set the max research level of (Researched tech-type) to (Max research level of (Researched tech-type) for Player_Two) for Player_One
      Else - Actions
|cff6060ffRESEARCH:|r
Share Research FINISH
  Events
    Unit - A unit Finishes research
  Conditions
    Or - Any (Conditions) are true
      Conditions
        (Researched tech-type) Equal to Resm (techcode)
        (Researched tech-type) Equal to Resw (techcode)
        (Researched tech-type) Equal to Rema (techcode)
        (Researched tech-type) Equal to Rerh (techcode)
        (Researched tech-type) Equal to Reuv (techcode)
        (Researched tech-type) Equal to Renb (techcode)
        (Researched tech-type) Equal to Resc (techcode)
        (Researched tech-type) Equal to Remg (techcode)
        (Researched tech-type) Equal to Reib (techcode)
        (Researched tech-type) Equal to Remk (techcode)
        (Researched tech-type) Equal to Redt (techcode)
        (Researched tech-type) Equal to Redc (techcode)
        (Researched tech-type) Equal to Resi (techcode)
        (Researched tech-type) Equal to Recb (techcode)
        (Researched tech-type) Equal to Reht (techcode)
        (Researched tech-type) Equal to Repb (techcode)
        (Researched tech-type) Equal to Rers (techcode)
        (Researched tech-type) Equal to Rehs (techcode)
        (Researched tech-type) Equal to Reeb (techcode)
        (Researched tech-type) Equal to Reec (techcode)
        (Researched tech-type) Equal to Rews (techcode)
  Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Owner of (Researching unit)) Equal to Player_One
      Then - Actions
        Player - Set the max research level of (Researched tech-type) to (Max research level of (Researched tech-type) for Player_One) for Player_Two
        Player - Set the current research level of (Researched tech-type) to (Current research level of (Researched tech-type) for Player_One) for Player_Two
      Else - Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        (Owner of (Researching unit)) Equal to Player_Two
      Then - Actions
        Player - Set the max research level of (Researched tech-type) to (Max research level of (Researched tech-type) for Player_Two) for Player_One
        Player - Set the current research level of (Researched tech-type) to (Current research level of (Researched tech-type) for Player_Two) for Player_One
      Else - Actions
    For each (Integer A) from 1 to 21, do (Actions)
      Loop - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            (Researched tech-type) Equal to Research_Type[(Integer A)]
          Then - Actions
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              If - Conditions
                (Owner of (Researching unit)) Equal to Player_One
              Then - Actions
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                  If - Conditions
                    (Current research level of (Researched tech-type) for Player_One) Equal to 1
                  Then - Actions
                    Game - Display to (All players) the text: ((Player_Color_String[Player_One_Color] + (Name of Player_One)) + (|r has researched |cffffcc00 + (Research_Name_1[(Integer A)] + |r.)))
                  Else - Actions
                    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                      If - Conditions
                        (Current research level of (Researched tech-type) for Player_One) Equal to 2
                      Then - Actions
                        Game - Display to (All players) the text: ((Player_Color_String[Player_One_Color] + (Name of Player_One)) + (|r has researched |cffffcc00 + (Research_Name_2[(Integer A)] + |r.)))
                      Else - Actions
                        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                          If - Conditions
                            (Current research level of (Researched tech-type) for Player_One) Equal to 3
                          Then - Actions
                            Game - Display to (All players) the text: ((Player_Color_String[Player_One_Color] + (Name of Player_One)) + (|r has researched |cffffcc00 + (Research_Name_3[(Integer A)] + |r.)))
                          Else - Actions
              Else - Actions
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              If - Conditions
                (Owner of (Researching unit)) Equal to Player_Two
              Then - Actions
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                  If - Conditions
                    (Current research level of (Researched tech-type) for Player_Two) Equal to 1
                  Then - Actions
                    Game - Display to (All players) the text: ((Player_Color_String[Player_Two_Color] + (Name of Player_Two)) + (|r has researched |cffffcc00 + (Research_Name_1[(Integer A)] + |r.)))
                  Else - Actions
                    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                      If - Conditions
                        (Current research level of (Researched tech-type) for Player_Two) Equal to 2
                      Then - Actions
                        Game - Display to (All players) the text: ((Player_Color_String[Player_Two_Color] + (Name of Player_Two)) + (|r has researched |cffffcc00 + (Research_Name_2[(Integer A)] + |r.)))
                      Else - Actions
                        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                          If - Conditions
                            (Current research level of (Researched tech-type) for Player_Two) Equal to 3
                          Then - Actions
                            Game - Display to (All players) the text: ((Player_Color_String[Player_Two_Color] + (Name of Player_Two)) + (|r has researched |cffffcc00 + (Research_Name_3[(Integer A)] + |r.)))
                          Else - Actions
              Else - Actions
          Else - Actions
Share Techtree BEGIN CONSTRUCTION
  Events
    Unit - A unit Begins construction
  Conditions
    And - All (Conditions) are true
      Conditions
        Or - Any (Conditions) are true
          Conditions
            (Unit-type of (Constructing structure)) Equal to Tree of Life
            (Unit-type of (Constructing structure)) Equal to Hunter's Hall
            (Unit-type of (Constructing structure)) Equal to Ancient of Wonders
            (Unit-type of (Constructing structure)) Equal to Ancient of Wind
            (Unit-type of (Constructing structure)) Equal to Altar of Elders
        Or - Any (Conditions) are true
          Conditions
            (Owner of (Constructing structure)) Equal to Player_One
            (Owner of (Constructing structure)) Equal to Player_Two
  Actions
    Unit Group - Add (Constructing structure) to Under_Construction
    Trigger - Run Share_COMMON <gen> (ignoring conditions)
Share Techtree CANCEL CONSTRUCTION
  Events
    Unit - A unit Cancels construction
  Conditions
    And - All (Conditions) are true
      Conditions
        Or - Any (Conditions) are true
          Conditions
            (Unit-type of (Cancelled structure)) Equal to Tree of Life
            (Unit-type of (Cancelled structure)) Equal to Hunter's Hall
            (Unit-type of (Cancelled structure)) Equal to Ancient of Wonders
            (Unit-type of (Cancelled structure)) Equal to Ancient of Wind
            (Unit-type of (Cancelled structure)) Equal to Altar of Elders
        Or - Any (Conditions) are true
          Conditions
            (Owner of (Constructing structure)) Equal to Player_One
            (Owner of (Constructing structure)) Equal to Player_Two
  Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        ((Cancelled structure) is in Under_Construction.) Equal to True
      Then - Actions
        Unit Group - Remove (Cancelled structure) from Under_Construction.
      Else - Actions
    Trigger - Run Share_COMMON <gen> (ignoring conditions)
yy
Share Techtree FINISH CONSTRUCTION
  Events
    Unit - A unit Finishes construction
  Conditions
    Or - Any (Conditions) are true
      Conditions
        (Unit-type of (Constructed structure)) Equal to Tree of Life
        (Unit-type of (Constructed structure)) Equal to Hunter's Hall
        (Unit-type of (Constructed structure)) Equal to Ancient of Wonders
        (Unit-type of (Constructed structure)) Equal to Ancient of Wind
        (Unit-type of (Constructed structure)) Equal to Altar of Elders
    Or - Any (Conditions) are true
      Conditions
        (Owner of (Constructed structure)) Equal to Player_One
        (Owner of (Constructed structure)) Equal to Player_Two
  Actions
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        ((Constructed structure) is in Under_Construction.) Equal to True
      Then - Actions
        Unit Group - Remove (Constructed structure) from Under_Construction.
      Else - Actions
    Trigger - Run Share_COMMON <gen> (ignoring conditions)
    For each (Integer A) from 1 to 7, do (Actions)
      Loop - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            (Unit-type of (Constructed structure)) Equal to Share_REAL[(Integer A)]
            Share_DISPLAY[(Integer A)] Equal to False
          Then - Actions
            Set VariableSet Share_DISPLAY[(Integer A)] = True
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              If - Conditions
                (Owner of (Constructed structure)) Equal to Player_One
              Then - Actions
                Game - Display to (All players) the text: (Player_Color_String[Player_One_Color] + ((Name of (Owner of (Constructed structure))) + (|r has built a |cffffcc00 + ((Name of (Constructed structure)) + |r.))))
              Else - Actions
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              If - Conditions
                (Owner of (Constructed structure)) Equal to Player_Two
              Then - Actions
                Game - Display to (All players) the text: (Player_Color_String[Player_Two_Color] + ((Name of (Owner of (Constructed structure))) + (|r has built a |cffffcc00 + ((Name of (Constructed structure)) + |r.))))
              Else - Actions
          Else - Actions
Share Techtree BEGIN AN UPGRADE
  Events
    Unit - A unit Begins an upgrade
  Conditions
    And - All (Conditions) are true
      Conditions
        Or - Any (Conditions) are true
          Conditions
            (Unit-type of (Triggering unit)) Equal to Tree of Life
            (Unit-type of (Triggering unit)) Equal to Tree of Ages
            (Unit-type of (Triggering unit)) Equal to Tree of Eternity
        Or - Any (Conditions) are true
          Conditions
            (Owner of (Triggering unit)) Equal to Player_One
            (Owner of (Triggering unit)) Equal to Player_Two
  Actions
    Unit Group - Add (Triggering unit) to Under_Construction
    Trigger - Run Share_COMMON <gen> (ignoring conditions)
Share Techtree CANCEL AN UPGRADE
  Events
    Unit - A unit Cancels an upgrade
  Conditions
    And - All (Conditions) are true
      Conditions
        Or - Any (Conditions) are true
          Conditions
            (Unit-type of (Triggering unit)) Equal to Tree of Life
            (Unit-type of (Triggering unit)) Equal to Tree of Ages
            (Unit-type of (Triggering unit)) Equal to Tree of Eternity
        Or - Any (Conditions) are true
          Conditions
            (Owner of (Triggering unit)) Equal to Player_One
            (Owner of (Triggering unit)) Equal to Player_Two
  Actions
    Trigger - Run Share_COMMON <gen> (ignoring conditions)
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        ((Triggering unit) is in Under_Construction.) Equal to True
      Then - Actions
        Unit Group - Remove (Triggering unit) from Under_Construction.
      Else - Actions
Share Techtree FINISH AN UPGRADE
  Events
    Unit - A unit Finishes an upgrade
  Conditions
    And - All (Conditions) are true
      Conditions
        Or - Any (Conditions) are true
          Conditions
            (Unit-type of (Triggering unit)) Equal to Tree of Life
            (Unit-type of (Triggering unit)) Equal to Tree of Ages
            (Unit-type of (Triggering unit)) Equal to Tree of Eternity
        Or - Any (Conditions) are true
          Conditions
            (Owner of (Triggering unit)) Equal to Player_One
            (Owner of (Triggering unit)) Equal to Player_Two
  Actions
    Trigger - Run Share_COMMON <gen> (ignoring conditions)
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        ((Triggering unit) is in Under_Construction.) Equal to True
      Then - Actions
        Unit Group - Remove (Triggering unit) from Under_Construction.
      Else - Actions
    For each (Integer A) from 1 to 7, do (Actions)
      Loop - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            (Unit-type of (Triggering unit)) Equal to Share_REAL[(Integer A)]
            Share_DISPLAY[(Integer A)] Equal to False
          Then - Actions
            Set VariableSet Share_DISPLAY[(Integer A)] = True
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              If - Conditions
                (Owner of (Triggering unit)) Equal to Player_One
              Then - Actions
                Game - Display to (All players) the text: (Player_Color_String[Player_One_Color] + ((Name of (Owner of (Triggering unit))) + (|r has upgraded to a |cffffcc00 + ((Name of (Triggering unit)) + |r.))))
              Else - Actions
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              If - Conditions
                (Owner of (Triggering unit)) Equal to Player_Two
              Then - Actions
                Game - Display to (All players) the text: (Player_Color_String[Player_Two_Color] + ((Name of (Owner of (Triggering unit))) + (|r has upgraded to a |cffffcc00 + ((Name of (Triggering unit)) + |r.))))
              Else - Actions
          Else - Actions
Share DEATH
  Events
    Unit - A unit Dies
  Conditions
  Actions
    Trigger - Run Share_COMMON <gen> (ignoring conditions)
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        ((Dying unit) is in Under_Construction.) Equal to True
      Then - Actions
        Unit Group - Remove (Dying unit) from Under_Construction.
      Else - Actions
    For each (Integer A) from 1 to 7, do (Actions)
      Loop - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            (Unit-type of (Dying unit)) Equal to Share_REAL[(Integer A)]
          Then - Actions
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              If - Conditions
                (Unit-type of (Dying unit)) Equal to Tree of Life
              Then - Actions
                Set VariableSet TempGroup[1] = (Units owned by Player_One matching ((((Matching unit) is alive) Equal to True) and ((((Unit-type of (Matching unit)) Equal to Tree of Life) and (((Matching unit) is in Under_Construction.) Equal to False)) or (((Unit-type of (Matching unit)) Equal to Tree of Ages) or ((Unit-type of (Matching unit)) Equal to Tree of Eternity)))).)
                Set VariableSet TempGroup[2] = (Units owned by Player_Two matching ((((Matching unit) is alive) Equal to True) and ((((Unit-type of (Matching unit)) Equal to Tree of Life) and (((Matching unit) is in Under_Construction.) Equal to False)) or (((Unit-type of (Matching unit)) Equal to Tree of Ages) or ((Unit-type of (Matching unit)) Equal to Tree of Eternity)))).)
              Else - Actions
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                  If - Conditions
                    (Unit-type of (Dying unit)) Equal to Tree of Ages
                  Then - Actions
                    Set VariableSet TempGroup[1] = (Units owned by Player_One matching ((((Matching unit) is alive) Equal to True) and ((((Unit-type of (Matching unit)) Equal to Tree of Ages) and (((Matching unit) is in Under_Construction.) Equal to False)) or ((Unit-type of (Matching unit)) Equal to Tree of Eternity))).)
                    Set VariableSet TempGroup[2] = (Units owned by Player_Two matching ((((Matching unit) is alive) Equal to True) and ((((Unit-type of (Matching unit)) Equal to Tree of Ages) and (((Matching unit) is in Under_Construction.) Equal to False)) or ((Unit-type of (Matching unit)) Equal to Tree of Eternity))).)
                  Else - Actions
                    Set VariableSet TempGroup[1] = (Units owned by Player_One matching (((((Matching unit) is alive) Equal to True) and (((Matching unit) is in Under_Construction.) Equal to False)) and ((Unit-type of (Matching unit)) Equal to Share_REAL[(Integer A)])).)
                    Set VariableSet TempGroup[2] = (Units owned by Player_Two matching (((((Matching unit) is alive) Equal to True) and (((Matching unit) is in Under_Construction.) Equal to False)) and ((Unit-type of (Matching unit)) Equal to Share_REAL[(Integer A)])).)
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              If - Conditions
                ((Number of units in TempGroup[1]) + (Number of units in TempGroup[2])) Equal to 0
              Then - Actions
                Set VariableSet Share_DISPLAY[(Integer A)] = False
              Else - Actions
            Custom script: call DestroyGroup(udg_TempGroup[1])
            Custom script: call DestroyGroup(udg_TempGroup[2])
          Else - Actions
Share COMMON
  Events
  Conditions
  Actions
    For each (Integer A) from 1 to 7, do (Actions)
      Loop - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            Share_REAL[(Integer A)] Equal to Tree of Life
          Then - Actions
            Set VariableSet TempGroup[1] = (Units owned by Player_One matching ((((Matching unit) is alive) Equal to True) and ((((Unit-type of (Matching unit)) Equal to Tree of Life) and (((Matching unit) is in Under_Construction.) Equal to False)) or (((Unit-type of (Matching unit)) Equal to Tree of Ages) or ((Unit-type of (Matching unit)) Equal to Tree of Eternity)))).)
            Set VariableSet TempGroup[2] = (Units owned by Player_Two matching ((((Matching unit) is alive) Equal to True) and ((((Unit-type of (Matching unit)) Equal to Tree of Life) and (((Matching unit) is in Under_Construction.) Equal to False)) or (((Unit-type of (Matching unit)) Equal to Tree of Ages) or ((Unit-type of (Matching unit)) Equal to Tree of Eternity)))).)
          Else - Actions
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              If - Conditions
                Share_REAL[(Integer A)] Equal to Tree of Ages
              Then - Actions
                Set VariableSet TempGroup[1] = (Units owned by Player_One matching ((((Matching unit) is alive) Equal to True) and ((((Unit-type of (Matching unit)) Equal to Tree of Ages) and (((Matching unit) is in Under_Construction.) Equal to False)) or ((Unit-type of (Matching unit)) Equal to Tree of Eternity))).)
                Set VariableSet TempGroup[2] = (Units owned by Player_Two matching ((((Matching unit) is alive) Equal to True) and ((((Unit-type of (Matching unit)) Equal to Tree of Ages) and (((Matching unit) is in Under_Construction.) Equal to False)) or ((Unit-type of (Matching unit)) Equal to Tree of Eternity))).)
              Else - Actions
                Set VariableSet TempGroup[1] = (Units owned by Player_One matching (((((Matching unit) is alive) Equal to True) and (((Matching unit) is in Under_Construction.) Equal to False)) and ((Unit-type of (Matching unit)) Equal to Share_REAL[(Integer A)])).)
                Set VariableSet TempGroup[2] = (Units owned by Player_Two matching (((((Matching unit) is alive) Equal to True) and (((Matching unit) is in Under_Construction.) Equal to False)) and ((Unit-type of (Matching unit)) Equal to Share_REAL[(Integer A)])).)
        Set VariableSet TempGroup[3] = (Units owned by Player_One of type Share_FAKE[(Integer A)])
        Set VariableSet TempGroup[4] = (Units owned by Player_Two of type Share_FAKE[(Integer A)])
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            ((Number of units in TempGroup[1]) + (Number of units in TempGroup[2])) Equal to 0
          Then - Actions
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              If - Conditions
                (Number of units in TempGroup[3]) Not equal to 0
              Then - Actions
                Unit Group - Pick every unit in TempGroup[3] and do (Actions)
                  Loop - Actions
                    Unit - Remove (Picked unit) from the game
              Else - Actions
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              If - Conditions
                (Number of units in TempGroup[4]) Not equal to 0
              Then - Actions
                Unit Group - Pick every unit in TempGroup[4] and do (Actions)
                  Loop - Actions
                    Unit - Remove (Picked unit) from the game
              Else - Actions
          Else - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            ((Number of units in TempGroup[1]) + (Number of units in TempGroup[2])) Not equal to 0
          Then - Actions
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              If - Conditions
                (Number of units in TempGroup[3]) Equal to 0
              Then - Actions
                Set VariableSet TempPoint[1] = (Center of (Playable map area))
                Unit - Create 1.Share_FAKE[(Integer A)] for Player_One at TempPoint[1] facing Default building facing degrees
                Custom script: call RemoveLocation(udg_TempPoint[1])
              Else - Actions
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              If - Conditions
                (Number of units in TempGroup[4]) Equal to 0
              Then - Actions
                Set VariableSet TempPoint[1] = (Center of (Playable map area))
                Unit - Create 1.Share_FAKE[(Integer A)] for Player_Two at TempPoint[1] facing Default building facing degrees
                Custom script: call RemoveLocation(udg_TempPoint[1])
              Else - Actions
          Else - Actions
        Custom script: call DestroyGroup(udg_TempGroup[1])
        Custom script: call DestroyGroup(udg_TempGroup[2])
        Custom script: call DestroyGroup(udg_TempGroup[3])
        Custom script: call DestroyGroup(udg_TempGroup[4])
ITEM Initialization
  Events
    Map initialization
  Conditions
  Actions
    Set VariableSet ITEM_DESC_Total = (ITEM_DESC_Total + 1)
    Set VariableSet ITEM_DESC[ITEM_DESC_Total] = Crates 0117 <gen>
    Set VariableSet ITEM_DESC_Item_Type[ITEM_DESC_Total] = Glyph of Fortification
    Set VariableSet ITEM_DESC_Item_Type_INSANE[ITEM_DESC_Total] = Glyph of Fortification
    -------- - --------
    Set VariableSet ITEM_UNIT_Total = (ITEM_UNIT_Total + 1)
    Set VariableSet ITEM_UNIT[ITEM_UNIT_Total] = Rat 0294 <gen>
    Set VariableSet ITEM_UNIT_Item_Type[ITEM_UNIT_Total] = Talisman of Evasion
    Set VariableSet ITEM_UNIT_Item_Type_INSANE[ITEM_UNIT_Total] = Talisman of Evasion
    -------- - --------
    Set VariableSet ITEM_UNIT_Total = (ITEM_UNIT_Total + 1)
    Set VariableSet ITEM_UNIT[ITEM_UNIT_Total] = Mur'gul Slave 0054 <gen>
    Set VariableSet ITEM_UNIT_Item_Type[ITEM_UNIT_Total] = Staff of Teleportation
    Set VariableSet ITEM_UNIT_Item_Type_INSANE[ITEM_UNIT_Total] = Staff of Teleportation
    -------- - --------
    Set VariableSet ITEM_UNIT_Total = (ITEM_UNIT_Total + 1)
    Set VariableSet ITEM_UNIT[ITEM_UNIT_Total] = Mur'gul Slave 0065 <gen>
    Set VariableSet ITEM_UNIT_Item_Type[ITEM_UNIT_Total] = Staff of Negation
    Set VariableSet ITEM_UNIT_Item_Type_INSANE[ITEM_UNIT_Total] = Staff of Negation
    -------- - --------
    Set VariableSet ITEM_UNIT_Total = (ITEM_UNIT_Total + 1)
    Set VariableSet ITEM_UNIT[ITEM_UNIT_Total] = Mur'gul Slave 0119 <gen>
    Set VariableSet ITEM_UNIT_Item_Type[ITEM_UNIT_Total] = Orb of Slow
    Set VariableSet ITEM_UNIT_Item_Type_INSANE[ITEM_UNIT_Total] = Orb of Slow
    -------- - --------
    Set VariableSet ITEM_UNIT_Total = (ITEM_UNIT_Total + 1)
    Set VariableSet ITEM_UNIT[ITEM_UNIT_Total] = Mur'gul Slave 0053 <gen>
    Set VariableSet ITEM_UNIT_Item_Type[ITEM_UNIT_Total] = Mana Stone
    Set VariableSet ITEM_UNIT_Item_Type_INSANE[ITEM_UNIT_Total] = Mana Stone
    -------- - --------
    For each (Integer A) from 1 to ITEM_DESC_Total, do (Actions)
      Loop - Actions
        Trigger - Add to ITEM_Desc_Drops <gen> the event (ITEM_DESC[(Integer A)] dies)
ITEM Unit Drops
  Events
    Unit - A unit Dies
  Conditions
  Actions
    For each (Integer A) from 1 to ITEM_UNIT_Total, do (Actions)
      Loop - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            ITEM_UNIT[(Integer A)] Equal to (Dying unit)
          Then - Actions
            Set VariableSet TempPoint[1] = (Position of (Dying unit))
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              If - Conditions
                Difficulty Equal to Insane
                ITEM_UNIT_Item_Type_INSANE[(Integer A)] Not equal to EMPTY
              Then - Actions
                Item - Create ITEM_UNIT_Item_Type_INSANE[(Integer A)] at TempPoint[1]
              Else - Actions
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                  If - Conditions
                    ITEM_UNIT_Item_Type[(Integer A)] Not equal to EMPTY
                  Then - Actions
                    Item - Create ITEM_UNIT_Item_Type[(Integer A)] at TempPoint[1]
                  Else - Actions
            Custom script: call RemoveLocation(udg_TempPoint[1])
          Else - Actions
ITEM Desc Drops
  Events
  Conditions
  Actions
    For each (Integer A) from 1 to ITEM_DESC_Total, do (Actions)
      Loop - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          If - Conditions
            ITEM_DESC[(Integer A)] Equal to (Dying destructible)
          Then - Actions
            Set VariableSet TempPoint[1] = (Position of (Dying destructible))
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
              If - Conditions
                Difficulty Equal to Insane
                ITEM_DESC_Item_Type_INSANE[(Integer A)] Not equal to EMPTY
              Then - Actions
                Item - Create ITEM_DESC_Item_Type_INSANE[(Integer A)] at TempPoint[1]
              Else - Actions
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                  If - Conditions
                    ITEM_DESC_Item_Type[(Integer A)] Not equal to EMPTY
                  Then - Actions
                    Item - Create ITEM_DESC_Item_Type[(Integer A)] at TempPoint[1]
                  Else - Actions
            Custom script: call RemoveLocation(udg_TempPoint[1])
          Else - Actions
Enable or Disable Experience
  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
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        Or - Any (Conditions) are true
          Conditions
            (Hero level of Maiev) Greater than or equal to 6
            InCinematic Equal to True
      Then - Actions
        Hero - Disable experience gain for Maiev.
      Else - Actions
        Hero - Enable experience gain for Maiev.
    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
      If - Conditions
        Or - Any (Conditions) are true
          Conditions
            (Hero level of NewWarden) Greater than or equal to 6
            InCinematic Equal to True
      Then - Actions
        Hero - Disable experience gain for NewWarden.
      Else - Actions
        Hero - Enable experience gain for NewWarden.
Prepare for Cinematic
  Events
  Conditions
  Actions
    Set VariableSet CameraReturnPoint = (Target of current camera view)
    Game - Turn the day/night cycl