NoMut
The NoMut contains a couple of mutators that will allow you to alter the content of levels as you see fit.
You will be able to either remove items completely or to replace one item with the other.
Note: changing content of levels has an impact on the game play. Thus using these mutators won't make your server show up as a standard server
This package contains the following mutators:
- NoMut
Removes items from a level.- NoMut per Map
Per map configuration
- NoMut per Map
- ReMut
Replaces items in a level.- ReMut per Map
Per map configuration
- ReMut per Map
Downloads
New versions of this package can be downloaded from the NoMut website.License
Open Unreal Mod License Version 1, March 2004 0. Definitions "Program" the work, either in binary or source form, that has a notice attached to it stating that it has been released under this license it by the copyright holder. "Modification" a derivate of the Program or any other work based on the Program "Linking" using parts of the Program, or using parts of any other work, thus creating a direct dependency "You" the licensee "Runtime Environment" the virtual machine or operating system required to run the Program, as released by the Publisher or Creator of said runtime environment. This includes any extentions or updates for the runtime environment released by the Publisher or Creator. 1. License Herewith everybody is granted permission to copy and distribute verbatim copies of this document. The only restriction lies on changing the content, with the exception to translation of this license. This license applies to the Program that has been released under this license. The license only applies to copying, distribution and modification of the Program. Execution or output of the Program are not covered by this license, however the right for additional limitations on the use (that do not cover copying, distribution or modification) is granted to the copyright holder. This license is only valid when all terms in this license comply with the licenses of the dependecies of the Program. This includes the license of the possible required runtime environment. 2. Copying and distribution You are granted to copy or distribute verbatim copies of the Program, on any medium, or in any format as you see fit. You are not limited to charging a fee for the physical act of transferring the copy, nor are you limited to provide warranty for the Program in return of a fee. Unless this is prohibited by the license of the Runtime Environment. Any distribution of the program should be accompanied with a verbatim copy of this license. 3. Modification You are allowed to modify the Program, or portions of it, therefore making it a derivate of the Program. You are allowed to distribute your modifications under the following conditions: - You must clearly state that it is a modification or derivate of the Program - The original copyright notice must be kept intact - The modified files must contain notices of the changed made to it - The Modification must be released under the same license as the Program - Distribution happens in compliance with section 2 4. Source The original source of the Program or Modification must be freely available on request. 5. Linking The Program or Modification may only link with other work that have been released as free software. The license grants exclusive right to link with any part of the Runtime Environment, as provided by the publisher or creator of said Runtime Environment. Reusing pieces of source code available in the runtime environment in the Program is only allowed under the following terms: - the "borrowed" code is clearly marked to originate from the runtime environment, quoting the original copyright. - the following notice is added to the top of the file: "This file contains portions of code from the runtime environment." The right to "port" the Program to another runtime environment is reserved for the copyright holder. 6. NON WARRANTY THIS SOFTWARE DOES NOT COME WITH A WARRANTY OF ANY KIND, UNLESS NOTED OTHERWISE BY THE COPYRIGHT HOLDER OR WARRANTY PROVIDER. THE ENTIRE RISK OF THE PERFORMANCE AND QUALITY OF THE PROGRAM LIES WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU WILL ASSUME ALL COSTS FOR REQUIRED REPAIR OR CORRECTION.
Revision history
Changes since v100
- Pickup bases, weapon lockers and vehicles factories will now be checked and updated/removed when needed. This will have a more polished result.
- (NoMut only) Non removable actors (bNoDelete = true or bStatic = true) will now simply be hidden.
- Fixed the bRecurse option for ReMut, it didn't work at all
NoMut
This mutator can remove certain elements from the level. You can remove things like pickups, vehicles, pretty much everything.Installation
The mutator name is:NoMut.mutNoMut
You can install it as any other mutator. When installed and configured correctly it will add a new field to the server info list:
NoMut Removes: ...
This contains a list actors that are removed from the game.
Configuration
The configuration of this mutator goes into the system configuration file (UT2004.ini
):
[NoMut.mutNoMut] bLog=false No=(ClassName="Package.Class",bRecurse=false,bSafeCheck=false,Exempt=("Package.Class","Package.Class")) No=(ClassName="Package.Class",bRecurse=false,bSafeCheck=false) No=(ClassName="Package.Class",bRecurse=false) No=(ClassName="Package.Class") ...
- bLog
- If set to true it will log the items removed from the game. This is a debug setting and is not recuired to be enabled.
- No
- This is a list with classes to be removed. Virtually you can ad as much entries as you want. Only ClassName is required.
- ClassName
- This is the fully qualified name of the class to be removed, for example the fully qualified name of Assault rifle is:
xWeapons.AssaultRiflePickup
. If the ClassName is invalid it will be reported in the log.
You can use tools like UnCodeX, or it's output to find the full class names. - bRecurse
- If this is set to true all subclasses of the specified classname will also be removed from this game. For example if the ClassName is
Engine.Vehicle
it will remove all vehicles from the game. False by default - bSafeCheck
- Only remove actors if it's not vital for the game. The checks performed are listed below. Defaults to false.
- Exempt
- Exempt these classes from being replaced. This is only used when
bRecurse=true
. These subclasses will be left alone, this is also recursive.
NoMut per Map
This mutator does the name as NoMut but it has a per map configuration. This will allow you to use different rules for each map.Installation
The mutator name is:NoMut.mutNoMutPerMap
Configuration
The configuration is pretty much identical to the on of NoMut. TheNo=
configuration is the default configuration if the current map doesn't have it's own configuration.
[NoMut.mutNoMutPerMap] bLog=false bAutoCreateConfig=false ConfigClassName=NoMut.NoMutConfig No=(ClassName="Package.Class",bRecurse=false,bSafeCheck=false,Exempt=("Package.Class","Package.Class")) No=(ClassName="Package.Class",bRecurse=false,bSafeCheck=false) No=(ClassName="Package.Class",bRecurse=false) No=(ClassName="Package.Class") ...
- bAutoCreateConfig
- If set to true a configuration entry is created for the map if it didn't have one already.
- ConfigClassName
- This defines the configuration class used to store the per map configuration. See below for more info
Per map configuration
Each map will have it's own section in the configuration file (depends on theConfigClassName
). Each section will look like this:
[MapName ConfigClass] No=(ClassName="Package.Class",bRecurse=false,bSafeCheck=false,Exempt=("Package.Class","Package.Class")) No=(ClassName="Package.Class",bRecurse=false,bSafeCheck=false) No=(ClassName="Package.Class",bRecurse=false) No=(ClassName="Package.Class") ...
- MapName
- This is the name of the map, it's just filename without the extention. It's not case sensitive.
- ConfigClass
- The name of the config class used, it's one of the following:
NoMutConfig
,NoMutConfigGlobal
,NoMutConfigMap
- No
- This configuration is identical to the mutator configuration.
Configuration classes
- NoMut.NoMutConfig
- This is the default configuration class, it will store the per map configuration in the system configuration file (
UT2004.ini
). The ConfigClass name to use in the map configuration section is:NoMutConfig
- NoMut.NoMutConfigGlobal
- This will store the configuration per map in a global configuration file
NoMutConfig.ini
, this is usefull to share the complete configuration between servers. The ConfigClass name to use in the map configuration section is:NoMutConfigGlobal
- NoMut.NoMutConfigMap
- This will store the configuration in a seperate file for each map:
MapName.ini
. The ConfigClass name to use in the map configuration section is:NoMutConfigMap
ReMut
This mutator can replace certain elements in the level. You can replace things pretty much anything for anything else, e.g. replace a vehicle for a weapon. This mutator is pretty much identical to the Arena mutators, except this gives you a more advanced method to configure.Technical: every
Actor
with properties bNoDelete=false
and bStatic=false
can be replaced.
Notice: Replacing actors is more difficult than simply removing them. For example, if you replace a weapon you also need to replace the weaponpickup and the weapon's ammo class. So when you replace actors do some research in other items that also might need to be replaced. ReMut will not do this automatically for your (because sometimes you want a complete different behavior).
Installation
The mutator name is:NoMut.mutReMut
You can install it as any other mutator. When installed and configured correctly it will add a new field to the server info list:
ReMut Replaces: ...
This contains a list actors that are replaced.
Configuration
The configuration of this mutator goes into the system configuration file (UT2004.ini
):
[NoMut.mutReMut] bLog=false Re=(From="Package.Class",To="Package.Class",bRecurse=false,bSafeCheck=false,Exempt=("Package.Class","Package.Class")) Re=(From="Package.Class",To="Package.Class",bRecurse=false,bSafeCheck=false) Re=(From="Package.Class",To="Package.Class",bRecurse=false) Re=(From="Package.Class",To="Package.Class") ...
- bLog
- If set to true it will log the items removed from the game. This is a debug setting and is not recuired to be enabled.
- Re
- This is a list with classes to be removed. Virtually you can ad as much entries as you want. Only From and To are required.
- From, To
- This is the fully qualified name of the class to be removed, for example the fully qualified name of Assault rifle is:
xWeapons.AssaultRiflePickup
. If the ClassName is invalid it will be reported in the log.
at the bottom of this page is a small list with fully qualified names of some game elements. - bRecurse
- If this is set to true all subclasses of the specified From class will also be replaced. For example if From is
Engine.Vehicle
it will replace all vehicles. False by default - bSafeCheck
- Only remove actors if it's not vital for the game. The checks performed are listed below. Defaults to false.
- Exempt
- Exempt these classes from being replaced. This is only used when
bRecurse=true
. These subclasses will be left alone, this is also recursive.
ReMut per Map
This mutator is just like the NoMut per Map mutator a per map configuration of ReMut.The mutator works the same as the NoMut version, the only difference is the class names used for the ConfigClassName variable.
NoMut per Map class | ReMut per Map class |
---|---|
NoMut.NoMutConfig | NoMut.ReMutConfig |
NoMut.NoMutConfigGlobal | NoMut.ReMutConfigGlobal |
NoMut.NoMutConfigMap | NoMut.ReMutConfigMap |
Appendix
Safe Check
The following checks are performed to check if a actor is safe to be replaced\removed.- Vehicle classes
bKeyVehicle
variable is set to false. By default only theONSMobileAssaultStation
andONSHoverTank_IonPlasma
have these set.- Weapon classes
bCanThrow
variable is set to true. Weapons you can not throw are usualy important for the game (like the ball launcher)- Controller classes
- In case of Team Games the result of the function
CriticalPlayer
defines the safe state. This is game type depended, usualy you don't replace\remove controller classes