Warcraft III - Patch 1.29 (2025)

Continued Reading & Patch Details

After the PTR release in February and a followup update in March, it was only a matter of time until 1.29 hit the main servers. Patch 1.29, undoubtedly one of the biggest WC3 updates ever, is finally live! Once you launch Warcraft III and log onto battle.net, you'll have the patch downloaded and ready for action. Remember that these new patches only work on the official version with a CD Key.

The patch fired on multiple cylinders ranging from technical QoL improvements, to meta changing balance updates, to an expansion of modding capabilities for our beloved World Editor. We detailed most of these changes on the previous PTR threads, but there are some tweaks and additions here and there. Check it out:

Warcraft III - Patch 1.29 (1)

- Widescreen: The game now supports true 16:9 widescreen; the game no longer requires to be stretched to fit a wide resolution.

- 24 Players: Maps are able to be created and played online with up to TWENTY-FOUR players! Prepare for some map makers to go overboard with this!

- 12 New Colors: Please welcome Maroon, Navy, Turquoise, Violet, Wheat, Mint, Peach, Lavender, Coal, Snow, Emerald, and Peanut to the faction/player color palette! (Thanks to @Erkan and others for helping)

- Streamer/Caster API: An officially supported Streamer/Caster API that allows us to read out information about gold, lumber, food usage, APM and more when observing games live. No more need to use sketchy hacks for this!

- Bug fixes: Mac client launches, clans can be created again, various missing textures located (Thanks to @TriggerHappy for the test map)

Warcraft III - Patch 1.29 (2)

- Hero Balance Changes:

- Heroes: 13 main-race heroes and 6 tavern heroes wield changes, both minor and meta changing
- Move Speed: Many heroes had their move-speed increased from 270 -> 290 and some heroes had durations toned down, possibly making for slightly faster gameplay
- Buff: Dreadlord, Crypt Lord, Far Seer, Priestess of the Moon, Shadow Hunter, Keeper of the Grove, Firelord, Goblin Tinker, Goblin Alchemist, Dark Ranger
- Nerf: Blademaster, Demon Hunter
- Adjust: Mountain King, Warden, Paladin

- Map Pools: All ladder mode map pools (1v1, 2v2, 3v3, 4v4, and FFA) have been updated with vanilla maps and edited(LV) vanilla maps. See the full map pool list and specific balance details in the full patch notes linked at the bottom.

Warcraft III - Patch 1.29 (3)

- World Editor limit expansions: These raised limits speak for themselves. Go crazy modders!

- Object limit increased to 30,000
- Neutral Units 2,048
- Neutral Buildings - 384
- Player Units - 4,320
- Player Buildings - 2,400
- Items - 1,024

- Map size limit increased to 480 x 480
- Tile slot limit increased to 16
- Max execution number increased to 3,000,000
- Max food limit increased to 999
- Max resource limit increased to 9,999,999
- Array size increased from 8,192 to 32,768

- Total of 90 New Natives: New natives add an array of new possibilities and more control in the editor. @Kam with the help of our users also pioneered the discussion in a Blizzard producer update.

- Full control over special effects : scale, rotate, pitch and more! Say goodbye to dummy units for missiles systems or effect systems.
- Enhanced control over abilities, items and units.
- Even responses to mouse actions; mouse hovering and all. Get ready for more innovative arcade maps.

New Natives

  • native BlzGetTriggerPlayerMouseX takes nothing returns real
  • native BlzGetTriggerPlayerMouseY takes nothing returns real
  • native BlzGetTriggerPlayerMousePosition takes nothing returns location
  • native BlzGetTriggerPlayerMouseButton takes nothing returns mousebuttontype
  • native BlzSetAbilityTooltip takes integer abilCode, string tooltip, integer level returns nothing
  • native BlzSetAbilityActivatedTooltip takes integer abilCode, string tooltip, integer level returns nothing
  • native BlzSetAbilityExtendedTooltiptakes integer abilCode, string ExtendedTooltip, integer level returns nothing
  • native BlzSetAbilityActivatedExtendedTooltip takes integer abilCode, string ExtendedTooltip, integer level returns nothing
  • native BlzSetAbilityResearchTooltiptakes integer abilCode, string researchTooltip, integer level returns nothing
  • native BlzSetAbilityResearchExtendedTooltip takes integer abilCode, string researchExtendedTooltip, integer level returns nothing
  • native BlzGetAbilityTooltip takes integer abilCode, integer level returns string
  • native BlzGetAbilityActivatedTooltip takes integer abilCode, integer level returns string
  • native BlzGetAbilityExtendedTooltiptakes integer abilCode, integer level returns string
  • native BlzGetAbilityActivatedExtendedTooltip takes integer abilCode, integer level returns string
  • native BlzGetAbilityResearchTooltiptakes integer abilCode, integer level returns string
  • native BlzGetAbilityResearchExtendedTooltip takes integer abilCode, integer level returns string
  • native BlzSetAbilityIcon takes integer abilCode, string iconPath returns nothing
  • native BlzGetAbilityIcon takes integer abilCode returns string
  • native BlzSetAbilityActivatedIcon takes integer abilCode, string iconPath returns nothing
  • native BlzGetAbilityActivatedIcon takes integer abilCode returns string
  • native BlzGetAbilityPosX takes integer abilCode returns integer
  • native BlzGetAbilityPosY takes integer abilCode returns integer
  • native BlzSetAbilityPosX takes integer abilCode, integer x returns nothing
  • native BlzSetAbilityPosY takes integer abilCode, integer y returns nothing
  • native BlzGetAbilityActivatedPosX takes integer abilCode returns integer
  • native BlzGetAbilityActivatedPosY takes integer abilCode returns integer
  • native BlzSetAbilityActivatedPosX takes integer abilCode, integer x returns nothing
  • native BlzSetAbilityActivatedPosY takes integer abilCode, integer y returns nothing
  • native BlzGetUnitMaxHP takes unit whichUnit returns integer
  • native BlzSetUnitMaxHP takes unit whichUnit, integer hp returns nothing
  • native BlzGetUnitMaxMana takes unit whichUnit returns integer
  • native BlzSetUnitMaxMana takes unit whichUnit, integer mana returns nothing
  • native BlzDeleteHeroAbility takes unit whichUnit, integer abilCode returns nothing
  • native BlzSetItemName takes item whichItem, string name returns nothing
  • native BlzSetItemDescriptiontakes item whichItem, string name returns nothing
  • native BlzGetItemDescriptiontakes item whichItem returns string
  • native BlzSetItemTooltip takes item whichItem, string name returns nothing
  • native BlzGetItemTooltip takes item whichItem returns string
  • native BlzSetItemExtendedTooltip takes item whichItem, string name returns nothing
  • native BlzGetItemExtendedTooltip takes item whichItem returns string
  • native BlzSetItemIconPath takes item whichItem, string name returns nothing
  • native BlzGetItemIconPath takes item whichItem returns string
  • native BlzSetUnitName takes unit whichUnit, string name returns nothing
  • native BlzSetHeroProperName takes unit whichUnit, string name returns nothing
  • native BlzGetUnitBaseDamage takes unit whichUnit, integer weaponIndex returns integer
  • native BlzSetUnitBaseDamage takes unit whichUnit, integer baseDamage, integer weaponIndex returns nothing
  • native BlzGetUnitDiceNumber takes unit whichUnit, integer weaponIndex returns integer
  • native BlzSetUnitDiceNumber takes unit whichUnit, integer diceNumber, integer weaponIndex returns nothing
  • native BlzGetUnitDiceSides takes unit whichUnit, integer weaponIndex returns integer
  • native BlzSetUnitDiceSides takes unit whichUnit, integer diceSides, integer weaponIndex returns nothing
  • native BlzGetUnitAttackCooldown takes unit whichUnit, integer weaponIndex returns real
  • native BlzSetUnitAttackCooldown takes unit whichUnit, real cooldown, integer weaponIndex returns nothing
  • native BlzSetSpecialEffectColorByPlayer takes effect whichEffect, player whichPlayer returns nothing
  • native BlzSetSpecialEffectColor takes effect whichEffect, integer r, integer g, integer b returns nothing
  • native BlzSetSpecialEffectAlpha takes effect whichEffect, integer alpha returns nothing
  • native BlzSetSpecialEffectScale takes effect whichEffect, real scale returns nothing
  • native BlzSetSpecialEffectPosition takes effect whichEffect, real x, real y, real z returns nothing
  • native BlzSetSpecialEffectHeight takes effect whichEffect, real height returns nothing
  • native BlzSetSpecialEffectTimeScaletakes effect whichEffect, real timeScale returns nothing
  • native BlzSetSpecialEffectTime takes effect whichEffect, real time returns nothing
  • native BlzSetSpecialEffectOrientation takes effect whichEffect, real yaw, real pitch, real roll returns nothing
  • native BlzSetSpecialEffectYaw takes effect whichEffect, real yaw returns nothing
  • native BlzSetSpecialEffectPitch takes effect whichEffect, real pitch returns nothing
  • native BlzSetSpecialEffectRoll takes effect whichEffect, real roll returns nothing
  • native BlzSetSpecialEffectX takes effect whichEffect, real x returns nothing
  • native BlzSetSpecialEffectY takes effect whichEffect, real y returns nothing
  • native BlzSetSpecialEffectZ takes effect whichEffect, real z returns nothing
  • native BlzSetSpecialEffectPositionLoc takes effect whichEffect, location loc returns nothing
  • native BlzGetLocalSpecialEffectX takes effect whichEffect returns real
  • native BlzGetLocalSpecialEffectY takes effect whichEffect returns real
  • native BlzGetLocalSpecialEffectZ takes effect whichEffect returns real
  • native BlzGetUnitArmor takes unit whichUnit returns real
  • native BlzSetUnitArmor takes unit whichUnit, real armorAmount returns nothing
  • native BlzUnitHideAbility takes unit whichUnit, integer abilId, boolean flag returns nothing
  • native BlzUnitDisableAbilitytakes unit whichUnit, integer abilId, boolean flag, boolean hideUI returns nothing
  • native BlzUnitCancelTimedLife takes unit whichUnit returns nothing
  • native BlzIsUnitSelectable takes unit whichUnit returns boolean
  • native BlzIsUnitInvulnerabletakes unit whichUnit returns boolean
  • native BlzUnitInterruptAttack takes unit whichUnit returns nothing
  • native BlzGetUnitCollisionSize takes unit whichUnit returns real
  • native BlzGetAbilityManaCosttakes integer abilId, integer level returns integer
  • native BlzGetAbilityCooldowntakes integer abilId, integer level returns real
  • native BlzSetUnitAbilityCooldown takes unit whichUnit, integer abilId, integer level, real cooldown returns nothing
  • native BlzGetUnitAbilityCooldown takes unit whichUnit, integer abilId, integer level returns real
  • native BlzGetUnitAbilityCooldownRemaining takes unit whichUnit, integer abilId returns real
  • native BlzEndUnitAbilityCooldown takes unit whichUnit, integer abilCode returns nothing
  • native BlzGetUnitAbilityManaCost takes unit whichUnit, integer abilId, integer level returns integer
  • native BlzGetLocalUnitZ takes unit whichUnit returns real
  • native BlzDecPlayerTechResearched takes player whichPlayer, integer techid, integer levels returns nothing
  • native BlzSetEventDamage takes real damage returns nothing


[URL='https://us.battle.net/forums/en/bnet/topic/20762137149?]FULL PATCH NOTES[/URL]

Not included in this thread but in the patch notes: All minor bug fixes, minor issues, full map pool list, and all hero balance adjustment stats.

Special thanks to ~Nightmare for the thumbnail banner design and Wareditor for the text / icon headers. "Mad Goblin Technician" artwork is credited to LieSetiawan and is property of Blizzard.
Special thanks to Blizzard, our community, and peer communities for making Warcraft III in 2018 possible!

Warcraft III - Patch 1.29 (2025)

References

Top Articles
Latest Posts
Recommended Articles
Article information

Author: Msgr. Refugio Daniel

Last Updated:

Views: 5641

Rating: 4.3 / 5 (54 voted)

Reviews: 93% of readers found this page helpful

Author information

Name: Msgr. Refugio Daniel

Birthday: 1999-09-15

Address: 8416 Beatty Center, Derekfort, VA 72092-0500

Phone: +6838967160603

Job: Mining Executive

Hobby: Woodworking, Knitting, Fishing, Coffee roasting, Kayaking, Horseback riding, Kite flying

Introduction: My name is Msgr. Refugio Daniel, I am a fine, precious, encouraging, calm, glamorous, vivacious, friendly person who loves writing and wants to share my knowledge and understanding with you.