*************************************************************************************************
*Mod Loader DeusExML Pre Beta release.
*
*Edward Gann 1/26/01
*
*README FILE IS NOT COMPLETE.
*
*************************************************************************************************

Table of Contents

  1. Installing the Mod Loader
  2. Mod Loader Overview
  3. Creating a .int File
  4. Single Player
  5. SP Maps
  6. SP Mods
  7. Multiplayer
  8. MP Maps
  9. MP Games
  10. MP Skins
  11. Mod Loader Specs

Installing the Mod Loader

DeusExML.zip contains 4 files DeusExML.u, DeusExML.int, DeusExML.ini, and this file.  Copy the DeusExML.u, DeusExML.int, and DeusExML.ini into your C:\DeusEx\System folder. In the C:\DeusEx\System folder, open the DeusEx.ini file and you will see something like this:

[URL]
Protocol=deusex
ProtocolDescription=Deus Ex Protocol
Name=Player
Map=Index.dx
LocalMap=DX.dx
Host=
Portal=
MapExt=dx
SaveExt=dxs
Port=7790
Class=DeusExML.MLPlayer

[FirstRun]
FirstRun=1000

[Engine.Engine]
GameRenderDevice=D3DDrv.D3DRenderDevice
AudioDevice=Galaxy.GalaxyAudioSubsystem
NetworkDevice=IpDrv.TcpNetDriver
DemoRecordingDevice=Engine.DemoRecDriver
Console=Engine.Console
Language=int
GameEngine=DeusEx.DeusExGameEngine
EditorEngine=Editor.EditorEngine
WindowedRenderDevice=SoftDrv.SoftwareRenderDevice
RenderDevice=GlideDrv.GlideRenderDevice
DefaultGame=DeusEx.DeusExGameInfo
DefaultServerGame=DeusEx.DeathMatchGame
ViewportManager=WinDrv.WindowsClient
Render=Render.Render
Input=Extension.InputExt
Canvas=Engine.Canvas
Root=DeusEx.DeusExRootWindow
CdPath=C:\DeusEx

[Core.System]
...
...

Change the line:

DefaultGame=DeusEx.DeusExGameInfo
to
DefaultGame=DeusExML.MLGameInfo

Now open the DeusExML.ini file. There is one entry: bAutoStart=False.  If you set this value to True, the Mod Loader Screen will essentially replace the Main Menu in DX.  This is a time saving feature, however the Main Menu in DX has a button added to open the The Mod Loader Screen and the Mod Loader Screen has a button to open the Main Menu.  Therefore, selecting True or False for this value will not limit your options in anyway.

Mod Loader Overview

The Mod Loader uses entries in .int files to create a list of Mods that are available on the Computer and allows the User to start each Mod by double clicking on it in the list.  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 Class that is to be used and several other options.

The Mod Loader will act differently depending on whether DeusEx has been started for the first time, the Player Class that is used in the URL, 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.  In addition, if there is no .int file for a Mod or the Mod doesn't conform to the Mod Loader standards, the Mod Loader will allow the User to run the Mod anyway.  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.

Creating a .int File

The .int file is simply a text file that lists information about each of the Mods computer.  To create an .int file, simply create a new text file (in Windows you can 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=Value;Option2=Value2;...")
(****Note: Each Object= line in the .int file should be on a single line regardless of how they are displayed here.)

Where:
Name="The name of the Mod"                                                                          (This should always be in Double Quotes)
Class=Class                                                                                                        (This should never be changed.)
MetaClass=DeusExML.MLGameInfo                                                               (This should never be changed.)
Description=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 and describes what the Mod Loader will do with the Mod.  For instance if Description is:

Description="Action=Start;SkillPts=20000;Map=MyMap.dx"

The Action=Start entry tells the Mod Loader to display the Select Difficulty and Select Skills screens before starting the Mod, the SkillPts=20000 tells the Mod Loader to give the Player 20000 skill points to start, and Map=MyMap.dx tells the Mod Loader to start the MyMap.dx map after the player has selected the Difficulty and Skills. (Note: The Mod Loader has corrected the bug in the DX MP patch that cased Skill Changes in the Skill Select Screen to not be transfered to the Game at Start up.)

Each .int file can contain several different entries and there can be more than one entry for each Mod.  As an example, the DeusExML.int file contains three entries, one to start the normal Deus Ex Game, one to start Deus Ex Mutliplayer (not yet implemented), and one sample entry that starts Desu Ex with a number of options.

Each .int file can contain several different entries and there can be more than one entry for each Mod.  As an example, the DeusExML.int file contains three entries, one to start the normal Deus Ex Game, one to start Deus Ex Mutliplayer (not yet implemented), and one sample entry that starts Deus Ex with a number of options.

As mentioned, the Description part of the .int entry is the most important part. Basically it is made up of several Option=Value(s) entries seperated by semi-colons (;). The order of the Option=Value entries does not matter and the Entries are not Case-Sensitive (In other words, Caps or Lower Case doesn't matter). For instance:

Description="Action=Start;SkillPts=20000;Map=MyMap.dx"

produces the exact same results as

Description="SKILLPTS=20000;ACTION=START;MAP=MYMAP.DX"

The Mod Loader tends to be pretty Robust also, for the most part if you put a value in the Description that the Mod Loader does not understand, it will be ignored by the Mod Loader. In addition, the Mod Loader will place an entry in the Log file everytime it adds a value to the game, and in many cases will add an entry to the Log if it can't use a value, for instance if you try to add an Aug that doesn't exist or try to give the player 2 of the same weapons. The one major exception to this is in the Map, if you enter a Map that does not exist the results could be unpredictable.

 

Single Player Overview

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.

Action, Class, Game, and Map.
Action= If you set Action=Start in the .int Description Entry, the Mod Loader will bring up the Diffculty Selection and Skill Selection screens, similar to the original game, before starting your Mod. The Mod Loader screen is slightly different though, the Pistol Skill level starts at untrained and the Skill Points start at 6575 unless you specifiy other values in the Description entry.
Map= The Map entry tell the Mod Loader what Map to start when the Mod Starts. If Action=Start is also set, this Map will be started AFTER the player selects the Difficulty Level and sets their Skill Levels, otherwise it will start as soon as the player starts your Mod. If no Map is selected, and
Class= The Class=Entry sets the Game Info Class for the Mod. The syntax is Package.PlayerClass and the Default is DeusExML.MLPlayer. Player Classes must be a SubClass of the MLPlayer Class or the Mod Loader will not recognize them.
Game= The Game=Entry sets the Game Info Class for the Mod. The syntax is Package.GameClass and the Default is DeusExML.MLGameInfo. Game Info Classes must be a SubClass of the MLGameInfo Class or the Mod Loader will not recognize them.
The mod Loader requires that one of more of these values be set in order for the Mod to be Valid. In addition, if the Player Class or Game Class are not SubClasses of MLPlayer or MLGameInfo respectively, the Mod Loader will not recognize the Mod. If the Mod is not Displayed on the Mod Loader Screen, check the Log file for details as to why.
Other Options
Splash= Splash is only used if Action=Start, and it tells the Mod Loader what map to use in place of the DX.DX map while the Player sets the Difficulty Level and Skills. If no Splash Map is set, the DX.DX Map is used.
SkillPts= Skill Points sets the number of Skill Points the Player starts with. This can be used with or without Action=Start.
Skills= Skills sets the minimum skill levels that the player starts with. The Skill Entry has the following Syntax:

Skills=2;3;2;3;0;2;3;; (Notice the double ; at the end of the list.)

Where each of the numbers is a value between 0 and 3 setting the skill level from Untrained to Master. The Skills are set in the order they are are created in Deus Ex, which is:

Weapons: Heavy
Weapons: Pistol
Weapons: Rifle
Weapons: Low-Tech
Weapons: Demolitions
Environmental Training
Lockpicking
Multitooling
Medicine
Computer
Swimming

So the above example sets the Weapon: Heavy Skill to Advanced, the Weapons: Pistol Skill to Master, the Weapons: Rifle Skill to Advanced, etc. etc. This has the effect of setting the Minimum level for each Skill for your Mod. Even if you set Action=Start, the player will not be able to reduce the Skill level below the value specified in the Skills= Entry. Any entries that are omitted at the end of the list are set to Untrained.
Inv= 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.
Aug= 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.
Credits= Sets the amount of Credits the Player starts with.

Weapons and Equipment Mods

If you want to start the original game using a Weapons or Equipment Mod, you can add the Weapon to the Inv= line with some ammo and set Action=Start. For Instance:

Description="Action=Start;Inv=MyPackage.MyWeapon;MyPackage.MyAmmo(100);;

Keep in mind that this will eliminate the players starting Inventory and the Player will also be limited to 100 rounds, or however many, of Ammo.

Single Player Maps

To start your Map, set the Map= value to the name of your map with .dx extension. You can use any other option with this including setting Action=Start, setting a starting Inventory, Skills, Skill Points, Augs, etc. You can also create teleports in your Map to other Maps, thus creating a Mini-Mod of several Maps in a row.

If you need to give the player more flexibility in Inventory, you can use the Store Items in the UC Mod and give the Player some starting credits instead of setting a starting Inventory.

Single Player Mods

Bug Alert

When changing the Player Class and Loading the same Map as before, the Player Class will not change.