I love the smell of UnrealEd crashing in the morning. – tarquin


From Unreal Wiki, The Unreal Engine Documentation Site
Jump to: navigation, search
UT2003 :: Actor >> Pawn >> UnrealPawn >> xPawn >> Monster (Package: SkaarjPack)

This is the parent class for all NPC Monsters in UT200x. These monsters are used in the Invasion gametype.


All properties are hidden.

bool bMeleeFighter 
bool bShotAnim 
bool bCanDodge 
bool bVictoryNext 
bool bTryToWalk 
bool bBoss 
bool bAlwaysStrafe 
float DodgeSkillAdjust 
sound HitSound[4] 
sound DeathSound[4] 
sound ChallengeSound[4] 
sound FireSound 
class<Ammunition> AmmunitionClass 
Ammunition MyAmmo 
int ScoringValue 
FireProperties SavedFireProperties 


Combat Interface[edit]

RangedAttack( Actor A ) 
bool CanAttack( Actor A ) 
bool SplashDamage() 
float GetDamageRadius() 
bool RecommendSplashDamage() 


TurnOff() (simulated) 
If Health is more than zero, set bVictoryNext to true (endgame?)
bool ForceDefaultCharacter() (simulated) 
Returns false to prevent replacing monsters with default character.
bool IsHeadShot( vector loc, vector ray, float AdditionalScale ) 
If Super.IsHeadShot() returns true, this returns true if headshot.
Fire( optional float F ) 
After finding the actor BestTarget through Controller.PickTarget(), calls RangedAttack(BestTarget).
bool PreferMelee() 
Returns value of bMeleeFighter.
bool HasRangedAttack() 
float RangedAttackTime() 
vector GetFireStart( vector X, vector Y, vector Z ) 
Returns the Location of the weapon fire start.
Fills SavedFireProperties properties using MyAmmo as a base, then spawns the weapons fire and calls PlaySound(FireSound,SLOT_Interact).
SpawnGiblet( class<Gib> GibClass, vector Location, rotator Rotation, float GibPerterbation ) (simulated) 
If GibClass exists and GameInfo.UseLowGore() returns false, spawns GibClass gibs, sets the gib scale and velocity.
If Physics is PHYS_None, calls PlaySound(sound'Thump').
bool SameSpeciesAs( Pawn P ) 
Returns true if P and this Monster are of the same class (or subclass).
AssignInitialPose() (simualted) 
Calls TweenAnim(MovementAnims[0],0.0).
Calls PlaySound(ChallengeSound[Rand(4)],SLOT_Talk).
Destroys MyAmmo (if any) before calling Super.Destroyed().
AnimEnd( int Channel ) (simulated) 
Calls PlayVictory() if bVictoryNext is true and Physics is not PHYS_Falling, otherwise sets bShotAnim and Controller.bPreparingMove to false. Calls Super.AnimEnd(Channel).
Calls SetPhysics(PHYS_Falling).
bool IsPlayerPawn() 
Returns true so it can use Movers.
PlayTakeHit( vector HitLocation, int Damage, class<DamageType> DamageType ) 
If not sooner than MinTimeBetweenPainSounds, sets LastPainSound and calls PlaySound(HitSound[Rand(4)], SLOT_Pain,2*TransientSoundVolume,,400).
PlayDying( class<DamageType> DamageType, vector HitLoc ) (simulated) 
Sets bCanTeleport and bReplicateMovement to false, sets bTearOff and bPlayedDeath to true. Sets Lifespan to RagdollLifeSpan and switches state to "Dying". Adds TearOffMomentum to Velocity, sets default BaseEyeHeight, calls SetInvisibility(0.0), PlayDirectionalDeath(HitLoc) and SetPhysics(PHYS_Falling).
If bGibbed, calls PlaySound(GibGroupClass.static.GibSound(), SLOT_Pain,2.5*TransientSoundVolume,true,500). Calls PlaySound(DeathSound[Rand(4)], SLOT_Pain,2.5*TransientSoundVolume, true,500).
bool MeleeDamageTarget( int hitdamage, vector pushdir ) 
Uses a Trace function to determine if Controller.Target is within melee range and returns true if it is.
Sets bVictoryNext to true.
CreateGib( name boneName, class<DamageType> DamageType, rotator r ) 
If GameInfo.UseLowGore() returns false, fills HitFX[] properties with an additional array member.
ProcessHitFX() (simulated) 
If Level.NetMode is not a DedicatedServer and GameInfo.UseLowGore() returns false, spawns gibs for each valid part of the Monster.
StartDeRes() (simulated) 
If Level.NetMode is not a DedicatedServer, sets full AmbientGlow, zero MaxLights, Skins to DeResMat0 and DeResMat1, Collision to none, removes and disallows projectors, deactivates the player shadow, calls RemoveFlamingEffects(), removes any material overlays and sets bDeRes to true.


After Super.PostBeginPlay(), spawns Controller from ControllerClass, calls Controller.Possess(self), spawns MyAmmo from AmmunitionClass.
SetAnimAction( name NewAction ) (simulated) 
If bWaitForAnim is false and Level.NetMode is NM_Client, set AnimAction to NewAction and then if PlayAnim(AnimAction,,0.1) returns true and (Physics != PHYS_None), then set bWaitForAnim to true.



Ignores the following: AnimEnd, Trigger, Bump, HitWall, HeadVolumeChange, PhysicsVolumeChange, Falling and BreathTimer.


Calls SetPhysics(PHYS_None) and if IsAnimating(0) returns false, calls LandThump() before calling Super.Landed(HitNormal).
Checks to see if PlayerCanSeeMe() returns false to call Destroy(), otherwise if (LifeSpan <= DeResTime) and bDeRes is false, it calls StartDeRes(), otherwise is calls SetTimer(1.0, false).

Known Subclasses[edit]

Note: In UT, all Monsters are a subclass of ScriptedPawn.

    +- Brute
    |    +- LesserBrute (UT only)
    |    +- Behemoth
    +- Gasbag
    +- Krall
    |    +- EliteKrall
    +- Manta
    +- Fly (aka Razorfly)
    +- Skaarj
    |    +- FireSkaarj (UT2004 only)
    |    +- IceSkaarj (UT2004 only)
    |    +- SkaarjTrooper (UT only)
    |    |   +- SkaarjGunner
    |    |   +- SkaarjInfantry
    |    |   +- SkaarjOfficer
    |    |   +- SkaarjSniper
    |    +- SkaarjWarrior (UT only)
    |        +- IceSkaarj
    |        +- SkaarjAssassin
    |        +- SkaarjBeserker
    |        +- SkaarjLord
    |        +- SkaarjScout
    +- Pupae (aka SkaarjPupae)
    +- Warlord

Related Topics[edit]


SuperApe: Created.