
decorate : cstyle {
	name = "ZDoom Decorate";
	keyword_link = "http://zdoom.org/wiki/Special:Search/%s";
	constant_link = "http://zdoom.org/wiki/Special:Search/%s";
	function_link = "http://zdoom.org/wiki/%s";
	case_sensitive = false;
	blocks = "Actor", "DamageType";
	comment_doc = "//$";

	keywords = {
		$override,

		// General keywords
		Actor, States, Spawn, See, Melee, Missile, Pain, Death, XDeath, Burn, Ice, Disintegrate,
		Raise, Heal, Crash, Crush, Wound, Greetings, Yes, No, Extreme, Bounce, Floor, Ceiling,
		Wall, Creature, Loop, Stop, Wait, Fail, Goto, Ready, Deselect, Select, Fire, AltFire,
		Hold, AltHold, Flash, AltFlash, Reload, Zoom, Pickup, Use, Drop, Bright, Fast, Slow, NoDelay,
		CanRaise, Idle, Active, Inactive, Action, Native, Const, Enum, Replaces,
		LightDone, Super, Spray, GenericFreezeDeath, GenericCrush, User1, User2, User3, User4,
		DeadLowered
	}

	properties = {
		$override,

		// Actor properties

		// Generic
		Game, SpawnID, ConversationID,

		// Text
		Obituary, HitObituary, Tag,

		// Health and Pain
		Health, GibHealth, WoundHealth, PainChance, PainThreshold, PainType, DeathType,

		// Combat
		Accuracy, Stamina, ReactionTime,
		Damage, DamageFactor, DamageMultiply, DamageType, PoisonDamage, PoisonDamageType,
		ExplosionRadius, ExplosionDamage, SelfDamageFactor, RadiusDamageFactor, DontHurtShooter,
		MeleeDamage, MeleeThreshold, MeleeRange, MaxTargetRange, FriendlySeeBlocks,
		MissileType, MissileHeight, MinMissileChance, MissileChanceMult,
		WeaveIndexXY, WeaveIndexZ, ProjectileKickBack,
		RipperLevel, RipLevelMin, RipLevelMax,
		Threshold, DefThreshold,
		ShadowAimFactor, ShadowPenaltyFactor,

		// Physics
		Gravity, Mass, Radius, Height, BounceFactor, BounceCount, BounceType, WallBounceFactor, PushFactor,
		DeathHeight, BurnHeight, ProjectilePassHeight, CameraHeight, MaxStepHeight, MaxDropOffHeight,
		Speed, VSpeed, FastSpeed, FloatSpeed, Friction, MaxSlopeSteepness, ThruBits, LandingSpeed,

		// Rendering
		RenderStyle, None, Normal, Fuzzy, OptFuzzy, Translucent, SoulTrans, Stencil, AddStencil, StencilColor, Shaded,
		AddShaded, Shadow, Add, Subtract, DefaultAlpha, Alpha, XScale, YScale, Scale, Translation,
		BloodColor, BloodType, Decal, FloatBobPhase, DistanceCheck, SpriteAngle, SpriteRotation, VisibleAngles,
		VisiblePitch, StealthAlpha, FloatBobStrength, RenderRadius, CameraFOV, LightLevel, FloatBobFactor,

		// Sounds
		SeeSound, AttackSound, PainSound, BounceSound, CrushPainSound,
		DeathSound, ActiveSound, MeleeSound, HowlSound, PainSound, WallBounceSound, RipSound, PushSound,

		// Multiplayer weirdness
		DesignatedTeam, VisibleToTeam, VisibleToPlayerClass,

		// Scripting
		Args, ClearFlags, Species, Activation, DropItem, Skip_Super, DynamicLight,

		// Player-specific properties
		Player, DisplayName, SoundClass, Face, ColorRange, ColorSet, ColorSetFile, ClearColorSet,
		AttackZOffset, JumpZ, SpawnClass, ViewHeight, ForwardMove, SideMove, MaxHealth, MugshotMaxHealth,
		RunHealth, MorphWeapon, FlechetteType, ScoreIcon, CrouchSprite, DamageScreenColor, StartItem,
		InvulnerabilityMode, HealRadiusType, HexenArmor, Portrait, WeaponSlot, FallingScreamSpeed, GruntSpeed,
		AirCapacity, UseRange, ViewBob, TeleportFreezeTime, FlyBob, WaterClimbSpeed, ViewBobSpeed,

		// Inventory-specific properties
		Inventory, RestrictedTo, ForbiddenTo, Amount, Icon, InterHubAmount, MaxAmount,
		DefMaxAmount, PickupFlash, PickupMessage, PickupSound, PickupAnnouncerEntry,
		Respawntics, UseSound, GiveQuest, AltHUDIcon,

		// Fake Inventory
		FakeInventory, Respawns,

		// Health
		Health, LowMessage,

		// Health pickup
		HealthPickup, AutoUse,

		// Armor-specific properties
		Armor, SaveAmount, SavePercent, MaxAbsorb, MaxFullAbsorb, MaxSaveAmount, MaxBonus, MaxBonusMax,

		// Powerup-specific properties
		Powerup, Color, Colormap, Duration, Mode, Strength, Type,

		// Predefined powerup colors
		BlueMap, GoldMap, GreenMap, InverseMap, RedMap,

		// Morph powerup
		PowerMorph, PlayerClass, MorphStyle, MorphFlash, UnmorphFlash, MonsterClass,

		// Morph projectile
		MorphProjectile, PlayerClass, MonsterClass, Duration, MorphStyle, MorphFlash, UnmorphFlash,

		// Weapon-specific properties
		Weapon, Kickback, DefaultKickback, ReadySound, SelectionOrder, SisterWeapon, UpSound, YAdjust,
		AmmoGive, AmmoGive1, AmmoGive2, AmmoType, AmmoType1, AmmoType2, AmmoUse, AmmoUse1, AmmoUse2,
		BobStyle, BobSpeed, BobRangeX, BobRangeY, SlotNumber, SlotPriority, PreferredSkin,
		MinSelectionAmmo1, MinSelectionAmmo2, WeaponScaleX, WeaponScaleY, LookScale,

		// Weapon piece
		WeaponPiece, Number, Weapon,

		// Ammo-specific properties
		Ammo, BackpackAmount, BackpackMaxAmount, DropAmount,

		// Puzzle items
		PuzzleItem, Number, FailMessage, FailSound,

		// Spectator camera
		SpectatorCamera, ChaseMode, ChasingTracer, LagDistance,

		// Combos
		Monster, Projectile,

		// DECORATE expressions
		x, y, z, angle, momx, momy, momz, velx, vely, velz, pitch, tid, tidtohate,
		ceilingz, floorz, scalex, scaley, score, special, waterlevel, var, int,
		roll, visibleendangle, visibleendpitch, visiblestartangle, visiblestartpitch,

		// Anonymous functions
		bool, state, if, else, return, for, while, do, break, continue,

		// Damage type properties
		NoArmor, Factor, ReplaceFactor,

		// Miscellaneous
		TeleFogSourceType, TeleFogDestType,
	}

	constants = {
		// General constants
		TRUE, FALSE,

		// Flags
		ABSMASKANGLE, ABSMASKPITCH, ACTIVATEIMPACT, ACTIVATEMCROSS, ACTIVATEPCROSS, ACTLIKEBRIDGE, ADDITIVEPOISONDAMAGE,
		ADDITIVEPOISONDURATION, AIMREFLECT, ALLOWBOUNCEONACTORS, ALLOWPAIN, ALLOWPARTICLES, ALLOWTHRUFLAGS, ALWAYSFAST,
		ALWAYSPUFF, ALWAYSRESPAWN, ALWAYSTELEFRAG, AMBUSH, AVOIDMELEE, BLASTED, BLOCKEDBYSOLIDACTORS,
		BLOODLESSIMPACT, BLOODSPLATTER, BOSS, BOSSDEATH, BOUNCEAUTOOFF, BOUNCEAUTOOFFFLOORONLY,
		BOUNCELIKEHERETIC, BOUNCEONACTORS, BOUNCEONCEILINGS, BOUNCEONFLOORS, BOUNCEONWALLS, BRIGHT, BUDDHA,
		BUMPSPECIAL, CANBLAST, CANBOUNCEWATER, CANNOTPUSH, CANPASS, CANPASS, CANPUSHWALLS, CANTLEAVEFLOORPIC,
		CANTSEEK, CANUSEWALLS, CAUSEPAIN, CEILINGHUGGER, CORPSE, COUNTITEM, COUNTKILL, COUNTSECRET, DEFLECT,
		DEHEXPLOSION, DOHARMSPECIES, DONTBLAST, DONTCORPSE, DONTDRAIN, DONTFALL, DONTGIB, DONTHARMCLASS,
		DONTHARMSPECIES, DONTHURTSPECIES, DONTMORPH, DONTOVERLAP, DONTREFLECT, DONTRIP, DONTSEEKINVISIBLE,
		DONTSPLASH, DONTSQUASH, DONTTHRUST, DONTTRANSLATE, DOOMBOUNCE, DORMANT, DROPOFF, DROPPED, EXPLOCOUNT,
		EXPLODEONWATER, EXTREMEDEATH, FASTER, FASTMELEE, FIREDAMAGE, FIRERESIST, FIXMAPTHINGPOS, FLOAT,
		FLOATBOB, FLOORCLIP, FLOORHUGGER, FOILBUDDHA, FOILINVUL, FORCEDECAL, FORCEPAIN, FORCERADIUSDMG, FORCEXYBILLBOARD,
		FORCEYBILLBOARD, FRIENDLY, FRIGHTENED, FULLVOLACTIVE, FULLVOLDEATH, GETOWNER, GHOST, GRENADETRAIL, HARMFRIENDS,
		HERETICBOUNCE, HEXENBOUNCE, HITMASTER, HITTARGET, HITTRACER, ICECORPSE, ICEDAMAGE, ICESHATTER, INCOMBAT, INVISIBLE,
		INVULNERABLE, ISMONSTER, JUMPDOWN, JUSTATTACKED, JUSTHIT, LAXTELEFRAGDMG, LONGMELEERANGE, LOOKALLAROUND, LOWGRAVITY,
		MASKROTATION, MBFBOUNCER, MISSILE, MISSILEEVENMORE, MISSILEMORE, MIRRORREFLECT, MOVEWITHSECTOR, MTHRUSPECIES, NEVERFAST,
		NEVERRESPAWN, NEVERTARGET, NOBLOCKMAP, NOBLOCKMONST, NOBLOOD, NOBLOODDECALS, NOBOSSRIP, NOBOUNCESOUND,
		NOCLIP, NODAMAGE, NODAMAGETHRUST, NODECAL, NODROPOFF, NOEXPLODEFLOOR, NOEXTREMEDEATH, NOFEAR, NOFORWARDFALL,
		NOGRAVITY, NOICEDEATH, NOINFIGHTING, NOINTERACTION, NOKILLSCRIPTS, NOLIFTDROP, NOMENU, NONSHOOTABLE, NOPAIN,
		NORADIUSDMG, NOSECTOR, NOSKIN, NOSPLASHALERT, NOTARGET, NOTARGETSWITCH, NOTAUTOAIMED, NOTDMATCH,
		NOTELEFRAG, NOTELEOTHER, NOTELEPORT, NOTELESTOMP, NOTIMEFREEZE, NOTONAUTOMAP, NOTRIGGER,
		NOVERTICALMELEERANGE, NOWALLBOUNCESND, OLDRADIUSDMG, PAINLESS, PICKUP, PIERCEARMOR, PUFFGETSOWNER,
		PUFFONACTORS, PUSHABLE, QUARTERGRAVITY, QUICKTORETALIATE, RANDOMIZE, REFLECTIVE, RELATIVETOFLOOR,
		RIPPER, ROCKETTRAIL, SCREENSEEKER, SEEINVISIBLE, SEEKERMISSILE, SEESDAGGERS, SHADOW, SHIELDREFLECT,
		SHOOTABLE, SHORTMISSILERANGE, SKULLFLY, SKYEXPLODE, SLIDESONWALLS, SOLID, SPAWNCEILING, SPAWNFLOAT,
		SPAWNSOUNDSOURCE, SPECIAL, SPECIALFIREDAMAGE, SPECIALFLOORCLIP, SPECTRAL, SPRITEANGLE, STANDSTILL, STAYMORPHED,
		STEALTH, STEPMISSILE, STRIFEDAMAGE, SUMMONEDMONSTER, SYNCHRONIZED, TELEPORT, TELESTOMP, TERRAIN,
		THRUACTORS, THRUGHOST, THRUREFLECT, THRUSPECIES, TOUCHY, USEBOUNCESTATE, USEKILLSCRIPTS, USESPECIAL,
		VISIBILITYPULSE, VULNERABLE, WEAPONSPAWN, WINDTHRUST, INTERPOLATEANGLES, SPRITEFLIP, XFLIP, YFLIP,
		DONTINTERPOLATE, ZDOOMTRANS, ABSVIEWANGLES, CASTSPRITESHADOW, NOSPRITESHADOW, BLOCKASPLAYER, NOFRICTION,
		NOFRICTIONBOUNCE, FALLDAMAGE, ALLOWTHRUBITS, DONTFACETALKER, AVOIDHAZARDS, STAYONLIFT, FRIGHTENING,
		NOINFIGHTSPECIES, FORCEINFIGHTING, STOPRAILS, FULLVOLSEE, FORCEZERORADIUSDMG, POISONALWAYS, HITOWNER,
		BOUNCEONUNRIPPABLES, DONTBOUNCEONSHOOTABLES, DONTBOUNCEONSKY, RETARGETAFTERSLAM, E1M8BOSS, E2M8BOSS,
		E3M8BOSS, E4M6BOSS, E4M8BOSS, MAP07BOSS1, MAP07BOSS2, HIGHERMPROB, DONTFOLLOWPLAYERS, SEEFRIENDLYMONSTERS,
		ADDLIGHTLEVEL, CROSSLINECHECK, MASTERNOSEE, INVISIBLEINMIRRORS, ONLYVISIBLEINMIRRORS, ONLYSLAMSOLID,
		SHADOWAIM, DOSHADOWBLOCK, SHADOWBLOCK, SHADOWAIMVERT, NOSAVEGAME, DECOUPLEDANIMATIONS, BILLBOARDFACECAMERA,
		BILLBOARDNOFACECAMERA, FLIPSPRITEOFFSETX, FLIPSPRITEOFFSETY, CAMFOLLOWSPLAYER, NOMIPMAP, ISOMETRICSPRITES,
		SQUAREPIXELS, NOSECTORDAMAGE, ISPUFF, FORCESECTORDAMAGE,

		// INVENTORY.
		INVENTORY,
		QUIET, AUTOACTIVATE, UNDROPPABLE, INVBAR, HUBPOWER, PERSISTENTPOWER, INTERHUBSTRIP,
		PICKUPFLASH, ALWAYSPICKUP, FANCYPICKUPSOUND, BIGPOWERUP, KEEPDEPLETED, IGNORESKILL,
		ADDITIVETIME, UNTOSSABLE, RESTRICTABSOLUTELY, NEVERRESPAWN, NOSCREENFLASH,
		NOATTENPICKUPSOUND, TOSSED, TRANSFER, NOTELEPORTFREEZE, UNCLEARABLE, NOSCREENBLINK,
		ISHEALTH, ISARMOR, NEVERLOCAL, ISKEYITEM,

		// PLAYERPAWN.
		PLAYERPAWN,
		CANSUPERMORPH,
		CROUCHABLEMORPH,
		NOTHRUSTWHENINVUL,
		WEAPONLEVEL2ENDED,

		// POWERSPEED.
		POWERSPEED,
		NOTRAIL,

		// WEAPON.
		WEAPON,
		NOAUTOFIRE, READYSNDHALF, DONTBOB, AXEBLOOD, NOALERT,
		AMMO_OPTIONAL, ALT_AMMO_OPTIONAL, AMMO_CHECKBOTH, PRIMARY_USES_BOTH,
		ALT_USES_BOTH, WIMPY_WEAPON, POWERED_UP, STAFF2_KICKBACK, EXPLOSIVE,
		MELEEWEAPON, BFG, CHEATNOTWEAPON, NO_AUTO_SWITCH, NOAUTOAIM, NODEATHDESELECT,
		NODEATHINPUT, NOAUTOSWITCHTO,

		//thing activation
		THINGSPEC_Default, THINGSPEC_ThingActs, THINGSPEC_TriggerActs, THINGSPEC_ThingTargets, THINGSPEC_TriggerTargets,
		THINGSPEC_MonsterTrigger, THINGSPEC_MissileTrigger, THINGSPEC_ClearSpecial, THINGSPEC_NoDeathSpecial, THINGSPEC_Activate,
		THINGSPEC_Deactivate, THINGSPEC_Switch,
		AF_Default, AF_ThingActs, AF_ThingTargets, AF_TriggerTargets, AF_MonsterTrigger, AF_MissileTrigger, AF_ClearSpecial, AF_NoDeathSpecial, AF_TriggerActs,

		//both bouncetype and game constants
		Doom, Heretic, Hexen, Chex, Raven, Strife, Classic, Grenade, DoomCompat, HereticCompat, HexenCompat,

		// Skulltag/Zandronum
		CLIENTSIDEONLY,

		// Flat sprites
		ROLLSPRITE, FLATSPRITE, WALLSPRITE, DONTFLIP, ROLLCENTER,

		//constants, source: gzdoom.pk3
		AAPTR_DEFAULT, AAPTR_FRIENDPLAYER, AAPTR_LINETARGET, AAPTR_MASTER, AAPTR_NULL, AAPTR_PLAYER_GETCONVERSATION,
		AAPTR_PLAYER_GETTARGET, AAPTR_PLAYER1, AAPTR_PLAYER2, AAPTR_PLAYER3, AAPTR_PLAYER4, AAPTR_PLAYER5,
		AAPTR_PLAYER6, AAPTR_PLAYER7, AAPTR_PLAYER8, AAPTR_TARGET, AAPTR_TRACER,
		AF_ClearSpecial, AF_Default, AF_MissileTrigger, AF_MonsterTrigger, AF_NoDeathSpecial, AF_ThingActs,
		AF_ThingTargets, AF_TriggerActs, AF_TriggerTargets,
		AMF_TARGETEMITTER, AMF_TARGETNONPLAYER, AMF_EMITFROMTARGET,
		ATTN_IDLE, ATTN_NONE, ATTN_NORM, ATTN_STATIC,

		// A_BFGSpray flags
		BFGF_HURTSOURCE, BFGF_MISSILEORIGIN,

		BF_AFFECTBOSSES, BF_DONTWARN, BF_USEAMMO, BF_NOIMPACTDAMAGE,
		BLOCKF_CREATURES, BLOCKF_EVERYTHING, BLOCKF_FLOATERS, BLOCKF_MONSTERS, BLOCKF_PLAYERS,
		BLOCKF_PROJECTILES, BLOCKF_RAILING, BLOCKF_USE,

		// A_CustomBulletAttack flags
		CBAF_AIMFACING, CBAF_EXPLICITANGLE, CBAF_NOPITCH, CBAF_NORANDOM, CBAF_NORANDOMPUFFZ,
		CBAF_PUFFTARGET, CBAF_PUFFMASTER, CBAF_PUFFTRACER,

		// A_CheckBlock flags
		CBF_NOLINES, CBF_SETTARGET, CBF_SETMASTER, CBF_SETTRACER, CBF_SETONPTR, CBF_DROPOFF, CBF_NOACTORS,
		CBF_ABSOLUTEPOS, CBF_ABSOLUTEANGLE,

		CHAN_5, CHAN_6, CHAN_7, CHAN_AUTO, CHAN_BODY, CHAN_ITEM, CHAN_LISTENERZ, CHAN_MAYBE_LOCAL,
		CHAN_NOPAUSE, CHAN_UI, CHAN_VOICE, CHAN_WEAPON, CHAN_LOOP, CHAN_PICKUP, CHAN_NOSTOP, CHAN_OVERLAP,

		// A_StartSound flags
		CHANF_DEFAULT, CHANF_LISTENERZ, CHANF_MAYBE_LOCAL, CHANF_UI, CHANF_NOPAUSE, CHANF_LOOP, CHANF_NOSTOP,
		CHANF_OVERLAP, CHANF_LOCAL, CHANF_LOOPING,

		// A_Chase flags
		CHF_DONTMOVE, CHF_FASTCHASE, CHF_NIGHTMAREFAST, CHF_NOPLAYACTIVE, CHF_RESURRECT, CHF_NORANDOMTURN,
		CHF_NODIRECTIONTURN, CHF_NOPOSTATTACKTURN, CHF_STOPIFBLOCKED, CHF_DONTTURN, CHF_DONTIDLE, CHF_DONTLOOKALLAROUND,

		// A_CheckLOF flags
		CLOFF_NOAIM_VERT, CLOFF_NOAIM_HORZ, CLOFF_AIM_VERT_NOOFFSET, CLOFF_FROMBASE, CLOFF_MUL_HEIGHT,
		CLOFF_MUL_WIDTH, CLOFF_JUMPENEMY, CLOFF_JUMPFRIEND, CLOFF_JUMPOBJECT, CLOFF_JUMPNONHOSTILE,
		CLOFF_SKIPENEMY, CLOFF_SKIPFRIEND, CLOFF_SKIPOBJECT, CLOFF_SKIPNONHOSTILE, CLOFF_JUMP_ON_MISS,
		CLOFF_MUSTBESHOOTABLE, CLOFF_MUSTBEGHOST, CLOFF_IGNOREGHOST, CLOFF_MUSTBESOLID, CLOFF_SKIPTARGET,
		CLOFF_BEYONDTARGET, CLOFF_ALLOWNULL, CLOFF_CHECKPARTIAL, CLOFF_SKIPOBSTACLES, CLOFF_NOAIM,
		CLOFF_SETTARGET, CLOFF_SETMASTER, CLOFF_SETTRACER,

		// A_CustomMissile flags
		CMF_ABSOLUTEANGLE, CMF_ABSOLUTEPITCH, CMF_AIMDIRECTION, CMF_AIMOFFSET, CMF_CHECKTARGETDEAD, CMF_OFFSETPITCH,
		CMF_SAVEPITCH, CMF_TRACKOWNER,

		// A_CustomPunch flags
		CPF_DAGGER, CPF_PULLIN, CPF_USEAMMO, CPF_NORANDOMPUFFZ, CPF_NOTURN, CPF_STEALARMOR,

		// A_CopySpriteFrame flags
		CPSF_NOSPRITE, CPSF_NOFRAME,

		// A_CheckProximity flags
		CPXF_ANCESTOR, CPXF_LESSOREQUAL, CPXF_NOZ, CPXF_COUNTDEAD, CPXF_DEADONLY, CPXF_EXACT, CPXF_SETTARGET,
		CPXF_SETMASTER, CPXF_SETTRACER, CPXF_FARTHEST, CPXF_CLOSEST, CPXF_SETONPTR, CPXF_CHECKSIGHT,

		// A_ChangeVelocity flags
		CVF_RELATIVE, CVF_REPLACE,

		// Flags for A_Damage* functions
		DMSS_AFFECTARMOR, DMSS_FOILBUDDHA, DMSS_FOILINVUL, DMSS_KILL, DMSS_NOFACTOR, DMSS_NOPROTECT, DMSS_EXFILTER,
		DMSS_EXSPECIES, DMSS_EITHER, DMSS_INFLICTORDMGTYPE,

		// Flags for A_Face* functions
		FAF_BOTTOM, FAF_MIDDLE, FAF_TOP, FAF_NODISTFACTOR,

		// A_FireBullets flags
		FBF_EXPLICITANGLE, FBF_NOFLASH, FBF_NOPITCH, FBF_NORANDOM, FBF_USEAMMO, FBF_NORANDOMPUFFZ,
		FBF_PUFFTARGET, FBF_PUFFMASTER, FBF_PUFFTRACER,

		// A_ChangeCountFlags
		FLAG_NO_CHANGE,

		// A_ChangeModel flags
		CMDL_HIDEMODEL, CMDL_USESURFACESKIN, CMDL_WEAPONTOPLAYER,

		// A_FaceMovementDirection flags
		FMDF_NOPITCH, FMDF_INTERPOLATE, FMDF_NOANGLE,

		// A_FireCustomMissile flags
		FPF_AIMATANGLE, FPF_TRANSFERTRANSLATION, FPF_NOAUTOAIM,

		// A_Fade* functions flags
		FTF_REMOVE, FTF_CLAMP,

		// GetAngle flags
		GAF_RELATIVE, GAF_SWITCH,

		// A_GunFlash flags
		GFF_NOEXTCHANGE,

		// GetZAt native function flags
		GZF_3DRESTRICT, GZF_ABSOLUTEANG, GZF_ABSOLUTEPOS, GZF_CEILING, GZF_NO3DFLOOR, GZF_NOPORTALS,

		// GetPlayerInput stuffage
		INPUT_OLDBUTTONS, INPUT_BUTTONS, INPUT_PITCH, INPUT_YAW, INPUT_ROLL, INPUT_FORWARDMOVE, INPUT_SIDEMOVE,
		INPUT_UPMOVE,

		MODINPUT_OLDBUTTONS, MODINPUT_BUTTONS, MODINPUT_PITCH, MODINPUT_YAW, MODINPUT_ROLL,
		MODINPUT_FORWARDMOVE, MODINPUT_SIDEMOVE, MODINPUT_UPMOVE,

		BT_ATTACK, BT_USE, BT_JUMP, BT_CROUCH, BT_TURN180, BT_ALTATTACK, BT_RELOAD, BT_ZOOM, BT_SPEED, BT_STRAFE,
		BT_MOVERIGHT, BT_MOVELEFT, BT_BACK, BT_FORWARD, BT_RIGHT, BT_LEFT, BT_LOOKUP, BT_LOOKDOWN, BT_MOVEUP,
		BT_MOVEDOWN, BT_SHOWSCORES, BT_USER1, BT_USER2, BT_USER3, BT_USER4,

		// Flags for A_JumpIfTargetInLOS and A_JumpIfInTargetLOS
		JLOSF_ALLYNOJUMP, JLOSF_CHECKMASTER, JLOSF_CHECKTRACER, JLOSF_CLOSENOFOV, JLOSF_CLOSENOJUMP, JLOSF_CLOSENOSIGHT,
		JLOSF_COMBATANTONLY, JLOSF_DEADNOJUMP, JLOSF_FLIPFOV, JLOSF_NOSIGHT, JLOSF_PROJECTILE, JLOSF_TARGETLOS,
		JLOSF_NOAUTOAIM,

		// Flags for A_Kill* functions
		KILS_FOILBUDDHA, KILS_FOILINVUL, KILS_KILLMISSILES, KILS_NOMONSTERS, KILS_EXFILTER, KILS_EXSPECIES, KILS_EITHER,

		LOF_DONTCHASEGOAL, LOF_FULLVOLSEESOUND, LOF_NOJUMP, LOF_NOSEESOUND, LOF_NOSIGHTCHECK, LOF_NOSOUNDCHECK,
		MRF_ADDSTAMINA, MRF_FAILNOLAUGH, MRF_FAILNOTELEFRAG, MRF_FULLHEALTH, MRF_LOSEACTUALWEAPON,
		MRF_NEWTIDBEHAVIOUR, MRF_UNDOBYCHAOSDEVICE, MRF_UNDOBYDEATH, MRF_UNDOBYDEATHFORCED, MRF_UNDOBYDEATHSAVES,
		MRF_UNDOBYTOMEOFPOWER, MRF_WHENINVULNERABLE, MRF_UNDOALWAYS, MRF_TRANSFERTRANSLATION,
		MSF_Classic, MSF_DontHurt, MSF_Standard,
		PAF_AIMFACING, PAF_NOSKULLATTACK, PAF_NOTARGET,
		PROP_ALLMAP, PROP_BUDDHA, PROP_FLIGHT, PROP_FLY, PROP_FROZEN, PROP_INFRARED, PROP_INSTANTWEAPONSWITCH,
		PROP_INVISIBILITY, PROP_INVULNERABILITY , PROP_NOTARGET, PROP_RADIATIONSUIT, PROP_SPEED, PROP_STRENGTH,
		PROP_TOTALLYFROZEN, PROP_WEAPONLEVEL2, PTROP_NOSAFEGUARDS, PTROP_UNSAFEMASTER, PTROP_UNSAFETARGET,

		// psprite layers flags
		PSPF_ADDWEAPON, PSPF_ADDBOB, PSPF_POWDOUBLE, PSPF_CVARFAST, PSPF_FLIP,

		// Default psprite layers
		PSP_WEAPON, PSP_FLASH,

		// A_QuakeEx flags
		QF_RELATIVE, QF_SCALEDOWN, QF_SCALEUP, QF_MAX, QF_FULLINTENSITY, QF_WAVE, QF_3D, QF_GROUNDONLY,
		QF_AFFECTACTORS, QF_SHAKEONLY, QF_DAMAGEFALLOFF,

		// A_RadiusDamageSelf flags
		RDSF_BFGDAMAGE,

		// A_RaiseSelf flags
		RF_NOCHECKPOSITION,

		// A_RailAttack and A_CustomRailgun flags
		RGF_CENTERZ, RGF_EXPLICITANGLE, RGF_FULLBRIGHT, RGF_NOPIERCING, RGF_SILENT, RGF_NORANDOMPUFFZ,

		// A_RadiusGive flags
		RGF_CORPSES, RGF_CUBE, RGF_GIVESELF, RGF_MISSILES, RGF_MONSTERS, RGF_NOMASTER, RGF_NOSIGHT, RGF_NOTARGET,
		RGF_NOTRACER, RGF_OBJECTS, RGF_PLAYERS, RGF_VOODOO, RGF_INCLUSIVE, RGF_ITEMS, RGF_KILLED, RGF_EXFILTER,
		RGF_EXSPECIES, RGF_EITHER,

		// Flags for A_Remove* functions
		RMVF_EVERYTHING, RMVF_MISC, RMVF_MISSILES, RMVF_NOMONSTERS, RMVF_EXFILTER, RMVF_EXSPECIES, RMVF_EITHER,

		RSF_FOG, RSF_KEEPTARGET, RSF_TELEFRAG,

		// A_RadiusThrust flags
		RTF_AFFECTSOURCE, RTF_NOIMPACTDAMAGE, RTF_NOTMISSILE, RTF_THRUSTZ, RTF_CIRCULARTHRUST,

		// A_Saw flags
		SF_NOPULLIN, SF_NORANDOM, SF_NOTURN, SF_NOUSEAMMO, SF_NOUSEAMMOMISS, SF_RANDOMLIGHTBOTH,
		SF_RANDOMLIGHTHIT, SF_RANDOMLIGHTMISS, SF_STEALARMOR,

		// A_SeekerMissile flags
		SMF_CURSPEED, SMF_LOOK, SMF_PRECISE,

		// A_SetPitch flags
		SPF_FORCECLAMP, SPF_INTERPOLATE,

		// A_SpawnParticle flags
		SPF_FULLBRIGHT, SPF_RELACCEL, SPF_RELANG, SPF_RELATIVE, SPF_RELPOS, SPF_RELVEL, SPF_NOTIMEFREEZE,
		SPF_ROLL, SPF_REPLACE, SPF_NO_XY_BILLBOARD, SPF_LOCAL_ANIM, SPF_NEGATIVE_FADESTEP, SPF_FACECAMERA,
		SPF_NOFACECAMERA, SPF_ROLLCENTER, SPF_NOMIPMAP,

		// Render styles
		STYLE_None, STYLE_Normal, STYLE_Fuzzy, STYLE_SoulTrans, STYLE_OptFuzzy, STYLE_Stencil, STYLE_Translucent,
		STYLE_Add, STYLE_Shaded, STYLE_TranslucentStencil, STYLE_Shadow, STYLE_Subtract, STYLE_AddStencil,
		STYLE_AddShaded,

		// A_SelectWeapon flags
		SWF_SELECTPRIORITY,

		// A_SpawnItemEx flags
		SXF_ABSOLUTEANGLE, SXF_ABSOLUTEMOMENTUM, SXF_ABSOLUTEPOSITION, SXF_ABSOLUTEVELOCITY, SXF_CLIENTSIDE,
		SXF_NOCHECKPOSITION, SXF_SETMASTER, SXF_TELEFRAG, SXF_TRANSFERAMBUSHFLAG, SXF_TRANSFERPITCH,
		SXF_TRANSFERPOINTERS, SXF_TRANSFERTRANSLATION, SXF_USEBLOODCOLOR, SXF_CLEARCALLERTID, SXF_MULTIPLYSPEED,
		SXF_TRANSFERSCALE, SXF_TRANSFERSPECIAL, SXF_CLEARCALLERSPECIAL, SXF_TRANSFERSTENCILCOL, SXF_TRANSFERALPHA,
		SXF_TRANSFERRENDERSTYLE, SXF_SETTARGET, SXF_SETTRACER, SXF_NOPOINTERS, SXF_ORIGINATOR, SXF_TRANSFERSPRITEFRAME,
		SXF_TRANSFERROLL, SXF_ISTARGET, SXF_ISMASTER, SXF_ISTRACER,

		// A_Teleport flags
		TF_FORCED, TF_RANDOMDECIDE, TF_TELEFRAG, TF_KEEPVELOCITY, TF_KEEPANGLE, TF_USESPOTZ, TF_NOSRCFOG,
		TF_NODESTFOG, TF_USEACTORFOG, TF_NOJUMP, TF_KEEPORIENTATION, TF_NOFOG, TF_OVERRIDE, TF_SENSITIVEZ,

		THINGSPEC_ClearSpecial, THINGSPEC_Default, THINGSPEC_MissileTrigger, THINGSPEC_MonsterTrigger,
		THINGSPEC_NoDeathSpecial, THINGSPEC_ThingActs, THINGSPEC_ThingTargets, THINGSPEC_TriggerActs,
		THINGSPEC_TriggerTargets,
		TIF_NOTAKEINFINITE,
		VAF_DMGTYPEAPPLYTODIRECT,

		// A_SetVisibleRotation flags
		VRF_NOANGLE, VRF_NOANGLEEND, VRF_NOANGLESTART, VRF_NOPITCH, VRF_NOPITCHEND, VRF_NOPITCHSTART,

		// A_WolfAttack flags
		WAF_NORANDOM, WAF_USEPUFF,

		// A_Warp flags
		WARPF_ABSOLUTEANGLE, WARPF_ABSOLUTEOFFSET, WARPF_COPYINTERPOLATION, WARPF_INTERPOLATE,WARPF_NOCHECKPOSITION,
		WARPF_STOP, WARPF_TESTONLY, WARPF_TOFLOOR, WARPF_USECALLERANGLE, WARPF_WARPINTERPOLATION, WARPF_ABSOLUTEPOSITION,
		WARPF_BOB, WARPF_MOVEPTR, WARPF_USETID, WARPF_COPYPITCH, WARPF_COPYVELOCITY,

		// A_WeaponOffset flags
		WOF_KEEPX, WOF_KEEPY, WOF_ADD, WOF_INTERPOLATE, WOF_RELATIVE, WOF_ZEROY,

		// A_WeaponReady flags
		WRF_ALLOWRELOAD, WRF_ALLOWZOOM, WRF_NOBOB, WRF_NOFIRE, WRF_NOPRIMARY, WRF_NOSECONDARY, WRF_NOSWITCH, WRF_DISABLESWITCH,
		WRF_ALLOWUSER1, WRF_ALLOWUSER2, WRF_ALLOWUSER3, WRF_ALLOWUSER4,

		// A_Explode
		XF_HURTSOURCE, XF_NOTMISSILE, XF_EXPLICITDAMAGETYPE, XF_NOSPLASH, XF_THRUSTZ, XF_THRUSTLESS, XF_NOALLIES, XF_CIRCULAR,
		XF_CIRCULARTHRUST,

		// A_ZoomFactor constants (not in constants.txt)
		ZOOM_INSTANT, ZOOM_NOSCALETURNING,

		// Some additional constants
		ChunkFlags,
		BeastAttack, BeastPuff, ClinkAttack, ImpMeAttack, TeleGlitter, TeleGlitter2,
		StaffAttack, BoltSpark, MummyAttack, MummyAttack2,
		CentaurDrop, DemonAttack1, EttinAttack, DropMace, PigAttack,
		SpectreMelee, PeasantAttack, spectrespawn, ReaverMelee,
	}

	functions {
		// Actor states
		Light = "string lightname";
		Offset = "int xpos, int ypos";

		// Action functions
		A_AlertMonsters = "[float maxdist], [int flags]";
		A_Burst = "string classname";
		A_CentaurDefend;
		A_Chase = "[string MeleeState], [string RangedState], [int Flags]";
		A_CheckForResurrection;
		A_CheckLOF = "state jump, [int flags], [float range], [float minrange], [float angle], [float pitch], [float offsetheight], [float offsetwidth], [pointer target], [float offsetforward]";
		A_ClearSoundTarget;
		A_ClearTarget;
		A_ClearLastHeard;
		A_CopyFriendliness = "[pointer source]";
		A_CopySpriteFrame = "int from, int to, [int flags]";
		A_DamageChildren = "int amount, [string type], [int flags], [string filter_class], [string species], [int source], [int inflictor]";
		A_DamageMaster = "int amount, [string type], [int flags], [string filter_class], [string species], [int source], [int inflictor]";
		A_DamageSelf = "int amount, [string type], [int flags], [string filter_class], [string species], [int source], [int inflictor]";
		A_DamageSiblings = "int amount, [string type], [int flags], [string filter_class], [string species], [int source], [int inflictor]";
		A_DamageTarget = "int amount, [string type], [int flags], [string filter_class], [string species], [int source], [int inflictor]";
		A_DamageTracer = "int amount, [string type], [int flags], [string filter_class], [string species], [int source], [int inflictor]";
		A_Die = "[string DamageType]";
		A_ExtChase = "bool domelee, bool domissile, [bool playactive], [bool nightmarefast]";
		A_FaceTarget = "[float max_turn_allowed], [float max_pitch_allowed], [float ang_offset], [float pitch_offset], [int flags], [float z_ofs]";
		A_FaceTracer = "[float max_turn_allowed], [float max_pitch_allowed], [float ang_offset], [float pitch_offset], [int flags], [float z_ofs]";
		A_FaceMaster = "[float max_turn_allowed], [float max_pitch_allowed], [float ang_offset], [float pitch_offset], [int flags], [float z_ofs]";
		A_FaceMovementDirection = "[float offset], [float anglelimit], [float pitchlimit], [int flags], [int ptr]";
		A_FaceConsolePlayer = "[float maxturnangle]"; // Zandronum-only
		A_FastChase;
		A_KillChildren = "[string damagetype], [int flags], [string filter_class], [string species], [int source], [int inflictor]";
		A_KillMaster = "[string damagetype], [int flags], [string filter_class], [string species], [int source], [int inflictor]";
		A_KillSiblings = "[string damagetype], [int flags], [string filter_class], [string species], [int source], [int inflictor]";
		A_KillTarget = "[string damagetype], [int flags], [string filter_class], [string species], [int source], [int inflictor]";
		A_KillTracer = "[string damagetype], [int flags], [string filter_class], [string species], [int source], [int inflictor]";
		A_Look;
		A_Look2;
		A_LookEx = "[int flags], [fixed minseedist], [fixed maxseedist], [fixed maxheardist], [fixed fov], [state seestate]";
		A_Morph = "string type, [int duration], [int style], [string morphflash], [string unmorphflash]";
		A_RaiseChildren = "[bool copy]";
		A_RaiseMaster = "[bool copy]";
		A_RaiseSelf = "[int flags]";
		A_RaiseSiblings = "[bool copy]";
		A_Remove = "int ptr_select, [int flags], [string filter_class], [string species]";
		A_RemoveChildren = "[bool remove_alive_too], [int flags], [string filter_class], [string species]";
		A_RemoveMaster = "[int flags], [string filter_class], [string species]";
		A_RemoveSiblings = "[bool remove_alive_too], [int flags], [string filter_class], [string species]";
		A_RemoveTarget = "[int flags], [string filter_class], [string species]";
		A_RemoveTracer = "[int flags], [string filter_class], [string species]";
		A_SentinelBob;
		A_Teleport = "[string teleportstate], [string targettype], [string fogtype], [int flags], [float mindist], [float maxdist], [pointer ptr]";
		A_TurretLook;
		A_VileChase;
		A_Wander = "[int flags]";
		A_Warp = "pointer destination, [float xofs], [float yofs], [float zofs], [float angle], [int flags], [state success_state], [float heightoffset], [float radiusoffset], [float pitch]";

		A_RearrangePointers = "pointer newtarget, [pointer newmaster], [pointer newtracer], [int flags]";
		A_TransferPointer = "pointer source, pointer recipient, pointer sourcefield, [pointer recipientfield], [int flags]";

		A_CustomMissile = "string missiletype, [float spawnheight], [float spawnofs_horiz], [angle angle], [int aimflags], [angle pitch], [int pointer]";
		A_SpawnProjectile = "string missiletype, [float spawnheight], [float spawnofs_xy], [float angle], [int flags], [float pitch], [int ptr]";
		A_CustomBulletAttack = "float horz_spread, float vert_spread, int numbullets, int dmgperbullet, [string pufftype], [float range], [int flags], [int pointer], [string missile], [float spawnheight], [float spawnofs_xy]";
		A_CustomRailgun = "int dmg, [int offset], [color ringcol], [color corecol], [int flags], [int aim], [float maxdiff], [string pufftype], [float spread_xy], [float spread_z], [float range], [int duration], [float sparsity], [float driftspeed], [string spawnclass], [float spawnofs_z], [int spiraloffset], [int limit]";
		A_CustomMeleeAttack = "[int damage], [string meleesound], [string misssound], [string damagetype], [bool bleed]";
		A_CustomComboAttack = "string missiletype, float spawnheight, int damage, [string meleesound], [string damagetype], [bool bleed]";
		A_MeleeAttack;
		A_MissileAttack;
		A_MonsterRefire = "int chancecontinue, string abortstate";
		A_ComboAttack;
		A_BasicAttack = "int meleedamage, string meleesound, string missiletype, float missileheight";
		A_BulletAttack;
		A_MonsterRail;
		A_Blast = "[int flags], [float strength], [float radius], [float speed], [class blasteffect], [sound blastsound]";
		A_Explode = "[int dmg], [float radius], [int flags], [bool alert], [float fulldmgradius], [int nails], [int naildmg], [string pufftype], [string damagetype]";
		A_RadiusDamageSelf = "[int damage], [float distance], [int flags], [string flashtype]";
		A_RadiusThrust = "[int thrust], [float radius], [int flags], [float fullthrustdistance]";
		A_RadiusGive = "class itemtype, float distance, int flags, [int amount], [class filter], [string species], [float mindist], [int limit]";
		A_Detonate;
		A_ThrowGrenade = "string spawntype, [float spawnheight], [float throwspeed_horz], [float throwspeed_vert], [bool useammo]";
		A_Quake = "float intensity, int duration, float damrad, float tremrad, [sound sfx]";
		A_QuakeEx = "float intensityX, float intensityY, float intensityZ, int duration, float damrad, float tremrad, [sound sfx], [int flags], [float mulWaveX], [float mulWaveY], [float mulWaveZ], [float falloff], [int highpoint], [float rollIntensity], [float rollWave], [float damageMultiplier], [float thrustMultiplier], [int damage]";
		A_SetTics = "int tics";

		A_FreezeDeath;
		A_GenericFreezeDeath;
		A_FreezeDeathChunks;
		A_IceGuyDie;

		A_PlaySound = "[string soundname], [int slot], [float volume], [bool looping], [float attenuation], [bool local]";
		A_PlaySoundEx = "string soundname, string channel, [bool loop], [int attenuation]";
		A_PlayWeaponSound = "string soundname";
		A_StartSound = "string whattoplay, [int slot], [int flags], [float volume], [float attenuation], [float pitch], [float startTime]";
		A_StartSoundIfNotSame = "string whattoplay, string checkagainst, [int slot], [int flags], [float volume], [float attenuation], [float pitch], [float startTime]";
		A_ActiveSound;
		A_LoopActiveSound;
		A_FLoopActiveSound;
		A_StopSound = "[int slot]";
		A_StopSounds = "int chanmin, int chanmax";
		A_StopAllSounds;
		A_StopSoundEx = "string channel";
		A_SoundPitch = "int slot, float pitch";
		A_SoundVolume = "int slot, float volume";
		A_Pain;
		A_PigPain;
		A_Scream;
		A_XScream;
		A_PlayerScream;
		A_VileStart;
		A_BrainPain;
		A_BrainAwake;
		A_BFGSound;

		A_Print = "string text, [float time], [string fontname]";
		A_PrintBold = "string text_to_all_players, [float time], [string fontname]";
		A_Log = "string text";
		A_LogInt = "int number";
		A_LogFloat = "float number";

		A_BossDeath;
		A_KeenDie = "[int tag]";
		A_BrainDie;
		A_GetHurt;
		A_KlaxonBlare;
		A_CheckTerrain;
		A_SetBlend = "color blendcolor, float alpha, int duration, [color fadecolor]";
		A_CheckPlayerDone;
		A_PlayerSkinCheck = "string state";
		A_SkullPop = "[string className]";
		A_Bang4Cloud;
		A_DropFire;
		A_RemoveForcefield;

		A_TossGib;
		A_Feathers;
		A_SpawnDebris = "string type, [bool translation], [float mult_h], [float mult_v]";
		A_SpawnItem = "[string type], [float distance], [float zpos], [bool useammo], [bool translation]";
		A_SpawnItemEx = "string type, [float xoffset], [float yoffset], [float zoffset], [float xvelocity], [float yvelocity], [float zvelocity], [float angle], [int flags], [int failchance], [int tid]";
		A_SpawnParticle = "string color1, [int flags], [int lifetime], [float size], [float angle], [float xoff], [float yoff], [float zoff], [float velx], [float vely], [float velz], [float accelx], [float accely], [float accelz], [float startalphaf], [float fadestepf], [float stepsize]";
		A_SprayDecal = "string name, [float dist]";

		A_AttachLightDef = "string lightid, string lightdef";
		A_RemoveLight = "string lightid";

		A_CheckCeiling = "string state", "int offset";
		A_CheckFloor =	"string state", "int offset";
		A_CheckRange = "float distance, state label, [bool two_dimension]", "float distance, int offset, [bool two_dimension]";
		A_CheckSight = "string state", "int offset";
		A_CheckSightOrRange = "float distance, string state, [bool two_dimension]", "float distance, int offset, [bool two_dimension]";
		A_CheckBlock = "string state, [int flags], [int pointer], [float xofs], [float yofs], [float zofs], [float angle]";
		A_CheckProximity = "string state, string classname, float distance, [int count], [int flags], [int ptr]";
		A_CheckSpecies = "string state, [string species], [int ptr]";

		A_Jump = "int chance, string state, [...]", "int chance, int offset, [...]";
		A_JumpIf = "condition, string state", "condition, int offset";
		A_JumpIfArmorType = "string armortype, string state, [int minimum]", "string armortype, int offset, [int minimum]";
		A_JumpIfCloser = "float distance, string state, [bool no_z]", "float distance, int offset, [bool no_z]";
		A_JumpIfHealthLower = "int health, string state, [int ptr_selector]", "int health, int offset, [int ptr_selector]";
		A_JumpIfInventory = "string inventorytype, int amount, string state, [pointer owner]", "string inventorytype, int amount, int offset, [pointer owner]";
		A_JumpIfInTargetInventory = "string item, int count, string state, [pointer forward]", "string item, int count, int offset, [pointer forward]";
		A_JumpIfMasterCloser = "float distance, string state, [bool no_z]", "float distance, int offset, [bool no_z]";
		A_JumpIfNoAmmo = "string state", "int offset";
		A_JumpIfTargetInsideMeleeRange = "string state", "int offset";
		A_JumpIfTargetOutsideMeleeRange = "string state", "int offset";
		A_JumpIfTargetInLOS = "string state, [float fov], [int flags], [float dist_max], [float dist_close]", "int offset, [float fov], [int flags], [float dist_max], [float dist_close]";
		A_JumpIfInTargetLOS = "string state, [float fov], [int flags], [float dist_max], [float dist_close]", "int offset, [float fov], [int flags], [float dist_max], [float dist_close]";
		A_JumpIfTracerCloser = "float distance, string state, [bool no_z]", "float distance, int offset, [bool no_z]";
		A_JumpIfTargetInsideMeleeRange = "string state", "int offset";
		A_JumpIfTargetOutsideMeleeRange = "string state", "int offset";
		A_JumpIfHigherOrLower = "string high, string low, [float offsethigh], [float offsetlow], [bool includeheight], [pointer ptr]";

		A_ClassBossHealth;
		A_ChangeCountFlags = "[int kill], [int item], [int secret]";
		A_ChangeFlag = "string flagname, bool value";
		A_ChangeModel = "string modeldef, [int modelindex], [string modelpath], [string model], [int skinindex], [string skinpath], [string skin], [int flags], [int generatorindex], [int animationindex], [string animationpath], [string animation]";
		A_CheckFlag = "string flagname, state label, [pointer which_actor]";
		A_SetFloorClip;
		A_UnSetFloorClip;
		A_HideThing;
		A_UnHideThing;
		A_SetInvulnerable;
		A_UnSetInvulnerable;
		A_SetReflective;
		A_UnSetReflective;
		A_SetReflectiveInvulnerable;
		A_UnSetReflectiveInvulnerable;
		A_SetShootable;
		A_UnSetShootable;
		A_NoGravity;
		A_Gravity;
		A_LowGravity;
		A_SetGravity = "float gravity";
		A_NoBlocking;
		A_Fall;
		A_SetSolid;
		A_UnsetSolid;
		A_SetFloat;
		A_UnsetFloat;
		A_ScreamAndUnblock;
		A_ActiveAndUnblock;
		A_SetShadow;
		A_ClearShadow;
		A_SetTranslucent = "float alpha, [int mode]";
		A_SetRenderStyle = "float alpha, int style";
		A_SpriteOffset = "[float ox], [float oy]";
		A_FadeIn = "[float increase_amount], [int flags]";
		A_FadeOut = "[float reduce_amount], [int flags]";
		A_FadeTo = "float target, [float amount], [int flags]";
		A_QueueCorpse;
		A_DeQueueCorpse;
		A_Respawn = "[int flags]";
		A_SetAngle = "[float angle], [int flags], [int pointer]";
		A_SetArg = "int position, int value";
		A_SetDamageType = "string damagetype";
		A_SetFriendly = "bool set";
		A_SetMugshotState = "string name";
		A_SetPitch = "float pitch, [int flags], [int pointer]";
		A_SetSpecial = "int special, [int arg0], [int arg1], [int arg2], [int arg3], [int arg4]";
		A_SetSpeed = "float speed, [int pointer]";
		A_SetFloatSpeed = "float speed, [int pointer]";
		A_SetScale = "float scalex, [float scaley], [int pointer], [bool usezero]";
		A_SetSize = "[float newradius], [float newheight], [bool testpos]";
		A_SetMass = "int mass";
		A_SetTeleFog = "string oldpos, string newpos";
		A_SetRoll = "float roll, [int flags], [int pointer]";
		A_SetFloatBobPhase = "int bob";
		A_SwapTeleFog;
		A_SetUserArray = "string name, int pos, int value";
		A_SetUserVar = "string name, int value";
		A_SetUserArrayFloat = "string name, int pos, float value";
		A_SetUserVarFloat = "string name, float value";
		A_ScaleVelocity = "float scale, [int pointer]";
		A_ChangeVelocity = "[float x], [float y], [float z], [int flags], [int pointer]";
		A_SetHealth = "int health, [int pointer]";
		A_ResetHealth = "[int pointer]";
		A_SetRipperLevel = "int level";
		A_SetRipMin = "int min";
		A_SetRipMax = "int max";
		A_SetSpecies = "string species, [int pointer]";
		A_SetPainThreshold = "int threshold, [int pointer]";
		A_SetChaseThreshold = "int threshold, [bool def], [int ptr]";
		A_SetSpriteAngle = "[float angle], [int ptr]";
		A_SetSpriteRotation = "[float angle], [int ptr]";
		A_SetViewAngle = "[float angle], [int flags], [int ptr]";
		A_SetViewPitch = "float pitch, [int flags], [int ptr]";
		A_SetViewRoll = "float roll, [int flags], [int ptr]";
		A_SetVisibleRotation = "[float anglestart], [float angleend], [float pitchstart], [float pitchend], [int flags], [int ptr]";
		A_SetTranslation = "string transname";

		A_SeekerMissile = "angle threshold, angle maxturnangle, [int flags], [int chance_to_reacquire], [int max_acquiring_distance]";
		A_Tracer;
		A_Tracer2;
		A_Fire = "[float spawnheight]";
		A_BishopMissileWeave;
		A_CStaffMissileSlither;
		A_RocketInFlight;
		A_Weave = "int horzspeed, int vertspeed, float horzdist, float vertdist";
		A_Countdown;
		A_CountdownArg = "int arg, [string target_state]";
		A_Stop;

		A_GiveInventory = "string type, [int count], [pointer giveto]";
		A_GiveToChildren = "string type, [int count]";
		A_GiveToSiblings = "string type, [int count]";
		A_GiveToTarget = "string type, [int count], [pointer forward]";
		A_TakeInventory = "string type, [int count], [int flags], [pointer giveto]";
		A_TakeFromChildren = "string type, [int count]";
		A_TakeFromSiblings = "string type, [int count]";
		A_TakeFromTarget = "string type, [int count], [int flags], [pointer forward]";
		A_DropInventory = "string type";
		A_SetInventory = "string type, int amount, [int ptr], [bool beyondMax]";
		A_SelectWeapon = "string type, [int flags]";
		A_GiveQuestItem = "int itemno";
		A_DropItem = "class item, [int dropamount], [int chance]";
		A_DropWeaponPieces = "class piece_1, class piece_2, class piece_3";

		A_WeaponReady = "[int flags]";
		A_WeaponOffset = "[float x], [float y], [int flags]";
		A_Overlay = "int layer, [state start], [bool nooverride]";
		A_OverlayAlpha = "int layer, float alph";
		A_OverlayFlags = "int layer, int flags, bool set";
		A_OverlayOffset = "[int layer], [float x], [float y], [int flags]";
		A_OverlayPivot = "int layer, [float wx], [float wy], [int flags]";
		A_OverlayPivotAlign = "int layer, int halign, int valign";
		A_OverlayRenderstyle = "int layer, int style";
		A_OverlayRotate = "int layer, [float degrees], [int flags]";
		A_OverlayScale = "int layer, [float wx], [float wy], [int flags]";
		A_OverlayTranslation = "int layer, string trname";
		A_OverlayVertexOffset = "int layer, int index, float x, float y, [int flags]";
		A_ClearOverlays = "[int sstart], [int sstop], [bool safety]";
		A_Lower;
		A_Raise;
		A_ReFire = "[string state]";
		A_ClearReFire;
		A_GunFlash = "[string flashstate], [int flags]";
		A_CheckReload;
		A_CheckForReload = "int counter, string state, [bool dontincrement]";
		A_CheckRailReload;
		A_ResetReloadCounter;
		A_Light = "int intensity";
		A_Light0;
		A_Light1;
		A_Light2;
		A_LightInverse;
		A_Recoil = "float force";
		A_ZoomFactor = "[float zoom], [int flags]";
		A_SetCrosshair = "int number";
		A_Punch;
		A_Saw = "[string fullsound], [string hitsound], [int damage], [string pufftype], [int flags], [float range], [float spread_xy], [float spread_z], [float lifesteal], [int lifestealmax], [string armorbonustype]";
		A_CustomPunch = "int damage, [bool norandom], [int flags], [string pufftype], [float range], [float lifesteal], [int lifestealmax], [string armorbonustype], [string meleesound], [string misssound]";
		A_FireBullets = "angle spread_horz, angle spread_vert, int numbullets, int damage, [string pufftype], [int flags], [float range], [string missile], [float spawnheight], [float spawnofs_xy]";
		A_FireCustomMissile = "string missiletype, [angle angle], [bool useammo], [float spawnofs_horz], [float spawnheight], [int flags], [angle pitch]";
		A_FireProjectile = "string missiletype, [float angle], [bool useammo], [float spawnofs_xy], [float spawnheight], [int flags], [float pitch]";
		A_RailAttack = "int damage, [int spawnofs_horz], [bool useammo], [color ringcolor], [color corecolor], [int flags], [float maxdiff], [string pufftype], [float spread_xy], [float spread_z], [float range], [int duration], [float sparsity], [float driftspeed], [class spawn], [float spawnofs_z], [int spiraloffset], [int limit]";
		A_FireAssaultGun;
		A_FireBFG;
		A_FireOldBFG;
		A_FirePistol;
		A_FireShotgun;
		A_FireShotgun2;
		A_OpenShotgun2;
		A_LoadShotgun2;
		A_CloseShotgun2;
		A_FireCGun;
		A_FireMissile;
		A_FirePlasma;
		A_FireSTGrenade = "[string missiletype]";
		A_FireRailgun;
		A_FireRailgunLeft;
		A_FireRailgunRight;
		A_RailWait;

		A_RestoreSpecialPosition;
		A_RestoreSpecialDoomThing;
		A_RestoreSpecialThing1;
		A_RestoreSpecialThing2;

		A_PosAttack;
		A_SPosAttack;
		A_SPosAttackUseAtkSound;
		A_CPosAttack;
		A_CPosAttackDehacked;
		A_CPosRefire;
		A_SpidRefire;
		A_TroopAttack;
		A_SargAttack;
		A_HeadAttack;
		A_BruisAttack;
		A_SkullAttack = "[float speed]";
		A_BspiAttack;
		A_CyberAttack;
		A_PainAttack = "[string spawntype], [float angle], [int flags], [int limit]";
		A_DualPainAttack = "[string spawntype]";
		A_PainDie = "[string spawntype]";
		A_SkelFist;
		A_SkelMissile;
		A_FatAttack1 = "[string spawntype]";
		A_FatAttack2 = "[string spawntype]";
		A_FatAttack3 = "[string spawntype]";
		A_VileTarget = "[string type]";
		A_VileAttack = "[string sound], [int initialdamage], [int blastdamage], [int blastradius], [float thrustfactor], [string damagetype], [int flags]";
		A_BrainSpit = "[string Actor]";
		A_SpawnFly = "[string FogActor]";
		A_SpawnSound;
		A_BrainScream;
		A_BrainExplode;
		A_Mushroom = "[string spawntype], [int amount], [int flags], [float vrange], [float hrange]";
		A_M_Saw = "[string fullsound], [string hitsound], [int damage], [string pufftype]";
		A_SentinelRefire;
		A_ShootGun;
		A_BetaSkullAttack;
		A_WolfAttack = "[int flags], [sound whattoplay], [float snipe_factor], [int maxdamage], [int blocksize], [int pointblank], [int longrange], [float runspeed], [class pufftype]";

		A_Hoof;
		A_Metal;
		A_BabyMetal;
		A_FatRaise;
		A_SkelWhoosh;
		A_StartFire;
		A_FireCrackle;
		A_BFGSpray = "[string flashtype], [int numrays], [int damage], [float angle], [float distance], [float vrange], [int explict_damage], [int flags]";
		A_BarrelDestroy;

		// Restricted functions
		A_IceSetTics; A_BridgeOrbit; A_BridgeInit = "[class ball]";
		A_SpawnSingleItem = "class type, [int fail_single], [int fail_coop], [int fail_dm]";

		// Scripted marines have some
		A_M_Refire = "[bool ignoremissile]";
		A_M_CheckAttack;
		A_MarineChase;
		A_MarineLook;
		A_MarineNoise;
		A_M_Punch = "int force";
		A_M_SawRefire;
		A_M_FirePistol = "bool accurate";
		A_M_FireShotgun;
		A_M_FireShotgun2;
		A_M_FireCGun = "bool accurate";
		A_M_FireMissile;
		A_M_FirePlasma;
		A_M_FireRailgun;
		A_M_BFGsound;
		A_M_FireBFG;

		// Heretic has a lot of them
		A_BeakRaise; A_BeakAttackPL1; A_BeakAttackPL2;
		A_Sor1Pain; A_Sor1Chase; A_Srcr1Attack; A_SorcererRise;
		A_Srcr2Decide; A_Srcr2Attack; A_Sor2DthInit; A_Sor2DthLoop;
		A_BlueSpark; A_GenWizard;
		A_Timebomb;
		A_ImpMsAttack; A_ImpDeath; A_ImpXDeath1; A_ImpExplode;
		A_PodPain = "[class goo]"; A_RemovePod; A_MakePod = "[class pod]";
		A_AccTeleGlitter; A_VolcanoSet; A_VolcanoBlast; A_VolcBallImpact;
		A_StaffAttack = "int damage, class puff";
		A_FireGoldWandPL1; A_FireGoldWandPL2;
		A_FireCrossbowPL1; A_FireCrossbowPL2;
		A_GauntletAttack = "int power";
		A_FireMacePL1; A_FireMacePL2; A_MacePL1Check; A_MaceBallImpact; A_MaceBallImpact2; A_DeathBallImpact;
		A_FireBlasterPL1; A_SpawnRippers;
		A_FireSkullRodPL1; A_FireSkullRodPL2; A_AddPlayerRain; A_HideInCeiling; A_SkullRodStorm; A_RainImpact;
		A_FirePhoenixPL1; A_InitPhoenixPL2; A_FirePhoenixPL2; A_ShutdownPhoenixPL2;
		A_PhoenixPuff; A_FlameEnd; A_FloatPuff;
		A_LichAttack; A_LichIceImpact; A_LichFireGrow; A_WhirlwindSeek;
		A_MinotaurDecide; A_MinotaurAtk1; A_MinotaurAtk2; A_MinotaurAtk3; A_MinotaurCharge;
		A_MinotaurLook; A_MinotaurRoam; A_MinotaurChase; A_MinotaurDeath; A_MntrFloorFire;

		A_KnightAttack; A_DripBlood;
		A_GhostOff; A_WizAtk1; A_WizAtk2; A_WizAtk3;

		// Hexen has a bunch of them, too
		A_BatSpawnInit; A_BatSpawn; A_BatMove;
		A_BishopChase; A_BishopDecide; A_BishopDoBlur;
		A_BishopSpawnBlur; A_BishopPainBlur; A_BishopAttack; A_BishopAttack2;
		A_ClericAttack; A_FighterAttack;
		A_CFlameAttack; A_CFlameRotate; A_CFlamePuff; A_CFlameMissile;
		A_CHolyAttack; A_CHolyPalette; A_CHolyAttack2; A_CHolySeek; A_CHolyCheckScream; A_CHolyTail;
		A_CMaceAttack;
		A_CStaffInitBlink; A_CStaffCheckBlink; A_CStaffCheck; A_CStaffAttack;
		A_DragonInitFlight; A_DragonFlap; A_DragonFlight; A_DragonPain; A_DragonAttack; A_DragonCheckCrash;
		A_DragonFX2;
		A_FAxeCheckUp; A_FAxeCheckReady; A_FAxeCheckAtk; A_FAxeAttack; A_FAxeCheckUpG; A_FAxeCheckReadyG;
		A_FlyBuzz; A_FlySearch;
		A_FPunchAttack; A_FHammerAttack; A_FHammerThrow;
		A_FSwordAttack; A_FSwordFlames;
		A_FiredRocks; A_FiredChase; A_FiredAttack; A_FiredSplotch; A_SmBounce;
		A_PoisonBagInit; A_TimeBomb; A_CheckThrowBomb; A_CheckThrowBomb2; A_PoisonBagDamage; A_PoisonBagCheck; A_PoisonShroom;
		A_FogSpawn; A_FogMove;
		A_SorcSpinBalls; A_SpeedBalls; A_SorcBossAttack; A_SpawnFizzle; A_SpawnBishop; A_SorcererBishopEntry;
		A_SorcBallOrbit; A_SorcBallPop; A_BounceCheck; A_SorcFX1Seek; A_SorcFX2Split; A_SorcFX2Orbit; A_SorcFX4Check;
		A_PotteryExplode; A_PotteryChooseBit; A_PotteryCheck; A_CorpseBloodDrip; A_CorpseExplode;
		A_LeafSpawn; A_LeafThrust; A_LeafCheck; A_SoAExplode; A_BellReset1; A_BellReset2;
		A_IceGuyLook; A_IceGuyChase; A_IceGuyAttack; A_IceGuyMissileExplode;
		A_KoraxChase; A_KoraxDecide; A_KoraxBonePop; A_KoraxMissile; A_KoraxCommand;
		A_KSpiritRoam; A_KBolt; A_KBoltRaise;
		A_MageAttack;
		A_FireConePL1; A_ShedShard;
		A_LightningReady; A_MLightningAttack = "[class floor], [class ceiling]";
		A_LightningZap; A_LightningClip; A_LightningRemove; A_LastZap; A_ZapMimic;
		A_MStaffAttack; A_MStaffPalette; A_MStaffTrack;
		A_SnoutAttack;
		A_SerpentHumpDecide; A_SerpentHide; A_SerpentCheckForAttack; A_SerpentSpawnGibs;
		A_SerpentUnHide; A_SerpentRaiseHump; A_SerpentLowerHump; A_SerpentChooseAttack; A_SerpentMeleeAttack;
		A_SerpentHeadCheck; A_FloatGib; A_DelayGib; A_SinkGib;
		A_ThrustRaise; A_ThrustImpale; A_ThrustLower; A_ThrustInitDn; A_ThrustInitUp;
		A_Summon;
		A_TeloSpawnA; A_TeloSpawnB; A_TeloSpawnC; A_TeloSpawnD; A_CheckTeleRing;
		A_WraithInit; A_WraithChase; A_WraithMelee; A_WraithRaiseInit; A_WraithRaise; A_WraithFX2; A_WraithFX3;

		// Strife is the last with these
		A_BeShadowyFoe; A_AcolyteBits; A_AcolyteDie; A_HideDecepticon;
		A_AlienSpectreDeath;
		A_CrusaderChoose; A_CrusaderSweepLeft; A_CrusaderSweepRight; A_CrusaderRefire; A_CrusaderDeath;
		A_SpawnEntity; A_EntityAttack; A_EntityDeath; A_SubEntityDeath;
		A_InquisitorWalk; A_InquisitorDecide; A_InquisitorAttack; A_InquisitorJump;
		A_InquisitorCheckLand; A_TossArm; A_ReaverRanged;
		A_LoremasterChain;
		A_WakeOracleSpectre;
		A_ProgrammerMelee; A_SpawnProgrammerBase; A_ProgrammerDeath; A_SpotLightning;
		A_ReaverRanged;
		A_Beacon;
		A_SentinelAttack;
		A_SelectPiece; A_SelectSigilView; A_SelectSigilDown; A_SelectSigilAttack; A_SigilCharge;
		A_FireSigil1; A_FireSigil2; A_FireSigil3; A_FireSigil4; A_FireSigil5;
		A_SpectreChunkSmall; A_SpectreChunkLarge; A_Spectre3Attack; A_SpotLightning;
		A_SpectralBigBallLightning; A_SpectralLightningTail; A_SpectralLightning;
		A_StalkerLookInit; A_StalkerChaseDecide; A_StalkerWalk; A_StalkerDrop; A_StalkerAttack;
		A_ItBurnsItBurns; A_CrispyPlayer; A_HandLower;
		A_JabDagger; A_FireMiniMissile; A_FireFlamer; A_FlameDie;
		A_ClearFlash; A_ShowElectricFlash; A_FireArrow = "class proj";
		A_FireMauler1; A_FireMauler2Pre; A_FireMauler2; A_MaulerTorpedoWave;
		A_Burnarea; A_Burnination;
		A_FireGrenade = "class grenadetype, float angleofs, state flash";
		A_TemplarAttack;
		A_ExtraLightOff; A_Explode512; A_LightGoesOut;

		// Special functions for DECORATE expressions
		abs = "float value";
		cos = "angle degrees";
		sin = "angle degrees";
		tan = "angle degrees";
		acos = "angle degrees";
		asin = "angle degrees";
		atan = "angle degrees";
		cosh = "angle degrees";
		sinh = "angle degrees";
		tanh = "angle degrees";
		atan2 = "float y, float x";
		VectorAngle = "float x, float y";
		sqrt = "float value";
		random = "int min, int max";
		random2 = "int mask";
		frandom = "float min, float max";
		randompick = "int value1, int value2, int value3, ...";
		frandompick = "float value1, float value2, float value3, ...";
		min = "int value1, int value2, int value3, ...", "float value1, float value2, float value3, ...";
		max = "int value1, int value2, int value3, ...", "float value1, float value2, float value3, ...";
		exp = "float value";
		log = "float value";
		log10 = "float value";
		ceil = "float value";
		floor = "float value";
		clamp = "int value, int min, int max", "float value, float min, float max";
		ACS_NamedExecute = "string script, [int mapnum], [int s_arg1], [int s_arg2], [int s_arg3]";
		ACS_NamedExecuteAlways = "string script, [int mapnum], [int arg1], [int arg2], [int arg3]";
		ACS_NamedExecuteWithResult = "string script, [int s_arg1], [int s_arg2], [int s_arg3], [int s_arg4]";
		ACS_NamedLockedExecute = "string script, [int mapnum], [int arg1], [int arg2], [int lock]";
		ACS_NamedLockedExecuteDoor = "string script, [int mapnum], [int arg1], [int arg2], [int lock]";
		ACS_NamedSuspend = "string script, [int mapnum]";
		ACS_NamedTerminate = "string script, [int mapnum]";
		CallACS = "string script, [int s_arg1], [int s_arg2], [int s_arg3], [int s_arg4]";
		CheckClass = "string classname, [int ptr_select], [bool match_superclass]";
		IsPointerEqual = "int ptr_select1, int ptr_select2";
		CountInv = "string itemtype, [int ptr_select]";
		GetDistance = "bool checkz, [int ptr]";
		GetAngle = "int flags, [int ptr]";
		GetSpawnHealth;
		GetGibHealth;
		GetZAt = "[float x], [float y], [float angle], [int flags], [int pick_pointer]";
		GetCrouchFactor = "[int pointer]";
		GetCVar = "string cvar";
		GetPlayerInput = "int inputnum, [int pointer]";
		GetSpriteAngle = "[int ptr]";
		GetSpriteRotation = "[int ptr]";
		CountProximity = "string classname, float distance, [int flags], [int ptr]";
		GetMissileDamage = "int mask, int add, [int ptr]";
		OverlayID;
		OverlayX = "[int layer]";
		OverlayY = "[int layer]";

		// Internal use only, normally
		A_Turn = "[float angle]";
		A_LineEffect = "[int boomspecial], [int tag]";
		A_CallSpecial = "int special, [int arg1], [int arg2], [int arg3], [int arg4], [int arg5]";

		// Action specials that can be called from within DECORATE:
		ACS_Execute = "int script, [int mapnum], [int s_arg1], [int s_arg2], [int s_arg3]";
		ACS_ExecuteAlways = "int script, [int mapnum], [int arg1], [int arg2], [int arg3]";
		ACS_ExecuteWithResult = "int script, [int s_arg1], [int s_arg2], [int s_arg3], [int s_arg4]";
		ACS_LockedExecute = "int script, [int mapnum], [int arg1], [int arg2], [int lock]";
		ACS_LockedExecuteDoor = "int script, [int mapnum], [int arg1], [int arg2], [int lock]";
		ACS_Suspend = "int script, [int mapnum]";
		ACS_Terminate = "int script, [int mapnum]";
		Autosave;
		Ceiling_CrushAndRaise = "int tag, int speed, int damage, [int crushmode]";
		Ceiling_CrushAndRaiseA = "int tag, int downspeed, int upspeed, int damage, [int crushmode]";
		Ceiling_CrushAndRaiseDist = "int tag, int dist, int speed, int damage, [int crushmode]";
		Ceiling_CrushAndRaiseSilentA = "int tag, int downspeed, int upspeed, int damage, [int crushmode]";
		Ceiling_CrushAndRaiseSilentDist = "int tag, int dist, int speed, int damage, [int crushmode]";
		Ceiling_CrushRaiseAndStay = "int tag, int speed, int damage, [int crushmode]";
		Ceiling_CrushRaiseAndStayA = "int tag, int downspeed, int upspeed, int damage, [int crushmode]";
		Ceiling_CrushRaiseAndStaySilA = "int tag, int downspeed, int upspeed, int damage, [int crushmode]";
		Ceiling_CrushStop = "int tag";
		Ceiling_LowerAndCrush = "int tag, int speed, int damage, [int crushmode]";
		Ceiling_LowerAndCrushDist = "int tag, int speed, int damage, int dist, [int crushmode]";
		Ceiling_LowerByValue = "int tag, int speed, int value";
		Ceiling_LowerByValueTimes8 = "int tag, int speed, int value";
		Ceiling_LowerInstant = "int tag, int unused, int value";
		Ceiling_LowerToFloor = "int tag, int speed";
		Ceiling_LowerToHighestFloor = "int tag, int speed";
		Ceiling_LowerToLowest = "int tag, int speed";
		Ceiling_MoveToValue = "int tag, int speed, int value, int negative";
		Ceiling_MoveToValueTimes8 = "int tag, int speed, int value, int negative";
		Ceiling_RaiseByValue = "int tag, int speed, int value";
		Ceiling_RaiseByValueTimes8 = "int tag, int speed, int value";
		Ceiling_RaiseInstant = "int tag, int unused, int value";
		Ceiling_RaiseToNearest = "int tag, int speed";
		Ceiling_Waggle = "int tag, int amplitude, int frequency, int delay, int time";
		ChangeCamera = "int tid, int who, int revert";
		ChangeSkill = "int level";
		ClearForceField = "int tag";
		DamageThing = "int damage, [int mod]";
		Door_Animated = "int tag, int speed, int delay, int lock";
		Door_Close = "int tag, int speed, [int lighttag]";
		Door_CloseWaitOpen = "int tag, int speed, int delay, [int lighttag]";
		Door_LockedRaise = "int tag, int speed, int delay, int lock, [int lighttag]";
		Door_Open = "int tag, int speed, [int lighttag]";
		Door_Raise = "int tag, int speed, int delay, [int lighttag]";
		Elevator_LowerToNearest = "int tag, int speed";
		Elevator_MoveToFloor = "int tag, int speed";
		Elevator_RaiseToNearest = "int tag, int speed";
		Exit_Normal = "int position";
		Exit_Secret = "int position";
		Floor_CrushStop = "int tag";
		Floor_Donut = "int pillartag, int pillarspeed, int moatspeed";
		Floor_LowerByValue = "int tag, int speed, int value";
		Floor_LowerByValueTimes8 = "int tag, int speed, int value";
		Floor_LowerInstant = "int tag, int unused, int value";
		Floor_LowerToHighest = "int tag, int speed, int adjust, [int always]";
		Floor_LowerToLowest = "int tag, int speed";
		Floor_LowerToLowestTxTy = "int tag, int speed";
		Floor_LowerToNearest = "int tag, int speed";
		Floor_MoveToValue = "int tag, int speed, int value, int negative";
		Floor_MoveToValueTimes8 = "int tag, int speed, int value, int negative";
		Floor_RaiseAndCrush = "int tag, int speed, int damage, [int crushmode]";
		Floor_RaiseAndCrushDoom = "int tag, int speed, int damage, [int crushmode]";
		Floor_RaiseByTexture = "int tag, int speed";
		Floor_RaiseByValue = "int tag, int speed, int value";
		Floor_RaiseByValueTimes8 = "int tag, int speed, int value";
		Floor_RaiseByValueTxTy = "int tag, int speed, int value";
		Floor_RaiseInstant = "int tag, int unused, int value";
		Floor_RaiseToHighest = "int tag, int speed";
		Floor_RaiseToLowestCeiling = "int tag, int speed";
		Floor_RaiseToNearest = "int tag, int speed";
		Floor_TransferNumeric = "int tag";
		Floor_TransferTrigger = "int tag";
		Floor_Waggle = "int tag, int amp, int freq, int offset, int time";
		FloorAndCeiling_LowerByValue = "int tag, int speed, int value";
		FloorAndCeiling_LowerRaise = "int tag, int floor_speed, int ceiling_speed, [int boom1998]";
		FloorAndCeiling_RaiseByValue = "int tag, int speed, int value";
		ForceField;
		FS_Execute = "int script, [int frontonly], [int lock], [int lockedmessage]";
		Generic_Ceiling = "int tag, int speed, int height, int target, int flags";
		Generic_Crusher = "int tag, int downspeed, int upspeed, int silent, int damage";
		Generic_Crusher2 = "int tag, int downspeed, int upspeed, int silent, int damage";
		Generic_CrusherDist = "int tag, int downspeed, int upspeed, int silent, int damage";
		Generic_Door = "int tag, int speed, int kind, int delay, int lock";
		Generic_Floor = "int tag, int speed, int height, int target, int flags";
		Generic_Lift = "int tag, int speed, int delay, int target, int height";
		Generic_Stairs = "int tag, int speed, int step, int flags, int reset";
		GlassBreak = "[int nojunk]";
		HealThing = "amount, [int max]";
		Light_ChangeToValue = "int tag, int value";
		Light_Fade = "int tag, int value, int tics";
		Light_Flicker = "int tag, int upper, int lower";
		Light_ForceLightning = "int mode";
		Light_Glow = "int tag, int upper, int lower, int tics";
		Light_LowerByValue = "int tag, int value";
		Light_MaxNeighbor = "int tag";
		Light_MinNeighbor = "int tag";
		Light_RaiseByValue = "int tag, int value";
		Light_Stop = "int tag";
		Light_Strobe = "int tag, int upper, int lower, int u-tics, int l-tics";
		Light_StrobeDoom = "int tag, int u-tics, int l-tics";
		Line_AlignCeiling  = "int lineid, int side";
		Line_AlignFloor = "int lineid, int side";
		Line_SetBlocking = "int lineid, int setflags, int clearflags";
		Line_SetPortalTarget = "int sourceline, int targetline";
		Line_SetTextureOffset = "int id, int x, int y, int side, int flags";
		Line_SetTextureScale = "int id, int x, int y, int side, int flags";
		NoiseAlert = "int target_tid, int emitter_tid";
		Pillar_Build = "int tag, int speed, int value";
		Pillar_BuildAndCrush = "int tag, int speed, int value, int damage, int crushmode";
		Pillar_Open = "int tag, int speed, int floor, int ceiling";
		Plat_DownByValue = "int tag, int speed, int delay, int value";
		Plat_DownWaitUpStay = "int tag, int speed, int delay";
		Plat_DownWaitUpStayLip = "int tag, int speed, int delay, int lip, int sound";
		Plat_PerpetualRaise = "int tag, int speed, int delay";
		Plat_PerpetualRaiseLip = "int tag, int speed, int delay, int lip";
		Plat_RaiseAndStayTx0 = "int tag, int speed, [int lockout]";
		Plat_Stop = "int tag";
		Plat_ToggleCeiling = "int tag";
		Plat_UpByValue = "int tag, int speed, int delay, int value";
		Plat_UpByValueStayTx = "int tag, int speed, int value";
		Plat_UpNearestWaitDownStay = "int tag, int speed, int delay";
		Plat_UpWaitDownStay = "int tag, int speed, int delay";
		Polyobj_DoorSlide = "int po, int speed, int angle, int dist, int delay";
		Polyobj_DoorSwing = "int po, int speed, int angle, int delay";
		Polyobj_Move = "int po, int speed, int angle, int dist";
		Polyobj_MoveTimes8 = "int po, int speed, int angle, int dist";
		Polyobj_MoveTo = "int po, int speed, int x, int y";
		Polyobj_MoveToSpot = "int po, int speed, int tid";
		Polyobj_OR_Move = "int po, int speed, int angle, int distance";
		Polyobj_OR_MoveTimes8 = "int po, int speed, int angle, int distance";
		Polyobj_OR_MoveTo = "int po, int speed, int x, int y";
		Polyobj_OR_MoveToSpot = "int po, int speed, int tid";
		Polyobj_OR_RotateLeft = "int po, int speed, int angle";
		Polyobj_OR_RotateRight = "int po, int speed, int angle";
		Polyobj_RotateLeft = "int po, int speed, int angle";
		Polyobj_RotateRight = "int po, int speed, int angle";
		Polyobj_Stop = "int po";
		Radius_Quake = "int intensity, int duration, int damrad, int tremrad, int tid";
		Scroll_Ceiling = "int tag, int x-move, int y-move, int unused";
		Scroll_Floor = "int tag, int x-move, int y-move, int mode";
		Scroll_Texture_Both = "int lineid, int left, int right, int up, int down";
		Scroll_Wall = "int lineid, int x, int y, int side, int flags";
		Sector_ChangeFlags = "int tag, int set, int clear";
		Sector_ChangeSound = "int tag, int newsequence";
		Sector_SetCeilingPanning = "int tag, int x-int, int x-frac, int y-int, int y-frac";
		Sector_SetCeilingScale = "int tag, int x-int, int x-frac, int y-int, int y-frac";
		Sector_SetCeilingScale2 = "int tag, int x-factor, int y-factor";
		Sector_SetColor = "int tag, int r, int g, int b, int desaturate";
		Sector_SetCurrent = "int tag, int amount, int angle, int useline";
		Sector_SetDamage = "int tag, int amount, int mod, int interval, int leaky";
		Sector_SetFade = "int tag, int r, int g, int b";
		Sector_SetFloorPanning = "int tag, int x-int, int x-frac, int y-int, int y-frac";
		Sector_SetFloorScale = "int tag, int x-int, int x-frac, int y-int, int y-frac";
		Sector_SetFloorScale2 = "int tag, int x-factor, int y-factor";
		Sector_SetFriction = "int tag, int amount";
		Sector_SetGravity = "int tag, int intpart, int fracpart";
		Sector_SetLink = "int controltag, int linktag, int floor/ceiling, int movetype";
		Sector_SetPlaneReflection = "int tag, int floor, int ceiling";
		Sector_SetRotation = "int tag, int floor-angle, int ceiling-angle";
		Sector_SetTranslucent = "int tag, int plane, int amount, int type";
		Sector_SetWind = "int tag, int amount, int angle, int useline";
		SendToCommunicator = "int voc_num, int front-only, int identify, int nolog";
		SetGlobalFogParameter = "int type, int value";
		SetPlayerProperty = "int allplayers, int value, int which";
		Stairs_BuildDown = "int tag, int speed, int height, int delay, int reset";
		Stairs_BuildDownSync = "int tag, int speed, int height, int reset";
		Stairs_BuildUp = "int tag, int speed, int height, int delay, int reset";
		Stairs_BuildUpDoom = "int tag, int speed, int height, int delay, int reset";
		Stairs_BuildUpSync = "int tag, int speed, int height, int reset";
		StartConversation = "int tid, [int facetalker]";
		Teleport = "int tid, int tag, int nosourcefog";
		Teleport_EndGame;
		Teleport_Line = "int thisid, int destid, [int reversed]";
		Teleport_NewMap = "int map, int pos, [int keepangle]";
		Teleport_NoFog = "int tid, [int useang], [int sectortag], [int keepheight]";
		Teleport_NoStop = "int tid, int sectortag, [int nosourcefog]";
		Teleport_ZombieChanger = "int tid, int sectortag";
		TeleportGroup = "int group_tid, int source_tid, int dest_tid, int move_source, int use_fog";
		TeleportInSector = "int tag, int source_tid, int dest_tid, int use_fog, [int group_tid]";
		TeleportOther = "int other_tid, int dest_tid, [int fog]";
		Thing_Activate = "int tid";
		Thing_ChangeTID = "int oldtid, int newtid";
		Thing_Damage = "int tid, int amount, int mod";
		Thing_Deactivate = "int tid";
		Thing_Destroy = "int tid, [int extreme], [int sector_tag]";
		Thing_Hate = "int hater, int hatee, [int flags]";
		Thing_Move = "int tid, int mapspot, [int nofog]";
		Thing_Projectile = "int tid, int type, int angle, int speed, int vspeed";
		Thing_ProjectileAimed = "int tid, int type, int speed, int target, [int newtid]";
		Thing_ProjectileGravity = "int tid, int type, int angle, int speed, int vspeed";
		Thing_ProjectileIntercept = "int tid, int type, int speed, int target, int newtid";
		Thing_Raise = "int tid";
		Thing_Remove = "int tid";
		Thing_SetConversation = "int tid, conv_id";
		Thing_SetGoal = "int tid, int goal, int delay, [int chasegoal]";
		Thing_SetSpecial = "int tid, int special, int arg1, int arg2, int arg3";
		Thing_SetTranslation = "int tid, int translation_num";
		Thing_Spawn = "int tid, int type, int angle, [int newtid]";
		Thing_SpawnFacing = "int tid, int type, [int nofog], [int newtid]";
		Thing_SpawnNoFog = "int tid, int type, int angle, [int newtid]";
		Thing_Stop = "int tid";
		ThrustThing = "int angle, int force, [int limit], [int tid]";
		ThrustThingZ = "int tid, int zthrust, int dir, int set";
		TranslucentLine = "int id, int amount, int transtype";
		UsePuzzleItem = "int item, int script";

		// Skulltag/Zandronum action specials
		Player_GiveItem = "unknown parameters list";
		Player_RemoveItem = "unknown parameters list";
		Player_SetTeam = "int team";
		Team_GivePoints = "int team, int points, int announce";
		Team_Score = "int points, int nogrin";
	}
}
