I don't need to test my programs. I have an error-correcting modem.
Until somebody writes a detailed technical description of the process, here's a link to an old Chimeric tutorial.
Automating UMOD Creation
When you're developing a mod or a mutator it's always a good idea to automate as much of the creation process as possible; that includes the creation of distribution packages.
There are a couple of very pragmatic reasons for that: Firstly, it's more convenient for you on the long run; secondly, once you have automated and validated the process you don't have to bother with whether the created files are complete and working in future; thirdly, last-minute changes and fixes are much more easily and conveniently applied if all you have to do to pack your distribution packages is a single double-click on a batch file.
:: UCCMaster.bat @echo off if "%1" == "" goto end copy Manifest.* OldManifest.* ucc.exe master %1 del Manifest.* copy OldManifest.* Manifest.* del OldManifest.* :end
Place this file in Unreal Tournament's System directory and simply drop your custom .ini file for UMOD creation on it. To automatize even this step, create another small batch file that calls UCCMaster.bat with the .ini file being its first command line argument.
UMOD files for UT2003: UT2MOD
Creating UT2MOD files is basically the same as creating a UMOD file. Actually the only difference is the file's extension and UT2003 as requirement instead of Unreal Tournament.
Note: You should not only create YourMod.ini and YourMod.int for creating your UT2MOD file, but also YourMod.det, .est, .frt, .itt, .kot, .smt and .tmt (just copy YourMod.int for that). Otherwise localized versions of UT2003 will display your mod as "Unreal Tournament 2003" complete with Epic Games as developer and the UT2003 website. This problem is caused by a Manifest.det, .frt, etc. in the UT2003\System directory which doesn't really belong there. It'll override the settings in YourMod.int unless you override them yourself with the corresponding YourMod localization file.
Instead of creating physical copies of YourMod.int (for the .det, .frt etc. versions), you can use the following statements in your UT2MOD file's Manifest.ini to have "ucc master" create them for you automatically when packing the UT2MOD file:
Copy=(Src=System\Manifest.ini,Flags=3) Copy=(Src=System\Manifest.int,Master=System\Manifest.int,Flags=3) Copy=(Src=System\Manifest.det,Master=System\Manifest.int,Flags=3) Copy=(Src=System\Manifest.est,Master=System\Manifest.int,Flags=3) Copy=(Src=System\Manifest.frt,Master=System\Manifest.int,Flags=3) Copy=(Src=System\Manifest.itt,Master=System\Manifest.int,Flags=3) Copy=(Src=System\Manifest.kot,Master=System\Manifest.int,Flags=3) Copy=(Src=System\Manifest.smt,Master=System\Manifest.int,Flags=3) Copy=(Src=System\Manifest.tmt,Master=System\Manifest.int,Flags=3)
Avoiding filename problems
If you include filenames over 31 characters you'll prevent Mac users from using your mod.
If you include filenames with spaces ("My New Mod Readme.txt") you'll make it more difficult for Linux users to use your mod (the text-mode installer can cope with filenames like that, but the GUI one can't).
Please don't call your readme "Readme.txt" when you could make it clear what it applies to by calling it something like "CTF-Whatsitsname][.txt".
Mychaeel: In my personal opinion I think people not reading readme files or bothering to check don't deserve any better. I value the convenience of users that know how to use their tools and bother to read readme files much higher.
Mychaeel: I have a custom Perl script here that automatizes the creation of both a .umod and a .zip distribution, given an .ini file. The script can also optionally skip sections from the .ini file during creation of the UMOD installer or selectively merge different .ini files; I used that to automatize the creation of the three different Jailbreak distribution packages. If anybody is interested in that script, send me an email.
Wormbo: One thing we need to cover here is how to compress packages for the installer. I tried using UCC Compress, but the installer didn't decompress them afterwards.
Mychaeel: I doubt that is possible in a way that's automatically decompressed by the installer. I've never seen it done – by nobody – anywhere.
Wormbo: The UT installer (also GOTYE CD2) itself decompresses a lot maps. Maybe that feature only works with maps.
Mychaeel: Interesting! That'd be indeed a neat thing to know. Maybe it's indeed what
ucc compress produces, but requires some particular file flag in the UMOD's file directory (see UMOD/File Format). I've lost my G.O.T.Y.E. CD unfortunately :-( or I'd have a look at that at once.
Wormbo: The GOTYE CD2 doesn't use a UMOD file, but there's a Manifest.ini similar to the one on CD1 and in any UMOD file and the Setup.exe there is the same as in UT's System directory.
Flags does this Manifest.ini specify for the compressed files in question?
Wormbo: Hmm, nothing? There's only a line like this:
However this didn't work when I tried with a compressed package and a similar line.
MythOpus: A response to wormbos earlier comment... textures sounds etc... can be compressed to. Look at the way Deus Ex installs itself :)
Gengar003: I had the same problem as wormbo... and I noticed something.
The .unr.uz maps that came with my GOTY CD are uncompressed into .unr maps by the main setup.exe installer with no problems.
When I run ucc compress on the uncompressed versions of those maps, the resulting .unr.uz maps are NOT the same file size (they're slightly larger) than the originals. It would seem that the installer requires a different means of compression than UCC.exe provides. Unless someone can figure out what was used to compress the original maps, it doesn't look like we'll be able to have compressed content installed automatically...