Counts

endoom0
graphics0
lumps202
maps0
palettes0

Totals (across maps)

Things0
Linedefs0
Sectors0
Monsters0
Items0
Raw model (for completeness)
{
  "meta": {
    "id": "06c30acf-b7ba-4a62-aef8-267f18a6a0d4",
    "sha1": "76586e2b1259f1d74a4cc4df5de7ffae3559f137",
    "sha256": "ed78345ebe1747afc23b3f8fa1caab2eb06c74a91092cc23959cc8fe5d421f31",
    "filenames": [
      "bloodydoom64gunsv3-monstercompat.pk3"
    ],
    "additional": {
      "engines": [],
      "iwad": [],
      "filename": null,
      "added": "2021-01-10 03:18:31",
      "locked": false,
      "canDownload": true,
      "adult": false,
      "hidden": false,
      "name": null,
      "description": null,
      "maps": null,
      "graphicOverrides": null,
      "screenshots": null,
      "palettes": null,
      "categories": null
    },
    "flags": {
      "locked": false,
      "canDownload": true,
      "adult": false,
      "hidden": false
    },
    "added": "2021-01-10 03:18:31",
    "file": {
      "type": "PK3",
      "size": 3089614,
      "url": "https://wadarchive2.nyc3.digitaloceanspaces.com/76586e2b1259f1d74a4cc4df5de7ffae3559f137/76586e2b1259f1d74a4cc4df5de7ffae3559f137.pk3.gz",
      "corrupt": false
    },
    "content": {
      "counts": {
        "endoom": 0,
        "graphics": 0,
        "lumps": 202,
        "maps": 0,
        "palettes": 0
      }
    },
    "text_files": [
      {
        "source": "pk3",
        "name": "ACSGore.txt",
        "contents": "#library \"ACSGORE\"\n#include \"zcommon.acs\"\n\nscript \"BBGORE_CheckKill\" KILL\n{\n\n\t//First we check if it's actually a monster, and if it bleeds.\n\tif (CheckFlag(0, \"ISMONSTER\")  || !CheckFlag(0, \"NOBLOOD\"))\n\t\t{\n\t\t//To make an enemy spawn green blood, set it's \"accuracy\" 999, or 998 for blue.\n\t\t//\"Accuracy\" has nothing to do with the monster's actual accuracy, it's a compatibility\n\t\t//script only used in Strife that has no actual practical use, but can be used to track a\n\t\t//generic thing type with GetActorProperty. It's a way to tell the engine that anything with\n\t\t//the \"Accuracy\" property set to 999 should spawn green gibs.\n\t\t//A simpler solution would be checking APROP_NameTag to check if its a Baron or a Cacodemon, but\n\t\t//this wouldn't solve the issue with blood hit actors, since it's impossible to change the\n\t\t//BloodColor property of a monster without changing it's DECORATE script directly (wish the\n\t\t//GZDoom and Zandro devs could had fixed the monster blood bug by default)\n\t\t//This section of the script is entirely irrelevant if you are porting the system to your mod.\n\n\t\t\t\t\t//Checks if the monster is marked to spawn green blood.\n\t\t\t\t\tif (GetActorProperty(0, APROP_Accuracy) == 999) {\n\t\t\t\t\t\tif (GetActorProperty(0, APROP_Health) < (GetCvar(\"bd_mingibhealth\")))\n\t\t\t\t\t\t{\n\t\t\t\t\t\tSpawn(\"BBGreenGoreSpawn\", GetACtorX(0), GetACtorY(0), GetActorZ(0));\n\t\t\t\t\t\tSetActorProperty(0, APROP_ScaleX, 0.001); SetActorProperty(0, APROP_ScaleY, 0.001); SetActorProperty(0, APROP_NoTarget, 1);\n\t\t\t\t\t\tterminate;}\n\t\t\t\t\t\tSpawn(\"GreenGrowingBloodPool\", GetACtorX(0), GetACtorY(0), GetActorZ(0));\n\t\t\t\t\t\tterminate;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t//Checks if the monster is marked to spawn blue blood.\n\t\t\t\t\tif (GetActorProperty(0, APROP_Accuracy) == 998) {\n\t\t\t\t\t\tif (GetActorProperty(0, APROP_Health) < (GetCvar(\"bd_mingibhealth\")))\n\t\t\t\t\t\t{\n\t\t\t\t\t\tSpawn(\"BBBlueGoreSpawn\", GetACtorX(0), GetACtorY(0), GetActorZ(0));\n\t\t\t\t\t\tSetActorProperty(0, APROP_ScaleX, 0.001); SetActorProperty(0, APROP_ScaleY, 0.001); SetActorProperty(0, APROP_NoTarget, 1);\n\t\t\t\t\t\tterminate;}\n\n\t\t\t\t\t\tSpawn(\"BlueGrowingBloodPool\", GetACtorX(0), GetACtorY(0), GetActorZ(0));\n\t\t\t\t\t\tterminate;\n\t\t\t\t\t\t}\n\n\t//Now that the issue with colored blood monsters is solved, let's spawn the regular red blood.\n\n\t\t\t\t//Minimal health for gibbing.\n\t\t\t\tif (GetActorProperty(0, APROP_Health) < (GetCvar(\"bd_mingibhealth\")))\n\t\t\t\t\t{\n\n\t\t\t\t\t//Possibly a Lost Soul or something similar, don't spawn anything.\n\t\t\t\t\tif (GetActorProperty(0, APROP_RenderStyle) != STYLE_Normal) {\tterminate;}\n\n\t\t\t\t\t//Possibly a tiny thing like a rat or a spider.\n\t\t\t\t\tif (GetActorProperty(0, APROP_Height) < 9.0) {\n\t\t\t\t\tSpawn(\"MeatDeathTiny\", GetACtorX(0), GetACtorY(0), GetActorZ(0));\n\t\t\t\t\tSetActorFlag(0, \"NOINTERACTION\", 1);\n\t\t\t\t\tSetActorProperty(0, APROP_ScaleX, 0.001); SetActorProperty(0, APROP_ScaleY, 0.001); SetActorProperty(0, APROP_NoTarget, 1);\n\t\t\t\t\tdelay(100);\n\t\t\t\t\tThing_remove(0);\n\t\t\t\t\tterminate;}\n\n\t\t\t\t\t//Possibly a medium thing like a dog.\n\t\t\t\t\tif (GetActorProperty(0, APROP_Height) < 38.0) {\n\t\t\t\t\tSpawn(\"MeatDeathSmall\", GetACtorX(0), GetACtorY(0), GetActorZ(0));\n\t\t\t\t\tSetActorFlag(0, \"NOINTERACTION\", 1);\n\t\t\t\t\tSetActorProperty(0, APROP_ScaleX, 0.001); SetActorProperty(0, APROP_ScaleY, 0.001); SetActorProperty(0, APROP_NoTarget, 1);\n\t\t\t\t\tdelay(100);\n\t\t\t\t\tThing_remove(0);\n\t\t\t\t\tterminate;}\n\n\t\t\t\t\t//Normal gibs\n\t\t\t\t\tSpawn(\"MeatDeath\", GetACtorX(0), GetACtorY(0), GetActorZ(0));\n\n\t\t\t\t\t//Might be a large enemy, like a Cacodemon or a Mancubus, spawn extra gibs.\n\t\t\t\t\tif (GetActorProperty(0, APROP_Radius) > 28.0) {\tSpawn(\"MeatDeathFat\", GetACtorX(0), GetACtorY(0), GetActorZ(0));}\n\n\t\t\t\t\t//Might be a huge enemy, like a Cyberdemon, spawn extra gibs.\n\t\t\t\t\tif (GetActorProperty(0, APROP_Height) > 80.0){\tSpawn(\"MeatDeathGiant\", GetACtorX(0), GetACtorY(0), GetActorZ(0));}\n\t\t\t\t\tSetActorFlag(0, \"NOINTERACTION\", 1);\n\t\t\t\t\tSetActorProperty(0, APROP_ScaleX, 0.001); SetActorProperty(0, APROP_ScaleY, 0.001); SetActorProperty(0, APROP_NoTarget, 1);\n\t\t\t\t\tdelay(200);\n\t\t\t\t\tThing_remove(0);\n\t\t\t\t\tterminate;\n\t\t\t\t\t}\n\n\t\t\tdelay(35);\n\t\t\tSpawn(\"GrowingBloodPool\", GetACtorX(0), GetACtorY(0), GetActorZ(0));\n\t\t}\n\n}\n\nScript \"BB_PlayerDeath\" DEATH\n{\n\t\tif (GetActorProperty(0, APROP_Health) < (GetCvar(\"bd_mingibhealth\")))\n\t\t\t{\n\t\t\tSpawn(\"MeatDeath\", GetACtorX(0), GetACtorY(0), GetActorZ(0));\n\t\t\tSetActorState(0, \"Xdeath\");\n\t\t\t}\n\t\tdelay(35);\n\t\tSpawn(\"GrowingBloodPool\", GetACtorX(0), GetACtorY(0), GetActorZ(0));\n}\n\nScript \"BD_CheckBloodIntensity\" (VOID)\n{\n\n\tif\t(GetCvar(\"isrunningzandronum\") == 1)\n\t{\n\tif\t(GetCvar( \"bd_bloodamount\") == 0) { SetActorState(0,\"LowBlood\"); }\n\tif\t(GetCvar( \"bd_bloodamount\") == 1) { SetActorState(0,\"LowBlood\"); }\n\tif\t(GetCvar( \"bd_bloodamount\") == 3) { SetActorState(0,\"LotsOfBlood\"); }\n\tif\t(GetCvar( \"bd_bloodamount\") >= 4) { SetActorState(0,\"AbsurdBlood\"); }\n\t}\n\n\tif\t(GetCvar(\"isrunningzandronum\") == 0)\n\t{\n\tif\t(GetCvar(\"zdoombrutalblood\") == 0) { SetActorState(0,\"LowBlood\"); }\n\tif\t(GetCvar(\"zdoombrutalblood\") == 1) { SetActorState(0,\"LowBlood\"); }\n\tif\t(GetCvar(\"zdoombrutalblood\") == 3) { SetActorState(0,\"LotsOfBlood\"); }\n\tif\t(GetCvar(\"zdoombrutalblood\") == 4) { SetActorState(0,\"AbsurdBlood\"); }\n\t}\n\n\tif\t(GetCvar(\"isrunningzandronum\") == 1)\n\t{\n\t\tif\t(GetCvar(\"bd_bloodamount\") >= 5)\n\t\t\t{\n\t\t\tSetActorState(0,\"AbsurdBlood\");\n\t\t\tGiveInventory(\"AnimuGore\", 1);\n\t\t\t}\n\t}\n\n\tif\t(GetCvar(\"isrunningzandronum\") == 0)\n\t{\n\tif\t(GetCvar(\"zdoombrutalblood\") >= 5)\n\t\t{\n\t\tSetActorState(0,\"AbsurdBlood\");\n\t\tGiveInventory(\"AnimuGore\", 1);\n\t\t}\n\t}\n\n}\n\nScript \"BD_CheckIfLowBlood\" (VOID)\n{\nif\t(GetCvar(\"bd_bloodamount\") == 1) { SetActorState(0,\"Vanish\"); }\nif\t(GetCvar(\"bd_bloodamount\") == 0) { SetActorState(0,\"Vanish\"); }\n}\n\nscript \"BD_CheckIfOverLiquid\" (void) //Water Small Splash\n{\n\tif (CheckActorFloorTexture(0, \"FWATER1\"))    GiveInventory(\"IsOverWater\", 1);\n\tif (CheckActorFloorTexture(0, \"FWATER2\"))    GiveInventory(\"IsOverWater\", 1);\n\tif (CheckActorFloorTexture(0, \"FWATER3\"))    GiveInventory(\"IsOverWater\", 1);\n\tif (CheckActorFloorTexture(0, \"FWATER4\"))    GiveInventory(\"IsOverWater\", 1);\n\n  if (CheckActorFloorTexture(0, \"NUKAGE1\"))    GiveInventory(\"IsOverNukage\", 1);\n  if (CheckActorFloorTexture(0, \"NUKAGE2\"))    GiveInventory(\"IsOverNukage\", 1);\n  if (CheckActorFloorTexture(0, \"NUKAGE3\"))    GiveInventory(\"IsOverNukage\", 1);\n  if (CheckActorFloorTexture(0, \"NUKAGE4\"))    GiveInventory(\"IsOverNukage\", 1);\n\n  if (CheckActorFloorTexture(0, \"SLIME01\"))    GiveInventory(\"IsOverSlime\", 1);\n  if (CheckActorFloorTexture(0, \"SLIME02\"))    GiveInventory(\"IsOverSlime\", 1);\n  if (CheckActorFloorTexture(0, \"SLIME03\"))    GiveInventory(\"IsOverSlime\", 1);\n  if (CheckActorFloorTexture(0, \"SLIME04\"))    GiveInventory(\"IsOverSlime\", 1);\n  if (CheckActorFloorTexture(0, \"SLIME05\"))    GiveInventory(\"IsOverSlime\", 1);\n  if (CheckActorFloorTexture(0, \"SLIME06\"))    GiveInventory(\"IsOverSlime\", 1);\n  if (CheckActorFloorTexture(0, \"SLIME07\"))    GiveInventory(\"IsOverSlime\", 1);\n  if (CheckActorFloorTexture(0, \"SLIME08\"))    GiveInventory(\"IsOverSlime\", 1);\n\n  if (CheckActorFloorTexture(0, \"SLIME09\"))    GiveInventory(\"IsOverLava\", 1);\n  if (CheckActorFloorTexture(0, \"SLIME10\"))    GiveInventory(\"IsOverLava\", 1);\n  if (CheckActorFloorTexture(0, \"SLIME11\"))    GiveInventory(\"IsOverLava\", 1);\n  if (CheckActorFloorTexture(0, \"SLIME12\"))    GiveInventory(\"IsOverLava\", 1);\n\n  if (CheckActorFloorTexture(0, \"LAVA1\"))    GiveInventory(\"IsOverLava\", 1);\n  if (CheckActorFloorTexture(0, \"LAVA2\"))    GiveInventory(\"IsOverLava\", 1);\n  if (CheckActorFloorTexture(0, \"LAVA3\"))    GiveInventory(\"IsOverLava\", 1);\n  if (CheckActorFloorTexture(0, \"LAVA4\"))    GiveInventory(\"IsOverLava\", 1);\n\n  if (CheckActorFloorTexture(0, \"BLOOD1\"))    GiveInventory(\"IsOverBlood\", 1);\n  if (CheckActorFloorTexture(0, \"BLOOD2\"))    GiveInventory(\"IsOverBlood\", 1);\n  if (CheckActorFloorTexture(0, \"BLOOD3\"))    GiveInventory(\"IsOverBlood\", 1);\n  if (CheckActorFloorTexture(0, \"BLOOD4\"))    GiveInventory(\"IsOverBlood\", 1);\n}"
      },
      {
        "source": "pk3",
        "name": "Blood.txt",
        "contents": "//All the liquid gore stuff goes here.\n\n//Hit puff actor\n\nactor Bolognese_Blood Replaces Blood\n{\n\tDecal BrutalBloodSplat\n\tRenderstyle Translucent\n\t+FORCEXYBILLBOARD\n\t+THRUACTORS\n\t+CLIENTSIDEONLY\n\t+NOGRAVITY\n\tScale 0.8\n\tAlpha 0.7\n\tMass 999999\n\t states\n\t {\n\t  Spawn:\n\t\t\tBSPR A 0\n\t\t\tTNT1 A 0 A_CustomMissile (\"SuperGoreMistTiny\", 0, 0, random (0, 360), 2, random (0, 90))\n\t\t\tTNT1 A 0 A_JumpIf(waterlevel > 1, \"Splash\")\n\t\t\tTNT1 A 0 ACS_NamedExecuteAlways(\"BD_CheckBloodIntensity\")\n\t\t\tTNT1 A 0\n\t\t\tTNT1 A 0 A_PlaySound(\"misc/xdeath5\")\n\t\t\tBSPR A 2\n\t\t\tTNT1 A 0 A_CustomMissile (\"WaterBloodCHecker\", 7, 0, random (0, 360), 2, random (30, 60))\n\t\tSpawn2:\n\t\t\tTNT1 A 0 A_CustomMissile (\"BD_FlyingBlood\", 7, 0, random (0, 360), 2, random (30, 60))\n\t\t\tTNT1 A 0 A_CustomMissile (\"BD_FlyingBloodTrail\", 0, 0, random (0, 360), 2, random (20, 90))\n\t\t\tGoto Live\n\t\tSplash:\n\t\t\tBLOD A 0\n\t\t\tTNT1 AAA 0 A_CustomMissile (\"Underblood1\", 7, 0, random (0, 360), 2, random (30, 150))\n\t\t\tstop\n\t\tLotsOfBlood:\n\t\t   TNT1 A 0\n\t\t   TNT1 AAAA 0 A_CustomMissile (\"BloodMistSmall\", 0, 0, random (0, 360), 2, random (0, 90))\n\t\t   TNT1 AAAAA 0 A_CustomMissile (\"BD_FlyingBlood\", 7, 0, random (0, 360), 2, random (30, 70))\n\t\t   TNT1 A 0 A_CustomMissile (\"SuperWallRedBlood\", 0, 0, random (0, 360), 2, random (-15, 15))\n\t\t   TNT1 AAAA 0 A_CustomMissile (\"BD_FlyingBloodTrail\", 0, 0, random (0, 360), 2, random (0, 90))\n\t\t   Goto Live\n\t\tAbsurdBlood:\n\t\t   TNT1 A 2\n\t\t   TNT1 AAAA 0 A_CustomMissile (\"SuperWallRedBlood\", 0, 0, random (0, 360), 2, random (-15, 15))\n\t\t   TNT1 A 0 A_JumpIfInventory(\"AnimuGore\", 1, \"AnimuGore\")\n\t\t   TNT1 AA 0 A_CustomMissile (\"BloodMist\", 0, 0, random (0, 360), 2, random (0, 90))\n\t\t   TNT1 AAA 0 A_CustomMissile (\"BD_FlyingBloodMuchFaster\", 7, 0, random (0, 360), 2, random (10, 50))\n\t\t   TNT1 A 0 A_CustomMissile (\"BD_FlyingBloodMuchFaster\", 7, 0, random (0, 360), 2, random (40, 60))\n\t\t   TNT1 A 0 A_CustomMissile (\"BloodmistSmall\", 7, 0, random (0, 360), 2, random (30, 90))\n\t\t   TNT1 A 0 A_CustomMissile (\"SuperGoreMist\", 0, 0, random (0, 360), 2, random (10, 90))\n\t\t   TNT1 AAAAA 0 A_CustomMissile (\"BD_FlyingBlood\", 7, 0, random (0, 360), 2, random (30, 70))\n\t\t   TNT1 AAA 0 A_CustomMissile (\"BloodmistSpray\", 0, 0, random (0, 360), 2, random (20, 90))\n\t\t   Goto Live\n\t\t AnimuGore:\n\t\t   TNT1 AAA 0 A_CustomMissile (\"BD_FlyingBloodMuchFaster\", 7, 0, random (0, 360), 2, random (10, 50))\n\t\t   TNT1 A 0 A_CustomMissile (\"SuperWallRedBlood\", 0, 0, random (0, 360), 2, random (-15, 15))\n\t\t   TNT1 A 0 A_CustomMissile (\"BD_FlyingBloodMuchFaster\", 7, 0, random (0, 360), 2, random (40, 60))\n\t\t   TNT1 AAAAAAA 0 A_CustomMissile (\"BD_FlyingBlood\", 7, 0, random (0, 360), 2, random (30, 70))\n\t\t   TNT1 AAAAAAAAA 0 A_CustomMissile (\"XDeath1\", 0, 0, random (0, 360), 2, random (40, 80))\n\t\t   TNT1 A 0 A_CustomMissile (\"SuperGoreSpawner\", 0, 0, random (0, 360), 2, random (10, 90))\n\t\t   TNT1 AAAAA 0 A_CustomMissile (\"BloodmistSpray\", 0, 0, random (0, 360), 2, random (20, 90))\n\t\t   BSPR ABCDEFG 1\n\t\t   BSPR GGGGG 1 A_FadeOut(0.1)\n\t\t   Stop\n\t\t LowBlood:\n\t\t Live:\n\t\t\tTNT1 A 0 A_Stop\n\t\t\tBSPR ABCDEFGHI 1\n\t\t\tStop\n\n\t\tSpawnPlayer:\n\t\t\tTNT1 A 0\n\t\t\tTNT1 A 0 A_CustomMissile (\"SuperGoreMistTiny\", 0, 0, random (0, 360), 2, 0)\n\t\t\tTNT1 A 0 A_CustomMissile (\"BD_FlyingBlood\", 7, 0, random (0, 360), 2, random (30, 60))\n\t\t\tTNT1 A 0 A_CustomMissile (\"BD_FlyingBloodTrail\", 0, 0, random (0, 360), 2, random (20, 90))\n\t\t\tGoto Live\n\t }\n}\n\n//Dummy actor just to replace the bloodpuff made by Hexen axe\nactor SawBlood : Bolognese_Blood Replaces AxeBlood\n{\n-ALLOWPARTICLES\nSpeed 0\n states\n {\n  Spawn:\n        TNT1 A 0\n\t\tTNT1 AA 0 A_CustomMissile (\"BloodMistSmall\", 0, 0, random (0, 360), 2, random (0, 90))\n\t\tTNT1 AA 0 A_CustomMissile (\"XDeath1\", 0, 0, random (0, 360), 2, random (40, 80))\n\t\tTNT1 AAA 0 A_CustomMissile (\"BD_FlyingBlood\", 0, 0, random (0, 360), 2, random (30, 60))\n\t\tTNT1 A 0 Radius_Quake (2, 2, 0, 2, 0)\n\t\tTNT1 A 0 ACS_NamedExecuteAlways(\"BD_CheckBloodIntensity\")\n\t\tTNT1 A 0 A_Stop\n\t\tTNT1 A 2\n\t\tGoto Spawn2\n }\n}\n\n//Dummy actor just to replace the bloodpuff made by projectiles\nactor BloodSPlatterReplacer : Bolognese_Blood Replaces BloodSplatter\n{\n}\n\n//Base flying blood actor. Leaves bloodspots on the floor\nACTOR BD_FlyingBlood\n{\n   scale 0.6\n   speed 4\n   radius 8\n   height 1\n   Alpha 0.6\n   Decal BrutalBlood\n   Mass 1\n   +MISSILE\n   +CLIENTSIDEONLY\n   +NOTELEPORT\n   +NOBLOCKMAP\n   +THRUACTORS\n   +FORCEXYBILLBOARD\n   +MOVEWITHSECTOR\n   +DONTSPLASH\n    States\n    {\n     Spawn:\n\t\t\tTNT1 A 0\n\t\t\tTNT1 A 0 A_JumpIf(waterlevel > 1, \"Splash\")\n\t\t\tTNT1 A 0 A_Jump(255, \"Spawn1\", \"Spawn2\", \"Spawn3\", \"Live\")\n\t Spawn1:\n\t\t\tTNT1 A 0\n\t\t\tTNT1 A 0 A_SetScale(-0.4, 0.4)\n\t\t\tGoto live\n\n\tSpawn2:\n\t\t\tTNT1 A 0\n\t\t\tTNT1 A 0 A_SetScale(-0.45, -0.45)\n\t\t\tGoto live\n\n\tSpawn3:\n\t\t\tTNT1 A 0\n\t\t\tTNT1 A 0 A_SetScale(0.5, -0.5)\n\t\t\tGoto live\n\n\t Live:\n\t\t\tBLHT BCDEFG 1\n\t\t\tTNT1 A 0\n\t\t\tBLHT HHHHH 100 A_JumpIf(waterlevel > 1, \"Splash\")\n\t\t\tStop\n\n\tSplash:\n\t\t\tBLOD A 0\n\t\t\tTNT1 A 0 A_SpawnItem (\"Underblood2\")\n\t\t\tstop\n\n     Death:\n\t\t\tTNT1 A 0\n\t\t\tTNT1 A 0 A_PlaySound(\"blooddrop2\")\n\t\t\tTNT1 A 0 A_CheckFloor(\"DeathFloor\")\n\t\t\tTNT1 A 1\n\t\t\tStop\n\n\t\tDeathFloor:\n\t\t\tTNT1 A 0\n\t\t\tTNT1 A 0 A_SpawnItemEx (\"Bolognese_BloodSpot\",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION |  SXF_TRANSFERTRANSLATION,0)\n\t\t\tTNT1 A 0 A_PlaySound(\"blooddrop2\")\n\t\t    BL8A ABCDEF 2\n\t\t\tStop\n\n\t\tNoSpawn:\n\t\t\tTNT1 A 0\n\t\t\tStop\n\n    }\n}\n\n//Faster version used in some specific cases\nACTOR BD_FlyingBloodMuchFaster: BD_FlyingBlood\n{\n\t Scale 1.0\n\t Speed 8\n}\n\nactor BD_FlyingBloodTrail\n{\n\tscale 0.25\n\tmass 1\n\trenderstyle Translucent\n\talpha 0.8\n\tDecal BrutalBloodSplat\n\t+NOTELEPORT\n\t+NOBLOCKMAP\n\t+FORCEXYBILLBOARD\n\t+CLIENTSIDEONLY\n\t+MISSILE\n\t+THRUACTORS\n\t+BOUNCEONWALLS\n\t+DONTSPLASH\n\tGravity 0.4\n\tSpeed 2\n\tstates\n\t{\n\t  Spawn:\n\t\t  TNT1 A 0 A_JumpIf(waterlevel > 1, \"Splash\")\n\t\t  BLHT BCDEFG 1\n\t\t  BLHT HHHHHHHHH 1 A_FadeOut(0.02)\n\t\t  stop\n\n\tDeath:\n\t\tTNT1 A 0\n\t\tStop\n\n\tSplash:\n        BLOD A 0\n\t\tTNT1 A 0 A_SpawnItem (\"Underblood2\")\n        stop\n\n }\n}\n\nactor BD_FlyingBloodFaster: BD_FlyingBloodTrail\n{\nSpeed 4\n states\n {\n  Spawn:\n\t  TNT1 A 0 A_JumpIf(waterlevel > 1, \"Splash\")\n\t  BLOD ABCDEFFFFFF 3\n\t  stop\n }\n}\n\nACTOR BD_FlyingBloodFake: BD_FlyingBloodTrail\n{\n\tscale 0.5\n\tspeed 3\n\tGravity 0.3\n\tRenderstyle Translucent\n\tAlpha 0.95\n\t+NOCLIP\n    Mass 1\n    States\n    {\n     Spawn:\n\t    TNT1 A 0 A_JumpIf(waterlevel > 1, \"Splash\")\n\t\tBLOD KKKKKKKKKKKK 1 A_FadeOut(0.05)\n        Stop\n\tSplash:\n        BLOD A 0\n\t\tTNT1 A 0 A_SpawnItem (\"Underblood2\")\n        stop\n\tDeath:\n\t    TNT1 A 10\n\t\tStop\n    }\n}\n\nACTOR BD_FlyingBloodFakeNoDecal: BD_FlyingBloodFake { decal \"none\"}\n\nactor Bloodmist : BD_FlyingBlood\n{\n\t+BOUNCEONWALLS\n\tscale 0.8\n\tradius 2\n\theight 2\n\tspeed  8\n\tGravity 0.6\n\talpha 0.6\n\t states\n\t {\n\tSpawn:\n\t\t\tTNT1 A 0\n\t\t\tTNT1 A 0 A_Jump(255, \"Spawn1\", \"Spawn2\", \"Spawn3\", \"Live\")\n\t Spawn1:\n\t\t\tTNT1 A 0\n\t\t\tTNT1 A 0 A_SetScale(-0.8, 0.8)\n\t\t\tGoto live\n\n\tSpawn2:\n\t\t\tTNT1 A 0\n\t\t\tTNT1 A 0 A_SetScale(-0.9, -0.9)\n\t\t\tGoto live\n\n\tSpawn3:\n\t\t\tTNT1 A 0\n\t\t\tTNT1 A 0 A_SetScale(0.7, -0.7)\n\t\t\tGoto live\n\n\t Live:\n\t\t\tBLHT ABCDEFG 3\n\t\t\tTNT1 A 0\n\t\t\tBLHT HHHHH 100 A_JumpIf(waterlevel > 1, \"Splash\")\n\t\t\tStop\n\n\tDeath:\n\t\t TNT1 A 0\n\t\t Stop\n\t}\n}\n\nactor BloodmistSmall : Bloodmist\n{\n\tscale    0.5\n\tspeed    8\n\tGRAVITY 1.0\n\n\tstates\n\t {\n\tSpawn:\n\t\t\tTNT1 A 0\n\t\t\tTNT1 A 0 A_Jump(255, \"Spawn1\", \"Spawn2\", \"Spawn3\", \"Live\")\n\t Spawn1:\n\t\t\tTNT1 A 0\n\t\t\tTNT1 A 0 A_SetScale(-0.5, 0.5)\n\t\t\tGoto live\n\n\tSpawn2:\n\t\t\tTNT1 A 0\n\t\t\tTNT1 A 0 A_SetScale(-0.4, -0.4)\n\t\t\tGoto live\n\n\tSpawn3:\n\t\t\tTNT1 A 0\n\t\t\tTNT1 A 0 A_SetScale(0.5, -0.6)\n\t\t\tGoto live\n\t\t}\n}\n\nactor BloodmistBig : Bloodmist\n{\n\tscale    1\n\tspeed    5\n\tGRAVITY 0.4\n\n\tstates\n\t {\n\tSpawn:\n\t\t\tTNT1 A 0\n\t\t\tTNT1 A 0 A_Jump(255, \"Spawn1\", \"Spawn2\", \"Spawn3\", \"Live\")\n\t Spawn1:\n\t\t\tTNT1 A 0\n\t\t\tTNT1 A 0 A_SetScale(-1.1, 1.1)\n\t\t\tGoto live\n\n\tSpawn2:\n\t\t\tTNT1 A 0\n\t\t\tTNT1 A 0 A_SetScale(-0.9, -0.9)\n\t\t\tGoto live\n\n\tSpawn3:\n\t\t\tTNT1 A 0\n\t\t\tTNT1 A 0 A_SetScale(1.0, -1.0)\n\t\t\tGoto live\n\t\t}\n}\n\nactor BloodmistExtraBig : Bloodmist\n{\n\tscale    1.5\n\tspeed    5\n\tGRAVITY 0.4\n\n\tstates\n\t {\n\tSpawn:\n\t\t\tTNT1 A 0\n\t\t\tTNT1 A 0 A_Jump(255, \"Spawn1\", \"Spawn2\", \"Spawn3\", \"Live\")\n\t Spawn1:\n\t\t\tTNT1 A 0\n\t\t\tTNT1 A 0 A_SetScale(-1.6, 1.6)\n\t\t\tGoto live\n\n\tSpawn2:\n\t\t\tTNT1 A 0\n\t\t\tTNT1 A 0 A_SetScale(-1.5, -1.6)\n\t\t\tGoto live\n\n\tSpawn3:\n\t\t\tTNT1 A 0\n\t\t\tTNT1 A 0 A_SetScale(1.4, -1.5)\n\t\t\tGoto live\n\t\t}\n}\n\n//More wattery version\nactor BloodmistSpray : Bloodmist\n{\n\tscale    1.0\n\tGravity 0.4\n\t states\n\t\t{\n\t\tSpawn:\n\t\t\tBSPR ABCDEFGH 2\n\t\t\tBSPR H 200\n\t\t\tStop\n\t\t}\n}\n\n/////////////////////// BLOOD SPOTS //////////////////////////\n\n//base bloodspot actor\nACTOR Bolognese_BloodSpot\n{\n\tradius 2\n\theight 2\n\tmass 1\n\t+NOTELEPORT\n\t+CLIENTSIDEONLY\n\t+FORCEXYBILLBOARD\n\t+MOVEWITHSECTOR\n\t+FLOORCLIP\n\t+DONTSPLASH\n\t-SOLID\n\t+THRUACTORS\n\tAlpha 0.99\n\tScale 0.5\n\tDecal BrutalBloodSplat\n\tstates\n\t {\n\t Spawn:\n\t\t TNT1 A 0\n\t\t TNT1 A 0 A_JumpIf(waterlevel > 1, \"Splash\")\n\t\t TNT1 A 1\n\n\t\t TNT1 A 0 A_CheckFloor(\"SpawnNormally\")\n\t\t Goto Splash\n\n\tSpawnNormally:\n\tNULL A 1\n\tNULL A 0 A_Jump(255, \"Spawn1\", \"Spawn2\", \"Spawn3\", \"Spawn4\", \"Spawn5\", \"Spawn6\", \"spawn7\", \"spawn8\", \"spawn9\", \"live\")\n\n\tSpawn1:\n\tNULL A 0 A_SetScale(0.58, 0.58)\n\tGoto Live\n\n\tSpawn2:\n\tNULL A 0 A_SetScale(0.56, 0.56)\n\tGoto Live\n\n\tSpawn3:\n\tNULL A 0 A_SetScale(0.54, 0.54)\n\tGoto Live\n\n\tSpawn4:\n\tNULL A 0 A_SetScale(0.52, 0.52)\n\tGoto Live\n\n\tSpawn5:\n\tNULL A 0 A_SetScale(0.48, 0.48)\n\tGoto Live\n\n\tSpawn6:\n\tNULL A 0 A_SetScale(0.46, 0.46)\n\tGoto Live\n\n\tSpawn7:\n\tNULL A 0 A_SetScale(0.44, 0.44)\n\tGoto Live\n\n\tSpawn8:\n\tNULL A 0 A_SetScale(0.42, 0.42)\n\tGoto Live\n\n\tSpawn9:\n\tNULL A 0 A_SetScale(0.40, 0.40)\n\tGoto Live\n\n\tLive:\n\tTNT1 A 1\n\tTNT1 A 0 A_QueueCorpse\n\tTNT1 A 0 A_Jump(255,  \"SpawnAFrameOnly\", \"SpawnBFrameOnly\", \"SpawnCFrameOnly\")\n\n\tSpawnAFrameOnly:\n\t\t\tBPDL A -1\n\t\t\tLoop\n\n\tSpawnBFrameOnly:\n\t\t\tBPDL B -1\n\t\t\tLoop\n\n\tSpawnCFrameOnly:\n\t\t\tBPDL C -1\n\t\t\tLoop\n\n\t\tSplash:\n\t\t\tBLOD A 0\n\t\t\tstop\n\n\t\tDeath:\n\t\t\tTNT1 A 0\n\t\t\tTNT1 A 0 A_NoBlocking\n\t\t\tStop\n\n\t\tIsOverLiquid:\n\t\t\tBPDL E 1 A_FadeOut(0.9)\n\t\t\tBPDL EEEEEEEEEEEEEEEEEEEE 4 A_FadeIn(0.05)\n\t\t\tBPDL E 400\n\t\t\tBPDL EEEEEEEEEEEEEEEEEEEE 4 A_FadeOut(0.05)\n\t\t\tStop\n\t}\n}\n\n//Bigger version for gibs\nActor BDLargeBloodSpot: Bolognese_BloodSpot {Mass 1}\n\n//a special flying blood actor that spawns muddy water pools over liquids\nACTOR WaterBloodCHecker\n{\n    Speed 4\n    Scale 1.2\n\tRadius 1\n\t+MISSILE\n\t+EXPLODEONWATER\n\t+CLIENTSIDEONLY\n\t+DOOMBOUNCE\n\tBounceFactor 0.01\n\tHeight 1\n    SeeSound \"none\"\n    DeathSound \"none\"\n\tDecal none\n\tStates\n    {\n    Spawn:\n\t    TNT1 A 5\n        Loop\n    Death:\n        TNT1 A 0\n\t\tTNT1 A 0 ACS_NamedExecuteAlways(\"BD_CheckIfOverLiquid\")\n\t\tTNT1 A 5\n\t\tTNT1 A 0 A_JumpIfInventory(\"IsOverWater\", 1, \"IsOverLiquid\")\n\t\tTNT1 A 0 A_JumpIfInventory(\"IsOverSlime\", 1, \"IsOverLiquid\")\n\t\tTNT1 A 0 A_JumpIfInventory(\"IsOverNukage\", 1, \"IsOverLiquid\")\n        TNT1 A 10\n        Stop\n\n\tIsOverLiquid:\n\t\tTNT1 A 1\n\t\tTNT1 A 0 A_CheckFloor(\"SpawnOnWater\")\n\t\tTNT1 A 2\n\t\tStop\n\n\tSpawnOnWater:\n\t\tTNT1 A 1\n\t\tTNT1 A 0 A_SpawnItem (\"WaterBloodSpot\", 5)\n\t\tStop\n    }\n}\n\n//muddy water bloodspot actor\nACTOR WaterBloodSpot\n{\n+CLIENTSIDEONLY\n+THRUACTORS\nRadius 0\nHeight 0\nRenderstyle Shaded\nStencilColor \"55 00 00\"\nAlpha 0.2\n states\n {\n\tSpawn:\n\t\tBPDL E 1 A_FadeOut(0.9)\n\t\tBPDL EEEEEEEEEEEEEEEEEEEE 4 A_FadeIn(0.02)\n\t\tBPDL E 100\n\t\tBPDL EEEEEEEEEEEEEEEEEEEE 4 A_FadeOut(0.02)\n\t\tStop\n }\n}\n\n//bigger bloodsplat\nactor GiantBloodSpot: Bolognese_BloodSpot\n{\n Scale 1.1\n States\n {\n\tSpawn:\n\t\tTNT1 A 0\n\t\tTNT1 A 0 ACS_NamedExecuteAlways(\"BD_CheckIfOverLiquid\")//Check Floortype\n\t\tTNT1 A 3\n\t\tTNT1 A 0 A_JumpIfInventory(\"IsOverSlimy\", 1, \"Disappear\")\n\t\tTNT1 A 0 A_JumpIfInventory(\"IsOverWater\", 1, \"Disappear\")\n\t\tTNT1 A 0 A_JumpIfInventory(\"IsOverNukage\", 1, \"Disappear\")\n\t\tTNT1 A 0 A_JumpIfInventory(\"IsOverLava\", 1, \"Disappear\")\n\t\tTNT1 A 0 A_QueueCorpse\n\t\tGoto SpawnAFrameOnly\n\n\tDisappear:\n\t\tTNT1 A 0\n\t\tStop\n\t}\n}\n\nactor MinuscleBloodSpot: Bolognese_BloodSpot {Scale 0.25}\nactor BigBloodSpot: GiantBloodSpot { Scale 0.7}\nactor MediumBloodSpot: GiantBloodSpot { Scale 0.4}\nactor MediumBloodSpot2: GiantBloodSpot{ Scale 0.4}\n\n//Big version spawned by XDeath animations\nACTOR SplatteredSmall: Bolognese_BloodSpot\n{\n states\n {\n Spawn:\n\tTNT1 A 0 A_JumpIf(waterlevel > 1, \"Splash\")\n    TNT1 A 0 A_FaceTarget\n\tTNT1 A 2\n    TNT1 A 0 A_JumpIfInventory(\"IsOverWater\", 1, \"Splash\")\n\tTNT1 A 0 A_JumpIfInventory(\"IsOverSlime\", 1, \"Splash\")\n\tTNT1 A 0 A_JumpIfInventory(\"IsOverlava\", 1, \"Splash\")\n\tBPDL A -1\n\tStop\n }\n}\n\n//Big version spawned by XDeath animations of bigger enemies\nACTOR SplatteredLarge: Bolognese_BloodSpot\n{\n states\n {\n Spawn:\n   TNT1 A 0\n   TNT1 A 0 A_JumpIf(waterlevel > 1, \"Splash\")\n   TNT1 A 0 A_CheckFloor(\"Live\")\n   Goto Splash\n\n  Live:\n    TNT1 A 0\n    TNT1 A 0 ACS_NamedExecuteAlways(\"BD_CheckIfOverLiquid\")//Check if is under a liquid\n\tTNT1 A 4\n    TNT1 A 0 A_JumpIfInventory(\"IsOverWater\", 1, \"WaterBloodSpot\")\n\tTNT1 A 0 A_JumpIfInventory(\"IsOverSlime\", 1, \"WaterBloodSpot\")\n\tTNT1 A 0 A_JumpIfInventory(\"IsOverlava\", 1, \"WaterBloodSpot\")\n\tTNT1 A 0 A_QueueCorpse\n\tBPDL A -1\n\tStop\n\n WaterBloodSpot:\n\tTNT1 A 0\n\tTNT1 A 0 A_SpawnItem(\"WaterBloodSpot\")\n\tStop\n }\n}\n\n//A blood pool spawned by regular enemy deaths.\nactor GrowingBloodPool: Bolognese_BloodSpot\n{\n\tvar int user_bloodpoolsize;\n\tradius 1\n\theight 1\n\tmass 1\n\tHealth 600\n\tRenderStyle Normal\n\tAlpha 0.99\n\t+NOTELEPORT\n\t+CLIENTSIDEONLY\n\t+FORCEXYBILLBOARD\n\t+MOVEWITHSECTOR\n\t+FLOORCLIP\n\t+MISSILE\n\t+DONTSPLASH\n\tScale 0.3\n\tDecal BrutalBloodSplat\n\t states\n\t\t {\n\t\t Spawn:\n\t\t  TNT1 A 0 A_JumpIf(waterlevel > 1, \"Splash\")\n\t\t  TNT5 A 1\n\n\t\t  TNT5 A 2 A_QueueCorpse\n\t\t  TNT5 A 1 A_SetScale(0.33, 0.33)\n\t\t  TNT5 A 1 A_SetScale(0.36, 0.36)\n\t\t  TNT5 A 1 A_SetScale(0.39, 0.39)\n\t\t  TNT5 A 1 A_SetScale(0.42, 0.42)\n\t\t  TNT5 A 1 A_SetScale(0.45, 0.45)\n\t\t  TNT5 A 1 A_SetScale(0.48, 0.48)\n\t\t  TNT5 A 1 A_SetScale(0.50, 0.50)\n\n\t\t  TNT5 A 2 A_SetScale(0.53, 0.53)\n\t\t  TNT5 A 2 A_SetScale(0.56, 0.56)\n\t\t  TNT5 A 2 A_SetScale(0.59, 0.59)\n\t\t  TNT5 A 2 A_SetScale(0.62, 0.62)\n\t\t  TNT5 A 2 A_SetScale(0.65, 0.65)\n\t\t  TNT5 A 2 A_SetScale(0.68, 0.68)\n\t\t  TNT5 A 2 A_SetScale(0.70, 0.70)\n\n\t\t  TNT5 A 3 A_SetScale(0.73, 0.73)\n\t\t  TNT5 A 3 A_SetScale(0.76, 0.76)\n\t\t  TNT5 A 3 A_SetScale(0.79, 0.79)\n\t\t  TNT5 A 3 A_SetScale(0.82, 0.82)\n\t\t  TNT5 A 3 A_SetScale(0.85, 0.85)\n\t\t  TNT5 A 3 A_SetScale(0.88, 0.88)\n\t\t  TNT5 A 3 A_SetScale(0.90, 0.90)\n\n\t\t  TNT5 A 3 A_SetScale(0.93, 0.93)\n\t\t  TNT5 A 3 A_SetScale(0.96, 0.96)\n\t\t  TNT5 A 3 A_SetScale(0.99, 0.99)\n\t\t  TNT5 A 3 A_SetScale(1.02, 1.02)\n\t\t  TNT5 A 3 A_SetScale(1.05, 1.05)\n\t\t  TNT5 A 3 A_SetScale(1.08, 1.08)\n\t\t  TNT5 A 3 A_SetScale(1.11, 1.11)\n\n\t\t Live:\n\t\t  TNT5 A 900//duration\n\t\t  TNT1 A 0 A_JumpIfInventory(\"lowgraphicsmode\", 1, \"Splash\")\n\t\t  TNT5 A -1\n\t\t  Stop\n\t\tSplash:\n\t\t  BLOD A 0\n\t\t  stop\n\t }\n}\n\n//A decorative kind of flying blood spawned by arterial blood\nACTOR BD_LiquidBlood: BD_FlyingBlood\n{\n speed 3\n scale 0.2\n gravity 0.6\n decal \"BrutalBloodSmearSmall\"\n    States\n    {\n     Spawn:\n\t TNT1 A 0\n\t TNT1 A 0 A_CustomMissile (\"BD_FlyingBloodTrail\", 10, 0, random (0, 360), 2, random (0, 90))\n     BLOD AAAAAAAAAAAAAAAAAAAAAAAAAAA 1 A_SpawnItem(\"BD_LiquidBloodTrail\")\n     Stop\n\t Death:\n  \t   TNT1 A 0 A_PlaySound(\"blooddrop2\")\n\t   BL8A ABCDEF 2\n\t   TNT1 A 0\n       Stop\n    }\n}\n\n//Faster version, leaves no decals. Used to prevent decal overflow\nACTOR BD_LiquidBlood2: BD_LiquidBlood\n{\n speed 4\n scale 0.4\n gravity 0.6\n decal \"None\"\n}\n\n//Very fast version\nACTOR BD_LiquidBloodFast: BD_LiquidBlood2\n{\n speed 8\n}\n\n//This version leaves a bloodspot\nACTOR BD_LiquidBlood3: BD_FlyingBlood\n{\nSpeed 3\n    States\n    {\n\t Death:\n  \t   TNT1 A 0 A_PlaySound(\"blooddrop2\")\n\t   TNT1 A 0 A_CheckFloor(\"SpawnFloor\")\n\t   TNT1 A 4\n\t   Stop\n\n\t SpawnFloor:\n\t   tnt1 a 0 A_SPawnItem(\"Bolognese_BloodSpot\")\n\t   BL8A ABCDEF 2\n\t   TNT1 A 0\n       Stop\n    }\n}\n\n//Decorative trails\nACTOR BD_LiquidBloodTrail: BD_FlyingBlood\n{\n scale 0.4\n gravity 0.4\n    States\n    {\n     Spawn:\n\t  TNT1 A 0\n      BRTL ABC 2\n\t  Stop\n\t Death:\n\t  TNT1 A 0\n      Stop\n    }\n}\n\n//An actor that will spawn multiple arterial blood actors\nACTOR ArterialBloodSpray\n{\n Speed 0\n +CLIENTSIDEONLY\n +NOINTERACTION\n    States\n    {\n     Spawn:\n\t TNT1 A 0\n\t TNT1 A 0 A_stop\n\t\tTNT1 AAAA 2 A_CustomMissile (\"BD_LiquidBlood2\", 0, 0, 0, 2, random (0, 60))\n\t\tTNT1 A 6\n\t\tTNT1 A 2 A_CustomMissile (\"BD_LiquidBlood2\", 0, 0, 0, 2, random (0, 60))\n\t\tTNT1 A 6\n\t\tTNT1 A 2 A_CustomMissile (\"BD_LiquidBlood2\", 0, 0, 0, 2, random (0, 60))\n\t\tTNT1 A 6\n\t\tTNT1 A 2 A_CustomMissile (\"BD_LiquidBlood2\", 0, 0, 0, 2, random (0, 60))\n\t\tTNT1 A 6\n\t\tTNT1 A 2 A_CustomMissile (\"BD_LiquidBlood2\", 0, 0, 0, 2, random (0, 60))\n\t\tTNT1 A 9\n\t\tTNT1 A 2 A_CustomMissile (\"BD_LiquidBlood2\", 0, 0, 0, 2, random (0, 60))\n\t\tTNT1 A 9\n\t\tTNT1 A 2 A_CustomMissile (\"BD_LiquidBlood2\", 0, 0, 0, 2, random (0, 60))\n\t\tTNT1 A 9\n\t\tTNT1 A 2 A_CustomMissile (\"BD_LiquidBlood2\", 0, 0, 0, 2, random (0, 60))\n\t\tTNT1 A 9\n\t\tTNT1 A 2 A_CustomMissile (\"BD_LiquidBlood2\", 0, 0, 0, 2, random (0, 60))\n\t\tTNT1 A 12\n\t\tTNT1 A 2 A_CustomMissile (\"BD_LiquidBlood2\", 0, 0, 0, 2, random (0, 60))\n\t\tTNT1 A 12\n\t\tTNT1 A 2 A_CustomMissile (\"BD_LiquidBlood2\", 0, 0, 0, 2, random (0, 60))\n\t\tTNT1 A 16\n\t\tTNT1 A 2 A_CustomMissile (\"BD_LiquidBlood2\", 0, 0, 0, 2, random (0, 60))\n\t\tTNT1 A 19\n\t\tTNT1 A 2 A_CustomMissile (\"BD_LiquidBlood2\", 0, 0, 0, 2, random (0, 60))\n       Stop\n    }\n}\n\n/////////////////// CEILING BLOOD //////////////////////////\n\n//Launches bloodspots on the ceiling\nACTOR CeilBloodLauncher: BD_FLyingBlood\n{\n    +THRUACTORS\n\t-DOOMBOUNCE\n\t-SKYEXPLODE\n\t+BOUNCEONWALLS\n    Speed 15\n    Gravity 0.0\n\tRadius 1\n\tHeight 1\n\tDecal BrutalBloodSplat\n    States\n\t\t{\n\t\t Spawn:\n\t\t    TNT1 A 0 A_JumpIf(waterlevel > 1, \"Splash\")\n\t\t\tTNT1 A 3\n\t\t\tStop\n\t\tSplash:\n\t\t\tBLOD A 0\n\t\t\tstop\n\t\t Death:\n\t\t\tTNT1 A 0\n\t\t\tTNT1 A 0 A_CheckCeiling(\"IsOnCeil\")\n\t\t\tTNT1 A 0\n\t\t\tstop\n\n\t\t IsOnCeil:\n\t\t\tTNT1 A 0\n\t\t\tTNT1 A 1 A_SpawnItem(\"CeilBloodSpot\",0,0,0,1)\n\t\t\tStop\n\t\t Melee:\n\t\t Xdeath:\n\t\t\tTNT1 A 1\n\t\t\tStop\n\t\t}\n}\n\n//Longer version (for extreme deaths)\nACTOR CeilBloodLauncherLong: CeilBloodLauncher\n{\n    States\n    {\n\t\t Spawn:\n\t\t\tTNT1 A 0 A_JumpIf(waterlevel > 1, \"Splash\")\n\t\t\tTNT1 A 12\n\t\t\tStop\n    }\n}\n\n// The Ceil Blood Spot\nactor CeilBloodSpot\n{\n\t+MISSILE\n\t+CEILINGHUGGER\n\t-SKYEXPLODE\n\t+THRUACTORS\n\tHeight 1\n\tRadius 2\n\t+DontSplash\n\tMass 0\n\tScale 0.5\n\tGravity 0.0\n\tDecal BrutalBloodSplat\n\tRenderstyle Normal\n\tAlpha 0.9\n\tstates\n\t{\n\t\tSpawn:\n\t\t  BPDL A 1\n\t\t  TNT1 A 0 A_QueueCorpse\n\t\t  TNT1 A 0 A_SpawnItem (\"DripingBloodLeavesSmallPool\")\n\t\t  TNT1 A 0 A_SpawnItem (\"CeilBloodTinyBloodSpawner\")\n\t\tLive:\n\t\t  BPDL A 5 ThrustThingZ(0, 20, 0, 1)\n\t\t  Loop\n\t\t\t}\n}\n\n//Bigger version of a ceil blood spot, usually left by sticky gibs.\nactor CeilBloodSpotLarge: CeilBloodSpot\n{\n\tstates\n\t{\n\t\tSpawn:\n\t\t\tBPDL A 1\n\t\t\tTNT1 A 0 A_QueueCorpse\n\t\t\tTNT1 A 0 A_SpawnItem (\"DripingBloodLeavesSmallPool\")\n\t\t\tTNT1 A 0 A_SpawnItem (\"CeilBloodLargeBloodSpawner\")\n\t\tLive:\n\t\t\tBPDL A 5 ThrustThingZ(0, 20, 0, 1)\n\t\t\tLoop\n\t\tSplash:\n\t\t\tBLOD A 0\n\t\t\tstop\n\t\t\t}\n}\n\n//These are the actors that spawns blood drips. They are separate from the bloodspots so the sticky gibs can spawn them separately.\n\n//Small blood drips spawner, usually caused by regular blood touching the ceiling.\nACTOR CeilBloodTinyBloodSpawner: BD_FlyingBlood\n{\n\t+NOGRAVITY\n\t+THRUACTORS\n\t+NOCLIP\n\t States\n\t\t{\n\t\t Spawn:\n\t\t\t  TNT1 A 0\n\t\t\t  TNT1 A 1 A_SpawnItemEx (\"DripingBloodLeavesSmallPool\", random (-5, 5), random (-5, 5), 0, 0, 0, -5)\n\t\t\t  TNT1 AAAAAAAAAAAAAA 5 A_SpawnItemEx (\"BloodDripingFromCeiling\", random (-5, 5), random (-5, 5), 0, 0, 0, -5)\n\t\t\t  TNT1 AAAAAAAAAAAAAA 10 A_SpawnItemEx (\"BloodDripingFromCeiling\", random (-5, 5), random (-5, 5), 0, 0, 0, -5)\n\t\t\t  TNT1 AAAAAAAAAAAAAA 16 A_SpawnItemEx (\"BloodDripingFromCeiling\", random (-5, 5), random (-5, 5), 0, 0, 0, -5)\n\t\t\t  TNT1 AAAAAAAAAAAAAA 24 A_SpawnItem (\"BloodDripingFromCeiling\")\n\t\t\t  stop\n\t\t}\n}\n\n//Large blood drips spawner, usually caused by huge chunks of meat getting stuck on the ceiling.\nACTOR CeilBloodLargeBloodSpawner: BD_FlyingBlood\n{\n\t+NOGRAVITY\n\t+THRUACTORS\n\t+NOCLIP\n\tScale 0.5\n\t States\n\t\t{\n\t\t Spawn:\n\t\t\t  TNT1 A 0\n\t\t\t  TNT1 A 1 A_SpawnItemEx (\"DripingBloodLeavesSmallPool\", random (-5, 5), random (-5, 5), 0, 0, 0, -5)\n\t\t\t  TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 3 A_SpawnItemEx (\"BloodDripingFromCeilingBig\", random (-5, 5), random (-5, 5), 0, 0, 0, -5)\n\t\t\t  TNT1 AAAAAAAAAAAAAA 10 A_SpawnItemEx (\"BloodDripingFromCeilingBig\", random (-5, 5), random (-5, 5), 0, 0, 0, -5)\n\t\t\t  TNT1 AAAAAAAAAAAAAA 15 A_SpawnItemEx (\"BloodDripingFromCeiling\", random (-5, 5), random (-5, 5), 0, 0, 0, -5)\n\t\t\t  TNT1 AAAAAAAAAAAAAA 20 A_SpawnItemEx (\"BloodDripingFromCeiling\", random (-5, 5), random (-5, 5), 0, 0, 0, -5)\n\t\t\t  stop\n\t\t}\n}\n\n//This is the actual blood driping from the ceiling actor\nACTOR BloodDripingFromCeiling: BD_FlyingBlood\n{\n\t-NOGRAVITY\n\t-FORCEXYBILLBOARD\n\t+FORCEYBILLBOARD\n\tGravity 1.0\n\tRadius 4\n\tHeight 1\n     States\n\t\t{\n\t\t Spawn:\n\t\t   TNT1 A 0\n\t\t   TNT1 A 0 A_Jump(230, \"NoSpawn\")\n\t\t   TNT1 A 0 A_JumpIf(waterlevel > 1, \"Splash\")\n\t\t   BLUD Z 500\n\t\t   loop\n\n\t\t  Death:\n\t\t\t TNT1 A 0\n\t\t\t TNT1 A 0 A_PlaySound(\"blooddrop2\")\n\t\t\t TNT1 A 0 A_Stop\n\t\t\t BL8A ABCDEF 2\n\t\t\t stop\n\t\t}\n}\n\n//This is a bigger and denser version of the blood drip, droped by sticky gibs\nACTOR BloodDripingFromCeilingBig: BloodDripingFromCeiling\n{\n\tXScale 0.4\n\tYScale 1.0\n\tGravity 0.8\n    States\n    {\n     Spawn:\n       TNT1 A 0\n\t   TNT1 A 0 A_Jump(160, \"NoSpawn\")\n       TNT1 A 0 A_JumpIf(waterlevel > 1, \"Splash\")\n       BLUD Z 500\n       loop\n\t Death:\n\t\t TNT1 A 0\n\t\t TNT1 A 0 A_PlaySound(\"blooddrop2\")\n\t\t TNT1 A 0 A_Stop\n\t\t TNT1 A 0 A_SetScale(0.5, 0.5)\n\t\t BL8A ABCDEF 2\n\t\t stop\n    }\n}\n\n//This is the first drip spawned by the drip spawners, which leaves a small blood pool\nACTOR DripingBloodLeavesPool: BloodDripingFromCeiling\n{\n-FORCEXYBILLBOARD\n+FORCEYBILLBOARD\n\n scale 0.3\n    States\n    {\n     Spawn:\n       TNT1 A 0 A_JumpIf(waterlevel > 1, \"Splash\")\n        BLUD Z 4\n        loop\n\tSplash:\n        BLOD A 0\n        stop\n     Death:\n\t    TNT1 A 0\n\t\tTNT1 A 0 A_SpawnItem(\"MediumBloodSpot\")\n\t\tTNT1 A 0 A_PlaySound(\"blooddrop2\")\n        BL8A ABCDEF 2\n        stop\n    }\n}\n\n//Just like above, but leaves a smaller pool\nACTOR DripingBloodLeavesSmallPool: DripingBloodLeavesPool\n{\n-FORCEXYBILLBOARD\n+FORCEYBILLBOARD\n+DONTSPLASH\nStates\n{\n     Death:\n\t    TNT1 A 0\n\t\tTNT1 A 0 A_SpawnItem(\"MinuscleBloodSpot\")\n\t\tTNT1 A 0 A_PlaySound(\"blooddrop2\")\n        BL8A ABCDEF 2\n        stop\n    }\n}\n\n//An invisible projectile only used to spawn bloodsplats on the walls, usually spawned by extreme deaths.\nACTOR WallRedBlood\n{\n\tscale 0.6\n\tspeed 7\n\thealth 1\n\tradius 8\n\theight 1\n\tGravity 0.7\n\tdamage 0\n\tDamageType Blood\n\tDecal BrutalBloodSmearer\n   +MISSILE\n   +CLIENTSIDEONLY\n   +NOTELEPORT\n   +NOBLOCKMAP\n   +THRUACTORS\n    States\n    {\n\t\tSpawn:\n\t\t   TNT1 A 0 A_JumpIf(waterlevel > 1, \"Splash\")\n\t\t\tTNT1 ABCD 4\n\t\t\tloop\n\t\tSplash:\n\t\t\tBLOD A 0\n\t\t\tstop\n\t\t Death:\n\t\t\tTNT1 A 3\n\t\t\tstop\n    }\n}\n\n//This one spawns an even bigger decal\nACTOR SuperWallRedBlood: WallRedBlood\n{\n speed 32\n Gravity 0.1\n Decal BrutalBlood\n     States\n\t\t{\n\t\t Spawn:\n\t\t   TNT1 A 0 A_JumpIf(waterlevel > 1, \"Splash\")\n\t\t\tTNT1 ABCD 1\n\t\t\tStop\n\t\t}\n}\n\n//This one spawns a ridiculously bigger decal, used by BFG extreme deaths\nACTOR GiantWallRedBlood: WallRedBlood\n{\n speed 32\n Gravity 0.1\n Decal BrutalBloodGiant\n     States\n\t\t{\n\t\t Spawn:\n\t\t   TNT1 A 0 A_JumpIf(waterlevel > 1, \"Splash\")\n\t\t   TNT1 ABCD 1\n\t\t   Stop\n\n\t\t}\n}\n\n//Spawns giant blood decals all around the area. Used in Brutal Doom's BFG deaths.\nActor BloodSplinter\n{\n\t+THRUACTORS\n\t+CLIENTSIDEONLY\n\tStates\n\t\t{\n\t\t\t Spawn:\n\t\t\t   TNT1 A 0 A_JumpIf(waterlevel > 1, \"Splash\")\n\t\t\t   TNT1 A 0 A_CustomMissile (\"GiantWallRedBlood\", 40, 0, 0, 2, random (0, 35))\n\t\t\t   TNT1 A 0 A_CustomMissile (\"GiantWallRedBlood\", 40, 0, 45, 2, random (0, 35))\n\t\t\t   TNT1 A 0 A_CustomMissile (\"GiantWallRedBlood\", 40, 0, 90, 2, random (0, 35))\n\t\t\t   TNT1 A 0 A_CustomMissile (\"GiantWallRedBlood\", 40, 0, 135, 2, random (0, 35))\n\t\t\t   TNT1 A 0 A_CustomMissile (\"GiantWallRedBlood\", 40, 0, 180, 2, random (0, 35))\n\t\t\t   TNT1 A 0 A_CustomMissile (\"GiantWallRedBlood\", 40, 0, 225, 2, random (0, 35))\n\t\t\t   TNT1 A 0 A_CustomMissile (\"GiantWallRedBlood\", 40, 0, 270, 2, random (0, 35))\n\t\t\t   TNT1 A 0 A_CustomMissile (\"GiantWallRedBlood\", 40, 0, 315, 2, random (0, 35))\n\t\t\t   Stop\n\n\t\t\tSplash:\n\t\t\t\tBLOD A 0\n\t\t\t\tstop\n\t\t}\n}\n\n//Spawned by BD's kicked heads  to spawn blood decals and make the head bounce sound.\nACTOR ShortWallRedBlood: WallRedBlood\n{\n speed 2\n Gravity 1\n Radius 24\n Height 12\n     States\n    {\n     Spawn:\n       TNT1 A 0 A_JumpIf(waterlevel > 1, \"Splash\")\n        TNT1 A 3\n        Stop\n\tDeath:\n\t    TNT1 AAAAAAAAAAAAAAAAAA 0 A_CustomMissile (\"BD_FlyingBloodFakeNoDecal\", 0, 0, random (0, 360), 2, random (0, 90))\n\t\tTNT1 A 0 A_SpawnItem(\"Bolognese_BloodSpot\",0,0,0,1)\n\t\tTNT1 A 0 A_PlaySound(\"HEDBON\")\n\t    TNT1 A 20\n\t\tStop\n\t}\n}\n\n//Blood actors spawned underwater\nACTOR Underblood1\n{\n\tscale 1.4\n\tspeed 1\n\thealth 1\n\tradius 8\n\theight 1\n\tGravity 0.9\n\tRenderstyle Translucent\n\tAlpha 0.2\n\tDecal BrutalBloodSplat\n\t+MISSILE\n\t+CLIENTSIDEONLY\n\t+NOTELEPORT\n\t+NOBLOCKMAP\n\t+FORCEXYBILLBOARD\n\t-DONTSPLASH\n\t+THRUACTORS\n\tMass 1\n\t\tStates\n\t\t{\n\t\t Spawn:\n\t\t  BSP4 ABCDEFGHIJKLMNOPQRSTUVWXYZ 2 A_JumpIf(waterlevel < 1, \"Splash\")\n\t\t  Stop\n\n\t\tSplash:\n\t\t\tBLOD A 0\n\t\t\tstop\n\t\t Death:\n\t\t\tTNT1 A 0\n\t\t\tStop\n\t\t}\n}\n\n//Shorter version\nACTOR Underblood2: Underblood1\n{\n scale 0.7\n speed 0\n    States\n    {\n     Spawn:\n\t BSP4 ABCDEFGHIJKLMNOPQRSTUVWXYZ 1 A_JumpIf(waterlevel < 1, \"Splash\")\n\t Stop\n\n\tSplash:\n        BLOD A 0\n        stop\n     Death:\n  \t    TNT1 A 0\n        Stop\n    }\n}\n//Bigger version that moves, used for gibbing.\nACTOR Underblood3: Underblood1\n{\n scale 2.2\n speed 2\n Alpha 0.3\n}\n\n//Big blood mists\n\nactor SuperGore\n{\n\tDecal BloodSplat\n\tAlpha 0.4\n\t+FORCEXYBILLBOARD\n\t+GHOST\n\t+NOBLOCKMAP\n\tGravity 0.01\n\t+DontSplash\n\t-EXPLODEONWATER\n\t-ALLOWPARTICLES\n\t+CLIENTSIDEONLY\n\t-NOGRAVITY\n\t+THRUACTORS\n\t+NOCLIP\n\tGravity 0.1\n\tScale 0.4\n\tSpeed 3\n\tAlpha 0.6\n\t states\n\t {\n\t  Spawn:\n\t\tTNT1 A 0\n\t\tBLOR EFGHIJK 4\n\t\tStop\n\t }\n}\n\nActor SuperGoreMist: SuperGore\n{\nScale 0.6\nSpeed 3\n+NOGRAVITY\n}\n\n//Used on bullet hit impacts\nActor SuperGoreMistTiny: SuperGore\n{\nScale 0.15\nAlpha 0.7\nSpeed 0\n\t states\n\t {\n\t  Spawn:\n\t\tTNT1 A 0\n\t\tBLOR EFGHIJK 2\n\t\tStop\n\t }\n}\n\nactor BigSuperGore: SuperGore\n{\nScale 0.6\nSpeed 6\n}\n\nactor GiantSuperGore: SuperGore\n{\nScale 1.2\nSpeed 8\n}\n\n//Spawners for the supergore thing\nActor SuperGoreSpawner\n{\n\tProjectile\n\t+MISSILE\n\t+FORCEXYBILLBOARD\n\t+THRUACTORS\n\tDecal BloodSuper\n\tradius 2\n\theight 2\n\tspeed 15\n\tstates\n\t{\n\tSpawn:\n\t\tTNT1 A 3\n\t\tTNT1 AAA 3 A_CustomMissile(\"SuperGore\", 7, 0, random (0, 360), 2, random (30, 60))\n\t\tStop\n\tDeath:\n\tXDeath:\n\t\tTNT1 A 0\n\t\tStop\n\t}\n}\n\n//Bloody footprints still requires the player to be edited to work.\n//Gives the player an inventory item to indicate the feet are smeared.\nACTOR BootSmearerRed: GrowingBloodPool\n{\n\tMONSTER\n\t-SOLID\n\t+NOCLIP\n\t+THRUACTORS\n\t-COUNTKILL\n\t+LOOKALLAROUND\n\t-FRIENDLY\n\tRadius 0\n\tHeight 0\n\t states\n\t {\n\t Spawn:\n\t\t TNT1 A 0\n\t\t TNT1 A 1 A_Look\n\t\t Goto See\n\n\t See:\n\t\t TNT1 A 1 A_Chase(\"\",\"\")\n\t\t TNT1 A 0 A_Die(\"LookForPlayer\")\n\t Death:\n\t Death.LookForPlayer:\n\t\tTNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 8 A_JumpIfCloser(60, \"SmearBootsWithRedBlood\")\n\t\tStop\n\tSmearBootsWithRedBlood:\n\t\t//TNT1 A 0 A_GiveToTarget(\"BootsSmearedWithRedBlood\", 8)\n\t\tBPDL A 0\n\t\tStop\n\t}\n}\n\nACTOR RedBloodFootPrintLeft: GrowingBloodPool\n{\n\tScale 0.09\n\t+CLIENTSIDEONLY\n\tRenderstyle Shaded\n\tStencilColor \"55 00 00\"\n\t states\n\t {\n\t Spawn:\n\t Death:\n\t Crash:\n\t\tTNT1 A 0 A_JumpIf(waterlevel > 1, \"Splash\")\n\t\tTNT1 A 0 ACS_NamedExecuteAlways(\"BD_CheckIfOverLiquid\")//Check if is under a liquid\n\t\tTNT1 A 4\n\n\t\tTNT1 A 0 A_JumpIfInventory(\"IsOverWater\", 1, \"Splash\")\n\t\tTNT1 A 0 A_JumpIfInventory(\"IsOverSlime\", 1, \"Splash\")\n\t\tTNT1 A 0 A_JumpIfInventory(\"IsOverlava\", 1, \"Splash\")\n\t\tTNT1 A 0 A_CheckFloor(\"ShowUp\")\n\t\tGoto Splash\n\tShowUp:\n\t\tTNT1 A 0\n\t\tTNT1 A 0 A_QueueCorpse\n\t\tBPDL A 200\n\t\tTNT1 A 0 A_JumpIfInventory(\"LowGraphicsMode\", 1, \"Splash\")\n\t\tBPDL A -1\n\t\tStop\n\tSplash:\n\t\tTNT1 A 0\n\t\tStop\n\t }\n}\n\nACTOR RedBloodFootPrintRight: GrowingBloodPool\n{\nScale 0.09\n+CLIENTSIDEONLY\nRenderstyle Shaded\nStencilColor \"55 00 00\"\n states\n {\n\t Spawn:\n\t Death:\n\t Crash:\n\t\tTNT1 A 0 A_JumpIf(waterlevel > 1, \"Splash\")\n\t\tTNT1 A 0 ACS_NamedExecuteAlways(\"BD_CheckIfOverLiquid\")//Check if is under a liquid\n\t\tTNT1 A 4\n\n\t\tTNT1 A 0 A_JumpIfInventory(\"IsOverWater\", 1, \"Splash\")\n\t\tTNT1 A 0 A_JumpIfInventory(\"IsOverSlime\", 1, \"Splash\")\n\t\tTNT1 A 0 A_JumpIfInventory(\"IsOverlava\", 1, \"Splash\")\n\t\tTNT1 A 0 A_CheckFloor(\"ShowUp\")\n\t\tGoto Splash\n\t\tShowUp:\n\t\tTNT1 A 0\n\t\tTNT1 A 0 A_QueueCorpse\n\t\tBPDL A 200\n\t\tTNT1 A 0 A_JumpIfInventory(\"LowGraphicsMode\", 1, \"Splash\")\n\t\tBPDL A -1\n\t\tStop\n\tSplash:\n\t\tTNT1 A 0\n\t\tStop\n }\n}"
      },
      {
        "source": "pk3",
        "name": "DECORATE.txt",
        "contents": "#include BLOOD.txt //Blood actors\n#include MEAT.txt //Gib actors\n#include SERVING.txt //Gore Groups (spawns gibs and blood when enemies explodes)\n\n//These are inventory tokens required for several things.\nActor IsOverWater : Inventory{inventory.maxamount 1}\nActor IsOverSlime : Inventory{inventory.maxamount 1}\nActor IsOverSludge : Inventory{inventory.maxamount 1}\nActor IsOverBlood : Inventory{inventory.maxamount 1}\nActor IsOverNukage : Inventory{inventory.maxamount 1}\nActor AnimuGore : Inventory{inventory.maxamount 1}\nActor IsOverLava : Inventory{inventory.maxamount 1}\nActor LowGraphicsMode : Inventory{inventory.maxamount 1}\nActor IsOverSlimy : Inventory{inventory.maxamount 1}"
      },
      {
        "source": "pk3",
        "name": "Meat.txt",
        "contents": "//Gib actors\n\nACTOR XDeath1\n{\n    Radius 1\n    Height 1\n    Speed 12\n\tMass 1\n    +NOBLOCKMAP\n\t+MISSILE\n    +NOTELEPORT\n    +MOVEWITHSECTOR\n    +CLIENTSIDEONLY\n\t-DONTSPLASH\n\t+THRUGHOST\n\t+THRUACTORS\n\t+FLOORCLIP\n    +FORCEXYBILLBOARD\n\tMass 1\n    States\n    {\n    Spawn:\n\t    TNT1 A 0 A_JumpIf(waterlevel > 1, \"Underwater\")\n\t\tBLOD AAAAAAAAAAAAAAAAAAAAAAAAAAA 1 A_SpawnItem(\"BD_LiquidBloodTrail\")\n        Stop\n    Death:\n        TNT1 A 0 A_SpawnItemEx (\"BDLargeBloodSpot\", 0, 0, 1)\n        Stop\n    }\n}\n\n//A flying piece of meat\nACTOR XDeath2: XDeath1\n{\n    +CLIENTSIDEONLY\n\t+DONTSPLASH\n\tRadius 2\n\tHeight 2\n\tGravity 0.4\n    DeathSound \"misc/xdeath2\"\n\tDecal BrutalBloodSuper\n    States\n    {\n    Spawn:\n\t    XMT1 A 0 A_JumpIf(waterlevel > 1, \"Splash\")\n        XMT1 ABCDEFGH 2 A_CustomMissile (\"BD_FlyingBloodTrail\", 0, 0, random (0, 360), 2, random (0, 360))\n        Loop\n    Death:\n        TNT1 AAAAAAA 0 A_CustomMissile (\"BD_FlyingBloodTrail\", 0, 0, random (0, 180), 2, random (0, 180))\n\t    TNT1 A 0 A_CheckFloor(\"SpawnFloor\")\n\t\tTNT1 A 0 A_CheckCeiling(\"SpawnCeiling\")\n\t\tTNT1 A 0 A_SpawnItem(\"SmearingXDeath2\")\n\t\tStop\n\n\tSpawnFloor:\n\t    XMT1 M 1\n\t\tTNT1 A 0 A_QueueCorpse\n\t\tTNT1 A 0 A_SpawnItemEx (\"BDLargeBloodSpot\", 0, 0, 1)\n\tSplash:\n\t\tXMT1 M -1\n\t\tStop\n\n\tSpawnCeiling:\n\t\tTNT1 A 0\n\t\tTNT1 A 0 A_SpawnItemEx (\"CeilXDeath2\", 0, 0, 1)\n\t\tTNT1 A 0 A_SpawnItemEx (\"CeilBloodSpotLarge\", 0, 0, 1)\n\t\tStop\n\n\tVanish:\n\t    TNT1 A 5\n\t\tStop\n    }\n}\n\nACTOR XDeath2b: XDeath2 {\tSpeed 4 } //Low-range version.\n\n//A piece of meat that has hit the wall, and now is slowly smearing\nACTOR SmearingXDeath2\n{\n    Radius 1\n    Height 1\n\tMass 1\n    +NOBLOCKMAP\n    +NOTELEPORT\n\t+THRUGHOST\n\t+CLIENTSIDEONLY\n    +DONTSPLASH\n    +MOVEWITHSECTOR\n\t+FORCEXYBILLBOARD\n\t+NOGRAVITY\n    States\n    {\n\tSpawn:\n\t\tXMT1 N 10\n\t\tTNT1 A 0 ThrustThingZ(0, 1, 1, 1)\n\t\tTNT1 A 0 A_Jump(255, \"Spawn1\", \"Spawn2\", \"Spawn3\", \"Spawn4\")\n\n\tSpawn1:\n\t\tXMT1 NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN 2 A_CheckFloor(\"Rest\")\n\t\tGoto Death\n\n\tSpawn2:\n\t\tXMT1 NNNNNNNNNNNNNNNNNNNNNNNN 2 A_CheckFloor(\"Rest\")\n\t\tGoto Death\n\n\tSpawn3:\n\t\tXMT1 NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN 2 A_CheckFloor(\"Rest\")\n\t\tGoto Death\n\n\tSpawn4:\n\t\tXMT1 NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN 2 A_CheckFloor(\"Rest\")\n\t\tGoto Death\n\n\tDeath:\n\t    TNT1 A 0\n\t    TNT1 A 0 A_SpawnItem(\"XDeath2NoStick\")\n        Stop\n\n\tRest:\n\t\tXMT1 M 1\n\t\tTNT1 A 0 A_QueueCorpse\n\t\tTNT1 A 0 A_SpawnItem(\"BDLargeBloodSpot\",0,0,0,1)\n\t\tXMT1 M -1\n\t\tStop\n\n\tVanish:\n\t    TNT1 A 5\n\t\tStop\n    }\n}\n\n//piece of meat that got stuck in the ceiling\nactor CeilXDeath2: BDLargeBloodSpot\n{\n\tPROJECTILE\n\t+MISSILE\n\t+SPAWNCEILING\n\t+MOVEWITHSECTOR\n\t+NOGRAVITY\n\t+DontSplash\n\t+CEILINGHUGGER\n\tstates\n\t{\n\t\tSpawn:\n\t\t\tTNT1 A 0\n\t\t\tTNT1 A 0 A_JUmp (255, \"Live1\", \"Live2\", \"Live3\")\n\t\t\tGoto Live1\n\n\t\t  Live1:\n\t\t\t  XMT1 IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII 5 ThrustThingZ(0, 20, 0, 1)\n\t\t\t  Goto Fall\n\n\t\t  Live2:\n\t\t\t  XMT1 IIIIIIIIIIIIIIIIIIIIIIIII 5 ThrustThingZ(0, 20, 0, 1)\n\t\t\t  Goto Fall\n\n\t\t  Live3:\n\t\t\t  XMT1 IIIIIIIIIIIIIIIII 5 ThrustThingZ(0, 20, 0, 1)\n\t\t\t  Goto Fall\n\n\t\t Fall:\n\t\t\t  XMT1 F 0\n\t\t\t  XMT1 JJJKKLL 2\n\t\t\t  TNT1 A 0 A_SpawnItemEx(\"XDeath2NoStick\", 0, 0, 0, 0, 0, -1)\n\t\t\t  stop\n\t\t Splash:\n\t\t\t  BLOD A 0\n\t\t\t  stop\n\t\t}\n}\n\n//piece of meat that got stuck on the ceiling/wall and now is falling\nACTOR XDeath2NoStick: XDeath2\n{\n    Speed 0\n\tGravity 0.4\n    DeathSound \"misc/xdeath2\"\n\tRadius 1\n\tHeight 0\n    States\n    {\n    Spawn:\n\t\tXMT1 FFFGGH 2\n\tLive:\n\t    TNT1 A 0 A_JumpIf(waterlevel > 1, \"Splash\")\n\t\tTNT1 A 0 A_CheckFloor(\"Death\")\n\t\tXMT1 ABCDEFGH 3 A_CustomMissile (\"BD_FlyingBloodTrail\", 0, 0, random (0, 360), 2, random (0, 360))\n        Loop\n    Death:\n        TNT1 AAAAAAA 0 A_CustomMissile (\"BD_FlyingBloodTrail\", 0, 0, random (0, 360), 2, random (20, 70))\n        XMT1 M 1\n\t\tTNT1 A 0 A_QueueCorpse\n\t\tXMT1 M 3\n\t\tTNT1 A 0 A_SpawnItem(\"BDLargeBloodSpot\",0,0,0,1)\n\t\tXMT1 M -1\n\t\tStop\n    }\n}\n\n//Variation of XDeath2\nACTOR XDeath3: XDeath2\n{\n    DeathSound \"misc/xdeath3\"\n\tDecal BrutalBloodSuper\n    States\n    {\n    Spawn:\n\t    TNT1 A 0 A_JumpIf(waterlevel > 1, \"Splash\")\n        XMT2 ABCDEFGH 3 A_CustomMissile (\"BD_FlyingBloodTrail\", 0, 0, random (0, 360), 2, random (0, 360))\n        Loop\n    Death:\n        TNT1 AAAAAAA 0 A_CustomMissile (\"BD_FlyingBloodTrail\", 0, 0, random (0, 180), 2, random (0, 180))\n\t    TNT1 A 0 A_CheckFloor(\"SpawnFloor\")\n\t\tTNT1 A 0 A_CheckCeiling(\"SpawnCeiling\")\n\t\tTNT1 A 0 A_SpawnItem(\"SmearingXDeath3\")\n\t\tStop\n\n\tSpawnFloor:\n\t    XMT2 I 1\n\t\tTNT1 A 0 A_QueueCorpse\n\t\tTNT1 A 0 A_SpawnItemEx (\"BDLargeBloodSpot\", 0, 0, 1)\n\t\tXMT2 I -1\n\t\tStop\n\n\tSpawnCeiling:\n\t\tTNT1 A 0\n\t\tTNT1 A 0 A_SpawnItemEx (\"CeilXDeath3\", 0, 0, 1)\n\t\tTNT1 A 0 A_SpawnItemEx (\"CeilBloodSpotLarge\", 0, 0, 1)\n\t\tStop\n\n\tVanish:\n\t    TNT2 A 5\n\t\tStop\n    }\n}\n\nACTOR XDeath3b: XDeath3 {\tSpeed 4 } //Low-range version.\n\n//A piece of meat that has hit the wall, and now is slowly smearing\nACTOR SmearingXDeath3: SmearingXDeath2\n{\n\n    States\n    {\n\tSpawn:\n\t\tXME2 G 10\n\t\tTNT1 A 0 ThrustThingZ(0, 1, 1, 1)\n\t\tTNT1 A 0 A_Jump(255, \"Spawn1\", \"Spawn2\", \"Spawn3\", \"Spawn4\")\n\n\tSpawn1:\n\t\tXMT2 OOOOOOOOOOOOOOOO 2 A_CheckFloor(\"Rest\")\n\t\tGoto Death\n\n\tSpawn2:\n\t\tXMT2 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO 2 A_CheckFloor(\"Rest\")\n\t\tGoto Death\n\n\tSpawn3:\n\t\tXMT2 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO 2 A_CheckFloor(\"Rest\")\n\t\tGoto Death\n\n\tSpawn4:\n\t\tXMT2 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO 2 A_CheckFloor(\"Rest\")\n\t\tGoto Death\n\n\tDeath:\n\t    TNT1 A 0\n\t    TNT1 A 0 A_SpawnItem(\"XDeath3NoStick\")\n        Stop\n\n\tRest:\n\t\tXMT2 I 1\n\t\tTNT1 A 0 A_QueueCorpse\n\t\tTNT1 A 0 A_SpawnItem(\"BDLargeBloodSpot\",0,0,0,1)\n\t\tXMT2 I -1\n\t\tStop\n\n\tVanish:\n\t    TNT1 A 5\n\t\tStop\n    }\n}\n\n//piece of meat that got stuck in the ceiling\nactor CeilXDeath3: CeilXDeath2\n{\n\tstates\n\t{\n\t\tSpawn:\n\t\t\tGoto Crash\n\t\t\tDeath:\n\t\t\tCrash:\n\t\t\tTNT1 A 0\n\t\t\tTNT1 A 0 A_JUmp (255, \"Live1\", \"Live2\", \"Live3\")\n\t\t\tGoto Live1\n\n\t\t  Live1:\n\t\t\t  XMT2 JJJJJJJJJJJJJJJJJ 4 ThrustThingZ(0, 20, 0, 1)\n\t\t\t  Goto Fall\n\n\t\t  Live2:\n\t\t\t  XMT2 JJJJJJJJJJJJJJJJJJJJJJJJJJJ 4 ThrustThingZ(0, 20, 0, 1)\n\t\t\t  Goto Fall\n\n\t\t  Live3:\n\t\t\t  XMT2 JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ 4 ThrustThingZ(0, 20, 0, 1)\n\t\t\t  Goto Fall\n\n\t\t Fall:\n\t\t\t  XMT2 JJJJKKKLLM 2\n\t\t\t  TNT1 A 0 A_SpawnItemEx(\"XDeath3NoStick\", 0, 0, 0, 0, 0, -1)\n\t\t\t  XMT2 MMN 2\n\t\t\t  stop\n\t\t Splash:\n\t\t\t  BLOD A 0\n\t\t\t  stop\n\t\t}\n}\n\n//piece of meat that got stuck on the ceiling/wall and now is falling\nACTOR XDeath3NoStick: XDeath2NoStick\n{\n\n    States\n    {\n    Spawn:\n\t    TNT1 A 0 A_JumpIf(waterlevel > 1, \"Splash\")\n\t\tTNT1 A 0 A_CheckFloor(\"Death\")\n        XMT2 O 3\n        Loop\n    Death:\n        TNT1 AAAAAAA 0 A_CustomMissile (\"BD_FlyingBloodTrail\", 0, 0, random (0, 360), 2, random (20, 70))\n        XMT2 I 1\n\t\tTNT1 A 0 A_QueueCorpse\n\t\tXMT2 I 3\n\t\tTNT1 A 0 A_SpawnItem(\"BDLargeBloodSpot\",0,0,0,1)\n\t\tXMT2 I -1\n\t\tStop\n    }\n}\n\n//Big piece of ribcage\nACTOR XDeath4: XDeath2\n{\n    DeathSound \"misc/xdeath3\"\n\tGravity 1.0\n\twallbouncefactor 0.2\n    States\n    {\n    Spawn:\n\t    TNT1 A 0 A_JumpIf(waterlevel > 1, \"Splash\")\n        XDB6 AAAAAA 3 A_CustomMissile (\"BD_FlyingBloodTrail\", 0, 0, random (0, 360), 2, random (0, 360))\n        Loop\n    Death:\n\t\tXDB6 B 1\n\t\tTNT1 A 0 A_QueueCorpse\n\t\tXDB6 B -1\n\t\tStop\n    }\n}\n\n//Big piece of ribcage 2\nACTOR XDeath5: XDeath2\n{\n    DeathSound \"misc/xdeath3\"\n\tGravity 0.6\n\tSpeed 4\n    States\n    {\n    Spawn:\n\t    TNT1 A 0 A_JumpIf(waterlevel > 1, \"Splash\")\n        XME5 A 3 A_CustomMissile (\"BD_FlyingBloodTrail\", 0, 0, random (0, 360), 2, random (0, 360))\n        Loop\n    Death:\n        TNT1 AAAAAAA 0 A_CustomMissile (\"BD_FlyingBloodTrail\", 0, 0, random (0, 180), 2, random (0, 180))\n        TNT1 A 0 A_SpawnItemEx (\"BDLargeBloodSpot\", 0, 0, 1)\n\t\tXME5 B 1\n\t\tTNT1 A 0 A_QueueCorpse\n\t\tXME5 B -1\n\t\tTNT1 A 0\n        XME5 B 3\n    Living:\n\t\tXME5 B 800//duration\n\t\tTNT1 A 0 A_JumpIfInventory(\"lowgraphicsmode\", 1, \"Vanish\")\n        Loop\n\tVanish:\n\t    TNT1 A 1\n\t    Stop\n\n    }\n}\n//Big piece of ribcage 3\nACTOR XDeath6: XDeath2\n{\n    DeathSound \"misc/xdeath3\"\n\tGravity 0.6\n\tSpeed 4\n    States\n    {\n    Spawn:\n\t    TNT1 A 0 A_JumpIf(waterlevel > 1, \"Splash\")\n        XME5 C 3 A_CustomMissile (\"BD_FlyingBloodTrail\", 0, 0, random (0, 360), 2, random (0, 360))\n        Loop\n    Death:\n        TNT1 AAAAAAA 0 A_CustomMissile (\"BD_FlyingBloodTrail\", 0, 0, random (0, 180), 2, random (0, 180))\n        TNT1 A 0 A_SpawnItemEx (\"BDLargeBloodSpot\", 0, 0, 1)\n\t\tXME5 D 1\n\t\tTNT1 A 0 A_QueueCorpse\n\t\tXME5 D -1\n\t\tTNT1 A 0\n        XME5 D 3\n    Living:\n\t\tXME5 D 800//duration\n\t\tTNT1 A 0 A_JumpIfInventory(\"lowgraphicsmode\", 1, \"Vanish\")\n        Loop\n\tVanish:\n\t    TNT1 A 1\n\t    Stop\n\n    }\n}\n\nACTOR XDeath5Big: XDeath5\n{\n\tXScale -1.5\n\tYScale 1.5\n\tSpeed 6\n}\n\nACTOR XDeath6Big: XDeath6\n{\n\tXScale -1.5\n\tYScale 1.5\n\tSpeed 6\n}\n\n//Generic organ\nACTOR XDeathOrgan1: XDeath2\n{\n\tScale 0.9\n\tSpeed 4\n    States\n    {\n    Spawn:\n\t    XME8 A 4 A_CustomMissile (\"BD_FlyingBloodTrail\", 0, 0, random (0, 360), 2, random (0, 360))\n        Loop\n    Death:\n        XME8 A 1\n\t\tTNT1 A 0 A_QueueCorpse\n\t\tXME8 A -1\n        Stop\n    }\n}\n\nACTOR XDeathOrgan1b: XDeathOrgan1\n{\n\tXScale -0.7\n\tYScale 0.5\n}\n\nACTOR XDeathOrgan2: XDeathOrgan1\n{\nStates\n{\n    Spawn:\n\t    XME8 B 4 A_CustomMissile (\"BD_FlyingBloodTrail\", 0, 0, random (0, 360), 2, random (0, 360))\n        Loop\n    Death:\n        XME8 B 1\n\t\tTNT1 A 0 A_QueueCorpse\n\t\tXME8 B -1\n        Stop\n    }\n}\n\nACTOR GoreSound: XDeath2\n{\n    SeeSound \"misc/xdeath4\"\n    DeathSound \"none\"\n    Decal \"None\"\n    States\n    {\n    Spawn:\n\t    TNT1 A 0 A_JumpIf(waterlevel > 1, \"Splash\")\n        TNT1 A 2\n        Loop\n    Death:\n        TNT1 BCDE 1\n        Stop\n        Splash:\n        TNT1 A 1\n        Stop\n    }\n}\n\nACTOR Guts\n{\n    Radius 8\n    Height 12\n    Speed 4\n\tMass 1\n\tBounceFactor 0.4\n\tAlpha 0.9\n\t+BOUNCEONWALLS\n\t+BOUNCEONCEILINGS\n    +NOBLOCKMAP\n\t+MISSILE\n    +NOTELEPORT\n    +MOVEWITHSECTOR\n    +CLIENTSIDEONLY\n    +FORCEXYBILLBOARD\n\t-EXPLODEONWATER\n\tDecal BrutalBloodSplat\n\tGravity 0.4\n    States\n    {\n    Spawn:\n\t\tGUTS A 1\n\t\tTNT1 A 0 A_Jump(255, \"Spawn1\", \"Spawn2\", \"Spawn3\", \"Spawn4\")\n\tSpawn1:\n\t\tTNT1 A 0\n\t\tTNT1 A 0 A_SetScale(0.9, 0.8)\n\t\tGoto Live\n\n\tSpawn2:\n\t\tTNT1 A 0\n\t\tTNT1 A 0 A_SetScale(-1.0, 1.0)\n\t\tGoto Live\n\n\tSpawn3:\n\t\tTNT1 A 0\n\t\tTNT1 A 0 A_SetScale(1.2, 1.0)\n\t\tGoto Live\n\n\tSpawn4:\n\t\tTNT1 A 0\n\t\tTNT1 A 0 A_SetScale(-0.6, 1.0)\n\t\tGoto Live\n\n\tLive:\n\t\tGUTS ABCDEFGH 3 A_JumpIf(waterlevel > 1, \"Water\")\n        GUTS H -1\n\t\tLoop\n\n    Death:\n\t\tTNT1 A 0 A_JumpIf(waterlevel > 1, \"Water\")\n        TNT1 A 0\n\t    Goto Rest\n\n\tRest:\n\t\tTNT1 A 0\n\t\tTNT1 A 0 A_QueueCorpse\n\t\tTNT1 A 0 A_Jump(255, \"Rest1\", \"Rest2\")\n\n\tRest1:\n        GUTS K 1\n        GUTS K -1\n\t\tStop\n\n\tRest2:\n\t\tGUTS L 1\n        GUTS L -1\n\t\tStop\n\n\tDoNothing:\n\t\tTNT1 A 0\n\t\tStop\n\n\tWater:\n\t\tGUTS GHIH 10\n\t\tLoop\n    }\n}\n\nACTOR Guts2: Guts\n{\n    Speed 3\n}\n\nACTOR SmallBrainPiece: Xdeath2\n{\n    Radius 2\n    Height 2\n\tSpeed 10\n\tScale 0.6\n\tDecal None\n    States\n    {\n\tSpawn:\n\t\tTNT1 A 0\n\t\tTNT1 A 0 A_Jump(255, \"Spawn1\", \"Spawn2\", \"Spawn3\", \"Spawn4\", \"Fly\")\n\tSpawn1:\n\t\tTNT1 A 0\n\t\tTNT1 A 0 A_SetScale(0.2, 0.2)\n\t\tGoto Fly\n\tSpawn2:\n\t\tTNT1 A 0\n\t\tTNT1 A 0 A_SetScale(-0.5, 0.5)\n\t\tGoto Fly\n\tSpawn3:\n\t\tTNT1 A 0\n\t\tTNT1 A 0 A_SetScale(-0.3, 0.3)\n\t\tGoto Fly\n\tSpawn4:\n\t\tTNT1 A 0\n\t\tTNT1 A 0 A_SetScale(-0.2, 0.2)\n\t\tGoto Fly\n\tFly:\n\t\tXDB5 ABCDEFGH 2\n\t\tLoop\n\tDeath:\n\t\tTNT1 A 0\n\t\tTNT1 A 0 A_CheckFloor(\"Rest\")\n\t\tTNT1 A 0 A_CheckCeiling(\"SpawnCeil\")\n\t\tTNT1 A 0 A_SpawnItemEx(\"SmearingBrain\", 0, 0, 0, 0, 0, 0, 0, SXF_TRANSFERSCALE)\n\t\tStop\n\tSpawnCeil:\n\t\tTNT1 A 0\n\t\tTNT1 A 0 A_SpawnItemEx(\"SmallBrainPieceCeil\", 0, 0, 0, 0, 0, 0, 0, SXF_TRANSFERSCALE)\n\t\tStop\n\n\tRest:\n\t\tTNT1 A 0\n\t\tTNT1 A 0 A_QueueCorpse\n\t\tXDT5 O 1\n\t\tXDT5 O -1\n\t\tStop\n\n\tDoNothing:\n\t\tTNT1 A 0\n\t\tStop\n    }\n}\n\nACTOR SmallBrainPieceFast: SmallBrainPiece {  Speed 14 }\n\nActor SmallBrainPieceCeil: CeilXDeath2\n{\nScale 0.6\n\tStates\n\t{\n\t\tSpawn:\n\t\t\tTNT1 A 0\n\t\t\tTNT1 A 0 A_JUmp (255, \"Live1\", \"Live2\", \"Live3\")\n\t\t\tGoto Live1\n\n\t\t  Live1:\n\t\t\t  XDB5 JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ 4 ThrustThingZ(0, 20, 0, 1)\n\t\t\t  Goto Fall\n\n\t\t  Live2:\n\t\t\t  XDB5 JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ 4 ThrustThingZ(0, 20, 0, 1)\n\t\t\t  Goto Fall\n\n\t\t  Live3:\n\t\t\t  XDB5 JJJJJJJJJJJJJJJ 4 ThrustThingZ(0, 20, 0, 1)\n\t\t\t  Goto Fall\n\n\t\t Fall:\n\t\t\t  TNT1 A 0 A_SpawnItemEx(\"SmallBrainPieceFalling\", 0, 0, 0, 0, 0, -2, SXF_TRANSFERSCALE)\n\t\t\t  stop\n\t\t Splash:\n\t\t\t  BLOD A 0\n\t\t\t  stop\n\t\t\t  }\n}\n\nACTOR SmallBrainPieceFalling: SmallBrainPiece\n{\n    States\n    {\n\tSpawn:\n\t\tXDB5 P 1\n\t\tXDB5 P -1\n\t\tLoop\n\tDeath:\n\t\tTNT1 A 0\n\t\tTNT1 A 0 A_QueueCorpse\n\t\tXDB5 O 1\n\t\tXDB5 O -1\n\t\tStop\n    }\n}\n\nACTOR SmearingBrain\n{\n    Radius 2\n    Height 2\n\tSpeed 10\n\tMass 1\n\tScale 0.6\n    +NOBLOCKMAP\n    +NOTELEPORT\n\t+THRUGHOST\n\t+CLIENTSIDEONLY\n    +DONTSPLASH\n    +MOVEWITHSECTOR\n\t-DONTSPLASH\n\t+FORCEXYBILLBOARD\n\t+QUARTERGRAVITY\n    States\n    {\n\tSpawn:\n\tTNT1 A 0\n\tTNT1 A 0 A_ChangeFlag(\"NOGRAVITY\", 1)\n\tTNT1 A 0 A_Jump(255, \"Spawn1\", \"Spawn2\", \"Spawn3\", \"Spawn4\")\n\tGoto Spawn1\n\n\tSpawn1:\n\tXDB5 PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP 2 A_CheckFloor(\"Rest\")\n\tGoto Death\n\n\tSpawn2:\n\tXDB5 PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP 2 A_CheckFloor(\"Rest\")\n\tGoto Death\n\n\tSpawn3:\n\tXDB5 PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP 2 A_CheckFloor(\"Rest\")\n\tGoto Death\n\n\tSpawn4:\n\tXDB5 PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP 2 A_CheckFloor(\"Rest\")\n\tGoto Death\n\n\tDeath:\n\tRest:\n\t    TNT1 A 0\n\t\tTNT1 A 0 A_QueueCorpse\n\t    TNT1 A 0 A_ChangeFlag(\"QUARTERGRAVITY\", 0)\n\t\tXDB5 P 2 ThrustThingZ(0,-2,0,1)\n\t\tTNT1 A 0 A_CheckFloor(\"Sleep\")\n\t\tXDB5 P 2 ThrustThingZ(0,-2,0,1)\n\t\tTNT1 A 0 A_CheckFloor(\"Sleep\")\n\t\tXDB5 P 2 ThrustThingZ(0,-2,0,1)\n\t\tTNT1 A 0 A_CheckFloor(\"Sleep\")\n\t\tXDB5 P 2 ThrustThingZ(0,-2,0,1)\n\t\tTNT1 A 0 A_CheckFloor(\"Sleep\")\n\t\tXDB5 P 2 ThrustThingZ(0,-2,0,1)\n\t\tTNT1 A 0 A_CheckFloor(\"Sleep\")\n\t\tXDB5 P 2 ThrustThingZ(0,-2,0,1)\n\t\tTNT1 A 0 A_CheckFloor(\"Sleep\")\n\t\tXDB5 P 2 ThrustThingZ(0,-2,0,1)\n\t\tTNT1 A 0 A_CheckFloor(\"Sleep\")\n\t\tXDB5 P 2 ThrustThingZ(0,-2,0,1)\n\t\tTNT1 A 0 A_CheckFloor(\"Sleep\")\n\t\tXDB5 P 2 ThrustThingZ(0,-2,0,1)\n\t\tTNT1 A 0 A_CheckFloor(\"Sleep\")\n\t\tXDB5 P 2 ThrustThingZ(0,-2,0,1)\n\t\tTNT1 A 0 A_CheckFloor(\"Sleep\")\n\t\tXDB5 P 2 ThrustThingZ(0,-2,0,1)\n\t\tLoop\n\tSleep:\n        XDB5 K 1\n\t\tXDB5 K -1\n        Stop\n\tDoNothing:\n\tTNT1 A 0\n\tStop\n    }\n}\n\nACTOR GibEyeball\n{\n    Radius 2\n    Height 2\n\tSpeed 6\n\tMass 1\n    Decal BrutalBloodSplat\n    +CLIENTSIDEONLY\n\tBounceFactor 0.5\n\t+DOOMBOUNCE\n\t+MISSILE\n    +NOBLOCKMAP\n    +NOTELEPORT\n    +DONTSPLASH\n    +MOVEWITHSECTOR\n\t+FLOORCLIP\n\tScale 0.8\n    States\n    {\n    Spawn:\n\t    TNT1 A 0 A_JumpIf(waterlevel > 1, \"Death\")\n\t\tBRIB EFGH 4\n\t\tLoop\n\tDeath:\n\t    BRIB E 1\n\t\tTNT1 A 0 A_QueueCorpse\n\t\tTNT1 A 0\n\t    Goto Rest\n\n\tRest:\n\t\tTNT1 A 0\n\t\tTNT1 A 0 A_Jump(255, \"Rest1\", \"Rest2\", \"Rest3\", \"Rest4\")\n\tRest1:\n        BRIB E 800\n\t\tTNT1 A 0 A_JumpIfInventory(\"lowgraphicsmode\", 1, \"DoNothing\")\n        Loop\n\n\tRest2:\n\t\tBRIB F 800\n\t\tTNT1 A 0 A_JumpIfInventory(\"lowgraphicsmode\", 1, \"DoNothing\")\n        Loop\n\tRest3:\n        BRIB G 800\n\t\tTNT1 A 0 A_JumpIfInventory(\"lowgraphicsmode\", 1, \"DoNothing\")\n        Loop\n\n\tRest4:\n\t\tBRIB H 800\n\t\tTNT1 A 0 A_JumpIfInventory(\"lowgraphicsmode\", 1, \"DoNothing\")\n        Loop\n\tDoNothing:\n\tTNT1 A 0\n\tStop\n    }\n}"
      },
      {
        "source": "pk3",
        "name": "modeldef.blood.txt",
        "contents": "//Unfortunately, Zandronum still doesn't supports flat sprites, so to ensure that the mode can work\n//both on GZDoom and Zandronum, it's still necessary to use 3D models.\n\nModel GiantBloodSpot      // Name of actor in DECORATE\n{\n   Path \"models/bloodspot\"    // Path to model in PK3\n   Model 0 \"bloodspot.md3\"    // Model index, model file\n   Skin 0 \"SPLTBLD.png\"     // Model index, texture (can be in any format supported by GZDoom)\n   Scale 90.0 90.0 1.0            // Scale values\n   ZOffset 0.6\n   FrameIndex BPDL A 0 0         // The sprite lump, sprite frame, model index, frame number\n}\n\nModel BigBloodSpot      // Name of actor in DECORATE\n{\n   Path \"models/bloodspot\"    // Path to model in PK3\n   Model 0 \"bloodspot.md3\"    // Model index, model file\n   Skin 0 \"SPLTBLD.png\"     // Model index, texture (can be in any format supported by GZDoom)\n   Scale 70.0 70.0 1.0            // Scale values\n   ZOffset 0.6\n   FrameIndex BPDL A 0 0         // The sprite lump, sprite frame, model index, frame number\n}\n\n//Frame A\nModel Bolognese_BloodSpot      // Name of actor in DECORATE\n{\n   Path \"models/bloodspot\"    // Path to model in PK3\n   Model 0 \"bloodspot.md3\"    // Model index, model file\n   Skin 0 \"bloodspothd.png\"     // Model index, texture (can be in any format supported by GZDoom)\n   Scale 40.0 40.0 0.1            // Scale values\n   FrameIndex BPDL A 0 0         // The sprite lump, sprite frame, model index, frame number\n   ZOffset 2.5\n}\n\n//Frame B\nModel Bolognese_BloodSpot      // Name of actor in DECORATE\n{\n   Path \"models/bloodspot\"    // Path to model in PK3\n   Model 0 \"bloodspot.md3\"    // Model index, model file\n   Skin 0 \"bloodspothd2.png\"     // Model index, texture (can be in any format supported by GZDoom)\n   Scale 40.0 40.0 0.1            // Scale values\n   FrameIndex BPDL B 0 0         // The sprite lump, sprite frame, model index, frame number\n   ZOffset 2.25\n}\n\n//Frame C\nModel Bolognese_BloodSpot      // Name of actor in DECORATE\n{\n   Path \"models/bloodspot\"    // Path to model in PK3\n   Model 0 \"bloodspot.md3\"    // Model index, model file\n   Skin 0 \"bloodspothd3.png\"     // Model index, texture (can be in any format supported by GZDoom)\n   Scale 40.0 40.0 0.1            // Scale values\n   FrameIndex BPDL C 0 0         // The sprite lump, sprite frame, model index, frame number\n   ZOffset 2.0\n}\n\n//Frame A\nModel BDLargeBloodSpot      // Name of actor in DECORATE\n{\n   Path \"models/bloodspot\"    // Path to model in PK3\n   Model 0 \"bloodspot.md3\"    // Model index, model file\n   Skin 0 \"bloodspotbig1.png\"     // Model index, texture (can be in any format supported by GZDoom)\n   Scale 60.0 60.0 0.1            // Scale values\n   FrameIndex BPDL A 0 0         // The sprite lump, sprite frame, model index, frame number\n   ZOffset 2.5\n}\n\n//Frame B\nModel BDLargeBloodSpot      // Name of actor in DECORATE\n{\n   Path \"models/bloodspot\"    // Path to model in PK3\n   Model 0 \"bloodspot.md3\"    // Model index, model file\n   Skin 0 \"bloodspotbig2.png\"     // Model index, texture (can be in any format supported by GZDoom)\n   Scale 60.0 60.0 0.1            // Scale values\n   FrameIndex BPDL B 0 0         // The sprite lump, sprite frame, model index, frame number\n   ZOffset 2.25\n}\n\n//Frame C\nModel BDLargeBloodSpot      // Name of actor in DECORATE\n{\n   Path \"models/bloodspot\"    // Path to model in PK3\n   Model 0 \"bloodspot.md3\"    // Model index, model file\n   Skin 0 \"bloodspotbig3.png\"     // Model index, texture (can be in any format supported by GZDoom)\n   Scale 60.0 60.0 0.1            // Scale values\n   FrameIndex BPDL C 0 0         // The sprite lump, sprite frame, model index, frame number\n   ZOffset 2.0\n}\n\nModel MinuscleBloodSpot      // Name of actor in DECORATE\n{\n   Path \"models/bloodspot\"    // Path to model in PK3\n   Model 0 \"bloodspot.md3\"    // Model index, model file\n   Skin 0 \"bloodspothd.png\"     // Model index, texture (can be in any format supported by GZDoom)\n   Scale 30.0 30.0 30.0            // Scale values\n   FrameIndex BPDL A 0 0         // The sprite lump, sprite frame, model index, frame number\n   ZOffset 1.4\n}\n\nModel MinuscleBloodSpot      // Name of actor in DECORATE\n{\n   Path \"models/bloodspot\"    // Path to model in PK3\n   Model 0 \"bloodspot.md3\"    // Model index, model file\n   Skin 0 \"bloodpool.png\"     // Model index, texture (can be in any format supported by GZDoom)\n   Scale 40.0 40.0 30.0            // Scale values\n   ZOffset 1.5\n   FrameIndex BPDL B 0 0         // The sprite lump, sprite frame, model index, frame number\n}\n\nModel MinuscleBloodSpot      // Name of actor in DECORATE\n{\n   Path \"models/bloodspot\"    // Path to model in PK3\n   Model 0 \"bloodspot.md3\"    // Model index, model file\n   Skin 0 \"bloodpool.png\"     // Model index, texture (can be in any format supported by GZDoom)\n   Scale 35.0 35.0 30.0            // Scale values\n   ZOffset 1.6\n   FrameIndex BPDL C 0 0         // The sprite lump, sprite frame, model index, frame number\n}\n\nModel MinuscleBloodSpot      // Name of actor in DECORATE\n{\n   Path \"models/bloodspot\"    // Path to model in PK3\n   Model 0 \"bloodspot.md3\"    // Model index, model file\n   Skin 0 \"bloodpool.png\"     // Model index, texture (can be in any format supported by GZDoom)\n   Scale 41.0 41.0 30.0            // Scale values\n   ZOffset 1.3\n   FrameIndex BPDL D 0 0         // The sprite lump, sprite frame, model index, frame number\n}\n\nModel MinuscleBloodSpot      // Name of actor in DECORATE\n{\n   Path \"models/bloodspot\"    // Path to model in PK3\n   Model 0 \"bloodspot.md3\"    // Model index, model file\n   Skin 0 \"bloodpool.png\"     // Model index, texture (can be in any format supported by GZDoom)\n   Scale 30.0 30.0 30.0            // Scale values\n   ZOffset 1.7\n   FrameIndex BPDL C 0 0         // The sprite lump, sprite frame, model index, frame number\n}\n\nModel MinuscleBloodSpot      // Name of actor in DECORATE\n{\n   Path \"models/bloodspot\"    // Path to model in PK3\n   Model 0 \"bloodspot.md3\"    // Model index, model file\n   Skin 0 \"bloodpool.png\"     // Model index, texture (can be in any format supported by GZDoom)\n   Scale 30.0 30.0 30.0            // Scale values\n   ZOffset 1.7\n   FrameIndex BPDL D 0 0         // The sprite lump, sprite frame, model index, frame number\n}\n\nModel Waterbloodspot      // Name of actor in DECORATE\n{\n   Path \"models/bloodspot\"    // Path to model in PK3\n   Model 0 \"bloodspot.md3\"    // Model index, model file\n   Skin 0 \"BLODWAT.png\"     // Model index, texture (can be in any format supported by GZDoom)\n   Scale 40.0 40.0 0.1            // Scale values\n   ZOffset 1.0\n   ROTATING\n   Rotation-Speed 1\n\n   FrameIndex BPDL E 0 0         // The sprite lump, sprite frame, model index, frame number\n}\n\nModel BD_FlyingBlood      // Name of actor in DECORATE\n{\n   Path \"models/bloodspot\"    // Path to model in PK3\n   Model 0 \"bloodspot.md3\"    // Model index, model file\n   Skin 0 \"bloodpool.png\"     // Model index, texture (can be in any format supported by GZDoom)\n   Scale 40.0 40.0 50.0            // Scale values\n   ZOffset 1.6\n   FrameIndex BPDL B 0 0         // The sprite lump, sprite frame, model index, frame number\n}\n\nModel BD_FlyingBlood      // Name of actor in DECORATE\n{\n   Path \"models/bloodspot\"    // Path to model in PK3\n   Model 0 \"bloodspot.md3\"    // Model index, model file\n   Skin 0 \"bloodpool2.png\"     // Model index, texture (can be in any format supported by GZDoom)\n   Scale 46.0 46.0 46.0            // Scale values\n   ZOffset 1.6\n   FrameIndex BPDL A 0 0         // The sprite lump, sprite frame, model index, frame number\n}\n\nModel CeilBloodSpot      // Name of actor in DECORATE\n{\n   Path \"models/bloodspot\"    // Path to model in PK3\n   Model 0 \"bloodceil.md3\"    // Model index, model file\n   Skin 0 \"bloodspothd.png\"     // Model index, texture (can be in any format supported by GZDoom)\n   Scale 40.0 40.0 -60.0            // Scale values\n   ZOffset -0.1\n   FrameIndex BPDL A 0 0         // The sprite lump, sprite frame, model index, frame number\n}\n\nModel CeilBloodSpotLarge      // Name of actor in DECORATE\n{\n   Path \"models/bloodspot\"    // Path to model in PK3\n   Model 0 \"bloodceil.md3\"    // Model index, model file\n   Skin 0 \"bigbloodpool.png\"     // Model index, texture (can be in any format supported by GZDoom)\n   Scale 40.0 40.0 1.0            // Scale values\n   ZOffset -0.1\n   FrameIndex BPDL a 0 0         // The sprite lump, sprite frame, model index, frame number\n}\n\nModel MediumBloodSpot2      // Name of actor in DECORATE\n{\n   Path \"models/bloodspot\"    // Path to model in PK3\n   Model 0 \"bloodspot.md3\"    // Model index, model file\n   Skin 0 \"bigbloodpool.png\"     // Model index, texture (can be in any format supported by GZDoom)\n   Scale 80.0 80.0 80.0            // Scale values\n   ZOffset 1.6\n   FrameIndex BPDL A 0 0         // The sprite lump, sprite frame, model index, frame number\n}\n\nModel MediumBloodSpot      // Name of actor in DECORATE\n{\n   Path \"models/bloodspot\"    // Path to model in PK3\n   Model 0 \"bloodspot.md3\"    // Model index, model file\n   Skin 0 \"bigbloodpool.png\"     // Model index, texture (can be in any format supported by GZDoom)\n   Scale 80.0 80.0 80.0            // Scale values\n   ZOffset 1.6\n   FrameIndex BPDL A 0 0         // The sprite lump, sprite frame, model index, frame number\n}\n\nModel SplatteredSmall     // Name of actor in DECORATE\n{\n   Path \"models/bloodspot\"    // Path to model in PK3\n   Model 0 \"bloodspot.md3\"    // Model index, model file\n   Skin 0 \"bigbloodpool.png\"     // Model index, texture (can be in any format supported by GZDoom)\n   Scale 60.0 60.0 60.0            // Scale values\n   ZOffset 1.6\n   FrameIndex BPDL A 0 0         // The sprite lump, sprite frame, model index, frame number\n}\n\nModel SplatteredLarge     // Name of actor in DECORATE\n{\n   Path \"models/bloodspot\"    // Path to model in PK3\n   Model 0 \"bloodspot.md3\"    // Model index, model file\n   Skin 0 \"SPLTBLD.png\"     // Model index, texture (can be in any format supported by GZDoom)\n   Scale 90.0 90.0 1.0            // Scale values\n   ZOffset 0.6\n   FrameIndex BPDL A 0 0         // The sprite lump, sprite frame, model index, frame number\n}\n\nModel GrowingBloodPool     // Name of actor in DECORATE\n{\n   Path \"models/bloodspot\"    // Path to model in PK3\n   Model 0 \"bloodspot.md3\"    // Model index, model file\n   Skin 0 \"bloodpool2.png\"     // Model index, texture (can be in any format supported by GZDoom)\n   Scale 20.0 20.0 1.0            // Scale values\n   ZOffset 0.65\n   FrameIndex TNT5 A 0 0         // The sprite lump, sprite frame, model index, frame number\n}\n\nModel Guts      // Name of actor in DECORATE\n{\n   Path \"models/bloodspot\"    // Path to model in PK3\n   Model 0 \"bloodspot.md3\"    // Model index, model file\n   Skin 0 \"guts1.png\"     // Model index, texture (can be in any format supported by GZDoom)\n   Scale 14.0 14.0 1.0            // Scale values\n   ZOffset 1.6\n   FrameIndex GUTS K 0 0         // The sprite lump, sprite frame, model index, frame number\n}\n\nModel Guts      // Name of actor in DECORATE\n{\n   Path \"models/bloodspot\"    // Path to model in PK3\n   Model 0 \"bloodspot.md3\"    // Model index, model file\n   Skin 0 \"guts2.png\"     // Model index, texture (can be in any format supported by GZDoom)\n   Scale 14.0 14.0 1.0            // Scale values\n   ZOffset 1.4\n   FrameIndex GUTS L 0 0         // The sprite lump, sprite frame, model index, frame number\n}"
      },
      {
        "source": "pk3",
        "name": "Serving.txt",
        "contents": "//Gore Groups (spawns gibs and blood when enemies explodes)\n\nACTOR MeatDeath\n{\n    Radius 1\n    Height 56\n    Scale 0.8\n\tSpeed 0\n\tMass 1\n\tBounceFactor 0.5\n\t+DOOMBOUNCE\n\t+MISSILE\n    +NOBLOCKMAP\n    +NOTELEPORT\n    +MOVEWITHSECTOR\n    +NOGRAVITY\n    +NOCLIP\n    +DONTSPLASH\n    States\n    {\n    Spawn:\n\t\t TNT1 A 0\n\t\t TNT1 A 0 A_PlaySound(\"SLOP\", 1)\n         TNT1 AAA 0 A_CustomMissile (\"CeilBloodLauncherLong\", 0, 0, random (0, 360), 2, random (50, 130))\n\t\t TNT1 AAAAAAAAAAAA 0 A_CustomMissile (\"SuperWallRedBlood\", 40, 0, random (0, 360), 2, random (0, 15))\n\t\t TNT1 A 0 A_CustomMissile (\"XDeath2\", 42, 0, random (0, 360), 2, random (30, 90))\n\t\t TNT1 A 0 A_CustomMissile (\"XDeath3\", 42, 0, random (0, 360), 2, random (30, 90))\n\t\t TNT1 A 0 A_CustomMissile (\"XDeath4\", 42, 0, random (0, 360), 2, random (30, 90))\n\t\t TNT1 AA 0 A_CustomMissile (\"SmallBrainPiece\", 42, 0, random (0, 360), 2, random (30, 60))\n\t\t TNT1 A 0 A_CustomMissile (\"SmallBrainPieceFast\", 42, 0, random (0, 360), 2, random (30, 60))\n\t\t TNT1 AA 0 A_CustomMissile (\"XDeath2b\", 42, 0, random (0, 360), 2, random (30, 90))\n\t\t TNT1 AA 0 A_CustomMissile (\"XDeath3b\", 42, 0, random (0, 360), 2, random (30, 90))\n\t\t TNT1 A 0 A_CustomMissile (\"XDeath5\", 42, 0, random (0, 360), 2, random (30, 90))\n\t\t TNT1 AA 0 A_CustomMissile (\"XDeath6\", 42, 0, random (0, 360), 2, random (30, 90))\n\t\t TNT1 AAA 0 A_CustomMissile (\"Guts\", 32, 0, random (0, 360), 2, random (20, 30))\n\t\t TNT1 A 0 A_CustomMissile (\"BloodMistExtraBig\", 10, 0, random (0, 360), 2, random (40, 60))\n\t\t TNT1 A 0 A_CustomMissile (\"BloodMistExtraBig\", 30, 0, random (0, 360), 2, random (40, 60))\n\t\t TNT1 AA 0 A_CustomMissile (\"BloodMistExtraBig\", 40, 0, random (0, 360), 2, random (40, 90))\n\t\t TNT1 AAAAA 0 A_CustomMissile (\"BloodmistSpray\", 40, 0, random (0, 360), 2, random (40, 90))\n\t\t TNT1 AA 0 A_CustomMissile (\"SuperGoreMist\", 32, 0, random (0, 360), 2, random (20, 60))\n\t\t TNT1 A 10\n\tDeath:\n\t    TNT1 A 0\n        Stop\n    }\n}\n\n//A bit less gibs for the player\nACTOR PlayerMeatDeath: MeatDeath\n{\n    States\n    {\n    Spawn:\n\t\t TNT1 A 0\n\t\t TNT1 A 0 A_PlaySound(\"SLOP\", 1)\n         TNT1 AA 0 A_CustomMissile (\"CeilBloodLauncherLong\", 0, 0, random (0, 360), 2, random (50, 130))\n\t\t TNT1 AAAAAAAA 0 A_CustomMissile (\"SuperWallRedBlood\", 40, 0, random (0, 360), 2, random (0, 15))\n\t\t TNT1 A 0 A_CustomMissile (\"XDeath2\", 42, 0, random (0, 360), 2, random (30, 90))\n\t\t TNT1 A 0 A_CustomMissile (\"XDeath3\", 42, 0, random (0, 360), 2, random (30, 90))\n\t\t TNT1 A 0 A_CustomMissile (\"XDeath4\", 42, 0, random (0, 360), 2, random (30, 90))\n\t\t TNT1 A 0 A_CustomMissile (\"GibEyeball\", 42, 0, random (0, 360), 2, random (40, 60))\n\t\t TNT1 AA 0 A_CustomMissile (\"SmallBrainPiece\", 42, 0, random (0, 360), 2, random (30, 60))\n\t\t TNT1 A 0 A_CustomMissile (\"SmallBrainPieceFast\", 42, 0, random (0, 360), 2, random (30, 60))\n\t\t TNT1 AA 0 A_CustomMissile (\"XDeath2b\", 42, 0, random (0, 360), 2, random (30, 90))\n\t\t TNT1 AA 0 A_CustomMissile (\"XDeath3b\", 42, 0, random (0, 360), 2, random (30, 90))\n\t\tTNT1 A 0 A_CustomMissile (\"XDeathOrgan1\", 24, 0, random (0, 360), 2, random (30, 90))\n\t\t TNT1 A 0 A_CustomMissile (\"XDeathOrgan2\", 24, 0, random (0, 360), 2, random (30, 90))\n\t\t TNT1 AAA 0 A_CustomMissile (\"Guts\", 32, 0, random (0, 360), 2, random (20, 30))\n\t\t TNT1 A 0 A_CustomMissile (\"BloodMistExtraBig\", 10, 0, random (0, 360), 2, random (40, 60))\n\t\t TNT1 A 0 A_CustomMissile (\"BloodMistExtraBig\", 30, 0, random (0, 360), 2, random (40, 60))\n\t\t TNT1 AA 0 A_CustomMissile (\"BloodMistExtraBig\", 40, 0, random (0, 360), 2, random (40, 90))\n\t\t TNT1 AAAAA 0 A_CustomMissile (\"BloodmistSpray\", 40, 0, random (0, 360), 2, random (40, 90))\n\t\t TNT1 A 0 A_SpawnItem (\"BigBloodSpot\")\n\t\t TNT1 AA 0 A_CustomMissile (\"SuperGoreMist\", 32, 0, random (0, 360), 2, random (20, 60))\n\t\t TNT1 A 10\n\tDeath:\n\t    TNT1 A 0\n        Stop\n    }\n}\n\n//Very large enemies, like a cyberdemon\nActor MeatDeathGiant: MeatDeath\n{\n    States\n    {\n    Spawn:\n         TNT1 AAAAA 0 A_CustomMissile (\"CeilBloodLauncherLong\", 0, 0, random (0, 360), 2, random (50, 130))\n         TNT1 A 0 A_CustomMissile (\"XDeath2\", 82, 0, random (0, 360), 2, random (30, 90))\n\t\t TNT1 A 0 A_CustomMissile (\"XDeath3\", 82, 0, random (0, 360), 2, random (30, 90))\n\t\t TNT1 A 0 A_CustomMissile (\"XDeath4\", 82, 0, random (0, 360), 2, random (30, 90))\n\t\t TNT1 AA 0 A_CustomMissile (\"XDeath2b\", 82, 0, random (0, 360), 2, random (30, 90))\n\t\t TNT1 AA 0 A_CustomMissile (\"XDeath3b\", 82, 0, random (0, 360), 2, random (30, 90))\n\t\t TNT1 A 0 A_CustomMissile (\"XDeath5Big\", 82, 0, random (0, 360), 2, random (30, 90))\n\t\t TNT1 A 0 A_CustomMissile (\"XDeath6Big\", 82, 0, random (0, 360), 2, random (30, 90))\n\t\t TNT1 AAAAAAAA 0 A_CustomMissile (\"BloodMistExtraBig\", 80, 0, random (0, 360), 2, random (20, 90))\n\t\t TNT1 AAAAAAAA 0 A_CustomMissile (\"BloodmistSpray\", 80, 0, random (0, 360), 2, random (30, 90))\n\t\t TNT1 A 0 A_CustomMissile (\"XDeathOrgan1\", 24, 0, random (0, 360), 2, random (30, 90))\n\t\t TNT1 A 0 A_CustomMissile (\"XDeathOrgan2\", 24, 0, random (0, 360), 2, random (30, 90))\n\t\t TNT1 AAAA 0 A_CustomMissile (\"Guts\", 64, 0, random (0, 360), 2, random (30, 90))\n\t\t TNT1 A 0 A_SpawnItem (\"BigBloodSpot\")\n\t\t TNT1 AA 0 A_CustomMissile (\"BigSuperGore\", 80, 0, random (0, 360), 2, random (20, 60))\n\t\t TNT1 AAAAA 0 A_CustomMissile (\"SuperGoreSpawner\", 96, 0, random (0, 360), 2, random (20, 40))\n\tDeath:\n\t    TNT1 A 0\n        Stop\n    }\n}\n\n//Small enemies, like a dog\nActor MeatDeathSmall: MeatDeath\n{\n    States\n    {\n    Spawn:\n         TNT1 AAA 0 A_CustomMissile (\"XDeath2b\", 16, 0, random (0, 360), 2, random (30, 90))\n\t\t TNT1 AAA 0 A_CustomMissile (\"XDeath3b\", 16, 0, random (0, 360), 2, random (30, 90))\n\t\t TNT1 A 0 A_CustomMissile (\"XDeathOrgan1\", 16, 0, random (0, 360), 2, random (30, 90))\n\t\t TNT1 A 0 A_CustomMissile (\"XDeathOrgan2\", 16, 0, random (0, 360), 2, random (30, 90))\n\t\t TNT1 AA 0 A_CustomMissile (\"Guts\", 16, 0, random (0, 360), 2, random (30, 90))\n\t\t TNT1 A 0 A_SpawnItem (\"BigBloodSpot\")\n\tDeath:\n\t    TNT1 A 0\n        Stop\n    }\n}\n\n//Fat enemies, like a Mancubus\nActor MeatDeathFat: MeatDeath\n{\n    States\n    {\n    Spawn:\n\t\tTNT1 A 0\n\t\tTNT1 AA 0 A_CustomMissile (\"XDeath5Big\", 45, 0, random (0, 360), 2, random (30, 90))\n\t\tTNT1 AAA 0 A_CustomMissile (\"XDeath6Big\", 45, 0, random (0, 360), 2, random (30, 90))\n\t\tTNT1 AAAAAAA 0 A_CustomMissile (\"SuperGoreSpawner\", 52, 0, random (0, 360), 2, random (20, 60))\n\t\tTNT1 AA 0 A_CustomMissile (\"Guts\", 42, 0, random (0, 360), 2, random (30, 90))\n\t\tTNT1 AA 0 A_CustomMissile (\"BigSuperGore\", 32, 0, random (0, 360), 2, random (20, 60))\n\t\tTNT1 AA 0 A_CustomMissile (\"Guts\", 42, 0, random (0, 360), 2, random (30, 90))\n\tDeath:\n\t    TNT1 A 0\n        Stop\n    }\n}\n\n//Small enemies, like a rat\nActor MeatDeathTiny: MeatDeath\n{\n    States\n    {\n    Spawn:\n\t\tTNT1 A 0\n\t\tTNT1 AA 0 A_CustomMissile (\"XDeath2b\", 3, 0, random (0, 360), 2, random (10, 40))\n\t\tTNT1 A 0 A_CustomMissile (\"XDeath3b\", 3, 0, random (0, 360), 2, random (10, 40))\n\t\tTNT1 AA 0 A_CustomMissile (\"Blood\", 3, 0, random (0, 360), 2, random (10, 40))\n\tDeath:\n\t    TNT1 A 0\n        Stop\n    }\n}"
      }
    ]
  },
  "maps": []
}

gib.gg runs on open-source software and freely licensed replacement game assets from the Freedoom project. gib.gg is not affiliated with Bethesda Softworks, id Software, or ZeniMax Media. All trademarks belong to their respective owners. Some WADs and associated metadata on this site are sourced from WAD Archive. User-submitted content remains the responsibility of its respective authors. If you believe content on this site violates your rights, please send DMCA requests to dmca@gib.gg.