Search public documentation:
- Improved Mod Support
- Running a Mod
- Setting Up a Mod Project
- Configuration Files
- System Files
- Splash Screen
- Installation and Distribution
- Example Mod
MyModis the (directory) name of your mod. You simply have to add the above commandline switch to the normal commandline you use to start various elements. For example:
// start the game: ut2004.exe -mod=MyMod // start the game with a diffirent user ini: ut2004.exe -USERINI=MyUser.ini -mod=MyMod // join a server running your mod: ut2004.exe 220.127.116.11:7777 -mod=MyMod // start UnrealEd for your mod unrealed.exe -mod=MyMod // running the UnrealScript compiler ucc.exe make -mod=MyModThe mod switch is just like any of the other command line options?. Note: for the rest of the document it is assumed that your mod is called MyMod.
- Latest UT2004 Patch
- UT2004 UnrealScript source files - All the .UC files needed to start creating mods.
- UT2004 Debug package files - Debug version of the game's Unreal Script packages.
- UDE 3.0 (UnrealScript Development Environment) - UDE is a full featured editing environment similar to Visual Studio from Microsoft.
- Maya Complete Plugins - The Maya Complete versions of the user-friendly PLE plugin that shipped with UT2004.
- ActorX - Animation Export Tools
c:\ut2004 +- Animations +- Help +- KarmaData +- Maps +- Music +- Sounds +- System +- Textures +- WebAll of the game's content and script packages are nicely seperated in various folders. The isolated directory of your mod should be created in the same root directory. Therefore, create a directory called
MyModin the root directory. The name of this directory is important because that's the name you will have to use for the -mod= commandline switch. So, now you should have a directory called c:\ut2004\MyMod. This directory will be the root directory of your mod that will contain your mod's content and scripts. How you further organise the content in the MyMod directory is up to you, with one exception: a sub-directory called
Systemhas to exist. The rest of the directories is up to your configuration. configuration), it doesn't apply to the UnrealScript packages. The UnrealScript packages you create should be set up just like you would do with a normal package for UT2004 except it should be within your mod directory. Your mod directory would look like this:
c:\ut2004 ... +- MyMod | +- MyModCode <-- an UnrealScript package for your mod | | +- Classes <-- put you UnrealScript source code here (.uc) | +- MyModGUI <-- another UnrealScript Package | | +- Classes | +- System <-- configuration files (.ini), localization files (.int), and compiled UnrealScript packages (.u) ...
c:\ut2004 ... +- MyMod | +- Animations <-- Skeletal Mesh animation packages (.ukx) | +- Help <-- elements such as a splash screen (.bmp) and ReadMe (.txt) | +- Maps <-- Level packages (.ut2) | +- Music <-- Music files (.ogg) | +- Sounds <-- Sound packages (.usx) | +- Textures <-- Texture packages (.utx) ...
.kafiles, you will need to have a KarmaData directory in your mod's root directory. This directory will automatically be used if it exists. Configuration Files page.
User.ini) with your mod's default configuration. The files
DefUser.inhave to exist in your mod's
Systemdirectory. When the game starts (with your mod) the following is done: If
UT2004.iniexists in the game's System directory, it will be used to merge it with the mod's
Default.ini; otherwise it will use the game's
Default.iniand merge it with the mod's
Default.ini. The same goes for the
user.inifiles. It's important to understand how the merging of the files works as well as how the Mod's configuration file modifiers available to your mod's default configuration files. Let's take a look at an example Default.ini configuration file for MyMod.
[Core.System] +Paths=../MyMod/System/*.u +Paths=../MyMod/Textures/*.utx +Paths=../MyMod/StaticMeshes/*.usx +Paths=../MyMod/Maps/*.ut2 [Editor.EditorEngine] +EditPackages=MyModCode +EditPackages=MyModGUI [Engine.GameEngine] MainMenuClass=MyMod.MyModMainMenuIt looks fairly similar to the original Default.ini configuration file. Your mod's default configuration files should only contain the changes required, nothing more. Note the + prefix in front of the
EditPackageslines. There are two prefixes you can use: + for addition, and - for removal of entries. This is only usefull for dynamic array configuration entries (like
ServerActors, etc.). For example, adding the following entry:
-Paths=../Maps/*.ut2Will remove the default path to the Maps directory from the generated configuration file. This way the maps for the normal game can't be accessed from your mod. If no prefix is used the line will simply set the values, old values will be overwritten. Keys get processed in the order they appear, so the following is possible:
-CacheRecordPath=../System/*.ucl +CacheRecordPath=../MyMod/System/*.ucl +CacheRecordPath=../System/*.uclThis basically inserts the reference to you mod's ucl files before looking in the default game location. Be careful with ordering of some of the entries the order often is important.
[MOD] ModTitle=Test Mod ModLogo=TestModTex.TestModLogo ModDesc=This is a test of the mod system. This is only a test. ModCmdLine= ModURL=https://udn.epicgames.com/Two/ImprovedModSupport
ModTitle: This is the title of the mod and will be displayed in the select list of the User Mods tab.
ModLogo: This is the full name (i.e.
Package.texture) of the image to be displayed on the User Mods tab of the Community menu when someone selects your mod. It should be 512x128. It's assumed that the package is in c:\ut2004\MyMod\Textures.
ModDesc: This options sets the description that will show in the box on the User Mods tab. You can use the pipe character ("|") to add carriage returns/line feeds to the display.
ModCmdLine: This is the command line that will be used to launch your mod. You do not need to include the -mod= as it will be auto-appended. The resulting commandline would be something like: ut2004.exe -mod=MyMod <ModCmdLine>.
ModURL: This is a hyperlink to a web site for your mod.
config(SomeName)class modifier). Unfortunately at this time, this feature is not supported.
<ModName>.Log(i.e. MyMod.log). All other secondary log files (such as ucc.log) will still be created in the game's System directory.
DUMPINTwill always create the new .int files in the game's System directory. This is an unfortunate outcome; but changing it would have proven difficult at this time.
CacheRecordPatharray). This requires some work on your part.
EXPORTCACHEwill create the .ucl files in the first directory found in the
CacheRecordPatharray. Using the trick above, you can force it to use your directory, but that's unsupported.
Pathsarray in reverse (bottom to top) and it checks each directory for .UPL files, adding any that it finds to the cache. When it reaches the game's System directory, the following occurs:
- If you are not running with a mod, it will scan the directory as normal.
- If you are running a mod, and no .upl files have been found already, it will scan the directory as normal.
- If you are running a mod, and the game has already found even a single .upl file, it will skip the default System directory.