WurstScript

WurstScript

Efficient. Innovative. Delicious.
Get Started

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.