/*******************************************************************\ GZDoom Builder Script highlighting definitions for DECORATE \*******************************************************************/ // Editor settings description = "ZDoom DECORATE"; codepage = 0; extensions = "txt"; casesensitive = false; insertcase = 0; // 0=Normal, 1=Lowercase, 2=Uppercase lexer = 35; functionopen = "("; functionclose = ")"; argumentdelimiter = ","; terminator = ";"; keywordhelp = "http://www.zdoom.org/wiki/index.php?title=%K"; scripttype = 3; //0 = unknown script, 1 = acc, 2 = modeldef, 3 = decorate keywords { #Include = "#Include"; //Monster AI A_AlertMonsters = "A_AlertMonsters(float maxrange)"; A_Burst = "A_Burst(string classname)"; A_CentaurDefend = "A_CentaurDefend"; A_Chase = "A_Chase[(str \"MeleeState\"[, str \"RangedState\"[, int Flags]])]"; A_ClearLastHeard = "A_ClearLastHeard"; A_ClearSoundTarget = "A_ClearSoundTarget"; A_ClearTarget = "A_ClearTarget"; A_DamageChildren = "A_DamageChildren(int amount, [string type])"; A_DamageMaster = "A_DamageMaster(int amount, [string type])"; A_DamageSiblings = "A_DamageSiblings(int amount, [string type])"; A_Die = "A_Die[(str DamageType)]"; A_FaceTarget = "A_FaceTarget[(float angle)[, float pitch]]"; A_FaceMaster = "A_FaceMaster[(float angle)[, float pitch]]"; A_KillChildren = "A_KillChildren(string damagetype)"; A_KillMaster = "A_KillMaster(string damagetype)"; A_KillSiblings = "A_KillSiblings(string damagetype)"; A_Look2 = "A_Look2"; A_LookEx = "A_LookEx(int flags, fixed minseedist, fixed maxseedist, fixed maxheardist, fixed fov, state seestate)"; A_RaiseChildren = "A_RaiseChildren"; A_RaiseMaster = "A_RaiseMaster"; A_RaiseSiblings = "A_RaiseSiblings"; A_RemoveChildren = "A_RemoveChildren[(bool all)]"; A_RemoveMaster = "A_RemoveMaster"; A_RemoveSiblings = "A_RemoveSiblings[(bool all)]"; A_SentinelBob = "A_SentinelBob"; A_Teleport = "A_Teleport[(string teleportstate[, string targettype[, string fogtype[, int flags[, float mindist[, float maxdist]]]]])]"; A_VileChase = "A_VileChase"; A_Wander = "A_Wander"; //Generic monster attacks A_CustomMissile = "A_CustomMissile(string missiletype[, float spawnheight[, int spawnofs_horiz[, angle angle[, int aimflags[, angle pitch]]]]])"; A_CustomBulletAttack = "A_CustomBulletAttack(float horz_spread, float vert_spread, int numbullets, int damageperbullet, string pufftype [, float range [, int flags]])"; A_CustomRailgun = "A_CustomRailgun(int damage [, int offset [, color ringcolor [, color corecolor [, int flags [, bool aim [, float maxdiff [, str pufftype[, float spread_xy[, float spread_z [, fixed range [, int duration [, float sparsity [, float driftspeed [, str spawnclass]]]]]]]]]]]]]])"; A_CustomMeleeAttack = "A_CustomMeleeAttack(int damage[, str meleesound[, str misssound[, str damagetype[, bool bleed]]]])"; A_CustomComboAttack = "A_CustomComboAttack(string missiletype, float spawnheight, int damage, string meleesound, string damagetype, bool bleed)"; A_MeleeAttack = "A_MeleeAttack"; A_MissileAttack = "A_BasicAttack(int meleedamage, string meleesound, string missiletype, float missileheight)"; A_MonsterRefire = "A_MonsterRefire(int chancecontinue, str \"abortstate\") "; A_ComboAttack = "A_ComboAttack"; A_BasicAttack = "A_BasicAttack(int meleedamage, string meleesound, string missiletype, float missileheight)"; A_BulletAttack = "A_BulletAttack"; A_MonsterRail = "A_MonsterRail"; A_Explode = "A_Explode[(int explosiondamage [, int explosionradius [, bool hurtshooter [, bool alert[, int fulldamageradius[, int nails[, int naildamage]]]]]])]"; A_RadiusThrust = "A_RadiusThrust(int force, int distance[, int flags[, int fullthrustdistance]])"; A_Detonate = "A_Detonate"; A_ThrowGrenade = "A_ThrowGrenade(string spawntype [float spawnheight [, float throwspeed_horz [, float throwspeed_vert [, bool useammo]]]])"; //Freeze death functions A_FreezeDeath = "A_FreezeDeath"; A_GenericFreezeDeath = "A_GenericFreezeDeath"; A_FreezeDeathChunks = "A_FreezeDeathChunks"; A_IceGuyDie = "A_IceGuyDie"; //Sound functions A_PlaySound = "A_PlaySound(string soundname[, int slot[, float volume[, bool looping[, float attenuation]]]])"; A_PlaySoundEx = "A_PlaySoundEx(string soundname, string channel [, bool loop [, int attenuation]])"; A_PlayWeaponSound = "A_PlayWeaponSound(string soundname)"; A_ActiveSound = "A_ActiveSound"; A_LoopActiveSound = "A_LoopActiveSound"; A_FLoopActiveSound = "A_FLoopActiveSound"; A_StopSound = "A_StopSound[(int slot)]"; A_StopSoundEx = "A_StopSoundEx(string channel)"; A_Pain = "A_Pain"; A_Scream = "A_Scream"; A_XScream = "A_XScream"; A_PlayerScream = "A_PlayerScream"; A_VileStart = "A_VileStart"; A_BrainPain = "A_BrainPain"; A_BrainAwake = "A_BrainAwake"; A_BFGSound = "A_BFGSound"; //Print actions A_Print = "A_Print(string text[, float time[, string fontname]])"; A_PrintBold = "A_PrintBold(string text[, float time[, string fontname]])"; A_Log = "A_Log(string text)"; A_LogInt = "A_LogInt(int number)"; //Special actions A_BossDeath = "A_BossDeath"; A_KeenDie = "A_KeenDie[(int tag)]"; A_BrainDie = "A_BrainDie"; A_GetHurt = "A_GetHurt"; A_KlaxonBlare = "A_KlaxonBlare"; A_CheckTerrain = "A_CheckTerrain"; A_SetBlend = "A_SetBlend(color blendcolor, float alpha, int duration[, color fadecolor])"; A_CheckPlayerDone = "A_CheckPlayerDone"; A_PlayerSkinCheck = "A_PlayerSkinCheck(str state)"; A_SkullPop = "A_SkullPop[(string className)]"; //Spawn functions A_TossGib = "A_TossGib"; A_SpawnDebris = "A_SpawnDebris(string type, bool translation)"; A_SpawnItem = "A_SpawnItem(string type, int distance, float zpos, bool useammo, bool translation)"; A_SpawnItemEx = "A_SpawnItemEx(string type, float xoffset, float yoffset, float zoffset, float xvelocity, float yvelocity, float zvelocity, float angle, int flags, int chance)"; //State jumps A_CheckCeiling = "A_CheckCeiling(int offset OR str \"state\")"; A_CheckFloor = "A_CheckFloor(int offset OR str \"state\")"; A_CheckFlag = "A_CheckFlag(string flagname, state label, int check_pointer = AAPTR_DEFAULT)"; A_CheckSight = "A_CheckSight(int offset OR str \"state\")"; A_CheckSightOrRange = "A_CheckSightOrRange(float distance, int offset OR str \"state\")"; A_Jump = "A_Jump(int chance, int offset OR str \"state\", ...)"; A_JumpIf = "A_JumpIf(expression, int offset OR str \"state\")"; A_JumpIfArmorType = "A_JumpIfArmorType(string \"armortype\", str \"state\"[, int minimum])"; A_JumpIfCloser = "A_JumpIfCloser(int distance, int offset OR str \"state\")"; A_JumpIfHealthLower = "A_JumpIfHealthLower(int health, int offset OR str \"state\")"; A_JumpIfInventory = "A_JumpIfInventory (string \"inventorytype\", int amount, int offset OR str \"state\" [, int owner])"; A_JumpIfInTargetInventory = "A_JumpIfInTargetInventory(str \"item\", int count, int offset OR str \"state\" [, pointer forward])"; A_JumpIfInTargetLOS = "A_JumpIfInTargetLOS(int offset OR str \"state\" [, float fov[, int flags[, float dist_max[, float dist_close]]]])"; A_JumpIfMasterCloser = "A_JumpIfMasterCloser(int distance, int offset OR str \"state\")"; A_JumpIfNoAmmo = "A_JumpIfNoAmmo(int offset OR str \"state\")"; A_JumpIfTargetInLOS = "A_JumpIfTargetInLOS(int offset OR str \"state\" [, float fov[, int flags[, float dist_max[, float dist_close]]]])"; A_JumpIfTracerCloser = "A_JumpIfTracerCloser (int distance, int offset OR str \"state\")"; //Status changes A_ActiveAndUnblock = "A_ActiveAndUnblock"; A_ChangeFlag = "A_ChangeFlag(string flagname, bool value)"; A_ChangeVelocity = "A_ChangeVelocity(float x, float y, float z, int flags)"; A_CheckFlag = "A_CheckFlag(string flagname, state label, int check_pointer = AAPTR_DEFAULT)"; A_ClearShadow = "A_ClearShadow"; A_CopyFriendliness = "A_CopyFriendliness[(pointer copyfrom)]"; A_DeQueueCorpse = "A_DeQueueCorpse"; A_FadeIn = "A_FadeIn[(float increase_amount)]"; A_FadeOut = "A_FadeOut[(float reduce_amount[, bool remove])]"; A_FadeTo = "A_FadeTo(float target[, float amount[, bool remove]])"; A_Fall = "A_Fall"; A_Gravity = "A_Gravity"; A_HideThing = "A_HideThing"; A_LowGravity = "A_LowGravity"; A_NoBlocking = "A_NoBlocking"; A_NoGravity = "A_NoGravity"; A_QueueCorpse = "A_QueueCorpse"; A_RearrangePointers = "A_RearrangePointers(pointer target, pointer master, pointer tracer[, int flags])"; A_Respawn = "A_Respawn[(bool fog)]"; A_ScaleVelocity = "A_ScaleVelocity(float scale)"; A_ScreamAndUnblock = "A_ScreamAndUnblock"; A_SetAngle = "A_SetAngle(float angle)"; A_SetArg = "A_SetArg(int position, int value)"; A_SetFloat = "A_SetFloat"; A_SetFloorClip = "A_SetFloorClip"; A_SetInvulnerable = "A_SetInvulnerable"; A_SetMass = "A_SetMass(int mass)"; A_SetPitch = "A_SetPitch(float pitch[, int flags])"; A_SetReflective = "A_SetReflective"; A_SetReflectiveInvulnerable = "A_SetReflectiveInvulnerable"; A_SetScale = "A_SetScale(float scaleX[, float scaleY])"; A_SetShadow = "A_SetShadow"; A_SetShootable = "A_SetShootable"; A_SetSolid = "A_SetSolid"; A_SetSpecial = "A_SetSpecial(int special, int arg0, int arg1, int arg2, int arg3, int arg4)"; A_SetTics = "A_SetTics(int tics)"; A_SetTranslucent = "A_SetTranslucent(float alpha, int mode)"; A_SetUserVar = "A_SetUserVar(string name, int value)"; A_TransferPointer = "A_TransferPointer(pointer source, pointer recipient, pointer sourcefield, pointer recipientfield[, int flags])"; A_UnHideThing = "A_UnHideThing"; A_UnsetFloat = "A_UnsetFloat"; A_UnSetFloorClip = "A_UnSetFloorClip"; A_UnSetInvulnerable = "A_UnSetInvulnerable"; A_UnSetReflective = "A_UnSetReflective"; A_UnSetReflectiveInvulnerable = "A_UnSetReflectiveInvulnerable"; A_UnSetShootable = "A_UnSetShootable"; A_UnsetSolid = "A_UnsetSolid"; //Missile movement A_SeekerMissile = "A_SeekerMissile(angle threshold, angle maxturnangle, int flags = 0, int chance = 50, int distance = 10)"; A_Tracer = "A_Tracer"; A_Tracer2 = "A_Tracer2"; A_FaceTracer = "A_FaceTracer[(float angle)[, float pitch]]"; A_Fire = "A_Fire[(int height)]"; A_BishopMissileWeave = "A_BishopMissileWeave"; A_CStaffMissileSlither = "A_CStaffMissileSlither"; A_Weave = "A_Weave(int horzspeed, int vertspeed, float horzdist, float vertdist)"; A_Warp = "A_Warp(int ptr_destination, float x-offset, float y-offset, float z-offset, float angle, int flags , state success_state)"; A_Countdown = "A_Countdown"; A_CountdownArg = "A_CountdownArg(int arg[, str targstate])"; A_Stop = "A_Stop"; //Inventory functions A_GiveInventory = "A_GiveInventory(string type, int count[, pointer giveto])"; A_GiveToTarget = "A_GiveToTarget(string type, int count[, pointer giveto])"; A_TakeInventory = "A_TakeInventory(string type, int count[, int flags[, pointer takefrom]])"; A_DropItem = "A_DropItem(string item, int dropamount = -1 , int chance = 256)\nThe calling actor drops the specified item.\nThis works in a similar way to the DropItem actor property."; A_TakeFromTarget = "A_TakeFromTarget(string type, int count[, pointer takefrom])"; A_DropInventory = "A_DropInventory(string type)"; A_SelectWeapon = "A_SelectWeapon(string type)"; A_RadiusGive = "A_RadiusGive(str item, fixed distance, int flags, int amount)"; //Weapon functions A_WeaponReady = "A_WeaponReady[(int flags)]"; A_Lower = "A_Lower"; A_Raise = "A_Raise"; A_ReFire = "A_ReFire[(str \"state\")]"; A_ClearReFire = "A_ClearReFire"; A_GunFlash = "A_GunFlash[(str state[, int flags])]"; A_CheckReload = "A_CheckReload"; A_CheckForReload = "A_CheckForReload(int counter, str state[, bool dontincrement])"; A_ResetReloadCounter = "A_ResetReloadCounter"; A_Light = "A_Light(int intensity)"; A_Light0 = "A_Light0"; A_Light1 = "A_Light1"; A_Light2 = "A_Light2"; A_LightInverse = "A_LightInverse"; A_Recoil = "A_Recoil(float force)"; A_ZoomFactor = "A_ZoomFactor(float zoom [, int flags])"; A_SetCrosshair = "A_SetCrosshair(int number)"; //Weapon attack functions A_Punch = "A_Punch"; A_Saw = "A_Saw[(string fullsound [, string hitsound [, int damage [, string pufftype[, int flags[, float range[, float spread_xy[, float spread_z[, float lifesteal]]]]]]]])]"; A_CustomPunch = "A_CustomPunch(int damage [, bool norandom [, int flags [, string pufftype, [float range[, float lifesteal]]]]])"; A_FireBullets = "A_FireBullets(angle spread_horz, angle spread_vert, int numbullets, int damage [, string pufftype [,int flags [, float range]]])"; A_FireCustomMissile = "A_FireCustomMissile(string missiletype [, angle angle [, bool useammo [, int spawnofs_horz [, int spawnheight [, bool aim[, angle pitch]]]]]])"; A_RailAttack = "A_RailAttack(int damage [, int spawnofs_horz [, bool useammo [, color ringcolor [, color corecolor [, int flags [, int maxdiff [, str pufftype [, float spread_xy [, float spread_z [, fixed range [, int duration [, float sparsity [, float driftspeed [, str spawnclass]]]]]]]]]]]]]])"; A_FireAssaultGun = "A_FireAssaultGun"; A_FireBFG = "A_FireBFG"; A_FireOldBFG = "A_FireOldBFG"; A_FireShotgun = "A_FireShotgun"; A_FireShotgun2 = "A_FireShotgun2"; A_FireCGun = "A_FireCGun"; A_FireMissile = "A_FireMissile"; A_FirePlasma = "A_FirePlasma"; //Script functions ACS_NamedExecute = "ACS_NamedExecute(string script, int map, int s_arg1, int s_arg2, int s_arg3):bool"; ACS_NamedSuspend = "ACS_NamedSuspend(string script, int map):bool"; ACS_NamedTerminate = "ACS_NamedTerminate(string script, int map):bool"; ACS_NamedLockedExecute = "ACS_NamedLockedExecute(string script, int map, int s_arg1, int s_arg2, int lock):bool"; ACS_NamedLockedExecuteDoor = "ACS_NamedLockedExecuteDoor(string script, int map, int s_arg1, int s_arg2, int lock):bool"; ACS_NamedExecuteWithResult = "ACS_NamedExecuteWithResult(string script, int s_arg1, int s_arg2, int s_arg3):int"; ACS_NamedExecuteAlways = "ACS_NamedExecuteAlways(string script, int map, int s_arg1, int s_arg2, int s_arg3):bool"; //Original Doom/Strife monster attacks A_PosAttack = "A_PosAttack"; A_SPosAttack = "A_SPosAttack"; A_CPosAttack = "A_CPosAttack"; A_CPosRefire = "A_CPosRefire"; A_SpidRefire = "A_SpidRefire"; A_TroopAttack = "A_TroopAttack"; A_SargAttack = "A_SargAttack"; A_HeadAttack = "A_HeadAttack"; A_BruisAttack = "A_BruisAttack"; A_SkullAttack = "A_SkullAttack[(int speed)]"; A_BspiAttack = "A_BspiAttack"; A_CyberAttack = "A_CyberAttack"; A_PainAttack = "A_PainAttack[(string spawntype)[, float angle[, int flags[, int limit]]]]"; A_DualPainAttack = "A_DualPainAttack[(string spawntype)]"; A_PainDie = "A_PainDie[(string spawntype)]"; A_SkelFist = "A_SkelFist"; A_SkelMissile = "A_SkelMissile"; A_FatAttack1 = "A_FatAttack1[(string spawntype)]"; A_FatAttack2 = "A_FatAttack2[(string spawntype)]"; A_FatAttack3 = "A_FatAttack3[(string spawntype)]"; A_VileTarget = "A_VileTarget[(string type)]"; A_VileAttack = "A_VileAttack(str sound, int initialdamage, int blastdamage, int blastradius, float thrustfactor, str damagetype)"; A_BrainSpit = "A_BrainSpit[(string spawntype)]"; A_SpawnFly = "A_SpawnFly[(string FogActor)]"; A_SpawnSound = "A_SpawnSound"; A_BrainScream = "A_BrainScream"; A_BrainExplode = "A_BrainExplode"; A_Mushroom = "A_Mushroom[(string spawntype [, int amount[, int flags[, float vrange[, float hrange]]]])]"; A_M_Saw = "A_M_Saw[(string fullsound [, string hitsound [, int damage [, string pufftype]]])]"; A_SentinelRefire = "A_SentinelRefire"; A_BetaSkullAttack = "A_BetaSkullAttack"; //Miscellaneous functions for Doom A_Hoof = "A_Hoof"; A_Metal = "A_Metal"; A_BabyMetal = "A_BabyMetal"; A_FatRaise = "A_FatRaise"; A_SkelWhoosh = "A_SkelWhoosh"; A_StartFire = "A_StartFire"; A_FireCrackle = "A_FireCrackle"; A_BFGSpray = "A_BFGSpray[(string flashtype [, int numrays [, int damage]])]"; A_BarrelDestroy = "A_BarrelDestroy"; //state keywords Light = "Light(string lightname)"; Offset = "Offset(int x, int y)"; } constants { Actor; //states: Spawn:; Idle:; See:; Melee:; Missile:; Pain:; Death:; XDeath:; Burn:; Ice:; Disintegrate:; Raise:; Heal:; Crash:; Crush:; Wound:; Greetings:; Yes:; No:; Active:; Inactive:; //State keywords //Bright; Fast; //flow control loop; stop; wait; fail; goto; //pointers AAPTR_DEFAULT; AAPTR_NULL; AAPTR_TARGET; AAPTR_MASTER; AAPTR_TRACER; AAPTR_PLAYER; AAPTR_PLAYER_GETTARGET; AAPTR_PLAYER_GETCONVERSATION; SXF_SETMASTER; SXF_TRANSFERPOINTERS; //weapon flags WRF_NOBOB; WRF_NOFIRE; WRF_NOSWITCH; WRF_NOPRIMARY; WRF_NOSECONDARY; WRF_ALLOWRELOAD; WRF_ALLOWZOOM; ZOOM_INSTANT; ZOOM_NOSCALETURNING; CPF_USEAMMO; CPF_DAGGER; CPF_PULLIN; FBF_USEAMMO; FBF_NORANDOM; FBF_EXPLICITANGLE; FBF_NOPITCH; RGF_SILENT; RGF_NOPIERCING; RGF_EXPLICITANGLE; RGF_FULLBRIGHT; //monster flags PAF_NOSKULLATTACK; PAF_AIMFACING; PAF_NOTARGET; //misc flags MSF_Standard; MSF_Classic; MSF_DontHurt; //combo flags Monster; Projectile; //physics SOLID; SHOOTABLE; FLOAT; NOGRAVITY; WINDTHRUST; PUSHABLE; DONTFALL; CANPASS; ACTLIKEBRIDGE; NOBLOCKMAP; MOVEWITHSECTOR; NOLIFTDROP; SLIDESONWALLS; NODROPOFF; NOTRIGGER; BLOCKEDBYSOLIDACTORS; //Behavior ALWAYSRESPAWN; AMBUSH; AVOIDMELEE; BOSS; DONTCORPSE; DORMANT; FRIENDLY; JUMPDOWN; LOOKALLAROUND; MISSILEEVENMORE; MISSILEMORE; NEVERRESPAWN; NOSPLASHALERT; NOTARGETSWITCH; NOVERTICALMELEERANGE; QUICKTORETALIATE; STANDSTILL; //(In)Abilities CANNOTPUSH; NOTELEPORT; ACTIVATEIMPACT; CANPUSHWALLS; CANUSEWALLS; ACTIVATEPCROSS; CANTLEAVEFLOORPIC; TELESTOMP; STAYMORPHED; CANBLAST; NOBLOCKMONST; THRUGHOST; THRUACTORS; THRUSPECIES; MTHRUSPECIES; SPECTRAL; FRIGHTENED; NOTARGET; NOINFIGHTING; NOTIMEFREEZE; NOFEAR; CANTSEEK; SEEINVISIBLE; //Defenses INVULNERABLE; REFLECTIVE; SHIELDREFLECT; DEFLECT; NORADIUSDMG; DONTBLAST; GHOST; DONTMORPH; DONTSQUASH; NOTELEOTHER; DOHARMSPECIES; DONTHARMCLASS; DONTHARMSPECIES; NODAMAGE; DONTRIP; NOTELEFRAG; //Appearance & Sound BRIGHT; INVISIBLE; SHADOW; NOBLOOD; NOBLOODDECALS; STEALTH; FLOORCLIP; SPAWNFLOAT; SPAWNCEILING; FLOATBOB; NOICEDEATH; DONTGIB; DONTSPLASH; DONTOVERLAP; RANDOMIZE; FIXMAPTHINGPOS; FULLVOLACTIVE; FULLVOLDEATH; NOWALLBOUNCESND; VISIBILITYPULSE; ROCKETTRAIL; GRENADETRAIL; NOBOUNCESOUND; NOSKIN; DONTTRANSLATE; NOPAIN; FORCEYBILLBOARD; FORCEXYBILLBOARD; //Projectile MISSILE; RIPPER; NOBOSSRIP; NODAMAGETHRUST; DONTREFLECT; FLOORHUGGER; CEILINGHUGGER; BLOODLESSIMPACT; BLOODSPLATTER; FOILINVUL; SEEKERMISSILE; SCREENSEEKER; SKYEXPLODE; NOEXPLODEFLOOR; STRIFEDAMAGE; EXTREMEDEATH; NOEXTREMEDEATH; DEHEXPLOSION; PIERCEARMOR; FORCERADIUSDMG; SPAWNSOUNDSOURCE; PAINLESS; FORCEPAIN; DONTSEEKINVISIBLE; STEPMISSILE; ADDITIVEPOISONDAMAGE; ADDITIVEPOISONDURATION; //Bouncing BOUNCEONWALLS; BOUNCEONFLOORS; BOUNCEONCEILINGS; ALLOWBOUNCEONACTORS; BOUNCEAUTOOFF; BOUNCEAUTOOFFFLOORONLY; BOUNCELIKEHERETIC; BOUNCEONACTORS; NOWALLBOUNCESND; EXPLODEONWATER; CANBOUNCEWATER; MBFBOUNCER; //Miscellaneous DROPPED; ISMONSTER; CORPSE; COUNTITEM; COUNTKILL; COUNTSECRET; NOTDMATCH; NONSHOOTABLE; DROPOFF; PUFFONACTORS; ALLOWPARTICLES; ALWAYSPUFF; PUFFGETSOWNER; SYNCHRONIZED; ALWAYSFAST; NEVERFAST; OLDRADIUSDMG; USESPECIAL; BUMPSPECIAL; BOSSDEATH; NOINTERACTION; NOTAUTOAIMED; PICKUP; TOUCHY; VULNERABLE; //Limited Use SEESDAGGERS; INCOMBAT; NOCLIP; NOSECTOR; ICECORPSE; JUSTHIT; JUSTATTACKED; TELEPORT; BLASTED; EXPLOCOUNT; SKULLFLY; }