Wormbo's Enhanced Items
Scripting Guide

Advanced Weapon Priority List

The advanced weapon priority window displays all entries of the player's WeaponPriority array. To get the classes belonging to the names in that array it searches through all *.int files looking for objects declared with MetaClass=Engine.Weapon (usually Unreal weapons), MetaClass=Botpack.TournamentWeapon (regular UT weapons) and MetaClass=EnhancedItems.EnhancedWeapon.
Weapons are declared through a line in the [Public] section which looks like this:

Object=(Name=PackageName.ClassName, Class=Class, MetaClass=Botpack.TournamentWeapon, Description="Weapon's name")

Name holds the weapon's package and class, Description is optional and consists of the weapon's name as it should be displayed and optionally a comma followed by the description of that weapon. The description will be used when the weapon class is either not a TournamentWeapon or its WeaponDescription property is empty. To declare Unreal weapons use Engine.Weapon as MetaClass.
EnhancedWeapon subclasses are declared as TournamentWeapons unless they should be displayed instead of a Weapon or TournamentWeapon. In this case the MetaClass is EnhancedItems.EnhancedWeapon and Description consists of the class name of the replaced weapon, a comma and the weapon name:

Object=(Name=PackageName.ClassName, Class=Class, MetaClass=EnhancedItems.EnhancedWeapon, Description="Package.ReplacedClass,Weapon's name")

This method is used to correctly display the Enhanced Shock Rifle which would show up as another regular Shock Rifle in UT's Weapon Priority List.

Arena Match Weapon Selection Menu

Since the Arena Match mod also uses EnhancedWeapon declarations to display the weapons in its menu there is the possibility to declare EnhancedWeapons which are not displayed in the priority window. Just leave the replaced weapon's class empty. Arena Match also allowes to put weapons into special groups.

Example I: Hiding weapons in the priority list
Rockets UT replaces the Redeemer. Since the original Redeemer should still be shown in the Weapon Priority list the Rockets UT Redeemer is declared with MetaClass=EnhancedItems.EnhancedWeapon and Description=",Redeemer".

Example II: Weapon groups
The Unreal Forever mod (U4e) has a lot of weapons. One of them is the Katana sword. The U4e weapon list declares it with the following line:

Object=(Name=U4eT.Katana, Class=Class, MetaClass=Botpack.TournamentWeapon, Description="Katana,Melee")

The Description value tells Arena Match, that the weapon class U4eT.Katana has the name "Katana" and is in the group "Melee" of the U4eT package.

The packages' names do not always reflect the mod's name they belong to. You can tell Arena Match the real name and a shorter name of the mod by using a declaration in the following form:

Object=(Name=Engine.GameInfo, Class=Class, MetaClass=Engine.Info, Description="PackageName,Mod's Name,Short Name")

PackageName
The name of the package file without extension. The file ArenaMatch.u would be declared as

Object=(Name=Engine.GameInfo, Class=Class, MetaClass=Engine.Info, Description="ArenaMatch,Arena Match")

Mod's Name
The full name of the mod, e.g. "Unreal Forever" or "The Mod With The Longest Name Ever".
Short Name
A shorter name for the mod, e.g. "U4e" or "TMWTLNE".
The Name value is not important, you can specify any subclass of Engine.Info.