Warcraft III/Patch 1.29.0b

Patch 1.29.0b was a major patch that was released on April 10, 2018.
==Video==
600px
==Foreword==
Our sincere thanks to the Classic forums, the pros, the mapmakers, the players, r/WC3, Discord (Warcraft 3 United), and all the fans who reached out to help make this patch Rexxar approved. Classic is by your side on this journey. 
==Specific Changes & Improvements==
Widescreen support added. To prevent stretching their have been changes to the interfaces:
*Added bookends to the in-game interface
*Added black pillars in menus
Game lobbies expanded to support 24 players. We’ve added 12 new team colors. Thanks to Erkan and others for contributing to the new palette:
*Player 13 - Maroon
*Player 14 - Navy
*Player 15 - Turquoise
*Player 16 - Violet
*Player 17 - Wheat
*Player 18 - Peach
*Player 19 - Mint
*Player 20 - Lavender
*Player 21 - Coal
*Player 22 - Snow
*Player 23 - Emerald
*Player 24 - Peanut
==Notes==
*Ladder standings have been reset; good luck and have fun on the climb
*Replays are incompatible between major game versions
*This will be the last version to support Windows XP
*Automated tournaments will resume next week
==Bug Fixes==
*Clans can be created
*Mac launches
*Korean locale launches
*Various missing textures located (Thanks to TriggerHappy for the test map)
*Default resolution no longer resembles Felwood
*Ladder maps cleansed of sneaky tower locations near starting mines
==Known Issues==
*Temporarily disabled Fixed Aspect Ratio in Video Options
*Chaos Kodo Beasts are showing as idle workers in campaign missions
*Unable to input text while keyboard settings are under different languages in zhCN and koKR locales
*Certain elements in World Editor overlap
*Set/GetAbilityOnXXXX functions are renamed to Set/GetAbilityActivatedXXXX
*SetUnitNameAll is disabled for now
*PlaySpecialEffect is disabled for now
*PlaySpecialEffectWithTimeScale is disabled for now
*Crash: With an ability that has "Disabled"=false, attempting to set "Disabled" to false again will crash the World Editor
*UnitDisableAbility does not hide an ability with Hide=true and Disabled=false
*Default map directory is for from maps when creating custom games
*Resolution does not change properly when switching between windowed and full screen
*Tooltips for hero abilities may not be updated
==Hero Balance Changes==
===Mountain King===
*Movement Speed
**Increased base speed from 270 to 290
*Stormbolt
**Level 2: Reduce damage from 225 to 210
**Level 3: Reduce damage from 350 to 325
*Thunder Clap
**Level 1: Increased damage from 60 to 65; Increased area of effect from 25 to 30
**Level 2: Increased damage from 100 to 125; Increased area of effect from 30 to 35
**Level 3: Increased damage from 140 to 175; Increased area of effect from 35 to 40
===Paladin===
*Attack Speed
**Reduced cooldown from 2.2 to 2.0 seconds
*Movement Speed
**Increased base speed from 270 to 290
*Divine Shield
**Level 2: Reduced duration from 30 to 25
**Level 3: Reduced duration from 45 to 35
===Blademaster===
*Mirror Image
**Reduced Mana cost from 115 to 100 for all levels
*Critical Strike
**Removed + damage item interaction from multiplier calculation: (Avg Damage + Item Damage)*Critical Multiplier = Total Damage
**Prior calculation: (Avg Damage *Critical Multiplier) + Item Damage = Total Damage
===Far Seer===
*Feral Spirit
**Level 1: Increased unit healths from 200 to 250
**Level 2: Increased unit healths from 300 to 350; Reduced unit level from 4 to 3 to reduce enemy experience reward
**Level 3: Reduced unit level from 5 to 4 to reduce enemy experience reward
*Chain Lightning
**Reduced damage reduction from 15% to 10% per jump for all levels
*Far Sight
**Level 1: Removed mana cost; Added a cooldown of 60 seconds
**Level 2: Removed mana cost; Added a cooldown of 45 seconds
**Level 3: Removed mana cost; Added a cooldown of 30 seconds
===Shadow Hunter===
*Serpent Wards
**Level 1: Increased damage from 11-13 to 14-16; Increased health from 75 to 90
**Level 2: Increased damage from 23-26 to 27-30; Increased health from 135 to 165
**Level 3: Increased damage from 41-45 to 48-52; Increased health from 135 to 200
===Tauren Chieftain===
*Movement Speed
**Increased base speed from 270 to 290
*War Stomp
**Level 1: Increased damage from 25 to 30
**Level 2: Increased damage from 50 to 60
**Level 3: Increased damage from 75 to 90
*Reincarnation
**Reduced spellcast from 7 seconds to 5 seconds
===Crypt Lord===
*Movement Speed
**Increased base speed from 270 to 290
*Carrion Beetles
**Level 1: Increased health from 140 to 170; Increase movement speed from 270 to 290
**Level 2: Increased health from 275 to 330; Increase movement speed from 270 to 290
**Level 3: Increased health from 410 to 490; Increase movement speed from 270 to 290
*Impale
**Level 1: Increased damage from 50 to 75
**Level 2: Increased damage from 80 to 120
**Level 3: Increased damage from 110 to 165
===Dread Lord===
*Movement Speed
**Increased base speed from 270 to 290
*Carrion Swarm
**Level 1: Increased maximum damage from 300 to 400
**Level 2: Increased maximum damage from 600 to 700
**Level 3: Increased maximum damage from 1000 to 1200
**Mana Cost reduced from 110 to 100 for all levels
**Now damages mechanical units 
*Sleep
**Cooldown reduced from 6 seconds to 4 seconds for all levels
**Level 1: Reduced duration from 20 (5) sec to 15 (4) sec; Reduced mana cost from 100 to 80
**Level 2: Reduced duration from 40 (10) sec to 35 (8) sec; Reduced mana cost from 75 to 65
**Level 3: Reduced duration from 60 (15) sec to 55 (12) sec
*Vampiric Aura
**Level 1: Increased life steal from 15% to 20%
**Level 2: Increased life steal from 30% to 35%
**Level 3: Increased life steal from 45% to 50%
===Lich===
*Movement Speed
**Increased base speed from 270 to 290
===Demon Hunter===
*Mana Burn
**Increased mana cost from 50 to 60 for all levels
===Keeper of the Grove===
*Intelligence
**Increased default value from 18 to 19
*Tranquility
**Added 3 seconds of invulnerability on spellcast
**Reduced duration from 30 seconds to 15 seconds
**Increased healing per second from 20 to 40
*Entangling Root
**Level 2: Reduced duration on units from 24 seconds to 18 seconds; Increased duration on heroes from 3 seconds to 5 seconds; Increased damage per second from 15 damage to 20 damage
**Level 3: Reduced duration on units from 36 seconds to 30 seconds; Increased duration on heroes from 5 seconds to 7 seconds; Increased damage per second from 25 Damage to 30 Damage
*Force of Nature
**Increased Treant attack damage from 14 to 16
===Priestess of the Moon===
*Attack Speed
**Reduced cooldown from 2.46 to 2.33 seconds
*Scout
**Increased speed from 270 to 300
**Level 1: Reduced mana cost from 100 to 50
**Level 2: Reduced mana cost from 75 to 50
===Warden===
*Blink
**Level 2: Reduced cooldown from 10 seconds to 7 seconds
**Level 3: Increased cooldown from 1 second to 4 seconds
===Dark Ranger===
*Life Drain
**Increase damage done per second and lower mana cost
**Level 1: Increase damage per second from 25 to 30; Reduce Mana cost from 75 to 50
**Level 2: Increase damage per second from 40 to 45, Reduce Mana cost from 75 to 50
**Level 3: Increase damage per second from 55 to 60, Reduce Mana cost from 75 to 50
===Firelord===
*Incinerate
**Level 1: Increased bonus damage multiplier per stack from 1 to 2; Increased death by incineration damage full area from 90 to 120; Increased death by incineration damage half area from 180 to 240; Increased duration from 2 to 4
**Level 2: Increased bonus damage multiplier per stack from 2 to 3; Increased death by incineration damage full area from 90 to 120; Increased death by incineration damage half area from 180 to 240; Increased duration from 2 to 4
**Level 3: Increased bonus damage multiplier per stack from 3 to 4; Increased death by incineration damage full area from 100 to 120; Increased death by incineration damage half area from 180 to 240; Increased duration from 2 to 4
*Soul Burn
**Level 1: Increased duration on units from 14 seconds to 16 seconds; Increased duration on heroes from 6 seconds to 7 seconds; Increased damage from 100 to 125
**Level 2: Increased duration on units from 16 seconds to 18 seconds; Increased duration on heroes from 7 seconds to 8 seconds; Increased damage from 225 to 270
**Level 3: Increased duration on units from 18 seconds to 20 seconds; Increased duration on heroes from 8 seconds to 9 seconds; Increased damage from 375 to 450
===Goblin Alchemist===
*Movement Speed
**Increased base speed from 270 to 290
*Healing Spray
**No longer heals enemy units
**Heals Alchemist
*Acid Bomb
**Level 1: Increased Damage from 5 to 8 (total damage 75 to 120; Secondary damage 3 to 5)
**Level 2: Increased Damage from 10 to 13 (total damage 150 to 195; Secondary damage 6.5 to 8.5)
**Level 3: Increased Damage from 15 to 18 (total damage 225 to 270; Secondary damage 10 to 12)
===Goblin Tinker===
*Movement Speed
**Increased base speed from 270 to 290
*Cluster Rockets
**Now targets air units
**Level 1: Increased damage from 35 to 45 damage per second
**Level 2: Increased damage from 65 to 75 damage per second
**Level 3: Increased damage from 100 to 110 damage per second 
===Naga Sea Witch===
*Movement Speed
**Increased base speed from 270 to 290
===Pandaren Brewmaster===
*Movement Speed
**Increased base speed from 270 to 290
==Map Pool==
===1v1===
*(2)TerenasStand_LV
*(2)Plunderisle_LV
*(2)TheTwoRivers_LV
*(2)RoadToStratholme_LV
*(2)EchoIsle
*(2)TirisfalGlades_LV
*(2)Amazonia(COMMUNITY)
*(2)LastRefuge-1.3(COMMUNITY)
*(4)Floodplains1v1_LV
*(4)TwistedMeadows
*(4)TurtleRock
===2v2===
*(4)PhantomGrove_LV
*(4)Avalanche_LV
*(4)TurtleRock
*(4)Duskwood_LV
*(4)BridgeTooNear_LV
*(4)FrozenClover_LV
*(4)TidewaterGlades_LV
*(4)LostTemple
*(4)TwistedMeadows
*(6)Duststorm_LV
*(6)GnollWood
===3v3===
*(6)ThunderLake_LV
*(6)GnollWood
*(6)Monsoon_LV
*(6)DarkForest
*(6)UpperKingdom
*(6)RuinsOfStratholme
*(8)Mur’gulOasis_LV
*(6)RollingHills
*(6)TimbermawHold
*(6)StranglethornVale
*(8)Battleground_LV
===4v4===
*(8)Feralas_LV
*(8)Northshire_LV
*(8)Sanctuary_LV
*(8)TwilightRuins_LV
*(8)Battleground_LV
*(8)Deadlock_LV
*(8)GolemsInTheMist_LV
*(8)Mur’gulOasis_LV
*(8)MarketSquare
*(8)GoldRush
*(8)Friends
*(8)BlastedLands
===FFA===
*(4)Deathrose
*(6)Duststorm_LV
*(6)EmeraldShores
*(6)StranglethornVale
*(6)Monsoon_LV
*(6)ThunderLake_LV
*(8)Deadlock_LV
*(8)Mur’gulOasis_LV
*(8)TwilightRuins_LV
*(8)Battleground_LV
==World Editor Upgrades==
*Object Limit: 30,000
*Neutral Units: 2,048
*Neutral Buildings: 384
*Player Units: 4,320
*Player Buildings: 2,400
*Items: 1,024
*Map Size Limit: 480 x 480
*Tile Slot Limit: 16
*Max Execution Limit: 3,000,000
*Max Food Limit: 999
*Max Resource Limit: 9,999,999
*Array Size Limit: 32,768
*"Always show Health Bars" now shows Mana Bars as well
===New Natives===
*native GetTriggerPlayerMouseX: takes nothing returns real
*native GetTriggerPlayerMouseY: takes nothing returns real
*native GetTriggerPlayerMousePosition: takes nothing returns location
*native GetTriggerPlayerMouseButton: takes nothing returns mousebuttontype
*native SetAbilityTooltip: takes integer abilCode, string tooltip, integer level returns nothing
*native SetAbilityActivatedTooltip: takes integer abilCode, string tooltip, integer level returns nothing
*native SetAbilityExtendedTooltip: takes integer abilCode, string ExtendedTooltip, integer level returns nothing
*native SetAbilityActivatedExtendedTooltip: takes integer abilCode, string ExtendedTooltip, integer level returns nothing
*native SetAbilityResearchTooltip: takes integer abilCode, string researchTooltip, integer level returns nothing
*native SetAbilityResearchExtendedTooltip: takes integer abilCode, string researchExtendedTooltip, integer level returns nothing
*native GetAbilityTooltip: takes integer abilCode, integer level returns string
*native GetAbilityActivatedTooltip: takes integer abilCode, integer level returns string
*native GetAbilityExtendedTooltip: takes integer abilCode, integer level returns string
*native GetAbilityActivatedExtendedTooltip: takes integer abilCode, integer level returns string
*native GetAbilityResearchTooltip: takes integer abilCode, integer level returns string
*native GetAbilityResearchExtendedTooltip: takes integer abilCode, integer level returns string
*native SetAbilityIcon: takes integer abilCode, string iconPath returns nothing
*native GetAbilityIcon: takes integer abilCode returns string
*native SetAbilityActivatedIcon: takes integer abilCode, string iconPath returns nothing
*native GetAbilityActivatedIcon: takes integer abilCode returns string
*native GetAbilityPosX: takes integer abilCode returns integer
*native GetAbilityPosY: takes integer abilCode returns integer
*native SetAbilityPosX: takes integer abilCode, integer x returns nothing
*native SetAbilityPosY: takes integer abilCode, integer y returns nothing
*native GetAbilityActivatedPosX: takes integer abilCode returns integer
*native GetAbilityActivatedPosY: takes integer abilCode returns integer
*native SetAbilityActivatedPosX: takes integer abilCode, integer x returns nothing
*native SetAbilityActivatedPosY: takes integer abilCode, integer y returns nothing
*native GetUnitMaxHP: takes unit whichUnit returns integer
*native SetUnitMaxHP: takes unit whichUnit, integer hp returns nothing
*native GetUnitMaxMana: takes unit whichUnit returns integer
*native SetUnitMaxMana: takes unit whichUnit, integer mana returns nothing
*native DeleteHeroAbility: takes unit whichUnit, integer abilCode returns nothing
*native SetItemName: takes item whichItem, string name returns nothing
*native SetItemDescription: takes item whichItem, string name returns nothing
*native GetItemDescription: takes item whichItem returns string
*native SetItemTooltip: takes item whichItem, string name returns nothing
*native GetItemTooltip: takes item whichItem returns string
*native SetItemExtendedTooltip: takes item whichItem, string name returns nothing
*native GetItemExtendedTooltip: takes item whichItem returns string
*native SetItemIconPath: takes item whichItem, string name returns nothing
*native GetItemIconPath: takes item whichItem returns string
*native SetUnitName: takes unit whichUnit, string name returns nothing
*native SetHeroProperName: takes unit whichUnit, string name returns nothing
*native GetUnitBaseDamage: takes unit whichUnit, integer weaponIndex returns integer
*native SetUnitBaseDamage: takes unit whichUnit, integer baseDamage, integer weaponIndex returns nothing
*native GetUnitDiceNumber: takes unit whichUnit, integer weaponIndex returns integer
*native SetUnitDiceNumber: takes unit whichUnit, integer diceNumber, integer weaponIndex returns nothing
*native GetUnitDiceSides: takes unit whichUnit, integer weaponIndex returns integer
*native SetUnitDiceSides: takes unit whichUnit, integer diceSides, integer weaponIndex returns nothing
*native GetUnitAttackCooldown: takes unit whichUnit, integer weaponIndex returns real
*native SetUnitAttackCooldown: takes unit whichUnit, real cooldown, integer weaponIndex returns nothing
*native SetSpecialEffectColorByPlayer: takes effect whichEffect, player whichPlayer returns nothing
*native SetSpecialEffectColor: takes effect whichEffect, integer r, integer g, integer b returns nothing
*native SetSpecialEffectAlpha: takes effect whichEffect, integer alpha returns nothing
*native SetSpecialEffectScale: takes effect whichEffect, real scale returns nothing
*native SetSpecialEffectPosition: takes effect whichEffect, real x, real y, real z returns nothing
*native SetSpecialEffectHeight: takes effect whichEffect, real height returns nothing
*native SetSpecialEffectTimeScale: takes effect whichEffect, real timeScale returns nothing
*native SetSpecialEffectTime: takes effect whichEffect, real time returns nothing
*native SetSpecialEffectOrientation: takes effect whichEffect, real yaw, real pitch, real roll returns nothing
*native SetSpecialEffectYaw: takes effect whichEffect, real yaw returns nothing
*native SetSpecialEffectPitch: takes effect whichEffect, real pitch returns nothing
*native SetSpecialEffectRoll: takes effect whichEffect, real roll returns nothing
*native SetSpecialEffectX: takes effect whichEffect, real x returns nothing
*native SetSpecialEffectY: takes effect whichEffect, real y returns nothing
*native SetSpecialEffectZ: takes effect whichEffect, real z returns nothing
*native SetSpecialEffectPositionLoc: takes effect whichEffect, location loc returns nothing
*native GetLocalSpecialEffectX: takes effect whichEffect returns real
*native GetLocalSpecialEffectY: takes effect whichEffect returns real
*native GetLocalSpecialEffectZ: takes effect whichEffect returns real
*native GetUnitArmor: takes unit whichUnit returns real
*native SetUnitArmor: takes unit whichUnit, real armorAmount returns nothing
*native UnitHideAbility: takes unit whichUnit, integer abilId, boolean flag returns nothing
*native UnitDisableAbility: takes unit whichUnit, integer abilId, boolean flag, boolean hideUI returns nothing
*native UnitCancelTimedLife: takes unit whichUnit returns nothing
*native IsUnitSelectable: takes unit whichUnit returns boolean
*native IsUnitInvulnerable: takes unit whichUnit returns boolean
*native UnitInterruptAttack: takes unit whichUnit returns nothing
*native GetUnitCollisionSize: takes unit whichUnit returns real
*native GetAbilityManaCost: takes integer abilId, integer level returns integer
*native GetAbilityCooldown: takes integer abilId, integer level returns real
*native SetUnitAbilityCooldown: takes unit whichUnit, integer abilId, integer level, real cooldown returns nothing
*native GetUnitAbilityCooldown: takes unit whichUnit, integer abilId, integer level returns real
*native GetUnitAbilityCooldownRemaining: takes unit whichUnit, integer abilId returns real
*native EndUnitAbilityCooldown: takes unit whichUnit, integer abilCode returns nothing
*native GetUnitAbilityManaCost: takes unit whichUnit, integer abilId, integer level returns integer
*native GetLocalUnitZ: takes unit whichUnit returns real
*native DecPlayerTechResearched: takes player whichPlayer, integer techid, integer levels returns nothing
*native SetEventDamage: takes real damage returns nothing