By default, Q3 engine does not recognize the materials that map fragments are made of. Wood, concrete, metal - to the game it is just a texture. However, there is a simple tool for assigning textures to certain material types which will result in a different sound when players shoot at or walk on it. Moreover, bullets will leave different marks on the surface, for example with metal material before and after process:
The tool's name is BSP.
Windows version can be [downloaded here.] Linux one can be [downloaded here.]
This tiny little program works with compiled version of your map - *.bsp . After successful compilation, you need to put the BSP into the same folder as your *.bsp map. BSP toll is a command-line program - this means you have to type commands in terminal in order to make it work. On Linux most of the file managers allow you to open the current folder in terminal by clicking RMB and selecting "open in terminal" option.
Note: Windows users use command bsp.exe. Linux users bsp-redone - which is simply a linux version of bsp.exe.
Create a surfaces file
First of all you'll need to create a basic surfaces file, to do this run BSP with the following arguments:
bsp.exe -se mapname.bsp mapname.surfaces
This will create a file mapname.surfaces, which is a simple text file. It contains a list of all textures used in a map, also the ones which are part of the models. -se means "surfaces export".
textures/YOURMAPNAME/structure/dirtybrickstain = none textures/YOURMAPNAME/structure/dirtybrick = none textures/YOURMAPNAME/decals/cokeycola = none textures/YOURMAPNAME/decals/downwith = none textures/YOURMAPNAME/grass/grass2 = none
Edit the surfaces file
Value "none" means that texture material has not been specified yet. To change it, simple replace the word "none" with any of the following:
none tin aluminum iron titanium steel copper brass cement rock gravel pavement brick clay grass dirt mud snow ice sand ceramictile linoleum rug plaster plastic cardboard hardwood softwood plank glass water stucco
Please note: Not all surfaces sounds have a unique sound, most of the metal sounds share the same sound.
- ice - missing
- rug - missing
- sand - missing
- water - missing
Some of the sounds are missing in the current Urban Terror version. If You use them, you'll get "ding-ding" replacement sound. It's worth noting that the grass sound is a good substitute for rug.
Adding the surface sounds to your map
To add the surface sounds to your map, the command is very similar to that used to extract the initial surface list.
bsp.exe -si mapname.bsp mapname.surfaces
-si means "surfaces import"
Defining surfaces should be done at the end, when you are sure you won't change anything and release your map as an alpha/beta/RC/release version.