# AssaultCube: Custom mods

# Custom mods

AssaultCube allows 3rd party developers to extend the game by using the existing AssaultCube engine/data for their own modifications (so long as you keep within the license agreements for the particular media which you are modifying), without the need to overwrite existing data (i.e. content replacement). Another advantage is that it allows you to add mods cleanly without placing the files inside the main AssaultCube directory.

When AssaultCube loads files for the game, it looks into several directories to find the file to load. This list of directories can be extended using the --mod argument, which lets you add custom directories. Using this feature, it is possible to supply a mod directory that contains customized data (textures, etc), so once AssaultCube loads data, it loads it from that mod directory instead of the main directory.

### Example:

Assume you want to create a mod that provides a customized hud-gun, you would create a mod directory:

1. Create a "mod" directory: AssaultCube\mods\MyMod1\
   ...where AssaultCube is your main directory (%programfiles%\AssaultCube_v1.0).
2. Inside your mod directory, add your customized hudgun: AssaultCube\mods\MyMod1\packages\models\hudguns\assaultrifle.md3
3. Now to make AssaultCube aware of this mod you'll need to start AssaultCube with the argument --mod=mods\MyMod1
   ...now every time AssaultCube wants to load packages\models\hudguns\assaultrifle.md3 it will look in your mod directory first, therefore loading your custom version instead of the original version.

To start AssaultCube with the mod argument, you will most likely need to modify the AssaultCube launcher. See command line on how to do this...