Raw model (for completeness)
{
"meta": {
"id": "8f84fcf5-c8db-4451-92f9-73a736da2fd4",
"sha1": "76b63b990053e53f5229305be856885811e20746",
"sha256": "15027bcddf4953cd5958745aa3f3d3496f842a4efa9a00b0d5c78854f869fa74",
"filenames": [
"cyberpunkshootdown-v3.99.pk3"
],
"additional": {
"engines": [
"ZDOOM"
],
"iwad": [
"DOOM2"
],
"filename": null,
"added": "2014-09-25 22:19:06",
"locked": false,
"canDownload": true,
"adult": false,
"hidden": false,
"name": null,
"description": null,
"maps": null,
"graphicOverrides": null,
"screenshots": {
"MAP01": "MAP01.png"
},
"palettes": null,
"categories": null
},
"flags": {
"locked": false,
"canDownload": true,
"adult": false,
"hidden": false
},
"added": "2014-09-25 22:19:06",
"file": {
"type": "PK3",
"size": 5484229,
"url": "https://wadarchive2.nyc3.digitaloceanspaces.com/76b63b990053e53f5229305be856885811e20746/76b63b990053e53f5229305be856885811e20746.pk3.gz",
"corrupt": false
},
"content": {
"maps": [
"MAP01"
],
"counts": {
"endoom": 0,
"graphics": 0,
"lumps": 468,
"maps": 1,
"palettes": 14
},
"engines_guess": [
"ZDOOM"
],
"iwads_guess": [
"DOOM2"
]
},
"analysis": {
"title": "Cyberpunk Shootdown v3.99",
"description": "This WAD features a single, large-scale map designed for the ZDoom engine with DOOM2 IWAD compatibility. It emphasizes intense combat against waves of cyborg enemies, including shotgunners and riflemen, with a focus on hitscanner-heavy encounters and boss-like cyborgs. The resource balance is carefully managed with distinct ammo drops for different enemy types and a moderately generous supply of shells and bullets. The environment showcases cyberpunk-themed textures with outdoor and interior areas, combining techbase and urban motifs. Progression is wave-based and linear, relying on scripted enemy spawns rather than traditional key hunts or teleportation. The gameplay is challenging but balanced, suitable for players seeking a modernized, combat-focused experience within a single map.",
"tags": [
"ammo_plentiful",
"boss_encounters",
"doom2",
"hard",
"hitscanner_heavy",
"linear",
"single_map",
"techbase",
"zdoom"
],
"origin": "gpt-4.1-mini"
},
"text_files": [
{
"source": "pk3",
"name": "DOOMDEFS.txt",
"contents": "#include cybrpunk.bm"
},
{
"source": "pk3",
"name": "changelog.txt",
"contents": "changes from v3.72\n\n>shotgunners shotgun again, now with slightly slower projectiles\n>cyborgs fire single, faster shots\n>cyborg HP reduced from 200 to 150\n>shell drops replaced to accurately represent quantity\n>shotgunners exclusively drop shells\n>riflemen exclusively drop bullets\n>cyborgs still drop both\n>casings fade out over time\n>riflemen now spawn in waves 16-20\n>redid spawning scripts to offer better control over what spawns in what waves\n>increased enemies per wave from 7 to 8\n>added more shells to the store\n>new outside textures\n\nchanges from v3.8\n>some trash blew off the sidewalk and into the street\n\nchanges from v3.9\n>'widowmaker' autoshotgun introduced, cyborgs drop it rarely\n>interior textures"
},
{
"source": "pk3",
"name": "actors/Sparks.txt",
"contents": "ACTOR GunSpark\n{\n +CLIENTSIDEONLY\n Radius 8\n Height 8\n Speed 25\n RenderStyle ADD\n Alpha 1\n Projectile\n +DONTSPLASH\n +THRUSPECIES\n -NOGRAVITY\n +CLIENTSIDEONLY\n Gravity 0.3\n Scale 0.5\n BounceFactor 2.0\n BounceFactor 0.65\n States\n {\n Spawn:\n FRAG A 1\n Loop\n Death:\n\t FRAG A 1 BRIGHT A_SetTranslucent(.6,1)\n FRAG AA 1 BRIGHT A_SetTranslucent(.4,1)\n FRAG AAA 1 BRIGHT A_SetTranslucent(.2,1)\n FRAG AAAA 1 BRIGHT A_SetTranslucent(.0,1)\n Stop\n }\n}\n\nACTOR GunSpark2 : GunSpark\n{\n +CLIENTSIDEONLY\n Gravity 0.5\n BounceFactor 1.0\n RENDERSTYLE TRANSLUCENT\n Scale 0.4\n ALPHA 0.25\n states\n {\n Death:\n FRAG AA 1 BRIGHT A_SetTranslucent(.6,1)\n FRAG AAAA 1 BRIGHT A_SetTranslucent(.4,1)\n FRAG AAAAAA 1 BRIGHT A_SetTranslucent(.2,1)\n stop\n }\n}"
},
{
"source": "pk3",
"name": "actors/Casings.txt",
"contents": "////grabbed out of infodoom, which was torn out of mutiny////\nactor BulletCasing\n{\n +DOOMBOUNCE\n\t+CLIENTSIDEONLY\n PROJECTILE\n -NOGRAVITY\n -NOBLOCKMAP\n -NOTELEPORT\n Radius 2\n Damage 0\n SeeSound \"weapons/casing1\"\n Speed 5\n scale 0.2\n mass 5\n gravity 1\n bouncefactor 0.4\n States\n {\n Spawn:\n PBUL A 0 A_SetGravity (0.5)\n PBUL A 0 ThrustThingZ (0, 12, 0, 1)\n goto See\n See:\n PBUL A 0 ThrustThingZ(0,6,1,1)\n PBUL ABC 5 A_CustomMissile(\"RiflCaseSmoke\",0,0,0,2,0)\n loop\n Death:\n PBUL A 0 A_Jump (32,3)\n PBUL A 0 A_Jump (64,3)\n PBUL A 0 A_Jump (128,3)\n PBUL CCCCCCCCCC 25 A_FadeOut(0.10)\n Stop\n PBUL DDDDDDDDDD 25 A_FadeOut(0.10)\n Stop\n PBUL EEEEEEEEEE 25 A_FadeOut(0.10)\n Stop\n }\n}\n\nactor ShellCasing\n{\n +DOOMBOUNCE\n\t+CLIENTSIDEONLY\n PROJECTILE\n -NOGRAVITY\n -NOBLOCKMAP\n -NOTELEPORT\n Radius 2\n Damage 1\n SeeSound \"weapons/casing2\"\n Speed 8\n mass 5\n scale 0.2\n gravity 0.9\n bouncefactor 0.6\n States\n {\n Spawn:\n PSHE A 0 A_SetGravity (0.5)\n PSHE A 0 ThrustThingZ (0, 12, 0, 1)\n goto See\n See:\n PSHE A 0 ThrustThingZ(0,6,1,1)\n PSHE ABC 5 A_CustomMissile(\"RiflCaseSmoke\",0,0,0,2,0)\n loop\n Death:\n PSHE A 0 A_Jump (32,3)\n PSHE A 0 A_Jump (64,3)\n PSHE A 0 A_Jump (128,3)\n PSHE CCCCCCCCCC 25 A_FadeOut(0.10)\n Stop\n PSHE DDDDDDDDDD 25 A_FadeOut(0.10)\n Stop\n PSHE EEEEEEEEEE 25 A_FadeOut(0.10)\n Stop\n }\n}\n\nACTOR RifleCasing\n{\n\tHeight 2\n\tRadius 2\n\tSpeed 5\n\tScale 0.2\n\tBounceFactor 0.4\n\tMass 4\n\tPROJECTILE\n\t+DOOMBOUNCE\n\t+CLIENTSIDEONLY\n\t-NOGRAVITY\n\t-NOBLOCKMAP\n SeeSound \"weapons/casing1\"\n\tStates\n\t{\n\tSpawn:\n\t BRS3 A 0 A_Playsound(\"NULL\")\n\t BRS3 A 0 A_Jump(256, \"Spin1\", \"Spin2\", \"Spin3\", \"Spin4\", \"Spin5\")\n\t Goto Spawn+1\n\tSpin1:\n\t\tBRS3 ABCD 3 A_CustomMissile(\"RiflCaseSmoke\",0,0,0,2,0)\n\t\tLoop\n\tSpin2:\n\t\tBRS3 EFGH 3 A_CustomMissile(\"RiflCaseSmoke\",0,0,0,2,0)\n\t\tLoop\n\tSpin3:\n\t\tBRS3 IJKL 3 A_CustomMissile(\"RiflCaseSmoke\",0,0,0,2,0)\n\t\tLoop\n\tSpin4:\n\t\tBRS3 MNOP 3 A_CustomMissile(\"RiflCaseSmoke\",0,0,0,2,0)\n\t\tLoop\n\tSpin5:\n\t\tBRS3 QRST 3 A_CustomMissile(\"RiflCaseSmoke\",0,0,0,2,0)\n\t\tLoop\n\tDeath:\n\t \tBRS3 A 0 A_Jump(256,\"Lie1\",\"Lie2\",\"Lie3\",\"Lie4\",\"Lie5\",\"Lie6\")\n\t \tLoop\n\tLie1:\n\t\tBRS3 IIIIIIIIII 25 A_FadeOut(0.10)\n\t\tStop\n\tLie2:\n\t\tBRS3 KKKKKKKKKK 25 A_FadeOut(0.10)\n\t\tStop\n\tLie3:\n\t\tBRS3 MMMMMMMMMM 25 A_FadeOut(0.10)\n\t\tStop\n\tLie4:\n\t\tBRS3 OOOOOOOOOO 25 A_FadeOut(0.10)\n\t\tStop\n\tLie5:\n\t\tBRS3 QQQQQQQQQQ 25 A_FadeOut(0.10)\n\t\tStop\n\tLie6:\n\t\tBRS3 SSSSSSSSSS 25 A_FadeOut(0.10)\n\t\tStop\n\t}\n}\n\nACTOR RiflCaseSmoke\n{\n Radius 1\n Height 1\n PROJECTILE\n +CLIENTSIDEONLY\n +NOCLIP\n Scale 0.0425\n Speed 0\n RENDERSTYLE TRANSLUCENT\n ALPHA 0.10\n States\n {\n Spawn:\n SMOK ABCDEFGHIJKLMNOPQ 1\n Stop\n }\n}"
},
{
"source": "pk3",
"name": "actors/UMP45.txt",
"contents": "ACTOR UMP45 : Weapon\n{\n Weapon.SelectionOrder 64\n Weapon.AmmoUse 1\n Weapon.AmmoGive 50\n Weapon.AmmoType \"UMP4Ammo\"\n Weapon.AmmoType2 \"Clip\"\n Weapon.AmmoUse2 0\n Weapon.SlotNumber 4\n Inventory.PickupMessage \"HK416!\"\n Obituary \"%k eliminated %o.\"\n Decal BulletChip\n +WEAPON.AMMO_OPTIONAL\n +WEAPON.ALT_AMMO_OPTIONAL\n +NOAUTOFIRE\n States\n {\n Ready:\n\tUMP4 A 0 A_JumpIfInventory(\"ReloadItem\", 1, \"Reload\")\n UMP4 A 1 A_WeaponReady\n Loop\n Deselect:\n UMP4 A 1 A_Lower\n Loop\n Select:\n UMP4 A 1 A_Raise\n Loop\n Fire:\n\tUMP4 A 0 A_JumpIfInventory(\"UMP4Ammo\",1,1)\n Goto Click\n TNT1 A 0 A_PlayWeaponSound (\"UMP4/Fire\")\n TNT1 AA 0 A_FireCustomMissile(\"GunSpark\",1.5+random(-5.5,5.5),0,0,8,0,1.5+random(-2.8,2.8))\n TNT1 AA 0 A_FireCustomMissile(\"GunSpark2\",1.5+random(-5.5,5.5),0,0,8,0,1.5+random(-2.8,2.8))\n\tTNT1 A 0 A_FireCustomMissile(\"BulletCasing\",40+random(-2.8,2.8),0,6,2,25+random(-10.8,10.8))\n TNT1 A 0 Bright A_FireBullets (4, 3, 1, 7)\n UMP4 B 1 Bright A_SetPitch (pitch-0.9)\n\tUMP4 CAA 1 A_SetPitch (pitch+0.3)\n\tTNT1 A 0 A_Refire\n Goto Ready\n Click:\n UMP4 A 1\n Reload:\n UMP4 A 1 A_WeaponReady(WRF_NOFIRE | WRF_NOSWITCH)\n\tTNT1 A 0 A_JumpIfInventory(\"UMP4Ammo\",50,\"Ready\")\n TNT1 A 0 A_JumpIfInventory(\"Clip\",1,2)\n UMP4 A 0\n Goto Ready\n UMP4 DEF 2\n\tTNT1 A 0 A_PlaySoundEx(\"UMP4/Reload\",\"soundslot6\",0,0)\n\tUMP4 GHIJ 2\n\tUMP4 K 18\n\tLoading:\n TNT1 A 0 A_TakeInventory(\"Clip\", 1)\n TNT1 A 0 A_GiveInventory(\"UMP4Ammo\", 1)\n\tTNT1 A 0 A_JumpIfInventory(\"Clip\",1,1)\n\tGoto EndReloading\n\tTNT1 A 0 A_JumpIfInventory(\"UMP4Ammo\",50,1)\n\tLoop\n EndReloading:\n\tUMP4 JIHGFED 2\n\tUMP4 A 3\n Goto Ready\n Spawn:\n UMP4 Z -1\n\tStop\n }\n}\n\nACTOR UMP4Ammo : Ammo\n{\n Inventory.PickupMessage \"You shouldn't see this!\"\n Inventory.Amount 1\n Inventory.MaxAmount 50\n Ammo.BackpackAmount 0\n Ammo.BackpackMaxAmount 50\n +IGNORESKILL\n Inventory.Icon \"CLIPA0\"\n States\n {\n Spawn:\n CLIP A -1\n Stop\n }\n}"
},
{
"source": "pk3",
"name": "actors/Depezador.txt",
"contents": "actor Depezador : Weapon replaces Shotgun\n{\n Weapon.AmmoUse 1\n Weapon.AmmoGive 0\n Weapon.AmmoGive2 8\n Weapon.AmmoType \"DepeAmmo\"\n Weapon.AmmoType2 \"Shell\"\n Weapon.AmmoUse2 0\n weapon.slotnumber 3\n Decal \"BulletChip\"\n Scale 0.5\n Inventory.PickupMessage \"You got the Frenchie Depezador-12!\"\n +WEAPON.AMMO_OPTIONAL\n +WEAPON.ALT_AMMO_OPTIONAL\n +NOAUTOFIRE\n States\n {\n Ready:\n\t\tPHTG A 0 A_JumpIfInventory(\"ReloadItem\", 1, \"Reload\")\n PHTG A 1 A_WeaponReady\n loop\n Fire:\n\t TNT1 A 0 A_JumpIfInventory(\"DepeAmmo\",1,1)\n Goto Click\n TNT1 A 0\n TNT1 A 0 A_PlayWeaponSound(\"shotgun/fire\")\n TNT1 AAAA 0 A_FireCustomMissile(\"GunSpark\",1.5+random(-5.5,5.5),0,0,9,0,1.5+random(-2.8,2.8))\n TNT1 AAAA 0 A_FireCustomMissile(\"GunSpark2\",1.5+random(-5.5,5.5),0,0,9,0,1.5+random(-2.8,2.8))\n TNT1 A 0 A_FireBullets(2.25,1.75,8,7,\"BulletPuff\",1)\n TNT1 A 0 A_GunFlash\n SHTG A 0 A_SetAngle(angle + (random(-250, 250) / 200.0))\n PHTF A 2 BRIGHT A_SetPitch(pitch - 4)\n PHTF BCD 1\n TNT1 A 0 A_SetPitch(pitch + 2)\n PHTG BC 1\n TNT1 A 0 A_SetPitch(pitch + 1)\n PHTG DE 1\n TNT1 A 0 A_SetPitch(pitch + 1)\n PHTG FGH 1\n TNT1 A 0 A_PlaySoundEx(\"shotgun/pump\",\"soundslot6\",0,0)\n\t\tTNT1 A 0 A_FireCustomMissile(\"ShellCasing\",-40+random(-2.8,2.8),0,-6,2,25+random(-10.8,10.8))\n PHTG IJKK 1\n PHTG L 3 // Tee hee.\n PHTG K 2\n PHTG JIHGFEDCB 1\n goto Ready\n Deselect:\n PHTG A 1 A_Lower\n Loop\n Select:\n PHTG A 1 A_Raise\n Loop\n Spawn:\n SPAS P -1\n Stop\n Click:\n PHTG A 0\n Reload:\n\t\tPHTG A 1 A_WeaponReady(WRF_NOFIRE | WRF_NOSWITCH)\n TNT1 A 0 A_JumpIfInventory(\"DepeAmmo\",9,2)\n TNT1 A 0 A_JumpIfInventory(\"Shell\",1,2)\n TNT1 A 0\n Goto Ready\n PHTG MNOPPQQ 1\n PHTG R 2\n TNT1 E 0 A_PlayWeaponSound(\"shotgun/load\")\n TNT1 E 0 A_TakeInventory(\"Shell\",1)\n TNT1 F 0 A_GiveInventory(\"DepeAmmo\",1)\n PHTG RS 2\n PHTG T 3\n PHTG S 2\n\t\tTNT1 A 0 A_JumpIfInventory(\"DepeAmmo\", 2, 15)\n\t\tPHTG GH 1\n TNT1 A 0 A_PlaySoundEx(\"shotgun/pump\",\"soundslot6\",0,0)\n PHTG IJKK 1\n PHTG L 3\n PHTG K 2\n PHTG JIHGF 1\n\t\tPHTG A 0 A_JumpIfInventory(\"ReloadItem\", 1, \"ReloadLoop\")\n\t\tPHTG DCB 1\n\t\tgoto Ready\n\tReloadLoop:\n\t\tTNT1 A 0 A_JumpIfInventory(\"DepeAmmo\", 9, 11)\n\t\tTNT1 A 0 A_JumpIfInventory(\"Shell\", 1, 1)\n\t\tgoto ReloadLoop+11\n\t\tTNT1 A 0\n\t\tTNT1 E 0 A_PlayWeaponSound(\"shotgun/load\")\n TNT1 E 0 A_TakeInventory(\"Shell\",1)\n TNT1 F 0 A_GiveInventory(\"DepeAmmo\",1)\n PHTG RS 2\n PHTG T 3\n PHTG S 2 A_JumpIfInventory(\"DepeAmmo\", 9, 1)\n\t\tPHTG A 0 A_JumpIfInventory(\"ReloadItem\", 1, \"ReloadLoop\")\n\t\tPHTG R 1\n PHTG Q 2\n PHTG PPOMN 1\n Goto Ready\n }\n}\n\nACTOR DepeAmmo : Ammo\n{\n Inventory.MaxAmount 9\n Inventory.Icon \"SHELA0\"\n +IGNORESKILL\n\tammo.backpackamount 0\n\tammo.backpackmaxamount 9\n}\n\nactor StartedReload : Boolean\n{\n}"
},
{
"source": "pk3",
"name": "actors/Widowmaker.txt",
"contents": "ACTOR Widowmaker : Weapon\n{\n Weapon.AmmoUse 1\n Weapon.AmmoGive 0\n Weapon.AmmoGive2 24\n Weapon.AmmoType \"WidowAmmo\"\n Weapon.AmmoType2 \"Shell\"\n Weapon.AmmoUse2 0\n Weapon.SlotNumber 3\n Inventory.PickupMessage \"You got the 'Widowmaker' automatic shotgun. Sweep the streets clean of fascist scum!\"\n Obituary \"%k turned %o into a pillar of red mist 12 feet tall.\"\n Decal BulletChip\n +WEAPON.AMMO_OPTIONAL\n +WEAPON.ALT_AMMO_OPTIONAL\n +NOAUTOFIRE\n States\n {\n Ready:\n\tRIOT A 0 A_JumpIfInventory(\"ReloadItem\", 1, \"Reload\")\n RIOT A 1 A_WeaponReady\n Loop\n Deselect:\n RIOT A 1 A_Lower\n Loop\n Select:\n RIOT A 1 A_Raise\n Loop\n Fire:\n\tRIOT A 0 A_JumpIfInventory(\"WidowAmmo\",1,1)\n Goto Click\n TNT1 A 0 A_PlayWeaponSound (\"widowmaker/fire\")\n TNT1 AAAAA 0 A_FireCustomMissile(\"GunSpark\",1.5+random(-5.5,5.5),0,0,0,0,1.5+random(-2.8,2.8))\n TNT1 AAAA 0 A_FireCustomMissile(\"GunSpark2\",1.5+random(-5.5,5.5),0,0,0,0,1.5+random(-2.8,2.8))\n TNT1 A 0 Bright A_FireBullets (12, 10, 12, 4)\n RIOT B 1 Bright offset(0, 32) A_SetPitch (pitch-0.9)\n RIOT B 1 Bright offset(0, 40) A_SetPitch (pitch-0.9)\n\tRIOT C 1 Bright offset(0, 48) A_SetPitch (pitch-0.9)\n\tRIOT C 1 Bright offset(0, 56) A_SetPitch (pitch-0.9)\n\tRIOT D 1 offset(0, 52) A_SetPitch (pitch+0.6)\n\tRIOT D 1 offset(0, 48) A_SetPitch (pitch+0.6)\n\tRIOT E 1 offset(0, 44) A_SetPitch (pitch+0.6)\n\tRIOT E 1 offset(0, 40) A_SetPitch (pitch+0.6)\n\tRIOT F 1 offset(0, 36) A_SetPitch (pitch+0.6)\n\tRIOT F 1 offset(0, 32) A_SetPitch (pitch+0.6)\n\tTNT1 A 0 A_FireCustomMissile(\"ShellCasing\",40+random(-2.8,2.8),0,8,2,25+random(-10.8,10.8))\n\tTNT1 A 0 A_Refire\n Goto Ready\n Click:\n RIOT A 1\n Reload:\n RIOT A 1 A_WeaponReady(WRF_NOFIRE | WRF_NOSWITCH)\n\tTNT1 A 0 A_JumpIfInventory(\"WidowAmmo\",24,\"Ready\")\n TNT1 A 0 A_JumpIfInventory(\"Shell\",1,2)\n RIOT A 0\n Goto Ready\n RIOT A 1 Offset(0,43)\n\tRIOT A 1 Offset(0,45)\n\tRIOT A 1 Offset(0,47)\n\tRIOT A 1 Offset(0,49)\n\tRIOT A 2 Offset(0,52)\n\tRIOT D 2 Offset(0,52)\n\tTNT1 A 0 A_PlaySoundEx(\"widowmaker/reload1\",\"soundslot6\",0,0)\n\tRIOT D 2 Offset(0,56)\n\tRIOT D 2 Offset(0,54)\n\tRIOT D 2 Offset(0,53)\n\tRIOT D 3 Offset(0,52)\n\tLoading:\n TNT1 A 0 A_TakeInventory(\"Shell\", 1)\n TNT1 A 0 A_GiveInventory(\"WidowAmmo\", 1)\n\tTNT1 A 0 A_JumpIfInventory(\"Shell\",1,1)\n\tGoto EndReloading\n\tTNT1 A 0 A_JumpIfInventory(\"WidowAmmo\",24,1)\n\tLoop\n EndReloading:\n\tRIOT D 2 Offset(0,52)\n\tTNT1 A 0 A_PlaySoundEx(\"widowmaker/reload3\",\"soundslot6\",0,0)\n\tRIOT D 2 Offset(0,57)\n\tRIOT D 2 Offset(0,55)\n\tRIOT D 1 Offset(0,53)\n\tRIOT D 1 Offset(0,52)\n\tTNT1 A 0 A_PlaySoundEx(\"widowmaker/reload2\",\"soundslot6\",0,0)\n\tRIOT EF 2 Offset(0,49)\n\tRIOT A 2 Offset(0,47)\n\tRIOT A 2 Offset(0,45)\n\tRIOT A 2 Offset(0,43)\n\tRIOT A 2 A_PlaySoundEx(\"shotgun/pump\",\"soundslot6\",0,0)\n\tRIOT A 2 Offset(0,48)\n\tRIOT A 1 Offset(0,46)\n Goto Ready\n Spawn:\n RIOT Z -1\n\tStop\n }\n}\n\nACTOR WidowAmmo : Ammo\n{\n Inventory.Amount 1\n Inventory.MaxAmount 24\n Ammo.BackpackAmount 0\n Ammo.BackpackMaxAmount 24\n +IGNORESKILL\n Inventory.Icon \"SHELA0\"\n}"
},
{
"source": "pk3",
"name": "actors/CyberCop.txt",
"contents": "ACTOR CyberSWAT\n{\n Health 150\n Radius 20\n Height 56\n Mass 100\n Speed 10\n PainChance 200\n Monster\n +NOTARGET\n +NOINFIGHTING\n +FLOORCLIP\n +MISSILEMORE\n +MISSILEEVENMORE\n SeeSound \"enemy/see\"\n PainSound \"enemy/pain\"\n DeathSound \"enemy/death\"\n DropItem \"Clip\", 128\n DropItem \"Clip\", 64\n DropItem \"Clip\", 32\n DropItem \"Clip\", 16\n DropItem \"DroppedShell\", 64\n DropItem \"DroppedShell\", 32\n DropItem \"DroppedShell\", 16\n DropItem \"Widowmaker\", 16\n DropItem \"Stimpack\", 32\n DropItem \"Stimpack\", 16\n Obituary \"%o was deemed a threat.\"\n damagefactor \"Enemy\", 0.0\n States\n {\n Spawn:\n BRUS A 10 A_Look\n Loop\n See:\n BRUS AABBCCDD 2 A_Chase\n Loop\n Missile:\n\tBRUS E 5 A_FaceTarget\n BRUS E 0 A_PlaySound(\"enemy/shotfir\")\n BRUS F 5 bright A_CustomMissile(\"EnemyBullet\",32,10,random(-300,300)/100.00,0,pitch+random(-100,100)/100.00)\n Goto See Melee:\n BRUS GH 4 A_FaceTarget\n BRUS I 4 A_CustomMeleeAttack(random(1,10)*5,\"enemy/meleehit\",\"enemy/melee\")\n Goto See\n Pain:\n BRUS A 2\n BRUS A 2 A_Pain\n Goto See\n Death:\n BRUD A 6\n BRUD B 6 A_Scream\n BRUD C 6\n BRUD D 6 A_NoBlocking\n BRUD E -1\n Stop\n Raise:\n BRUD EDCBA 4\n goto See\n }\n}\n\nACTOR EnemyBullet\n{\n Projectile\n Radius 2\n Height 2\n Speed 22\n Damage (random(1,5)*3)\n Decal HImpScorch\n Projectile\n +MISSILE\n -NOCLIP\n\tDamageType \"Enemy\"\n States\n {\n Spawn:\n TNT1 A 0\n TNT1 A 1 A_SpawnItemEx(\"BulletBlasterTrail\", 0, 0, 2)\n TNT1 A 0 A_SpawnItemEx(\"BulletBlasterTrail\", (2 *momx)/-35.0, -(2 *momy)/-35.0, 2+(2 *momz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)\n TNT1 A 0 A_SpawnItemEx(\"BulletBlasterTrail\", (4 *momx)/-35.0, -(4 *momy)/-35.0, 2+(4 *momz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)\n TNT1 A 0 A_SpawnItemEx(\"BulletBlasterTrail\", (6 *momx)/-35.0, -(6 *momy)/-35.0, 2+(6 *momz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)\n TNT1 A 0 A_SpawnItemEx(\"BulletBlasterTrail\", (8 *momx)/-35.0, -(8 *momy)/-35.0, 2+(8 *momz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)\n TNT1 A 0 A_SpawnItemEx(\"BulletBlasterTrail\", (10*momx)/-35.0, -(10*momy)/-35.0, 2+(10*momz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)\n TNT1 A 0 A_SpawnItemEx(\"BulletBlasterTrail\", (12*momx)/-35.0, -(12*momy)/-35.0, 2+(12*momz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)\n TNT1 A 0 A_SpawnItemEx(\"BulletBlasterTrail\", (14*momx)/-35.0, -(14*momy)/-35.0, 2+(14*momz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)\n TNT1 A 0 A_SpawnItemEx(\"BulletBlasterTrail\", (16*momx)/-35.0, -(16*momy)/-35.0, 2+(16*momz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)\n TNT1 A 0 A_SpawnItemEx(\"BulletBlasterTrail\", (18*momx)/-35.0, -(18*momy)/-35.0, 2+(18*momz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)\n TNT1 A 0 A_SpawnItemEx(\"BulletBlasterTrail\", (20*momx)/-35.0, -(20*momy)/-35.0, 2+(20*momz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)\n TNT1 A 0 A_SpawnItemEx(\"BulletBlasterTrail\", (22*momx)/-35.0, -(22*momy)/-35.0, 2+(22*momz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)\n TNT1 A 0 A_SpawnItemEx(\"BulletBlasterTrail\", (24*momx)/-35.0, -(24*momy)/-35.0, 2+(24*momz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)\n TNT1 A 0 A_SpawnItemEx(\"BulletBlasterTrail\", (26*momx)/-35.0, -(26*momy)/-35.0, 2+(26*momz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)\n TNT1 A 0 A_SpawnItemEx(\"BulletBlasterTrail\", (28*momx)/-35.0, -(28*momy)/-35.0, 2+(28*momz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)\n TNT1 A 0 A_SpawnItemEx(\"BulletBlasterTrail\", (30*momx)/-35.0, -(30*momy)/-35.0, 2+(30*momz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)\n TNT1 A 0 A_SpawnItemEx(\"BulletBlasterTrail\", (32*momx)/-35.0, -(32*momy)/-35.0, 2+(32*momz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)\n TNT1 A 0 A_SpawnItemEx(\"BulletBlasterTrail\", (34*momx)/-35.0, -(34*momy)/-35.0, 2+(34*momz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)\n TNT1 A 0 A_SpawnItemEx(\"BulletBlasterTrail\", (36*momx)/-35.0, -(36*momy)/-35.0, 2+(36*momz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)\n TNT1 A 0 A_SpawnItemEx(\"BulletBlasterTrail\", (38*momx)/-35.0, -(38*momy)/-35.0, 2+(38*momz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)\n TNT1 A 0 A_SpawnItemEx(\"BulletBlasterTrail\", (40*momx)/-35.0, -(40*momy)/-35.0, 2+(40*momz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)\n Loop\n Death:\n TNT1 A 0 A_PlaySound(\"enemy/shothit\")\n TNT1 AAAAAAAAAAAAAAAA 0 A_SpawnItemEx(\"LaserHaze\",0,0,0,random(-100,100)/150.0,random(-100,100)/150.0,random(-100,100)/150.0,0,32)\n TNT1 AAAAAAAAAAAAAAAA 0 A_SpawnItemEx(\"LaserHaze2\",0,0,0,random(-100,100)/80.0,random(-100,100)/80.0,random(-100,100)/80.0,0,32)\n TNT1 A 4\n stop\n }\n}\n\nactor LaserHaze\n{\n +NOINTERACTION\n +CLIENTSIDEONLY\n Radius 0\n Height 0\n RenderStyle Add\n Scale 0.05\n Alpha 0.1\n\n States\n {\n Spawn:\n TNT1 A 0\n ELSR AAAAABBBBBCCCCC 2 bright A_FadeOut(random(2,5)/400.0)\n loop\n }\n}\n\nactor LaserHaze2\n{\n +NOINTERACTION\n +CLIENTSIDEONLY\n RenderStyle Add\n Scale 0.1\n Alpha 0.2\n States\n {\n Spawn:\n TNT1 A 0\n ELSR AAAAABBBBB 2 bright A_FadeOut(random(1,3)/100.0)\n loop\n }\n}\n\nactor BulletBlasterTrail\n{\n Scale 0.175\n RenderStyle Add\n Alpha 0.9\n +NOINTERACTION\n +CLIENTSIDEONLY\n States\n {\n Spawn:\n ELSR A 2 BRIGHT\n stop\n }\n}\n\nactor DroppedShell : Shell\n{\n\tinventory.pickupmessage \"Picked up 2 shotgun shells.\"\n\tstates\n\t{\n\tSpawn:\n\t\tSHL2 A -1\n\t\tstop\n\t}\n}"
},
{
"source": "pk3",
"name": "actors/Rifleman.txt",
"contents": "ACTOR CyberRifleMan\n{\n Health 85\n Radius 20\n Height 56\n Speed 9\n PainChance 140\n MONSTER\n +FLOORCLIP\n\t+NOTARGET\n\t+NOINFIGHTING\n SeeSound \"ZSpecOps/Sight\"\n ActiveSound \"ZSpecOps/Sight\"\n PainSound \"ZSpecOps/Pain\"\n DeathSound \"ZSpecOps/Death\"\n Obituary \"%o Was found Guilty.\"\n\tDropItem \"Clip\"\n\tDropItem \"Clip\", 128\n\tDropItem \"Clip\", 64\n\tDropItem \"Clip\", 32\n\tDropItem \"Clip\", 16\n\tDropItem \"StimPack\", 32\n\tDropItem \"StimPack\", 16\n\tDecal BulletChip\n\tdamagefactor \"Enemy\", 0.0\n States\n {\n Spawn:\n FRPO AB 10 A_Look\n Loop\n See:\n FRPO AABBCCDD 4 A_Chase\n Loop\n Missile:\n FRPO E 5 A_FaceTarget\n FRPO F 0 Bright A_PlayWeaponSound(\"Weapons/ShotGF\")\n FRPO F 5 Bright A_CustomMissile(\"RifleEnemyBullet\",35,10,random(-100,100)/100.00,0,pitch+random(-100,100)/100.00)\n FRPO E 1 A_CPosRefire\n Goto Missile+1\n Pain:\n FRPO G 3\n FRPO G 3 A_Pain\n Goto See\n Death:\n FRPO H 5\n FRPO I 5 A_Scream\n FRPO J 5 A_Fall\n FRPO K 5\n FRPO L -1\n Stop\n XDeath:\n FRPO O 5\n FRPO P 5 A_XScream\n FRPO Q 5 A_Fall\n FRPO RSTU 5\n FRPO V -1\n Stop\n Raise:\n FRPO KJIH 5\n Goto See\n }\n}\n\nactor RifleEnemyBullet : EnemyBullet\n{\n\tspeed 20\n}"
},
{
"source": "pk3",
"name": "actors/Shotgunner.txt",
"contents": "Actor CyberOfficer\n{\n Health 45 //80\n Height 56\n Radius 20\n Speed 8\n PainChance 96\n Monster\n +FloorClip\n +NoTarget\n +NoInfighting\n SeeSound \"ZSpecOps/Sight\"\n ActiveSound \"ZSpecOps/Sight\"\n PainSound \"ZSpecOps/Pain\"\n DeathSound \"ZSpecOps/Death\"\n Obituary \"%o did not cease and desist.\"\n Decal BulletChip\n DropItem \"DroppedShell\", 128\n DropItem \"DroppedShell\", 64\n DropItem \"DroppedShell\", 32\n DropItem \"DroppedShell\", 16\n DropItem \"Depezador\", 64\n DropItem \"Stimpack\", 32\n DropItem \"Stimpack\", 16\n damagefactor \"Enemy\", 0.0\n States\n {\n Spawn:\n ZSP1 AAAAAAAAAABBBBBBBBBB 1 A_Look\n Loop\n See:\n ZSP1 AABBCCDD 3 A_Chase\n Loop\n Missile:\n ZSP1 EEE 4 A_FaceTarget //12\n ZSP1 F 0 Bright A_PlayWeaponSound(\"Weapons/ShotGF\")\n TNT1 A 0 A_CustomMissile(\"ShotgunEnemyBullet\",32,10,random(-1000,-600)/100.00,0,pitch+random(-200,200)/100.00)\n TNT1 A 0 A_CustomMissile(\"ShotgunEnemyBullet\",32,10,random(600,1000)/100.00,0,pitch+random(-200,200)/100.00)\n ZSP1 F 10 Bright A_CustomMissile(\"ShotgunEnemyBullet\",32,10,random(-300,300)/100.00,0,pitch+random(-200,200)/100.00)\n ZSP1 EEEEEEEE 2 A_FaceTarget //16\n\tgoto See\n Pain:\n ZSP1 G 4\n ZSP1 G 4 A_Pain\n Goto See\n Death:\n ZSP1 H 5\n ZSP1 I 5 A_Scream\n ZSP1 J 5\n ZSP1 K 5 A_NoBlocking\n ZSP1 L -1\n Raise:\n ZSP1 LKJIH 5\n Goto See\n }\n}\n\nactor ShotgunEnemyBullet : EnemyBullet\n{\n\tspeed 17\n}"
},
{
"source": "pk3",
"name": "actors/spawners.txt",
"contents": "//waves 1-5\nactor WaveSpawner1 : RandomSpawner\n{\n\tdropitem \"CyberOfficer\", 255, 19\n\tdropitem \"CyberRifleman\", 255, 1\n}\n\n//waves 6-10\nactor WaveSpawner2 : RandomSpawner\n{\n\tdropitem \"CyberOfficer\", 255, 4\n\tdropitem \"CyberRifleman\", 255, 1\n}\n\n//waves 11-15\nactor WaveSpawner3 : RandomSpawner\n{\n\tdropitem \"CyberOfficer\", 255, 2\n\tdropitem \"CyberRifleman\", 255, 2\n\tdropitem \"CyberSWAT\", 255, 1\n}\n\n//waves 16-20\nactor WaveSpawner4 : RandomSpawner\n{\n\tdropitem \"CyberOfficer\", 255, 1\n\tdropitem \"CyberRifleman\", 255, 2\n\tdropitem \"CyberSWAT\", 255, 2\n}\n\n//waves 21-25\nactor WaveSpawner5 : RandomSpawner\n{\n\tdropitem \"CyberSWAT\", 255, 4\n\tdropitem \"CyberRifleman\", 255, 1\n}\n\n//wave 26+\nactor WaveSpawner6 : RandomSpawner\n{\n\tdropitem \"Cyberdemon\"\n}"
},
{
"source": "pk3",
"name": "actors/boss.txt",
"contents": "Actor CyberCyberDemon : Cyberdemon replaces Cyberdemon\n{\n\thealth 2000\n\tdropitem \"Shellbox\"\n\tdropitem \"ClipBox\"\n\tdropitem \"Shellbox\"\n\tdropitem \"ClipBox\"\n\tdropitem \"Shellbox\"\n\tdropitem \"ClipBox\"\n\tdropitem \"Shellbox\"\n\tdropitem \"ClipBox\"\n}"
}
]
},
"maps": [
{
"map": "MAP01",
"title": "MAP01",
"format": "hexen",
"stats": {
"things": 99,
"linedefs": 1086,
"sidedefs": 1974,
"vertices": 1071,
"sectors": 238,
"segs": 2365,
"ssectors": 764,
"nodes": 763,
"textures": {
"DOORTRAK": 2,
"STONE2": 6,
"SFLOOR01": 64,
"EXITSIGN": 4,
"TLITE6_6": 7,
"BRDOOR03": 2,
"STRWAL05": 5,
"STFT5R4": 2,
"SWALK7R2": 7,
"STFT4R4": 2,
"BRONZE3": 7,
"SHAWN1": 3,
"FWATER1": 5,
"SHAWN2": 33,
"CYBWALL9": 87,
"CRATOP1": 23,
"BROOM02": 3,
"CYBWAL5B": 7,
"CYBWALL2": 18,
"SCEIL02A": 1,
"CYBWL11H": 17,
"DRNKMSD2": 3,
"BRFLOOR0": 11,
"STRTFLT3": 1,
"BRICK11": 5,
"CYBWALL3": 3,
"SSHLF2": 7,
"BROOM05": 2,
"FLAT3": 18,
"STRTFLT2": 1,
"BROOM01": 27,
"CYBWALL6": 14,
"BRDOOR02": 1,
"GRAY1": 76,
"BRSTALL1": 15,
"SCEIL02": 44,
"SWALK5R1": 3,
"FLOOR7_2": 51,
"F_SKY1": 160,
"MARBGRAY": 69,
"DRINKS": 20,
"FLAT19": 4,
"SCEIL02B": 1,
"FLOOR0_5": 5,
"SCEIL01": 10,
"STRTFLT1": 1,
"SWALK8R4": 1,
"BRDOOR01": 1,
"SWALK6R1": 10,
"CYBWALL1": 9,
"CEIL4_2": 27,
"CEIL5_1": 52,
"DOOR": 8,
"FLAT2": 15,
"CYBWAL5H": 50,
"DRNKMCH": 4,
"FLAT17": 19,
"STFT7R2": 1,
"SWALK5R3": 8,
"STRWAL04": 95,
"CYBWALL4": 2,
"STRWAL01": 43,
"SSHLF1": 5,
"CYBWL11C": 31,
"DRNKMSD1": 3,
"SWALK4": 54,
"DRNKMSD3": 2,
"BROOM03": 1,
"SSHLF3": 23,
"SWALK6R2": 2,
"SWALK3": 13,
"CYBWALL8": 50
}
},
"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": "a98f4f13-face-480b-abcc-14aa9fe29174",
"url": "https://wadimages2.nyc3.digitaloceanspaces.com/76b63b990053e53f5229305be856885811e20746/MAP01/images/0.webp",
"type": null
},
{
"id": "2f3edac5-8f13-4189-80e5-b1a33c05b13e",
"url": "https://wadimages2.nyc3.digitaloceanspaces.com/76b63b990053e53f5229305be856885811e20746/MAP01/pano/pano_0.webp",
"type": "pano"
}
]
}
]
}