Unreal Tournament is the sucessor to the awesome game that was Unreal. Boosting the most advanced gaming engine when it was released, this game kicks some serious arse. Unreal Tournament's got it all without a doubt: ton's of amazing levels, kick-ass weapons, brain-melting modes of play, unbelievably deadly bots, and a slew of other features bound to have your happiness glands working overtime! I have not even mentioned the mod's either, and boy are they bountiful and bloody brilliant, with titles such as Strike Force. So give this game and spin, then crank up a few of it's mods and you will be wondering how you lived without this game!

Post tutorial Report RSS Unreal Tournament Data Organizing

Unreal Tournament has a different way of organizing game data since there is nothing like the *.pak file system as seen in the Quake engines, and many other engines. This will explain how UT's system works.

Posted by on - Basic Management

[page=Introduction]
Unreal Tournaments data organization structure is very different from most other game engines. Whereas in most, all the files are compressed together, in the Unreal Engine, they are compressed seperately. This tutorial aims to explain the Unreal Tournament directory structure in a bit more detail for you.

[page=Where Everything Goes]
Here's the basic directory structure for Unreal Tournament:

UnrealTournament
- \Cache
- \Help
- \Logs
- \Maps
- \Music
- \Save
- \Sounds
- \System
- \Textures

Now, lets explain what all these folders are for. Some may be obvious to you, same may not, so I'll explain them all.

\Cache
This folder is for storing packages that have been downloaded from Unreal Tournament online game servers so you could play. These files are deleted when not used for a period of around 30 days. If a mod is downloaded from a server, you will be unable to play it offline since the file which tells UT that the mod exists, does to exist itself. No specific file types are associated with this folder.

\Help
This is the default location for ReadMe's and Guides for most mods, and also holds the startup images for when you load Unreal Tournament. It is good practice to put all your help files in here. No specific file types are associated with this folder.

\Logs
This folder is an archive of all old engine logs. The log from the last game you have played is normally stored in the \System folder and is called UnrealTournament.log. No specific files types are associated with this folder.

\Maps
Obviously, the Maps folder stores all the maps that UT has, and also any ones that you have downloaded should be installed into this folder. UT maps also have a naming definition that is required for the map to show in the in-game listing. The naming conventions go as follows:

  • DM-NameHere - Used for Deathmatch, Team Deathmatch, and Last Man Standing.
  • DOM-NameHere - Used for Domination.
  • CTF-NameHere - Used for Capture the Flag.
  • AS-NameHere - Used for Assault.

All map files have the file type convention of *.unr. Maps are created with the UnrealEditor.

\Music
All music tracks are held here. Music files can be of any name, and have the file type convention of *.umx. Music files are first made in a tracker program and saved to *.it before they are imported into *.umx files through the UnrealEditor.

\Save
The save folder is not normally present in UnrealTournament, but the save features of the engine can be utilized by your mod, so I have included this here anyway. Save games have the prefix *.usa (Coincidence?). I will not go into detail of how you create the save game files in game code, that is the job of a coding tutorial.

\Sounds
Here we start to get to the complex packages. Sound packages consist of groups of sounds that can be used for a variety of purposes. These include menu sounds, annoucers, ambient map effects, and weapon sounds. Sounds are 44Khz, 8 or 16bit Mono *.wav files before they are imported into *.uax packages through the Unreal Editor. The package will normally have many sounds, and they will be grouped.

\System
The core of the engine, the System folder contains all game and engine code. All the engine code is stored in Dynamic Link Libraries (*.dll files), the game loader is of course a *.exe file, config files are *.ini files and can be created and used by any mod wether it is a mutator or total conversion, *.int files are files that can notify game code that something exists, they are used by mutators to inform UT that the mutator exists and so they are listed in the menu, *.log files are logs from the last game played, and finally, the most important package type for modders is the *.u package. *.u packages hold all game code. No game specific code is coded in C++. It is all coded in Unrealscript, a language for specific use of the Unreal Engine. These *.u files can also import sounds (*.wav), textures(*.pcx or *.bmp), and models (*.3d, also optionally a *.psk file for skeletal animation)(Only *.u files can have models). *.u files are compiled Unrealscript code and are generated through UCC.exe or the UnrealEditor.

\Textures
Texture packages hold textures for map walls, skins for 3D models, and graphics for the Heads Up Display and menus. Textures are first *.pcx files (Indexed 256 colours), or *.bmp files. Their size must be divisable by 2. So a graphics which are the sizes 512*512, 256*256, 256*128, 32*256, are all valid sizes. 10*10, 200*200, are not valid though and will not import correctly. Texture packages normally contain a variety of textures which will be grouped according to their use in the game enviroment. Texture packages have the *.utx file name convention, and are created in the UnrealEditor.

[page=Your own Directory Structure]
If you are creating a Total Conversion, chances are you will want to organize your own directory structure, having all your textures, sounds and code in their own folders. This is possible. Also, with TC's you can have your own executable. Here are the steps to do this.

1) Creating the exe and INI files
To create the exe and INI file, copy the UnrealTournament.exe and the UnrealTournament.ini files and rename them to a name suiting your mod, in this example I will use MyMod. So now I have MyMod.exe and MyMod.ini.

2) Creating folders
In the UnrealTournament folder, create a new folder for your mod. For me, this will be MyMod. So now the directory structure will be like:

\UnrealTournament
- \MyMod

With the other folders of course. Now open up the folder you just created. Create new folders for the packages your mod includes. Your folder will now be something like this:

\UnrealTournament
- \MyMod
-- \Maps
-- \Sounds
-- \System
-- \Textures

You can now put all the packages you have created in to their corrisponding folders.

3) Editting the INI file
Open the INI file you created previously with NotePad or any text editor. Look for

[Core.System]

Looking down under that you will see:

PurgeCacheDays=30
SavePath=..\Save
CachePath=../Cache
CacheExt=.uxx
Suppress=DevLoad
Suppress=DevSave
Suppress=DevNetTraffic
Suppress=DevGarbage
Suppress=DevKill
Suppress=DevReplace
Suppress=DevSound
Suppress=DevCompile
Suppress=DevBind
Suppress=DevBsp
Paths=../System/*.u
Paths=../Maps/*.unr
Paths=../Textures/*.utx
Paths=../Sounds/*.uax
Paths=../Music/*.umx

Now add the new paths. You musn't remove the current paths, because;
a) You will have less resources to work with.
b) You need some of the code in the current *.u packages.
After editting, it should now look like this:

PurgeCacheDays=30
SavePath=..\Save
CachePath=../Cache
CacheExt=.uxx
Suppress=DevLoad
Suppress=DevSave
Suppress=DevNetTraffic
Suppress=DevGarbage
Suppress=DevKill
Suppress=DevReplace
Suppress=DevSound
Suppress=DevCompile
Suppress=DevBind
Suppress=DevBsp
Paths=../System/*.u
Paths=../Maps/*.unr
Paths=../Textures/*.utx
Paths=../Sounds/*.uax
Paths=../Music/*.umx
Paths=../MyMod/Maps/*.unr
Paths=../MyMod/Sounds/*.uax
Paths=../MyMod/System/*.u
Paths=../MyMod/Textures/*.utx

It is also possible to organize your maps by editting the UnrealTournament.ini file using this method.

I hope you learned something from this tutorial, and I will return in the future to make some new tutorials in the coding area. If there is anything that needs correcting, please inform me via a Private Message. Also, please note that this system has changed significantly for Unreal Tournament 2004 mods, since Epic Games wrote some new code for mods. You can view their document on the UT2004 system here. This article is stricly for Unreal Tournament and all Unreal Engine 1.0 based games.

Post comment Comments
Mxmz_
Mxmz_ - - 42 comments

Great for the starters :)

Reply Good karma Bad karma+1 vote
DJ-Jozy
DJ-Jozy - - 2 comments

Well, i just started geting into unreal tournament and editing, adding new things.

I already figered all of the tutorial out part from ading the core paths =)

thanks !

Reply Good karma Bad karma+1 vote
Post a comment

Your comment will be anonymous unless you join the community. Or sign in with your social account: