Name: DoomMonsterPackv3
Author: Shaun Goeppinger aka Ini
Date: 20/05/11
Version: 3
//----------------------------------------------------------
// Description
//----------------------------------------------------------
This version has a new file name. Some changes from the 
previous 2009DoomMonsterPack include:

*sabaoth sounds
*deathsounds 
*Maledict improved animation
*Guardian has better ranged attack
*fixed seeker emitter error
*Removed mutator
*added ragdolls for each monster
*Loads more configs for each monster added
*New FX for Seeker and some others
*Added burn effect to Tick
*HunterInvul removed shock attack
*Archvile can now summon any type of monster
*Fixed Bruiser overlay texture render issue
*Enlarged many monsters including cacodemon, cherub and tick
*Imp no longer crawls
*Sawyer has new skeleton skin
*Maledict hunts much better
*created Idle and Melee anims/attacks for cyberdemon
*cyberdemon no longer idles
*Size of imp and vulgar fireballs increased
*Vagary no longer throws "souls", just classic projectiles
*Removed Revenant collapse animation
*Removed many anims not in use, and textures and sounds
*File size reduced by about 40mb
*Seeker vertmesh removed, projectile attack changed a lot

This pack contains 46 monsters. All of which (except some
of the colourful imps :p ) appear in the game Doom3 and the
expansion pack Resurrection of Evil. Which I highly
recommend playing!! And with the lights off!

The monsters were converted by me with som new animations,
textures, effects, sounds and skeletal and vertex meshes.

I tried to keep them as "doom" like as possible but in some 
places I have made some creative changes using my artistic
license :p hehe. Below are instructions on how to install,
configure and a brief description of each monster.


//----------------------------------------------------------
// Installation
//----------------------------------------------------------
.u files go in the system folder
.ini files go in the system folder
.ka files go in the karmadata folder


ServerPackage Line: This is required for netplay. It goes
in your UT2004.ini file under the [Engine.GameEngine] 
heading.

ServerPackages=DoomMonsterPackv3

Monsterclass names: (because your too lazy to create these yourself :p )

For Satore:

MonsterTable=(MonsterName="Archvile",MonsterClassName="DoomMonsterPackv3.Archvile")
MonsterTable=(MonsterName="Boney",MonsterClassName="DoomMonsterPackv3.Boney")
MonsterTable=(MonsterName="BoneyHell",MonsterClassName="DoomMonsterPackv3.BoneyHell")
MonsterTable=(MonsterName="Bruiser",MonsterClassName="DoomMonsterPackv3.Bruiser")
MonsterTable=(MonsterName="Cacodemon",MonsterClassName="DoomMonsterPackv3.Cacodemon")
MonsterTable=(MonsterName="Cherub",MonsterClassName="DoomMonsterPackv3.Cherub")
MonsterTable=(MonsterName="Commando",MonsterClassName="DoomMonsterPackv3.Commando")
MonsterTable=(MonsterName="Cyberdemon",MonsterClassName="DoomMonsterPackv3.Cyberdemon")
MonsterTable=(MonsterName="FatZombie",MonsterClassName="DoomMonsterPackv3.FatZombie")
MonsterTable=(MonsterName="Forgotten",MonsterClassName="DoomMonsterPackv3.Forgotten")
MonsterTable=(MonsterName="Guardian",MonsterClassName="DoomMonsterPackv3.Guardian")
MonsterTable=(MonsterName="HellKnight",MonsterClassName="DoomMonsterPackv3.HellKnight")
MonsterTable=(MonsterName="HellKnight Dark",MonsterClassName="DoomMonsterPackv3.HellKnight_Dark")
MonsterTable=(MonsterName="Hunter Berserk",MonsterClassName="DoomMonsterPackv3.HunterBerserk")
MonsterTable=(MonsterName="Hunter HellTime",MonsterClassName="DoomMonsterPackv3.HunterHellTime")
MonsterTable=(MonsterName="Hunter Invul",MonsterClassName="DoomMonsterPackv3.HunterInvul")
MonsterTable=(MonsterName="Imp",MonsterClassName="DoomMonsterPackv3.Imp")
MonsterTable=(MonsterName="Imp Blue",MonsterClassName="DoomMonsterPackv3.Imp_Blue")
MonsterTable=(MonsterName="Imp Dark",MonsterClassName="DoomMonsterPackv3.Imp_Dark")
MonsterTable=(MonsterName="Imp Green",MonsterClassName="DoomMonsterPackv3.Imp_Green")
MonsterTable=(MonsterName="Imp Purple",MonsterClassName="DoomMonsterPackv3.Imp_Purple")
MonsterTable=(MonsterName="Imp Random",MonsterClassName="DoomMonsterPackv3.Imp_Random")
MonsterTable=(MonsterName="Imp Red",MonsterClassName="DoomMonsterPackv3.Imp_Red")
MonsterTable=(MonsterName="LostSoul",MonsterClassName="DoomMonsterPackv3.LostSoul")
MonsterTable=(MonsterName="Maggot",MonsterClassName="DoomMonsterPackv3.Maggot")
MonsterTable=(MonsterName="Maledict",MonsterClassName="DoomMonsterPackv3.Maledict")
MonsterTable=(MonsterName="Mancubus",MonsterClassName="DoomMonsterPackv3.Mancubus")
MonsterTable=(MonsterName="Mancubus Slimey",MonsterClassName="DoomMonsterPackv3.Mancubus_Slimey")
MonsterTable=(MonsterName="Pinky",MonsterClassName="DoomMonsterPackv3.Pinky")
MonsterTable=(MonsterName="Revenant",MonsterClassName="DoomMonsterPackv3.Revenant")
MonsterTable=(MonsterName="Sabaoth",MonsterClassName="DoomMonsterPackv3.Sabaoth")
MonsterTable=(MonsterName="Sawyer",MonsterClassName="DoomMonsterPackv3.Sawyer")
MonsterTable=(MonsterName="Sawyer Skeleton",MonsterClassName="DoomMonsterPackv3.Sawyer_Skeleton")
MonsterTable=(MonsterName="Seeker",MonsterClassName="DoomMonsterPackv3.Seeker")
MonsterTable=(MonsterName="Sentry",MonsterClassName="DoomMonsterPackv3.Sentry")
MonsterTable=(MonsterName="Skeleton",MonsterClassName="DoomMonsterPackv3.Skeleton")
MonsterTable=(MonsterName="Tick",MonsterClassName="DoomMonsterPackv3.Tick")
MonsterTable=(MonsterName="Trite",MonsterClassName="DoomMonsterPackv3.Trite")
MonsterTable=(MonsterName="Vagary",MonsterClassName="DoomMonsterPackv3.Vagary")
MonsterTable=(MonsterName="Vulgar",MonsterClassName="DoomMonsterPackv3.Vulgar")
MonsterTable=(MonsterName="Wraith",MonsterClassName="DoomMonsterPackv3.Wraith")

For MonsterManager:

MonsterTable=(MonsterName="[INI] Archvile",MonsterClassName="DoomMonsterPackv3.Archvile",bUseMonster=True,bUseGibReduction=False)
MonsterTable=(MonsterName="[INI] Boney",MonsterClassName="DoomMonsterPackv3.Boney",bUseMonster=True,bUseGibReduction=False)
MonsterTable=(MonsterName="[INI] BoneyHell",MonsterClassName="DoomMonsterPackv3.BoneyHell",bUseMonster=True,bUseGibReduction=False)
MonsterTable=(MonsterName="[INI] Bruiser",MonsterClassName="DoomMonsterPackv3.Bruiser",bUseMonster=True,bUseGibReduction=False)
MonsterTable=(MonsterName="[INI] Cacodemon",MonsterClassName="DoomMonsterPackv3.Cacodemon",bUseMonster=True,bUseGibReduction=False)
MonsterTable=(MonsterName="[INI] Cherub",MonsterClassName="DoomMonsterPackv3.Cherub",bUseMonster=True,bUseGibReduction=False)
MonsterTable=(MonsterName="[INI] Commando",MonsterClassName="DoomMonsterPackv3.Commando",bUseMonster=True,bUseGibReduction=False)
MonsterTable=(MonsterName="[INI] Cyberdemon",MonsterClassName="DoomMonsterPackv3.Cyberdemon",bUseMonster=True,bUseGibReduction=False)
MonsterTable=(MonsterName="[INI] FatZombie",MonsterClassName="DoomMonsterPackv3.FatZombie",bUseMonster=True,bUseGibReduction=False)
MonsterTable=(MonsterName="[INI] Forgotten",MonsterClassName="DoomMonsterPackv3.Forgotten",bUseMonster=True,bUseGibReduction=False)
MonsterTable=(MonsterName="[INI] Guardian",MonsterClassName="DoomMonsterPackv3.Guardian",bUseMonster=True,bUseGibReduction=False)
MonsterTable=(MonsterName="[INI] HellKnight",MonsterClassName="DoomMonsterPackv3.HellKnight",bUseMonster=True,bUseGibReduction=False)
MonsterTable=(MonsterName="[INI] HellKnight Dark",MonsterClassName="DoomMonsterPackv3.HellKnight_Dark",bUseMonster=True,bUseGibReduction=False)
MonsterTable=(MonsterName="[INI] Hunter Berserk",MonsterClassName="DoomMonsterPackv3.HunterBerserk",bUseMonster=True,bUseGibReduction=False)
MonsterTable=(MonsterName="[INI] Hunter HellTime",MonsterClassName="DoomMonsterPackv3.HunterHellTime",bUseMonster=True,bUseGibReduction=False)
MonsterTable=(MonsterName="[INI] Hunter Invul",MonsterClassName="DoomMonsterPackv3.HunterInvul",bUseMonster=True,bUseGibReduction=False)
MonsterTable=(MonsterName="[INI] Imp",MonsterClassName="DoomMonsterPackv3.Imp",bUseMonster=True,bUseGibReduction=False)
MonsterTable=(MonsterName="[INI] Imp Blue",MonsterClassName="DoomMonsterPackv3.Imp_Blue",bUseMonster=True,bUseGibReduction=False)
MonsterTable=(MonsterName="[INI] Imp Dark",MonsterClassName="DoomMonsterPackv3.Imp_Dark",bUseMonster=True,bUseGibReduction=False)
MonsterTable=(MonsterName="[INI] Imp Green",MonsterClassName="DoomMonsterPackv3.Imp_Green",bUseMonster=True,bUseGibReduction=False)
MonsterTable=(MonsterName="[INI] Imp Purple",MonsterClassName="DoomMonsterPackv3.Imp_Purple",bUseMonster=True,bUseGibReduction=False)
MonsterTable=(MonsterName="[INI] Imp Random",MonsterClassName="DoomMonsterPackv3.Imp_Random",bUseMonster=True,bUseGibReduction=False)
MonsterTable=(MonsterName="[INI] Imp Red",MonsterClassName="DoomMonsterPackv3.Imp_Red",bUseMonster=True,bUseGibReduction=False)
MonsterTable=(MonsterName="[INI] LostSoul",MonsterClassName="DoomMonsterPackv3.LostSoul",bUseMonster=True,bUseGibReduction=False)
MonsterTable=(MonsterName="[INI] Maggot",MonsterClassName="DoomMonsterPackv3.Maggot",bUseMonster=True,bUseGibReduction=False)
MonsterTable=(MonsterName="[INI] Maledict",MonsterClassName="DoomMonsterPackv3.Maledict",bUseMonster=True,bUseGibReduction=False)
MonsterTable=(MonsterName="[INI] Mancubus",MonsterClassName="DoomMonsterPackv3.Mancubus",bUseMonster=True,bUseGibReduction=False)
MonsterTable=(MonsterName="[INI] Mancubus Slimey",MonsterClassName="DoomMonsterPackv3.Mancubus_Slimey",bUseMonster=True,bUseGibReduction=False)
MonsterTable=(MonsterName="[INI] Pinky",MonsterClassName="DoomMonsterPackv3.Pinky",bUseMonster=True,bUseGibReduction=False)
MonsterTable=(MonsterName="[INI] Revenant",MonsterClassName="DoomMonsterPackv3.Revenant",bUseMonster=True,bUseGibReduction=False)
MonsterTable=(MonsterName="[INI] Sabaoth",MonsterClassName="DoomMonsterPackv3.Sabaoth",bUseMonster=True,bUseGibReduction=False)
MonsterTable=(MonsterName="[INI] Sawyer",MonsterClassName="DoomMonsterPackv3.Sawyer",bUseMonster=True,bUseGibReduction=False)
MonsterTable=(MonsterName="[INI] Sawyer Skeleton",MonsterClassName="DoomMonsterPackv3.Sawyer_Skeleton",bUseMonster=True,bUseGibReduction=False)
MonsterTable=(MonsterName="[INI] Seeker",MonsterClassName="DoomMonsterPackv3.Seeker",bUseMonster=True,bUseGibReduction=False)
MonsterTable=(MonsterName="[INI] Sentry",MonsterClassName="DoomMonsterPackv3.Sentry",bUseMonster=True,bUseGibReduction=False)
MonsterTable=(MonsterName="[INI] Skeleton",MonsterClassName="DoomMonsterPackv3.Skeleton",bUseMonster=True,bUseGibReduction=False)
MonsterTable=(MonsterName="[INI] Tick",MonsterClassName="DoomMonsterPackv3.Tick",bUseMonster=True,bUseGibReduction=False)
MonsterTable=(MonsterName="[INI] Trite",MonsterClassName="DoomMonsterPackv3.Trite",bUseMonster=True,bUseGibReduction=False)
MonsterTable=(MonsterName="[INI] Vagary",MonsterClassName="DoomMonsterPackv3.Vagary",bUseMonster=True,bUseGibReduction=False)
MonsterTable=(MonsterName="[INI] Vulgar",MonsterClassName="DoomMonsterPackv3.Vulgar",bUseMonster=True,bUseGibReduction=False)
MonsterTable=(MonsterName="[INI] Wraith",MonsterClassName="DoomMonsterPackv3.Wraith",bUseMonster=True,bUseGibReduction=False)

//----------------------------------------------------------
// Configuration - the DoomMonsters.ini file
//----------------------------------------------------------

In the DoomMonsters.ini file each monster should have it's
own sub heading. In each sub heading you will see a set of
configurable properties. Each monster has different types
of settings. Each setting that you might find is explained 
below.

//example
[DoomMonsterPackv3.Cacodemon]
bHasRagdoll=True
bAllowOverlays=False
bUseHealthConfig=True
bUseDamageConfig=True
bSpawnDoomEffect=True
ProjectileDamage=15
KillingForce=200
UpKickForce=500
MeleeDamage=50
TauntIntervalTime=12
RangedAttackIntervalTime=3
NewHealth=200

bHasRagdoll: if true then the ragdoll death will activate (clients who don't have the pack installed should always have this false, as they wont have the karmadata file).
bAllowOverlays: if true the monster will accept overlay effects. False by default on some monsters.
bUseHealthConfig: if true then the NewHealth value will be applied when the monster spawns.
bUseDamageConfig: if true then the projectile damage will be applied to monster projectiles.
bSpawnDoomEffect: if true then the doom spawn effect will appear.
ProjectileDamage: if the monster has this value it is the damage for their ranged attack.
KillingForce: the force to apply to the ragdoll.
UpKickForce: the upwards force to apply to the ragdoll.
MeleeDamage: the melee damage value for the monster.
TauntIntervalTime: the minimum time (in seconds) between taunts (taunt animation).
RangedAttackIntervalTime: the minimum time (in seconds) between ranged attacks.
NewHealth: the new health value for the monster when it spawns.
bArchvileCanResurrect: if true the Archvile can resurrect monsters.
bArchvileCanSummon: if true the Archvile can summon other monsters.
FlameWallDamage: the damage the firewall attack does for this monster.
FlameDamage: the damage the flame attack does for the Archvile.
FireBurnIntervalTime: the minimum time (in seconds) between fire burn attacks of the Archvile.
ResurrectionIntervalTime: the minimum time (in seconds) between resurrections.
ResurrectionRadius: the radius around the Archvile which dead monsters can be resurrected.
ResurrectedHealthPercent: the percent of base health the resurrected monster should res with.
SummonIntervalTime: the minimum time (in seconds) between monster summonings for this monster.
SummonMonsterLimit: the number of monsters that can be summoned/active at any one time by the Archvile.
SummonMonsterClass: the class name of monsters that can be summoned, add more lines if needed.
bFatZombieCanThrowBarrel: if true the FatZombie can throw barrels.
bGuardianCanCharge: if true the Guardian can charge.
GroundShockDamage: the damage done by the Guardians ground shock ability.
GroundShockRadius: the radius of the damage done by Guardians ground shock ability.
bHunterHellTimeCanTeleport: if true the HunterHellTime can teleport.
MultiProjDamage: the damage done by the HunterHellTime's multiple projectile attack.
TeleportIntervalTime: the minimum time (in seconds) between this monster's teleport ability.
ElectricProjectileDamage: the damage done by the HunterInvuls small projectile attack.
ElectricProjectileBigDamage: the damage done by the HunterInvuls large projectile attack.
GroundShockDamage: the damage done by the HunterInvuls ground shock ability.
GroundShockRadius: the radius of the damage done by the HunterInvuls ground shock ability.
bMaledictCanSummon: if true then the Maledict can summon Forgottens
BigMeteorDamage: the damage done by the Maledict's large projectile.
SmallMeteorDamage: the damage done by the Maledict's smaller projectiles.
ForgottenSummonIntervalTime: the minimum time (in seconds) between the Maledicts summon Forgotten ability.
ForgottenSpawnLimit: the number of Forgottens that can be summoned/active at any one time by the Maledict.
bSabaothNoTalk: if true then the English speaking taunts will not be played.
bSawyerCanDecapitate: if true Sawyer can kill with one hit.
bCanLinkMonsters: if true the Seeker can link other monsters, making them invulnerable.
bSeekerHint: if true then the hint sound will be played that tells people how to defeat it.
SeekerHintIntervalTime: the minimum time (in seconds) between the hint sound.
SeekerLinkRange: the maximum distance at which Seekers can link monsters.
LinkedMonsterLimit: the maximum amount of monsters that can be linked by the Seeker at any one time.
bWraithCanTeleport: if true then the Wraith can teleport.

//----------------------------------------------------------
// Meet the Monsters! A brief intro to each monster
//----------------------------------------------------------
Archvile - Considered by many to be the most dangerous of
doom's monsters. This monster can summon others to help him.
These summoned monsters are smaller and weaker than normal 
versions. The Archvile can also resurrect dead monsters that 
it comes across. The Archvile has 2 main attacks, a firewall 
and a fire blast, the fire blast spawns at the enemy location, 
the enemy then has a few seconds to move before they will take
damage. Has Melee attacks if it needs them.

Boney/BoneyHell - A Zombie, the BoneyHell has a different skin
(Hell time skin). These are Melee only

Bruiser - Another dangerous monster, the screen on his head
displays his current mood. He has ranged attacks (fireballs) 
and melee attacks.

Cacodemon - A flying monster that shoots yellowy plasma. Unlike
in doom 3 these cannot be shot down in my version. Also has
melee attacks.

Cherub - A creepy flying zombie baby thing. These can lunge 
and jump around, the have melee only attacks.

Commando - A Zombie! A fast moving zombie with longer than
normal range melee attacks.

Cyberdemon - classed as a boss, fires heat seeking rockets, 
sometimes 3 at a time!

Hellknight/DarkHellknight - The DarkHellknight is the "hell time"
version of the Hellknight. (a different skin). They fire greenish
plasma and have melee attacks.

Imp/Other Imps - The Imp comes in many colours :) they have melee attacks
and can lunge at enemies. They can also use fireballs.

FatZombie - A Zombie! This overweight zombie has the ability to throw
explosive oil barrels at enemies.

Forgotten - A flying monster, the cousin of the Lost Soul. Has melee
only attacks and can charge enemies.

Guardian - classed as a boss, this monster has melee attacks and a very 
large melee radius. He can also charge people. He has ranged attacks
and if people get close he has a shockwave ability.

HunterBerserk - Classed as a kind of mini-boss, this guy has melee 
and ranged attacks.

HunterHellTime - Classed as a kind of mini-boss, this guy has melee and
ranged attacks. He can also teleport and does so frequently!

HunterInvul - Classed as a kind of mini-boss, this monster has electric
attacks. He can do an electric shock wave if enemies are close enough.
His electric bolts are heat seeking. This monster has one more trick 
up his sleeve/paw.

LostSoul - A flying monster, has melee only and can charge enemies.

Maggot - A melee only monster that has the ability to lunge at enemies.

Mancubus/Mancubus_Slimey - These big monsters are slow moving and fire
heated plasma. The slimey one is a mucky version of the normal.

Pinky - A melee only Pinky.

Revenant - The Revenant, a formidable skeleton type creature. This guy has
melee attacks and can fire heat seeking rockets at players. These rockets
CAN be shot down.

Sabaoth - Considered to be a boss. This guy has melee and carries a BFG.
He can fire this BFG at people. The BFG plasma will shoot out streams of 
green plasma and hit nearby players.

Sawyer/Sawyer_Skeleton - A Zombie! this zombie carries a chainsaw. It can be configured to
instant kill people. If this is instant hit, it will decapitate players!

Seeker - An underestimated monster. This monster on its own will fire  
plasma at players. The plasma spawns and moves very slowly to start with until
fully charged by the Seeker. When near other monsters the Seeker will link up 
with them, granting the linked monster immunity. When linked the Seeker will 
give audible hints on what to do (if configured to do so). You must kill the 
Seeker first to make the linked monsters mortal again. Seekers cannot link 
up with other Seekers.

Sentry - A sentry robot. Long ranged attacks only.

Skeleton - A Zombie Skeleton! eek! Melee only

Tick - A small spider monster. This maybe a female monster.
Melee only with lunge ability.

Trite - A small spider that can lunge and has melee only.

Vagary - The B!tch is back! Classed as a boss, she has melee
attacks and ranged attacks.

Vulgar - A monster similar to the Imp, has melee, can lunge and fires greenish plasma.

Wraith - A melee only monster that can teleport!
//----------------------------------------------------------
// Credits
//----------------------------------------------------------
me@shaungoeppinger.com
www.unreal.shaungoeppinger.com


Thanks to -=MZC=-Anthrax, NoVaTuRiEnT, Woof and Makito for testing v1, v2