Latest Updates
Why Wurst?
WurstScript is a programming language and modding toolkit used to create Warcraft III maps with ease. It supports Warcraft III reforged and older versions by producing either Jass or Lua code.
WurstScript is a strongly typed language with indentation syntax.
init
EventListener.onCast(ABIL_ID) caster ->
forUnitsOfPlayer(caster.getOwner()) u ->
u..addMana(100)
..addHP(100)
..addEffect(Abilities.faerieFireTarget, AttachmentPoints.chest)
WurstScript supports interpreting code at compiletime. This includes the generation of map data objects, such as units, abilities and items.
constant UNIT_ID = compiletime(UNIT_ID_GEN.next)
@compiletime
function createUnit()
new ZombieDefinition(UNIT_ID, UnitIds.dalaranmutant)
..setName("Custom Unit")
..setArmorType(ArmorType.Unarmored)
..setAttack1TargetsAllowed(commaList(TargetsAllowed.ground, TargetsAllowed.structure, TargetsAllowed.debris))
WurstScript differentiates itself in the Warcraft III map development landscape through its powerful inbuilt optimizers and a robust build pipeline. This makes WurstScript an ideal choice for developers aiming for both performance and convenience.
- Constant and Copy Propagation: Simplifies code by substituting variables with their known constant values, reducing runtime complexity.
- Branch & Variable Merging: Optimizes code structure by merging compatible variables and control flow branches, leading to more efficient execution paths.
- Function & Variable Inlining: Increases execution speed by integrating small functions directly into their calling locations, minimizing function call overhead.