warcraft editor

171
General Faq Last Updated Jul-21-2005 Misc Questions Campaign Maps - Where can I find the ROC or TFT maps? Cheat codes - How do I remove them from my map? Creeps - How do I revive my creeps in the game? How can I protect my map from other people editing it? JASS - Is there a manual online where I can learn JASS? Items - How do I combine charged items into one slot? Sounds - My 3D sounds won't work in the game. Sounds - Play a sound during the loading screen? Units - How do I remove the town hall and peons when game starts? My dialog box, multiboard or leaderboard won't work. Polled Wait (Wait game time seconds) - How does it work? Vehicles - How do I make vehicles players can get in and use? Where do I find the Circle of Power? Where do I find the Fountain of Health? Where do I find war3.mpq? Heroes How do I do random, allrandom and repick? How do I make a unit into a hero? How do I allow hero to gain experience from creeps after level 5? How do you get your hero above level 10 in the game? How do I make a hero ability a unit ability? Can a Hero have more then one based on the same ability?

Upload: mervin-bocatcat

Post on 01-Feb-2016

28 views

Category:

Documents


0 download

DESCRIPTION

Warcraft Editor

TRANSCRIPT

Page 1: Warcraft Editor

General FaqLast Updated Jul-21-2005

Misc Questions

Campaign Maps - Where can I find the ROC or TFT maps? Cheat codes - How do I remove them from my map? Creeps - How do I revive my creeps in the game? How can I protect my map from other people editing it? JASS - Is there a manual online where I can learn JASS? Items - How do I combine charged items into one slot? Sounds - My 3D sounds won't work in the game. Sounds - Play a sound during the loading screen? Units - How do I remove the town hall and peons when game starts? My dialog box, multiboard or leaderboard won't work. Polled Wait (Wait game time seconds) - How does it work? Vehicles - How do I make vehicles players can get in and use? Where do I find the Circle of Power? Where do I find the Fountain of Health? Where do I find war3.mpq?

Heroes

How do I do random, allrandom and repick? How do I make a unit into a hero? How do I allow hero to gain experience from creeps after level 5? How do you get your hero above level 10 in the game? How do I make a hero ability a unit ability? Can a Hero have more then one based on the same ability? Can I give a hero more than 5 hero abilities with triggers? Can I give a hero more than 5 hero abilities by changing button positions? Save code - How do I make a game save code for my heros, like COT? How do I make my heroes 'morph' every time they level up?

Abilities

How do you detect bash, critical strike and evasion in the game? How do I get negative values in the World Editor? I want to make a unit unselectable. How do I do this? I removed an ability from a unit but it's still showing up. How do I get rid of

it?

Page 2: Warcraft Editor

Is there a way to give normal unit abilities multiple levels? Dynamic tooltips - How do I create them? Rally point button - How do I stop it from showing up in the game?

Miscellaneous

Q: Campaign Maps - Where can I find the ROC or TFT maps?ROC: In war3.mpq, you'll find them in the Maps \ Campaign folder.TFT: In war3xlocal.mpq, you'll find them in the Maps \ FrozenThrone \ Campaign folder.

Q: Cheat codes - How do I remove them from my map?A: You can't, sorry.

Q: Creeps - How do I revive my creeps in the game?There is an example map in the Free Trigger Code Thread.

Q: How can I protect my map from other people editing it?A: See the tutorial link on the left, titled Map Protectors.

Q: JASS - Is there a manual online where I can learn JASS?A1: There sure is! Visit the extensive JASS Manual Online.A2: To get started: Introduction to JASS.

Q: Items - How do I combine charged items into one slot?There are some examples of this in the Free Trigger Code Forum.And an example map here.

Q: Sounds - My 3D sounds won't work in the game.A: Thats because the default settings for a new 3D sound variable don't work. Change the minimum distance to somthing greater than 0.

Q: Sounds - Play a sound during the loading screen?A: Event - Map Initialization, Action - Sound - Play Sound.

Q: Units - How do I remove the town hall and peons when game starts?A: Open the trigger editor. Inside, you'll see a catagory called 'Melee Initialization'. You can delete the action that creates starting units. If you don't need the melee triggers, you can delete the whole catagory.

Q: My dialog box, multiboard or leaderboard won't work. How can I fix this?A: Run the event once at 0.01 seconds. Some actions won't function at map

Page 3: Warcraft Editor

initialization. There are also demo maps for all of these in the Free Trigger Code forum.

Q: Polled Wait (Wait game time seconds) - How does it work?A polled wait waits for all players to complete the wait. This means that if one player is lagging, it still waits the full amount of time. This stops the notorious 'wait bug.' Just know it's good to use.

Q: Vehicles - How do I make vehicles players can get in and use?There is an example map in the Free Trigger Code forum.

Q: Where do I find the Fountain of Health?A: It is under Units, Neutral Passive, Buildings.

Q: Where do I find the Circle of Power?A: It is under Units, Neutral Passive, Campaign, Buildings.

Q: Where do I find war3.mpq?A. Look in your WarCraft 3 folder, it's in the root directory, along with all the other mpq files. Use WinMPQ or MPQ2K to open these mpq files (see download links).

Heroes

Q: How do I do random, allrandom and repick?There is an example map in the Free Trigger Code Thread.

Q: How do I make a unit into a hero?A: You cannot. Create a new custom hero, and change the model file, sound set, and icon to match the unit you would prefer.

Q: How do I allow hero to gain experience from creeps after level 5?A: Go to Advanced -> Game Play Constants. Change the field 'Hero XP Gained - Creep Reduction Table'. You'll see it only has five values. You can add more if you like. If you leave the last value greater than 0, it will apply for all levels after.

Q: How do you get your hero above level 10 in the game?A: In the editor, go to Advanced, Gameplay Constants, then go to the Heroes Section, and find the Hero Max Level Limit, make it what ever you want.

Q: How do I make a hero ability a unit ability?A: In the ability editor again, select your hero ability, then find the field, Is a Hero Ability - True, change that to False.

Page 4: Warcraft Editor

Q: Can a Hero have more then one based on the same ability?A: No. When a Hero has more then one ability based off the same one, the order strings get confused and the ability does not function properly. Even if you change the order strings, it does not work.

Q: Can I give a hero more than 5 hero abilities with triggers?A: Yes and no. If you give the hero the ability they'll receive the ability at level 1, and they won't be able to put points into it. In order to make the skill a higher level, you'll need to use the upgrade editor to make an upgrade that's an ability bonus, and specify the ability as the ability it applies to. Also be sure to add the upgrade to the Upgrades Used field of the unit that will use the ability. Then, to increase the ability's level, use triggers to increase the research level of that upgrade.

Q: Can I give a hero more than 5 hero abilities by changing button positions?A: No, the editor will still only let you give a hero 5 abilities.

Q: Save code - How do I make a game save code for my heros, like COT?A: Download the Save Code Demo Map, from Elliz's site.

Q: How do I make my heroes 'morph' every time they level up?There is an example map in the Free Trigger Code Thread.

Abilities

Q: How do you detect bash, critical strike and evasion in the game?A: You can't. You need to create an ability with 0 values, and create a trigger to handle the ability. Then the trigger creates an invisible dummy unit, and casts on the target afterwards, or another method to achieve the desired effect.

Q: How do I get negative values in the World Editor?A: Go to preferences and check the 'Allow Negative Values' box, non real fields, might need you to press shift before trying to change the value.

Q: I want to make a unit unselectable. How do I do this?A: In the Object Editor, add the ability 'Locust' to the unit.

Q: I removed an ability from a unit but it's still showing up. How do I get rid of it?A: The only way is to disable that ability for the player, using the Player - Enable / Disable Ability action.

Page 5: Warcraft Editor

Q: Is there a way to give normal unit abilities multiple levels?A: Yes, first make them a hero skill in the ability editor. The Stats - Levels field will appear.

Q: How do I find out where the spell ID is <A0XX, __> so I can create dynamic tool tips?A: Go to view and select -> View as raw data, and it will now list the item / unit name as the units "Code (Unit Name)"

Q: Rally point button - How do I stop it from showing up in the game?A: Use the "Unit - Remove ability" action to remove "Rally".

Page 6: Warcraft Editor

CamerasBy SD_Ryoko

Introduction to Cameras Camera Fields Apendix of Camera Triggers

Introduction to Cameras

Cameras are created using the camera palet. These are used to change the players' perspective, or point of view. Most often, cameras are used in cinematic scenes. Other simple camera functions are used for panning and rotating the camera. If you made a cinematic scene, and you needed the players to be looking at a specific area that you created , you would also create a camera object there. Or if you revived a hero, and you would like to pan the current camera to the heroes' new location, you would use a trigger to move the camera to a new location.

Camera Fields

Cameras are not that difficult to use, but they require a lot of testing to get everything just perfect. Remember, the view in World Editor does not always look exactly what it will look like in the game. The easiest way to create a camera is to manipulate your view inside the World Editor, until the view looks correct. Then click 'Create Camera'. World Editor will automatically create a camera in your current view. After creating a camera, you can edit it by double clicking it, or by selecting 'Rename Camera' on the tool pallette. Below is an overview of the camera fields.

Name:

The camera name is irrelevant; it is merely a familiar name for you to use.

Target X:

The X location of the camera's target, on the Cartesian plane.

Target Y:

The Y location of the camera's target, on the Cartesian plane.

Rotation:

Page 7: Warcraft Editor

Rotation of the camera around the target. 0� is facing east, and 180� is facing west.

Angle of Attack:

The angle that the camera is pointing towards the target.

Distance:

The distance between the camera and the camera target.

Roll:

Roll is the angle that the camera is turned. This can turn it upside down, or on its side.

Field of View:

The width that the camera can see. Changing this value 'zooms' the camera in and out.

Far Clipping:

Total distance that the camera can see. Anything past is shown as sky, or a horizon line.

Apendix of Camera Triggers

Camera - Apply Camera Object (Timed)

Moves the players' current view to target camera. All of those cameras' values are applied. If you want to switch the view to a camera that you created, you would apply that camera. If you set a time limit, the player can see the camera view changing in position and height.

Camera - Pan Camera (Timed)

This pans the current view to a target location. All of the camera values remain the same. You do not need a second camera to pan the current view. You can pan the camera instantly, or set a time and it will scroll.

Camera - Pan Camera with Interpolated Height (Timed)

This also pans the camera, but it ensures that the view does not go below or through the terrain. Again, you do not need a second camera to pan the current view.

Page 8: Warcraft Editor

Camera - Pan Camera as Necessary (Timed)

This will pan the camera if necessary. If a player scrolls to the correct location by them self, this trigger will not interrupt. If a player scrolls to far, or not close enough, this trigger will correct it. Avoid this action as it desyncs in multi-player.

Camera - Set Camera Field (Timed)

This will set any camera field for the current view. It does not involve a second camera. Most any camera property can be changed with this trigger.

Camera - Rotate Camera Around Point

This rotates the current view around a target point. Note that, when you rotate around a point, it will always rotate at a Z offset of zero. Therefore, it will always rotate pointing at the ground. When creating your camera, if you plan to rotate the view, keep this in mind.

Page 9: Warcraft Editor

Camera - Lock Camera to Target Unit

The current view, or camera, will always follow target unit. The entire camera will pan as the unit moves. The player cannot change the view or scroll somewhere else. It will stay locked until you reset it.

Camera - Lock Camera Orientation to Target Unit

This locks the current view to a unit also, but does not move with the unit. The camera target moves with the unit, watching it wherever it goes, but your perspective stays in place.

Camera - Play Cinematic Camera

This trigger is more advanced. It runs the players current view through a predetermined path, saved in a cinematic.mdl file.

Camera - Stop Camera

Stops the current camera from moving. Does not stop swaying or shaking.

Camera - Reset Game Camera

This will reset the current camera to standard in game view. This is the same view you see when the game begins. Often this is used after manipulating cameras and scenes, and you would like to return to the game.

Camera - Change Camera Smoothing Factor

Changes the smoothing factor of how a camera scrolls.

Camera - Rest Camera Smoothing Factor

Resets the smoothing factor to default values.

Camera - Sway Camera Source

Sways the camera back and forth around the target. The target does not move, but your perspective does. Magnitude determines how far the camera will sway. Velocity determines how fast it will sway.

Camera - Sway Camera Target

Page 10: Warcraft Editor

Sways the camera target back and forth, keeping the origin of the source. The target moves, but your perspective does not. Magnitude determines how far the camera will sway. Velocity determines how fast it will sway.

Camera - Shake Camera

Shakes the entire current camera in all directions. If you wanted to simulate an earthquake, this is the trigger you would use. Magnitude determines how much the camera is going to shake.

Camera - Stop Shaking/Swaying Camera

The camera is going to sway or shake until you tell it to stop, using this trigger.

Camera - Extend/Shrink Camera Bounds

The camera bounds limit the players' ability to scroll around the map. You can increase or decrease the camera bounds with this trigger.

Camera - Set Camera Bounds

The camera bounds limit the players' ability to scroll around the map. With this trigger, you can limit the camera view to a region or area. The player would only be able to pan inside this region

Camera - Set Spacebar Point

When a player presses the space bar, the camera will snap to the center of the defined region.

Page 11: Warcraft Editor

Campaign BasicsBy SD_Ryoko

Creating a Campaign Adding Maps to a Campaign Using the Game Cache

Creating a Campaign

The Campaign editor is located in the same row as the trigger editor, it has an icon of a book.The campaign editor lets you make a series of maps like the single player campaigns that come with Warcraft III.Campaign files have the extension (.w3n). A campaign starts of as an empty file where you can add all of your finished maps.When you save a campaign file, it will add all of your maps and imported data into one file.The campaign editor is the icon of a book in the toolbar.It is also available under the Module menu.

Adding Maps to a Campaign

To add a map to the campaign, click on Edit, Add Map.Once a map has been added, always edit the map inside the campaign editor.Each map will need a campaign button.You can add campaign buttons under the Loading Screen tab, by clicking Edit, Add Button.Select your map that you placed in the campaign editor.Right click it and select Edit Map.To set the levels in your campaign, use the trigger 'Game - Set Next Level'.This only works in single player.You will also need a victory or defeat condition as well.

Using the Game Cache

Page 12: Warcraft Editor

A cache is a file that is saved on the computer thats stores the information.The game cache can store information from one level, and load it when you play the next level.It can save objects like a hero or character, and load them again after the level is finished.To store a hero into the game cache, use the game cache triggers.You will need to specify a file for saving the cache, and the hero unit.

Game Cache - Create a game cacheGame Cache - Store (hero)

Then to later load a hero from the game cache, use these triggers.

Game Cache - Restore

The game cache can also store integers, arrays and variables.You can save the game cache by creating a trigger that says Save Game Cache (category is game cache) and leave the settings as is, and click ok.

Page 13: Warcraft Editor

Multiple maps can be added to a campaign.

Each map will need a campaign button as well.

Elevators and Switches By SilverHawk

Contents

Introduction Placing an Elevator Placing Elevator Walls Raising/Lowering the Elevator Advanced Elevator Techniques Levers Foot Switches Summary

Page 14: Warcraft Editor

IntroductionElevators and switches are very special types of destructible doodads. Elevators can be used to move units up and down onto or off of a cliff, just like an elevator in real life. This can create a really cool effect in maps such as RPGs and CTFs. Also, switches, both foot switches and levers, can be used to allow units in the game to control different aspects in the map. Both of these are powerful tools which can greatly benefit almost any map.

Placing an ElevatorThe first thing you must do is place the elevator on the map. Basically you can place one anywhere on a map, but there are a few guidelines to follow:

Be sure that the elevator is touching the cliff. It won't do much good otherwise.

Be sure that there is at least one full side of the elevator from which to enter, and at least one full side from which to exit. You may want more, but for most purposes, it is good to have only one for each.

Be sure that the entry and exit are walkable. To do this, just press "P" while in the World Editor, or go to View -> Pathing (Ground). Any pink areas are not walkable. (Note: It is alright if the exit is pink, so long as it is just a thin line. This will be covered later.

Note: These guidelines apply only to elevators whose purpose is to carry up/down units. There are other purposes (covered later) which do not need to follow these guidelines.

Bad Placement

Page 15: Warcraft Editor

Bad Placement

Good Placement

Placing Elevator WallsEvery elevator must have elevator walls. The way these work is, when

open, they become walkable, allowing units to enter/exit the elevator. When closed, they act as pathing blockers. Elevator walls should be placed at any possibly entry/exit side, and any place where you do not wish people to enter/exit that isn't already blocked. For example, the elevator below would only need two elevator walls: one each for the entry/exit. It does not need one on the other sides, because the cliff edges prevent units from entering that way.

Page 16: Warcraft Editor

A few things to note about elevator walls:

Elevator walls can be rotated 90� by selecting them and changing the angle in the screen that appears.

If you ever wish to place elevator walls on adjacent sides of an elevator, you must do it in the following way, due to the fact that Blizzard made the elevator walls longer than a side of the elevator. Place the elevator wall near the elevator and select it. Then, hold the control button and used the arrows on the number pad to move it into place.

Elevator walls that are open by default can be placed by placing the doodad "Elevator Wall (Dead)".

The way elevator walls work is that a closed elevator wall is living, a doodad which has blockable pathing, and an open elevator is dead, a doodad that has walkable pathing. So, when you open an elevator wall, you are killing it, and when you close an elevator wall, you are reviving it.

Raising/Lowering the ElevatorTo raise or lower the elevator, you will need to use triggers. Elevators have

three different heights, each given the number 1, 2, or 3, one being the lowest. You can set the height of the elevator by using the action "Destructible - Set Elevator Height" in a trigger. Also, whenever you change the height of an elevator, you must open and close the elevator walls using the action "Destructible - Open/Close Elevator Walls" in a trigger. Any wall(s) you want a unit to be able to walk over should be open, and any wall(s) you do not want units to walk over should be closed. The trigger below will demonstrate this.

Page 17: Warcraft Editor

There are a number of different events that could be used for this trigger. One possible way is to create a region on the elevator and have the elevator raise when a unit enters that region. Another is to have the elevator controlled by a switch (covered later). For more information on triggers, see the Trigger Basics Tutorial.

Advanced Elevator TechniquesFor those seeking to do more things with elevators, here are three suggestions and explanations on how to do each.

1. Underwater elevators These work in virtually the same way as normal elevators, but you need to do something special to create them. Go to the "View" menu at the top of the screen, and uncheck the option water, which will make the water invisible in the editor. From here, create the elevators just as you would normally. You can do all sorts of cool things such as a path that rises out from the water, a hidden shop that rises every once in a while, etc. 

2. Elevator Mazes

An elevator maze is a square region filled with elevators, where the goal is to get across to the other side. Typically, the elevators rise and fall what appears to be randomly (you could do it randomly, but it's a bit complicated). This would require the above mentioned technique to place adjacent elevator walls and a good deal of triggers. 

3. Elevator Traps An elevator trap is an elevator that goes down into the ground and traps a unit(s) there. To make one, build a pit in the ground that is the same size as the elevator, then, in your initialization trigger, add an action that sets the trigger to ground level. You can then add another trigger that lowers the elevator when a unit enters it.

Levers

Page 18: Warcraft Editor

A lever is basically just a destructible that switches position when attacked. Using a lever is fairly simple. First, you must place a lever wherever you want. Then, you need to create a trigger. The event should be "Destructible dies.", with the destructible being your lever. For the actions, you should have whatever actions you want performed when the lever is hit, followed by "Destructible - Resurrect Destructible" if you want the lever to be used again. An example trigger is shown below.

Note: The lever doodad can only be found in the Dungeon tileset. You will need to use the Doodad Layer to access it.

Foot SwitchesFoot switches are very similar to levers but different in one major way.

Since they cannot be attacked, the event "Destructible Dies" cannot be used. Instead, we have to create a region on the switch and detect when a unit walks into it. Another important note about foot switches is that in most cases, you should be sure to turn off the trigger after it runs. Otherwise, your actions would run every time the unit entered the region. See the trigger and screenshot below for an example.

Page 19: Warcraft Editor

SummaryAll of the techniques described in this tutorial are demonstrated in the demo map below. It should give an adequate description of their use.

The Unit EditorBy Darg

Unit Catagories:

Abilities Art Combat Editor

Page 20: Warcraft Editor

Movement Pathing Sound Stats Techtree Text

Unit Editor Field Color Guide:

RED: Unit field only GREEN: Building field only BLUE: Hero field only PINK: Unit and Hero field only CYAN = Universal field

1. Abilities

Abilities - Default Active Ability (Ability) If the unit/building/hero has been assigned one or more autocast abilities, one ability can be chosen to be active by default.

Abilities - Hero (Ability) Assign up to a maximum of 5 hero abilities to the hero unit. Heroes may also be assigned normal abilities, through the Unit Editor field "Abilities - Normal".

Abilities - Normal (Ability) Assign a number of normal abilities to the unit/building/hero. The number assigned is not limited, however each unit has 7 free slots, and heroes and buildings each have 6 free slots. Note that abilities such as Invulnerable (Neutral) and Locust do not consume any slots. Also note that some abilities have both ability and upgrade components to them (e.g. Moon Glaive). If all slots are being used, use the "Spellbook" ability to assign extra normal abilities.

2. Art

Art - Allow Custom Team Color (Boolean) Allow/deny a unit/building/hero to change its team color from the color it had at the start of the game. Colors can be changed via the "Player - Change Color", "Unit - Change Color" and "Unit - Change Owner" trigger actions, and also via the "Art - Team Color" Unit Editor field.

Art - Animation - Blend Time (seconds)(Real) The amount of time it takes a unit/building/hero to blend from being visible to

Page 21: Warcraft Editor

being invisible, and vice versa. If the unit/building/hero has been assigned an ability such as Shadow Meld, this field will apply to it.

Art - Animation - Cast Backswing (Real) The amount of time it takes a unit/building/hero to go through half the physical movement necessary to cast a spell. If the unit/building/hero has no animations for casting spells, the time set in this field still applies, but there will be no viewed physical movement. This field combines additively with "Art - Animation - Cast Point" to form the total time taken to physically cast a spell.

Art - Animation - Cast Point (Real) The amount of time it takes a unit/building/hero to go through half the physical movement necessary to cast a spell. If the unit/building/hero has no animations for casting spells, the time set in this field still applies, but there will be no viewed physical movement. This field combines additively with "Art - Animation - Cast Backswing" to form the total time taken to physically cast a spell.

Art - Animation - Run Speed (Real) The speed by which the unit/building/hero model moves, when performing any of its "Run" animations. Note that this field only affects the speed of the model itself, and NOT how fast the model moves across the map (see field Movement - Speed Base). Note that there are no known units/buildings/heroes in the game which possess a run animation, so this field currently has no purpose.

Art - Animation - Walk Speed (Real) The speed by which the unit/building/hero model moves, when performing any of its "Walk" animations. Note that this field only affects the speed of the model itself, and NOT how fast the model moves across the map (see field Movement - Speed Base).

Art - Button Position (X) (Integer) Defines in which column to place the button for the unit/building/hero, in the bottom-right command-interface area. A building's button can be viewed in the construction tab of a worker unit who can construct that building. For units and heroes, it can be viewed in the building in which the unit or hero is trained. Column values range from 0 (Left-most column) to 3 (Right-most column).

Art - Button Position (Y) (Integer) Defines in which row to place the button for the unit/building/hero, in the bottom-right command-interface area. A building's button can be viewed in the construction tab of a worker unit who can construct that building. For units and heroes, it can be viewed in the building in which the unit or hero is trained. Row values range from 0 (top-most row) to 2 (Bottom-most row).

Page 22: Warcraft Editor

Art - Caster Upgrade Art (Icon) Defines the caster upgrade icon to show for upgradeable spell caster units (see fields "Text - Caster Upgrade Names" and "Text - Caster Upgrade Tips").

Art - Death Time (seconds) (Real) Defines the time it takes between when the unit/building/hero is killed and the game registers the unit as being dead. Does not affect the speed of the unit/building/hero death animation.

Art - Elevation - Sample Points (Integer) Unknown.

Art - Elevation - Sample Radius (Real) Unknown.

Art - Fog of War - Sample Radius (Real) Unknown.

Page 23: Warcraft Editor

Art - Ground Texture (Texture) Defines the look of the building's foundations.

Art - Has Water Shadow (Boolean) Defines whether the flying unit/hero casts a shadow when positioned over a body of deep water.

Art - Icon - Game Interface (Icon) Defines what icon a unit/building/hero will have when present in the bottom-right command-interface area.

Art - Icon - Score Screen (Icon) Defines the icon to show for a player's hero in the game score screen, under the "Heroes" tab. There will be 3 icons per player at most displayed under the tab, and the actual icons shown will be determined by which heroes scored the most points in the game.

Art - Maximum Pitch Angle (degrees) (Real) Defines the maximum angle the flying unit/hero can tilt forwards and backwards. This field has no bearing on the ability to move over particular terrain.

Art - Maximum Roll Angle (degrees) (Real) Defines the maximum angle the flying unit/hero can tilt left and right. This field has no bearing on the ability to move over particular terrain.

Art - Model File (Model) Defines the 3D model to use for the unit/building/hero. This field purely defines 3D artwork; it has no bearing on any other characteristic of the unit/building/hero.

Page 24: Warcraft Editor

Art - Model File - Extra Versions (Versions) In cases where the artwork of a particular unit has been redrawn for The Frozen Throne, this field defines whether to use the Reign of Chaos or The Frozen Throne model version. If both options are checked, The Frozen Throne model version will be used by default.

Art - Occluder Height (Real) If units/buildings/heroes have their occluder height set to a non-zero value, they will cause other nearby units/buildings/heroes to have their lines of sight obstructed by their presence. Flying units/heroes do not suffer from this effect.

Art - Orientation Interpolation (Integer) Unknown.

Art - Projectile Impact - Z (Real) Height offset that an attacking projectile will impact the target unit/building/hero, with zero being at its base.

Art - Projectile Impact - Z (Swimming) (Real) Height offset that an attacking projectile will impact the target unit/building/hero while in shallow water, with zero being at its base.

Art - Projectile Launch - X (Real) Horizontally (Left-right) offsets the location where the projectile is launched from the attacking unit/building/hero, with zero being its origin point.

Page 25: Warcraft Editor

Art - Projectile Launch - Y (Real) Vertically (front-back) offsets the location where the projectile is launched from the attacking unit/building/hero, with zero being its origin point.

Art - Projectile Launch - Z (Real) Offsets the height (Up-down) location where the projectile is launched from the attacking unit/building/hero, with zero being at its base.

Art - Projectile Launch - Z (Swimming) (Real) Offsets the height (Up-down) location where the projectile is launched from the attacking unit/building/hero while in shallow water, with zero being at its base.

Art - Propulsion Window (degrees) (Real) Maximum angle that a unit/hero can launch a projectile before it needs to physically turn itself towards a target.

Art - Required Animation Names (String List) Defines which alternative stand animation to play for the unit/building/hero, instead of its default stand animation. When writing the animation name, each word of the name occupies an individual string, and doesn't include the word "Stand".

Examples:

Guard Tower: "upgrade" and "first" Cannon Tower: "upgrade" and "second" Arcane Tower: "upgrade" and "third"

These are all alternative stand animations for the Scout Tower building.

Art - Required Animation Names - Attachments (String List) Unknown.

Art - Required Attachment Link Names (String List) Unknown.

Art - Required Bone Names (String List) Unknown.

Art - Scale Projectiles (Boolean) For ranged attackers, defines whether to scale the projectile art to match the size of the attacker's 3D model (see fields "Combat - Attack x - Projectile Art" and "Art - Scaling Value).

Page 26: Warcraft Editor

Art - Scaling Value (Real) Defines the size of the 3D model, with 1.00 being the model's normal size. Note that changing the value of this field changes the model only; it has no bearing on any other characteristic of the unit/building/hero for which the model is being used.

Art - Selection Circle - Height (Real) Defines the height of the unit/building/hero's selection circle.

Art - Selection Circle On Water (Real) Defines the height of the unit/building/hero's selection circle when inside a body of water.

Art - Selection Scale (Real) Defines the size of the unit/building/hero's selection circle.

Art - Shadow Image (Unit) (Image) Defines the type of shadow image the unit/hero is to have. This field has no effect on buildings.

Art - Shadow Image - Center X (Real) Defines the horizontal position of the shadow image with respect to its default position.

Art - Shadow Image - Center Y (Real) Defines the vertical position of the shadow image with respect to its default position.

Art - Shadow Image - Height (Real) Defines the length of the shadow image with respect to its default length.

Art - Shadow Image - Width (Real) Defines the width of the shadow image with respect to its default width.

Art - Shadow Texture (Building) (Texture) Defines the type of shadow image the building is to have. This field has no effect on units or heroes.

Art - Special (Model) For units, this field defines the model graphics to play when they die from an attack by a unit/building/hero that has their Unit Editor Field "Combat - Attack x - Weapon Type" set to "Artillery" or "Artillery (Line)". For buildings, in addition to

Page 27: Warcraft Editor

having their own death animation, the model graphic defined in this field will always play when they become destroyed. For Heroes, this field has no effect.

Art - Target (Model) When the unit/building/hero is attacking, the model defined here will be played at the location of the attacked unit/building/hero.

Art - Team Color (Color) Defines what team color the unit/building/hero is to have. This field will only work if the Unit Editor field "Art - Allow Custom Team Color" has been set to "True".

Art - Tinting Color 1 (Red) (Real) Defines the amount of Red tinting the unit/building/hero is to have. Units/Buildings/Heroes can only be made darker than their current colour state, making them lighter is not possible short of editing the 3D model itself.

Art - Tinting Color 2 (Green) (Real) Defines the amount of Green tinting the unit/building/hero is to have. Units/Buildings/Heroes can only be made darker than their current colour state, making them lighter is not possible short of editing the 3D model itself.

Art - Tinting Color 3 (Blue) (Real) Defines the amount of Blue tinting the unit/building/hero is to have. Units/Buildings/Heroes can only be made darker than their current colour state, making them lighter is not possible short of editing the 3D model itself.

Art - Use Extended Line of Sight (Boolean) Unknown.

3. Combat

Combat - Acquisition Range (Real) The range at which a unit/building/hero will automatically look for targets, and move or attack the target as necessary. Note that the attacking range of a unit/building/hero can never be greater than its acquisition range (see Unit Editor field "Combat - Attack x - Range").

Combat - Armor Type (Armor Type) Defines the nature of the unit/building/hero's physical defenses. This field purely affects the sound played when the unit/building/hero is struck by a melee attacker - it has no bearing on defensive capabilities (see field - Combat - Defense Type).

Page 28: Warcraft Editor

Combat - Attack x - Animation Backswing Point (Real) The amount of time it takes a unit/building/hero to go through half the physical movement necessary to attack something. If the unit/building/hero has no animations for attacking, the time set in this field still applies, but there will be no viewed physical movement. This field combines additively with "Combat - Attack x - Animation Damage Point" to form the total time taken to physically attack a target.

Combat - Attack x - Animation Damage Point (Real) The amount of time it takes a unit/building/hero to go through half the physical movement necessary to attack something. If the unit/building/hero has no animations for attacking, the time set in this field still applies, but there will be no viewed physical movement. This field combines additively with "Combat - Attack x - Animation Backswing Point" to form the total time taken to physically attack a target.

Combat - Attack x - Area of Effect (Full Damage) (Integer) Defines the size of the area around the target in which other units/buildings/heroes will receive the same damage that the target receives when attacked by the unit/building/hero.

This field will have no effect unless the Unit Editor field "Combat - Attack x - Attack Type" is set to "Artillery", "Artillery (Line)", "Missile (Splash)", "Missile (Bounce)", or "Missile (Line)".

Combat - Attack x - Area of Effect (Medium Damage) (Integer) Defines the size of the area around the target in which other units/buildings/heroes will receive a medium percentage of the damage that the target receives when attacked by the unit/building/hero. The exact percentage of damage received is defined in the Unit Editor field "Combat - Attack x - Damage Factor - Medium". The actual area of medium damage is the radius of the medium AOE minus the radius of the full AOE. As such, the full AOE field must have a smaller value than the medium AOE field.

This field will have no effect unless the Unit Editor field "Combat - Attack x - Attack Type" is set to "Artillery", "Artillery (Line)", "Missile (Splash)", "Missile (Bounce)", or "Missile (Line)".

Combat - Attack x - Area of Effect (Small Damage) (Integer) Defines the size of the area around the target in which other units/buildings/heroes will receive a small percentage of the damage that the target receives when attacked by the unit/building/hero. The exact percentage of damage received is defined in the Unit Editor field "Combat - Attack x - Damage

Page 29: Warcraft Editor

Factor - Small". The actual area of small damage is the radius of the small AOE minus the radius of the medium AOE. As such, the medium AOE field must have a smaller value than the small AOE field.

This field will have no effect unless the Unit Editor field "Combat - Attack x - Attack Type" is set to "Artillery", "Artillery (Line)", "Missile (Splash)", "Missile (Bounce)", or "Missile (Line)".

Combat - Attack x - Area of Effect Targets (Target Types) Defines the types of targets that will be affected by AOE damage.

Combat - Attack x - Attack Type (Attack Type) Defines the type of attack the unit/building/hero is to have. When a target is attacked, the amount of damage it receives is affected by how the attacker's attack type matches up against the target's defense type. To see a list of attack type versus defense type modifiers, please refer to the "Combat - Damage Bonus Table" fields in Gameplay Constants.

Combat - Attack x - Cooldown Time (Real) Defines the amount of time a unit/building/hero must wait between attacks.

Combat - Attack x - Damage Base (Integer) Defines the base damage that a unit/building/hero does when attacking. Additional damage is determined by the Unit Editor fields "Combat - Attack x - Damage Number of Dice" and "Combat - Attack x - Damage Sides per Die".

Combat - Attack x - Damage Factor - Medium (Real) Defines the percentage damage received by units in a medium AOE around the target of the attacking unit/building/hero. The full damage that the target receives is determined by the Unit Editor fields "Combat - Attack x - Damage Base", "Combat - Attack x - Damage Number of Dice" and "Combat - Attack x - Damage Sides per Die". The size of the medium AOE is set in the Unit Editor field "Combat - Attack x - Area of Effect (Medium Damage)".

Combat - Attack x - Damage Factor - Small (Real) Defines the percentage damage received by units in a small AOE around the target of the attacking unit/building/hero. The full damage that the target receives is determined by the Unit Editor fields "Combat - Attack x - Damage Base", "Combat - Attack x - Damage Number of Dice" and "Combat - Attack x - Damage Sides per Die". The size of the small AOE is set in the Unit Editor field "Combat - Attack x - Area of Effect (Medium Damage)".

Page 30: Warcraft Editor

Combat - Attack x - Damage Loss Factor (Real) Defines a damage multiplier loss for every additional target hit after the first one, when attacking units using the "Artillery (Line)" or "Missile (Line)" attack types. As each target is hit, the amount of damage done is the Damage Loss Factor multiplied by the amount of damage done to the previous target.

Combat - Attack x - Damage Number of Dice (Integer) Every time a unit/building/hero attacks a target, a dice roll occurs. A certain number of dice, with a certain number of sides each, is rolled, and a number is determined. This number is then added to the number in the field "Combat - Attack x - Damage Base" to determine the total damage the attacker has done. This field defines the number of dice that are to be rolled. The Unit Editor field "Combat - Attack x - Damage Sides per Die" determines how many sides each die has.

Combat - Attack x - Damage Sides per Die (Integer) Every time a unit/building/hero attacks a target, a dice roll occurs. A certain number of dice, with a certain number of sides each, is rolled, and a number is determined. This number is then added to the number in the field "Combat - Attack x - Damage Base" to determine the total damage the attacker has done. The Unit Editor field "Combat - Attack x - Damage Number of Dice" defines the number of dice that are to be rolled. This field determines how many sides each die has.

Combat - Attack x - Damage Spill Distance (Real) This is for the 'Missle-Line' weapon type. It determines how far the missle can travel and still deal damage.

Combat - Attack x - Damage Spill Radius (Real) This is for the 'Missle-Line' weapon type. It determines the size of the damage area throughout the spill distance.

Combat - Attack x - Damage Upgrade Amount (Integer) Unknown.

Combat - Attack x - Maximum Number of Targets (Integer) This is for the 'Missle-Bounce' weapon type. It determines the total number of units the attack can hit.

Combat - Attack x - Projectile Arc (Real) For ranged attackers, defines the size of the missile arc from the attacker to the target. The arc flattens out towards the value of 0.00 and increases towards the value of 1.00.

Page 31: Warcraft Editor

Combat - Attack x - Projectile Art (Model) For ranged attackers, defines the artwork of the attacking missile.

Combat - Attack x - Projectile Homing Enabled (Boolean) For ranged attackers, defines whether fired missiles will home in on the target, or simply fire in a straight line (potentially missing the target if it is moving).

Combat - Attack x - Projectile Speed (Integer) For ranged attackers, defines the speed of a fired missile.

Combat - Attack x - Range (Integer) For ranged attackers, defines how far they can fire at targets.

Combat - Attack x - Range Motion Buffer (Real) Unknown.

Combat - Attack x - Show UI (Boolean) Defines whether or not to show the attack icon in the bottom-right command interface area.

Combat - Attack x - Targets Allowed (Target Types) Defines the type of targets that the unit/building/hero can attack. To be able to attack a target, the attacker's Targets Allowed field must have all the target types that are selected in the target's "Combat - Targeted as" field.

Combat - Attack x - Weapon Sound (Combat Sound) For melee attackers, defines the type of sound the attacker's weapon makes when striking a target.

Combat - Attack x - Weapon Type (Weapon Type) Defines the nature of the unit/building/hero's attack. This field determines which of the other Combat fields do and don't have any effect on the attack, and also affects whether certain abilities can be used in combination with the attack.

Examples:

"Normal" allows the use of Weapon Sounds but doesn't allow the use of projectile art or area splash damage.

"Artillery" allows the use of area splash damage and projectile art, and also gives the "Attack Ground" ability to the attacker. It does not allow the use of weapon sounds.

"Artillery (Line)" is used in combination with the "Vorpal Blades" ability and upgrade in order to create a line attack.

Page 32: Warcraft Editor

"Missile (Splash)" allows the use of area splash damage and projectile art. It does not allow the use of weapon sounds.

"Missile (Bounce)" is used in combination with the "Moon Glaive" ability and upgrade in order to create a bouncing attack.

"Missile (Line)" is used in combination with the "Storm Hammers" ability and upgrade in order to create a bouncing attack.

Combat - Attacks Enabled (Attacks) Defines which of the unit/building/hero's two attacks will be available to use in the game. Either one or both attacks can be selected.

Combat - Death Type (Death Type) Defines the properties the unit/building/hero's corpse has after it is killed. Determines whether it can be raised by abilities such as "Raise Skeleton" or "Animated Dead", and also whether it experiences natural decay or not.

Combat - Defense Base (Integer) Defines the amount of defense the unit/building/hero has. A higher value means a greater reduction in the amount of damage received when being attacked.

Combat - Defense Type (Defense Type) Defines the type of defense the unit/building/hero is to have. When a target is attacked, the amount of damage it receives is affected by how the attacker's attack type matches up against the target's defense type. To see a list of attack type versus defense type modifiers, please refer to the "Combat - Damage Bonus Table" fields in Gameplay Constants.

Combat - Defense Upgrade Bonus (Integer) This is the ammount of armor the unit recieves when you research Iron Plating, Steel Armor, Creature Carapice, and others at your lumber mill or graveyard.

Combat - Minimum Attack Range (Integer) Defines the minimum distance at which a unit/building/hero is permitted to attack. If a target is within the minimum distance, then the attacker will not be allowed to attack that target.

Combat - Targeted as (Target Types) Defines what target type(s) in which the unit/building/hero will be categorised. For an attacker to be able to attack the unit/building/hero, the attacker's "Combat - Attack x - Targets Allowed" field must contain all the types that have been selected in this field.

4. Editor

Page 33: Warcraft Editor

Editor - Can Drop Items On Death (Boolean) Defines if the unit/building/hero can drop any items when killed. Typically this field applies to pre-placed units who can drop a random item from a group defined in Item Tables. It does not apply to dropping items currently in the inventory of the unit/building/hero (that feature is defined on an item by item basis in the Item Editor field "Stats - Dropped When Carrier Dies").

Editor - Categorization - Campaign (Boolean) If set to true, places the unit/building/hero into the "Campaign" folder for its race. If false, places the unit/building/hero into the "Melee" folder for its race.

Editor - Categorization - Special (Boolean) If true, places the unit/building/hero into the "Melee -> Special" or "Campaign -> Special" folder for its race, depending on the setting of the Unit Editor field "Editor - Categorization - Campaign". If false, places the unit/building/hero into its own respective folder, again under either the Melee or Campaign folders.

Editor - Display as Neutral Hostile (Boolean) Defines whether or not to place the unit/building/hero into the "Neutral Hostile" folder. If set to true, it will only work if the Unit Editor field "Stats - Race" is set to "Creep" for the unit/building/hero.

Editor - Has Tileset Specific Data (Boolean) Defines whether the unit/building/hero has different sets of data (such as skins) for different tilesets. A good example of a doodad that has different skins for different tilesets is the tree doodad.

Editor - Placeable In Editor (Boolean) Defines whether or not the unit/building/hero is placeable on the map in the World Editor.

Editor - Tilesets (Tileset List) Defines what tilesets the unit/building/hero will be listed in under the Unit Palette. Only has an effect is the unit/building/hero is listed under the "Neutral Hostile" folder.

Editor - Use Click Helper (Boolean) Unknown.

5. Movement

Movement - Group Separation - Enabled (Boolean) Defines whether to allow/deny flying units/heroes to physically separate from

Page 34: Warcraft Editor

each other when issued a move order. If set to false, the units/heroes will be allowed to bunch on top of each other when moving.

Movement - Group Separation - Group Number (Integer) Unknown.

Movement - Group Separation - Parameter (Integer) Unknown.

Movement - Group Separation - Priority (Integer) Unknown.

Movement - Height (Real) Defines at what height the unit/building/hero is to stand and move about. This field will only have an effect if the Unit Editor field "Movement - Type" is set to "Fly" or "Hover".

Movement - Height Minimum (Real) Defines the lowest height at which the unit/building/hero is allowed to descend. Height change can only be affected by certain spells, and by the trigger action "Animation - Change Unit Flying Height".

Movement - Speed Base (Integer) Defines the standard movement speed of the unit/building/hero, when unaffected by any spells or upgrades. The maximum speed allowed by the game is 522.

Movement - Speed Maximum (Integer) Defines the maximum speed at which the unit/building/hero is allowed to travel. Speed change can only be affected by certain spells, and by the trigger action "Unit - Set Movement Speed". The maximum speed allowed by the game is 522. The Gameplay Constants field "Movement - Unit Speed - Maximum" defines the universal maximum speed that will work in the game. Speed values set above the maximum value will be automatically reset to maximum value instead.

Movement - Speed Minimum (Integer) Defines the minimum speed at which the unit/building/hero is allowed to travel. Speed change can only be affected by certain spells, and by the trigger action "Unit - Set Movement Speed". A movement speed of zero will result in the unit/building/hero being unable to move under any circumstances. The Gameplay Constants field "Movement - Unit Speed - Minimum" defines the universal minimum speed that will work in the game. Speed values set below the minimum value will be automatically reset to the minimum value instead. Please note that a speed of zero is not considered a movement value, and therefore can be

Page 35: Warcraft Editor

assigned under any circumstances (it is unaffected by the relevant Gameplay Constants field).

Movement - Turn Rate (Real) Defines the speed at which the unit/building/hero is allowed to turn. Turn speed can only be affected by certain spells, and by the trigger action "Animation - Change Unit Turn Speed". Turn speed values range between 0 and 1, with 1 being the fastest turn speed possible.

Movement - Type (Movement Type) Defines the type of movement the unit/building/hero is to have. Movement type affects things such as the ability to move over particular terrain, and what spells the unit/building/hero can be subject to. It also affects which Unit Editor fields have an effect on the unit/building/hero.

6. Stats

Pathing - AI Placement Radius (Real) Unknown.

Pathing - AI Placement Type (AI Buffer Type) Unknown.

Pathing - Collision Size (Real) Defines how large an area the unit/building/hero physically occupies on a map, and consequently how well it is able to manoeuvre around other objects on a map (and vice versa).

Pathing - Pathing Map (Pathing Map) Defines the shape of the building's "footprint" when placed on a map.

NOTE: Pathing Map defines a shape; Collision Size defines the size of that shape. For units and heroes, the shape of their Pathing Map is a circle by default.

Pathing - Placement Prevented By (Pathing Types) Defines the types of ground areas where the building may not be built. Note that any types checked in this field should not be checked in the Unit Editor field "Pathing - Placement Requires".

Pathing - Placement Requires (Pathing Types) Defines the types of ground areas where the building may be built. Note that any types checked in this field should not be checked in the Unit Editor field "Pathing - Placement Prevented By".

Page 36: Warcraft Editor

Pathing - Placement Requires Water Radius (Real) Unknown.

7. Sound

Sound - Construction (Sound Set) Defines the sound that is played while the building is being constructed. The sound will play in a constant loop until construction has finished.

Sound - Looping Fade In Rate (Integer) The time (in milliseconds) it takes the looping construction sound to fade in (see Unit Editor field "Sound - Construction"). Values can range from 0 to 12700.

Sound - Looping Fade Out Rate (Integer) The time (in milliseconds) it takes the looping construction sound to fade out (see Unit Editor field "Sound - Construction"). Values can range from 0 to 12700.

Sound - Movement (Sound Set) Defines the sound played when the unit/hero is given a movement order. This sound will override the movement sounds defined as part of the unit's/hero's sound set (see Unit Editor field "Sound - Unit Sound Set").

Sound - Random (Sound Set) Unknown.

Sound - Unit Sound Set (Unit Sound) Defines the set of sounds that the unit will use when commanded to perform such actions as moving and attacking.

8. Stats

Stats - Agility per Level (Real) Defines the amount of points that will be added to the hero's agility statistic whenever the hero gains a level. Agility affects the speed of the hero's attack.

Stats - Bounty Awarded - Base (Integer) Bounty is the amount of gold awarded to the owner of the unit/building/hero that kills another unit/building/hero. The total gold awarded is calculated from the fields "Stats - Bound Awarded - Base", "Stats - Bounty Awarded - Number of Dice", "Stats - Bounty Awarded - Sides per Die". The formula is as follows:

GOLD AWARDED = Base Bounty + A DICE ROLL OF [Number of dice] EACH HAVING [Sides per Die]

Page 37: Warcraft Editor

Example:

Base Bounty = 30 Number of Dice = 2 Sides per Dice = 8

2 dice having 8 sides each are rolled. The minimum number possible is both dice giving a value of 1, yielding a sum of 2. The maximum number possible is both dice giving a value of 8, yielding a sum of 16. So the number achieved from the dice roll falls between 2 and 16. Therefore:

GOLD AWARDED = 30 + RANDOM NUMBER BETWEEN 2 and 16

Bounty is automatically awarded when killing Neutral player units/buildings/heroes. For other players, the bounty must be turned on using the trigger action "Player - Turn Player Flag On/Off".

Stats - Bounty Awarded - Number of Dice (Integer) See the Unit Editor field "Stats - Bounty Awarded - Base".

Stats - Bounty Awarded - Sides per Die (Integer) See the Unit Editor field "Stats - Bounty Awarded - Base".

Stats - Build Time (Integer) Defines the time it takes to train/construct the unit/building/hero.

Stats - Can Flee (Boolean) Defines whether the unit/hero can automatically retreat when attacked. This field only affects units/heroes which do not attack other units automatically e.g. worker units.

Stats - Food Cost (Integer) Defines the amount of food resources the unit/building/hero consumes. The food cap can be modified by editing the field "Food Limit" in Gameplay Constants, or by using the trigger actions "Player - Set Property" and "Player - Add Property".

Stats - Food Produced (Integer) Defines the amount of food resources the unit/building/hero produces. The food cap can be modified by editing the field "Food Limit" in Gameplay Constants, or by using the trigger actions "Player - Set Property" and "Player - Add Property".

Stats - Formation Rank (Integer) Defines the position the unit/hero will take in a group when assigned a movement

Page 38: Warcraft Editor

order as part of a group of units/heroes. The values entered can range from 0 to 9, with 0 indicating the unit will position itself at the front and 9 indicating the unit will position itself at the back.

Stats - Gold Cost (Integer) Defines the amount of gold a unit/building/hero will cost to train/build.

Stats - Hero - Hide Hero Death Message (Boolean) Defines whether to hide the death message displayed on the screen when the hero dies.

Stats - Hero - Hide Hero Interface Icon (Boolean) Defines whether to hide the hero's icon displayed in the upper-left corner of the screen.

Stats - Hero - Hide Hero Minimap Display (Boolean) Defines whether to display the special symbol used to locate heroes in the minimap.

Stats - Hide Minimap Display (Boolean) Defines whether the unit/building/hero is visible on the minimap.

Stats - Hit Points Maximum (Base) (Integer) Defines the maximum hit points of the unit/building/hero. This value can only be changed for units/buildings by using the trigger action "Player - Set Handicap". For heroes, this value will change when they gain a level.

Stats - Hit Points Regeneration Rate (Real) Defines the number of hit points the unit/building/hero will regenerate per second.

Stats - Hit Points Regeneration Type (Regeneration Type) Defines under what conditions the unit/building/hero will regenerate hit points.

Stats - Intelligence per Level (Real) Defines the amount of points that will be added to the hero's intelligence statistic whenever the hero gains a level. Intelligence affects the number of mana points the hero has.

Stats - Is a Building (Boolean) Defines whether the unit/building/hero is classified as a building. This field affects which Unit Editor fields are displayed/hidden, and also how the unit/building/hero behaves on the battlefield. Also defines in what Unit Editor folder the unit/building/hero will be placed.

Page 39: Warcraft Editor

Stats - Level (Integer) Defines the level of the unit/building/hero. The values entered can range from 1 to 100, and determine the amount of experience points given to a hero who kills another unit/building/hero.

Stats - Lumber Cost (Integer) Defines the amount of lumber a unit/building/hero will cost to train/build.

Stats - Mana Initial Amount (Integer) Defines the initial amount of mana a unit/building/hero has when it first appears on the map. For units/buildings, the value entered should not be greater than the value specified in "Stats - Mana Maximum". For heroes, the "Stats - Intelligence per level" field additionally determines maximum mana, so the entered value in this field can be greater.

Stats - Mana Maximum (Integer) Defines the maximum mana points of the unit/building/hero. This value can only be changed by heroes when gaining a level.

Stats - Mana Regeneration (Real) Defines the number of mana points the unit/building/hero will regenerate per second.

Stats - Neutral Building - Shows Minimap Icon (Boolean) Defines whether to show the Neutral Building minimap icon for the building on the minimap. This field only has an effect if the building is owned by Neutral Passive.

Stats - Neutral Building - Valid As Random Building (Boolean) Defines whether this building is part of the list of random neutral buildings that can be generated on a map when using the "Random Building" unit.

Stats - Point Value (Integer) Defines a point value for the unit/building/hero. Has no significance in the game other than to be used as part of a trigger through the Integer functions "Unit - Point value of Unit" and "Unit - Point value of Unit-type".

Stats - Primary Attribute (Hero Attribute) Defines which attribute (out of Strength, Agility and Intelligence) is the primary attribute for the hero. Each point of the primary attribute will increase the hero's attack damage by 1.

Page 40: Warcraft Editor

Stats - Priority (Integer) Defines at what point the unit/building/hero will be attacked when within a group of units/buildings/heroes being attacked. The values entered can range from 0 to 20, with 0 meaning that the unit/building/hero will be attacked last, and 20 meaning that it will be attacked first.

Stats - Race (Unit Race) Defines the race to which the unit/building/hero belongs. This field also affects in which race folder the unit/building/hero is categorised in the Unit Editor.

Stats - Repair Gold Cost (Integer) Defines the amount of gold it costs to repair the unit/building/hero to full health. This field only has an effect on objects that can be repaired, namely buildings. It is not possible to make units or heroes repairable.

Stats - Repair Lumber Cost (Integer) Defines the amount of lumber it costs to repair the unit/building/hero to full health. This field only has an effect on objects that can be repaired, namely buildings. It is not possible to make units or heroes repairable.

Stats - Repair Time (Integer) Defines the amount of time it takes to repair the unit/building/hero back to full health. This field only has an effect on objects that can be repaired, namely buildings. It is not possible to make units or heroes repairable.

Stats - Sight Radius (Day) Defines how far the unit/building/hero can see during the day (0600 to 1800 is the default day-time period). Sight may be obstructed by the presence of other objects.

Stats - Sight Radius (Night) Defines how far the unit/building/hero can see during the night (1800 to 0600 is the default night-time period). Sight may be obstructed by the presence of other objects.

Stats - Sleeps (Boolean) Defines whether the unit/hero sleeps at night-time. Only affects units or heroes owned by the Neutral Hostile player.

Stats - Starting Agility (Integer) Defines the value of the hero's agility when first entering a map.

Page 41: Warcraft Editor

Stats - Starting Intelligence (Integer) Defines the value of the hero's intelligence when first entering a map.

Stats - Starting Strength (Integer) Defines the value of the hero's strength when first entering a map.

Stats - Stock Maximum (Integer) Defines the maximum quantity of the unit/building/hero that can be stocked in the Neutral building that sells it.

Stats - Stock Replenish Interval (Integer) Defines how regularly the unit/building/hero will increase its stock by 1 in the Neutral building that sells it.

Stats - Stock Start Delay (Integer) Defines how long a period should elapse from the start of the game before the unit/building/hero is available for purchase from the Neutral building that sells it.

Stats - Strength per Level (Real) Defines the amount of points that will be added to the hero's strength statistic whenever the hero gains a level. Strength affects the number of hit points the hero has.

Stats - Transported Size (Integer) Defines how much space the unit/hero will take up when inside a transport vehicle.

Stats - Unit Classification (Unit Classification) Defines any special classifications for the unit/building/hero. Classifications can affect the ability of the unit/building/hero to be subject to certain spells and upgrades, and also how other units/heroes/buildings behave around it.

Examples:

"Worker": If a unit/hero has been given this classification in addition to having their "Stats - Can Flee" field set to true, they will run away by default when being attacked, rather than stand their ground and fight.

"Suicidal": If a unit/hero has been given this classification in addition to being given an ability based off "Kaboom!", they will by default try and blow themselves up when near enemy units/buildings/heroes.

9. Techtree

Page 42: Warcraft Editor

Techtree - Dependency Equivalents (Unit List) This field was originally the main method for getting custom heroes to count in the default "3 heroes per player" limit in melee-style games. This functionality has now been deprecated with the presence of the Gameplay Constants field "Techtree - Dependency Equivalents - Hero". The current method for achieving the objective of this field is as follows:

Use the trigger action "Player - Limit Training of Unit-Type", and limit training of the custom hero in question to 1 (for melee-style maps, but you can make the number higher if you are trying to do something else). Put the action in a trigger that has the event "Map Initialization".

Add the custom hero to the Gameplay Constants field "Techtree - Dependency Equivalents - Hero".

The custom hero will now contribute towards the "3 heroes per player" limit.

EXTRA NOTES:The trigger action "Melee Game - Hero Limits" resides in the "Melee Initialization" trigger by default when creating a new map. This action causes the number of allowable trained heroes per player to be set to 3. To change this limit, delete that action and instead use the trigger action "Player - Limit Training of Heroes".

Techtree - Hero Revival Locations (Unit List) Specifies which buildings the hero may be revived at after dying. A building is eligible to revive a dead hero if it is owned by the same owner of the dead hero, and if it has the Unit Editor field "Techtree - Revives Dead Heroes" set to true.

If this field is left blank, the hero will be available for reviving at all player-owned buildings that meet the aforementioned requirements.

Techtree - Items Made (Item List) Unknown.

Techtree - Items Sold (Item List) Defines the items that can be sold by the unit/building/hero.

Techtree - Requirements (Techtree Requirement List) Defines what requirements must be met before the unit/building/hero can be made available for training/building.

Techtree - Requirements - Levels (Integer List) Unknown.

Page 43: Warcraft Editor

Techtree - Requirements - Tier 2 (Techtree Requirement List) Sets the unit/building/hero requirements for creating another hero in melee-style maps. In a typical scenario, 1 hero per tier is allowed to be trained, with the maximum number of tiers set at 9. By default, the first hero trained by a player is available from the beginning of a game.

For making melee-style maps where you want to include custom heroes in the 1 hero per tier limit, you must verify that the tier requirements are properly set for all your melee and custom heroes. Check all the "Techtree - Requirements - Tier x" fields and also "Techtree - Requirements - Tiers Used" for each hero. It will be typically the case that, for all the heroes that can be trained by a player, these Techtree field requirements will all be identical.

Techtree - Requirements - Tier 3 (Techtree Requirement List) See the Unit Editor field "Techtree - Requirements - Tier 2".

Techtree - Requirements - Tier 4 (Techtree Requirement List) See the Unit Editor field "Techtree - Requirements - Tier 2".

Techtree - Requirements - Tier 5 (Techtree Requirement List) See the Unit Editor field "Techtree - Requirements - Tier 2".

Techtree - Requirements - Tier 6 (Techtree Requirement List) See the Unit Editor field "Techtree - Requirements - Tier 2".

Techtree - Requirements - Tier 7 (Techtree Requirement List) See the Unit Editor field "Techtree - Requirements - Tier 2".

Techtree - Requirements - Tier 8 (Techtree Requirement List) See the Unit Editor field "Techtree - Requirements - Tier 2".

Techtree - Requirements - Tier 9 (Techtree Requirement List) See the Unit Editor field "Techtree - Requirements - Tier 2".

Techtree - Requirements - Tiers Used (Integer) Defines how many of the "Techtree - Requirements - Tier x" fields are used in the game. If there are more heroes allowed to be trained than tiers used, all remaining heroes will be made available for training after the final tier has been reached.

Techtree - Researches Available (Upgrade List) Defines what upgrades are available for research at the building.

Page 44: Warcraft Editor

Techtree - Revives Dead Heros (Boolean) Defines whether the building is capable of reviving dead heroes. This field acts as a replacement for the "Revive Hero" ability, and must NOT be used in conjunction with it. Multiple buildings can be set to revive dead heroes.

Techtree - Structures Built (Unit List) Defines what buildings can be constructed by the unit.

Techtree - Units Sold (Unit List) Defines what units can be bought at the unit/building/hero. Bought units are made available instantly, as opposed to trained units, which are only available after a prescribed period of time (see the Unit Editor field "Stats - Build Time").

Techtree - Units Trained (Unit List) Defines what units can be bought at the unit/building/hero. Trained units are only available after a prescribed period of time (see the Unit Editor field "Stats - Build Time"), as opposed to bought units, which are made available instantly.

Techtree - Upgrades To (Unit List) Defines what alternate building the building can be upgraded to. Since the upgraded building is simply another building specified in the Unit Editor, it can be set to have either superior or inferior qualities when compared to the original building.

Techtree - Upgrades Used (Upgrade List) Defines what upgrades apply to the unit/building/hero. Note that some abilities have both ability and upgrade components to them (e.g. Moon Glaive).

10. Text

Text - Caster Upgrade Names (String List) The names displayed in the caster upgrade tooltip, for the different levels of upgrades for caster units (see Unit Editor field "Art - Caster Upgrade Art").

Text - Caster Upgrade Tips (String List) The description displayed in the caster upgrade tooltip, for the different levels of upgrades for caster units (see Unit Editor field "Art - Caster Upgrade Art").

Text - Description (String) A field used purely within the editor, describing the nature of the unit/building/hero.

Text - Hotkey (Character) Defines the keyboard key that can be pressed in order to train the

Page 45: Warcraft Editor

unit/building/hero. Used as an alternative to clicking on the icon in the command interface.

Text - Name (String) A field used purely within the editor, defining the name of the unit/building/hero.

Text - Name - Editor Suffix (String) A field used purely within the editor, commonly for categorising objects.

Text - Proper Names (String List) Defines the pool of names from which a hero's name can be assigned. After the hero is trained at an altar, a name is selected randomly from the pool and assigned to the hero.

Text - Proper Names Used (Integer) Only the first x number of names, defined in the Unit Editor field "Text - Proper Names", will be used to name the hero.

Text - Tooltip - Awaken (String) The tooltip to display for awakening the hero.

Text - Tooltip - Basic (String) Similar to the Unit Editor field "Text - Name", but differs in that is viewable as part of the unit's/building's/hero's tooltip.

Text - Tooltip - Extended (String) Similar to the Unit Editor field "Text - Description", but differs in that is viewable as part of the unit's/building's/hero's tooltip.

Text - Tooltip - Revive (String) The tooltip to display for heroes made available for reviving after dying.

Page 46: Warcraft Editor

Trigger BasicsBy SD_Ryoko

Introduction to triggers Melee maps vs Trigger maps Trigger basics Events Conditions Actions

Introduction to triggers

Triggers are an alternative method of controlling gameplay. Triggers are a simplified programming language with a graphical interface. They have been designed to be simple enough for novice users, yet they can control almost any aspect of gameplay.

Melee maps vs Trigger maps

Typically, melee maps use a standard set of triggers. These triggers are created in every new map by default. These default triggers set the time of day, starting resources, create starting units, and so forth. More triggers can be added to a melee map, but once they have been removed it is now classified as a 'trigger' map.

Trigger maps typically run off a custom set of triggers. These types of maps could include hero siege maps, tower defense maps, AoS maps and any other type of map that does not run off the default set of triggers. Remember that, once you do delete the default set of triggers, you will have to create your own method of gameplay. Player resources, starting units and items will no longer be created when the map starts.

Trigger basics

Before you create any trigger you must have a category to put them in. You may put them in the original Initialization category created by the editor, but you are not required to. Categories have no impact on the functionality of the trigger.

A trigger is composed of three parts: events, conditions, and actions. When one of the events occurs, given all conditions are met, the actions will take place.

There are three fields at the top of each trigger:

Page 47: Warcraft Editor

Enabled - This determines whether or not the trigger is enabled in your map. If not enabled, the trigger has no function.

Initially On - Triggers can be turned on and off. When checked, the trigger will initially be on when the game starts.

Trigger Comment - This text field is an area for you to add any comments about the trigger. It has no impact on functionality.

Events

A trigger will fire when ANY of the events listed occur. Note that you can run a trigger from another trigger without those events occuring. Examples of events would be a unit entering a region, a unit dies, elapsed game time or a countdown timer expiring.

Conditions

Conditions are specific requirements that the trigger must follow. It cannot perform its actions unless ALL the conditions have been met. Take note that you can have 'and', 'or' and negative conditions as well. Triggers that are run from another trigger have the option to ignore these conditions.

Actions

Given an event occurs, and all conditions are met, these are the actions that the trigger will perform. Here you can set variabls, order units to perform actions, change the time of day, and just about anything else you need the trigger to perform. You may run other triggers or turn triggers off as well.

SD_Ryoko

Page 48: Warcraft Editor

VariablesBy SD_Ryoko

What are Variables? Creating Variables Setting Variable Values Arrays Boolean Logic Local Variables Appendix of Variable Types

What are Variables?

Variables are locations in memory that can hold values.Variables play an important role in scripting because they enable programmers to write flexible programs.You can store almost any kind of data inside a variable.Variables allow you to keep track of a certain unit, a winning player, a type of unit or even text strings.Storing information in a variable allows you to use it later.For example, you could store the number of units a player has killed in an integer variable.You could also store the player that has killed the most units during the game using a player variable.

Creating Variables

In World Editor, variables are typically created inside the Variable Editor.If your using custom scripts, you may also create certain types of variables within a trigger.

Inside the Trigger Editor, you can click on Edit, Variables and load the variable editor.Here you can add any type of variable you will need for your map.All variables have a type, a name, and a value.

Name

Every variable gets a unique name.The name means nothing.It is only a reference for you while you create your map.

Page 49: Warcraft Editor

You can almost call variables whatever you like, so as long as you remember what they are.

Use variable names that mean something. Single-letter variables are just hunky-dory. But index is better than i, count is better than c, and name is better than n. Short, descriptive variable names are best.

You should not begin a variable name with a number. They can contain numbers, but you begin it with a letter.

You may use underscores in a variable name, but not spaces. Using underscores is fine, though it's not recommended to begin a variable name with an underline.

Don't give names that are too similar to your variables. Avoid naming your variables the same as keywords or functions. Don't

name your integer variable int, for example, or your string variable string. This can also cause confusion during map making.

Type

The type of a variable determines what kind of data it can store.There are many different data types used in Warcraft III.When creating a variable, you will need to determine what kind of data type to use.For example, an integer variable can only store a number, and a unit variable can only reference a single exsiting unit.Later, we will discuss the different types of variables and how they are used.

Value

By default, the value of a new variable is 0, or none.You can later change this during your game using trigger codes and custom scripts.After creating a variable, you can always go back to the variable editor, and change the properties of the variable.

Page 50: Warcraft Editor

Saving our image with the extrator tool.

Setting Variable Values

The value of a variable can be set any time during the game.You can set important variables at the start of your map.Later you can set lesser variables as they are needed, or when an event happens.Variables are flexible.The value of a variable can always be changed.You can set a variable using the 'Set Variable' trigger.

Variable Arrays

An array is a variable that can store multiple values.Any variable you create can be an array.You can specify this inside the variable editor by checking the Array box.Each of these values has an index, or number in the array, with the first index being 0.The index is used to call up variables in the list.It is a way to access the indivudal values stored inside the array.For example, I could have a variable called Fruits, which is an array of string variables.Inside my map initialization, I could set the different values of Fruits to what I will need later in my map.

Page 51: Warcraft Editor

Set Fruits[0] = "Apples"Set Fruits[1] = "Oranges"Set Fruits[2] = "Pears"Set Fruits[3] = "Bananas"

Later in the game, If I wanted to tell a player to collect the pears, I could use Fruits[] to give them instructions.

Game - Display to (All players) the text: "The King wants you to collect an " + Fruits[2])

I could also use Fruits[] in a loop, and display the types of fruits to players in the game.

For each (Integer A) from 0 to 3, do (Actions)Loop - ActionsGame - Display to (All players) the text: Fruits[(Integer A)]

Using Boolean Logic

Boolean logic is used to find out the overall answer to a number of conditional statements.A Boolean value can be either true or false - nothing else.An example statement would be 'I am ten feet tall or the tree has fallen'.The statement will either be true or false.If it was true, I could collect the pears for the king.

Local Variables

Local variables are different from global variables.Local variables only exist inside the function they were declared in.

For example, if you had a trigger that fired every time a unit was killed, and you were using a standard, global variable, the triggeres could possibly by overwriting that variable as new ones fired.Things wouldn't work correctly because the value of your variable was always changing.

Or, if you had a trigger that revived Heroes, and you stored the hero in a global unit variable.If some other hero died before you revived the first, the hero unit would be

Page 52: Warcraft Editor

overwritten with the new.The original hero unit value would be lost.

To create local variables, you need to use JASS.Insert a new action in your script, and pick 'Custom Script'.Add the variable into your trigger as shown:

Custom script: local unit Revive_Hero

To set this new variable, you would also have to use a custom script.Insert another line into your action list, using 'Custim Script':

Custom script: set Revive_Hero = GetTriggerUnit()

Then later, you would again need JASS to revive that hero:

Custom script: call ReviveHeroLoc(Revive_Hero, GetRectCenter(GetPlayableMapRect()), true)

Remember, local variables will never show up in the standard interface.This is why you have to use JASS to manipulate them.

The best way to do this is to create a rough draft of just the special actions using dummy variables.Then convert it to custom text, change it, and insert it into your trigger.

Appendix of Variable Types

Below is a list of the variable types Warcraft III can use.I have placed the most common variable types at the top of the list.The rest are in alphabetical order.

Integer Stores a whole number, and does not accept deciaml points.

Real Stores a floating point number, or a number with decimal points.

String Stores a group of characters, or line of text.

Ability Stores a type of ability, like Windwalk or Bloodlust.

Boolean Stores a true or false statement.

Buff Stores an type of buff, like slow or poision.

Page 53: Warcraft Editor

Camera Object Stores a pre-placed camera object on your map.

Destructable Stores a particular destructable, either pre-placed or created.

Destructable Type Stores a type of destructable.

Defeat Condition Can store the last defeat condition that you created.

Dialog Can store the last dialog box that you created.

Dialog Button Can store the last dialog button that you created.

Floating Text Can store the last floating text that you created.

Game Cache Can store the last came cache that you created.

Game Speed Stores a game speed value, either the current speed or another value.

Item Stores a particular item that already exists in the map.

Item Class Stores the class of an item.

Item Type Stores the type of an item.

Leaderboard Can store the last leaderboard you created.

Multiboard Can store the last multiboard you created.

Order Stores a unit order, like Attack or Hide.

Player References a particular player.

Player Color Stores a player color value, like red.

Player Group Stores a group of players to be used again.

Point Stores a X,Y coordinate on the map.

Quest Stores the last quest you created.

Quest Requirement

Stores the last quest requirement you created.

Race Stores a race, like Human or Night Elf.

Region References a particular region on the map.

Sound References a sound that you have used or imported, in the sound manager.

Special Effect Stores the last special effect you created.

Tech Type Stores a type of research or upgrade.

Terrain Deformation

Stores the last terrain deformation you created.

Page 54: Warcraft Editor

Timer Used for creating timers. Every timer has a timer variable.

Timer Window Stores the last timer window you created.

Trigger References a particular trigger in your map.

Unit Stores a particular, single unit on your map.

Unit Group Stores a group of units.

Unit Type Stores a particular type of unit, like Footman or Sorceress.

Visibility Modifier Stores the last visibiliy modifier you created.

Weather Effect Stores the last weather effect you created.

Hero Arenas and Choosing heroesBy SD_Ryoko

Introduction Basic Hero Setup Creating Wisps

Page 55: Warcraft Editor

Rules about Choosing Heroes Creating heroes with Triggers Repick Trigger Summary

Introduction

This tutorial is about creating an area for a player to choose his hero. This is most common in hero arena maps, where players are given a wisp, or 'chooser unit' and can select which hero they want to play. This tutorial will cover how to create an area for choosing heroes, and how to set up the triggers that create them.

See also: Hero Taverns

Basic Hero Setup

The setup we are going to use today is seen in many hero arena maps. There will be a group of heroes in a remote location on the map, with a circle of power next to each hero. Each player is given a wisp, and a hero is created when they step inside the circle.

We will need to designate an area on the map for your heroes. For every available choice, we will need one hero, one circle of power and one region. The hero on the map is only to show the player which hero they can choose, and nothing more. The hero should belong to neutral passive, so they don't wander or attack anyone. If you need to, you can make the heroes invunerable at map initalization, to prevent players from attacking them.

The circle of power in front of it is where the wisp should go to choose that hero. We will also need a region inside the circle of power. For now, we will start with two heroes in this example.

Place a hero on the map for every hero your map has. Create a circle of power somewhere near the hero. Create a region that fits inside the circle of power. Heroes should belong to neutral passive.

Page 56: Warcraft Editor

Create an area for choosing heroes.

Creating Wisps

Every player in the game will need a wisp (or other chooser type unit) to select which thero they want to play. When the game starts, we would like each player to be looking at the available heroes, so we will create the player starting locations somewhere in that area. Do not place the starting units to close to eachother, or sometimes the wisp cannot be created there.

Next we will need to create the wisps. It is easy to place a wisp for each player near the heroes, but if a player is not present, there will be an inactive wisp sitting on the map. I prefere to create a wisp only for players in the game, so we are going to create the wisps for each player using a trigger. Also, my trigger will only make a wisp for human controlled players that are in the game, and not spectating or defeated.

Create a starting location for each player near your heroes. Add a trigger that creates a wisp for each player.

Create Wisp Events Map initialization Conditions Actions Player Group - Pick every player in (All players) and do (Actions)

Page 57: Warcraft Editor

Loop - Actions If (All Conditions are True) then do (Then Actions) else do (Else Actions) If - Conditions ((Picked player) controller) Equal to User ((Picked player) slot status) Equal to Is playing Then - Actions Unit - Create 1 Wisp for (Picked player) at ((Picked player) start location) facing Default building facing degrees Else - Actions Do nothing

Rules about Choosing Heroes

Every map has different rules about choosing a hero. Some maps allow a player to pick any hero they like. Other maps only allow one of each hero to be picked. Typically, modern maps only allow one of each hero, and have options such as -repick and -random. In this example, we will limit heroes to one of each type and add a repick system. You can later add more options later if you like.

First to keep track of what heroes have been taken, we will need to store that in a variable. We are going to make and integer type variable, that is an array. By default, all the integers will be zero. Each integer represents one of the heroes on your map. Inside the trigger module, click on Edit, Variables and create a variable as shown.

An integer variable stores which heroes have been taken. Create an integer array inside the Variable Editor. Maps can also have options like -repick and -random.

Adding a variable to control heroes.

Page 58: Warcraft Editor

Creating Heroes with Triggers

The last thing we need to do is add a trigger to create the heroes. If you are more advanced in trigger code, you can store your hero types and regions inside an array. This example will keep it rather simple. We will have one trigger for every available hero. It is a little more work, but once you finish the first trigger, you can copy it and alter it for the next hero.

When the wisp steps inside a circle, we will first check to see if that hero is taken. If not, we will create the hero, mark that hero as taken, and remove the wisp from the game. For visual purposes, we will hide that hero on the map so that players know it is unavailable.

My trigger will create the hero in the center of the map. If you want to create them somewhere else, you could make a new region somewhere in your map. Typically, players and teams have different starting places, and you will either one or two regions to place the heroes. Lastly, if you wanted to add a -repick system later, all you would have to do is unhide that type of hero on the map, and set our variable back to zero for that hero.

Create a trigger for every hero available in your map. Hide the hero on the map. Create a hero for the owner of the wisp. Remove the wisp or chooser unit from the game.

My variable corresponds with my regions. Hero one is region one, and hero two is region two.

Choose Hero 1 Events Unit - A unit enters Hero 1 Region <gen> Conditions ((Unit-type of (Triggering unit)) Equal to Wisp) and (Pick_Taken[1] Equal to 0) Actions Set Pick_Taken[1] = 1 Unit - Hide Demon Hunter 0001 Unit - Create 1 Demon Hunter for (Owner of (Triggering unit)) at (Center of Start Region <gen>) facing Default building facing degrees Camera - Pan camera for (Owner of (Triggering unit)) to (Center of Start Region <gen>) over 0.00 seconds Unit - Remove (Triggering unit) from the game

Choose Hero 2 Events Unit - A unit enters Hero 2 Region <gen> Conditions ((Unit-type of (Triggering unit)) Equal to Wisp) and (Pick_Taken[2] Equal to 0)

Page 59: Warcraft Editor

Actions Set Pick_Taken[2] = 1 Unit - Hide Sorceress 0002 Unit - Create 1 Sorceress for (Owner of (Triggering unit)) at (Center of Start Region <gen>) facing Default building facing degrees Camera - Pan camera for (Owner of (Triggering unit)) to (Center of Start Region <gen>) over 0.00 seconds Unit - Remove (Triggering unit) from the game

Repick Trigger

Now I want to add a repick trigger to the map. It will work similar to the other hero triggers, but it will work backwards. When any player types -repick, I want to unhide the dummy unit, and make my Pick_Taken variable for that hero 0, so it is available again. I've noticed if you don't make the hero available again, you start running out of heroes. We will use IF statements to determine what hero that player has. After unhiding the dummy unit, we will remove his hero from the game and creating a new wisp for the player to use.

Pick a hero unit owned by that player. Unhide that type of unit. Change our variable for that type of unit. Remove the hero from the game. Create a new wisp for that player.

If you want, you can make the hero available again, by unhiding the unit and setting Pick_Taken[] to 0.

Repick Hero Events Player - Player 1 (Red) types a chat message containing -repick as An exact match Player - Player 2 (Blue) types a chat message containing -repick as An exact match Player - Player 3 (Teal) types a chat message containing -repick as An exact match Conditions Actions Unit Group - Pick every unit in (Random 1 units from (Units owned by (Triggering player) matching (((Matching unit) is A Hero) Equal to True))) and do (Actions) Loop - Actions Unit - Remove (Picked unit) from the game Camera - Pan camera for (Triggering player) to ((Picked player) start location) over 0.00 seconds Unit - Create 1 Choose A Hero for (Triggering player) at (Center of WispRegions[(Player number of (Triggering player))]) facing (Center of Start Region <gen>)

Page 60: Warcraft Editor

Summary

After getting all the basics down, you can add more advanced options. A lot of how the map works is personal preference, but this should get you off to a good start. When you are done, you should have an area on your map that looks like this.

Finished hero arena.

Page 61: Warcraft Editor

Hero TavernsBy SD_Ryoko

Introduction Preparing your Heros Creating a Tavern Unit Placing the Tavern on the Map Alter Gameplay Constants Creating the Triggers

This tutorial also has a free demo map.Download Here

Introduction

This tutorial will explain how to make a tavern where you can purchase your starting heroes. These taverns are common on the newer DOTA maps and some of the hero siege maps. When you have a lot of heroes, a tavern is nice because it takes much less room on your map than a hero arena does. We will cover creating the tavern, the heroes, and the triggers to make it all come together.

Were going to use the techtree and custom gameplay constants to restrict heroes to 1. This way, you don't have to use food, gold or lumber anymore! This allows you to use resources for other things, making a better map.

See also: Hero Arenas

A hero tavern uses icons to sell heroes.

Preparing your heros

 

Page 62: Warcraft Editor

The first step is prepare you heroes for the tavern. We also need to change the costs, techtree requirements, and button position of each hero for the tavern icon. The tavern will sort the heroes automatically, but when a hero is sold they will all shift to a new location. That's quite annoying, and we can prevent that by setting the units icon position. Taverns can hold up to twelve heros.

Button positions determine the icon locations of a hero.

Now you need to change your heroes to be compatable at the tavern. Remember that players start with zero resources, so unless your giving the players resources, the hero should cost nothing. To prevent players from owning more than one hero, we will modify the techtree requirements. Below is a list of fields you need to change, and a brief explenation of each.

* You'll notice some of these are default settings. But that is not true on all hero units.

Art - Button Position (X)   X position of the hero icon. Art - Button Position (Y)   Y position of the hero icon. Stats - Gold Cost   How much gold your hero will cost. Stats - Lumber Cost   How much lumber your hero will cost. Stats - Food Cost   Hero food cost. Probobly 0 for your map. Stats - Stock Maximum   Change to 1. Stats - Stock Start Delay   Were going to use 15 seconds. Techtree - Requirements   Any Alter. Techtree - Requirements - Tier 2   Any Tier 2 hall, Any Alter. Techtree - Requirements - Tier 3   Any Tier 3 hall, Any Alter.

Creating the Tavern

Now we'll need a tavern to sell our heroes. I am going to start with the Tavern unit, which already sells heroes and it's a good template. The tavern is found in the object editor, under neutral passive buildings. Right click it and create a new

Page 63: Warcraft Editor

custom unit.

First, lets change the abilities of the tavern. I am going to remove 'Revive Hero Instantly' because I do not want my tavern to revive heroes. The taverns abilities should read:

Abilities - Normal:   Select Unit, Invulnerable (Neutral)

Next we add all of the heroes we want the tavern to sell. The field inside the tavern we want to change is Techtree - Units Sold. Double click it to change it, and add in all of your heroes. Again, the tavern can sell a maximum of twelve heroes.

Placing the Tavern on the Map

Your tavern is ready, so now we can place it on the map. The tavern should be in a remote area, farther away from gameplay than your other units. You will also need a region to place the heroes inside when a player picks them.

You will need a player unit somewhere near the tavern, so that a player can purchase units from it. Most commonly used unit is the circle of power. Place a custom circle of power for each player that can buy heroes from the tavern. I like to make my circles of power very small, so they are not obviously seen. You can change the Art - Scaling Value to .10 and hide them behind the back of the building.

Place the player units near the tavern. I prefere to hide mine.

Page 64: Warcraft Editor

Alter Gameplay Constants

Next we need to alter the gameplay constants to restrict heroes to 1 per player.

Click Advanced, Gameplay Constants. Check the box at the top that says 'Use Custom Gameplay Constants'. Find 'Techtree - Dependancy Equivalents - Alter'. Here, add your custom

circle of power we are using next to the taverns. You now have a legitamate alter on the map, using the circle of power. This will allow you to purchase a hero.

Find 'Techtree - Dependancy Equivalents - Hero'. This controls which units count when restricting heroes. Clear all heroes already on the list. Now one by one, add your custom heroes here. This prevents your players from purchasing more than one hero!

Click 'OK' when finished.

Creating the Triggers

The first trigger you will need is a trigger to give every player some starting resources. Most importantly, this trigger ADDS ALL HEROES to an array variable. This is used to generate random hero picks. Our trigger will run when the map starts.

Total_Heroes is how many heroes you have. I have 8 heroes. Random_Count is how many randoms are left. Should be EQUAL to your

Total_Heroes. Hero_Array contains ALL your custom heroes. Random_Data is used for choosing a random, uniqe hero. This should

ALSO be equal to your number of heroes.

Map Initialization Events Map initialization Conditions Actions Player Group - Pick every player in (All players) and do (Actions) Loop - Actions Player - Set (Picked player) Current gold to 750 Player - Set (Picked player) Current lumber to 100 Camera - Pan camera for (Picked player) to (Position of Tavern 0000 <gen>) over 0.00 seconds Player - Set (Picked player) Food cap to 6 Set Total_Heroes = 8 Set Random_Count = 8 Set Hero_Array[1] = Alchemist

Page 65: Warcraft Editor

Set Hero_Array[2] = Naga Sea Witch Set Hero_Array[3] = Tinker Set Hero_Array[4] = Beastmaster Set Hero_Array[5] = Dark Ranger Set Hero_Array[6] = Firelord Set Hero_Array[7] = Pandaren Brewmaster Set Hero_Array[8] = Pit Lord For each (Integer A) from 1 to 8, do (Actions) Loop - Actions Set Random_Data[(Integer A)] = (Integer A)

Now we'll need a series of triggers. My demo map is more advanced, so I'll list which triggers I needed. You do not have to have all these features in your map, but it is popular now a days to have a random command and repick command.

The times and methods I used are preferences based on popular maps. You can change the times and how things work to your liking. But for this demo, we are going to use these triggers.

A trigger for when a unit is manually purchased from the tavern. A trigger for the -random command. A trigger for the -repick command. A trigger to do 'all random'. A trigger that turns on repick and random after 15 seconds, and turns off

all random. A trigger that turns off repick and random after 45 seconds.

When a hero is chosen in any way, it is taken out of the array using a mathematical sequence. Therefore, we never need to worry about whether or not a unique hero was chosen, because it no longer exists in the array!

Manual Hero Pick

Initially ON.

Events Unit - A unit Sells a unitConditions ((Sold unit) is A Hero) Equal to TrueActions Player Group - Pick every player in (All players) and do (Actions) Loop - Actions Player - Make (Unit-type of (Sold unit)) Unavailable for training/construction by (Picked player) Game - Display to (All players) the text: (A player has chosen + (Name of (Sold unit))) Selection - Select (Sold unit) for (Owner of (Sold unit))

Page 66: Warcraft Editor

Random Command

Initially OFF.

Events Player - Player 1 (Red) types a chat message containing -random as An exact match Player - Player 2 (Blue) types a chat message containing -random as An exact match Player - Player 3 (Teal) types a chat message containing -random as An exact match Player - Player 4 (Purple) types a chat message containing -random as An exact match Player - Player 5 (Yellow) types a chat message containing -random as An exact match Player - Player 6 (Orange) types a chat message containing -random as An exact matchConditions (Number of units in (Units owned by (Triggering player) matching (((Matching unit) is A Hero) Equal to True))) Equal to 0Actions Set Random_Hero = (Random integer number between 1 and Random_Count) Unit - Create 1 Hero_Array[Random_Data[Random_Hero]] for (Triggering player) at ((Triggering player) start location) facing Default building facing degrees Game - Display to (All players) the text: (A player has randomed + (Name of (Last created unit))) Selection - Select (Last created unit) for (Owner of (Last created unit)) Player - Add -425 to (Triggering player) Current gold Player Group - Pick every player in (All players) and do (Actions) Loop - Actions Player - Make (Unit-type of (Last created unit)) Unavailable for training/construction by (Picked player) Set Random_Data[Random_Hero] = Random_Count Set Random_Count = (Random_Count - 1)

Repick Command

Initially OFF.

Events Player - Player 1 (Red) types a chat message containing -repick as An exact match Player - Player 2 (Blue) types a chat message containing -repick as An exact match Player - Player 3 (Teal) types a chat message containing -repick as An exact match Player - Player 4 (Purple) types a chat message containing -repick as An exact match Player - Player 5 (Yellow) types a chat message containing -repick as An exact match

Page 67: Warcraft Editor

Player - Player 6 (Orange) types a chat message containing -repick as An exact matchConditions (Number of units in (Units owned by (Triggering player) matching (((Matching unit) is A Hero) Equal to True))) Equal to 1Actions Game - Display to (All players) the text: A player has repick... Unit Group - Pick every unit in (Units owned by (Triggering player) matching (((Matching unit) is A Hero) Equal to True)) and do (Actions) Loop - Actions Player Group - Pick every player in (All players) and do (Actions) Loop - Actions Player - Make (Unit-type of (Picked unit)) Available for training/construction by (Picked player) Unit - Remove (Picked unit) from the game Set Random_Hero = (Random integer number between 1 and Random_Count) Unit - Create 1 Hero_Array[Random_Data[Random_Hero]] for (Triggering player) at ((Triggering player) start location) facing Default building facing degrees Selection - Select (Last created unit) for (Owner of (Last created unit)) Game - Display to (All players) the text: (A player has randomed + (Name of (Last created unit))) Player Group - Pick every player in (All players) and do (Actions) Loop - Actions Player - Make (Unit-type of (Last created unit)) Unavailable for training/construction by (Picked player) Set Random_Data[Random_Hero] = Random_Count Set Random_Count = (Random_Count - 1)

All Random Command

Initially ON.

Events Player - Player 1 (Red) types a chat message containing -ar as An exact matchConditionsActions Trigger - Turn off Random Command <gen> 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 ((Player((Integer A))) slot status) Equal to Is playing Then - Actions Set Random_Hero = (Random integer number between 1 and Random_Count) Unit - Create 1 Hero_Array[Random_Data[Random_Hero]]

Page 68: Warcraft Editor

for (Player((Integer A))) at ((Player((Integer A))) start location) facing Default building facing degrees Selection - Select (Last created unit) for (Owner of (Last created unit)) Game - Display to (All players) the text: (A player has randomed + (Name of (Last created unit))) Player - Add -425 to (Player((Integer A))) Current gold Set Random_Data[Random_Hero] = Random_Count Set Random_Count = (Random_Count - 1) Else - Actions Do nothing

Time is 15 seconds

Initially ON.

Events Time - Elapsed game time is 15.00 secondsConditionsActions Trigger - Turn on Random Command <gen> Trigger - Turn on Repick Command <gen> Trigger - Turn off All Random Command <gen>

Time is 45 seconds

Initially ON.

Events Time - Elapsed game time is 45.00 secondsConditionsActions Trigger - Turn off Repick Command <gen> Trigger - Turn off Random Command <gen>

 

Page 69: Warcraft Editor

Hero Revive TriggerBy SD_Ryoko

This tutorial also has a free demo map.Download Here

This is a trigger code for reviving heros.It creates a timer window for every hero that dies.Because it uses local variables and custom text, the trigger can handle multiple heros being dead at the same time.The variables will not overwrite themselves as each hero dies.Remember, local variables are unique to each copy of the trigger that is made.

What are local variables?

Please see our tutorial on Variables and Arrays.

What if I don't want a timer window or camera function in my code?

Then just delete the lines for the features you do not need.

How do I change the wait time for reviving my heroes?

Just change the line that sets the HEROWAIT variable.Mine is set to 5 seconds for each hero level.

How do I change the location my hero revives in?

Edit the revival line to put your own region instead of playable map area.If you're not good with custom scripts, create a new line in a seperate trigger, and convert it.Then change the new code to use OURHERO just like mine does.

I am not good with custom scripts. Is there a manual for JASS text?

You bet.

Page 70: Warcraft Editor

The full manual for JASS can be found at http://jass.sourceforge.net/.

Leaderboards

By SD_Ryoko

About Leaderboards Creating a board Tallying Score Leaderboard Trigger Actions

About Leaderboards

Leaderboards are a very simple score board for players to keep track of their kills or points.You don't need any tools or other programs to make one.Leaderboards can only keep track of two columns: a name and a value.If you need more than two columns, you need to create a multiboard.However, leaderboards are a lot simpler to create.

Leader boards can only keep track of two columns. The left side is the player's label and the right is the player's value.

When laying out your leaderboard, remember that they accept the standard Warcraft color codes and characters.You can use a color coding program to create a nice title, and space it out on different lines as shown.You can also later modify the title and properties of the leaderboard contents.

Page 71: Warcraft Editor

All you need to create a leaderboard is two triggers.One to create the board, and one to keep score.

Leaderboards can only keep track of a name, and a value.

Leaderboards can use the common Warcraft color codes.

Leaderboards can be assigned a variable, to show and hide them easily.

A leaderboard cannot be created at map initialization.

A leaderboard is a lot more simple than a multiboard.

Creating a Leaderboard

You cannot create the board at map initialization.This is a very common reason a leaderboard doesn't work.You can create the board after doing various things at the start of the map, or you can just have it wait 5 seconds or so.Most of my maps do the map initialization first, then call a separate trigger to create the board when done.Waiting a little also helps with laggers who drop at the beginning of the game.In this example trigger, I am going to wait five seconds.

My example is simple.Five seconds into the game, pick all players and check that they are playing and controlled by a user.Add each of these players to the leaderboard.When it's done, show the leaderboard to all players.

Leaderboard

Events

Time - Elapsed game time is 5.00 seconds

Conditions

Page 72: Warcraft Editor

Actions

Leaderboard - Create a leaderboard for (All players) titled (Your Title Here)

Player Group - Pick every player in (All players) and do (Actions)

Loop - Actions

If (All Conditions are True) then do (Then Actions) else do (Else Actions)

If - Conditions

((Picked player) controller) Equal to User

Then - Actions

Leaderboard - Add (Picked player) to (Last created leaderboard) with label (Name of (Picked player)) and value 0

Else - Actions

Leaderboard - Show (Last created leaderboard) (Must come last)

Tallying Score

A leaderboard can keep track of several different things.Maybe you want your board to keep track of kills.If you're playing 'capture the flag', you would want to keep track of flags stolen.Because the board works off integers, you can assign it any integer values you like.

In my map, I want the leaderboard to keep track of kills.Of course, this is the most common use for a leaderboard.So I will first need to create a variable to keep track of kills for each player.I will open the variable editor, and create a new integer variable called Player_Kills.Then I will check the Array box to keep track of more

Page 73: Warcraft Editor

than one value.

Adding a variable to keep score

Now we will need a trigger to tally score.Again, leaderboards work on values and integers.In my example, I need to keep track of kills.You can see maps online where the players jump all around the leaderboard, because they are all zero.This is not only annoying, it's bad practice and it can cause lag.Only update your board when needed, not every second or so.

My example trigger is really simple.The trigger will run every time a unit dies.irst it will check that the killing unit belongs to a player, and not a computer.Then It will add one point to the owner of the killing unit's score.Lastly, it will update the leaderboard value for that player.

Trigger to tally score.

Trigger Tally Score

Page 74: Warcraft Editor

Events

Unit - A unit Dies

Conditions

((Killing unit) belongs to an ally of Player 1 (Red)) Equal to True

Actions

Set Player_Kills[(Player number of (Owner of (Killing unit)))] = (Player_Kills[(Player number of (Owner of (Killing unit)))] + 1)

Leaderboard - Change the value for (Owner of (Killing unit)) in (Last created leaderboard) to Player_Kills[(Player number of (Owner of (Killing unit)))]

Leaderboard - Sort (Last created leaderboard) by Value in Descending order

Appendix of Leaderboard Trigger Actions

Leaderboard - Create

Creates the leaderboard. Also assigns a title and which players can see it.

Leaderboard - Destroy

Destroys a leaderboard. Once you destroy a board, you can no longer see it or manipulate it.

Leaderboard - Show/Hide

Shows and hides the leaderboard. Applies to all players that can see it. You can still manipulate the board when it is hidden.

Leaderboard - Change Title

Changes the title of the leaderboard. Remember, it can use common Warcraft color codes as well.

Leaderboard - Change Label Colors

Changes the color of a players label. By default, the label

Page 75: Warcraft Editor

will be the game color of that player. So, player number 1 is red and player number 4 is purple.

Leaderboard - Change Value Colors

Changes the color of a players score. Again, by default, this will correspond with the players game color.

Leaderboard - Change Style

Changes the leaderboard style. You can hide the title, labels, or player values, for all players.

Leaderboard - Add Player

Adds a player to the leaderboard.

Leaderboard - Remove Player

Removes a player from the leaderboard. This is handy when a player quits or is defeated.

Leaderboard - Change Player Label

Changes the label for a player. Usually, this is the name of the player. Some maps change the name to (Quit) when a player leaves.

Leaderboard - Change Player Label Color

Changes the color of a players label. This is also handy if someone leaves. Sometimes the player name will change gray.

Leaderboard - Change Player Value

Updates the value, or score, for a player.

Leaderboard - Change Player Value Color

Changes the color of a players score. Again, by default, this will correspond with the players game color.

Leaderboard - Change Player Style

Changes the leaderboard style. You can hide the labels or player values, for a specific player.

Page 76: Warcraft Editor

Multiple Shot Ability    By SD_Ryoko

This tutorial requires Warcraft III The Frozen Throne.

We are going to make a split shot ability based on barriage. Theres a few things you need to do to 'prep' the ability first.

Create a new ability for Multiple Shot-In the object editor, make a new custom ability based on the unit ability Barrage.

If you would like a hero skill with levels:-Change the field that says: "Is hero ability" to true.

Page 77: Warcraft Editor

-Save and restart the editor so it can categorize it properly, and so it shows 'art-icon-research'.

Now lets change Barriage so it works with our unit.-Make area of effect the same as your units range, so the multiple shot doesn't shoot farther.-Change the missile speed and missle arc to the same values as your unit.-Set the desired ammount of damage.-Remove any techtree requirements used for the ability.

Last, we calculate the number of targets we want.-Unit already gets 1 for normal attacks.-Unit already gets 1 for having barriage.-Unit already gets 1 for the number of targets.-If you change number of targets to 0, the unit gets a LOT of attacks.s 3, and the maximum is somewhere around 9. Here is an image of an archer tower with multiple shot. 

Give this ability to your unit and it will use it automatically when acquired.

Custom Pathing MapsBy SD_Ryoko 

What is a pathing map?

A pathing map determines the pathing for units around a certain object or area.

Almost all units, doodads, and models have a pathing map. This defines how the area around the object behaves. For example, a 'pathing blocker' blocks units from walking or flying in an area. Buildings also have pathing maps to prevent units from walking on them or building to close to them.

You may recognize this basic pathing blocker doodad from the Doodad Pallet.

Page 78: Warcraft Editor

 

How are pathing maps made?

Pathing maps are simple. They are a small TGA file made up of some basic colors.

Pathing maps are made from TGA files. Each color represents some type of pathing behavior. Each pixel in the TGA file represents 32 grid units in the editor.

Below is a list of the different colors a pathing map can use, and what effect that color has. Knowing all this, you could make areas where only flying units could enter. Or, the opposite, keeping all flyers out.

I created a massive blocker using blue pixels, to place on the grass in my TD. This keeps players from unfairly building towers in areas that are not used or decoration.

Color Buildable Walkable Flyable Red Green Blue

White no build no walk no fly 255 255 255

Red build ok no walk fly ok 255 0 0

Yellow build ok no walk no fly 255 255 0

Green build ok walk ok no fly 0 255 0

Cyan no build walk ok no fly 0 255 255

Blue no build walk ok fly ok 0 0 255

Magenta no build no walk fly ok 255 0 255

Black build ok walk ok fly ok 0 0 0

Page 79: Warcraft Editor

 

How do I change a pathing map for an object?

You can see what pathing map each doodad and building uses inside the object editor. If you want to view the actual filename of the map, press CTRL-D to view the raw object data. Knowing this, you can change the pathing map of an object if you need to.

You can view raw file names by pressing CTRL-D in the object editor. You can view your terrains pathing by pressing 'p' in the map editor. You can view more specific detail from the 'View' menu.

Note, there are different files listed under Units, Doodads, and Destructables.

 

Can I edit an existing pathing map?

Yes! You can extract any of pathing maps from the Warcraft III database. This file is inside the root directory where you installed warcraft.

Most pathing maps are stored inside the 'war3.mpq' file, and newer paths are inside 'war3x.mpq'. You can use a tool like WinMPQ to open the database (see Tools and Utils page). They are stored inside the folder 'PathTexures'.

A Custom Pathing Example

Here is an example of how you can create a custom pathing map. Below is a model of a spiral staircase that I created in GMAX. For the stairs to work

Page 80: Warcraft Editor

properly, I will need a custom pathing map to define where a unit can and cannot walk.

A Custom Model

Here is a custom model of a spiral staircase I created in GMAX. I have set the grid to 32x32, to count the number of pixels the pathing map will have to be.

Remember, 1 pixel is 32 warcraft grid units.

Creating the Pathing Map

Here is what my pathing map will look like. Each pixel has a color to control the pathing inside warcraft.

Magenta is un-walkable and un-buildable.

Blue is walkable and un-buildable. Black pixels do nothing.

Now I'll import the TGA file into my map. In the object editor, I will edit my doodad and select my custom imported pathing map.

Page 81: Warcraft Editor

A Finished Product

Success! Heres what it looks like in the game. The unit can walk up and down the stairs, but not walk off the edges. The unit can also stand on the center area as well.

Rectangular, invisible 'helper' surfaces in my model help the unit walk over the cliff edge.

Tower Defense TutorialBy SD_Ryoko

Some paragraphs from other materials.

1. Introduction

What is a tower defense? Why make a tower defense?

2. For Beginners

How to make your Tower Defense original How to make your Tower Defense fun The bare bones of a Tower Defense

Page 82: Warcraft Editor

How a TD runs and Operates Team Play, Survival, or Team vs Team?

3. For Intermediates

Pathing and Lanes Spawning Units Creeps keep Attacking? Towers with Abilities Leaderboards Unit varieties Boss Levels Sellable Towers Terrain Design Upgradeable Towers Reducing lag in your TD

4. For Expert TD creators

Player controlled spawning Overall difficulty and "breakpoints" Hybrid TD's Multiple objective TD's How to balance your TD Managing Difficulty

1. Introduction

What is a tower defense?

TD stands for "tower defense". It is a "genre" of custom game for Warcraft III.The TD genre was pioneered early on with such games as "TD" and "Arkguil's TD".In a TD, the objective is usually to construct buildings to prevent units that walk along a set path from reaching an area.TD's usually consist of multiple "levels" of gradually increasing difficulty.

Why make a tower defense?

TD maps can be extremely fun to play!They are very challenging and are almost like a complete minigame to Warcraft III.Even Blizzard created their own fun, secret, TD level that accompanies the expansion The Frozen Throne.

Page 83: Warcraft Editor

TD maps usually take a lot longer to create than any other type of map.I mean, any map can be made in a short amount of time, even a TD.But in my experience though, I tend to spend the most time developing a TD.They seem to require a lot of attention and they aren't always easy for people new to TD's to get right in and make one right away.

2. For Beginners

How to make your Tower Defense original

Perhaps the most important thing you need to consider when creating a TD map is how you will differentiate it from all previous TD's.You still want to capture the essence of a TD in your map - but you will need to do much more than simply change the models and terrain of someone else's TD.Think about what you want your players to be thinking about while they play.There are many things you can do to offer a unique experience for your audience.

How to make your Tower Defense fun

Another important point is that even if your TD is very original, that doesn't necessarily mean that people are going to like it.In general, do not make the game so difficult that it is nearly impossible to win.Game length should be limited from 30 minutes to 1 hour in length.Your map should be virtually free of bugs - ESPECIALLY tooltips on towers, hotkeys for building towers, descriptions for towers and tower builders, etc.Do not make the game so hard that only yourself and a minority of players can "win" - nobody likes to play games that they lose all the time.Also, nobody wants to have to wait around in a TD because one stupid little creep got mixed up and didn't walk where he was supposed to - or one player is taking forever to finish off the creeps.Use "periodic event" and a variable that increases itself, plus if/then/else statements that check that variable to run your levels.

The bare bones of a Tower Defense

There are many core essentials to making a TD run effectively.You'll need to create the scenario at the start of the game.Players will need a way to create towers and choose which race they want to play.Variables and map functions will need to be initialized.You will also need functions to manage the levels, and set the victory conditions.

Page 84: Warcraft Editor

Map Layout:

First, you need to create a layout for the creeps and players.Most often, these are paths or lanes that the creeps walk through, and players build towers to defend against them.Be especially careful when creating your layout, being sure that it is symmetrical for each player.

Races:

Many TD's have different races for players to choose from, and each race can build a different techtree of towers.Races should be original and very different from each other.Different styles of towers and abilities separate one race from another.

Towers:

You will need to create towers for each race to play.Towers should be 2x2 in size - the size of the human guard tower.Towers start of basic and gradually become better and more expensive.Some towers can be upgraded and have special abilities.Towers also can have different attack types to combat different types of armor.

Creeps:

The easiest way to create different creeps is to copy units and modify them.Having a basic formula for creep life, armor, and speed is the BEST way to create a balanced game.Values start off low and increase as the game progresses.All creeps should have a low pathing value, to prevent jamming.All creeps should have some value for food cost, and a bounty value.Bounty values give the players gold when the creep is killed.

Page 85: Warcraft Editor

Most TD's allow players to choose different races. Lanes should be symmetrical for all players.

How a TD runs and Operates

All of these components need to be put together to create a working game.Each TD works somewhat differently, but the basic order of operations is the same.Almost every tower defense begins with choosing units, then progressing through levels of creeps throughout the game.Below is a basic structure of how a TD operates.

Map Init:

Here you will create the scenario at the start of the game.Define variable arrays of creeps that will be used in levels.Define miscellaneous variables to keep track of lives, score, and winnings.

Create Units:

Players are going to need a way to choose their race and build towers.Typically, races are chosen from a building, that disapears when a unit has been picked.Undead workers are the most popular builders, because they don't have to stand and wait for a tower to finish construction.

Start first level:

A countdown timer that kicks off the first level.This gives players time to choose races and build some first towers.Typically, players can see the timer and know how much time they have until the game begins.

Page 86: Warcraft Editor

Spawn Creeps:

Every level of a TD, creeps will be created.Creeps are often stored in large unit type arrays so they can be manipulated easily.All creeps in your TD should require some amount of food, to keep track of the amount of creeps on the board.

Level Complete:

A level is finished when the creep players food becomes zero.A trigger usually catches when a players food has dropped below 1, telling the scripts that the level has been finished.

Losing Lives:

A trigger 'catches' creeps that made it to the end of a players lane and subtracts lives from player totals.Sometimes the creeps meet at the center of the map as well.Creeps can also be worth different amounts of lives.

Tally Score:

A trigger keeps score of how many creeps a player has killed.Player kills are often stored in variable arrays as well.Kills are typically shown on a leaderboard or multiboard.

Victory Conditions:

Victory conditions determine when the game is complete.Players can be defeated if they leaked all of their lives, or win by surviving through each level.

Team Play, Survival, or Team vs Team?

There are essentially three types of TD's out there.

Team Play:

Team play is where a group of players work together to win the game.Either they all work to build towers to defend one location, or your map allows multiple teams, say teams of 2, to play the game (and it is non-competitive).Classic examples: Arkguil's TD.

Survival:

One type is where there are multiple runways where creeps will be ordered to move, and each player has access only to attack those creeps that come down

Page 87: Warcraft Editor

their runway.Classic example: Blixels TD.

Team vs Team

Where two or more players go head to head!Either the first player or team to clear all the levels wins, or the player that survives the longest wins, or the team or player with the most points within a certain time wins - and of course there are many variations.You can allow players to build towers that can attack the enemy teams towers (à la Tower Line Wars) or keep it simple (à la Cube Defense).

3. For Intermediates

Pathing and Lanes

Warcraft is very smart, and creeps will walk almost any distance to get to their destination.If there is a hole in your pathing map, creeps will be able to walk around a player instead of going through their towers.

If your pathing is correct, and the player blocked the creeps' path, they will either attack the player's towers, or turn around.But if your pathing is not solid, and there is a gap half way across the map, they will head for it.

Inside World editor, you can click on View - Pathing (ground) and check your pathing map.The areas that ground units cannot walk will be shown in purple.Unbuildable areas will be shown in blue.

In the first picture, the arrows show the possible paths the creeps will take.If they cannot go straight into the left lane, they will head right instead.Blocking the right hand side would force them to move forward.

In the second picture, a player could not build on a blue area.This will allow the creeps to walk around the towers there.We need to put large size pathing blockers down to prevent units from walking on those areas.

Page 88: Warcraft Editor

Creeps cannot walk on purple areas. If a path is not blocked, the creeps will find a different way.

Large size pathing blockers prevent creeps from walking around buildable areas.

Spawning Units

Whether you're using a loop or creating multiple units at once, the most efficient way to do this is to dump creeps into a region.Instead of having the spawn trigger telling the units to move, have 'dump' region tell them to move.Creating and ordering units in one giant trigger can bog the game down.

Dumping all the creeps onto the map at once can really bog the game down too.Some TD's use loops to create units for each player.Others dump smaller handfuls of groups at a time.Also, when creating all the units at once, they tend to create a giant clump and get stuck.Smooth running TDs will control the flow of incoming creeps.

You can keep track of who leaked the creeps by having multiple ending regions, or by setting the unit's custom value when it lands in the dump region.The trigger will set the custom value, then order the unit to move.Note that, these are still both separated from the spawning code.

Remember, if your players can maze the creeps, you MUST make the checkpoints unbuildable ground.If a player unknowingly builds towers all over the check point, the creeps are going to destroy all the towers in the area.How fair is that?

Create Units 1

Page 89: Warcraft Editor

Events Time - Every 45.00 seconds of game time Conditions Actions Unit - Create 3 Footman for Player 1 (Red) at (Center of SPAWN1 <gen>) facing 0.00 degrees Unit - Create 2 Rifleman for Player 1 (Red) at (Center of SPAWN1 <gen>) facing 0.00 degrees

Move1 Events Unit - A unit enters SPAWN1 <gen> Conditions Actions Unit - Order (Entering unit) to Move To (Center of SPAWN2 <gen>)

Move2 Events Unit - A unit enters SPAWN2 <gen> Conditions Actions Unit - Order (Entering unit) to Move To (Center of SPAWN3 <gen>)

Move3 Events Unit - A unit enters SPAWN3 <gen> Conditions Actions Unit - Order (Entering unit) to Move To (Center of SPAWN3 <gen>)

Creeps walk from checkpoint to checkpoint, until they reach the center.

If players can maze, you MUST make checkpoints unbuildable ground.

Page 90: Warcraft Editor

Creeps keep Attacking?

The pathing computer isn't always perfect, and creeps do get mildly jammed up inside a complex maze.We don't want to prevent this, but control it instead.

The first thing is the collision size of the creeps.We have experimented with many sizes, and concluded the size should be ONE.We only want creeps to attack if a player blocked them in solid.Your tower defense should detect an attack, then re-issue the movement order.Creeps won't continue moving on their own.You will probably need multiple triggers if you have multiple way points as well.

Here is an example:

Control Creeps Red Events Unit - A unit owned by Player 1 (Red) Is attacked Conditions (Owner of (Attacking unit)) Equal to Player 11 (Dark Green) ((Attacked unit) is A structure) Equal to True Actions Wait 1.00 seconds Unit - Order (Attacking unit) to Move To (Center of Point 4 <gen>)

Another reason creeps will attack is from being provoked.This includes abilities like bash, stun, and splash damage.If you really must use these abilities in your TD, you will have to develop a workaround.

Towers with Abilities

You may want some of the towers in your map to have special abilities.Here are some examples of abilities that towers can have.

Critical Strike Poison Attack Frost Attack Slow Multiple Shot Splash Damage (see notes) Bash (see notes)

Using custom abilities is a way to make towers significantly different from one another.If you have multiple themed races, you will need more abilities to make each race unique.

Page 91: Warcraft Editor

You can also add abilities like the Freezing Breath ability that Frost Wyrms have to slow and damage groups of enemies.You can also create towers with special abilities, like Shockwave and Farie Fire.

Note that if a unit becomes bashed you will often make the creep attack your tower.A solution is instead to create the stun effect on the overhead of a unit manually through a trigger when it is attacked by that tower, and pause the unit for an amount of time.This way, the unit keeps its original orders.Splash damage will also provoke creeps to attack as well.

You can create towers that use abilities like Shockwave through triggers.Make the ability's cooldown slightly less than the tower's attack cooldown.Then have a trigger event controlling the tower.Note that, this trigger should be disabled before a tower of that type is built, to prevent useless trigger events.

Example:

A unit owned by player 5 (creeps) is attackedAttacking unit is (lightning tower)Order (attacking unit) to cast (chain lightning) on (attacked unit)

Different projectiles and abilities make towers original.

Leaderboards

A leaderboard is useful for displaying the title of your map, how many lives players have left, and what level the game is on.

Page 92: Warcraft Editor

Typically, a leaderboard is created about five seconds after the map's initialization.You cannot create a leaderboard right when the map starts.You can divide players into team lives, or individually for a survival TD.If you wish to have more than just player lives, you will need to create a multiboard instead.

Please also see the 'Leaderboards' tutorial for more information on this topic.

Unit varieties

One of the easiest ways to pick which units you would like to use is to create them inside world editor.Slamming down 50-100 units and comparing them can give you a good idea of what your line up is going to be.Then shift the units around into groups or rows in which you would like them to appear.This trick is also really handy for creating your towers as well.

Each level of creeps will need their own unique hit points, defense types, and abilities.Not every level has to have special abilities, but it can spice things up a bit.

As each level progresses, creeps should be getting harder and harder.Here are few suggested ways of making creeps unique:

High defense

Adding extra defense to a set of creeps. levels 01-10: 3 def levels 11-20: 5 def levels 21-30: 7 def levels 31-40: 9 def levels 41-50: 12 def levels 51-60: 15 def levels 61-70: 18 def levels 71-80: 20 def

Bosses

Bosses should also have higher defense than normal creeps, and have much more life.

Flying

Give'em flying and create towers that attack both ground and air, or towers that do way better against air only.

Page 93: Warcraft Editor

Ethereal

Change their pathing to 0 in their unit properties menu so they can walk right through towers as if they were flying, but they aren't.

Hostile

You use triggers within the waypoints around the map as well as in the trigger that initially tells the units to start moving after they have spawned to make this group attack-to instead of move-to.

Fast

Give these guys increasingly fast speeds and at the highest levels give them the ability endurance aura too for added mayhem.

Invisible

Beware: making creeps that are invisible and NOT letting players know that there will be invisible creeps - or not easily allowing players to create towers that can detect invisible creeps - is a sure way to make players really angry at you.Invisible creeps should be reserved for TDs only if you want to make them extremely challenging.

Healers

Create a region where, if the creeps reach it,they will have their health changed to 100%.

Boss Levels

As I mentioned earlier, TDs can have "boss" levels.In my TDs, I tend to have them every 10 levels.To do this, simply have an if/then/else check should creeps make it to the final location in their route around the map.If the unit type matches one of your bosses then make the player or players lose the game - or lose a lot of lives - whichever you prefer.Boss monsters should have high defense and lots of life to compensate for the fact that there's only one of them.Boss levels make the game more challenging and they give the game a sense of urgency on some levels.Blizzard has boss type monsters in their TFT TD.

Sellable Towers

Ever TD should have sellable towers, and towers should be sellable in a user friendly way.

Page 94: Warcraft Editor

Here's a trick from Ryoko that works great for selling towers.1. Create a new ability called 'Sell Tower' based on the Windwalk ability.2. Change all the values for your new Windwalk to zero. The casting cost, durations, cooldown, every value inside the ability.3. Change the hotkey for the new ability to something unique. I like to use 'X'.4. Change all the tool tips for the new ability, and icon. I like to use the treasure chest or gold icon.5. Add the ability to all your towers.6. Finally, create a trigger that looks like this. Any time a tower uses the 'Sell Tower' ability, a trigger will sell the tower for half its value, create a nice special effect above it, and destroy it. Note that it does not have to be half the value; it can be whatever you prefer.

Sell Towers Events Unit - A unit Begins casting an ability Conditions (Ability being cast) Equal to Sell Tower Actions Player - Add ((Point-value of (Casting unit)) / 2) to (Owner of (Casting unit)) Current gold Special Effect - Create a special effect at (Position of (Casting unit)) using ... Unit - Remove (Casting unit) from the game

I like to use Abilities\Spells\Human\HolyBolt\HolyBoltSpecialArt.mdl

Terrain Design

Yes, even a TD map can benefit from having interesting terrain.Make good use of setting up a custom list of terrain variations in the advanced menu.It is quite a challenge to make a game with a strict grid-like layout look natural.But if you need an example, look no further than your AOS/DOTA/TOB type games.When you think about it, these games are all carefully measured out to make sure there is the same distance everywhere that the units are made to move.But the maps feel quite natural.There are often rivers and shallow water, shorelines, and plenty of trees.Use the "bumps" tool to change your land from flat and boring to a bit varied.And liberal use of doodads can sometimes spruce the place up a bit.

The starting and ending location for your creeps should at the very least be nicely decorated in some way.

Page 95: Warcraft Editor

Upgradeable Towers

You may have seen in some TD games towers which you can upgrade to other towers.Here I will explain how to create these types of towers.First you will need to create two or more variations of the same tower - that is, you'll need one separate unit for each tower level.Change the damage, attack speed, whatever you desire for the upgraded version of the tower.Then take a look in the properties menu at "upgrades to".Select the level 2 version of the tower.Remember to price the upgrade appropriately - and fine tune the building time.

To take things even further, give players, or allow them to build, a structure that they can upgrade if they have enough gold.Then make the upgraded unit require that structure in order to be created.This is pretty much like Warcraft III: you need a Castle before you can build certain buildings.I prefer to allow players to build if they have enough gold - but you can restrict players to be able to build after a certain level by giving players 1 lumber each at, say, level 20, and then requiring 1 lumber for the upgrade.If you do this, and in general, do not allow players to give one another lumber ;)

Reducing lag in your TD

Although some might argue, you can destroy your initialization triggers (on map initialization).You know, the ones you'll never need again 100% for sure once they execute properly the first time.

You can also remove corpses of creeps - unless you have towers that can raise the dead in which case you might want to rethink that, but for the most part, removing corpses is amazing for anti-lag purposes.Simply create a trigger that runs whenever a unit owned by the creep player dies, wait 2 seconds, and then remove the unit from the game, corpse and all.

However, the largest anti-lag issue relates to creating large numbers of units at one time, and ordering them to move.Try to limit how many creeps appear per level to 20 or so.

Page 96: Warcraft Editor

4. For Expert TD creators

Player controlled spawning

This is a relatively new concept in TDs.Players can make purchases from a building very similar to my custom spell - a devilseeds building sell code - and instead the action is to create a bunch of units and order them to move or attack to a location.In this way, players can time their attacks.The biggest downfall of using this is that you should definitely make the creeps that are spawned not controlled by the player that created them.Use a new player owned by a computer instead.Otherwise the player can stop the units and mass them up - a current large problem that I noticed in that new Gold TD map that everyone seems to be enjoying lately ;)

For that matter, don't call your maps Platinum edition, Gold edition, or any other useless name like that because nobody can tell which is the most recent version.

Also it's your choice whether you want to "protect" your map.You have to realize that protecting your map will only keep complete newbies from messing with your map and adding their own hidden cheats and messing with game balance etc.I personally do protect my maps - but in all my loading screens I say if people want the unprotected version they can email me and I give my email address.In this way I kinda protect my map from stupid people and help anyone that really wants to see how I did something at the same time.

Overall difficulty and "breakpoints"

As I alluded to earlier, it is important that your game, overall, is not insanely difficult.At least, for the majority of time that players spend in it.The final level, and to a lesser degree the approximately 9 levels before that final level, should be *quite* challenging.I mean lets face it - nobody likes a game if they can win all the time.

A "breakpoint" is my term for the point or level in the game when you start to lose unless you have specific types of towers.For example, at level 60 in my game you start to encounter invisible creeps.If you don't have the vision upgrade by this level, your towers won't hit any of those creeps making your chances of winning drop off almost entirely.Another example is an air level.Don't have any good AA towers and you can expect to lose.

Page 97: Warcraft Editor

Make sure that you put breakpoints at levels that are fair for your users.For example, don't put invisible flyers on level 5.People that have never played before aren't likely to enjoy your game if you do that.

Hybrid TD's

If you like, you can incorporate a TD into another type of game.For example, the game I am creating right now allows you to pick heroes and level them up like an RPG, gaining added revenue from their efforts.You use this revenue to build your towers and stop waves of enemies from breaching your base.To make things interesting there are two teams competing and not only can you use your hero to creep - you can use him to attack the other teams' heroes and their base - and defend your base as well.This is but one example.

Multiple objective TD's

In general, if your TD has multiple ways to win, it will be more interesting.For example, in my TD you can win by destroying the enemy base or by surviving the longest against the waves of creeps.You can also win by taking out the computer base where the creeps spawn - though this is quite difficult.

How to balance your TD

My gosh - I guess I could write an entire guide just on this topic but here are the BASICS:

+ Make sure your "breakpoints" are set up fairly.+ Test the game! Release an "alpha" version and let players test it.

Then adjust the damage etc of your towers.The goal is to make it so that players are not forced to build towers of a specific type in order to win.In other words, make sure that your players are not relying on one and only one tower.Otherwise having 50 different types of towers is redundant if players only want to use the one.

Managing Difficulty

I don't really like games that have difficulty levels that one person has to select from at the beginning.

Page 98: Warcraft Editor

I also don't like games where there is an unnecessary vote at the beginning of the game on the game difficulty.So instead, I wrote something that would *automatically* ramp up the difficulty for a player based on how good they were doing in-game.

The concept is simple really.We want to measure how *good* a player is doing.If they are doing really good we can give monsters more HP, armor, make them faster, increase the number of monsters that spawn, etc - the sky is the limit.And how we do this is up to you.Since my levels happen periodically every 60 seconds I can do a quick check at the 30 second mark to see if there are still creeps alive.Then change a variable called "numberperspawn".

This trigger is off by default but you turn it on 30 sec after the map initialization so it happens at 1min30sec, 2min30sec, etc.

event: periodic event: every 60 secondsplayer: select all units owned by player 12 (creeps) and for each picked unit do set variable: creepsalive = (creepsalive +1 ).if creepsalive is equal to 0, set variable numberperspawn = (numberperspawn + 1)if creepsalive is greater than 0, set variable numberperspawn = (originalnumberperspawn)

I can also use team lives as a good indicator.If a team has already lost half their lives before level 11 rolls around, I can scale the difficulty level down a bit.Right before level 11 rolls around I can check the variable for team lives and respond to that by changing a variable like numberperspawn, etc.

Arguably, increasing the number of creeps per spawn is not ideal as it allows players to mass more gold than you may have originally intended.A much more *balanced* way to increase difficulty is to select all the creep units and change their movement speed or health.

Be careful on boss levels to modify the script a bit.Boss levels should use a different variable or just set it to 1.You should never have negative amounts of creeps spawning.

Page 99: Warcraft Editor

Attachments and WeaponsBy SD_Ryoko

Introduction Downloading Model Using an Ability Attaching to Items Using Triggers List of Attachment Points

This tutorial also has a free demo map.Download Here

Introduction

This tutorial is about how to attach weapon models to a unit. You don't have to download a model to attach an effect to a unit. There are plenty of models and effects already provided in WC3. However, there are not many weapons and armor models. There are also different ways to add the effect to your unit.

Where can I get attachments?

There are a lot of models at these websites. www.wc3sear.ch Campaign Creations Please also see our links section.

You do not need any special tools to download and import models.

People do have a lot of problems importing models, so please read the tutorial about Importing and Using Custom Models.

Downloading a Model

The first step is to find and download a model you like. There are a lot of models on the internet with problems, so it can be difficult getting them to import correctly. Typically, the site that you downloaded the model from should have ALL information you need to import it. If they don't give you a list of files and where they should go, it might not be worth downloading. I have chosen the

Page 100: Warcraft Editor

model shown here, a nice bloody sword.

Using an Ability

Now I need to make a dummy ability to create the models effect. For this I am going to use Armor Bonus +1. Thats because this ability does not show an icon on the hero, and its very simple to change.

Give the ability a new name. Change the armor bonus to 0, so it doesn't do anything. Change the 'Art - Target' field to your new model file. Change the 'Art - Target Attachment Point 1' and add the point where you

want the weapon. Mine will say 'left' and 'hand' in two different strings, but in the same field.

Change the 'Art - Target Attachments' to the number of points you added. Mine will say '1'.

Change 'Item Ability' to false, so we can add it to a unit.

 

Your done! Now add the ability to the unit who will use the weapon. Here is my new Dreadlord, with his bloody sword.

Attaching to Items

Heres a real cool way to associate weapons with items.

Instead of a unit ability, leave the ability we made before an ITEM ability. Add the ability to the item you wish, instead of the unit.

When the unit aquires the item, the effect will automatically appear! And of course, when the unit drops the item, the effect dissapears. Of course, you can use this method for any attachment, spell effect, or import model.

Page 101: Warcraft Editor

Look through the majority of the units in your map. If most have a free left hand, attach the model to that side.

You can even use the model for the items default model, so it looks like the model when it is lying on the ground. I have found that swords do not look that great on the ground, because they are two-dimensional.

Using a Trigger

You can also just use a trigger to attach a model or special effect. Just use this trigger action.Special Effect - Create a special effect attached to the left hand of (Triggering unit) using Sword1.mdx

Page 102: Warcraft Editor

Known Attachment Points

Attachment Point Names:

overhead (floats over the unit's head, but doesn't sway with)head (sways with the unit's animation)chest (also good for wings)origin (usually at the base of a unit's feet)handfootweapon (for heroes)sprite (for buildings)medium (for buildings)large (for buildings)

Attachment Point Modifiers:leftrightmount (for mounted units)rear (for quadrupeds)first (for buildings)second (for buildings)third (for buildings)fourth (for buildings)fifth (for buildings)sixth (for buildings)rallypoint (for buildings)

A lich with demon wings attached to his 'chest'.

A sorceress with Far Seer projectiles attached to her

'left+hand' and 'right+hand'.

A dryad with an uber naga spear attached to her 'right+hand'.

Creating Custom Icons

Page 103: Warcraft Editor

By Darg

Icon Basics

All icons in Warcraft 3 are 64 x 64 pixel 24-bit pictures in TGA or BLP format.

What you Need to Make IconsTo make the icons, you should use a picture editing program that can save images in TGA format, such as Photoshop, Paint Shop Pro, or PhotoImpact. If you don't have any software that does this, you could save the image as a JPG instead and use IrfanView to convert your graphics into TGA format (http://www.irfanview.com).

Note that there is no such editor that can open or save BLP images, as this format belongs to Blizzard (BLizzard Proprietary format). Therefore you must first save in TGA format and then decide whether you want to do a TGA->BLP conversion.

You can use either TGA or BLP format.

After the editor compresses your map file, they are almost the same file size for both formats. Please note:

If using TGA format, DO NOT save alpha channels. If converting to BLP format, DO save alpha channels.

Ignoring those instructions will result in bogus icons that do not work.

File Format for Icons

There are 2 available tools that can do TGA->BLP conversions.

Warcraft 3 Image Extractor II Warcraft 3 Viewer

Each icon graphic for a unit / building consists of 2 icons, the main icon you see when normally playing the game, and the darkened icon that you see when you hit F10 to display the menu. The main icon is called the BTN icon and the darker icon is called the DISBTN icon. You do not need a DISBTN icon if you don't want to, but the BTN icon is compulsory.

Page 104: Warcraft Editor

Naming your Icons

When naming your icons, make sure you put the letters "BTN" at the start of the BTN icon filename. Put "DISBTN" at the start of the DISBTN icon filename. e.g. BTNLightning.tga , DISBTNLightning.tga

Standard buttons have a frame around them. ReplaceableTextures\CommandButtons\BTNLightning.tga

Passive buttons have no frame. ReplaceableTextures\PassiveButtons\PASBTNLightning.tga

Disabled buttons have no frame and are much darker.ReplaceableTextures\CommandButtonsDisabled\DISBTNLightning.tga

Disabled passive buttons are the same. ReplaceableTextures\CommandButtonsDisabled\DISPASBTNLightning.tga

Importing your Icons

When importing your icons into your map, use the import manager, and set the import path to:

ReplaceableTextures\CommandButtons\BTN + Lightning + .tga = BTNLightning.tgaReplaceableTextures\PassiveButtons\PASBTN + Lightning + .tga = PASBTNLightning.tgaReplaceableTextures\CommandButtonsDisabled\DISBTN + Lightning + .tga = DISBTNLightning.tgaReplaceableTextures\CommandButtonsDisabled\DISPASBTN + Lightning + .tga = DISPASBTNLightning.tga

If you don't have TFT, use WinMPQ to do exactly the same thing, import and change the path as stated above.

Viewing Icons in the Editor

If you make a directory called ReplaceableTextures\CommandButtons\ in your Warcraft 3 folder and put your icons in there, you can also instantly see the icons

Page 105: Warcraft Editor

when assigning them in the editor. Otherwise, you may only be able to see them in the game.

My Icons Don't Work

If you get a green box or a black box where your icon should be, it appears your graphic isn't properly working.

Firstly, make sure your import path is correct, typically most problems that occur are because the person has not imported the icons into the correct path.

If you decided not to use a DISBTN icon, that the green box you are seeing is NOT the DISBTN, because that is expected.

If that is not the case, make sure you have merged your icon properly onto the graphic and that there are no "floating" images in it. Consult your picture editing program help guide on how to do this.

Did you save the alpha channels right? You SHOULD NOT save alpha channels if you are using TGA icons. You SHOULD save alpha channels if you are using BLP format.

Green: Icon not found.Black: BLP with without alpha channels.Crash: TGA with saved alpha channels.

Also make sure your icons are 24-bit and not 32-bit or 16-bit. Failing that, post your icons on our community forum and we will look at them.

Page 106: Warcraft Editor

Creating Custom TilesBy SD_Ryoko

Introduction to Custom Tiles Exporting a Tile Layout of a Tile Special Large Tiles Saving our Tile Importing our Tile

Introduction to Custom Tiles

This tutorial is about creating and editing custom tiles. Before we alter a tile, you will need the Warcraft III Image Extractor II. This program allows you to save images from the Warcraft III database, and convert files from .TGA format to .BLP format. You can download the image tool from below.

We will also need a decent program to edit the tile. The most important requirement is that the program can open TGA files. I am using ULEAD Photo Impact.

Warcraft III Image Extractor II from Warcraft III Campaigns ULEAD Photo Impact from ULEAD Website

Want help using the editing tools?Some great tutorials on image editing techniques at Warcraft III Campaigns

Exporting a Tile

In this tutorial we are going to modify the 'Dalaran White Marble tile'. First, we have to open the warcraft database and save it to a new file. Some tiles are found inside war3.mpq, and the newer ones inside war3x.mpq. Both files are in the Warcraft III Directory.

The image extracting tool has a nice tree showing the different images inside the database. The Dalaran White Marble tile will be listed under TerrainArt, inside war3.mpq.

After we find the tile we want to edit, right click on the tile and click SAVE. I prefer to keep the original file name when I save an image. We need to save it in TGA format so we can edit it ourselves.

Page 107: Warcraft Editor

 Saving our image with the extractor tool.

Layout of a Tile

First I will open the tile in Photo Impact. This will be the TGA format file I saved earlier. When I open the file, I can see there are already selected areas on the tile. Any area NOT selected on the image will NOT show up in the game. If we want to preserve those selected areas, we will need to save the selection. Photo Impact allows me to store the existing selection under theselection menu.

Page 108: Warcraft Editor

Areas not already selected on the tile won't show in the game.

Save the selection for later to preserve those areas.

Dotted lines represent existing selection. Use 'Selection -> Store' when using

ULEAD.

Now we can edit the tile without worrying about restoring its original condition. You'll see I have created a brown brick in the example picture. You can use anything you like for a tile. But I recommend you start with a texture that repeats, like mine. If your texture doesn't repeat, its going to look REAL bad inside the game.

Did you know? You can make any image a repeating image, by mirroring it in both directions!

So the next important part is, how does a tile work? Each tile is made of 16 squares. By default, they are 64x64 pixels in size. Each 'square' has a different function inside the tile. I have labeled each one, and what it does.

Page 109: Warcraft Editor

Standard Tile LayoutA. Basic repeating tile.B. Straight edge tiles.C. Outer corner tiles, and part of diagonal edges.D. Inner corner tiles, and part of diagonal edges.E. Single width of tile when placed diagonally.F. Alternate tile. Appears randomly in big patches.

Standard tiles are found in 'TerrainArt', inside the database.

Cliff Tile LayoutA. Random sides of the cliffB. Straight edge tiles, top of cliffC. Straight edge tiles, bottom of cliffD. Corner tiles, editor chooses one randomly.E. Corner tiles, bottom of cliffF. Appear on bridges and elevators.

Cliff tiles are found in 'ReplaceableTexures\Cliff', inside the database.

Cliff tiles import differently than standard tiles!There are two kinds of cliff. But there are many names for cliff inside the image extractor! This is only because you can't have more than one of the same filename. Use the paths below for replacing a cliff.

Replacing a cliff tile replaces the default cliff tile, so no matter WHAT tileset you use in THAT map, the cliff will be replaced.

Type Name Import Path

Jagged Cliff Cliff0 ReplaceableTextures\Cliff\Cliff0.blp

Straight Cliff Cliff1 ReplaceableTextures\Cliff\Cliff1.blp

Page 110: Warcraft Editor

Special Large Tiles

These are larger versions of a tile. They are most common for grass textures, like Fellwood. They have an additional 16 tiles that appear randomly in large areas. The example below is from the Icecrown Glacier tileset. Note the 16 extra tiles. You can see in the editor how these work. For grass, they are often rugged spots, rocks or dirt patches in the terrain.

 Example of a Large Tile.

Saving our Tile

Before we save our tile, we have to remember to restore our original selection. This preserves the original area that will be shown in the game. To do that really easily, we can load the original selection under the Selection menu, by clicking on Load Selection. You can also change the selection if you want, and change what the game will display.

Save your tile as a new file in TGA format. Its always a good idea to keep the original file, in case you made a mistake.

Load the original selection to preserve displayed areas. If an area on the tile is not selected, its invisible. Save your tile in TGA format.

Importing our Tile

Before we import the tile into your map, we need to convert it back to a BLP format. Open the Warcraft III Image Extractor, and open your new image. Then click SAVE, and save your new tile as a .BLP file. The image tool will prompt you for the image quality. Reducing the quality may save some file space in your

Page 111: Warcraft Editor

map, but you can leave it at 100 percent. I usually use 70-75 without losing too much detail.

Inside World Editor, load the Import Manager under the Module menu. Click on File, Import and open the BLP file that you just saved. Now you need to change the custom path. Double click the item inside the import manager, and check the box that saysUse Custom Path. Change the path to the EXACT path of the tile you want to replace. Of course, you can change ANY tile you like of the same size. For our project, it will be TerrainArt\Dalaran\Dalaran_WhiteMarble.blp

Open your tile and save it in BLP format. Import your tile into World Editor. Change the custom path to the exact tile you want to replace. Your tile is good for ANY tile the same size. But mine will be Dalaran White Marble.

Completed Work

After importing the tile, I restarted my editor so the tile will show. Heres what it looks like inside the editor.

An example of my new tile.

Page 112: Warcraft Editor

Creating and Editing SkinsBy SD_Ryoko

Introduction to Skinning Exporting a Skin Editing our Skin Saving our Skin Importing our Skin

Introduction to SkinningThis tutorial is about creating and editing skins. Before we start on creating a new skin, you will need the Warcraft III Image Extractor II. This program allows you to save skins from the Warcraft III database, and convert files from .TGA format to .BLP format. You can download the graphic image tool from below.

We will also need a decent program to edit the skin. The most important requirement is that the program can open TGA files. I am using ULEAD Photo Impact.

Warcraft III Image Extractor II from Warcraft III Campaigns ULEAD Photo Impact from ULEAD Website

Want help using the artists tools?Some great tutorials on skin art techniques at Warcrat III Campaigns

Exporting a SkinIn this tutorial we are going to modify the sorceress skin. Since I have The Frozen Throne expansion, I am going to open up the file 'war3x.mpq' into Image Extractor. Then I am going to locate the sorceress skin and save it to a new file. Older skins are inside the 'war3.mpq' file, and newer skins are inside 'war3x.mpq'.

The image extracting tool has a nice tree showing the different skins inside the database - the sorceress skin will be listed under 'Units\Human\Sorceress', and will be called 'BloodElfSorceress.blp'.

After we find the skin we want to edit, right click on the skin and click SAVE. I prefer to keep the original file name when I save a graphic image. We need to save it in TGA format so we can edit it ourselves.

Page 113: Warcraft Editor

 

Saving our graphic image with the extrator tool.

Editing our SkinFirst I will open the skin in Photo Impact. This will be the TGA format file I saved earlier. When I open the file, I can see there are already selected areas on the skin. Any area NOT selected on the skin will show up in the game as the players color. If we want to preserve those colored areas, we will need to save the selection. Photo Impact allows me to store the existing selection under the selection menu.

Areas not already selected on the skin are player colors. Save the selection for later to preserve those colors.

Page 114: Warcraft Editor

 Dotted lines represent existing selection.

I want to change the color of her dress and change the symbol on her skirt. So first we have to clear the current selection, and select the colored areas we want to change. Because we want to select multiple areas and change them the same, I will change the selection mode to addition. This way, we can keep adding to the selection until we have all the colored areas selected. The easiest way to do this is using the lasso tool. Not only can you hold the mouse button down and trace the different shapes, you can create short lines as well.

It is easy to change the colors of the skin and still retain the original shading. Once we have all our areas selected, we will use the Hue and Saturation menu to adjust the dress. This tool easily replaces existing colors, and can be adjusted to find the color that best suits our application. I have chosen a deep blue color for her dress.

Hue and Saturation easily adjusts colors. Select multiple areas at once to adjust evenly.

Page 115: Warcraft Editor

 

Hue and saturation tool adjusts existing colors.

Saving our SkinWhen we are done editing the skin, we should have an graphic image that looks like the one below. I have used the Hue and Saturation tool to change the color of her hair, and I have added my own design to her dress. I copied it from another file and pasted it into the new skin, from the Orc Voodoo ability.

Before we save it, we have to remember to restore our original selection. This preserves the original player colors. To do that really easily, we can load the original selection under the Selection menu, by clicking on Load Selection. You can also change the selection if you want to change where the player colors show.

Page 116: Warcraft Editor

On my skin, I do not wish to have any player colors at all, so I will select the whole image. Also, if there is no selection there, and there is no player color there defined in the model, it will appear invisible. The player color areas are defined by the model, complimented by the skin. You can use this to cut areas out, like horns.

Save your skin as a new file in TGA format. Its always a good idea to keep the original file, in case you made a mistake.

Load the original selection to preserve player colors. Selecting the whole graphic image will eliminate player colors. If no selection or player colors in an area, its invisible in game. Save your skin in TGA format.

Page 117: Warcraft Editor

 Our new skin with the original selection.

Importing our SkinBefore we import the skin into your map, we need to convert it back to a BLP format. Open the Warcraft III Image Extractor, and open your new graphic image. Then click SAVE, and save your new skin as a .BLP file. The image tool will prompt you for the graphic image quality. Reducing the quality may save some file space in your map, but you can leave it at 100 percent. I usually use 70-75 without losing too much detail.

Inside World Editor, load the Import Manager under the Module menu. Click on File, Import and open the BLP file that you just saved. Now you need to change the custom path. Double click the item inside the import manager, and check the box that saysUse Custom Path. Change the path to the EXACT path the original skin was in. For our project, it will be Units\Human\Sorceress\BloodElfSorceress.blp

Open your skin and save it in BLP format. Import your skin into World Editor. Change the custom path to the exact original.

Page 118: Warcraft Editor

 Our new sorceress, looking beautifull.

This is a great skin, and you may download it here.BloodElfSorceress.zip

Page 119: Warcraft Editor

Custom Fade FiltersBy SD_Ryoko

Needed Tools Resizing your Image Converting your Image Importing the Files Creating the Trigger

Needed Tools

This tutorial is about creating a custom fade filter. It will also be easier to do this with Warcaft III The Frozen Throne v1.17.

Before we make our screen, you will need the Warcraft III Image Extractor II. This program allows you to convert files from .TGA format to .BLP format. You can download the image tool from below.

You will need a decent photo-editing program to create your screen. The most important requirement is that the program can open TGA files. I am using ULEAD Photo Impact. You will also need your fade filter image. You will start with an image that is 800x450, because this is the viewable area inside Warcraft III. I have chosen an image from the hot new movie, Aliens Vs Predator.

Warcraft III The Frozen Throne v1.17 or higher Warcraft III Image Extractor II from Warcraft III Campaigns ULEAD Photo Impact from ULEAD Website A starting image that is 800x450 in size

I have selected an 800x450 image.

Page 120: Warcraft Editor

Resizing your Image

Now we need to resize our image, and make it 512x512 square. This is going to squish the image, and it will look a little strange. The game is going to stretch your image to the size of the screen, so it will look okay inside the game. We are going to make the image square because Textures are stored as quadratic surfaces with dimensions that are powers of 2 in video memory, so this is the most efficient size. The image is not going to lose much quality either.

NOTE: When you save your image, you must have all of the image selected inside the editing program. Select all, then save it that way. Anything not selected will not appear when using the fade filter.

Shrink the image, unproportionately, to 512x512.

Converting your Image

When we are done editing the filter image, but before we import the file into your map, we need to convert it to a BLP format. Open the Warcraft III Image Extractor, and open your new image. Then click SAVE, and save your new skin as a .BLP file. The image tool will prompt you for the image quality. Reducing the quality may save some file space in your map, but you can leave it at 100

Page 121: Warcraft Editor

percent. I usually use 70-75 without losing too much detail. See the difference in file size below.

A 512 image saved at 100% is 591 kb. A 512 image saved at 75% is 148 kb.

Convert your image to BLP format.

Importing your Files

Inside World Editor, load the Import Manager under the Module menu. Click on File, Import and open the BLP file that you just saved. The custom path is not important, but I am going to change it to keep it simple. Double click the item inside the import manager, and check the box that says Use Custom Path. Now you can rename your fade filter if you desire.

Page 122: Warcraft Editor

Importing your files into World Editor.

Creating the Trigger

Now, to use your new fade filter, just create a trigger that uses the 'Cinematic - Fade Filter' action. Click on the texture name, and change it to your imported file. The color values must all be 100% to see your image. If they are left at zero, then it will only fade to black.

Note: If you do not have version 1.17, you can convert the trigger to custom text, and change the filter filename to your imported file.

Importing your files into World Editor.

Page 123: Warcraft Editor

You're finished! This is what my fade filter looks like inside the map. Because of the way I did my trigger, It will fade solid and back over 10 seconds.

Importing your files into World Editor.

Page 124: Warcraft Editor

Importing ModelsSD_Ryoko

Introduction Downloading a Model Importing your Model Viewing in World Editor Common Problems

Introduction to Models

New custom models can be imported into Warcraft for units, doodads, effects and any other kind of spell or ability. You do not need any special tools to download and import models. People do have a lot of problems importing models, so I have added a trouble shooting section below. Hopefully, walking through this tutorial will assist you.

Downloading a Model

The first step is to find and download a model you like. There are a lot of models on the internet with problems, so it can be difficult getting them to import correctly. Typically, the site that you downloaded the model from should have ALL information you need to import it. If they don't give you a list of files and where they should go, it might not be worth downloading. I have chosen the model shown below, an Ice Infernal.

Model File

IceInfernal.mdx

Portrait File

IceInfernal_portrait.mdx

Skin 1

units\IceInfernal\IceInfernal.blp

The website I downloaded it from shows me that it needs three files. The first is the model file. The main 3D file for the unit. The second, is a portrait file. Models that do not have portrait files will not show speech at the bottom of the screen. I am fortunate this model is not only cool, but very complete.

Lastly, there is one skin file. Models can sometimes have many skin files. Skins

Page 125: Warcraft Editor

are the textures that wrap around models. Every skin file needs to have a path in front of it. If it does not have a path, assume it will have NO path inside the import manager. Mine is showing that the full skin path needs to be units\IceInfernal\IceInfernal.blp. If I don't import that correctly, it WILL NOT work.

The main model file is the acutal 3D model of the unit, doodad, or effect. If a model has no portrait file, it will not show speech at the bottom of the

screen. You must know where to put all the skins for the model.

Importing your Model

Most models come in a zip file that you will need to unzip. Now a days, windows XP will unzip it for you. I am going to unzip all my files into a folder, so they stay organized.

Now we need to load the import manager inside World Editor. Click on File, Import and import all the files that came inside the zip file. If you put them in a seperate directory, you can import the entire directory easily.

For each file, you must double click them in the Import Manager, and change the custom path. Model files do not need to be in any type of path, so I will delete the 'war3mapImported' before the file name. For skins, we need to change the custom path to exactly what was listed on the website. In most cases, the names are case sensitive. Again, if the custom path of the skin is not correct, it WILL NOT work.

Page 126: Warcraft Editor

Importing your model into World Editor.

I am finished importing all of my files, so now I can assign my new model to a unit. For all practical purposes, I will start by creating a custom unit from the standard Infernal. Load the object editor and create a unit you would like to use with your model. You don't have to change much here. Scroll down to the field that says Art - Model File and double click it. Check the radio button that says Imported and select your model file.

Page 127: Warcraft Editor

Changing a unit to use your new model.

Now you can select the unit, place one in your map, and test it. If it does not work, you did something wrong. Either the skin is missing, corrupt or in the wrong path. If that happens, see the problems I have written out below. When I test my map, my new Infernal looks like this. Way cool.

Ice Infernal inside the game.

Viewing in World Editor

People often wonder, why their model does not appear inside World Editor (Darg taught me this one a while back). If you copy all of your model files into the Warcraft root directory, you can view your model inside World Editor. In this example, I would copy the three files to D:\Warcraft III. After copying over your files, you will probobly need to restart the World Editor to see the changes.

Common Problems

My model is invisble inside the game

Page 128: Warcraft Editor

This means one or more of your skins is not found. If the game cannot find the skins, your model will be invisible. Check your skin path names, and make sure all the skins you need were imported.

My model is visible, but it has color and no skin

This means that the skin has been altered, edited, or incorrectly created. It has lost its player color selections. The selection determines what areas will show a players' color. See Editing Skins for more information.

Some areas appear correct, but others have a color and no skin

Again, in this case, one of your skins is missing or has lost its player color selections. Check your paths and check that you have all the skins you need. If thats true, then one of the skins is corrupt.

You don't know the path name for all the skins.

Websites that supply the models should list ALL of the pathnames for the models' skins. If it does not, often times they will post the paths later, in case they forgot. Sometimes, there is a readme.txt file in the zip package, that tells you where the skins should go. If not the above, your pretty much out of luck without knowing where they go. You can open the model file with a hex editor and see where the skins are placed, but if you don't know how to do that, I do not reccomend it.

Why don't buffs and effects work on my models?

A lot of models are cheaply made, and were created with no attachment points. Some times, they have no ORIGIN point, so special effects will not work on them. Bummer, eh?

When my model dies, it just stands there, and never goes away

This means the model was made WITHOUT a death animation. Again, not everyone takes time when creating custom models. In this case, you will need a trigger to remove them from the game when they die.

My model has no hero glow

The model was created without hero glow. Hero glow is an integral part of the original models. There are 'Glow Packs' you can download and apply to your unit instead. Provided, they have an origin point.

Page 129: Warcraft Editor

Custom Loading ScreensBy SD_Ryoko

Needed Tools Resizing your Image Converting your Image Importing the Files

Needed Tools

This tutorial is about creating a custom loading screen. You will need Warcaft III The Frozen Throne to do this.

Before we make our screen, you will need the Warcraft III Image Extractor II. This program allows you to convert files from .TGA format to .BLP format. You can download the image tool from below. You also need to download the custom loading screen model.

You will need a decent photo-editing program to create your screen. The most important requirement is that the program can open TGA files. I am using ULEAD Photo Impact. You will also need your loading screen image. Your loading screen should be either 1024x768, or 800x600. I have selected the image below that I downloaded from an artwork site.

Warcraft III Image Extractor II from Warcraft III Campaigns ULEAD Photo Impact from ULEAD Website Custom loading screen file called LoadingScreen.mdx An image that is either 1024x768 or 800x600 in size

Page 130: Warcraft Editor

I have selected an 800x600 image.

Resizing your Image

Now we need to resize our image, and make it 512x512 square. This is going to squish the image, and it will look a little strange. The game is going to stretch your image to the size of the screen, so it will look okay when the game loads. We are going to make the image square because Textures are stored as quadratic surfaces with dimensions that are powers of 2 in video memory, so this is the most efficient size. The image is not going to lose much quality either.

Page 131: Warcraft Editor

Shrink the image, unproportionately, to 512x512.

Converting your Image

When we are done editing the screen, but before we import the skin into your map, we need to convert it to a BLP format. Open the Warcraft III Image Extractor, and open your new image. Then click SAVE, and save your new skin as a .BLP file. The image tool will prompt you for the image quality. Reducing the quality may save some file space in your map, but you can leave it at 100 percent. I usually use 70-75 without losing too much detail. See the difference in file size below.

A 512 image saved at 100% is 591 kb. A 512 image saved at 75% is 148 kb.

Page 132: Warcraft Editor

Convert your image to BLP format.

Importing your Files

Inside World Editor, load the Import Manager under the Module menu. Click on File, Import and open the BLP file that you just saved. Now you need to change the custom path. Double click the item inside the import manager, and check the box that saysUse Custom Path. Change the path to "FullScreen.blp" with nothing before it and proper case.

Now import the loading screen file. This model file is a new loading screen which is only one texture. Other loading screens have four corners, and require four images. This screen makes it much easier to use. Once you import it, double click it and check Use Custom Path. Change the model files path to just "LoadingScreen.mdx" with nothing before it either.

Page 133: Warcraft Editor

Importing your files into World Editor.

Lastly, inside the World Editor, click on Scenario, Map Loading Screen. Check the button that says Use Imported File, and select LoadingScreen.mdx. You can still use custom loading screen text on your map as well. You're done! This is what mine looks like when I test my map.

My finished loading screen.

Page 134: Warcraft Editor

Minimap Images for the Game Setup ScreensBy Darg

Needed Tools Creating the Image Importing the Image File

Needed Tools

This tutorial is about creating a minimap image in the game setup screen. You will need Warcaft III The Frozen Throne to do this. The only tool required to complete this task is a photo-editing program that can create and save images as TGA files. I am using ULEAD Photo Impact.

ULEAD Photo Impact from ULEAD Website

Creating the Image

The image you create must be of TGA format and either 128x128 or 256x256 pixels in size. 128x128 is highly recommended as this will minimize the overall filesize of your map. What you put in the image is completely up to you, this is very much a creative process. For the purpose of this tutorial, I have created an image using the Warcraft 3 Frozen Throne logo, as seen below.

Image I am using for my minimap.

Importing the Image File

Inside World Editor, load the Import Manager under the Module menu. Click on File, Import and open the TGA file that you have created. Now you need to change the custom path. Double click the item inside the import manager, and check the box that says Use Custom Path. Change the path to "war3mapPreview.tga" with nothing before it and proper case.

You're done! This is what mine looks like when I test my map.

Page 135: Warcraft Editor

Finished minimap image.

Page 136: Warcraft Editor

Protecting a MapBy SD_Ryoko

About map protectors Pros and cons about map protection Types of map protection Available protectors

About map protectors

The general idea of a map protector is to damage a map file so it can no longer be loaded into World Editor. World Editor uses a lot of files and headers that Warcraft III does not, so you can safely delete them and still play the map. On another note, the necessary information for Warcraft III will always be there, and can be accessed by people who are knowledgeable about map protectors. Still though, a map protector will render your map useless to the average person.

Pros and Cons about map protection

PRO: Protecting a map keeps people online from making changes in their favor and re-releasing the map. Some people have been known to open maps and seriously rig the game in their favor. Often times, its been a hero with some insane skill.

PRO: Protecting a map keeps people from editing your map, and claiming it as their own. Currently on battlenet, there many mauls and DOTA maps that all look the same with different authors. Protecting a map will help against that.

PRO: Many of the map protectors available make the overall file size smaller. This is good for battlenet downloads, or hosting a map on one of the download sites.

CON: No matter how well you protect a map, there are people who can open it. The bottom line is, if Warcraft can read the map, anyone can if they know how. As there are map protectors available for download, so are scripts for unprotecting them. Even if you delete the GUI (graphical user interface) triggers from a map, the JASS format triggers are still there.

CON: Other people cannot learn from your map, thus hindering map development.

CON: People sometimes lose their original map, or save over it with the protected map.

Page 137: Warcraft Editor

Types of map protection

Corrupting the header of the maps database. Deleting the GUI triggers from a map. Deleting the camera, sounds and region data for World Editor from a map. Hiding the maps script file inside the database.

Available Protectors

WC3 Map Optimizer

Created and updated by Vexorian. Download it from the thread in the forum in this link.