El Muerte's UT2004 Creations
NoMut
NoMut
Copyright © 2004-2005 Michiel "El Muerte" Hendriks 

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:

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

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. The No= 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 the ConfigClassName). 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 classReMut per Map class
NoMut.NoMutConfigNoMut.ReMutConfig
NoMut.NoMutConfigGlobalNoMut.ReMutConfigGlobal
NoMut.NoMutConfigMapNoMut.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 the ONSMobileAssaultStation and ONSHoverTank_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