## MonsterMash V2

### Contents

1. What is MonsterMash? Introduction...
2. Historical Background
3. Technical Background
4. Installation (Chapter has been removed - irrelevant - MM has been installed along with UTF)
5. Running
6. Settings
7. Commands for MonsterMash
8. New Features And Changes Since Version 1.6
9. Incompatibilities and DON'Ts

### What is MonsterMash? An Introduction...

(from the original ReadMe.txt)

Well, I (}TCP{Wolf alias Mia_The_Chaotic) coded this, but the person directly in charge for the existence of this modification goes under the nick UnLeaded.

One day he told me he liked the game "OutLaw" and the "Kill the Chicken" gaming mode as a fun alternative from time to time to normal deathmatch against players. He thought he might like a "kill the pupae"-sort of game for Unreal, as that would be the closest to "Kill the Chicken"...

Actually I thought this can't be so difficult to achieve... LOL :))

Hmm... well the basic mod was done in just 3 days, and no I did not need the rest of the 3 weeks to debug it, but to add countless details and features to it which had not really anything to do with the mod itself :)

So what is this now? Well, basically, THIS IS THE ULTIMATE MONSTER SLAUGHTER FOR UNREAL.

Once active, MonsterMash will continually spawn in monsters of your choice in random locations in the map. They are very aggressive and eager to kill any player (or bot) wandering around. This is meant for players to cooperate on killing the monsters instead of shooting each other, but you have to aim very well not to do too much accidental damage to your comrades.

MonsterMash theoretically supports ANY game mode, so in theory you might start some Monsterfun in combination with any other mod, however, regarding stability and balance you should play MonsterMash with its native game mode!

(The following passage is no longer relevant)

All of you who do not like the "normal" Unreal, but play mods such as "Infiltration" or "Serpentine" should jump on to Section V right now to see how your mod is supported by MonsterMash. In brief, MonsterMash is a game-mode independent modification which theoretically allows you to play it in ANY game mode together with ANY other modification in existance. Some other mods are recognized by MonsterMash and directly supported. Not directly supported mods can still be used, though, and if you want to make MonsterMash support any special non-standard items, just turn off the dynamic features of it and enter the specifications of your items (or non-standard monsters...).

!! WARNING !!

MonsterMash is a !VERY! CPU costly modification. A P133 dedicated server is already maxed out with 3 bots and 40 SMALL monsters!! If you run the server on the same machine as you play, you will notice a massive decrease of performance as soon as a certain number of monsters/bots is exceeded. Also, playing this mod over the (inter)net requires a good connection. MODEM is not enough, single-ISDN will hardly do, cable is recommended! It is not a server problem, but with so many objects being created and destroyed, the overload of net traffic will lag out modems and even some ISDN connections. Okay, just wanted to let you know :)

### Technical Background

MonsterMash was originally a stand-alone mod which was only turned into a game-mode after UTF-9b. This explains some of the remarks about compatibility or lack thereof from the original readme from which the rest of this page is taken.

The only "publicized" MonsterMash versions are...

- V1.2: runs in Unreal and UT, but quite buggy and low amount of extra features - it's the only version ever to run with UT guns though...
- V1.6 (2003-09-26): is the UTF-9b game-mode which ONLY runs with UTeamFix 9b and nothing else. With UTF 9D compatibility was broken so at one time I decided to reintegrate MonsterMash into the newer UTF directly so it would not get lost
- V2.0+: here we are, the new MonsterMash includd as mutator into UTF-10 :). By using Game Bridges, it may even regain some compatibilities it had lost in version 1.6.

### Historical Background

I do not really know who came up with the first 'Monster' shooting type of DM or Teamgame on maps that are normally NOT played cooperatively on. It was DEFINITELY not Epic Megagames, their Assault-Mode in ut2k3/4 was made AFTER MonsterMash. MonsterMash itself is not the first Monster-slaying game either. I personally saw a mod called Monster Pump Shit in Unreal Tournament Tactical Operations. This did NOT inspire me to do MonsterMash, I had the idea already before, but I saw it before I began writing on it and it gave me some visual impressions.

### Running

Running is no longer like issuing the "GO" command. The mutator does it all basically, spawning monsters until the game has ended. However, if Tournament Mode is UT_Style or Real Tournament, spawning is delayed until the game starts.

During game, players get an additional stats display on their HUDs, as displayed here:

The first line informs the player, how many players currently are playing and how many bots, the 2nd shows the current number of monsters on the map and the (rough) maximum that can be there. The last line is a decimal representation of the spawn speed as percentage of the total maximum (basically the higher, the faster killed monsters will be replaced with new ones).

### Settings

The total settings has been changed over from being stand-alone over game-mode settings. Now it has become a mutator and settings are (hopefully) reduced to the minimal requirements (back to its stand-alone form).

MM Mutator Settings UTF_MM settings only, others are known standard overrides
Setting | Effect | Default
--- | --- | ---
AmmoTypes | This list contains all ammo types (Unreal classes) which are spawned as "extra ammo" in the game. | Classic Ammo -or- blank
AmmoTypes_ DYNAMIC | Dynamic Feature. If true, MM will look at the existing guns and extract their ammo classes to build the AmmoTypes list. Originally, this feature was looking at the class name of a weapon and then adding what ammo class belonged to it. This reduced the feature to only being able to add ammo from known weapons. However, weapons do have an ammo type setting on their own. If weapons have this set up properly, this feature will read it out and make use of it directly, rather than trying to interpret the class name. Thus, the feature should now work with ALL guns of any mods. It still has extra support for the MMAkimboMag since Multi-Ammo-Type weapons cannot be accomodated by a single ammotype class description. | True
AmmoTypes_ DYNAMIC_ ExtraSettings [MMAkimboSettings] | The Multimag Akimbo has 4 different ammo types. Armor Piercing, High Explosives, Shotgun and Standard. Here you can switch every single one of them on (=true) or off (=false) should you use the MMAkimbo as custom weapon mod on your server. | All True
AmpMultiplier | All Amplifier charges will be multiplied with this value (if not zero). | 4.0
BlueBallsChance | A rough chance indicator when monsters drop a blue ball when dying. Blue balls are magic upgrades... What exactly they do depends on what weapon you hold and other circumstances... go pick up lots! | 0.2
Debug | Well... if you turn this on you will put a lot of extra garbage into your serverlog, quite useless unless you are actually in the process of programming with the mutator. | False
HaltSpawning | used for debugging or testing settings. If true, no monsters will be spawned, but existing monsters will remain on the map. Please note that "GiantGasBags" can spawn normal Gasbags on their own, this can of course NOT be halted... | False
KillRewards | Some options affecting the way and extent of your reward for killing critters (aside from score...) Ammo Set true or false to gain additional ammo after a kill (on the currently selected weapon). BaseRewardOnMonsterHealth If true, all rewards will be in relation to the default health (max health) of the critter you kill, so, a Titan would yield a potentially much higher reward than a Fly (even if the Titan only had low health from a previous encounter and you only finished it off...) Health True/False to get additional health after a kill (your total health may be allowed to exceed your normal maximum this way). KillSpreeBonus If true, constant bonus additions will be made per kill for having and KEEPING a killing spree over an extended period of time. KillSpreeBonuses will ALWAYS be awarded when you do a kill during a killing spree. However, the better you get, the lower the rewards will become. RewardChance The actual chance to get an individual reward per kill - NOT AFFECTING KillSpreeBonus! IMPORTANT NOTES TO KILL REWARDS: There is no BEST setting for all this. It depends on what you are playing. But here are some suggestions: Normal Unreal best plays with EITHER a RewardChance of 0.05 to 0.07 (5% or 7%) so you get health/ammo for 5% chance per kill. OR you switch on "KillSpreeBonus", but then you SHOULD set RewardChance to 0 (zero), so that your rewards will only come from your spree. You can combine both, but this may quickly make things too easy! If you play against bigger monsters, you will want to turn BaseRewardOn- MonsterHealth on, KillSpreeBonus and make the RewardChance much higher e.g. 0.5 (50%). That's because you need more ammo to take down a much lower amount of foes... Rewards are independant of your current spree. Each time you kill a monster, you get a health/ammo reward by the chance you entered. So if you have set both health AND ammo to true, there is mathematically the double chance that you get at least one reward at all... KillSpreeBonuses no killing spree = no bonuses per kill Killing Spree = +10 health per kill up to 100 and +1/4th pickup ammo up to maxammo Rampage = +7 health per kill up to 122 and +1/8th maxammo up to 85% max of maxammo Dominating = +5 health per kill up to 155 +1/12th maxammo up to 70% of maxammo Unstoppable = +2 health per kill up to 222 and +1/17 maxammo up to 60% maxammo GODLIKE and up= +1 health up to 500 and 1/25th maxammo up to 50% maxammo In summary, the higher your spree, the less you get back in health and ammo, however, the total max in health increases while the total max in ammo reduces. Calculated rewards are ALWAYS rounded down! So even if your ammo reward would be 0.9 you get 0 (zero) - nothing! | Ammo Health Spree at 0.0
MonsterDifficulty | Can be set to harmless, normal and aggressive The harmless setting often makes monsters ignore players, sometimes even when shot at. Still if you start a fight, you will get some shots back. Monster skill level is 0. This playing mode is intended for babys at the age of 3 trying to figure out where the trigger is or grannys that have lived past their glorious fighting careers... :P The normal setting is an "average" where monsters already go on active lookout for enemies, but their skill and motivation is not enough to pose too much trouble. aggressive is what you should play really!! | aggressive
MonsterHealth | AllMonstersSameHealth If true, all monsters spawned receive the same amount of health, specify the option AllMonstersThisHealth to set the amount of health you want all critters to have. AllMonstersThisHealth (see above) MonsterHealthFactor If AllMonstersSameHealth is off and this is not the same as ONE (1.0), all monsters will have their health multiplied with this factor. | all critters defaults
MonsterMass Adjustment | This is a new feature since version 15e and still a bit experimental. When set to true, MonsterMash will try to adjust the maximum amount of monsters during a running game (if difficulty is normal or higher) depending on how players and monsters perform. For example, if players keep the monsters below a certain number at all times, MonsterMash will assume it is too easy and spawn more monsters. Before changing the total number of allowed monsters, the spawn speed is modified only, but if it is not enough, the max number of monsters can increase or decrease (within 10 to 100 only). THIS FEATURE IS MEANT TO WORK WITH THE "DEFAULT" MIXTURE OF MONSTERS, it may work badly for other settings such as "Pupae only"... as a whole the feature is highly unpredictable! | False
Scoring | KillSpreeBonus will give constant scoring bonuses for kills when keeping a killing spree over an extended period of time. PunishPlayerKillScore is the amount of score deducted from a player when killing another player. Suicides will cost a player 25% of this amount also! | True 200
SpawnArmor | The number of additional armor items to spawn on the map played. Armor items are armor, all suits and belts for classic unreal. | 6
SpawnArmor_ DYNAMIC | Dynamic Feature: same as the corresponding ammo-dynamic feature - if true, MM tries to look what mods are running and spawn armor of those mods instead of original Unreal Classic armor types. The feature may be a bit buggy, but mutation will also replace any remaining original armor spawned likely if the running mods demand that... | True
SpawnArmor_LIST | Contains the list of armor types to spawn. If you want your custom armor types to be spawned, you will have to turn the dynamic feature SpawnArmor_DYNAMIC off and put your armor classes in here. | Classic Unreal armor
SpawnExtraAmmo | How much extra ammo to spawn, a number of presets ONCE_[something] are static preset values (such as 10, 20, 50...) RELATIVE_[something] - On relative settings, MonsterMash tries to find out how big a map is and how much additional ammo may be needed to fit in the map for play. The mathematical functions to determine the values for maps are not very reliable though, and maps can be totally misjudged... (the tech crap at the end of the original readme is NOT included here) custom allows you to EXACTLY tell MonsterMash how many ammo pickups to spawn (see SpawnExtraAmmo_Custom_INTEGER. | custom
SpawnExtra Ammo_Custom_ INTEGER | If you selected custom above, this is where to place your exact number of wanted pickups for ammo! | 12
SpawnExtras | The number of arbitrary "extra" items to spawn. | 5
SpawnExtras_ DYNAMIC | Dynamic Feature: as for armor and ammo, MonsterMash can be instructed to generate a list of available extra items to spawn extra items from on its own. Again this depends on what mods are running at the time. Extra items are such things as Voiceboxes, Dampeners, Amplifiers, JumpBoots, Flares, Searchlights etc... higher values may be in order on modded environments (e.g. Infiltration) if you like a lot of Proxy mines - although that would likely only get you a lot of teamkills... so find out yourself :P | True
SpawnExtras_LIST | contains all items handled as "extras" - stuff you dont't classify into categories - non-standard equipment... as always, class specifiers are used. | -
SpawnHealth | Number of health items to spawn... | 6
SpawnHealth_ DYNAMIC | Dynamic Feature: again, MM tries to look what mods are running and adjust health related items accordingly into the SpawnHealth_LIST. Health items are such things as Bandages, SuperHealth, Seeds(!) etc... | True
SpawnHealth_LIST | Class list with health items to spawn... | -
SpawnMaxAmount | Controls the MAXIMUM number of MONSTERS to spawn. Either pick a preset or select custom to specify the exact number of maximum monsters into SpawnMaxAmount_Custom_INTEGER (next option). | OO
SpawnMaxAmount_ Custom_ INTEGER | You may define an exact maximum of monsters to spawn at the same time. The total number of monsters on the map should not exceed this number... but it may happen because of bad events (such as spawn failures into walls, Critter destroyed from life expectancy resulting in number miscounts etc etc...). A cyclic monster count is done in regular intervals in ADDITION to the normal monster spawned and destroyed detection during game, however, the numbers are not always 100% accurate so both the seen number of monsters may be wrong and therefor the set maximum is only an approximation. | 30
SpawnMonster AwayFrom PlayerRadius | A radius in UUnits which tells MonsterMash to NOT spawn a monster at a location if any player is this close or closer to that location. This avoids monsters popping right onto your head :) Please note that if the number is too large, more players will make the overall space left for monsters to spawn at very limited, resulting in fewer and fewer spawns. If this happens, you will find only very few to no monsters on the map. Then it's time to get rid of some players or switch to a larger map - or decrease this value! For example. DeathFan is completely unplayable with this setting because the map is so small that 2 players alone will always be in "range" of spawn locations of that radius. One of my personal favorite maps to play MM on is "DM-Twilight". When picking MM maps, you should select in that region of map size (just a suggestion though). | 1100
SpawnMonsters | The monster list (class names) for MM to spawn critters from. You can use commands (see below) to add monsters during game. For custom monsters, you should edit these settings manually. Make sure you are precise in your class names, one typo will result in continuous spawn failures so check logs after setting up and doing a testplay!! A new feature is the singular class isntance limiter. Even though you may have different monsters in your list, you may choose to only have a certain maximum of ONE PARTICULAR TYPE - normally it is completely random which monster is picked out of the list to spawn. Here are some valid example entries: UnrealShare.Fly 99 UnrealI.SkaarjSniper 3 UnrealI.Titan 1 You probably already guessed what this does. The class descriptor must be precise with Package Name and class name delimited by a full stop - then you MAY add a space and a number which indicates the maximum INSTANCES of this monster class to be spawned. If you do NOT add a number (or a negative one which is invalid), a positive 9999 will be assumed. Generally large values over 99 are considered "no limit" although of course in theory 99 is a limit too... These 3 particular examples would mean, that a game with these 3 entries would have LOTS of flies, a maximum of 3 SkaarjSnipers at all times and a SINGLE Titan at maximum standing around somewhere. | Preset Default classic mix
SpawnSpeed | This controls how fast the maximum amount of monsters should be reached. Roughly each 3.2 seconds, MonsterMash will try to add monsters. It looks up how many are already there and uses a percentage of the missing ones to fill the level. So within the first 10 seconds, a lot of monsters will spawn. The more full a level is, the slower additional monsters come in. If the maximum is reached, no additional monsters come (some monsters spawn monsters of their own, then max can be exceeded... aside from counting malfunctions...). Either use one of the (static) presets, or choose custom to set a percentage yourself. | custom
SpawnSpeed_ Custom_ FLOAT | If above setting is "custom", this value is used as SpawnSpeed (SSPeed / perc). For example "0.1" would be 10%, meaning the following: you have 50 monsters max, so the first time monsters should enter, MonsterMash will try to spawn 5 monsters (10% of 50). If there are already 20, the number of missing ones is 30, so 10% makes 3 and that is the number of monsters which are TRIED to be spawned. If this value is 1 (one), MonsterMash will always try to spawn the full amount of missing monsters, so that you ALWAYS have the number of maximum monsters present at all times (not recommended!!!). | 0.18
Technical_ Settings | TotalItemCleanse This is a powerful item destruction tool called by cleanup (if true). All items MonsterMash spawns and all existing items are registered into a list. After the cleanup intervall is reached, the map is scanned for non registered items lying around. If there are any, they are destroyed! Unless you experience LARGE discrepancies of your games, leave it off. It's mainly a debug feature anyway and will even destroy nali fruits which were planted during game by seeds! It will also destroy guns tossed by players or dropped ones, should the cleanup take place in the wrong moment. CleanUpIntervall The time to pass after which a cleanup routine will be called to check the current game for discrepancies and clean them up. You can safely enter a large amount of time (it is in seconds, btw) because nothing critical can be cleaned away at the moment. | OO

### Commands for MonsterMash

You can issue commands to the mod/mutator during game. Hit your console key and type either one of these:
admin set mut_monstermash command [MM command]
mmcmd [MM command]

The first one is a more general one which can be used (without the ADMIN prefix) on the server console too if you really have to, the 2nd much easier version can only be used if you are playing as normal player inside the game.

Command | Effect
--- | ---
addammo [1] [2] | Adds ammo out of ammo groups. Use "list" command to find out ammo groups. Do not use if you are using the dynamic ammo setup feature.
addmonster [1] [2] [3] | adds monsters to your spawnlist. [1] must be a monster group (find them out with "list monster"). If you give a group, but no [2], the entire group is added with quantity 9999 each, so "addmonster unreal" will add ALL Unreal Classic Creatures to the list with no class instance limiter. "addmonster unreal 10" will only add the one monster of group Unreal registered as "10" within that group (should be a Manta) with no class limiter [3] can be a class limiter, however to issue a class limiter, you will need to specify parameters [1] and [2] also.
clearammo | this will empty the current ammo spawning list - only use it when you are creating your own custom ammo. If dynamic ammo setting is on, don't use this command.
clearmonster | this will wipe your entire monsterlist empty. With an empty monsterlist, you cannot start a monstermash game, so you must add new monsters in order to play...
delmonster [1] | [1] must be a valid number within your current spawnlist. If nothing is given, 0 (zero) is assumed (ZERO IS USUALLY VALID !!). This command will then wipe a single monster entry out of the current spawnlist and shorten the list by one that way (as opposed to "clearmonster" wiping the entire list)
lessmonsters | decreases the max monster amount by 20% immediately. The old value will be used after mapchange
list [1] [2] | this command lists all commands in game, if [1] and [2] are not given. [1] can be an extra parameter, such as "list", "ammo" or "monster". [2] is dependant on [1]. First make a "list [1]" and see what choices you get. For example, "list monster" will give you all groups of monsters. One group of monsters is "flyer". So to list all flyers, you would type "list monster flyer" The list command is a good place to start familiarizing yourself with the MonsterMash ingame commands!
monsterset [1] | There are a number of preset monsterlists inside the mod. If you do not enter anything for [1] or something illegal, a list of all valid working preset monsterlists will be displayed. Preset lists are default Standard mixture of monsters... same as default properties critters Pupaes and Flys... more masses than classes :) flystuff Flys and (small) Mantas... pup Pupaes only (ORIGINAL KILL THE PUPAE GAME) skaarj1 lighter Skaarj war, like with Scouts skaarj2 all Skaarj types, including killer Skaarj (Sniper, Gunner) killers mostly hard to kill enemies - difficult monsters these include Skaarjgunners/Snipers, Heavy Brutes... boss boss monsters and big creatures (small amount!). Note that clients do not cope with big monsters as well as with small ones, so you MUST use a small amount of monsters or your game clients will just keep crashing!! NOTE: These presets also affect scorelimit, spawnspeed and other settings, to return back to default, just execute the "default" preset once. If you want to keep your custom setup, backup your Unreal.ini first :)
moreammo [1] | If [1] is not given, the current maxmonster amount is used. Otherwise specify [1] as any positive number and that number of ammo pickups will be added to the map immediately
morearmor [1] | same as "moreammo" - but for armor items, defaults to preset instead of max monsters if [1] is not given
moreextras [1] | same as "moreammo" - but for extra items, defaults to preset instead of max monsters if [1] is not given
morehealth [1] | same as "moreammo" - but for health items, defaults to preset if [1] is not given
moremonsters | increases the max monster amount by 20% immediately.
showammolist | displays the current ammo spawn list (classes) - open your console!
showmonsterlist | displays the current monster spawn list (classes) - open your console!

### New Features And Changes Since V1.6

1. MM will add 5 to the number of players so WFlexMap (if installed) chooses bigger maps (if using the PlayerLoad feature) - this may have side effects if the server is queried during its restart sequence
2. MM will override and restore some game rules values, like team kill maximum and allowed number of bots (since bots are an integral part of this mutator)
3. Dynamic AmmoTypes list generation was limited to known mods... no longer, if the third party mods have their weapon settings proper!
4. Configuration has been split up visibly to allow for overriding Game-Rules and Fairplay-Rules more easily
5. Bot configuration has been entirely removed, since all of MM's former AI-features are now part of standard UTF
6. Skaarj players will now try to use the blue teamskin so you can actually distinguish these players from hostile critters!
7. When dying, players will NOT be able to respawn immediately - this was meant as incentive to make an effort in trying to stay alive rather than just die and go ahead scoring elsewhere...
8. Scoring is now ALWAYS by monsterhealth
9. Bots won't "shoot back" when annoyed/provoked - the offending player will get banned after a while instead...
10. Single Class Instance Limiter
11. Commands no longer working: go, help, helpdie, helpgohome, helpgofrenzy, helpreport

### Incompatibilities and DON'Ts

- MM + Infiltration or Serpentine
  Serpentine and Infiltration Weapons can not upgrade at the moment. Play with a low 'ball' chance if you run either game bridge. Also, the upgrade 'Lower Ammo cost on Gun XXX' will have no effect in these instances.
- Maps which will HANG the server
  DMAscension