Skip to main content

Addon

An addon is a way to modify or extend the game. For example, vehicles, peds, objects, or weapons can be replaced or added.

Structure

The structure of an addon is represented by a dedicated folder inside the addons directory within the server files. This folder contains the meta file (meta.xml) as well as a stream folder. The main folder includes the meta.xml and definition files such as .dat or .ide. The stream folder is reserved exclusively for streaming files, such as models or textures.

Server Folder
HappinessMP.Server.exe
addons/
├── my-addon-01/
│ ├── stream/
│ │ ├── police2.wft
│ │ └── police2.wtd
│ ├── content.dat
│ ├── items.ide
│ └── meta.xml
├── my-addon-02/
│ ├── stream/
│ ├── meta.xml
│ └── ...
resources/
settings.xml

Category Folders

Like resources, addons may be grouped into subfolders. The path below addons/ becomes part of the addon's name:

settings.xml
<addon>vehicles/police</addon>
caution

Inside the game the category is flattened with an underscore, so paths in the content file use vehicles_police, not vehicles/police:

content.dat
IDE addons:/vehicles_police/items.ide

Meta File

The meta file is the configuration file of a addon. It defines which files are loaded and how they should be handled.

meta.xml
<meta>
<file type="content" src="content.dat"/>

<file src="items.ide"/>

<stream src="*.wft"/>
<stream src="*.wtd"/>

<siren carmodel="newpolice" lights="1" />
</meta>
tip

Both <file> and <stream> support glob patterns such as *, **, and ?.
This allows you to include multiple files or entire directories without listing each file individually.

  • Use <file> elements to define files that should be downloaded by the client and loaded during startup.
    • Special file types include content (has to be a .dat file) and audio (has to be an .xml file).
    • All files referenced through <file> are bundled into a single RPF archive.
  • Use <stream> elements to specify files that are downloaded by the client and loaded dynamically by the streamer when needed.
    • src is resolved relative to the stream folder, and subfolders are not allowed, because the streamer keeps all files in one flat list.
    • Only the valid stream formats are accepted; anything else makes the addon fail to load.
  • Use <siren> elements to set a siren for an added car model.
    • Lights: 0 = No Lights, 1 = Police, 2 = Ambulance, 3 = Fire Truck, 4-7 = Unknown

Content File

Content data files are used to replace or add game files.

content.dat
IDE addons:/my-addon-01/items.ide

# Other usable tags:
# ANIMGRP (.dat)
# CARCOLS (.dat)
# CARGRP (.dat)
# PEDGRP (.dat)
# PEDVARS (.dat)
# HANDLING (.dat)
# TIMECYCLE (.dat)
# VEHICLEEXTRAS (.dat)
# PEDPERSONALITY (.dat)
# EXPLOSIONFX (.dat)
# PLSETTINGSMALE (.dat)
# PLSETTINGSFEMALE (.dat)
# PLSETTINGSLIGHT (.dat)
# RADIO (.dat)
# RADIOLOGOS (.dat)
# CREDITS (.dat)
# HUDCOLOR (.dat)
# SCROLLBAR (.dat)
# VISUALSETTINGS (.dat)
# MELEEANIMS (.dat)
# WEAPONFX (.dat)
# WATER (.dat)
# FONTDAT (.dat)
# FONTDATR (.dat)
# FONTTXD (.wtd)
# FONTTXDR (.wtd)
# FONTSTRTXD (.wtd)
# HUDDAT (.dat)
# HUDTXD (.wtd)
# RADARBLIPS (.wtd)
# FTXDFILE (.wtd)
# FMENUFILE (.xml)
# WEAPONINFO (.xml)
# THROWNWEAPONINFO (.xml)
# LBDATAFILE (.xml)
# LBICONSFILE (.wtd)
# TICKBOXFILE (.wtd)
# SAVEICON (.png)
# VEHOFF (.csv)
# ACTIONTABLE (.csv)
# IDE (.ide)
# DELAYED_IDE (.ide)
# IPL (.ipl)
# IMG (.img)
# IMGLIST (.txt)
# EPISODEVERSION (.txt)
# PLAYER (.rpf)
# RMPTFX (.wpfl)
# DISABLE_FILE

Stream Folder

Files loaded by game streamer are placed in the stream folder.

Valid file formats are: wtd, nod, cut, wdr, wpl, wdd, rrr, sco, wnv, wad, wbn, wbd, wbs, wft, lod, nth, ipl