Package: Mod Loader
Release: 1.21
Date: 5rd Febuary 2002
Web Site: http://sourceforge.net/projects/ucdeusex/

Requirements: Deus Ex v1112fm

These instructions assume you have installed Deus Ex in C:\DeusEx if this is not so change the path to match where you have installed Deus Ex.
  1. Extract the contents of the zip file to C:\DeusEx\System
  2. Open DeusEx.ini and make the following changes:
  3. Find DefaultGame= under the [Engine.Engine] section
    Change it to DefaultGame=DeusExML.MLGameInfo

    Find the list of EditPackages= under the [Editor.EditorEngine] section and add the following on the end
    EditPackages=DeusExMLUI
    EditPackages=DeusExML
  4. Open User.ini and make the following changes:
    Find Class= under the [DefaultGame] section
    Change it to Class=DeusExML.MLPlayer
  5. Start up Deus Ex, you will now find a button for the mod loader on the main menu.

The mod loader uses entries in .int files to create a list of mods, and allows the User to start each mod by selecting it from the mod loader menu. The .int entries also contain several options that determine how the mod is to be started. For instance, if a start map is specified in the .int entry, then this map is used as the first playable map when starting the mod. In addition, the .int entries can be used to specifiy the skill points the player starts with, the player class that is to be used, the game info class that is to be used and several other options.

The mod loader will act differently depending the player class, the game info class and the options specified in the .int file when a mod is started. This specifics of these actions allows the mod loader to be used with almost any type of mod that is created if a .int file is created for the mod. The details of all the options are spelled out below, however before you get started be sure to read the next section about creating a .int file.

The .int file is simply a text file that lists information about each of the mods installed. To create an .int file, create a new text file (in Windows right-click and select New -> Text File) and name it YourFileName.int. Now open the .int file and create a mod loader entry that is something like:
[Public]
Object=(Name="The Name of the Mod",Class=Class,MetaClass=DeusExML.MLGameInfo,Description="Option1=Value1;Option2=Value2;...")
Note: Each .int file only needs one [Public] at the start of the file, but it can have multiple Object= entires. Each Object= must be on it's own line.

Now lets break this down:
Name="The name of the Mod"
This is the name that will be displayed in the mod loader menu. It should always been in double quotes, this also means that it can't contain any quotation marks.

Class=Class
This tells Deus Ex that the MetaClass is a class file. This should never be changed.

MetaClass=DeusExML.MLGameInfo
This is to tell Deus Ex what class uses this .int entry. This should never be changed.

Description="Option1=Value1;Option2=Value2;..."
A series of "Option=Value" pairs seperated by semi-colons. These should always be in double quotes.
The Description entry is the most important part of the .int entry, it describes what the mod loader will do with the mod. Each of the options is explained below.

If your mod isn't being displayed in the mod loader menu, Open up DeusEx.log and look for entries marked "@@ Mod Loader :: Error", these error messages should tell you whats wrong.

The Mod Loader provides many different Options for Single Player Games depending on the description entries and the needs of the Modder. The entries are for Action, Map, Game, and Class will generally tell the Mod Loader how to act, but other entries will allow the Modder to add Augs, Inventory, Skill Points, Skill Levels and other details.

Syntax: Action=ACTION;
The action option specifies how the mod should be started. There are two possible values for ACTION:
  • Start - The difficulty selection screen and skill points screen are displayed before the mod starts.
  • No Value (Default) - The mod starts straight away without the difficuly and skills screens.

Syntax: Map=MAPNAME.dx;
The map option tells the mod loader what map to start. Replace MAPNAME.dx with the name of the map you want the mod to start with. This map must exsist, otherwise you will get unpredictable results when you try and load the mod. If Action=Start the map will be loaded after the player has set the difficulty level and skill levels. If no map is specified the intro from Deus Ex is run then the first map is loaded.

Syntax: Class=PACKAGE.PLAYERCLASS;
The class option sets what player class the mod uses. The default is DeusExML.MLPlayer. Player classes must be a sub class of MLPlayer, otherwise the mod loader will not recognize it and the mod will load with the default player class.

Syntax: Game=PACKAGE.GAMECLASS;
The game option sets what game info class the mod uses. The default is DeusExML.MLGameInfo. Game info classes must be a sub class of MLGameInfo, otherwise the mod loader will not recognize it and the mod will load with the default game info class.

Syntax: SkillPts=VALUE;
This sets the number of skill points the player will start with.

Syntax: Skills=SKILL1,SKILL2,SKILL3,SKILL4;
The skills option is used to specify what level the players skills will be when they start the mod. Each value is seperated by a comma. Each skill can be set to a value between 0 (untrained) to 3 (master). The skill values should be set in the following order:
  • Weapons: Heavy
  • Weapons: Pistol
  • Weapons: Rifle
  • Weapons: Low-Tech
  • Weapons: Demolition
  • Environmental Training
  • Lockpicking
  • Electronics
  • Medicine
  • Computer
  • Swimming

Syntax: Inv=WEAPON,AMMO(AMMOUNT),ITEM;
Inv allows you to set the Players starting Inventory. Using this value, eeven if you don't assign any starting Inventory, will eliminate the Default starting Inventory for the Player. The Syntax for Inv is:

Inv=DeusEx.WeaponStealthPistol;DeusEx.Ammo10mm(100);DeusEx.MultiTool(10);; (Notice the double ; at the end of the list.)

This will give the Player a StealthPistol, 110 rounds of Ammo (Why 110 rounds? 10 are in the Stealth Pistol and 100 more.), and 10 Multitools to start the game with. You can only give the Player 10 different Items using this method, and you can't give them more of each Item than they could normally have. For instance, you can only give them one of each type of weapon, 20 MultiTools, 150 Rounds of 10mm Ammo, etc.

Syntax: Aug=AUG1(LEVEL),AUG2(LEVEL);
Aug allows you to give the player some starting Augs and set the level of each Aug. The Syntax for Aug is:

Aug=DeusEx.AugHealing(3);DeusEx.AugBallistic(1);DeusEx.AugCloak;; (Notice the double ; at the end of the list.)

This will give the Player the Regeneration Aug at level 4, the Ballistic Aug at level 2, and the Cloak Aug at Level 1. Notice that the values in paranthesis are one less than the actual level of the Aug. You cannnot set an aug to a level Higher than it's Maximum allowable, which in most cases is 4 (3), and you can't give them Augs that normally wouldn't fit in the available slots.

Syntax: Splash=MAPNAME.dx;
The splash option is used in conjunction with Action=Start, it sets what map is loaded while the player selects the difficult and skill levels. The default is dx.dx

Syntax: Credits=VALUE;
This sets the number of credits the player will start with.

The multiplayer section of the mod loader is still to be implemented.

Syntax: Action=ACTION;
The action option specifies how the multiplayer mod should be started. There is only one possible values for ACTION:
  • MP - This tells the mod loader it's a multiplayer mod.

Thanks to everyone who has provided feedback.
Thanks to Ed Gann (egann@mindspring.com) for the mod loader.