Ok, I'll give an abridged version, there's nothing to it really so you shouldn't have any problems
Create a new folder in you UT directory (C:\UT2003 by default) and call it whatever you want; for this I'll use NewInvasion. Inside the new folder create another one called Classes.
Open Notepad. Copy the following and paste it into your new notepad window:
Code:
class NewInvasion extends Invasion
config;
defaultproperties
{
InvasionBotNames(1)="Gorge"
InvasionBotNames(2)="Cannonball"
InvasionBotNames(3)="FrostBite"
InvasionBotNames(4)="Arclite"
InvasionBotNames(5)="BlackJack"
InvasionBotNames(6)="Sapphire"
InvasionBotNames(7)="Roc"
InvasionBotNames(8)="Hyena"
GameName="NewInvasion"
}
Now, just replace the names listed with whatever custom bots you want, and change the GameName to match your new name. Save this in the Classes folder you just made as NewInvasion.uc (it must be the same as the class name and have the .uc extension).
Now head into the System folder and open UT2003.ini. Search for EditPackages. Add this to the end of the list:
EditPackages=NewInvasion
This needs to match the name of your new folder. Save the file. Open the command prompt (Start menu -> Programs -> Accessories -> Command Prompt). Head to the location of your system directory:
cd\
cd UT2003
cd system
(assuming you've installed to the default directory). Now type UCC MAKE into the prompt and it will compile your new class.
Open Notepad again and copy paste the following:
Code:
[Public]
Object=(Class=Class,MetaClass=Engine.GameInfo,Name=NewInvasion.NewInvasion,Description="DM|New Invasion|SkaarjPack.Tab_IAInvasion|SkaarjPack.MapListSkaarjInvasion|false")
[DamTypeBelch]
DeathString="%o was sauteed by a gasbag."
FemaleSuicide="A Gasbag blew itself up."
MaleSuicide="A Gasbag blew itself up."
[DamTypeBruteRocket]
DeathString="%o was blasted by a Brute Rocket."
FemaleSuicide="A brute fired its rocket prematurely."
MaleSuicide="A brute fired its rocket prematurely."
[DamTypeKrallBolt]
DeathString="%o was zapped by a krall."
[DamTypeSkaarjProj]
DeathString="%o was scorched by a skaarj."
[DamTypeWarlordRocket]
DeathString="%o was utterly destroyed by a Warlord."
FemaleSuicide="A Warlord fired its rocket prematurely."
MaleSuicide="A Warlord fired its rocket prematurely."
[HUDInvasion]
YouveLostTheMatch="The Invasion Continues"
[Invasion]
GameName="NewInvasion"
[InvasionDeathMessage]
SomeoneString="a monster"
[InvasionMessage]
OutMessage="is OUT!"
[MeleeDamage]
DeathString="%o was eviscerated."
FemaleSuicide="%o was hacked."
MaleSuicide="%o was hacked."
[ScoreboardInvasion]
TeamScoreString="Team Score"
WaveString="Wave"
[TAB_IAInvasion]
IAInvasionWaveConfig.Caption="Configure Waves"
IAInvasionInitialWave.Caption="Initial Wave"
IAInvasionInitialWave.Hint="Choose the initial wave."
[InvasionWaveConfig]
WCFGClose.Caption="Close"
WCFGLabel1.Caption="Configure each wave..."
WCFGLabel2.Caption="Difficulty"
WCFGDifficulty.Hint="How hard should the monsters on this wave be."
WCFGCreat01.Caption="Pupae"
WCFGCreat01.Hint="The Skaarj Pupae."
WCFGCreat02.Caption="Razor Fly"
WCFGCreat02.Hint="The Razor Fly."
WCFGCreat03.Caption="Manta"
WCFGCreat03.Hint="The Manta."
WCFGCreat04.Caption="Krall"
WCFGCreat04.Hint="The Krall."
WCFGCreat05.Caption="Elite Krall"
WCFGCreat05.Hint="The Elite Krall."
WCFGCreat06.Caption="Gasbag"
WCFGCreat06.Hint="The Gasbag."
WCFGCreat07.Caption="Brute"
WCFGCreat07.Hint="The Brute."
WCFGCreat08.Caption="Skaarj"
WCFGCreat08.Hint="The Skaarj."
WCFGCreat09.Caption="Behemoth"
WCFGCreat09.Hint="The Behemoth."
WCFGCreat10.Caption="Ice Skaarj"
WCFGCreat10.Hint="Ice Skaarj."
WCFGCreat11.Caption="Fire Skaarj"
WCFGCreat11.Hint="The Fire Skaarj."
WCFGCreat12.Caption="Warlord"
WCFGCreat12.Hint="The Warlord."
WCFGCreat13.Caption="Pupae"
WCFGCreat13.Hint="The Skaarj Pupae."
WCFGCreat14.Caption="Pupae"
WCFGCreat14.Hint="The Skaarj Pupae."
WCFGCreat15.Caption="Razor Fly"
WCFGCreat15.Hint="The Razor Fly."
WCFGCreat16.Caption="Razor Fly"
WCFGCreat16.Hint="The Razor Fly."
WCFGDuration.Caption="Duration"
WCFGDuration.Hint="How long should each wave last."
WCFGWaveNo.Caption="Wave No"
WCFGWaveNo.Hint="Select which wave to adjust."
Save this in the system directory with an .int extension as NewInvasion.int. This file is needed for the gametype to be recognized
That's it, start the game and you should now have the new gametype available to use in the usual selection box along with DM, CTF etc