Serious Engine implements game modification system. There are many types of modifications (MOD) that can be made to original game like: new levels, new playing modes, players, weapons and other models, items and enemies, new music and sounds, textures,....Croteam encurages and supports MODs.

Basic notes about creating a MOD:

- When developing MOD, you create and keep your files in game's root directory. When you are over, you create MyMod\ subdirectory in <game root>\Mod\ directory, and move your files there (you should later create single .gro file for distribution). This way you use files with paths relative to game root directory when developing, and later, when you move them into MOD's root directory (i.e. Mods\MyMod\) and activate you MOD within the game, engine's MOD system will prefere Mods\MyMod\ as a root directory over game's root directory.

- Additional levels must have MyLevel.vis file if you want it to be available trough SinglePlayer->CustomLevel menu.

- You have to set world flags and description for additional levels. Flags define if level will be available in single player, deathmatch or cooperative mode. Description will be used for displaying level name in menu. Both level flags and description can be easily set in Serious Editor, using World Settings dialog.

- Multiplayer characters and weapons are defined using .amc scripts. Chapters under "Advanced Model Creation Tutorial " section of help describe how to use them.

- To understand how Serious Engine handles directories and prefere files when loading, read basic information chapter of help.

Some notes to use advanced features of Serious Engine's MOD system

- There is a system that allows MOD creators to control saving and browsing directories, to define starting and intro level. To control saving, you write BaseWriteInclude.lst and BaseWriteExclude.lst files. These scripts contain lines with directory names. Files in these directories in the base dir (not mod dir) will be allowed to be saved to.
BaseBrowseInclude.lst and BaseBrowseExclude.lst define which directories in the base dir (not mod dir) will be browsed in menus that browse directories (like the Player model menu, or CustomLevels menu).
Generally, just keep them as it is, later you might want to make base game levels or models not show up in your mod by setting BaseBrowseExclude.lst to contain lines:
Or similar.

If you want your Mod's savegames to be separated from the base savegames, make a copy of the SaveGame directory in your mod (make sure you make all the subdirs too!), and add this line:
to both the BaseBrowseExclude.lst and BaseWriteExclude.lst

Also, you might want to set up a name for your mod to appear in the main menu (instead of the title 'The First Encounter'). You do this by making a file
Data\Var\ModName.var with one line containing the name.

You can also change the default level that will be started when someone presses 'New Game' in the single player menu. To do this, you have to set the cvar sam_strFirstLevel to the level path (relative to your mod dir, not the base dir!). Usually, one would do this in a file Scripts/Game_startup.ini (add this to your mod directory). Also you can change the intro animation played by setting the cvar sam_strIntroLevel.

Important note:

To find out more information about developing modifications, you can visit Serious Engine SDK forum at Serious Engine forum or contact Croteam.