Quake2Doom

PK3 8.1 MiB 1 map(s)

Counts

endoom0
graphics2
lumps1944
maps1
palettes0

Totals (across maps)

Things436
Linedefs3529
Sectors881
Monsters0
Items0
Raw model (for completeness)
{
  "meta": {
    "id": "e46ce2a5-317a-4733-b533-cb059530330b",
    "sha1": "18ae60ebac104c6a5ef42a035c10c9ce3da1173a",
    "sha256": "eaf7212cfd3ac0fe47992fb229d862c79cf1b9602cb86e6010eaf21d7b4f6a6e",
    "title": "Quake2Doom",
    "filenames": [
      "q2doom.pk3"
    ],
    "additional": {
      "engines": [
        "VAVOOM"
      ],
      "iwad": [],
      "filename": null,
      "added": "2019-05-22 04:35:08",
      "locked": false,
      "canDownload": true,
      "adult": false,
      "hidden": false,
      "name": "Quake2Doom",
      "description": "Quake2Doom is a single+coop player map that originally started back in the summer of 2000 as a 9 map quake2ish themed project.Though it failed to really capture the quake2 design. Now after 4 years, the project is now redone and utilizing the advance capabilities of the K8Vavoom and GZDoom source ports. The features include: sloped sectors, quake2 style lighting, 3d room over room, polydoors and a custom tga sky box.",
      "maps": null,
      "graphicOverrides": null,
      "screenshots": {
        "MAP01": "MAP01.png"
      },
      "palettes": null,
      "categories": null
    },
    "flags": {
      "locked": false,
      "canDownload": true,
      "adult": false,
      "hidden": false
    },
    "added": "2019-05-22 04:35:08",
    "file": {
      "type": "PK3",
      "size": 8527652,
      "url": "https://wadarchive2.nyc3.digitaloceanspaces.com/18ae60ebac104c6a5ef42a035c10c9ce3da1173a/18ae60ebac104c6a5ef42a035c10c9ce3da1173a.pk3.gz",
      "corrupt": false
    },
    "content": {
      "maps": [
        "MAP01"
      ],
      "counts": {
        "endoom": 0,
        "graphics": 2,
        "lumps": 1944,
        "maps": 1,
        "palettes": 0
      },
      "engines_guess": [
        "VAVOOM"
      ]
    },
    "text_files": [
      {
        "source": "pk3",
        "name": "animdefs.txt",
        "contents": "texture Q2LIT001\npic Q2LIT001 tics 4\npic Q2LIT002 tics 4\npic Q2LIT003 tics 4\npic Q2LIT004 tics 4\npic Q2LIT005 tics 4\npic Q2LIT006 tics 4\npic Q2LIT007 tics 4\npic Q2LIT008 tics 4\npic Q2LIT009 tics 4\npic Q2LIT010 tics 4\n\nflat Q2FCMP13\npic Q2FCMP13 tics 4\npic Q2FCMP14 tics 4\npic Q2FCMP15 tics 4\npic Q2FCMP16 tics 4\npic Q2FCMP17 tics 4\n\nflat Q2FSWT05\npic Q2FSWT05 tics 4\npic Q2FSWT13 tics 4\npic Q2FSWT14 tics 4\n\nwarp2 flat Q2FLIQ07\n\nswitch Q2SWT024 on pic Q2SWT026 tics 0\nswitch Q2SWT009 on pic Q2SWT011 tics 0"
      },
      {
        "source": "pk3",
        "name": "decorate.txt",
        "contents": "//Special Effects\n#include \"actors/sfx/SteamSpawner.txt\"\n#include \"actors/sfx/spark.txt\""
      },
      {
        "source": "pk3",
        "name": "mapinfo.txt",
        "contents": "map MAP01 \"Warehouse49\"\nnext map02\nmusic D_Runnin\nskybox bo"
      },
      {
        "source": "pk3",
        "name": "skyboxes.txt",
        "contents": "bo\n{\n    {\n        // Right\n        map textures/skies/bo_rt.tga\n    }\n    {\n        // Front\n        map textures/skies/bo_ft.tga\n    }\n    {\n        // Left\n        map textures/skies/bo_lf.tga\n    }\n    {\n        // Back\n        map textures/skies/bo_bk.tga\n    }\n    {\n        // Up\n        map textures/skies/bo_up.tga\n    }\n    {\n        // Down\n        map textures/skies/bo_dn.tga\n    }\n}"
      },
      {
        "source": "pk3",
        "name": "sndinfo.txt",
        "contents": "//////////////////////////\n// AMBIENT WORLD SOUNDS //\n/////////////////////////\n\nAMB1   amb1\nAMB2   amb2\nAMB3   amb3\nAMB4   amb4\nAMB5   amb5\nAMB6   amb6\nAMB7   amb7\n\n$AMBIENT 1 amb1 POINT CONTINUOUS 1.0\n$AMBIENT 2 amb2 POINT CONTINUOUS 1.0\n$AMBIENT 3 amb3 POINT CONTINUOUS 1.0\n$AMBIENT 4 amb4 POINT RANDOM 20.0 35.0 1.0\n$AMBIENT 5 amb5 POINT CONTINUOUS 1.0\n$AMBIENT 6 amb6 POINT CONTINUOUS 1.0\n$AMBIENT 7 amb7 POINT CONTINUOUS 1.0\n\n//////////////////////////////////\n// Sequences for Doors & Lifts //\n//////////////////////////////////\n\nDOOR_STR     DOOR_STR\nDOOR_MID     DOOR_MID\nDOOR_END     DOOR_END\n\n/////////////////////////////\n// MISC ENVIRONMENT SOUNDS //\n////////////////////////////\n\nSteam/Loop\t        STEMLOOP\nSteam/Fire\t        STEMFIRE"
      },
      {
        "source": "pk3",
        "name": "SNDSEQ.txt",
        "contents": ":Door1\n        door            1\n        playuntildone   DOOR_STR\n        playrepeat      DOOR_MID\n\t\tstopsound       DOOR_END\nend\n\n:PolyOpen\n        door            2\n        playuntildone   DOOR_STR\n        playrepeat      DOOR_MID\n\t\tstopsound       DOOR_END\nend"
      },
      {
        "source": "pk3",
        "name": "ACTORS/SFX/spark.txt",
        "contents": "//====Spawners\n\nActor WhiteSparkSpawner : SwitchableDecoration 31011\n{\n  Height 8\n  Radius 4\n  +NoBlockMap\n  +NoGravity\n  +NoInteraction\n  +ClientSideOnly\n  +NoClip\n  States\n  {\n  Spawn:\n    TNT1 A 0\n    TNT1 A 0 A_JumpIf(Args[2] > 0, \"Inactive\")\n    TNT1 A 10 A_Jump(Args[1]/16, \"Active\")\n    Loop\n  Active:\n    TNT1 A 0\n    TNT1 A 0 A_PlaySound(\"World/Spark\")\n    TNT1 A 0 A_Jump(256, 1, 2, 3, 4, 5, 6)\n    TNT1 A 1 A_SpawnItemEx(\"SparkFlare_W1\", 0, 0, 0, 0, 0, 0, 0, 128)\n    Goto SpawnSparks\n    TNT1 A 1 A_SpawnItemEx(\"SparkFlare_W2\", 0, 0, 0, 0, 0, 0, 0, 128)\n    Goto SpawnSparks\n    TNT1 A 1 A_SpawnItemEx(\"SparkFlare_W3\", 0, 0, 0, 0, 0, 0, 0, 128)\n    Goto SpawnSparks\n    TNT1 A 1 A_SpawnItemEx(\"SparkFlare_W4\", 0, 0, 0, 0, 0, 0, 0, 128)\n    Goto SpawnSparks\n    TNT1 A 1 A_SpawnItemEx(\"SparkFlare_W5\", 0, 0, 0, 0, 0, 0, 0, 128)\n    Goto SpawnSparks\n    TNT1 A 1 A_SpawnItemEx(\"SparkFlare_W6\", 0, 0, 0, 0, 0, 0, 0, 128)\n    Goto SpawnSparks\n  SpawnSparks:\n    TNT1 A 0 A_JumpIf(Args[0] == 1, \"SpawnDown\")\n    TNT1 A 0 A_JumpIf(Args[0] > 1, \"SpawnSide\")\n    Goto SpawnUp\n  SpawnUp:\n    TNT1 AA 0 A_CustomMissile(\"Spark_W1\", 0, 0, Random(0, 360), 2, Random(67, 113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_W2\", 0, 0, Random(0, 360), 2, Random(67, 113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_W3\", 0, 0, Random(0, 360), 2, Random(67, 113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_W4\", 0, 0, Random(0, 360), 2, Random(67, 113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_W5\", 0, 0, Random(0, 360), 2, Random(67, 113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_W6\", 0, 0, Random(0, 360), 2, Random(67, 113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_W7\", 0, 0, Random(0, 360), 2, Random(67, 113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_W8\", 0, 0, Random(0, 360), 2, Random(67, 113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_W9\", 0, 0, Random(0, 360), 2, Random(67, 113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_W10\", 0, 0, Random(0, 360), 2, Random(67, 113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_W11\", 0, 0, Random(0, 360), 2, Random(67, 113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_W12\", 0, 0, Random(0, 360), 2, Random(67, 113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_W13\", 0, 0, Random(0, 360), 2, Random(67, 113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_W14\", 0, 0, Random(0, 360), 2, Random(67, 113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_W15\", 0, 0, Random(0, 360), 2, Random(67, 113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_W16\", 0, 0, Random(0, 360), 2, Random(67, 113))\n    TNT1 A 1 A_JumpIf(Args[2] > 0, 1)\n    Goto Spawn\n    TNT1 A 1\n    Goto Inactive\n  SpawnDown:\n    TNT1 AA 0 A_CustomMissile(\"Spark_W1\", 0, 0, Random(0, 360), 2, Random (-67, -113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_W2\", 0, 0, Random(0, 360), 2, Random (-67, -113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_W3\", 0, 0, Random(0, 360), 2, Random (-67, -113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_W4\", 0, 0, Random(0, 360), 2, Random (-67, -113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_W5\", 0, 0, Random(0, 360), 2, Random (-67, -113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_W6\", 0, 0, Random(0, 360), 2, Random (-67, -113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_W7\", 0, 0, Random(0, 360), 2, Random (-67, -113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_W8\", 0, 0, Random(0, 360), 2, Random (-67, -113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_W9\", 0, 0, Random(0, 360), 2, Random (-67, -113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_W10\", 0, 0, Random(0, 360), 2, Random (-67, -113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_W11\", 0, 0, Random(0, 360), 2, Random (-67, -113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_W12\", 0, 0, Random(0, 360), 2, Random (-67, -113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_W13\", 0, 0, Random(0, 360), 2, Random (-67, -113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_W14\", 0, 0, Random(0, 360), 2, Random (-67, -113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_W15\", 0, 0, Random(0, 360), 2, Random (-67, -113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_W16\", 0, 0, Random(0, 360), 2, Random (-67, -113))\n    TNT1 A 1 A_JumpIf(Args[2] > 0, 1)\n    Goto Spawn\n    TNT1 A 1\n    Goto Inactive\n  SpawnSide:\n    TNT1 AA 0 A_CustomMissile(\"Spark_W1\", 0, 0, Random(-23, 23), 2, Random(157, 203))\n    TNT1 AA 0 A_CustomMissile(\"Spark_W2\", 0, 0, Random(-23, 23), 2, Random(157, 203))\n    TNT1 AA 0 A_CustomMissile(\"Spark_W3\", 0, 0, Random(-23, 23), 2, Random(157, 203))\n    TNT1 AA 0 A_CustomMissile(\"Spark_W4\", 0, 0, Random(-23, 23), 2, Random(157, 203))\n    TNT1 AA 0 A_CustomMissile(\"Spark_W5\", 0, 0, Random(-23, 23), 2, Random(157, 203))\n    TNT1 AA 0 A_CustomMissile(\"Spark_W6\", 0, 0, Random(-23, 23), 2, Random(157, 203))\n    TNT1 AA 0 A_CustomMissile(\"Spark_W7\", 0, 0, Random(-23, 23), 2, Random(157, 203))\n    TNT1 AA 0 A_CustomMissile(\"Spark_W8\", 0, 0, Random(-23, 23), 2, Random(157, 203))\n    TNT1 AA 0 A_CustomMissile(\"Spark_W9\", 0, 0, Random(-23, 23), 2, Random(157, 203))\n    TNT1 AA 0 A_CustomMissile(\"Spark_W10\", 0, 0, Random(-23, 23), 2, Random(157, 203))\n    TNT1 AA 0 A_CustomMissile(\"Spark_W11\", 0, 0, Random(-23, 23), 2, Random(157, 203))\n    TNT1 AA 0 A_CustomMissile(\"Spark_W12\", 0, 0, Random(-23, 23), 2, Random(157, 203))\n    TNT1 AA 0 A_CustomMissile(\"Spark_W13\", 0, 0, Random(-23, 23), 2, Random(157, 203))\n    TNT1 AA 0 A_CustomMissile(\"Spark_W14\", 0, 0, Random(-23, 23), 2, Random(157, 203))\n    TNT1 AA 0 A_CustomMissile(\"Spark_W15\", 0, 0, Random(-23, 23), 2, Random(157, 203))\n    TNT1 AA 0 A_CustomMissile(\"Spark_W16\", 0, 0, Random(-23, 23), 2, Random(157, 203))\n    TNT1 A 1 A_JumpIf(Args[2] > 0, 1)\n    Goto Spawn\n    TNT1 A 1\n    Goto Inactive\n  Inactive:\n    TNT1 A -1\n    Loop\n  }\n}\n\nActor RedSparkSpawner : SwitchableDecoration 31012\n{\n  Height 8\n  Radius 4\n  +NoBlockMap\n  +NoGravity\n  +NoInteraction\n  +ClientSideOnly\n  +NoClip\n  States\n  {\n  Spawn:\n    TNT1 A 0\n    TNT1 A 0 A_JumpIf(Args[2] > 0, \"Inactive\")\n    TNT1 A 10 A_Jump(Args[1]/16, \"Active\")\n    Loop\n  Active:\n    TNT1 A 0\n    TNT1 A 0 A_PlaySound(\"World/Spark\")\n    TNT1 A 0 A_Jump(256, 1, 2, 3, 4, 5, 6)\n    TNT1 A 1 A_SpawnItemEx(\"SparkFlare_R1\", 0, 0, 0, 0, 0, 0, 0, 128)\n    Goto SpawnSparks\n    TNT1 A 1 A_SpawnItemEx(\"SparkFlare_R2\", 0, 0, 0, 0, 0, 0, 0, 128)\n    Goto SpawnSparks\n    TNT1 A 1 A_SpawnItemEx(\"SparkFlare_R3\", 0, 0, 0, 0, 0, 0, 0, 128)\n    Goto SpawnSparks\n    TNT1 A 1 A_SpawnItemEx(\"SparkFlare_R4\", 0, 0, 0, 0, 0, 0, 0, 128)\n    Goto SpawnSparks\n    TNT1 A 1 A_SpawnItemEx(\"SparkFlare_R5\", 0, 0, 0, 0, 0, 0, 0, 128)\n    Goto SpawnSparks\n    TNT1 A 1 A_SpawnItemEx(\"SparkFlare_R6\", 0, 0, 0, 0, 0, 0, 0, 128)\n    Goto SpawnSparks\n  SpawnSparks:\n    TNT1 A 0 A_JumpIf(Args[0] == 1, \"SpawnDown\")\n    TNT1 A 0 A_JumpIf(Args[0] > 1, \"SpawnSide\")\n    Goto SpawnUp\n  SpawnUp:\n    TNT1 AA 0 A_CustomMissile(\"Spark_R1\", 0, 0, Random(0, 360), 2, Random(67, 113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_R2\", 0, 0, Random(0, 360), 2, Random(67, 113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_R3\", 0, 0, Random(0, 360), 2, Random(67, 113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_R4\", 0, 0, Random(0, 360), 2, Random(67, 113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_R5\", 0, 0, Random(0, 360), 2, Random(67, 113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_R6\", 0, 0, Random(0, 360), 2, Random(67, 113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_R7\", 0, 0, Random(0, 360), 2, Random(67, 113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_R8\", 0, 0, Random(0, 360), 2, Random(67, 113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_R9\", 0, 0, Random(0, 360), 2, Random(67, 113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_R10\", 0, 0, Random(0, 360), 2, Random(67, 113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_R11\", 0, 0, Random(0, 360), 2, Random(67, 113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_R12\", 0, 0, Random(0, 360), 2, Random(67, 113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_R13\", 0, 0, Random(0, 360), 2, Random(67, 113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_R14\", 0, 0, Random(0, 360), 2, Random(67, 113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_R15\", 0, 0, Random(0, 360), 2, Random(67, 113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_R16\", 0, 0, Random(0, 360), 2, Random(67, 113))\n    TNT1 A 1 A_JumpIf(Args[2] > 0, 1)\n    Goto Spawn\n    TNT1 A 1\n    Goto Inactive\n  SpawnDown:\n    TNT1 AA 0 A_CustomMissile(\"Spark_R1\", 0, 0, Random(0, 360), 2, Random (-67, -113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_R2\", 0, 0, Random(0, 360), 2, Random (-67, -113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_R3\", 0, 0, Random(0, 360), 2, Random (-67, -113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_R4\", 0, 0, Random(0, 360), 2, Random (-67, -113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_R5\", 0, 0, Random(0, 360), 2, Random (-67, -113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_R6\", 0, 0, Random(0, 360), 2, Random (-67, -113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_R7\", 0, 0, Random(0, 360), 2, Random (-67, -113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_R8\", 0, 0, Random(0, 360), 2, Random (-67, -113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_R9\", 0, 0, Random(0, 360), 2, Random (-67, -113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_R10\", 0, 0, Random(0, 360), 2, Random (-67, -113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_R11\", 0, 0, Random(0, 360), 2, Random (-67, -113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_R12\", 0, 0, Random(0, 360), 2, Random (-67, -113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_R13\", 0, 0, Random(0, 360), 2, Random (-67, -113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_R14\", 0, 0, Random(0, 360), 2, Random (-67, -113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_R15\", 0, 0, Random(0, 360), 2, Random (-67, -113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_R16\", 0, 0, Random(0, 360), 2, Random (-67, -113))\n    TNT1 A 1 A_JumpIf(Args[2] > 0, 1)\n    Goto Spawn\n    TNT1 A 1\n    Goto Inactive\n  SpawnSide:\n    TNT1 AA 0 A_CustomMissile(\"Spark_R1\", 0, 0, Random(-23, 23), 2, Random(157, 203))\n    TNT1 AA 0 A_CustomMissile(\"Spark_R2\", 0, 0, Random(-23, 23), 2, Random(157, 203))\n    TNT1 AA 0 A_CustomMissile(\"Spark_R3\", 0, 0, Random(-23, 23), 2, Random(157, 203))\n    TNT1 AA 0 A_CustomMissile(\"Spark_R4\", 0, 0, Random(-23, 23), 2, Random(157, 203))\n    TNT1 AA 0 A_CustomMissile(\"Spark_R5\", 0, 0, Random(-23, 23), 2, Random(157, 203))\n    TNT1 AA 0 A_CustomMissile(\"Spark_R6\", 0, 0, Random(-23, 23), 2, Random(157, 203))\n    TNT1 AA 0 A_CustomMissile(\"Spark_R7\", 0, 0, Random(-23, 23), 2, Random(157, 203))\n    TNT1 AA 0 A_CustomMissile(\"Spark_R8\", 0, 0, Random(-23, 23), 2, Random(157, 203))\n    TNT1 AA 0 A_CustomMissile(\"Spark_R9\", 0, 0, Random(-23, 23), 2, Random(157, 203))\n    TNT1 AA 0 A_CustomMissile(\"Spark_R10\", 0, 0, Random(-23, 23), 2, Random(157, 203))\n    TNT1 AA 0 A_CustomMissile(\"Spark_R11\", 0, 0, Random(-23, 23), 2, Random(157, 203))\n    TNT1 AA 0 A_CustomMissile(\"Spark_R12\", 0, 0, Random(-23, 23), 2, Random(157, 203))\n    TNT1 AA 0 A_CustomMissile(\"Spark_R13\", 0, 0, Random(-23, 23), 2, Random(157, 203))\n    TNT1 AA 0 A_CustomMissile(\"Spark_R14\", 0, 0, Random(-23, 23), 2, Random(157, 203))\n    TNT1 AA 0 A_CustomMissile(\"Spark_R15\", 0, 0, Random(-23, 23), 2, Random(157, 203))\n    TNT1 AA 0 A_CustomMissile(\"Spark_R16\", 0, 0, Random(-23, 23), 2, Random(157, 203))\n    TNT1 A 1 A_JumpIf(Args[2] > 0, 1)\n    Goto Spawn\n    TNT1 A 1\n    Goto Inactive\n  Inactive:\n    TNT1 A -1\n    Loop\n  }\n}\n\nActor OrangeSparkSpawner : SwitchableDecoration 31013\n{\n  Height 8\n  Radius 4\n  +NoBlockMap\n  +NoGravity\n  +NoInteraction\n  +ClientSideOnly\n  +NoClip\n  States\n  {\n  Spawn:\n    TNT1 A 0\n    TNT1 A 0 A_JumpIf(Args[2] > 0, \"Inactive\")\n    TNT1 A 10 A_Jump(Args[1]/16, \"Active\")\n    Loop\n  Active:\n    TNT1 A 0\n    TNT1 A 0 A_PlaySound(\"World/Spark\")\n    TNT1 A 0 A_Jump(256, 1, 2, 3, 4, 5, 6)\n    TNT1 A 1 A_SpawnItemEx(\"SparkFlare_O1\", 0, 0, 0, 0, 0, 0, 0, 128)\n    Goto SpawnSparks\n    TNT1 A 1 A_SpawnItemEx(\"SparkFlare_O2\", 0, 0, 0, 0, 0, 0, 0, 128)\n    Goto SpawnSparks\n    TNT1 A 1 A_SpawnItemEx(\"SparkFlare_O3\", 0, 0, 0, 0, 0, 0, 0, 128)\n    Goto SpawnSparks\n    TNT1 A 1 A_SpawnItemEx(\"SparkFlare_O4\", 0, 0, 0, 0, 0, 0, 0, 128)\n    Goto SpawnSparks\n    TNT1 A 1 A_SpawnItemEx(\"SparkFlare_O5\", 0, 0, 0, 0, 0, 0, 0, 128)\n    Goto SpawnSparks\n    TNT1 A 1 A_SpawnItemEx(\"SparkFlare_O6\", 0, 0, 0, 0, 0, 0, 0, 128)\n    Goto SpawnSparks\n  SpawnSparks:\n    TNT1 A 0 A_JumpIf(Args[0] == 1, \"SpawnDown\")\n    TNT1 A 0 A_JumpIf(Args[0] > 1, \"SpawnSide\")\n    Goto SpawnUp\n  SpawnUp:\n    TNT1 AA 0 A_CustomMissile(\"Spark_O1\", 0, 0, Random(0, 360), 2, Random(67, 113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_O2\", 0, 0, Random(0, 360), 2, Random(67, 113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_O3\", 0, 0, Random(0, 360), 2, Random(67, 113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_O4\", 0, 0, Random(0, 360), 2, Random(67, 113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_O5\", 0, 0, Random(0, 360), 2, Random(67, 113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_O6\", 0, 0, Random(0, 360), 2, Random(67, 113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_O7\", 0, 0, Random(0, 360), 2, Random(67, 113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_O8\", 0, 0, Random(0, 360), 2, Random(67, 113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_O9\", 0, 0, Random(0, 360), 2, Random(67, 113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_O10\", 0, 0, Random(0, 360), 2, Random(67, 113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_O11\", 0, 0, Random(0, 360), 2, Random(67, 113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_O12\", 0, 0, Random(0, 360), 2, Random(67, 113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_O13\", 0, 0, Random(0, 360), 2, Random(67, 113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_O14\", 0, 0, Random(0, 360), 2, Random(67, 113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_O15\", 0, 0, Random(0, 360), 2, Random(67, 113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_O16\", 0, 0, Random(0, 360), 2, Random(67, 113))\n    TNT1 A 1 A_JumpIf(Args[2] > 0, 1)\n    Goto Spawn\n    TNT1 A 1\n    Goto Inactive\n  SpawnDown:\n    TNT1 AA 0 A_CustomMissile(\"Spark_O1\", 0, 0, Random(0, 360), 2, Random (-67, -113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_O2\", 0, 0, Random(0, 360), 2, Random (-67, -113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_O3\", 0, 0, Random(0, 360), 2, Random (-67, -113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_O4\", 0, 0, Random(0, 360), 2, Random (-67, -113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_O5\", 0, 0, Random(0, 360), 2, Random (-67, -113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_O6\", 0, 0, Random(0, 360), 2, Random (-67, -113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_O7\", 0, 0, Random(0, 360), 2, Random (-67, -113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_O8\", 0, 0, Random(0, 360), 2, Random (-67, -113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_O9\", 0, 0, Random(0, 360), 2, Random (-67, -113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_O10\", 0, 0, Random(0, 360), 2, Random (-67, -113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_O11\", 0, 0, Random(0, 360), 2, Random (-67, -113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_O12\", 0, 0, Random(0, 360), 2, Random (-67, -113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_O13\", 0, 0, Random(0, 360), 2, Random (-67, -113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_O14\", 0, 0, Random(0, 360), 2, Random (-67, -113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_O15\", 0, 0, Random(0, 360), 2, Random (-67, -113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_O16\", 0, 0, Random(0, 360), 2, Random (-67, -113))\n    TNT1 A 1 A_JumpIf(Args[2] > 0, 1)\n    Goto Spawn\n    TNT1 A 1\n    Goto Inactive\n  SpawnSide:\n    TNT1 AA 0 A_CustomMissile(\"Spark_O1\", 0, 0, Random(-23, 23), 2, Random(157, 203))\n    TNT1 AA 0 A_CustomMissile(\"Spark_O2\", 0, 0, Random(-23, 23), 2, Random(157, 203))\n    TNT1 AA 0 A_CustomMissile(\"Spark_O3\", 0, 0, Random(-23, 23), 2, Random(157, 203))\n    TNT1 AA 0 A_CustomMissile(\"Spark_O4\", 0, 0, Random(-23, 23), 2, Random(157, 203))\n    TNT1 AA 0 A_CustomMissile(\"Spark_O5\", 0, 0, Random(-23, 23), 2, Random(157, 203))\n    TNT1 AA 0 A_CustomMissile(\"Spark_O6\", 0, 0, Random(-23, 23), 2, Random(157, 203))\n    TNT1 AA 0 A_CustomMissile(\"Spark_O7\", 0, 0, Random(-23, 23), 2, Random(157, 203))\n    TNT1 AA 0 A_CustomMissile(\"Spark_O8\", 0, 0, Random(-23, 23), 2, Random(157, 203))\n    TNT1 AA 0 A_CustomMissile(\"Spark_O9\", 0, 0, Random(-23, 23), 2, Random(157, 203))\n    TNT1 AA 0 A_CustomMissile(\"Spark_O10\", 0, 0, Random(-23, 23), 2, Random(157, 203))\n    TNT1 AA 0 A_CustomMissile(\"Spark_O11\", 0, 0, Random(-23, 23), 2, Random(157, 203))\n    TNT1 AA 0 A_CustomMissile(\"Spark_O12\", 0, 0, Random(-23, 23), 2, Random(157, 203))\n    TNT1 AA 0 A_CustomMissile(\"Spark_O13\", 0, 0, Random(-23, 23), 2, Random(157, 203))\n    TNT1 AA 0 A_CustomMissile(\"Spark_O14\", 0, 0, Random(-23, 23), 2, Random(157, 203))\n    TNT1 AA 0 A_CustomMissile(\"Spark_O15\", 0, 0, Random(-23, 23), 2, Random(157, 203))\n    TNT1 AA 0 A_CustomMissile(\"Spark_O16\", 0, 0, Random(-23, 23), 2, Random(157, 203))\n    TNT1 A 1 A_JumpIf(Args[2] > 0, 1)\n    Goto Spawn\n    TNT1 A 1\n    Goto Inactive\n  Inactive:\n    TNT1 A -1\n    Loop\n  }\n}\n\nActor YellowSparkSpawner : SwitchableDecoration 31014\n{\n  Height 8\n  Radius 4\n  +NoBlockMap\n  +NoGravity\n  +NoInteraction\n  +ClientSideOnly\n  +NoClip\n  States\n  {\n  Spawn:\n    TNT1 A 0\n    TNT1 A 0 A_JumpIf(Args[2] > 0, \"Inactive\")\n    TNT1 A 10 A_Jump(Args[1]/16, \"Active\")\n    Loop\n  Active:\n    TNT1 A 0\n    TNT1 A 0 A_PlaySound(\"World/Spark\")\n    TNT1 A 0 A_Jump(256, 1, 2, 3, 4, 5, 6)\n    TNT1 A 1 A_SpawnItemEx(\"SparkFlare_Y1\", 0, 0, 0, 0, 0, 0, 0, 128)\n    Goto SpawnSparks\n    TNT1 A 1 A_SpawnItemEx(\"SparkFlare_Y2\", 0, 0, 0, 0, 0, 0, 0, 128)\n    Goto SpawnSparks\n    TNT1 A 1 A_SpawnItemEx(\"SparkFlare_Y3\", 0, 0, 0, 0, 0, 0, 0, 128)\n    Goto SpawnSparks\n    TNT1 A 1 A_SpawnItemEx(\"SparkFlare_Y4\", 0, 0, 0, 0, 0, 0, 0, 128)\n    Goto SpawnSparks\n    TNT1 A 1 A_SpawnItemEx(\"SparkFlare_Y5\", 0, 0, 0, 0, 0, 0, 0, 128)\n    Goto SpawnSparks\n    TNT1 A 1 A_SpawnItemEx(\"SparkFlare_Y6\", 0, 0, 0, 0, 0, 0, 0, 128)\n    Goto SpawnSparks\n  SpawnSparks:\n    TNT1 A 0 A_JumpIf(Args[0] == 1, \"SpawnDown\")\n    TNT1 A 0 A_JumpIf(Args[0] > 1, \"SpawnSide\")\n    Goto SpawnUp\n  SpawnUp:\n    TNT1 AA 0 A_CustomMissile(\"Spark_Y1\", 0, 0, Random(0, 360), 2, Random(67, 113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_Y2\", 0, 0, Random(0, 360), 2, Random(67, 113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_Y3\", 0, 0, Random(0, 360), 2, Random(67, 113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_Y4\", 0, 0, Random(0, 360), 2, Random(67, 113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_Y5\", 0, 0, Random(0, 360), 2, Random(67, 113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_Y6\", 0, 0, Random(0, 360), 2, Random(67, 113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_Y7\", 0, 0, Random(0, 360), 2, Random(67, 113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_Y8\", 0, 0, Random(0, 360), 2, Random(67, 113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_Y9\", 0, 0, Random(0, 360), 2, Random(67, 113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_Y10\", 0, 0, Random(0, 360), 2, Random(67, 113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_Y11\", 0, 0, Random(0, 360), 2, Random(67, 113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_Y12\", 0, 0, Random(0, 360), 2, Random(67, 113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_Y13\", 0, 0, Random(0, 360), 2, Random(67, 113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_Y14\", 0, 0, Random(0, 360), 2, Random(67, 113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_Y15\", 0, 0, Random(0, 360), 2, Random(67, 113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_Y16\", 0, 0, Random(0, 360), 2, Random(67, 113))\n    TNT1 A 1 A_JumpIf(Args[2] > 0, 1)\n    Goto Spawn\n    TNT1 A 1\n    Goto Inactive\n  SpawnDown:\n    TNT1 AA 0 A_CustomMissile(\"Spark_Y1\", 0, 0, Random(0, 360), 2, Random (-67, -113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_Y2\", 0, 0, Random(0, 360), 2, Random (-67, -113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_Y3\", 0, 0, Random(0, 360), 2, Random (-67, -113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_Y4\", 0, 0, Random(0, 360), 2, Random (-67, -113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_Y5\", 0, 0, Random(0, 360), 2, Random (-67, -113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_Y6\", 0, 0, Random(0, 360), 2, Random (-67, -113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_Y7\", 0, 0, Random(0, 360), 2, Random (-67, -113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_Y8\", 0, 0, Random(0, 360), 2, Random (-67, -113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_Y9\", 0, 0, Random(0, 360), 2, Random (-67, -113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_Y10\", 0, 0, Random(0, 360), 2, Random (-67, -113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_Y11\", 0, 0, Random(0, 360), 2, Random (-67, -113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_Y12\", 0, 0, Random(0, 360), 2, Random (-67, -113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_Y13\", 0, 0, Random(0, 360), 2, Random (-67, -113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_Y14\", 0, 0, Random(0, 360), 2, Random (-67, -113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_Y15\", 0, 0, Random(0, 360), 2, Random (-67, -113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_Y16\", 0, 0, Random(0, 360), 2, Random (-67, -113))\n    TNT1 A 1 A_JumpIf(Args[2] > 0, 1)\n    Goto Spawn\n    TNT1 A 1\n    Goto Inactive\n  SpawnSide:\n    TNT1 AA 0 A_CustomMissile(\"Spark_Y1\", 0, 0, Random(-23, 23), 2, Random(157, 203))\n    TNT1 AA 0 A_CustomMissile(\"Spark_Y2\", 0, 0, Random(-23, 23), 2, Random(157, 203))\n    TNT1 AA 0 A_CustomMissile(\"Spark_Y3\", 0, 0, Random(-23, 23), 2, Random(157, 203))\n    TNT1 AA 0 A_CustomMissile(\"Spark_Y4\", 0, 0, Random(-23, 23), 2, Random(157, 203))\n    TNT1 AA 0 A_CustomMissile(\"Spark_Y5\", 0, 0, Random(-23, 23), 2, Random(157, 203))\n    TNT1 AA 0 A_CustomMissile(\"Spark_Y6\", 0, 0, Random(-23, 23), 2, Random(157, 203))\n    TNT1 AA 0 A_CustomMissile(\"Spark_Y7\", 0, 0, Random(-23, 23), 2, Random(157, 203))\n    TNT1 AA 0 A_CustomMissile(\"Spark_Y8\", 0, 0, Random(-23, 23), 2, Random(157, 203))\n    TNT1 AA 0 A_CustomMissile(\"Spark_Y9\", 0, 0, Random(-23, 23), 2, Random(157, 203))\n    TNT1 AA 0 A_CustomMissile(\"Spark_Y10\", 0, 0, Random(-23, 23), 2, Random(157, 203))\n    TNT1 AA 0 A_CustomMissile(\"Spark_Y11\", 0, 0, Random(-23, 23), 2, Random(157, 203))\n    TNT1 AA 0 A_CustomMissile(\"Spark_Y12\", 0, 0, Random(-23, 23), 2, Random(157, 203))\n    TNT1 AA 0 A_CustomMissile(\"Spark_Y13\", 0, 0, Random(-23, 23), 2, Random(157, 203))\n    TNT1 AA 0 A_CustomMissile(\"Spark_Y14\", 0, 0, Random(-23, 23), 2, Random(157, 203))\n    TNT1 AA 0 A_CustomMissile(\"Spark_Y15\", 0, 0, Random(-23, 23), 2, Random(157, 203))\n    TNT1 AA 0 A_CustomMissile(\"Spark_Y16\", 0, 0, Random(-23, 23), 2, Random(157, 203))\n    TNT1 A 1 A_JumpIf(Args[2] > 0, 1)\n    Goto Spawn\n    TNT1 A 1\n    Goto Inactive\n  Inactive:\n    TNT1 A -1\n    Loop\n  }\n}\n\nActor GreenSparkSpawner : SwitchableDecoration 31015\n{\n  Height 8\n  Radius 4\n  +NoBlockMap\n  +NoGravity\n  +NoInteraction\n  +ClientSideOnly\n  +NoClip\n  States\n  {\n  Spawn:\n    TNT1 A 0\n    TNT1 A 0 A_JumpIf(Args[2] > 0, \"Inactive\")\n    TNT1 A 10 A_Jump(Args[1]/16, \"Active\")\n    Loop\n  Active:\n    TNT1 A 0\n    TNT1 A 0 A_PlaySound(\"World/Spark\")\n    TNT1 A 0 A_Jump(256, 1, 2, 3, 4, 5, 6)\n    TNT1 A 1 A_SpawnItemEx(\"SparkFlare_G1\", 0, 0, 0, 0, 0, 0, 0, 128)\n    Goto SpawnSparks\n    TNT1 A 1 A_SpawnItemEx(\"SparkFlare_G2\", 0, 0, 0, 0, 0, 0, 0, 128)\n    Goto SpawnSparks\n    TNT1 A 1 A_SpawnItemEx(\"SparkFlare_G3\", 0, 0, 0, 0, 0, 0, 0, 128)\n    Goto SpawnSparks\n    TNT1 A 1 A_SpawnItemEx(\"SparkFlare_G4\", 0, 0, 0, 0, 0, 0, 0, 128)\n    Goto SpawnSparks\n    TNT1 A 1 A_SpawnItemEx(\"SparkFlare_G5\", 0, 0, 0, 0, 0, 0, 0, 128)\n    Goto SpawnSparks\n    TNT1 A 1 A_SpawnItemEx(\"SparkFlare_G6\", 0, 0, 0, 0, 0, 0, 0, 128)\n    Goto SpawnSparks\n  SpawnSparks:\n    TNT1 A 0 A_JumpIf(Args[0] == 1, \"SpawnDown\")\n    TNT1 A 0 A_JumpIf(Args[0] > 1, \"SpawnSide\")\n    Goto SpawnUp\n  SpawnUp:\n    TNT1 AA 0 A_CustomMissile(\"Spark_G1\", 0, 0, Random(0, 360), 2, Random(67, 113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_G2\", 0, 0, Random(0, 360), 2, Random(67, 113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_G3\", 0, 0, Random(0, 360), 2, Random(67, 113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_G4\", 0, 0, Random(0, 360), 2, Random(67, 113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_G5\", 0, 0, Random(0, 360), 2, Random(67, 113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_G6\", 0, 0, Random(0, 360), 2, Random(67, 113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_G7\", 0, 0, Random(0, 360), 2, Random(67, 113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_G8\", 0, 0, Random(0, 360), 2, Random(67, 113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_G9\", 0, 0, Random(0, 360), 2, Random(67, 113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_G10\", 0, 0, Random(0, 360), 2, Random(67, 113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_G11\", 0, 0, Random(0, 360), 2, Random(67, 113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_G12\", 0, 0, Random(0, 360), 2, Random(67, 113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_G13\", 0, 0, Random(0, 360), 2, Random(67, 113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_G14\", 0, 0, Random(0, 360), 2, Random(67, 113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_G15\", 0, 0, Random(0, 360), 2, Random(67, 113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_G16\", 0, 0, Random(0, 360), 2, Random(67, 113))\n    TNT1 A 1 A_JumpIf(Args[2] > 0, 1)\n    Goto Spawn\n    TNT1 A 1\n    Goto Inactive\n  SpawnDown:\n    TNT1 AA 0 A_CustomMissile(\"Spark_G1\", 0, 0, Random(0, 360), 2, Random (-67, -113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_G2\", 0, 0, Random(0, 360), 2, Random (-67, -113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_G3\", 0, 0, Random(0, 360), 2, Random (-67, -113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_G4\", 0, 0, Random(0, 360), 2, Random (-67, -113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_G5\", 0, 0, Random(0, 360), 2, Random (-67, -113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_G6\", 0, 0, Random(0, 360), 2, Random (-67, -113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_G7\", 0, 0, Random(0, 360), 2, Random (-67, -113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_G8\", 0, 0, Random(0, 360), 2, Random (-67, -113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_G9\", 0, 0, Random(0, 360), 2, Random (-67, -113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_G10\", 0, 0, Random(0, 360), 2, Random (-67, -113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_G11\", 0, 0, Random(0, 360), 2, Random (-67, -113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_G12\", 0, 0, Random(0, 360), 2, Random (-67, -113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_G13\", 0, 0, Random(0, 360), 2, Random (-67, -113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_G14\", 0, 0, Random(0, 360), 2, Random (-67, -113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_G15\", 0, 0, Random(0, 360), 2, Random (-67, -113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_G16\", 0, 0, Random(0, 360), 2, Random (-67, -113))\n    TNT1 A 1 A_JumpIf(Args[2] > 0, 1)\n    Goto Spawn\n    TNT1 A 1\n    Goto Inactive\n  SpawnSide:\n    TNT1 AA 0 A_CustomMissile(\"Spark_G1\", 0, 0, Random(-23, 23), 2, Random(157, 203))\n    TNT1 AA 0 A_CustomMissile(\"Spark_G2\", 0, 0, Random(-23, 23), 2, Random(157, 203))\n    TNT1 AA 0 A_CustomMissile(\"Spark_G3\", 0, 0, Random(-23, 23), 2, Random(157, 203))\n    TNT1 AA 0 A_CustomMissile(\"Spark_G4\", 0, 0, Random(-23, 23), 2, Random(157, 203))\n    TNT1 AA 0 A_CustomMissile(\"Spark_G5\", 0, 0, Random(-23, 23), 2, Random(157, 203))\n    TNT1 AA 0 A_CustomMissile(\"Spark_G6\", 0, 0, Random(-23, 23), 2, Random(157, 203))\n    TNT1 AA 0 A_CustomMissile(\"Spark_G7\", 0, 0, Random(-23, 23), 2, Random(157, 203))\n    TNT1 AA 0 A_CustomMissile(\"Spark_G8\", 0, 0, Random(-23, 23), 2, Random(157, 203))\n    TNT1 AA 0 A_CustomMissile(\"Spark_G9\", 0, 0, Random(-23, 23), 2, Random(157, 203))\n    TNT1 AA 0 A_CustomMissile(\"Spark_G10\", 0, 0, Random(-23, 23), 2, Random(157, 203))\n    TNT1 AA 0 A_CustomMissile(\"Spark_G11\", 0, 0, Random(-23, 23), 2, Random(157, 203))\n    TNT1 AA 0 A_CustomMissile(\"Spark_G12\", 0, 0, Random(-23, 23), 2, Random(157, 203))\n    TNT1 AA 0 A_CustomMissile(\"Spark_G13\", 0, 0, Random(-23, 23), 2, Random(157, 203))\n    TNT1 AA 0 A_CustomMissile(\"Spark_G14\", 0, 0, Random(-23, 23), 2, Random(157, 203))\n    TNT1 AA 0 A_CustomMissile(\"Spark_G15\", 0, 0, Random(-23, 23), 2, Random(157, 203))\n    TNT1 AA 0 A_CustomMissile(\"Spark_G16\", 0, 0, Random(-23, 23), 2, Random(157, 203))\n    TNT1 A 1 A_JumpIf(Args[2] > 0, 1)\n    Goto Spawn\n    TNT1 A 1\n    Goto Inactive\n  Inactive:\n    TNT1 A -1\n    Loop\n  }\n}\n\nActor BlueSparkSpawner : SwitchableDecoration 31016\n{\n  Height 8\n  Radius 4\n  +NoBlockMap\n  +NoGravity\n  +NoInteraction\n  +ClientSideOnly\n  +NoClip\n  States\n  {\n  Spawn:\n    TNT1 A 0\n    TNT1 A 0 A_JumpIf(Args[2] > 0, \"Inactive\")\n    TNT1 A 10 A_Jump(Args[1]/16, \"Active\")\n    Loop\n  Active:\n    TNT1 A 0\n    TNT1 A 0 A_PlaySound(\"World/Spark\")\n    TNT1 A 0 A_Jump(256, 1, 2, 3, 4, 5, 6)\n    TNT1 A 1 A_SpawnItemEx(\"SparkFlare_B1\", 0, 0, 0, 0, 0, 0, 0, 128)\n    Goto SpawnSparks\n    TNT1 A 1 A_SpawnItemEx(\"SparkFlare_B2\", 0, 0, 0, 0, 0, 0, 0, 128)\n    Goto SpawnSparks\n    TNT1 A 1 A_SpawnItemEx(\"SparkFlare_B3\", 0, 0, 0, 0, 0, 0, 0, 128)\n    Goto SpawnSparks\n    TNT1 A 1 A_SpawnItemEx(\"SparkFlare_B4\", 0, 0, 0, 0, 0, 0, 0, 128)\n    Goto SpawnSparks\n    TNT1 A 1 A_SpawnItemEx(\"SparkFlare_B5\", 0, 0, 0, 0, 0, 0, 0, 128)\n    Goto SpawnSparks\n    TNT1 A 1 A_SpawnItemEx(\"SparkFlare_B6\", 0, 0, 0, 0, 0, 0, 0, 128)\n    Goto SpawnSparks\n  SpawnSparks:\n    TNT1 A 0 A_JumpIf(Args[0] == 1, \"SpawnDown\")\n    TNT1 A 0 A_JumpIf(Args[0] > 1, \"SpawnSide\")\n    Goto SpawnUp\n  SpawnUp:\n    TNT1 AA 0 A_CustomMissile(\"Spark_B1\", 0, 0, Random(0, 360), 2, Random(67, 113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_B2\", 0, 0, Random(0, 360), 2, Random(67, 113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_B3\", 0, 0, Random(0, 360), 2, Random(67, 113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_B4\", 0, 0, Random(0, 360), 2, Random(67, 113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_B5\", 0, 0, Random(0, 360), 2, Random(67, 113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_B6\", 0, 0, Random(0, 360), 2, Random(67, 113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_B7\", 0, 0, Random(0, 360), 2, Random(67, 113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_B8\", 0, 0, Random(0, 360), 2, Random(67, 113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_B9\", 0, 0, Random(0, 360), 2, Random(67, 113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_B10\", 0, 0, Random(0, 360), 2, Random(67, 113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_B11\", 0, 0, Random(0, 360), 2, Random(67, 113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_B12\", 0, 0, Random(0, 360), 2, Random(67, 113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_B13\", 0, 0, Random(0, 360), 2, Random(67, 113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_B14\", 0, 0, Random(0, 360), 2, Random(67, 113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_B15\", 0, 0, Random(0, 360), 2, Random(67, 113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_B16\", 0, 0, Random(0, 360), 2, Random(67, 113))\n    TNT1 A 1 A_JumpIf(Args[2] > 0, 1)\n    Goto Spawn\n    TNT1 A 1\n    Goto Inactive\n  SpawnDown:\n    TNT1 AA 0 A_CustomMissile(\"Spark_B1\", 0, 0, Random(0, 360), 2, Random (-67, -113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_B2\", 0, 0, Random(0, 360), 2, Random (-67, -113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_B3\", 0, 0, Random(0, 360), 2, Random (-67, -113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_B4\", 0, 0, Random(0, 360), 2, Random (-67, -113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_B5\", 0, 0, Random(0, 360), 2, Random (-67, -113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_B6\", 0, 0, Random(0, 360), 2, Random (-67, -113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_B7\", 0, 0, Random(0, 360), 2, Random (-67, -113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_B8\", 0, 0, Random(0, 360), 2, Random (-67, -113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_B9\", 0, 0, Random(0, 360), 2, Random (-67, -113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_B10\", 0, 0, Random(0, 360), 2, Random (-67, -113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_B11\", 0, 0, Random(0, 360), 2, Random (-67, -113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_B12\", 0, 0, Random(0, 360), 2, Random (-67, -113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_B13\", 0, 0, Random(0, 360), 2, Random (-67, -113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_B14\", 0, 0, Random(0, 360), 2, Random (-67, -113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_B15\", 0, 0, Random(0, 360), 2, Random (-67, -113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_B16\", 0, 0, Random(0, 360), 2, Random (-67, -113))\n    TNT1 A 1 A_JumpIf(Args[2] > 0, 1)\n    Goto Spawn\n    TNT1 A 1\n    Goto Inactive\n  SpawnSide:\n    TNT1 AA 0 A_CustomMissile(\"Spark_B1\", 0, 0, Random(-23, 23), 2, Random(157, 203))\n    TNT1 AA 0 A_CustomMissile(\"Spark_B2\", 0, 0, Random(-23, 23), 2, Random(157, 203))\n    TNT1 AA 0 A_CustomMissile(\"Spark_B3\", 0, 0, Random(-23, 23), 2, Random(157, 203))\n    TNT1 AA 0 A_CustomMissile(\"Spark_B4\", 0, 0, Random(-23, 23), 2, Random(157, 203))\n    TNT1 AA 0 A_CustomMissile(\"Spark_B5\", 0, 0, Random(-23, 23), 2, Random(157, 203))\n    TNT1 AA 0 A_CustomMissile(\"Spark_B6\", 0, 0, Random(-23, 23), 2, Random(157, 203))\n    TNT1 AA 0 A_CustomMissile(\"Spark_B7\", 0, 0, Random(-23, 23), 2, Random(157, 203))\n    TNT1 AA 0 A_CustomMissile(\"Spark_B8\", 0, 0, Random(-23, 23), 2, Random(157, 203))\n    TNT1 AA 0 A_CustomMissile(\"Spark_B9\", 0, 0, Random(-23, 23), 2, Random(157, 203))\n    TNT1 AA 0 A_CustomMissile(\"Spark_B10\", 0, 0, Random(-23, 23), 2, Random(157, 203))\n    TNT1 AA 0 A_CustomMissile(\"Spark_B11\", 0, 0, Random(-23, 23), 2, Random(157, 203))\n    TNT1 AA 0 A_CustomMissile(\"Spark_B12\", 0, 0, Random(-23, 23), 2, Random(157, 203))\n    TNT1 AA 0 A_CustomMissile(\"Spark_B13\", 0, 0, Random(-23, 23), 2, Random(157, 203))\n    TNT1 AA 0 A_CustomMissile(\"Spark_B14\", 0, 0, Random(-23, 23), 2, Random(157, 203))\n    TNT1 AA 0 A_CustomMissile(\"Spark_B15\", 0, 0, Random(-23, 23), 2, Random(157, 203))\n    TNT1 AA 0 A_CustomMissile(\"Spark_B16\", 0, 0, Random(-23, 23), 2, Random(157, 203))\n    TNT1 A 1 A_JumpIf(Args[2] > 0, 1)\n    Goto Spawn\n    TNT1 A 1\n    Goto Inactive\n  Inactive:\n    TNT1 A -1\n    Loop\n  }\n}\n\nActor PurpleSparkSpawner : SwitchableDecoration 31017\n{\n  Height 8\n  Radius 4\n  +NoBlockMap\n  +NoGravity\n  +NoInteraction\n  +ClientSideOnly\n  +NoClip\n  States\n  {\n  Spawn:\n    TNT1 A 0\n    TNT1 A 0 A_JumpIf(Args[2] > 0, \"Inactive\")\n    TNT1 A 10 A_Jump(Args[1]/16, \"Active\")\n    Loop\n  Active:\n    TNT1 A 0\n    TNT1 A 0 A_PlaySound(\"World/Spark\")\n    TNT1 A 0 A_Jump(256, 1, 2, 3, 4, 5, 6)\n    TNT1 A 1 A_SpawnItemEx(\"SparkFlare_P1\", 0, 0, 0, 0, 0, 0, 0, 128)\n    Goto SpawnSparks\n    TNT1 A 1 A_SpawnItemEx(\"SparkFlare_P2\", 0, 0, 0, 0, 0, 0, 0, 128)\n    Goto SpawnSparks\n    TNT1 A 1 A_SpawnItemEx(\"SparkFlare_P3\", 0, 0, 0, 0, 0, 0, 0, 128)\n    Goto SpawnSparks\n    TNT1 A 1 A_SpawnItemEx(\"SparkFlare_P4\", 0, 0, 0, 0, 0, 0, 0, 128)\n    Goto SpawnSparks\n    TNT1 A 1 A_SpawnItemEx(\"SparkFlare_P5\", 0, 0, 0, 0, 0, 0, 0, 128)\n    Goto SpawnSparks\n    TNT1 A 1 A_SpawnItemEx(\"SparkFlare_P6\", 0, 0, 0, 0, 0, 0, 0, 128)\n    Goto SpawnSparks\n  SpawnSparks:\n    TNT1 A 0 A_JumpIf(Args[0] == 1, \"SpawnDown\")\n    TNT1 A 0 A_JumpIf(Args[0] > 1, \"SpawnSide\")\n    Goto SpawnUp\n  SpawnUp:\n    TNT1 AA 0 A_CustomMissile(\"Spark_P1\", 0, 0, Random(0, 360), 2, Random(67, 113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_P2\", 0, 0, Random(0, 360), 2, Random(67, 113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_P3\", 0, 0, Random(0, 360), 2, Random(67, 113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_P4\", 0, 0, Random(0, 360), 2, Random(67, 113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_P5\", 0, 0, Random(0, 360), 2, Random(67, 113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_P6\", 0, 0, Random(0, 360), 2, Random(67, 113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_P7\", 0, 0, Random(0, 360), 2, Random(67, 113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_P8\", 0, 0, Random(0, 360), 2, Random(67, 113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_P9\", 0, 0, Random(0, 360), 2, Random(67, 113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_P10\", 0, 0, Random(0, 360), 2, Random(67, 113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_P11\", 0, 0, Random(0, 360), 2, Random(67, 113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_P12\", 0, 0, Random(0, 360), 2, Random(67, 113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_P13\", 0, 0, Random(0, 360), 2, Random(67, 113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_P14\", 0, 0, Random(0, 360), 2, Random(67, 113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_P15\", 0, 0, Random(0, 360), 2, Random(67, 113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_P16\", 0, 0, Random(0, 360), 2, Random(67, 113))\n    TNT1 A 1 A_JumpIf(Args[2] > 0, 1)\n    Goto Spawn\n    TNT1 A 1\n    Goto Inactive\n  SpawnDown:\n    TNT1 AA 0 A_CustomMissile(\"Spark_P1\", 0, 0, Random(0, 360), 2, Random (-67, -113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_P2\", 0, 0, Random(0, 360), 2, Random (-67, -113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_P3\", 0, 0, Random(0, 360), 2, Random (-67, -113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_P4\", 0, 0, Random(0, 360), 2, Random (-67, -113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_P5\", 0, 0, Random(0, 360), 2, Random (-67, -113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_P6\", 0, 0, Random(0, 360), 2, Random (-67, -113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_P7\", 0, 0, Random(0, 360), 2, Random (-67, -113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_P8\", 0, 0, Random(0, 360), 2, Random (-67, -113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_P9\", 0, 0, Random(0, 360), 2, Random (-67, -113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_P10\", 0, 0, Random(0, 360), 2, Random (-67, -113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_P11\", 0, 0, Random(0, 360), 2, Random (-67, -113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_P12\", 0, 0, Random(0, 360), 2, Random (-67, -113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_P13\", 0, 0, Random(0, 360), 2, Random (-67, -113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_P14\", 0, 0, Random(0, 360), 2, Random (-67, -113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_P15\", 0, 0, Random(0, 360), 2, Random (-67, -113))\n    TNT1 AA 0 A_CustomMissile(\"Spark_P16\", 0, 0, Random(0, 360), 2, Random (-67, -113))\n    TNT1 A 1 A_JumpIf(Args[2] > 0, 1)\n    Goto Spawn\n    TNT1 A 1\n    Goto Inactive\n  SpawnSide:\n    TNT1 AA 0 A_CustomMissile(\"Spark_P1\", 0, 0, Random(-23, 23), 2, Random(157, 203))\n    TNT1 AA 0 A_CustomMissile(\"Spark_P2\", 0, 0, Random(-23, 23), 2, Random(157, 203))\n    TNT1 AA 0 A_CustomMissile(\"Spark_P3\", 0, 0, Random(-23, 23), 2, Random(157, 203))\n    TNT1 AA 0 A_CustomMissile(\"Spark_P4\", 0, 0, Random(-23, 23), 2, Random(157, 203))\n    TNT1 AA 0 A_CustomMissile(\"Spark_P5\", 0, 0, Random(-23, 23), 2, Random(157, 203))\n    TNT1 AA 0 A_CustomMissile(\"Spark_P6\", 0, 0, Random(-23, 23), 2, Random(157, 203))\n    TNT1 AA 0 A_CustomMissile(\"Spark_P7\", 0, 0, Random(-23, 23), 2, Random(157, 203))\n    TNT1 AA 0 A_CustomMissile(\"Spark_P8\", 0, 0, Random(-23, 23), 2, Random(157, 203))\n    TNT1 AA 0 A_CustomMissile(\"Spark_P9\", 0, 0, Random(-23, 23), 2, Random(157, 203))\n    TNT1 AA 0 A_CustomMissile(\"Spark_P10\", 0, 0, Random(-23, 23), 2, Random(157, 203))\n    TNT1 AA 0 A_CustomMissile(\"Spark_P11\", 0, 0, Random(-23, 23), 2, Random(157, 203))\n    TNT1 AA 0 A_CustomMissile(\"Spark_P12\", 0, 0, Random(-23, 23), 2, Random(157, 203))\n    TNT1 AA 0 A_CustomMissile(\"Spark_P13\", 0, 0, Random(-23, 23), 2, Random(157, 203))\n    TNT1 AA 0 A_CustomMissile(\"Spark_P14\", 0, 0, Random(-23, 23), 2, Random(157, 203))\n    TNT1 AA 0 A_CustomMissile(\"Spark_P15\", 0, 0, Random(-23, 23), 2, Random(157, 203))\n    TNT1 AA 0 A_CustomMissile(\"Spark_P16\", 0, 0, Random(-23, 23), 2, Random(157, 203))\n    TNT1 A 1 A_JumpIf(Args[2] > 0, 1)\n    Goto Spawn\n    TNT1 A 1\n    Goto Inactive\n  Inactive:\n    TNT1 A -1\n    Loop\n  }\n}\n\n//Flares\n\nActor SparkFlare_W1\n{\n  Height 0\n  Radius 0\n  Mass 0\n  +Missile\n  +NoBlockMap\n  +NoClip\n  +NoGravity\n  +NoInteraction\n  RenderStyle Add\n  Scale 0.25\n  States\n  {\n  Spawn:\n    SPKW A 1 Bright A_FadeOut(0.1)\n    Loop\n  }\n}\n\nActor SparkFlare_W2 : SparkFlare_W1 { States { Spawn: SPKW B 1 Bright A_FadeOut(0.1) Loop } }\nActor SparkFlare_W3 : SparkFlare_W1 { States { Spawn: SPKW C 1 Bright A_FadeOut(0.1) Loop } }\nActor SparkFlare_W4 : SparkFlare_W1 { States { Spawn: SPKW D 1 Bright A_FadeOut(0.1) Loop } }\nActor SparkFlare_W5 : SparkFlare_W1 { States { Spawn: SPKW E 1 Bright A_FadeOut(0.1) Loop } }\nActor SparkFlare_W6 : SparkFlare_W1 { States { Spawn: SPKW F 1 Bright A_FadeOut(0.1) Loop } }\n\nActor SparkFlare_R1 : SparkFlare_W1 { States { Spawn: SPKR A 1 Bright A_FadeOut (0.1) Loop } }\nActor SparkFlare_R2 : SparkFlare_W1 { States { Spawn: SPKR B 1 Bright A_FadeOut (0.1) Loop } }\nActor SparkFlare_R3 : SparkFlare_W1 { States { Spawn: SPKR C 1 Bright A_FadeOut (0.1) Loop } }\nActor SparkFlare_R4 : SparkFlare_W1 { States { Spawn: SPKR D 1 Bright A_FadeOut (0.1) Loop } }\nActor SparkFlare_R5 : SparkFlare_W1 { States { Spawn: SPKR E 1 Bright A_FadeOut (0.1) Loop } }\nActor SparkFlare_R6 : SparkFlare_W1 { States { Spawn: SPKR F 1 Bright A_FadeOut (0.1) Loop } }\n\nActor SparkFlare_O1 : SparkFlare_W1 { States { Spawn: SPKO A 1 Bright A_FadeOut (0.1) Loop } }\nActor SparkFlare_O2 : SparkFlare_W1 { States { Spawn: SPKO B 1 Bright A_FadeOut (0.1) Loop } }\nActor SparkFlare_O3 : SparkFlare_W1 { States { Spawn: SPKO C 1 Bright A_FadeOut (0.1) Loop } }\nActor SparkFlare_O4 : SparkFlare_W1 { States { Spawn: SPKO D 1 Bright A_FadeOut (0.1) Loop } }\nActor SparkFlare_O5 : SparkFlare_W1 { States { Spawn: SPKO E 1 Bright A_FadeOut (0.1) Loop } }\nActor SparkFlare_O6 : SparkFlare_W1 { States { Spawn: SPKO F 1 Bright A_FadeOut (0.1) Loop } }\n\nActor SparkFlare_Y1 : SparkFlare_W1 { States { Spawn: SPKY A 1 Bright A_FadeOut (0.1) Loop } }\nActor SparkFlare_Y2 : SparkFlare_W1 { States { Spawn: SPKY B 1 Bright A_FadeOut (0.1) Loop } }\nActor SparkFlare_Y3 : SparkFlare_W1 { States { Spawn: SPKY C 1 Bright A_FadeOut (0.1) Loop } }\nActor SparkFlare_Y4 : SparkFlare_W1 { States { Spawn: SPKY D 1 Bright A_FadeOut (0.1) Loop } }\nActor SparkFlare_Y5 : SparkFlare_W1 { States { Spawn: SPKY E 1 Bright A_FadeOut (0.1) Loop } }\nActor SparkFlare_Y6 : SparkFlare_W1 { States { Spawn: SPKY F 1 Bright A_FadeOut (0.1) Loop } }\n\nActor SparkFlare_G1 : SparkFlare_W1 { States { Spawn: SPKG A 1 Bright A_FadeOut(0.1) Loop } }\nActor SparkFlare_G2 : SparkFlare_W1 { States { Spawn: SPKG B 1 Bright A_FadeOut(0.1) Loop } }\nActor SparkFlare_G3 : SparkFlare_W1 { States { Spawn: SPKG C 1 Bright A_FadeOut(0.1) Loop } }\nActor SparkFlare_G4 : SparkFlare_W1 { States { Spawn: SPKG D 1 Bright A_FadeOut(0.1) Loop } }\nActor SparkFlare_G5 : SparkFlare_W1 { States { Spawn: SPKG E 1 Bright A_FadeOut(0.1) Loop } }\nActor SparkFlare_G6 : SparkFlare_W1 { States { Spawn: SPKG F 1 Bright A_FadeOut(0.1) Loop } }\n\nActor SparkFlare_B1 : SparkFlare_W1 { States { Spawn: SPKB A 1 Bright A_FadeOut(0.1) Loop } }\nActor SparkFlare_B2 : SparkFlare_W1 { States { Spawn: SPKB B 1 Bright A_FadeOut(0.1) Loop } }\nActor SparkFlare_B3 : SparkFlare_W1 { States { Spawn: SPKB C 1 Bright A_FadeOut(0.1) Loop } }\nActor SparkFlare_B4 : SparkFlare_W1 { States { Spawn: SPKB D 1 Bright A_FadeOut(0.1) Loop } }\nActor SparkFlare_B5 : SparkFlare_W1 { States { Spawn: SPKB E 1 Bright A_FadeOut(0.1) Loop } }\nActor SparkFlare_B6 : SparkFlare_W1 { States { Spawn: SPKB F 1 Bright A_FadeOut(0.1) Loop } }\n\nActor SparkFlare_P1 : SparkFlare_W1 { States { Spawn: SPKP A 1 bright A_FadeOut(0.1) Loop } }\nActor SparkFlare_P2 : SparkFlare_W1 { States { Spawn: SPKP B 1 bright A_FadeOut(0.1) Loop } }\nActor SparkFlare_P3 : SparkFlare_W1 { States { Spawn: SPKP C 1 bright A_FadeOut(0.1) Loop } }\nActor SparkFlare_P4 : SparkFlare_W1 { States { Spawn: SPKP D 1 bright A_FadeOut(0.1) Loop } }\nActor SparkFlare_P5 : SparkFlare_W1 { States { Spawn: SPKP E 1 bright A_FadeOut(0.1) Loop } }\nActor SparkFlare_P6 : SparkFlare_W1 { States { Spawn: SPKP F 1 bright A_FadeOut(0.1) Loop } }\n\n//Sparks\n\nActor Spark_W1\n{\n  Height 1\n  Radius 2\n  Mass 0\n  Speed 0.25\n  +Missile\n  +NoBlockMap\n  +LowGravity\n  RenderStyle Add\n  Scale 0.025\n  States\n  {\n  Spawn:\n    SPKW E 1 Bright\n    Loop\n  Death:\n    SPKW E 1 Bright A_FadeOut(0.1)\n    Loop\n  }\n}\n\nActor Spark_W2 : Spark_W1  { Speed 0.5  }\nActor Spark_W3 : Spark_W1  { Speed 0.75 }\nActor Spark_W4 : Spark_W1  { Speed 1.0  }\nActor Spark_W5 : Spark_W1  { Speed 1.25 }\nActor Spark_W6 : Spark_W1  { Speed 1.5  }\nActor Spark_W7 : Spark_W1  { Speed 1.75 }\nActor Spark_W8 : Spark_W1  { Speed 2.0  }\nActor Spark_W9 : Spark_W1  { Speed 2.25 }\nActor Spark_W10 : Spark_W1 { Speed 2.5  }\nActor Spark_W11 : Spark_W1 { Speed 2.75 }\nActor Spark_W12 : Spark_W1 { Speed 3.0  }\nActor Spark_W13 : Spark_W1 { Speed 3.25 }\nActor Spark_W14 : Spark_W1 { Speed 3.5  }\nActor Spark_W15 : Spark_W1 { Speed 3.75 }\nActor Spark_W16 : Spark_W1 { Speed 4.0  }\n\nActor Spark_R1 : Spark_W1\n{\n  States\n  {\n  Spawn:\n    SPKR E 1 bright\n    Loop\n  Death:\n    SPKR E 1 bright A_FadeOut (0.1)\n    Loop\n  }\n}\n\nActor Spark_R2 : Spark_R1  { Speed 0.5  }\nActor Spark_R3 : Spark_R1  { Speed 0.75 }\nActor Spark_R4 : Spark_R1  { Speed 1.0  }\nActor Spark_R5 : Spark_R1  { Speed 1.25 }\nActor Spark_R6 : Spark_R1  { Speed 1.5  }\nActor Spark_R7 : Spark_R1  { Speed 1.75 }\nActor Spark_R8 : Spark_R1  { Speed 2.0  }\nActor Spark_R9 : Spark_R1  { Speed 2.25 }\nActor Spark_R10 : Spark_R1 { Speed 2.5  }\nActor Spark_R11 : Spark_R1 { Speed 2.75 }\nActor Spark_R12 : Spark_R1 { Speed 3.0  }\nActor Spark_R13 : Spark_R1 { Speed 3.25 }\nActor Spark_R14 : Spark_R1 { Speed 3.5  }\nActor Spark_R15 : Spark_R1 { Speed 3.75 }\nActor Spark_R16 : Spark_R1 { Speed 4.0  }\n\nActor Spark_O1 : Spark_W1\n{\n  States\n  {\n  Spawn:\n    SPKO E 1 bright\n    Loop\n  Death:\n    SPKO E 1 bright A_FadeOut(0.1)\n    Loop\n  }\n}\n\nActor Spark_O2 : Spark_O1  { Speed 0.5  }\nActor Spark_O3 : Spark_O1  { Speed 0.75 }\nActor Spark_O4 : Spark_O1  { Speed 1.0  }\nActor Spark_O5 : Spark_O1  { Speed 1.25 }\nActor Spark_O6 : Spark_O1  { Speed 1.5  }\nActor Spark_O7 : Spark_O1  { Speed 1.75 }\nActor Spark_O8 : Spark_O1  { Speed 2.0  }\nActor Spark_O9 : Spark_O1  { Speed 2.25 }\nActor Spark_O10 : Spark_O1 { Speed 2.5  }\nActor Spark_O11 : Spark_O1 { Speed 2.75 }\nActor Spark_O12 : Spark_O1 { Speed 3.0  }\nActor Spark_O13 : Spark_O1 { Speed 3.25 }\nActor Spark_O14 : Spark_O1 { Speed 3.5  }\nActor Spark_O15 : Spark_O1 { Speed 3.75 }\nActor Spark_O16 : Spark_O1 { Speed 4.0  }\n\nActor Spark_Y1 : Spark_W1\n{\n  States\n  {\n  Spawn:\n    SPKY E 1 bright\n    Loop\n  Death:\n    SPKY E 1 bright A_FadeOut (0.1)\n    Loop\n  }\n}\n\nActor Spark_Y2 : Spark_Y1  { Speed 0.5  }\nActor Spark_Y3 : Spark_Y1  { Speed 0.75 }\nActor Spark_Y4 : Spark_Y1  { Speed 1.0  }\nActor Spark_Y5 : Spark_Y1  { Speed 1.25 }\nActor Spark_Y6 : Spark_Y1  { Speed 1.5  }\nActor Spark_Y7 : Spark_Y1  { Speed 1.75 }\nActor Spark_Y8 : Spark_Y1  { Speed 2.0  }\nActor Spark_Y9 : Spark_Y1  { Speed 2.25 }\nActor Spark_Y10 : Spark_Y1 { Speed 2.5  }\nActor Spark_Y11 : Spark_Y1 { Speed 2.75 }\nActor Spark_Y12 : Spark_Y1 { Speed 3.0  }\nActor Spark_Y13 : Spark_Y1 { Speed 3.25 }\nActor Spark_Y14 : Spark_Y1 { Speed 3.5  }\nActor Spark_Y15 : Spark_Y1 { Speed 3.75 }\nActor Spark_Y16 : Spark_Y1 { Speed 4.0  }\n\nActor Spark_G1 : Spark_W1\n{\n  States\n  {\n  Spawn:\n    SPKG E 1 Bright\n    Loop\n  Death:\n    SPKG E 1 Bright A_FadeOut(0.1)\n    Loop\n  }\n}\n\nActor Spark_G2 : Spark_G1  { Speed 0.5  }\nActor Spark_G3 : Spark_G1  { Speed 0.75 }\nActor Spark_G4 : Spark_G1  { Speed 1.0  }\nActor Spark_G5 : Spark_G1  { Speed 1.25 }\nActor Spark_G6 : Spark_G1  { Speed 1.5  }\nActor Spark_G7 : Spark_G1  { Speed 1.75 }\nActor Spark_G8 : Spark_G1  { Speed 2.0  }\nActor Spark_G9 : Spark_G1  { Speed 2.25 }\nActor Spark_G10 : Spark_G1 { Speed 2.5  }\nActor Spark_G11 : Spark_G1 { Speed 2.75 }\nActor Spark_G12 : Spark_G1 { Speed 3.0  }\nActor Spark_G13 : Spark_G1 { Speed 3.25 }\nActor Spark_G14 : Spark_G1 { Speed 3.5  }\nActor Spark_G15 : Spark_G1 { Speed 3.75 }\nActor Spark_G16 : Spark_G1 { Speed 4.0  }\n\nActor Spark_B1 : Spark_W1\n{\n  States\n  {\n  Spawn:\n    SPKB E 1 Bright\n    Loop\n  Death:\n    SPKB E 1 Bright A_FadeOut(0.1)\n    Loop\n  }\n}\n\nActor Spark_B2 : Spark_B1  { Speed 0.5  }\nActor Spark_B3 : Spark_B1  { Speed 0.75 }\nActor Spark_B4 : Spark_B1  { Speed 1.0  }\nActor Spark_B5 : Spark_B1  { Speed 1.25 }\nActor Spark_B6 : Spark_B1  { Speed 1.5  }\nActor Spark_B7 : Spark_B1  { Speed 1.75 }\nActor Spark_B8 : Spark_B1  { Speed 2.0  }\nActor Spark_B9 : Spark_B1  { Speed 2.25 }\nActor Spark_B10 : Spark_B1 { Speed 2.5  }\nActor Spark_B11 : Spark_B1 { Speed 2.75 }\nActor Spark_B12 : Spark_B1 { Speed 3.0  }\nActor Spark_B13 : Spark_B1 { Speed 3.25 }\nActor Spark_B14 : Spark_B1 { Speed 3.5  }\nActor Spark_B15 : Spark_B1 { Speed 3.75 }\nActor Spark_B16 : Spark_B1 { Speed 4.0  }\n\nActor Spark_P1 : Spark_W1\n{\n  states\n  {\n  Spawn:\n    SPKP E 1 Bright\n    Loop\n  Death:\n    SPKP E 1 Bright A_FadeOut(0.1)\n    Loop\n  }\n}\n\nActor Spark_P2 : Spark_P1  { Speed 0.5  }\nActor Spark_P3 : Spark_P1  { Speed 0.75 }\nActor Spark_P4 : Spark_P1  { Speed 1.0  }\nActor Spark_P5 : Spark_P1  { Speed 1.25 }\nActor Spark_P6 : Spark_P1  { Speed 1.5  }\nActor Spark_P7 : Spark_P1  { Speed 1.75 }\nActor Spark_P8 : Spark_P1  { Speed 2.0  }\nActor Spark_P9 : Spark_P1  { Speed 2.25 }\nActor Spark_P10 : Spark_P1 { Speed 2.5  }\nActor Spark_P11 : Spark_P1 { Speed 2.75 }\nActor Spark_P12 : Spark_P1 { Speed 3.0  }\nActor Spark_P13 : Spark_P1 { Speed 3.25 }\nActor Spark_P14 : Spark_P1 { Speed 3.5  }\nActor Spark_P15 : Spark_P1 { Speed 3.75 }\nActor Spark_P16 : Spark_P1 { Speed 4.0  }"
      },
      {
        "source": "pk3",
        "name": "ACTORS/SFX/SteamSpawner.txt",
        "contents": "Actor SteamSpawner : SwitchableDecoration 10000 //DoomEdNum Here\n{\n  Height 2\n  Radius 1\n  Mass 0\n  +NoBlockMap\n  +NoGravity\n  +NoInteraction\n  +ClientSideOnly\n  States\n  {\n  Spawn:\n  Active:\n    TNT1 A 0\n    TNT1 A 0 A_JumpIf(Args[0] == 1, \"Down\")\n    TNT1 A 0 A_JumpIf(Args[0] > 1, \"Forward\")\n    TNT1 A 0 A_JumpIf(Args[1] > 0, \"UpBurst\")\n    TNT1 A 0 A_JumpIf(Args[3] > 0, 2)\n    TNT1 A 0 A_PlaySoundEx(\"Steam/Loop\", \"SoundSlot7\", 1)\n    TNT1 A 1 A_SpawnItemEx(\"SteamParticle\", 0, 0, 1, (0.1)*Random(0, 4), 0, (0.1)*Random(35, 40), Random(0, 360), 128)\n    Loop\n  Down:\n    TNT1 A 0 A_JumpIf(Args[1] > 0, \"DownBurst\")\n    TNT1 A 0 A_JumpIf(Args[3] > 0, 2)\n    TNT1 A 0 A_PlaySoundEx(\"Steam/Loop\", \"SoundSlot7\", 1)\n    TNT1 A 1 A_SpawnItemEx(\"SteamParticle\", 0, 0, 0, (0.1)*Random(0, 4), 0, (-0.1)*Random(35, 40), Random(0, 360), 128)\n    Loop\n  Forward:\n    TNT1 A 0 A_JumpIf(Args[1] > 0, \"ForwardBurst\")\n    TNT1 A 0 A_JumpIf(Args[3] > 0, 2)\n    TNT1 A 0 A_PlaySoundEx(\"Steam/Loop\", \"SoundSlot7\", 1)\n    TNT1 A 1 A_SpawnItemEx(\"SteamParticle\", 0, 0, 0, (0.1)*Random(35, 40), 0, (0.1)*Random(-5, 5), Random(-8, 8), 128)\n    Loop\n  UpBurst:\n    TNT1 A 1 A_Jump(Args[2]/16, 1)\n    Loop\n    TNT1 A 0 A_JumpIf(Args[3] > 0, 2)\n    TNT1 A 0 A_PlaySoundEx(\"Steam/Fire\", \"SoundSlot7\", 0)\n    TNT1 AAAAAAAAAA 1 A_SpawnItemEx(\"SteamParticle\", 0, 0, 1, (0.1)*Random(0, 4), 0, (0.1)*Random(35, 40), Random(0, 360), 128)\n    TNT1 AAAAAAAAAA 1 A_SpawnItemEx(\"SteamParticle\", 0, 0, 1, (0.1)*Random(0, 4), 0, (0.1)*Random(35, 40), Random(0, 360), 128)\n    TNT1 AAAAAAAAAA 1 A_SpawnItemEx(\"SteamParticle\", 0, 0, 1, (0.1)*Random(0, 4), 0, (0.1)*Random(35, 40), Random(0, 360), 128)\n    Loop\n  DownBurst:\n    TNT1 A 1 A_Jump(Args[2]/16, 1)\n    Loop\n    TNT1 A 0 A_JumpIf(Args[3] > 0, 2)\n    TNT1 A 0 A_PlaySoundEx(\"Steam/Fire\", \"SoundSlot7\", 0)\n    TNT1 AAAAAAAAAA 1 A_SpawnItemEx(\"SteamParticle\", 0, 0, 0, (0.1)*Random(0, 4), 0, (-0.1)*Random(35, 40), Random(0, 360), 128)\n    TNT1 AAAAAAAAAA 1 A_SpawnItemEx(\"SteamParticle\", 0, 0, 0, (0.1)*Random(0, 4), 0, (-0.1)*Random(35, 40), Random(0, 360), 128)\n    TNT1 AAAAAAAAAA 1 A_SpawnItemEx(\"SteamParticle\", 0, 0, 0, (0.1)*Random(0, 4), 0, (-0.1)*Random(35, 40), Random(0, 360), 128)\n    Loop\n  ForwardBurst:\n    TNT1 A 1 A_Jump(Args[2]/16, 1)\n    Loop\n    TNT1 A 0 A_JumpIf(Args[3] > 0, 2)\n    TNT1 A 0 A_PlaySoundEx(\"Steam/Fire\", \"SoundSlot7\", 0)\n    TNT1 AAAAAAAAAA 1 A_SpawnItemEx(\"SteamParticle\", 0, 0, 0, (0.1)*Random(35, 40), 0, (0.1)*Random(-5, 5), Random(-8, 8), 128)\n    TNT1 AAAAAAAAAA 1 A_SpawnItemEx(\"SteamParticle\", 0, 0, 0, (0.1)*Random(35, 40), 0, (0.1)*Random(-5, 5), Random(-8, 8), 128)\n    TNT1 AAAAAAAAAA 1 A_SpawnItemEx(\"SteamParticle\", 0, 0, 0, (0.1)*Random(35, 40), 0, (0.1)*Random(-5, 5), Random(-8, 8), 128)\n    Loop\n  Inactive:\n    TNT1 A 1 A_StopSoundEx(\"SoundSlot7\")\n    TNT1 A 1\n    Goto Inactive+1\n  }\n}\n\nActor SteamParticle\n{\n  Height 1\n  Radius 1\n  +Missile\n  +NoGravity\n  +NoBlockMap\n  RenderStyle Add\n  Scale 0.4\n  Alpha 0.65\n  States\n  {\n  Spawn:\n    STEM A 2 A_SetTranslucent(0.6, 1)\n    STEM B 2 A_SetTranslucent(0.55, 1)\n    STEM C 2 A_SetTranslucent(0.5, 1)\n    STEM D 2 A_SetTranslucent(0.45, 1)\n    STEM E 2 A_SetTranslucent(0.4, 1)\n    STEM F 2 A_SetTranslucent(0.35, 1)\n    STEM G 2 A_SetTranslucent(0.3, 1)\n    STEM H 2 A_SetTranslucent(0.25, 1)\n    STEM I 2 A_SetTranslucent(0.2, 1)\n    STEM J 2 A_SetTranslucent(0.15, 1)\n    STEM K 2 A_SetTranslucent(0.1, 1)\n    STEM L 2 A_SetTranslucent(0.05, 1)\n    Stop\n  }\n}"
      },
      {
        "source": "readmes",
        "name": null,
        "contents": "===========================================================================\nUpdate to               : v1.2\nAdvanced engine needed  : K8Vavoom\n                          (https://www.doomworld.com/forum/topic/102766-k8vavoom-no-good-thing-ever-dies/)\n                          or GZDoom (latest version)\nPrimary purpose         : Single + coop play\n===========================================================================\nTitle                   : Quake2Doom\nFilename                : q2doom.pk3\nRelease date            : May 2019\nAuthor                  : The Solution and Gunrock\nEmail Address           : [redacted]\nOther Files By Author   : Southern Cross Gold and Dark Wispers\nMisc. Author Info       : Map Designer\n\nDescription             : Quake2Doom is a single+coop player map that\n                          originally started back in the summer of 2000 as a\n                          9 map quake2ish themed project.Though it failed to\n                          really capture the quake2 design. Now after 4\n                          years, the project is now redone and utilizing the\n                          advance capabilities of the K8Vavoom and GZDoom\n                          source ports. The features include: sloped sectors,\n                          quake2 style lighting, 3d room over room, polydoors\n                          and a custom tga sky box.\n\nAdditional Credits to   : ID Software, Ketmar, and Janis Legzdinsh.\n===========================================================================\n* What is included *\n\nNew levels              : Yes\nSounds                  : Yes\nMusic                   : Yes\nGraphics                : Yes\nDehacked/BEX Patch      : No\nDemos                   : No\nOther                   : No\nOther files required    : None\n\n* Play Information *\n\nGame                    : Doom 2\nMap #                   : 1\nSingle Player           : Designed for\nCooperative 2-4 Player  : Designed for\nDeathmatch 2-4 Player   : No\nOther game styles       : None\nDifficulty Settings     : Not implemented\n\n* Construction *\n\nBase                    : New from scratch\nBuild Time              : 3 weeks\nEditor(s) used          : GZDoom Builder\nKnown Bugs              : no\nMay Not Run With        : Compatible with both GZDoom and K8Vavoom\nTested With             :  GZDoom and K8Vavoom (latest versions)\n\n* Copyright / Permissions *\n\nThis work is licensed under the Creative Commons\nAttribution-NonCommercial-NoDerivatives 4.0 International License. To view a\ncopy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/\n\nYou are free to copy and redistribute the material in any medium or format.\nIf you do so, you must give appropriate credit, provide a link to the\nlicense, and indicate if changes were made. You may do so in any reasonable\nmanner, but not in any way that suggests the licensor endorses you or your\nuse. You may not use the material for commercial purposes. If you remix,\ntransform, or build upon the material, you may not distribute the modified\nmaterial.\n\n* Where to get the file that this text file describes *\n\nThe Usual: ftp://archives.gamers.org/pub/idgames/ and mirrors\nWeb sites: https://teamdemise.000webhostapp.com/\nFTP sites: ftp://archives.3dgamers.com/pub/idgames/ and mirrors"
      }
    ]
  },
  "maps": [
    {
      "map": "MAP01",
      "title": "MAP01",
      "format": "hexen",
      "stats": {
        "things": 436,
        "linedefs": 3529,
        "sidedefs": 5890,
        "vertices": 3393,
        "sectors": 881,
        "segs": 6882,
        "ssectors": 2035,
        "nodes": 2034,
        "textures": {
          "Q2FMET24": 21,
          "Q2GRT024": 8,
          "Q2GRT026": 2,
          "Q2LIT034": 4,
          "Q2MET138": 111,
          "Q2CMP060": 1,
          "Q2LIT026": 4,
          "Q2FBAS09": 14,
          "Q2PWR011": 62,
          "Q2FCRT05": 42,
          "Q2SIG039": 1,
          "Q2FBAS05": 9,
          "Q2MT120E": 4,
          "Q2CMP043": 2,
          "Q2SIG050": 1,
          "Q2MET097": 19,
          "Q2DOR021": 8,
          "Q2DOR019": 4,
          "Q2GRT029": 8,
          "Q2ORN006": 3,
          "Q2FGRT21": 77,
          "Q2FMET32": 1,
          "Q2CMP066": 1,
          "Q2DOR026": 4,
          "Q2FLIT51": 11,
          "Q2FGRT09": 4,
          "Q2FWAL41": 215,
          "Q2FCRT04": 1,
          "Q2MET135": 4,
          "CEIL5_2": 1,
          "Q2FLIT14": 2,
          "Q2FWAL32": 11,
          "Q2FWST25": 1,
          "Q2MT120D": 9,
          "Q2FETC20": 1,
          "Q2FMET64": 2,
          "Q2MET105": 15,
          "Q2FETC26": 1,
          "Q2PWR010": 289,
          "Q2FWAL40": 40,
          "Q2WAL093": 4,
          "Q2CRT011": 16,
          "Q2DOR028": 4,
          "Q2FGRT25": 13,
          "Q2FETC23": 1,
          "Q2FLIT89": 4,
          "Q2MET155": 4,
          "Q2CRT006": 53,
          "Q2FROF09": 336,
          "Q2GRT034": 2,
          "Q2MT120B": 5,
          "Q2FBAS18": 71,
          "Q2FETC25": 1,
          "Q2FETC16": 1,
          "Q2FLR007": 4,
          "Q2FSWT05": 1,
          "Q2FLIT73": 1,
          "Q2FLIT71": 1,
          "Q2FLIT21": 2,
          "Q2MET103": 10,
          "Q2FGRT22": 8,
          "Q2GRT038": 22,
          "Q2FETC21": 1,
          "Q2MET120": 63,
          "BROWN144": 3,
          "Q2FFLR33": 8,
          "Q2FMET35": 19,
          "Q2GRT036": 2,
          "Q2FMET18": 4,
          "Q2FGRT19": 6,
          "Q2MET084": 2,
          "Q2FFLR23": 4,
          "Q2FGRT20": 15,
          "Q2FGRT26": 4,
          "Q2MET093": 8,
          "Q2MET119": 4,
          "Q2FENV08": 12,
          "Q2MET123": 2,
          "Q2LIT016": 6,
          "METAL3": 2,
          "Q2DOR024": 6,
          "Q2ENV025": 129,
          "Q2FGRT44": 4,
          "Q2FLIT34": 4,
          "Q2FBAS06": 1,
          "Q2FMET14": 9,
          "Q2CMP068": 1,
          "Q2MET080": 10,
          "Q2MET124": 3,
          "Q2ETC038": 6,
          "Q2FCRT02": 8,
          "Q2FCRT03": 1,
          "Q2ORN021": 6,
          "Q2FMET22": 6,
          "Q2FGRT29": 2,
          "Q2GRT030": 2,
          "Q2MET121": 24,
          "FLOOR4_8": 1,
          "Q2SIG051": 30,
          "Q2MET064": 52,
          "Q2FMET12": 4,
          "Q2WST018": 18,
          "Q2FMET23": 26,
          "Q2LIT035": 4,
          "Q2MET081": 4,
          "Q2FLIT13": 2,
          "Q2WAL033": 6,
          "SW1MET2": 3,
          "Q2FCMP13": 1,
          "Q2FGRT33": 10,
          "Q2MET136": 12,
          "Q2FBAS01": 1,
          "Q2FGRT27": 8,
          "Q2MET100": 1,
          "Q2SIG021": 1,
          "SW1BRNGN": 1,
          "Q2GRT039": 2,
          "Q2LIT017": 2,
          "Q2FCRT01": 5,
          "Q2FMET28": 24,
          "Q2GRT041": 5,
          "METAL2": 2,
          "Q2DOR052": 2,
          "Q2CRT008": 282,
          "Q2FGRT17": 9,
          "Q2FMET21": 3,
          "Q2MET126": 2,
          "Q2PWR013": 5,
          "Q2FLIT23": 2,
          "Q2CMP044": 2,
          "Q2FLIT48": 8,
          "Q2GRT032": 4,
          "Q2FGRT02": 3,
          "F_SKY1": 148,
          "Q2FENV09": 32,
          "Q2MET031": 6,
          "Q2SIG016": 8,
          "Q2FETC17": 1,
          "Q2LIT001": 4,
          "Q2MET122": 16,
          "Q2SIG001": 1,
          "Q2GRT008": 45,
          "Q2SIG020": 1,
          "Q2FGRT18": 7,
          "Q2FLIT54": 3,
          "Q2FMET65": 8,
          "Q2GRT028": 377,
          "Q2FFLR36": 104,
          "Q2FMET30": 1,
          "Q2GRT064": 8,
          "Q2LIT055": 1,
          "CEIL1_1": 1,
          "Q2FBAS19": 114,
          "Q2CMP092": 1,
          "Q2FMHN27": 5,
          "Q2WAL092": 28,
          "Q2FLIT33": 26,
          "Q2CMP067": 1,
          "Q2ENV014": 24,
          "Q2FLIQ07": 2,
          "Q2FMET13": 18,
          "Q2MET118": 187,
          "Q2MET153": 3,
          "Q2FETC22": 1,
          "Q2FLR034": 274,
          "Q2MET104": 30,
          "Q2MET154": 4,
          "Q2SIG007": 1,
          "Q2GRT035": 72,
          "Q2ETC040": 4,
          "Q2FLIT41": 9,
          "Q2FMET49": 10,
          "Q2GRT040": 2,
          "Q2MET132": 4,
          "Q2FWST10": 12,
          "Q2MET082": 30,
          "Q2LIT013": 4,
          "Q2CRT007": 77,
          "Q2CRT010": 20,
          "Q2FLIT15": 2,
          "Q2MET133": 36,
          "Q2PWR017": 322,
          "Q2SIG040": 1,
          "Q2FFLR34": 14,
          "Q2MET086": 4,
          "Q2GRT031": 5,
          "Q2FMET29": 18,
          "SW1COMP": 1,
          "Q2CRT009": 12,
          "Q2FETC27": 1,
          "Q2FLIT61": 14,
          "Q2ORN025": 2,
          "Q2LIT061": 4,
          "COMPSPAN": 2,
          "SW1DIRT": 1,
          "Q2WAL090": 4,
          "Q2FGRT14": 13,
          "STARTAN3": 33,
          "Q2FLIT77": 25,
          "Q2FDOR01": 63,
          "Q2FETC24": 1,
          "Q2MET127": 30,
          "Q2MET137": 4,
          "Q2SWT024": 2,
          "Q2LIT044": 4,
          "Q2SWT009": 2,
          "Q2MET139": 36,
          "Q2LIT014": 4,
          "Q2PWR033": 6,
          "Q2MET087": 28,
          "Q2FMET34": 16,
          "Q2MET096": 160,
          "Q2MET106": 18,
          "Q2GRT010": 12,
          "Q2ORN007": 1,
          "Q2GRT027": 2,
          "Q2ETC039": 4,
          "Q2FGRT35": 2
        }
      },
      "monsters": {
        "total": 0,
        "by_type": {},
        "by_category": null
      },
      "items": {
        "total": 0,
        "by_type": {},
        "ammo_by_category": null,
        "weapons_present": null
      },
      "mechanics": {
        "teleports": false,
        "keys": [],
        "secret_exit": false
      },
      "difficulty": {
        "uv_monsters": 0,
        "hmp_monsters": 0,
        "htr_monsters": 0,
        "uv_items": 0,
        "hmp_items": 0,
        "htr_items": 0
      },
      "compatibility": "hexen",
      "metadata": {
        "title": null,
        "music": null,
        "source": "marker"
      },
      "images": [
        {
          "id": "168819a1-ace5-4900-9a3c-7df8cf4edea0",
          "url": "https://wadimages2.nyc3.digitaloceanspaces.com/18ae60ebac104c6a5ef42a035c10c9ce3da1173a/MAP01/images/0.webp",
          "type": null
        },
        {
          "id": "29d5a4db-9d06-420a-8d87-8dd95096948e",
          "url": "https://wadimages2.nyc3.digitaloceanspaces.com/18ae60ebac104c6a5ef42a035c10c9ce3da1173a/MAP01/pano/pano_0.webp",
          "type": "pano"
        }
      ]
    }
  ]
}

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.