Mission Groups
All mission settings are organized under main groups according to their type. These groups always appear in the same order in official missions. (it is uncertain if the ordering matters)
Not all the of the groups are vital for the mission to work. The [CPUTeam#], [Event####], and [Sequence####] may have multiple instances in the file, and the group seems to be ignored if the number is zero so make sure it's positive.
Typos and many other errors appear to be silently ignored, which isn't great for manual debugging.
1. The [Mission] Group
Type
|
Parameter String
|
Description
|
int |
MissionNumber= |
Corresponds to the 0-indexed mission number; probably unused in game (untested).
|
int |
WinningCondition= |
What you need to do in order to win the mission. 0: Kill all AI teams. 1: Destroy a vital crate or team. 2: Survive until mission ends. 3: Mission must be terminated (using event or sequence).
|
int |
WinningWeapon= |
Unknown, unused?
|
2. The [Description] Group
Type
|
Parameter String
|
Description
|
int |
Name= |
Index of at the very least the mission name, and very possibly the position, description, and map file too. More experimentation required.
|
int |
Difficulty= |
Not used. Apparently the difficulty rating for the mission?
|
3. The [Options] Group
Type
|
Parameter String
|
Description
|
int |
FallDamage= |
Sets the Fall Damage.
|
bool |
DisplayRoundTime= |
Boolean. 1 to display the round time.
|
bool |
EnableActionReplay= |
Boolean. 1 to show action replays.
|
int |
LandRetreatTime= |
The retreat time in seconds for weapons fired from land.
|
int |
RopeRetreatTime= |
The retreat time in seconds for weapons fired from a rope.
|
int |
RoundTime= |
Round time. If the value is positive, it represents time in minutes; negative values represent time in seconds.
|
int |
TurnTime= |
Turn time. Appears to be formatted like the one in the scheme file, ie signed with negative representing infinite, as it won't let me enter a value greater than 126 in the WWP mission editor.
|
int |
MineFuse= |
Mine fuse in seconds, -1 is random.
|
int |
ObjectType= |
Always 0 in default mission files, as they place their objects manually. I don't think this option actually works, but it has not been thoroughly tested.
|
int |
WeaponCrateDrops= |
Weapon crate drop probability. Seems to work the same as in scheme files - see Crate probability
|
int |
HealthCrateDrops= |
Ditto, for health crates.
|
int |
UtilityCrateDrops= |
Ditto, for utility crates.
|
int |
HealthCrateEnergy= |
Energy obtained from health crates.
|
bool |
EnableSecretWeapons= |
1 if super weapons are available from crates; 0 if not.
|
int |
SuddenDeathWaterRise= |
Water rise rate in pixels.
|
int |
SuddenDeathWormDamage= |
Worm damage in sudden death per turn. Positive values are absolute health values. -1 is all but one. Either 0 is "none", WWP mission editor seems to have a bug in this respect where it will set none to 1, more testing required.
|
int |
SuddenDeathType= |
0 = end round. 1 = nuke. 2 and 3 = no nuke - water rise and worm damage honoured in both cases. More testing required.
|
int |
PauseBetweenTurns= |
Hotseat time in seconds.
|
int |
GirderRadius= |
Girder placement radius in pixels.
|
bool |
WormSelect= |
0 = worms in order, 1 = user worm select.
|
int |
JetPackTimeLimit= |
The amount of fuel in the jetpack. 0 = infinite?
|
bool |
WeaponsDontEndTurn= |
1 if weapons don't end your turn, 0 otherwise.
|
bool |
PauseTimerWhileFiring= |
1 if timer is paused during firing, 0 otherwise.
|
bool |
TurnEndFinishesGame= |
1 if ending your turn finishes the mission.
|
bool |
LossOfControlDoesntEndTurn= |
1 if losing control doesn't cause the turn to end, 0 otherwise.
|
bool |
Score= |
1 if score displayed ingame; 0 otherwise.
|
bool |
Sheep= |
Enables the "All crates contain sheep" cheat. When exploded, crates will throw out a sheep regardless of the crate contents.
|
4. The [Enviroment] Group
Type
|
Parameter String
|
Description
|
string |
LandFile= |
Seems to always be data\land.dat
|
int |
Wind= |
Maximum wind out of 100. If -1, fixed wind is enabled.
|
int |
FixedWind= |
If Wind = -1, this is a value between -100 and 100 representing the fixed wind, with -100 being full left and 100 being full right.
|
int |
Friction= |
The opposite of friction. Default is 96. WWP mission editor values: ice = 99, mud = 98, stone = 96, rubber = 50, glue = 1. Maybe above 100 is anti-friction?
|
bool |
IndestructableBorder= |
[sic]. 1 if indestructible border around whole level, 0 if not.
|
bool |
IndestructableLandscape= |
[sic]. 1 if indestructible landscape, 0 if not.
|
int |
LogicRandomSeed= |
The starting random seed. 12345 is used for most WA missions; 0 for WWP custom missions. Doesn't really matter.
|
bool |
AlliedGroupToGoFirst= |
Which allied group is first to have a turn.
|
int |
Sound= |
Track number on disc of ambient audio track to play during mission. Values out of range (of 1-11) appear to choose random BGM.
|
5. The [Teams] Group
Type
|
Parameter String
|
Description
|
int |
TeamsInMission= |
Simply, the number of teams in the mission.
|
6. The [HumanTeam] Group
Type
|
Parameter String
|
Description
|
int |
NumberOfWorms= |
Simply the number of worms on the team.
|
int |
Ammo_WeaponString= |
The ammo of the given weapon. -1 is infinite.
|
int |
Delay_WeaponString= |
The delay of the given weapon in turns. 0 or not present for no delay.
|
int |
Worm#_Energy= |
Energy of the worm in health points. -1 for "very high health that can't be displayed properly" (quote from WWP mission editor).
|
int |
Worm#_DeseasePoints= |
Number of disease [sic] points for worm. 0 for healthy worm.
|
bool |
Worm#_ArtileryMode= |
1 for artillery [sic, yet again] mode for worm, 0 for worm can move.
|
bool |
Worm#_PlaceWorm= |
1 if placed as per the options below, 0 if "randomly" placed (obviously based on the same seed each game so not random at all).
|
int |
Worm#_XPosition= |
X position of the worm.
|
int |
Worm#_YPosition= |
Y position of the worm.
|
bool |
Worm#_Vital= |
1 for vital worm; 0 for not. Appears to have no effect for the human team, but some missions have it anyway. That's probably the source of the "killing your worm as well wins the mission" bug in some versions of mission 14 - this option was expected to work when it didn't.
|
7. The [CPUTeam#] Group
Type
|
Parameter String
|
Description
|
int |
TeamNameNumber= |
The index of the team name. TODO: List these.
|
int |
TeamSkill= |
CPU skill. WWP mission editor has this from 50 to 185 in steps of 15, but in the default WA missions it appears to be different with very few having even 100. Investigation required.
|
int |
NumberOfWorms= |
Simply the number of worms on the team.
|
int |
SoundBank= |
Soundbank ID of the team. Usually seems to be 1. Might not be used.
|
int |
Flag= |
Flag ID of the team. Usually seems to be 1. Probably not used, as all CPU teams seem to have flag 1 regardless of skill.
|
int |
GraveStone= |
Grave ID of the team. Usually seems to be 1.
|
int |
AlliedGroup= |
Allied group of the team. 0 is red, 1 is blue, etc.
|
bool |
MissionVital= |
1 if team is vital to a mission. When applied to a team allied to the humans, you lose if they are killed. When allied to the CPU, you win if they are killed. Vital teams don't get turns.
|
int |
Ammo_WeaponString= |
The ammo of the given weapon. -1 is infinite.
|
int |
Delay_WeaponString= |
The delay of the given weapon in turns. 0 or not present for no delay.
|
int |
Worm#_Energy= |
Energy of the worm in health points. -1 for "very high health that can't be displayed properly" (quote from WWP mission editor).
|
int |
Worm#_DeseasePoints= |
Number of disease [sic] points for worm. 0 for healthy worm.
|
bool |
Worm#_ArtileryMode= |
1 for artillery [sic, yet again] mode for worm, 0 for worm can move.
|
bool |
Worm#_PlaceWorm= |
1 if placed as per the options below, 0 if "randomly" placed (obviously based on the same seed each game so not random at all).
|
int |
Worm#_XPosition= |
X position of the worm.
|
int |
Worm#_YPosition= |
Y position of the worm.
|
int |
Worm#_NameNumber= |
The index of the worm name. TODO: List these.
|
int |
Worm#_FixedWeapon= |
The weapon ID of the fixed weapon. 0 for normal free CPU choice.
|
int |
Worm#_ActionRadius= |
The distance away from itself the CPU takes into account.
|
bool |
Worm#_Vital= |
1 if the worm is vital to the mission, 0 otherwise. If a vital worm is killed, all allied teams surrender. Might not work with allies to the human team.
|
8. The [Events] Group
Type
|
Parameter String
|
Description
|
int |
TotalNumberOfEvents= |
Supposed to be the total number of events, but actually wrong in some of the few missions it even appears in, so probably ignored.
|
9. The [Event####] Group
Type
|
Parameter String
|
Description
|
int |
TypeOfEvent= |
10=display morse code message
|
int |
Turn= |
Will cause this event to activate before the nth turn.
|
int |
Retries= |
Causes the event to activate if the number of attempts is equal to or higher than this number. Allows additional events to occur in silver and bronze medal missions (bronze = 1, silver = 4).
|
int |
Text_String_Index= |
|
bool |
EventEnd= |
|
int |
PlaceWeapon_Bonus_Points= |
|
int |
PlaceWeapon_Bonus_TurnExtension= |
|
int |
PlaceWeapon_Bonus_RoundExtention= |
|
int |
PlaceWeapon_XPosition= |
|
int |
PlaceWeapon_YPosition= |
|
int |
PlaceWeapon_OnGround= |
|
int |
PlaceWeapon_Contents= |
|
bool |
PlaceWeapon_Marked= |
|
bool |
PlaceWeapon_Vital= |
|
int |
PlaceWeapon_Ammo= |
|
int |
PlaceHealth_Bonus_Points= |
|
int |
PlaceHealth_Bonus_TurnExtention= |
|
int |
PlaceHealth_Bonus_RoundExtention= |
|
int |
PlaceHealth_XPosition= |
|
int |
PlaceHealth_YPosition= |
|
int |
PlaceHealth_OnGround= |
|
int |
PlaceHealth_Health= |
|
int |
PlaceTarget_XPosition= |
|
int |
PlaceTarget_YPosition= |
|
int |
PlaceTarget_OnGround= |
|
int |
PlaceTarget_FallSpeed= |
|
bool |
PlaceTarget_Marked= |
|
int |
PlaceMine_XPosition= |
|
int |
PlaceMine_YPosition= |
|
int |
PlaceMine_OnGround= |
|
int |
PlaceDrum_XPosition= |
|
int |
PlaceDrum_YPosition= |
|
int |
PlaceDrum_OnGround= |
|
10. The [Sequence####] Group
Type
|
Parameter String
|
Description
|
int |
TypeOfEvent= |
|
int |
Retries= |
|
bool |
EventEnd= |
|
Event Types
Here are the possible values and their functions for the TypeOfEvent settings in events and sequences. Do bear in mind that some of them are only particularly useful in one or the other, but the types appear to be consistent between them which is nice.
ID |
Function
|
1 |
Place weapon crate.
|
2 |
Place health crate.
|
3 |
Place target.
|
4 |
Trigger nuke.
|
5 |
Trigger Earthquake.
|
6 |
Trigger Armageddon.
|
7 |
Trigger sudden death.
|
8 |
Wait until no more "marked" crates (for sequences).
|
9 |
Wait until no more "marked" targets (for sequences).
|
10 |
Display Morse code message.
|
11 |
In WWP as "pause for (n) 10ths of a second"; doesn't appear to have effect in WA (used incorrectly in one mission as an attempt to display text). Needs investigation.
|
12 |
In WWP as "Set Next Turn Number"; unsure if in WA (unused in all missions), but the necessary string is in the exe. Needs investigation.
|
13 |
Place mine.
|
14 |
Place oil barrel.
|
15 |
Restart sequence.
|
16 |
Terminate mission (= win if WinningCondition=3 and possibly others).
|
17 |
Pause sequence
|
18 |
Resume sequence
|
Weapon Strings
The weapon settings in a mission may be configured individually for each team through use of the Ammo_ and Delay_ prefixes, followed by a weapon string and settings. For example, Ammo_Batrope=-1 would set a team's ninja rope supply to infinite, and Delay_Bazooka=2 would apply a 2 turn bazooka delay.
The following is a list of weapon strings. You always have an infinite supply of Skip go and Surrender, so supplying ammo is unnecessary. It is currently unknown if it is possible to add Aqua Sheep directly to the inventory (but they can be provided in weapon crates, which is the method used in the official missions).
Hot Key |
Column #1 |
Column #2 |
Column #3 |
Column #4 |
Column #5
|
Util. |
JetPack |
LowGravity |
FastWalk |
LaserSight |
|
F1 |
Bazooka |
HomingMissile |
Mortar |
HomingPigeon |
SheepLauncher
|
F2 |
Grenade |
ClusterBomb |
BananaBomb |
Axe |
Earthquake
|
F3 |
Shotgun |
Handgun |
Uzi |
Minigun |
Longbow
|
F4 |
FirePunch |
DragonBall |
Kamikaze |
SuicideBomber |
Prod
|
F5 |
Dynamite |
Mine |
Sheep |
SuperSheep |
MoleBomb
|
F6 |
AirStrike |
NapalmStrike |
PostalStrike |
MineStrike |
MoleSquadron
|
F7 |
BlowTorch |
PneumaticDrill |
Girder |
BaseballBat |
BridgeKit
|
F8 |
Batrope |
Bungee |
Parachute |
Teleport |
Scales
|
F9 |
SuperBananaBomb |
HolyHandGrenade |
FlameThrower |
SallyArmy |
MBBomb
|
F10 |
PetrolBomb |
Skunk |
MingVase |
SheepStrike |
CarpetBomb
|
F11 |
MadCow |
OldWoman |
Donkey |
NuclearBomb |
Armageddon
|
F12 |
|
|
SelectWorm |
Freeze |
MagicBullet
|
You can also add the instant effect utilities to your inventory with the following weapon strings, which will correctly take effect for the opening turn only, regardless of how many ammo you give. The exception is Crate Spy, which will last for the entire mission, as expected.
- Damagex2
- CrateSpy
- DoubleTime
- CrateShower
Text_String_Index
The transition messages you get during missions are hardcoded into the game and are referred to via a number. The following table summarises which numbers refer to which messages (in English).
Notes:
- There is a typo in-game for messages number 22 and 42, they contain a carriage return arrow at the end.
- Strings 120 - 130 are the names of the CPU teams usable in missions.
- There may be other non-empty strings beyond 130, but they are unlikely to be useful for the purpose of being used during a mission.
ID |
Message
|
0 |
Weapons drop!
|
1 |
Supplies imminent.
|
2 |
Secure the drop zones!
|
3 |
Delivery successful, over and out.
|
4 |
The iron eagle is on the way, over.
|
5 |
Package delivered, over and out.
|
6 |
That's it we're clean out, you're on your own!
|
7 |
The crates are your only hope...
|
8 |
Enemy air transport en route.
|
9 |
Enemy transport closing.
|
10 |
Almost here!
|
11 |
It's arrived, now get the crate and get the hell out!
|
12 |
No ammo? Try this for size!
|
13 |
Mind your head!
|
14 |
A first class delivery!
|
15 |
Weapons drop successful!
|
16 |
Don't let this equipment fall into the wrong hands...
|
17 |
Express Delivery!
|
18 |
Death by mail order.
|
19 |
A little bit of healing goes a long way...
|
20 |
Something to perk you up, sir.
|
21 |
A blessed relief.
|
22 |
Some timely assistance?↵
|
23 |
Medical supplies dispatched.
|
24 |
Another helping hand.
|
25 |
A little assistance for you.
|
26 |
Every little bit helps.
|
27 |
A little light relief.
|
28 |
Anybody require medical assistance?
|
29 |
Is this your blood group?
|
30 |
Live damn you, Live!
|
31 |
Medic!
|
32 |
Nuke en-route.
|
33 |
Time is against us sir, we need to deal with this quickly!
|
34 |
Smoke'em out if you can...
|
35 |
Meteor strike imminent, dig in!
|
36 |
It's on its way, ETA 5 minutes!
|
37 |
Time is short, get a move on!
|
38 |
Tactical nuclear missile launch detected.
|
39 |
Warning! Strike imminent!
|
40 |
A tremor has been detected at the north end of the island!
|
41 |
Global warming! Watch the water level!
|
42 |
Try not to get wet!↵
|
43 |
Hurry, don't let them dig in!
|
44 |
The General is escaping!
|
45 |
Radiation will be the death of you!
|
46 |
Reach for the skies!
|
47 |
Climb a mountain not a molehill.
|
48 |
Keep away from the edge, earthquake imminent!
|
49 |
Where's Noah when you need him?
|
50 |
It's time to build those shelters.
|
51 |
Hope you've got protection.
|
52 |
WARNING! Seismic activity, 7.2 on the Richter scale!
|
53 |
What happened to the five minute warning?
|
54 |
Global extermination!
|
55 |
WARNING! Destabilising fault-line...
|
56 |
Caution, tectonic movement!
|
57 |
The end of the world is nigh!
|
58 |
Judgement Day.
|
59 |
Enemy forces mobilising!
|
60 |
Strike imminent!
|
61 |
Next turn the enemy gets serious.
|
62 |
The enemy is armed to the teeth!
|
63 |
They've seen you, RUN!
|
64 |
Enemy weapons embargo has been lifted.
|
65 |
There may be trouble ahead...
|
66 |
This conflict is escalating.
|
67 |
Ride those thermals, trooper!
|
68 |
War is hell.
|
69 |
Better dig deep...
|
70 |
There IS honour in death.
|
71 |
Use the darkside!
|
72 |
Secure the area!
|
73 |
Dig down and dig deep.
|
74 |
That fruits just about ripe and for the picking.
|
75 |
Remember to get the crates to add armoury.
|
76 |
A utility would be useful...
|
77 |
You could do with some 1st aid.
|
78 |
You'll need to use the rope...
|
79 |
Think about using some girders as cover.
|
80 |
You need to draw fire.
|
81 |
Remember that you can drop items while on a rope!
|
82 |
Learn to use the repeat swing of the rope!
|
83 |
Learn all the jumping techniques.
|
84 |
A back jump gets you up even higher.
|
85 |
Make a note of the enemy units and their skills.
|
86 |
Act quickly, think sooner.
|
87 |
Skunks can reach places that other weapons cannot reach!
|
88 |
Guns can be strafed up and down when fired.
|
89 |
Crates can sometimes offer a solution to a mission.
|
90 |
Girders can still be placed even whilst swinging on your rope.
|
91 |
Need a leg up? Try an arrow or two...
|
92 |
A girder could be your last line of defence...
|
93 |
Animals and old women can go shopping you know...
|
94 |
Parachutes don't slow your fall but can be controlled...
|
95 |
A parachute! Ride those thermals, trooper!
|
96 |
Crates and explosions don't mix.
|
97 |
Air strikes are more effective from the correct direction!
|
98 |
Moles love to dig down and they tend to explode too.
|
99 |
A well-placed stick of dynamite will dislodge any stubborn Worm.
|
100 |
Wind can have an effect on fire, be careful not to stand downwind
|
101 |
Measure the wind and send a bazooka curling!
|
102 |
Extra Worms make great decoys.
|
103 |
Roll out the barrels, they can be deadly too...
|
104 |
This crate could be vital!
|
105 |
Girders can help grenades reach their targets...
|
106 |
Aqua Sheep by name, aquatic by nature.
|
107 |
Come on soldier, get a move on!
|
108 |
You'd better hurry, there's not much time left!
|
109 |
Quick! The water is rising!
|
110 |
Here's something to help this time.
|
111 |
If you're having trouble, use this.
|
112 |
We thought you would appreciate this!
|
113 |
Looks like you need help, rookie.
|
114 |
This will come in handy...
|
115 |
You need help...
|
116 |
Try this.
|
117 |
(empty string)
|
118 |
(empty string)
|
119 |
(empty string)
|
120 |
Cannon Fodder
|
121 |
Commandos
|
122 |
Elite
|
123 |
Enemy
|
124 |
Guardsmen
|
125 |
Gunners
|
126 |
Officers
|
127 |
Patrol
|
128 |
Platoon
|
129 |
Resistance
|
130 |
Special Forces
|
PlaceWeapon_Contents
When placing a weapon or utility crate you need to refer to its contents by a number rather than a name. The following list indicates which number refers to which crate contents:
ID |
Contents
|
0 |
None (This is a specially defined "empty" crate)
|
1 |
Bazooka
|
2 |
Homing Missile
|
3 |
Mortar
|
4 |
Homing Pigeon
|
5 |
Sheep Launcher
|
6 |
Grenade
|
7 |
Cluster Bomb
|
8 |
Banana Bomb
|
9 |
Mole Bomb
|
10 |
Shotgun
|
11 |
Handgun
|
12 |
Uzi
|
13 |
Minigun
|
14 |
Longbow
|
15 |
Fire Punch
|
16 |
Dragonball
|
17 |
Kamikaze
|
18 |
Prod
|
19 |
Battle Axe
|
20 |
Dynamite
|
21 |
Mine
|
22 |
Sheep
|
23 |
Super Sheep
|
24 |
Aqua Sheep
|
25 |
Earth Quake
|
26 |
Air Strike
|
27 |
Napalm Strike
|
28 |
Mail Strike
|
29 |
Mine Strike
|
30 |
Armageddon
|
31 |
Blow torch
|
32 |
Pneumatic Drill
|
33 |
Girder
|
34 |
Baseball Bat
|
35 |
Girder Starter-Pack
|
36 |
Ninja Rope
|
37 |
Bungee
|
38 |
Parachute
|
39 |
Teleport
|
40 |
Scales of Justice
|
41 |
Super Banana Bomb
|
42 |
Holy Hand-Grenade
|
43 |
Salvation Army
|
44 |
MB Bomb
|
45 |
Flamethrower
|
46 |
Petrol Bomb
|
47 |
Skunk
|
48 |
Priceless Ming Vase
|
49 |
French Sheep Strike
|
50 |
Mike's Carpet Bomb
|
51 |
Mad cow
|
52 |
Old woman
|
53 |
Mole Squadron
|
54 |
Concrete Donkey
|
55 |
Indian nuclear Test
|
56 |
Select worm
|
57 |
Freeze
|
58 |
Patsy's Magic Bullet
|
59 |
Fast Walk
|
60 |
Laser sight
|
61 |
Double Damage
|
62 |
Invisibility (Usable even in single player!)
|
63 |
Low Gravity
|
64 |
Crashes the game with a fatal error
|
65 |
Suicide Bomber
|
66 |
Jetpack
|
67 |
Double Turn Time
|
68 |
Crate Shower
|
69 |
Crashes the game with a fatal error
|
70 |
(null)
|
71 |
Crashes the game with a fatal error
|
72 and beyond |
(null)
|
TODO: Write an introduction, add information about each group, finish lists, add descriptions to lists, add information about values, and maybe organize the lists better.
See also