Adding Sound Acks

(to a party/unit)
in three tiny steps

by kaoz | MMVII

  1. Map Structure  
  2. Unit Types  
  3. Bottom 2 Top  

1. Map Structure

All Ack files are stored in the Sounds/Ack folder. In this folder, create a new folder for your party (Greek in this example). Next, in that new folder, you need Artillery, Auto, Aviation, Infantry, Tank and/or Train folders. For each folder you can have an equivalent xml file like f.e. Artillery.xml in the Sounds/Ack/Greek folder, although this is not an obligation. As you can see in the picture below, i have a Auto.xml, but no folder. It is f.e. possible that Auto.xml uses the sounds/samples from the Tank folder or any other. However, in the beginning, it is better to keep a clear structure, not to get confused.

These xml files hold the information and definitions of which type of unit will use what sound. In there, you can set your path to the name of the sound and set its probability.

The different folders (Artillery, Infantry, Tanks, etc.) contain the actual wav or sound files and one xml file for each sound.

This folder tree is basic and simple to understand. If you take a look to the existing ack folders from the original data.pak file, you will notice they are a bit more extensive (more folders and more variety, but maybe a little more complicated). You could however, copy these folders and change their names and paths.

Return to index  

2. Unit Types

All acks have been given a specific Type, which is set in the xml file. Artillery will use different Type settings than Tanks or Aviation and a repair truck will use different acks than a Infantry unit. In some cases, all units will use the same Type.

The following list should make a bit easier to understand what Type is used by which unit.

Type Ack Example Basic Sound Used by
0 positive yes, sir
right away
arms ready
on our way
1 negative no, sir
can't do that, sir
come again?
not possible, sir
2 selected ready, sir
your orders, sir?
5 invalid target can't aim there
reconfirm co-ordinates
artillery - infantry - tank
6 don't see enemy can't see the target
can't see anyone
artillery - infantry - tank
7 invalid angle invalid angle, sir
cannot attack, sir
8 target too far cannot reach there
too far, sir
artillery - infantry - tank
9 target too close too close, sire
not enough distance
artillery - tank
10 no ammo we need ammo over here
get me some ammo
artillery - infantry - tank
11 cannot pierce armor's too tick, sir
we cannot pentrate the armor, sir
artillery - infantry - tank
12 invalid path can't find my way there
no path, sir
artillery - infantry - tank
13 invalid sector he's not within aim infantry
14 need towing we need a heavy truck for towing, sir artillery
15 broken track we need repairs
send a mechanic, sir
artillery - trucks - tank
16 going refill returning to the depot
we need to refill
17 no supply path we can't find the road
there's no way to get there
18 cannot find warehouse we can't find the warehouse
is this the right map?
19 no path to warehouse we can't get to the warehouse
seems like we're going in circles
20 wait for crew we have to pick up Joe first trucks
21 start resupply you boys need ammo?
careful with that ammo!
22 start repairing we'll have this fixed in no time!
it will look like new
bring a hammer and a screwdriver!
24 plane taking off planes on route to co-ordinates
understood, sir!
25 plane leaving going home
mission accomplished
returning to base
26 not installed we're not ready, sir
we're still installing
27 cannot reach build how do we get there?
can't reach the site
29 too heavy for towing no way we can tow that
our heads will fall off!
30 cannot unhook we cannot unhook here, sir
not a good spot, sir!
37 bored attack attack!
artillery - infantry - sniper - tank
38 bored lowammo we're almost out of ammo
we're running low on ammo
artillery - infantry - sniper - tank
39 bored no ammo we're out of ammo
we need supplies, sir
don't have anything to shoot!
artillery - infantry - sniper - tank
40 bored idle i keep thinking of my girlfriend
i wish i could be sitting on a plaza
i wanna go home
artillery - infantry - sniper - tank
41 bored sniper i have a nice view from here
i'm getting tired of laying around here
42 minimum morale i've got a bad feeling about this
this doesn't look good
artillery - trucks - infantry - sniper
43 low hitpoints can't take another hit
we won't last much longer
i need a medic
i'm seriously wounded!

infantry - sniper
44 bored travel are we there yet?
how much further is it?
marching, always marching
infantry - sniper
45 getting ammo supplies are here
keep that ammo coming
46 attacking aviation enemy planes! artillery - tank
48 attacked by avia air-strike!
take cover!
49 cannot hook up there's no way to hitch it
we can't hook it up, sir
50 selection too much yes, we know sir
what is it now?
51 plane reachpoint we're at the target/dropzone avia
52 killed enemy target hit!
ripped them down
target eliminated!
artillery - avia - tank

53 finished finished!
artillery - tank
54 cannot build we can't dig in here
we cannot build here
artillery - tank
55 cannot finish we couldn't finish digging in
we couldn't finish building
artillery - tank
56 killed infantry infantry down!
dead meat!
57 killed aviation plane down!
nice hit!
artillery - avia - tank
58 killed tank target eliminated
more iron for the junk heap
59 unit died aaaaaaaarrrgghhh!!
i'm going down!
artillery - infantry - sniper

Notice some Type numbers are missing. This is not on purpose, but probably these were left out as i cannot find any proof of their existance.

  Return to index  

3. Building it all together from bottom to top

It all seems very straightforward, but... the naming and path references in the xml's can be so very confusing...
Therefore it is best to build it up from bottom to top.

1. Sound files

Record all necessary sound files in wav-format (maybe mp3 works as well? Never actually tried) and place these for each sort of unit in their corresponding folder (Artillery, Auto, Aviation, etc.). Name your files however you want, but it is advisable to maintain a logical approach. In this example, i have a sound file named GRK_arty_noAmmo1.wav, making it clear what it is about.

As said earlier, each sound file needs another xml file with a reference to the file, so prepare for a longtime job. Use copy/paste to avoid typos. Notice that .wav is not included in the path-name.

Also notice you can set a minimum distance (MinDist="5") and maximum distance (MaxDist="35") from which point the sound will be heard within the game.

2. Setting the Types and names

So, when all that hard work is done and all sound files are set in their specific folders, it is time to move up one step and edit the actual Ack xml's. This is where you link your different sound files to a specific Type (= unit response upon specific mouse action) as numbered in the list above.

In the following picture, i have opened the Artillery.xml file from the Sounds/Ack/Greek folder

First notice <item Type="0">
From the list above, we know that Type 0 = positive.
Depending on how many samples/sound files you have for this ack, you need to add as many items to that specific Type.

Notice that for each item, another name must be given to the file. In this case, the sound file named GRK_arty_noAmmo1.wav has been given the name ack_greek_arty_noammo_1 for the ack. The picture above, however, shows for Type 0 ack_greek_infantry_select_1. This shows that the same sound files can be shared by different units. In my example, the artillery units are using the same sound file for the positive ack as the infantry is using. Furthermore, this positive ack has 4 selection possibilities, each a different sample. But the same samples are used for both Type 0 positive and Type 2 selected. This might be the most confusing part, but this name-giving will become clear in the next step. Again, try to keep it logic to avoid that confusion and use revealing names!

Also notice you can set the probability of each sound in percentage. Probability is the chance of hearing that particular sound. If you have f.e. set only one sound with a probability of 100, you will always hear that sound upon the corresponding action. If you would set it to 25, there's one chance out of four that you will hear it. This would be a good setting for a (ambient) sound attached to a building or object, but in the case of units, it is best to use the full 100%, so they will always react upon your mouse-clciking. If you f.e. have 4 different sounds for the Positive Ack, they are best set each to 25, divided equally (although chosen randomly). You could as well use 20 different sounds for a specific Type and set their probability to 5.

3. Adding to the ModObjects.xml

Next, moving up another step. Now all these acks need to be added to the ModObjects list and here's where the new name-giving, from the previous step, starts to make sense. This is where you finally link your different acks to the corresponding sound file.

4. Final steps

In a last fase, you still need to attach the sounds and acks to the units and humans. As you will probably know, every unit folder contains a 1.xml file. Open this file and look for the following line: <AcksRefs></AcksRefs>. Obviously, this is where you refer to the xml file that contains the Types and names (like Artillery.xml, Infantry.xml, Tank.xml, etc.).

At this point, it might become clear that you can link any unit with any specific Ack file (like Artillery.xml, Truck.xml or name it whatever you want), which itself is linked (through Types and names) to certain sound files. So as long as you keep names and paths correct, you are unlimited in how many Ack files you create and/or how you want to call them.

In case you have created an entire new party with its own language, be sure to add this party to the partys.xml and opponents folder in order to let the artillery also speak the language from your chosen party.

It it possible to download these example files. They contain all xml files and will make a good base to start from. All you need to do, is change the names and paths.

Download Acks

  Return to index