altfireclasses3h.pk3

PK3 12 KiB 0 map(s)

Counts

endoom0
graphics0
lumps20
maps0
palettes0

Totals (across maps)

Things0
Linedefs0
Sectors0
Monsters0
Items0
Raw model (for completeness)
{
  "meta": {
    "id": "0ab06ca3-74b6-41d5-9923-321a340e2c75",
    "sha1": "a3fd8892f2f6a395f05900350001c76500df2a06",
    "sha256": "9ec0b6135572c9e33e6b82a5a35f9d968f284d750e030b08a21e3ce4f4a8b9fe",
    "filenames": [
      "altfireclasses3h.pk3"
    ],
    "additional": {
      "engines": [
        "ZDOOM"
      ],
      "iwad": [],
      "filename": null,
      "added": "2018-11-01 01:25:14",
      "locked": false,
      "canDownload": true,
      "adult": false,
      "hidden": false,
      "name": null,
      "description": null,
      "maps": null,
      "graphicOverrides": null,
      "screenshots": null,
      "palettes": null,
      "categories": null
    },
    "flags": {
      "locked": false,
      "canDownload": true,
      "adult": false,
      "hidden": false
    },
    "added": "2018-11-01 01:25:14",
    "file": {
      "type": "PK3",
      "size": 12256,
      "url": "https://wadarchive2.nyc3.digitaloceanspaces.com/a3fd8892f2f6a395f05900350001c76500df2a06/a3fd8892f2f6a395f05900350001c76500df2a06.pk3.gz",
      "corrupt": false
    },
    "content": {
      "counts": {
        "endoom": 0,
        "graphics": 0,
        "lumps": 20,
        "maps": 0,
        "palettes": 0
      },
      "engines_guess": [
        "ZDOOM"
      ]
    },
    "analysis": {
      "title": "altfireclasses3h.pk3",
      "description": "This small PK3 mod contains no maps and is designed for the ZDoom engine. It adds custom player classes and weapons inspired by Megaman, featuring unique inventory items and alternate fire modes. The content focuses on gameplay mechanics and weapon behavior rather than level design or combat encounters. There are no traditional Doom monsters, textures, or map structures included. The mod is compatible with ZDoom and does not require any IWAD.",
      "tags": [
        "custom_weapons",
        "mechanics_mod",
        "no_maps",
        "player_classes",
        "zdoom"
      ],
      "origin": "gpt-4.1-mini"
    },
    "text_files": [
      {
        "source": "pk3",
        "name": "SpeedGear.txt",
        "contents": "actor SpeedGearPickup : CustomInventory\n{\nStates\n{\nPickup:\nTNT1 A 0 ACS_NamedExecuteAlways(\"MM8BDM_Speed_Gear\",0)\nstop\n}\n}\n\nactor SpeedGearPowerup : PowerSpeed\n{\n+POWERSPEED.NOTRAIL\nSpeed 1.45\n}"
      },
      {
        "source": "pk3",
        "name": "WepEdit.txt",
        "contents": "actor AtomicFireWep : AtomicFireWep0 replaces AtomicFireWep0\n{\nstates\n{\nReadyC:Goto Ready+1\n}\n}\n\nactor SuperArmWep : SuperArmWep0 replaces SuperArmWep0\n{\nstates\n{\nReadyC:Goto Ready+1\nDeselectFire:\nTNT1 A 0 A_JumpIfInventory(\"SuperArmTemp\",1,\"Throw\")\ngoto \"Super::DeselectFire\"\n}\n}\n\nactor MetalBladeWep : MetalBladeWep0 replaces MetalBladeWep0\n{\nstates\n{\nReadyC:Goto Ready+1\n}\n}\n\nactor SparkShockWep : SparkShockWep0 replaces SparkShockWep0\n{\nstates\n{\nReadyC:Goto Ready+1\n}\n}\n\nactor RemoteMineWep : RemoteMineWep0 replaces RemoteMineWep0\n{\nstates\n{\nReadyC:\nREMB A 0 A_TakeInventory(\"RemoteMineFlag\", 10)\nGoto Ready+1\nDeselectFire:\nREMB A 0 A_TakeInventory(\"WeaponCharge\", 9999)\nREMB A 0 A_GiveInventory(\"RemoteMineFlag\", 10)\ngoto \"Super::DeselectFire\"\n}\n}"
      },
      {
        "source": "pk3",
        "name": "Classes.txt",
        "contents": "actor MegamanSpecies : Megaman { species \"Megaman\" }\n\nactor MegamanBuster : MegamanSpecies\n{\nplayer.displayname \"MegamanBuster\"\nplayer.startitem \"MegaBuster\"\nplayer.startitem \"BusterAmmo\", 3\nplayer.startitem \"MegaBusterAlt\"\n}\n\nactor MegamanSpeed : MegamanSpecies\n{\nplayer.displayname \"MegamanSpeed\"\nplayer.startitem \"MegaBuster\"\nplayer.startitem \"BusterAmmo\", 3\nplayer.startitem \"NoWeaponAlt\"\nplayer.startitem \"SpeedGearPickup\"\n}\n\nactor MegaBusterAlt : Inventory\n{\ninventory.amount 1\ninventory.maxamount 1\n}\n\nactor NoWeaponAlt : Inventory\n{\ninventory.amount 1\ninventory.maxamount 1\n}"
      },
      {
        "source": "pk3",
        "name": "actors/inventory/baseweapon.txt",
        "contents": "actor BaseMM8BDMWep : Weapon\n{\n\t+WEAPON.AMMO_OPTIONAL\n\t//+WEAPON.ALT_AMMO_OPTIONAL\n\t//+WEAPON.ALT_USES_BOTH\n\t+WEAPON.DONTBOB\n\tinventory.pickupsound \"weapon/weaponup\"\n\tScale 2.0\n\n\tStates\n\t{\n\tBaseFuncFire:\n\t\t\"----\" A 0 A_GiveInventory(\"MissileStatePickup\",1)\n\t\t\"----\" A 0 A_GiveInventory(\"AmmoSyncPickup\",1)\n\t//Altfire:\n\t\t\"----\" A 0 A_JumpIf(CallACS(\"Func2Fire_Check\"),\"DeselectFire\")\n\t\t\"----\" A 1 A_JumpIfInventory(\"BusterAmmo\", 1, \"FuncFire\")\n\t\t\"----\" A 1 A_Jump(256, \"NoAmmo\")\n\t\twait\n\tFuncFire:\n\t\t\"----\" A 1 A_JumpIfInventory(\"BusterAmmo\", 1, \"Fire\")\n\t\t\"----\" A 1 A_Jump(256, \"NoAmmo\")\n\t\twait\n\tDeselectFire:\n\t\tBUST B 0 A_PlaySoundEx(\"weapon/mbuster\",\"Weapon\")\n\t\tBUST B 0 A_FireCustomMissile(\"MegaShot\",0,0,8,0)\n\t\tBUST CD 3\n\t\tBUST B 2\n\t\tgoto ReadyJump\n\tReadyJump:\n\t\t\"----\" A 1 A_JumpIfInventory(\"BusterAmmo\", 1, \"ReadyC\")\n\t\t\"----\" A 1 A_Jump(256, \"NoAmmo\")\n\t\twait\n\tReadyC:\n\t\t\"----\" A 1 A_JumpIfInventory(\"BusterAmmo\", 1, \"Ready\")\n\t\t\"----\" A 1 A_Jump(256, \"NoAmmo\")\n\t\twait\n\tFlashloop:\n\t\tTNT1 A 0\n\t\tstop\n\tNoFlash:\n\t\tTNT1 A 0\n\t\tstop\n\tSound.BusterCharge:\n\t\tTNT1 A 9 A_PlaySoundEx(\"weapon/adapterchargeloop\",\"Weapon\",0)\n\t\tTNT1 A 1 A_JumpIfInventory(\"WeaponCharge\",1,\"Sound.BusterCharge\")\n\t\tstop\n\t}\n}\n\nactor MissileStatePickup : CustomInventory\n{\nstates\n{\nPickup:\nTNT1 A 0 ACS_NamedExecuteWithResult(\"Set_Missile\")\nstop\n}\n}\n\nactor AmmoSyncPickup : CustomInventory\n{\nstates\n{\nPickup:\nTNT1 A 0 ACS_NamedExecuteAlways(\"Sync_Ammo\")\nstop\n}\n}\n\n// Used for Atomic Fire and other weapons that charge up\nactor WeaponCharge : Inventory\n{\ninventory.amount 1\ninventory.maxamount 5000\n}\n\n// Used for pretty much every shield in the game\nactor ShieldCheck : Inventory\n{\ninventory.amount 1\ninventory.maxamount 1\n}\n\n// These are used for Copy Vision and Remote Mine's aiming\nActor TargetMarker : CustomInventory\n{\nInventory.amount 1\nInventory.MaxAmount 1\n+AUTOACTIVATE\nStates\n{\nSpawn:\nTNT1 A 1\nstop\nUse:\n//TNT1 A 0 A_FireCustomMissile(\"TargetTracer\",0,0,0,16,0,0)\nTNT1 A 0 A_SpawnItemEx(\"TargetTracer\", 0, 8, 32, Cos(pitch)*1000, 0, sin(-pitch)*1000,0)\n//TNT1 A 0 A_RailAttack(0,0,0,\"none\",\"none\",RGF_SILENT|RGF_NOPIERCING, 0, \"TargetAimPoint\", 0, 0, 0) // For the future\nstop\n}\n}\n\nActor TargetMarker2 : TargetMarker\n{\nstates\n{\nUse:\n//TNT1 A 0 A_FireCustomMissile(\"TargetTracer\",0,0,0,16,0,0)\nTNT1 A 0 A_SpawnItemEx(\"TargetTracer2\", 0, 8, 32, Cos(pitch)*1000, 0, sin(-pitch)*1000,0)\nstop\n}\n}\n\nactor TargetTracer : FastProjectile\n{\nRadius 16\nHeight 1\nPROJECTILE\nSpeed 1000\nDamage(0)\nRenderStyle none\n+DONTSPLASH\n+DONTBLAST\n+THRUGHOST\n+SKYEXPLODE\n+NOTARGETSWITCH\nStates\n{\nSpawn:\nTNT1 A 5\nGoto Death\nDeath:\nTNT1 A 0\nTNT1 A 1 A_SpawnItemEx(\"TargetAimPoint\", 0, 0, 0)  //Thing_SpawnNoFog(0,201,0,ACS_ExecuteWithResult(257, 0)+100)\nstop\n}\n}\n\nactor TargetTracer2 : TargetTracer\n{\n+THRUACTORS\n}\n\nactor TargetAimPoint\n{\nPROJECTILE\n+NOINTERACTION\n+NOCLIP\n+RIPPER\nRenderStyle \"NONE\"\nRadius 16\nHeight 1\nscale 2.5\nStates\n{\nSpawn:\nTNT1 A 0 Thing_Remove(ACS_ExecuteWithResult(257, 0)+100)\nTNT1 A 0 Thing_ChangeTID(0, ACS_ExecuteWithResult(257, 0)+100)\nERO3 YYYYYYYYYY 1\nStop\nDeath:\nTNT1 A 0\nstop\n}\n}\n\n// Used for Skull Barrier and shields that tank a specified number of hits\nactor ShieldHits : Inventory\n{\n\tinventory.amount 1\n\tinventory.maxamount 999\n}\n\nactor HitShieldProtection : PowerProtection\n{\n\tpowerup.duration 10\n\tdamagefactor \"normal\", 0.0\n\tdamagefactor \"crush\", 1.0\n\tdamagefactor \"telefrag\", 1.0\n//\tdamagefactor \"LaserTrident\", 1.0\n}\n\nactor StopHitShield : PowerProtection\n{\n\tpowerup.duration 10\n}\n\nactor NoAmmoSoundCooldown : Powerup\n{\npowerup.duration 12\n}\n\nactor BaseShieldWarper\n{\n\tScale 2.5\n\tHeight 0\n\tRadius 0\n\t+NOINTERACTION\n\t+CLIENTSIDEONLY\n\t-SOLID\n\t+NOGRAVITY\n\t+MISSILE\n\t+DONTBLAST\n\tStates\n\t{\n\tSpawn:\n\t\tTNT1 A 0\n\t\tTNT1 A 0 ACS_NamedExecuteAlways(\"core_shieldwarper\", 0, 0)\n\t\tTNT1 A 0 A_Jump(256, \"Shield\")\n\t\tGoto Shield\n\tShield:\n\t\tSTAR AABBCCDD 1 A_Warp(AAPTR_TARGET, 0, 0, 16, 0, WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)\n\t\tloop\n\t}\n}"
      },
      {
        "source": "pk3",
        "name": "actors/inventory/mm1/superarm.txt",
        "contents": "// The actors here are tied to the MM2 story. Test that out after making changes!\n\n//actor SuperArmWep : BaseMM8BDMWep 10044\nactor SuperArmWep0 : BaseMM8BDMWep 10044\n{\n//$Category MM8BDM-Weapons\n//$Title Super Arm\nWeapon.AmmoUse 4\nWeapon.AmmoGive 28\nWeapon.SlotNumber 5\nInventory.Pickupmessage \"$PU_SUPERARM\"\nObituary \"$OB_SUPERARM\"\nTag \"$TAG_SUPERARM\"\nweapon.ammotype \"SuperArmAmmo\"\ninventory.icon \"SARMSI\"\n+WEAPON.NOAUTOAIM\nStates\n{\nSpawn:\nWEAP O 1\nloop\nReady:\nGUTA A 0 ACS_ExecuteAlways(998,0,14)\n\"----\" A 0 A_JumpIf(CallACS(\"FuncFire_Check\"),\"BaseFuncFire\")\nGUTA A 1 A_WeaponReady\nGoto Ready+1\nDeselect:\nGUTA A 0 A_JumpIfInventory(\"SuperArmTemp\",1,24)\nTNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Lower\nGUTA A 1 A_Lower\nGoto Deselect+1\nGUTA A 0\nGUTA A 0 A_JumpIfHealthLower(0,9)\nGUTA A 0 A_FireCustomMissile(\"GutRock\",0,1,0,56)\nGUTA FGHIJKLM 3\nGUTA A 0 A_TakeInventory(\"SuperArmTemp\",1)\nGoto Deselect+1\nSelect:\nTNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Raise\nGUTA A 1 A_Raise\nLoop\nFire:\nTNT1 A 0 A_JumpIfInventory(\"SuperArmTemp\",1,\"Throw\")\nTNT1 A 1 A_JumpIfNoAmmo(\"NoAmmo\")\nGUTA A 0 A_PlaySoundEx(\"weapon/superarmuse\",\"Weapon\")\nGUTA A 0 A_Stop\nGUTA A 0 A_GiveInventory(\"SuperArmTemp\",1)\nGUTA A 0 SetPlayerProperty(0,1,0)\nGUTA B 1 A_SpawnItemEx(\"GutrockPickingup\",34 + 32,0,-28,-7,0,12,0,SXF_NOCHECKPOSITION)\nGUTA B 1\nGUTA CC 1 //A_SpawnItemEx(\"TempGutrock\",34 + 32,0,0,0,0,0,0,SXF_NOCHECKPOSITION)\nGUTA DD 1 //A_SpawnItemEx(\"TempGutrock\",34 + 32,0,28,0,0,0,0,SXF_NOCHECKPOSITION)\nGUTA EE 1 //A_SpawnItemEx(\"TempGutrock\",34 + 32,0,56,0,0,0,0,SXF_NOCHECKPOSITION)\nGUTA D 0 SetPlayerProperty(0,0,0)\nTNT1 AAAAA 1 A_SpawnItemEx(\"TempGutrock\", 0, 0, 56 + 20, momx, momy, momz, 0, SXF_ABSOLUTEMOMENTUM, 0)\n//Goto Holding\n//Holding:\nTNT1 A 0 A_SpawnItemEx(\"TempGutrock\", 0, 0, 56 + 20, momx, momy, momz, 0, SXF_ABSOLUTEMOMENTUM, 0)\n\"----\" A 0 A_JumpIf(CallACS(\"FuncFire_Check\"),\"BaseFuncFire\")\nTNT1 A 1 A_WeaponReady\nGoto Fire+20\nThrow:\nGUTA A 0 A_FireCustomMissile(\"GutRock\",0,1,0,56)//A_SpawnItemEx(\"GutRock\",0,0,56,20,0,-4,0,0,0)\nGUTA A 0 A_TakeInventory(\"SuperArmTemp\",1)\nGUTA FGHIJKLM 3\nGoto Ready+1\nHold:\nGUTA A 1 ACS_Execute(979,0)\nGoto Ready+1\nNoAmmo:\nGUTA A 0 ACS_Execute(979,0)\nGoto Hold\n}\n}\n\nactor GutrockPickingup\n{\nPROJECTILE\n+NOINTERACTION\nscale 2.5\nstates\n{\nSpawn:\nSARM C 9 // Used for potential voxel usage\nstop\n}\n}\n\nactor SuperArmTemp : Inventory\n{\ninventory.amount 1\ninventory.maxamount 1\n}\n\nactor TempGutrock\n{\n+NOINTERACTION\n-SOLID\n+NOGRAVITY\n+NOTIMEFREEZE\nradius 0\nheight 0\nscale 2.5\nStates\n{\nSpawn:\nSARM CC 1\nstop\n}\n}\n\nactor Gutrock\n{\nPROJECTILE\nDamage (60)\ndamagetype \"SuperArm\"\nObituary \"$OB_SUPERARM\"\nHeight 30\nRadius 30\n-NOGRAVITY\nSpeed 30\nscale 2.5\nStates\n{\nSpawn:\nSARM A 0\nSARM A 0 ThrustThingZ(0,20,0,1)\nSARM A 1\nGoto Spawn+2\nCrash:\nSARM AAAA 0 A_SpawnItemEx(\"GutrockFX\",0,0,0,random(-10,10),random(-10,10),random(5,10),random(0,360))\nTNT1 A 2 A_PlaySoundEx(\"weapon/superarmhit\", \"Voice\")\nstop\nDeath:\nSARM A 0 A_SpawnItemEx(\"GutrockDebris\", -16, -16, 16, 20, 0, 0, 0, 0)\nSARM A 0 A_SpawnItemEx(\"GutrockDebris\", -16, 16, 16, 30, 0, 0, 0, 0)\nSARM A 0 A_SpawnItemEx(\"GutrockDebris\", 16, -16, 16, 30, 0, 6, 0, 0)\nSARM A 0 A_SpawnItemEx(\"GutrockDebris\", 16, 16, 16, 20, 0, 3, 0, 0)\nTNT1 A 2 A_PlaySoundEx(\"weapon/superarmhit\", \"Voice\")\nstop\n}\n}\n\nactor GutrockFX\n{\ndamage 0\n+RIPPER\n-NOGRAVITY\n+CLIENTSIDEONLY\n-SOLID\nscale 2.5\n+HEXENBOUNCE\n//+NOINTERACTION\nHeight 2\nRadius 2\nStates\n{\nSpawn:\nSARM B 2\nTNT1 A 2\nSARM B 2\nTNT1 A 2\nSARM B 2\nTNT1 A 2\nSARM B 2\nTNT1 A 2\nSARM B 2\nTNT1 A 2\nstop\n}\n}\n\nactor GutrockDebris\n{\nPROJECTILE\nDamage (15)\ndamagetype \"SuperArm\"\nObituary \"$OB_SUPERARM\"\nHeight 12\nRadius 12\nscale 2.5\nSpeed 20\nStates\n{\nSpawn:\nSARM B 1\nloop\n}\n}\n\nactor SuperArmAmmo : Ammo\n{\ninventory.amount 1\ninventory.maxamount 28\n+INVENTORY.IGNORESKILL\n}"
      },
      {
        "source": "pk3",
        "name": "actors/inventory/mm2/atomicfire.txt",
        "contents": "//actor AtomicFireWep : BaseMM8BDMWep 10010\nactor AtomicFireWep0 : BaseMM8BDMWep 10010\n{\n//$Category MM8BDM-Weapons\nWeapon.AmmoUse 1\nWeapon.AmmoGive 28\nWeapon.SlotNumber 5\nInventory.Pickupmessage \"$PU_ATOMICFIRE\"\nObituary \"$OB_ATOMICFIRE\"\nweapon.ammotype \"AtomicFireAmmo\"\nTag \"$TAG_ATOMICFIRE\"\ninventory.pickupsound \"weapon/weaponup\"\ninventory.icon \"ATOMI\"\n+WEAPON.AMMO_OPTIONAL\nScale 2.0\nStates\n{\nSpawn:\nWEAP E 1\nloop\nReady:\nHEAT G 0 ACS_ExecuteAlways(998,0,3)\n\"----\" A 0 A_JumpIf(CallACS(\"FuncFire_Check\"),\"BaseFuncFire\")\nHEAT G 1 A_WeaponReady\nGoto Ready+1\nDeselect:\nTNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Lower\nHEAT G 1\nLoop\nSelect:\nTNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Raise\nHEAT G 1\nLoop\nFire:\nHEAT G 0 A_JumpIfNoAmmo(\"NoAmmo\")\nHEAT G 1\ngoto Hold\nHold:\nHEAT G 0 A_JumpIfNoAmmo(\"NoAmmo\")\nHEAT G 0 A_JumpIfInventory(\"WeaponCharge\",1,\"Hold2Start\")\nHEAT G 2 A_GiveInventory(\"WeaponCharge\",1)\nHEAT G 0 A_Refire\nGoto Fire1\nHold2Start:\nHEAT G 0 A_GunFlash(\"Sound.Heat\", GFF_NOEXTCHANGE)//A_PlaySoundEx(\"weapon/heat1\", \"SoundSlot5\", 1)\nHold2:\nHEAT G 0 A_JumpIfInventory(\"WeaponCharge\",40,\"Hold3Start\")\nHEAT H 1 ACS_ExecuteAlways(991,0,60)\nHEAT G 0 A_Refire(\"Hold2.a\")\nGoto Fire1\nHold2.a:\nHEAT G 0 ACS_ExecuteAlways(991,0,3)\nHEAT G 1 A_GiveInventory(\"WeaponCharge\",1)\nHEAT G 0 A_Refire(\"Hold2\")\nGoto Fire1\nHold3Start:\nHold3:\nHEAT G 0 A_JumpIfInventory(\"WeaponCharge\",70,\"Hold4Start\")\nHEAT I 1 ACS_ExecuteAlways(991,0,61)\nHEAT G 0 A_Refire(\"Hold3.a\")\nGoto Fire2\nHold3.a:\nHEAT G 1 ACS_ExecuteAlways(991,0,3)\nHEAT G 0 A_GiveInventory(\"WeaponCharge\",1)\nHEAT G 0 A_Refire(\"Hold3\")\nGoto Fire2\nBotFire:\nHEAT G 0 A_Jump(16, \"Fire3\")\nHEAT G 0 A_Refire(\"Hold4\")\nGoto Fire3\nHold4Start:\nHold4:\nHEAT J 1 ACS_ExecuteAlways(991,0,62)\nHEAT G 0 A_Refire(\"Hold4.a\")\nGoto Fire3\nHold4.a:\nHEAT G 1 ACS_ExecuteAlways(991,0,3)\nHEAT G 0 A_JumpIfInventory(\"IsBot\", 1, \"BotFire\")\nHEAT G 0 A_Refire(\"Hold4\")\nGoto Fire3\nFire1:\nHEAT G 0 ACS_ExecuteAlways(991,0,3)\nHEAT G 0 A_TakeInventory(\"WeaponCharge\",500)\nHEAT G 0 A_ClearRefire\nHEAT G 0 A_PlaySoundEx(\"weapon/atomicfire\",\"Weapon\")\nHEAT G 0 A_TakeInventory(\"AtomicFireAmmo\",1)\nHEAT G 0 A_FireCustomMissile(\"AtomicFire1\",0,0,8,0)\nHEAT KL 2\nGoto Ready+1\nFire2:\nHEAT G 0 ACS_ExecuteAlways(991,0,3)\nHEAT G 0 A_TakeInventory(\"WeaponCharge\",500)\nHEAT G 0 A_ClearRefire\nHEAT G 0 A_PlaySoundEx(\"weapon/atomicfire\",\"Weapon\")\nHEAT G 0 A_JumpIfInventory(\"AtomicFireAmmo\", 5, \"Fire2r\")\nHEAT G 0 A_TakeInventory(\"AtomicFireAmmo\",5)\nHEAT G 0 A_FireCustomMissile(\"AtomicFire1\",0,0,8,0)\nHEAT KL 2\nGoto Ready+1\nFire2r:\nHEAT G 0 ACS_ExecuteAlways(991,0,3)\nHEAT G 0 A_TakeInventory(\"AtomicFireAmmo\",5)\nHEAT G 0 A_FireCustomMissile(\"AtomicFire2\",0,0,8,0)\nHEAT KL 2\nGoto Ready+1\nFire3:\nHEAT G 0 ACS_ExecuteAlways(991,0,3)\nHEAT G 0 A_TakeInventory(\"WeaponCharge\",500)\nHEAT G 0 A_ClearRefire\nHEAT G 0 A_PlaySoundEx(\"weapon/atomicfire\",\"Weapon\")\nHEAT G 0 A_JumpIfInventory(\"AtomicFireAmmo\", 14, \"Fire3r\")\nHEAT G 0 A_JumpIfInventory(\"AtomicFireAmmo\", 5, \"Fire2r\")\nHEAT G 0 A_TakeInventory(\"AtomicFireAmmo\",14)\nHEAT G 0 A_FireCustomMissile(\"AtomicFire1\",0,0,8,0)\nHEAT KL 3\nHEAT G 3\nGoto Ready+1\nFire3r:\nHEAT G 0 ACS_ExecuteAlways(991,0,3)\nHEAT G 0 A_TakeInventory(\"AtomicFireAmmo\",14)\nHEAT G 0 A_FireCustomMissile(\"AtomicFire3\",0,0,8,0)\nHEAT KL 5\nHEAT G 4\nGoto Ready+1\nNoAmmo:\nHEAT G 1 ACS_Execute(979,0)\nHEAT G 0 A_Refire\nGoto Ready+1\n\nSound.Heat:\nTNT1 A 0 A_JumpIfInventory(\"WeaponCharge\",70,\"Sound.Heat3\")\nTNT1 A 0 A_JumpIfInventory(\"WeaponCharge\",40,\"Sound.Heat2\")\nTNT1 A 4 A_PlaySoundEx(\"weapon/heat1\", \"Weapon\", 0)\nTNT1 A 1 A_JumpIfInventory(\"WeaponCharge\",1,\"Sound.Heat\")\nstop\nSound.Heat2:\nTNT1 A 4 A_PlaySoundEx(\"weapon/heat2\", \"Weapon\", 0)\nTNT1 A 1 A_JumpIfInventory(\"WeaponCharge\",1,\"Sound.Heat\")\nstop\nSound.Heat3:\nTNT1 A 4 A_PlaySoundEx(\"weapon/heat3\", \"Weapon\", 0)\nTNT1 A 1 A_JumpIfInventory(\"WeaponCharge\",1,\"Sound.Heat\")\nstop\n}\n}\n\nactor AtomicFireAmmo : Ammo\n{\n+INVENTORY.IGNORESKILL\ninventory.amount 1\ninventory.maxamount 28\n}\n\nactor AtomicFire1\n{\nscale 2.5\nPROJECTILE\nRadius 4\nHeight 4\nDamage (12)\ndamagetype \"AtomicFire1\"\nObituary \"$OB_ATOMICFIRE\"\nSpeed 24\nStates\n{\nSpawn:\nHEAT AB 3\nloop\nDeath:\nTNT1 A 0\nTNT1 A 0 A_SpawnItemEx(\"OilPitIgnite\",0,0,8)\nstop\n}\n}\n\nactor AtomicFire2 : AtomicFire1\n{\nRadius 10\nHeight 10\nDamage (50)\ndamagetype \"AtomicFire2\"\n+DONTBLAST\nStates\n{\nSpawn:\nHEAT CD 3\nloop\nDeath:\nTNT1 A 0\nTNT1 A 0 A_SpawnItemEx(\"OilPitIgnite\",0,0,8)\nstop\n}\n}\n\nactor AtomicFire3 : AtomicFire1\n{\nRadius 15\nHeight 15\n+RIPPER\n+DONTBLAST\ndamagetype \"AtomicFire3\"\nDamage (100)\nspeed 8\nStates\n{\nSpawn:\nHEAT EF 3\nHEAT E 0 A_ScaleVelocity(2.0)\nHEAT E 0 A_PlaySoundEx(\"weapon/atomicfire\", \"body\")\nHEAT EF 3\nHEAT E 0 A_ScaleVelocity(2.0)\nHEAT E 0 A_PlaySoundEx(\"weapon/atomicfire\", \"body\")\nHEAT EF 3 A_PlaySoundEx(\"weapon/atomicfire\", \"body\")\ngoto Spawn+7\nDeath:\nTNT1 A 0\nTNT1 A 0 A_SpawnItemEx(\"OilPitIgnite\",0,0,8)\nstop\n}\n}"
      },
      {
        "source": "pk3",
        "name": "actors/inventory/mm2/metalblade.txt",
        "contents": "//actor MetalBladeWep : BaseMM8BDMWep 10048\nactor MetalBladeWep0 : BaseMM8BDMWep 10048\n{\n//$Category MM8BDM-Weapons\n//$Title Metal Blade\nWeapon.AmmoUse 1\nWeapon.AmmoGive 28\nWeapon.SlotNumber 3\nInventory.Pickupmessage \"$PU_METALBLADE\"\nObituary \"$OB_METALBLADE\"\nTag \"$TAG_METALBLADE\"\nweapon.ammotype \"MetalBladeAmmo\"\ninventory.icon \"METLSI\"\nStates\n{\nSpawn:\nWEAP S 1\nloop\nReady:\nBUSH J 0 ACS_ExecuteAlways(998,0,17)\nBUSH J 0 A_JumpIfNoAmmo(\"ReadyNoAmmo\")\n\"----\" A 0 A_JumpIf(CallACS(\"FuncFire_Check\"),\"BaseFuncFire\")\nBUSH J 1 A_WeaponReady\nGoto Ready+2\nReadyNoAmmo:\n\"----\" A 0 A_JumpIf(CallACS(\"FuncFire_Check\"),\"BaseFuncFire\")\nBUS2 C 1 A_WeaponReady\nBUS2 C 0 A_JumpIfNoAmmo(\"ReadyNoAmmo\")\nGoto Ready+1\nDeselect:\nTNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Lower\nBUSH J 1 A_Lower\nLoop\nSelect:\nTNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Raise\nBUSH J 1 A_Raise\nLoop\nFire:\nBUSH J 0 A_JumpIfNoAmmo(\"NoAmmo\")\nBUSH J 0 A_PlaySoundEx(\"weapon/metalblade\",\"Weapon\")\nBUSH J 0 A_FireCustomMissile(\"MetalBlade\",0,1,8,0)\nBUSH KL 2\nBUSH MN 3\n\"----\" A 0 A_JumpIf(CallACS(\"FuncReFire_Check\"),\"BaseFuncFire\")\nBUSH Q 1 A_Refire\n\"----\" A 0 A_JumpIf(CallACS(\"FuncReFire_Check\"),\"BaseFuncFire\")\nBUSH Q 1 A_Refire\n\"----\" A 0 A_JumpIf(CallACS(\"FuncReFire_Check\"),\"BaseFuncFire\")\nBUSH R 1 A_Refire\nGoto Ready+1\nNoAmmo:\nBUS2 C 1 ACS_Execute(979,0)\nGoto ReadyNoAmmo\n}\n}\nactor MetalBladeAmmo : Ammo\n{\ninventory.amount 1\ninventory.maxamount 28\n+INVENTORY.IGNORESKILL\n}\n\nactor MetalBlade\n{\nPROJECTILE\nscale 2.5\n+RIPPER\nSpeed 40\nRadius 3\nHeight 4\nDamage (14)\ndamagetype \"MetalBlade\"\nObituary \"$OB_METALBLADE\"\nStates\n{\nSpawn:\nMETL AB 3\nloop\n}\n}\n\nactor IGMetalBladeWep : BaseMM8BDMWep\n{\nWeapon.AmmoUse 0\nWeapon.AmmoGive 28\nWeapon.SlotNumber 1\nInventory.Pickupmessage \"$PU_IGMETALBLADE\"\nweapon.ammotype \"MetalBladeAmmo\"\ninventory.pickupsound \"weapon/weaponup\"\ninventory.icon \"NULLICON\"\n+WEAPON.AMMO_OPTIONAL\n+WEAPON.CHEATNOTWEAPON\nScale 2.5\nStates\n{\nSpawn:\nWEAP S 1\nloop\nReady:\nBUIN A 0 ACS_ExecuteAlways(991,0,67)\nBUIN A 1 A_WeaponReady\nGoto Ready+1\nDeselect:\nTNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Lower\nBUIN A 1 A_Lower\nLoop\nSelect:\nTNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Raise\nBUIN A 1 A_Raise\nLoop\nHold:\nFire:\nBUIN A 0 A_FireCustomMissile(\"IGMetalBlade\",0,1,8,0)\nBUIN A 0 A_PlayWeaponSound(\"weapon/metalblade\")\nBUIN BCDEF 2\nBUIN GH 3\nBUSH H 0 A_Refire\nGoto Ready+1\n}\n}\n\nactor IGMetalBlade : FastProjectile\n{\nPROJECTILE\nscale 2.5\n+RIPPER\n+DONTBLAST\nseesound \"weapon/metalblade\"\ndamagetype \"Instagib\"\nObituary \"$OB_IGMETALBLADE\"\nSpeed 100\nRadius 3\nHeight 4\nDamage (100)\nStates\n{\nSpawn:\nMETL AB 3\nloop\n}\n}"
      },
      {
        "source": "pk3",
        "name": "actors/inventory/mmb/remotemine.txt",
        "contents": "//actor RemoteMineWep : BaseMM8BDMWep 10017\nactor RemoteMineWep0 : BaseMM8BDMWep 10017\n{\n//$Category MM8BDM-Weapons\n//$Title Remote Mine\nWeapon.AmmoUse 2\nWeapon.AmmoGive 28\nWeapon.SlotNumber 5\nInventory.Pickupmessage \"$PU_REMOTEMINE\"\nObituary \"$OB_REMOTEMINE\"\nTag \"$TAG_REMOTEMINE\"\nweapon.ammotype \"RemoteMineAmmo\"\ninventory.icon \"REMOI\"\nStates\n{\nSpawn:\nREMI X 1\nloop\nReady:\nREMB A 0 ACS_ExecuteAlways(998,0,174)\n\"----\" A 0 A_JumpIf(CallACS(\"FuncFire_Check\"),\"BaseFuncFire\")\nREMB A 1 A_WeaponReady\nGoto Ready+1\nDeselect:\nREMB A 0 A_TakeInventory(\"WeaponCharge\", 9999)\nREMB A 0 A_GiveInventory(\"RemoteMineFlag\", 10)//A_JumpIfInventory(\"RemoteMineFlag\",1,\"RemoveFlag\")\nTNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Lower\nREMB A 1 A_Lower\nGoto Deselect+1\nRemoveFlag:\nREMB A 0 A_GiveInventory(\"RemoteMineFlag\", 10)\nREMB A 10\nREMB A 0 A_TakeInventory(\"RemoteMineFlag\", 10)\ngoto Deselect+1\nSelect:\nREMB A 0 A_TakeInventory(\"RemoteMineFlag\", 10)\nTNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Raise\nREMB A 1 A_Raise\nGoto Select+1\nFire:\nREMB A 0 A_JumpIfInventory(\"WeaponCharge\",5,\"Boom\")\nREMB A 0 A_JumpIfInventory(\"WeaponCharge\",5,\"NoBombs\")\nREMB A 0 A_JumpIfNoAmmo(\"NoAmmo\")\nREMB A 0 A_PlaySoundEx(\"weapon/mbuster\",\"Weapon\")\nREMB A 0 A_FireCustomMissile(\"RemoteMine\",0,1,8,0)\n\nREMB B 5\nREMB C 5\nREMB A 15 A_GiveInventory(\"WeaponCharge\", 1)\nREMB A 0 A_Refire\nGoto Ready+1\nFuncFire:\nBoom:\nREMB A 0 A_TakeInventory(\"WeaponCharge\", 999)\nREMB A 0 A_GiveInventory(\"RemoteMineFlag\", 10)\nREMB DA 4\nREMB A 0 A_TakeInventory(\"RemoteMineFlag\", 10)\ngoto Ready+1\nNoAmmo:\nNoBombs:\nREMB A 1 ACS_Execute(979,0)\nREMB A 0 A_JumpIfInventory(\"WeaponCharge\",1,\"Boom\")\nGoto Ready+1\n}\n}\n\nactor RemoteMineAmmo : Ammo\n{\ninventory.amount 1\ninventory.maxamount 28\n+INVENTORY.IGNORESKILL\n}\n\nactor RemoteMine\n{\nPROJECTILE\n+SKYEXPLODE\n+HITTRACER\ndamagetype \"RemoteMine\"\nObituary \"$OB_REMOTEMINE\"\nRadius 8\nHeight 8\nscale 2.5\ndamage (0)\nspeed 25\n\nvar int user_stuck;\nStates\n{\nSpawn:\nREMI A 0 A_JumpIf(ACS_NamedExecuteWithResult(\"core_targetexists\")==0,\"Exit\")\nREMI A 0 A_JumpIfInTargetInventory(\"RemoteMineFlag\",10,\"Detonate\")\nREMI A 2 A_CheckFloor(\"Death\")\nREMI B 0 A_JumpIf(ACS_NamedExecuteWithResult(\"core_targetexists\")==0,\"Exit\")\nREMI A 0 A_JumpIfInTargetInventory(\"RemoteMineFlag\",10,\"Detonate\")\nREMI A 2 A_JumpIfInTargetInventory(\"RemoteMineFlag\",10,\"Detonate\")\nREMI A 0 A_JumpIfInTargetInventory(\"RemoteMineFlag\",10,\"Detonate\")\nREMI B 2 A_GiveToTarget(\"TargetMarker\", 1)\nREMI B 0 A_JumpIf(ACS_NamedExecuteWithResult(\"core_targetexists\")==0,\"Exit\")\nREMI A 0 A_JumpIfInTargetInventory(\"RemoteMineFlag\",10,\"Detonate\")\nREMI B 2 ACS_ExecuteAlways(989, 0, ACS_ExecuteWithResult(257)+100)\nREMI B 0 A_ScaleVelocity(0.60)\nREMI B 0 A_ChangeVelocity(cos(pitch)*11, 0, -sin(pitch)*11,CVF_RELATIVE)\nREMI C 2 A_JumpIfInTargetInventory(\"RemoteMineFlag\",10,\"Detonate\")\nREMI B 0 A_JumpIf(ACS_NamedExecuteWithResult(\"core_targetexists\")==0,\"Exit\")\nREMI C 2 A_JumpIfInTargetInventory(\"RemoteMineFlag\",10,\"Detonate\")\nREMI A 0 A_JumpIfInTargetInventory(\"RemoteMineFlag\",10,\"Detonate\")\nREMI B 0 A_JumpIf(ACS_NamedExecuteWithResult(\"core_targetexists\")==0,\"Exit\")\nREMI D 2 A_GiveToTarget(\"TargetMarker\", 1)\nREMI A 0 A_JumpIfInTargetInventory(\"RemoteMineFlag\",10,\"Detonate\")\nREMI D 2 ACS_ExecuteAlways(989, 0, ACS_ExecuteWithResult(257)+100)\nREMI B 0 A_ScaleVelocity(0.60)\nREMI D 0 A_ChangeVelocity(cos(pitch)*11, 0, -sin(pitch)*11,CVF_RELATIVE)\nloop\nCrash:\nXDeath:\nREMI A 0 A_SetUserVar(\"user_stuck\", 1)\nDeath:\nREMI A 0 A_Stop\nREMI A 0 A_PlaySound(\"weapon/rminestick\")\nLatch:\nREMI A 0 A_Warp(AAPTR_TRACER,-4,0,28,0,WARPF_COPYINTERPOLATION)\nREMI A 1 A_JumpIfInTargetInventory(\"RemoteMineFlag\",10,\"Detonate\")\nREMI A 0 //A_Warp(AAPTR_TRACER,-4,0,28,0,WARPF_COPYINTERPOLATION)\nREMI A 1 A_JumpIfInTargetInventory(\"RemoteMineFlag\",10,\"Detonate\")\nREMI A 0 A_Warp(AAPTR_TRACER,-4,0,28,0,WARPF_COPYINTERPOLATION)\nREMI A 1 A_JumpIfInTargetInventory(\"RemoteMineFlag\",10,\"Detonate\")\nREMI A 0 //A_Warp(AAPTR_TRACER,-4,0,28,0,WARPF_COPYINTERPOLATION)\nREMI E 1 A_JumpIfInTargetInventory(\"RemoteMineFlag\",10,\"Detonate\")\nREMI A 0 A_Warp(AAPTR_TRACER,-4,0,28,0,WARPF_COPYINTERPOLATION)\nREMI E 1 A_JumpIfInTargetInventory(\"RemoteMineFlag\",10,\"Detonate\")\nREMI A 0 //A_Warp(AAPTR_TRACER,-4,0,28,0,WARPF_COPYINTERPOLATION)\nREMI E 1 A_JumpIfInTargetInventory(\"RemoteMineFlag\",10,\"Detonate\")\nREMI D 0 A_JumpIfInventory(\"CutterFlag\", 100, \"Detonate\")\nREMI D 0 A_GiveInventory(\"CutterFlag\", 1)\nREMI B 0 A_JumpIf(ACS_NamedExecuteWithResult(\"core_targetexists\")==0,\"Exit\")\nREMI B 0 A_JumpIf(user_stuck==0,\"Latch\")\nREMI B 0 A_JumpIf(ACS_NamedExecuteWithResult(\"core_targetexists\",1)==0,\"Exit\")\nGoto Latch\nDetonate:\nREMI B 0 A_JumpIf(ACS_NamedExecuteWithResult(\"core_targetexists\")==0,\"Exit\")\nREMI B 0 A_JumpIf(ACS_NamedExecuteWithResult(\"core_targetexists\",1)==0,\"Exit\")\nTNT1 A 0 A_SpawnItemEx(\"RemoteMineExplosion\")\nstop\nExit:\nTNT1 A 1\nstop\n}\n}\n\nactor RemoteMineExplosion\n{\nPROJECTILE\n+NOINTERACTION\nObituary \"$OB_REMOTEMINE\"\ndamagetype \"RemoteMine\"\nscale 2.5\nstates\n{\nSpawn:\nREME A 0\nREME A 0 A_Explode(11,100,0)\nREME A 1 A_PlaySoundEx(\"weapon/rmineexplode\", \"Weapon\")\nREME B 1\nREME A 1// A_Explode(7,80,0)\nREME C 1\nREME A 1 A_Explode(11,100,0)\nREME D 1\nREME A 1// A_Explode(7,80,0)\nREME F 1\nREME A 1 A_Explode(11,100,0)\nREME G 1\nREME A 1// A_Explode(7,80,0)\nREME H 1\nREME A 1 A_Explode(11,100,0)\nREME I 1\nREME A 1// A_Explode(7,80,0)\nREME J 1\nREME A 1 A_Explode(11,100,0)\nREME K 1\nREME A 1// A_Explode(7,80,0)\nREME L 1\nREME A 1 A_Explode(11,100,0)\nREME M 1\nREME A 1// A_Explode(7,80,0)\nREME B 1\nREME A 1 A_Explode(11,100,0)\nREME C 1\nREME A 1// A_Explode(7,80,0)\nREME D 1\nREME A 1 A_Explode(11,100,0)\nREME F 1\nREME A 1// A_Explode(7,80,0)\nREME G 1\nREME A 1 A_Explode(11,100,0)\nREME H 1\nREME ANAPOPO 1\nstop\n}\n}\n\nactor RemoteMineFlag : Inventory\n{\ninventory.amount 1\ninventory.maxamount 10\n}"
      },
      {
        "source": "pk3",
        "name": "actors/inventory/mm3/sparkshock.txt",
        "contents": "//actor SparkShockWep : BaseMM8BDMWep 10057\nactor SparkShockWep0 : BaseMM8BDMWep 10057\n{\n//$Category MM8BDM-Weapons\n//$Title Spark Shock\nWeapon.AmmoUse 2\nWeapon.AmmoGive 28\nWeapon.SlotNumber 2\nInventory.Pickupmessage \"$PU_SPARKSHOCK\"\nObituary \"$OB_SPARKSHOCK\"\nTag \"$TAG_SPARKSHOCK\"\nweapon.ammotype \"SparkShockAmmo\"\ninventory.icon \"SPARSI\"\nStates\n{\nSpawn:\nWEA2 G 1\nloop\nReady:\nSPAS C 0 ACS_ExecuteAlways(998,0,26)\n\"----\" A 0 A_JumpIf(CallACS(\"Func2Fire_Check\"),\"BaseFuncFire\")\nSPAS C 1 A_WeaponReady(WRF_NOFIRE)\n\"----\" A 0 A_JumpIf(CallACS(\"Func2Fire_Check\"),\"BaseFuncFire\")\nSPAS C 1 A_WeaponReady(WRF_NOFIRE)\n\"----\" A 0 A_JumpIf(CallACS(\"Func2Fire_Check\"),\"BaseFuncFire\")\nSPAS C 1 A_WeaponReady(WRF_NOFIRE)\n\"----\" A 0 A_JumpIf(CallACS(\"Func2Fire_Check\"),\"BaseFuncFire\")\nSPAS C 1 A_WeaponReady(WRF_NOFIRE)\n\"----\" A 0 A_JumpIf(CallACS(\"Func2Fire_Check\"),\"BaseFuncFire\")\nSPAS C 1 A_WeaponReady(WRF_NOFIRE)\n\"----\" A 0 A_JumpIf(CallACS(\"Func2Fire_Check\"),\"BaseFuncFire\")\nSPAS C 1 A_WeaponReady(WRF_NOFIRE)\nReady2:\n\"----\" A 0 A_JumpIf(CallACS(\"FuncFire_Check\"),\"BaseFuncFire\")\nSPAS C 1 A_WeaponReady\nGoto Ready2\nDeselect:\nTNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Lower\nSPAS C 1 A_Lower\nLoop\nSelect:\nTNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Raise\nSPAS C 1 A_Raise\nLoop\nFire:\nSPAS C 0 A_JumpIfNoAmmo(\"NoAmmo\")\nSPAS C 2\nSPAS C 0 A_PlaySoundEx(\"weapon/sparkshock\",\"Weapon\")\nSPAS C 0 A_FireCustomMissile(\"SparkShock\",0,1,8,0)\nSPAS DE 4\nSPAS D 8\n\"----\" A 0 A_JumpIf(CallACS(\"Func2Fire_Check\"),\"BaseFuncFire\")\nSPAS C 1 A_WeaponReady(WRF_NOFIRE)\n\"----\" A 0 A_JumpIf(CallACS(\"Func2Fire_Check\"),\"BaseFuncFire\")\nSPAS C 1 A_WeaponReady(WRF_NOFIRE)\n\"----\" A 0 A_JumpIf(CallACS(\"Func2Fire_Check\"),\"BaseFuncFire\")\nSPAS C 1 A_WeaponReady(WRF_NOFIRE)\n\"----\" A 0 A_JumpIf(CallACS(\"Func2Fire_Check\"),\"BaseFuncFire\")\nSPAS C 1 A_WeaponReady(WRF_NOFIRE)\n\"----\" A 0 A_JumpIf(CallACS(\"Func2Fire_Check\"),\"BaseFuncFire\")\nSPAS C 1 A_WeaponReady(WRF_NOFIRE)\n\"----\" A 0 A_JumpIf(CallACS(\"Func2Fire_Check\"),\"BaseFuncFire\")\nSPAS C 1 A_WeaponReady(WRF_NOFIRE)\nSPAS D 0 A_Refire\nGoto Ready2\nNoAmmo:\nSPAS C 1 ACS_Execute(979,0)\nGoto Ready2\n}\n}\n\nactor SparkShockAmmo : Ammo\n{\ninventory.amount 1\ninventory.maxamount 28\n+INVENTORY.IGNORESKILL\n}\n\nactor SparkShock\n{\nPROJECTILE\nRadius 6\nHeight 6\nscale 2.5\ndamage (12)\nspeed 35\ndamagetype \"SparkShock\"\nObituary \"$OB_SPARKSHOCK\"\nStates\n{\nSpawn:\nSPAS AB 4\nloop\n}\n}\n\nactor ShockFX\n{\n+NOINTERACTION\n-SOLID\n+NOGRAVITY\nScale 2.5\nStates\n{\nSpawn:\nSPAS FGFGFGFGFGFGFG 2\nstop\n}\n}"
      }
    ]
  },
  "maps": []
}

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