How to create your own Campaign!

Tutorial By Exide

Hello, everyone!

I have decided to write a thorough Tutorial on how to create your own Campaign.

What's a campaign, you might wonder?
-A campaign is a series of maps linked together, which follows the same story and (usually) has the same character through all the maps.

What do I need?
-Well, before you start linking your maps together it's a good thing to have at least two maps done already. (Or at least have the terrain done on each map.)
In this tutorial, I am assuming that you have at least two maps!

How do I play my custom-made Campaign?
*First off you need to put it in the correct folder, which is the Campaign folder in your Warcraft3 map. A common path for this would be: C:\Program Files\WarcraftIII\Campaign.
When the map is in the correct folder, Warcraft will be able to located it properly.
*Secondly, start up the game and choose 'Single Player', then choose 'Custom Campaign' and finally choose the name of your campaign, to start!

In this Tutorial, I will show you how to create a very simple way of creating your One-Hero-Campaign. -Much similar to the one made by Blizzard, about the Beastmaster.
Are you ready to start? Great! Let's go.

-The basic settings
Start the World Editor (no need to load any map) and open your 'Campaign Editor' (hotkey: F7).

In the first tab (General) You have 4 rather obvious fields to your left: Name, Difficulty, Author and Description.
Name - The Name of the Campaign
Difficulty - The difficulty level of your Campaign
Author - Your name, to "prevent map stealing"
Description - This is the description of the map. It will be displayed in Warcraft3 when you select the campaign from the Custom Campaign Menu.

Below these fields you have: 'Options:', in Options we can set the following:
Use Variable Difficuly Level - Enabling this will give you the option in the Custom Campaign Menu in Warcraft to choose what Difficulty you want to be playing. (Easy, Normal and Hard.)
Image - What Image your Campaign will be displaying in the Custom Campaign Menu.
*None - Obvious, no image.
*Preset - These are Blizzard made images for their campaigns; Human, Orc, Undead, Night Elf and Orc Campaign.
*Use Minimap From - This option allows you to pick a minimap as the display picture, from one of the maps that you have assigned to your Campaign (I will tell you more about this later).
*Imported File - This will let you use a custom-made picture. (Really cool.)
-> More info on this can be found here <-

The last, but definitely not the least, field in this Tab is the 'Map Files:' field.
This field handles all the maps that are connected by your Campaign. Right-click on the Campaign-Name in this field (same Name as on your left) and choose 'Add map' then browse for your first map, and repeat for your second map.
Your General Tab should look similar to this:

Note: When you have added maps in this field, you will be able to choose their minimaps as Display Picture for your Campaign, as mentioned earlier.

Wasn't that hard, was it?

Quickly moving on to the next Tab!

Loading Screen:
In this tab we will define the loading screen of the Campaign.

First field, the largest one in the middle of the Tab: 'Campaign Screen Buttons'.
Right-click on this field and choose 'Add Button'.
You will now be prompted to fill in some fields:
Chapter - The name of the Chapter, I prefer naming the first map: 'Chapter One', second: 'Chapter Two', third: 'Chapter three', and so on.
Title - This is the title of the button (see picture below), name it something "cool" like: 'A day in the Army', or whatever you prefer.
File Loaded - This value decides what map you wish to load, when you press this button.
Visible - If you check this box, you will be able to start from this map. (I choose to check this box, only for the first map. - So that no one may skip the first level.)



Further in this tab (below) we have the Background Screen settings:
None - Obvious, and not-attractive.
Game Screen - This is the option I prefer to use. Here are Blizzard-made game screens, lots of them!
Imported File - If you are skilled enough to create your own picture, use this option.
-> More info here. <-

Cursor - What cursor you wish to use. Obvious.

Ambient Sound -
None - I won't bother explaining these anymore.
Game Sound - Blizzard-made. I prefer this option.
Imported File - Same as always..

Custom Fog Effects - I have no idea what this does. My wild guess is that fog will appear and look "cool" across the loading screen, when you choose if you want to start the Campaign or not. You can change color and other advanced settings for this. -Over my head.


Next two Tabs are rather obvious, but just as crucial for your Campaign as the first two Tabs.

Custom Data
This Tab works in a similar way as the Object Editor. (You can copy objects from the Object Editor into this Tab to save time.) In this Tab you must add all the objects that will be transfered across your maps. -Items, abilities and your Hero are such objects!
Easy enough.

Imported Files
Works in a similar way as the Import Manager and Custom Data combined. -I won't bother explaining this in this Tutorial.
Just remember, if you import something to one map that you want to use in the other maps, use this tab! (The Hero's model is an example of such a file.)

There we go, we've got the basics covered!
We're swiftly moving on to the advanced stuff. -Fortunately it won't get much more difficult.

- Save your campaign file. -
Return to the General-Tab and right-click on the maps you added earlier. Now choose 'Edit map' -The map will now be loaded in your World Editor.
Further, you can actually DELETE the MapName.w3x file, if you WANT to!
-Because the map has been added to your campaign file, and you can edit it this way. You can also use the 'Save Map As' to "get it back", if you wish.
I think all this is really cool!

Now. You will need some triggers to move your Hero across the maps.
- I am assuming that you have the terrain all done, as well as your hero, his abilities, etc.. -

So what triggers do we need?
First of all, we need to save our Hero somehow. (Check my Example map, attached below, for more clear triggers.)
I am lazy, so I choose to save the map on Player Chat -Events. I assume you understand that the event can be changed to, for example: <A unit Enters *Next_Map_Region*>


The first action: Create a game chache from.. will create a file containing info that you later can store in, or restore from. The name can be anything -as long as it is the same in _ALL your maps_, and ends with '.w3v'!
I call my Game Cache in the example map 'FallenMonk.w3v', because that is the name of the Campaign. (WIP, please don't steal.)

Second action: Store <unit> as as <name1> of <name2> in.. the unit is a variable I named 'Hero' (obvious). Name1 and Name2 is the same as above, it can be anything as long as it is the _SAME in ALL maps_!

Third action: Store <Integer> as <name1> of <name2> in.. Integer in this case is the Level of my Hero. -It can also be 'Level of Ability for Hero', or 'Amount of Gold/Lumber for <Player>'. You know Name1 and 2 by now..

The last thing we need is: Game Cache - Save.. Just put this in the end of the trigger to save everything to your Game Cache.

The next trigger, you can run it from the first one if you wish I choose to use the Player Chat Event on this one as well:


There are only two actions needed, but they are quite crucial!

First action: Game - Set the next level to.. This action decides what map is going to be the next one! Needs: 'MapName.w3x' to work.

Second action: Victory.. Choose the player that is moving on, perhaps (Owner of (Triggering Unit)), -all depending on the event, obviously! Also, I prefer to _SKIP_ Dialogs and scores - this way the next map will start loading immidiately.

[SPOILER]Here's an alternative action of saving your map, that you can use:


Notice how this action takes two actions and puts them into one.
It first saves the info as CacheName.w3z, and then changes the level to MapName.w3x.
(Why it turned out to be .w3z by default, I don't know. -Maybe .w3z = Frozen Throne -only action. When .w3v is the original (RoC). Just make sure that they're the same when saving and loading!)[/SPOILER]

- Save your Map (ctrl+s) -
Now, you can actually close the map (ctrl+w), and open the Campaign Editor (F7).
Then choose your next map, right-click and choose 'edit map'.

So what triggers do we need to succesfully load our brave hero?
Well.. the following:


-Obvious, runs a trigger.


First action: Create a game cache from.. Here you must use the same name as in the first map!
Then the "real" trigger begins..


First action: Restore <<name1>> of <<name2>> from.. -Just like when you saved it, but now you are loading. -Make sure all names are the same as in the first map!

Second action: unit-variable, gotta have them!

Third action: Obvious..

Fourth action: Also quite obvious. Only thing that should be noticed is the 'Load Hero_Level of Map1 from (Last created game cache)' -two names, must be identical, as always!
This can also be done with level of abilities for your hero.

Fifth action: Obvious..

Guess what?
-Your campaign has got it's "system" all set now!
Wasn't too hard, was it?
The hard part will be to add all the 'level of abilities for Hero', etc. But I'm sure you will be able to figure it out.

-Advanced Settings

First of all, I'm going to explain a little about Game Cache, from what I've learned by experimenting.

Game Cache is saved as a file on your computer. More precisely it is saved in your Profile Folder. The Profile Folder is located in: 'Warcraft III\save'.
If you have several Profiles, they are named 'Profile1', 'Profile2', 'Profile3', and so on..
I believe the Warcraft3 Main campaign progress is also saved in the Profile. Meaning, if you remove the profile, the Main Campaign progress will be removed as well.

Now you might be wondering why I'm telling you this?
Well, because Game Cache isn't automatically deleted. Which is both good and bad. To give an example:
The first map of your Campaign contains a Cinematic. You want the Hero to be able to return the the first map whenever he wishes. When the map is loaded, the Cinematic will play again. If you store a value in the Game Cache, you can prevent the Cinematic from playing more than one time, if you wish.
However, if you then exit the game, make a small change to the map, and start it up again. The Cache will now remember that you already saw the cinematic, and will skip it.
However. I believe that if you save the game and wish to continue tomorrow on the campaign, and the cache is still there. You won't be treated as if you just started the campaign, the next day when you load your old game.
So it's both good and bad.

Now, when creating the campaign, you will probably be deleting the game cache in order to test the triggers properly. So that's why I'm telling you this, and I will show you two ways of doing it!

First is to delete it from outside the game, by going to the Profile Folder in the Warcraft3 folder. (The default path is, I believe; 'C:\Program Files\Warcraft III\save') -Here you can remove the *.w3v files, where * is the name of the Game Cache. (That you set, using triggers.)

Second way is to do it from inside Warcraft3. However, this will remove the complete Profile. I recommend you create a new Profile from playtesting your Campaigns. The best way for me to show how to do this is by showing you a screenshot. It's very simple, really..


As you can see. You can have several Profiles, and choose what Profile you wish to be playing with. You can also delete old profiles and create new, as you wish. -Easy enough!

I have attached a better Example map of how a, slightly more advanced, Campaign can be triggered.

I hope this was helpful!
Also, bear in mind that I wrote this at 1 AM my time, so if you find any mistakes, I'll fix them when my head is straight!

Thank you. :)

Click here to comment on this tutorial.
Blizzard Entertainment, Inc.
Silkroad Online Forums
Team Griffonrawl Trains Muay Thai and MMA fighters in Ohio.
Apex Steel Pipe - Buys and sells Steel Pipe.