Counts

endoom0
graphics1
lumps2842
maps0
palettes14

Totals (across maps)

Things0
Linedefs0
Sectors0
Monsters0
Items0
Raw model (for completeness)
{
  "meta": {
    "id": "036f9e90-3123-41ad-99ea-f73bbca690d5",
    "sha1": "e46f93d3ec1a766ee2153360ec712a8b677fea9f",
    "sha256": "d1ef45d153d38a9896be18b3cefa57466951c15b07f9ac4a370617d7dfbebacd",
    "filenames": [
      "feba67a7ee86ce2e8bd992b29bb680fd.pk3",
      "xfire - alpha 7r2.pk3"
    ],
    "additional": {
      "engines": [
        "ZDOOM"
      ],
      "iwad": [],
      "filename": null,
      "added": "2018-02-07 16:43:41",
      "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-02-07 16:43:41",
    "file": {
      "type": "PK3",
      "size": 33277196,
      "url": "https://wadarchive2.nyc3.digitaloceanspaces.com/e46f93d3ec1a766ee2153360ec712a8b677fea9f/e46f93d3ec1a766ee2153360ec712a8b677fea9f.pk3.gz",
      "corrupt": false
    },
    "content": {
      "counts": {
        "endoom": 0,
        "graphics": 1,
        "lumps": 2842,
        "maps": 0,
        "palettes": 14
      },
      "engines_guess": [
        "ZDOOM"
      ]
    },
    "analysis": {
      "title": "xfire - alpha 7r2",
      "description": "A ZDoom gameplay mod rather than a mapset, focused on modern firearms, reworked pickups, and a perk/experience progression system. It replaces core items (ammo, armor/health bonuses, backpack, powerups, keys) with custom equivalents, adds stamina/vigor-style movement mechanics, and emphasizes tactical reloads, recoil, and situational effects like sprint bonuses and low-stamina aim instability. Combat presentation is heavily enhanced with custom blood, casings, muzzle flashes, explosions, and damage types (including headshots), and it includes New Game Plus-style modifiers and endgame rewards. No playable maps are included in the package, so it’s intended to be loaded alongside other level sets.",
      "tags": [
        "enhanced_gore",
        "experience_system",
        "gameplay_mod",
        "item_replacements",
        "modern_weapons",
        "new_game_plus",
        "no_maps",
        "perk_system",
        "pk3",
        "rpg_elements",
        "stamina_system",
        "tactical_combat",
        "visual_effects",
        "weapons_mod",
        "zdoom"
      ],
      "origin": "gpt-4.1-mini"
    },
    "text_files": [
      {
        "source": "pk3",
        "name": "Adept.txt",
        "contents": "ADEPT perk system\n\nAGILITY\n\tL1\tSprint gives 20% defense when above 25% (875) stamina.\n\tL2\tSprint breaks seeker missiles when above 50% (875) stamina.\n\tL3\tSprint as a ghost when above 75% (1750) stamina.\n\tL4\tSprint effect requirements reduced by 25%.\n\nDEXTERITY\n\tL1\tUse care package items twice as fast.\n\tL2\tRecoil reduced by 33%.\n\tL3\tFaster off hand attacks and reloading.\n\tL4\tMomentum builds up twice as fast.\n\nENDURANCE\n\tL1\tStamina regenerates without delay.\n\tL2\tStamina regenerates faster.\n\tL3\tVigor consumption halved.\n\tL4\n\nPERCEPTION\n\tL1\tSee target health.\n\tL2\tAutomap reveals map geometry.\n\tL3\tAutomap reveals decorations, enemies, items, keys, and projectiles.\n\tL4\n\nTENACITY\n\tL1\tLess flinching when hit.\n\tL2\tHealth regenerates fast, regardless of stamina.\n\tL3\tLethal attacks drop health to 1.\n\tL4\tKills restart health regeneration.\n\n////////////////////////////////////////////////////////////////////////////////"
      },
      {
        "source": "pk3",
        "name": "Changelog.txt",
        "contents": "> Double tap speed reload?\n> Durandal gyrojets?\n> Experience combos?\n> Hand grenade cooking?\n> Headshots?\n> Positron cannon?\n\n- Added a color desaturation effect when below 50% health.\n- Added a mugshot fix for level sets the have their own mugshots. Load it after everything.\n- Added a message to increase the HUD's size when using the status bar.\n- Added an early automap HUD.\n- Arachnotrons fire in rapid 2 shot bursts.\n- Being below 25% stamina will make your aim unstable.\n- Bormereth projectiles no longer weave.\n- Cacodemons and Wickeds randomly replace Pain Elemental spawns.\n- Easy mode makes enemies slower as to not have them gang up on you due to not attacking often (something that doesn't happen on higher difficulties).\n- Explosive barrels do damage to bosses.\n- Explosive projectiles are fastprojectiles again and have denser trails.\n- Firebombs force gibbing, though somewhat unreliably since debris tends to kill enemies.\n- Fixed Archons not stopping when killed.\n- Fixed Durandal (AT repeater) shots being off center when aimed.\n- Fixed explosive barrels taking damage from uncharged melee attacks.\n- Fixed humanoids not spawning corpse shields when gibbed.\n- Fixed Imp melee slash sounds sometimes not playing.\n- Fixed laser trails not being bright.\n- Fixed resupply crates giving the wrong amount of Griever (explosive shotgun) ammo.\n- Fixed Spiderdemons not going to their see state after flinching.\n- Fixed the Bauer's (SOCOM pistol's) dryfire sound playing on the wrong sound channel.\n- Fixed the endgame screen playing the wrong music if you used a special item code.\n- Fixed the endgame screen showing up if you died.\n- Fixed the endgame screen text being drawn under the vignette effect.\n- Fixed the recent experience counter being drawn under the vignette effect.\n- Fixed the \"recovery\" console command giving the perk menu weapon.\n- Fixed treasure items screwing with level sets that replace the sprites BON1A0-BON1AD0.\n- Fully charged sword attacks force gibbing.\n- Gave Arch-Viles extreme deaths.\n- Gave Bormereths regular deaths.\n- Gave Squires regular deaths.\n- Hard mode no longer gives double kill experience.\n- Helper scientists have more (printed) dialogue.\n- Improved the blood effects.\n- Improved the explosion and smoke effects.\n- Normal mode no longer has the 25% vigor crutch.\n- Replaced the blood splat decals. Software users will need to load the included patch to restore the old decals as the new ones don't like right in software.\n- Replaced the Cacodemon's sprites.\n- Replaced the Imp's sprites.\n- Replaced the generic enemy projectile smoke effects with projectile specific trails.\n- Replaced the Griever's (explosive shotgun's) shell insertion sound.\n- Replaced the TITLEPIC.\n- Resized the treasure items.\n- Tactical (mid magazine) reloads on hard mode will waste ammo (except for the Griever). Specifically it reduces your magazine to 1 round before loading.\n- Tactical reloads on the Durandal, Jackal, and Typhoon take longer than empty reloads (which were sped up) due to an extra motion during the animation.\n- The Bauer alerts indoors in a smaller radius.\n- The Bauer plays a sound when emptied.\n- The Bauer's firing sounds are quieter.\n- The endgame screen differentiates the first playthrough on calamity mode (PT1+) from a new game plus (NG+).\n- The Griever can gib humanoids.\n- The perk menu's sounds play on sound channel 7 instead of the weapon sound channel to prevent cutoffs.\n- Tightend the Jackal's (semi auto shotgun's) spread by .5.\n- Wicked fireballs home in more aggressively.\n- You get hungry (read: slow vigor drain) on hard mode.\n- Zombie heavy gunners and riflemen have a higher rate of fire.\n\n========\n\n- done\n> do this / in flux\n? undocumented\n\n========\n\nalpha - feature additions\nbeta - bug fixes\nrelease canidate - final bug fixes\n/idgames - ?"
      },
      {
        "source": "pk3",
        "name": "Credits.txt",
        "contents": "If I'm missing something in the credits, please tell me!\n\nArachnotron\n\tSprites: InsanityBringer, Tormentor667\n\nArch-Vile\n\tSounds: Eriance, Raven Software, Rogue Entertainment\n\tSprites: Jekyll Grim Payne\n\nArchon of Hell\n\tDecorate: Eriance, myself (Se7eNytes) (new attack)\n\tSounds: Eriance\n\tSprites: Doom 64, Eriance\n\nAUTOPAGE\n\tGraphics: Woolie Wool\n\nAssault rifle\n\tSounds: Battlefield 3\n\tSprites: Hav0c, Jennifer!!, kenlau, Necronixxus, Uboa, r2pp2t, Sergeant_Mark_IV, twinke masta, Vunsunta, wildweasel, minor edits by me (Se7eNytes)\n\nBlood\n\tGraphics: CGTextures.com\n\tSounds: Ænima\n\tSprites: (??)\n\nBloody screen\n\tGraphics: NeuralStunner, renderle88\n\nBonus replacements\n\tSprites: Doom alpha and press release beta\n\nBormereth\n\tSounds: Diablo\n\tSprites: Hexen, Tormentor667\n\nCacodemon\n\tSounds: Blizzard Entertainment, Eriance\n\tSprites: Jimmy\n\nCasings\n\tDecorate: wildweasel\n\tSprites: Espi, minor edits by me (Se7eNytes)\n\nCare package\n\tSounds: Metal Gear Solid, Xaser, Z86\n\tSprites: Daniel, Half-Life: Opposing Force, wildweasel\n\nCorpses\n\tSprites: MDK, Skulltag\n\nCyberdemon rockets\n\tSprites: Duke Nukem 3D(?)\n\nDamage direction indicator\n\tGraphics: Half-Life\n\nDemolisher\n\tSounds: Medal of Honor: Allied Assault\n\tSprites: Eriance\n\nExplosions\n\tSounds: FEAR, Half-Life 2, Halo, SMOD, a stock sound\n\tSprites: (??)\n\nExplosive shotgun\n\tSounds: Battlefield 3, Call of Duty 4, Half-Life 2\n\tSprites: Go Team, lolo_is_cool, Quake II, Sangelothi, minor edits by me (Se7eNytes)\n\nFinal boss\n\tMusic: Chrono Trigger, Rise of the Triad\n\nFireballs\n\tSprites: Hexen\n\nFirebomb launcher\n\tDecorate: el zee (explosion)\n\tSounds: Battlefield 3, Call of Duty: Modern Warfare 2, Half-Life 2, Medal of Honor: Allied Assault(?), Metal Gear Solid, Soldier of Fortune(?), Unreal Tournament(?), (??)\n\tSprites: Duke Nukem 3D, Hellstorm Archon, Necronixxus, Scuba Steve(?), Shadow Warrior, minor edits by me (Se7eNytes)\n\nFlesh Wizard\n\tSprites: Freedoom\n\nFonts\n\tGraphics: el zee, Quake II, Rise of the Triad\n\nGrenade launcher\n\tSounds: Battlefield 3, Call of Duty: Modern Warfare 2, FEAR, Half-Life 2, Sangelothi\n\tSprites: Missing Information, Reactor, Sgt. Shivers, minor edits by me (Se7eNytes)\n\nHand grenade\n\tSounds: Call of Duty 2\n\tSprites: Woolie Wool, minor edits by me (Se7eNytes)\n\nHands\n\tSprites: MidoriMan, wildweasel\n\nHellhound\n\tSounds: Blood, Eriance\n\tSprites: Blood, Eriance\n\nHUD\n\tGraphics: Sky Driver, TerminusEst13, myself (Se7eNytes)\n\nImp\n\tSprites: Eriance\n\nINTERPIC and TITLEPIC\n\tGraphics: Google images (\"plasma\" and \"explosion fire\")\n\nHelpers:\n\tSounds: Half-Life 2\n\tSprites: scalliano (scientists), Skulltag (marines), Virtue (marines)\n\nKeys\n\tSprites: zrrion the insect\n\nLasers\n\tSounds: (a mixture of gun sounds from various Call of Duty games)\n\tSprites: Kate\n\nMenus\n\tGraphics: Descent: FreeSpace: The Great War\n\tMusic: Contra (no idea who actually made this midi though, found it in jumpmaze without credits), Rise of the Triad\n\tSounds: beatmania IIDX 8th Style, beatmania IIDX 11 RED, Metal Gear Solid 3, Metal Gear Solid: Portable Ops\n\nMuzzle flashes\n\tSprites: Mortal Kombat 3(?)\n\nPalette\n\tPalette: DBThanatos\n\nPickups\n\tSounds: Ænima, Battlefield 3, Counter-Strike: Source, Doom 3, Medal of Honor: Allied Assault(?), Quake(?), Quake II, System Shock 2, Unreal Tournament, wildweasel\n\tSprites (ammo): Bad Company 2: Vietnam, Battlefield 3, Deus Ex: Human Revolution, minor edits by me (Se7eNytes)\n\tSprites (everything else): Battlefield 3, Blood, Blue Shadow, Captain Toenail, Deus Ex: Human Revolution, Doom 64, Eriance, Ghastly_dragon, HacX, Halo, MagicWazard, photos, zirius1994\n\nPlayer\n\tACS: Nash (movement)\n\tDecorate: Nash (movement)\n\tSounds: Battlefield 3, Doom 3, Half-Life 2, Left 4 Dead 2, Medal of Honor: Warfighter, perkristian, Red Orchestra\n\tSprites: Vaecrius\n\nProjectiles\n\tSounds: Doom 3\n\nSemi auto shotgun\n\tSounds: Battlefield 3\n\tSprites: MidoriMan, Sangelothi, minor edits by me (Se7eNytes)\n\nSmoke\n\tDecorate: DBThanatos, Major Cooke\n\tSprites: DBThanatos, Major Cooke\n\nSOCOM pistol\n\tSounds: Battlefield 3, Left 4 Dead 2, (a mod called Black Ops, anyone remember the author?)\n\tSprites: Cage, Duke Nukem 64, SladeEXE, wildweasel, minor edits by me (Se7eNytes)\n\nSoul reaver\n\tSounds: Id Software\n\tSprites: Neoworm\n\nSparks\n\tSounds: Red Orchestra\n\tSprites: (??)\n\nSquire\n\tSounds: perkristian, Woolie Wool\n\tSprites: Hexen, Jekyll Grim Payne, Woolie Wool\n\nTanto\n\tGraphics: rsl\n\tSounds: Fire Emblem: Binding Blade, Left 4 Dead 2, Oblivion, Team Fortress 2\n\tSprites: Obtained by Reilsss (source unknown)\n\nThe Patriot\n\tSounds: Battlefield 3, Metal Gear Solid 3\n\tSprites: Marty Kirra, minor edits by me (Se7eNytes)\n\nWicked\n\tDecorate: Eriance\n\tSounds: Id Software\n\tSprites: Eriance\n\nZombies\n\tSprites: 3D Realms, Captain Toenail, Eriance, Ghastly_dragon, Knee Deep in ZDoom, MagicWizard, Mark Quinn, Rogue Software, Vegeta"
      },
      {
        "source": "pk3",
        "name": "Descriptions.txt",
        "contents": "// Backstory / fluff / lore whatever. :P\n\nPossible player titles:\n\tAssassin\n\tBodyguard\n\tContractor\n\tPeacekeeper\n\tSecurity\n\tSurvivor\n\tSpy\n\nPossible company names:\n\tDominion of Intergalactic Combat Key Superiors (heh)\n\tXevious Industries International (XII)\n\nPossible gun names:\n\tAgeha\n\tAsura\n\tBaroque\n\tBauer\n\tDurandal\n\tEpsilon\n\tExecution\n\tFalcon\n\tFenrir\n\tGhost\n\tGriever\n\tJackal\n\tNova\n\tRaiden\n\tRoch\n\tScarab\n\tSpectre\n\tStingray\n\tTalon\n\tTempest\n\tTyphoon\n\tValkyrie\n\tVulture\n\tWidow\n\tZephyr\n\nTanto CS1 fixed blade\nNova K7 offensive hand grenade\nBauer Mk. 17 SOCOM pistol\nJackal FC-20A combat shotgun\nTyphoon ST.88 assault rifle\nGriever DM-G12 demolition shotgun\nDurandal AR/X5 anti tank repeater\nRolling Thunder DC-9 firebomb launcher\n\nPatriot M231 assault pistol\nSirius SPC'88 positron cannon\n\n////////////////////////////////////////////////////////////////////////////////\n\n\"Your mission is to take the UAC's top scientist for questioning.\"\n\n...\n\n\"They made me their leader...\"\n\n\"They didn't want you as their leader, they wanted you to build a portal for them!\""
      },
      {
        "source": "pk3",
        "name": "Experience.txt",
        "contents": "LV\tREQ\t\tTOTAL\tDMG\n0\t0\t\t0\t\t100%\n1\t10000\t10000\t98%\n2\t12500\t22500\t96%\n3\t15000\t37500\t94%\n4\t17500\t55000\t92%\n5\t20000\t75000\t90%\n6\t22500\t97500\t88%\n7\t25000\t122500\t86%\n8\t27500\t150000\t84%\n9\t30000\t180000\t82%\n10\t32500\t212500\t80%\n11\t35000\t247500\t78%\n12\t37500\t285000\t76%\n13\t40000\t325000\t74%\n14\t42500\t367500\t72%\n15\t45000\t412500\t70%\n\n@ REQ = buy a perk and +2% defense\nroughly 15000 XP possible per map\nroughly 23000 XP possible on hard"
      },
      {
        "source": "pk3",
        "name": "Rewards.txt",
        "contents": "// Endgame rewards.\n\nCompletion\t\t- Beat the game.\nMasochist\t\t- Beat the game at Level 0.\nPerfection\t\t- Beat the game at Level 15 (or have experience equal to being Level 15).\nVeteran\t\t\t- Beat the game twice.\n\nNEW GAME (STANDARD) -> NEW GAME PLUS (CALAMITY)\n\tCompletion\n\tMasochist\n\tPerfection\n\tVeteran\n\nNEW GAME (CALAMITY)\n\tCompletion\n\tMasochist\n\tPerfection\n\nBandana\nPositron cannon\nTanegashima\nThe Patriot\nThor .45-70"
      },
      {
        "source": "pk3",
        "name": "TEXTURES.txt",
        "contents": "// Texture definitions generated by SLADE3\n// on Tue Sep 03 21:18:02 2013\n\nSprite F88AJ0, 200, 108\n{\n\tOffset -102, -67\n\tPatch F88AB0, 0, 0\n\tPatch HANDA0, 5, 49\n}\n\nSprite F88AK0, 200, 108\n{\n\tOffset -102, -67\n\tPatch F88AB0, 0, 0\n\tPatch HANDA0, 18, 34\n}\n\nSprite F88AD0, 200, 108\n{\n\tOffset -102, -67\n\tPatch F88AB0, 0, 0\n\tPatch HANDA0, 27, 20\n}\n\nSprite F88AL0, 200, 108\n{\n\tOffset -102, -67\n\tPatch F88AB0, 0, 0\n\tPatch HANDA0, 29, 24\n}\n\nSprite F88AE0, 200, 108\n{\n\tOffset -102, -67\n\tPatch F88AB0, 0, 0\n\tPatch HANDA0, 33, 28\n}\n\nSprite F88AF0, 200, 108\n{\n\tOffset -102, -67\n\tPatch HANDC0, -29, 53\n\tPatch F88AB0, 0, 0\n}\n\nSprite F88AM0, 200, 108\n{\n\tOffset -102, -67\n\tPatch HANDC0, -40, 61\n\tPatch F88AB0, 0, 0\n}\n\nSprite F88AG0, 200, 108\n{\n\tOffset -102, -67\n\tPatch HANDC0, -44, 74\n\tPatch F88AB0, 0, 0\n}\n\nSprite F88AH0, 200, 108\n{\n\tXScale 1.5\n\tOffset -210, -60\n\tPatch F88AA0, 0, 0\n}\n\nSprite F88AI0, 193, 206\n{\n\tXScale 0.9\n\tYScale 0.9\n\tOffset -50, 45\n\tPatch F88AC0, 0, 0\n}\n\nSprite F88AN0, 200, 200\n{\n\tOffset -102, -67\n\tPatch F88AB0, 0, 0\n\tPatch HANDI0, -59, 55\n}\n\nSprite F88AO0, 200, 200\n{\n\tOffset -102, -67\n\tPatch F88AB0, 0, 0\n\tPatch HANDI0, -74, 34\n}\n\nSprite F88AP0, 200, 200\n{\n\tOffset -102, -67\n\tPatch F88AB0, 0, 0\n\tPatch HANDI0, -81, 30\n}\n\nSprite F88AQ0, 200, 200\n{\n\tOffset -102, -67\n\tPatch F88AB0, 0, 0\n\tPatch HANDI0, -88, 21\n}\n\nSprite F88AR0, 200, 200\n{\n\tOffset -102, -67\n\tPatch F88AB0, 0, 0\n\tPatch HANDI0, -104, 28\n}\n\nSprite F88AS0, 200, 200\n{\n\tOffset -102, -67\n\tPatch F88AB0, 0, 0\n\tPatch HANDI0, -117, 33\n}\n\nSprite F88AT0, 200, 200\n{\n\tOffset -102, -67\n\tPatch F88AB0, 0, 0\n\tPatch HANDI0, -137, 75\n}\n\nSprite KUSHC0, 300, 200\n{\n\tOffset -33, -4\n\tPatch HANDC0, 32, 129\n\tPatch KUSHB0, 0, 0\n}\n\nSprite KUSHD0, 300, 200\n{\n\tOffset -33, -4\n\tPatch HANDC0, 13, 148\n\tPatch KUSHB0, 0, 0\n}\n\nSprite KUSHE0, 600, 400\n{\n\tOffset -33, -4\n\tPatch HANDB0, 276, 112\n\tPatch KUSHA0, 0, 0\n}\n\nSprite KUSHF0, 600, 400\n{\n\tOffset -33, -4\n\tPatch HANDB0, 250, 102\n\tPatch KUSHA0, 0, 0\n}\n\nSprite KUSHG0, 600, 400\n{\n\tOffset -33, -4\n\tPatch HANDB0, 221, 99\n\tPatch KUSHA0, 0, 0\n}\n\nSprite KUSHH0, 600, 400\n{\n\tOffset -33, -4\n\tPatch HANDB0, 202, 99\n\tPatch KUSHA0, 0, 0\n}\n\nSprite KUSHI0, 600, 400\n{\n\tOffset -33, -4\n\tPatch HANDB0, 217, 107\n\tPatch KUSHA0, 0, 0\n}\n\nSprite KUSHJ0, 600, 400\n{\n\tOffset -33, -4\n\tPatch HANDB0, 232, 116\n\tPatch KUSHA0, 0, 0\n}\n\nSprite KUSHK0, 600, 400\n{\n\tOffset -33, -4\n\tPatch HANDB0, 245, 128\n\tPatch KUSHA0, 0, 0\n}\n\nSprite NS2KD0, 800, 300\n{\n\tOffset 42, 98\n\tPatch HANDF0, 362, 205\n\tPatch NS2KZ0, 0, 0\n}\n\nSprite NS2KE0, 800, 300\n{\n\tOffset 42, 98\n\tPatch HANDF0, 318, 198\n\tPatch NS2KZ0, 0, 0\n}\n\nSprite NS2KF0, 800, 300\n{\n\tOffset 42, 98\n\tPatch NS2KZ0, 0, 0\n\tPatch HANDF0, 292, 210\n}\n\nSprite NS2KG0, 800, 300\n{\n\tOffset 42, 98\n\tPatch NS2KZ0, 0, 0\n\tPatch HANDF0, 263, 221\n}\n\nSprite NS2KH0, 800, 300\n{\n\tOffset 42, 98\n\tPatch NS2KZ0, 0, 0\n\tPatch HANDF0, 237, 229\n}\n\nSprite XM25D0, 400, 400\n{\n\tOffset -132, -20\n\tPatch HANDC0, -46, 85\n\tPatch XM25B0, 0, 0\n}\n\nSprite XM25E0, 400, 400\n{\n\tOffset -132, -20\n\tPatch HANDC0, -57, 90\n\tPatch XM25B0, 0, 0\n}\n\nSprite XM25F0, 400, 400\n{\n\tOffset -132, -20\n\tPatch HANDC0, -66, 109\n\tPatch XM25B0, 0, 0\n}\n\nSprite XM25G0, 400, 400\n{\n\tOffset -132, -20\n\tPatch XM25B0, 0, 0\n\tPatch HANDA0, -8, 103\n}\n\nSprite XM25H0, 400, 400\n{\n\tOffset -132, -20\n\tPatch XM25B0, 0, 0\n\tPatch HANDA0, 0, 83\n}\n\nSprite XM25I0, 400, 400\n{\n\tOffset -132, -20\n\tPatch XM25B0, 0, 0\n\tPatch HANDA0, 10, 61\n}\n\nSprite XM25J0, 400, 400\n{\n\tOffset -132, -20\n\tPatch XM25B0, 0, 0\n\tPatch HANDA0, 16, 50\n}\n\nSprite XM25K0, 400, 400\n{\n\tOffset -132, -20\n\tPatch XM25B0, 0, 0\n\tPatch HANDA0, 24, 60\n}\n\nSprite XM25L0, 400, 400\n{\n\tOffset -132, -20\n\tPatch XM25B0, 0, 0\n\tPatch HANDA0, 27, 63\n}\n\nSprite XM25M0, 480, 240\n{\n\tXScale 0.9\n\tYScale 0.9\n\tOffset 96, 59\n\tPatch XM25C0, 0, 0\n}\n\nSprite XM25N0, 270, 162\n{\n\tXScale 1.5\n\tOffset -191, -20\n\tPatch XM25A0, 0, 0\n}\n\nSprite XM25O0, 400, 400\n{\n\tOffset -132, -20\n\tPatch HANDE0, -69, 55\n\tPatch XM25B0, -2, -1\n}\n\nSprite XM25P0, 400, 400\n{\n\tOffset -132, -20\n\tPatch HANDE0, -54, 65\n\tPatch XM25B0, -2, -1\n}\n\nSprite THUNE0, 308, 130\n{\n\tOffset -105, -53\n\tPatch HANDC0, -25, 74\n\tPatch THUNC0, 0, 0\n}\n\nSprite THUNF0, 308, 130\n{\n\tOffset -105, -53\n\tPatch HANDC0, -29, 78\n\tPatch THUNC0, 0, 0\n}\n\nSprite THUNG0, 308, 130\n{\n\tOffset -105, -53\n\tPatch HANDC0, -41, 83\n\tPatch THUNC0, 0, 0\n}\n\nSprite THUNH0, 308, 130\n{\n\tOffset -105, -53\n\tPatch HANDC0, -52, 85\n\tPatch THUNC0, 0, 0\n}\n\nSprite THUNI0, 308, 130\n{\n\tOffset -105, -53\n\tPatch THUNC0, 0, 0\n\tPatch HANDA0, 5, 89\n}\n\nSprite THUNJ0, 308, 130\n{\n\tOffset -105, -53\n\tPatch THUNC0, 0, 0\n\tPatch HANDA0, 28, 75\n}\n\nSprite THUNK0, 308, 130\n{\n\tOffset -105, -53\n\tPatch THUNC0, 0, 0\n\tPatch HANDA0, 65, 67\n}\n\nSprite THUNL0, 308, 130\n{\n\tOffset -105, -53\n\tPatch THUNC0, 0, 0\n\tPatch HANDA0, 88, 68\n}\n\nSprite THUNM0, 308, 130\n{\n\tOffset -105, -53\n\tPatch THUNC0, 0, 0\n\tPatch HANDA0, 115, 80\n}\n\nSprite THUNN0, 308, 130\n{\n\tOffset -105, -53\n\tPatch THUNC0, 0, 0\n\tPatch HANDA0, 119, 84\n}\n\nSprite THUNO0, 308, 130\n{\n\tOffset -105, -53\n\tPatch THUNC0, 0, 0\n\tPatch HANDA0, 120, 86\n}\n\nSprite MK23G0, 600, 600\n{\n\tOffset 73, 32\n\tPatch MK23Y0, 161, 192\n\tPatch MK23E0, 0, 0\n}\n\nSprite MK23H0, 600, 600\n{\n\tOffset 73, 32\n\tPatch MK23Y0, 161, 204\n\tPatch MK23E0, 0, 0\n}\n\nSprite MK23I0, 600, 600\n{\n\tOffset 73, 32\n\tPatch MK23Z0, 161, 192\n\tPatch MK23F0, 0, 0\n}\n\nSprite MK23J0, 600, 600\n{\n\tOffset 73, 32\n\tPatch MK23Z0, 161, 204\n\tPatch MK23F0, 0, 0\n}\n\nSprite MK23K0, 600, 600\n{\n\tOffset 73, 32\n\tPatch MK23Z0, 161, 192\n\tPatch MK23E0, 0, 0\n}\n\nSprite MK23L0, 600, 600\n{\n\tOffset 73, 32\n\tPatch MK23Z0, 161, 204\n\tPatch MK23E0, 0, 0\n}\n\nSprite SWRCA0, 600, 200\n{\n\tOffset 140, 0\n\tPatch TANTA0, 283, 99\n}\n\nSprite SWRCB0, 600, 200\n{\n\tOffset 140, 0\n\tPatch TANTA0, 316, 78\n}\n\nSprite SWRCC0, 600, 200\n{\n\tOffset 140, 0\n\tPatch TANTA0, 325, 71\n}\n\nSprite SWRCD0, 600, 200\n{\n\tOffset 140, 0\n\tPatch TANTA0, 348, 42\n}\n\nSprite SWRDA0, 600, 200\n{\n\tOffset 140, 0\n\tPatch TANTA0, 369, 16\n}\n\nSprite SWRDB0, 600, 200\n{\n\tOffset 140, 0\n\tPatch TANTA0, 293, 29\n}\n\nSprite SWRDC0, 600, 200\n{\n\tOffset 140, 0\n\tPatch TANTA0, 242, 39\n}\n\nSprite SWRDD0, 600, 200\n{\n\tOffset 140, 0\n\tPatch TANTA0, 170, 47\n}\n\nSprite SWRDE0, 600, 200\n{\n\tOffset 140, 0\n\tPatch TANTA0, 113, 76\n}\n\nSprite SWRDF0, 600, 200\n{\n\tOffset 140, 0\n\tPatch TANTA0, 27, 105\n}\n\nSprite SWRDG0, 600, 200\n{\n\tOffset 140, 0\n\tPatch TANTA0, -28, 128\n}\n\n// End of texture definitions"
      },
      {
        "source": "pk3",
        "name": "Actors/ammo.txt",
        "contents": "// Ammo drops.\n\nActor ClipD : RandomSpawner replaces Shell//Clip\n{\n\tDropItem \"F88Extra\", 128, 3\n\tDropItem \"Mk23Extra\", 128, 1\n}\n\nActor ClipBoxD : RandomSpawner replaces ShellBox//ClipBox\n{\n\tDropItem \"F88Extra\", 192\n}\n\nActor ShellD : RandomSpawner replaces Clip//Shell\n{\n\tDropItem \"KushnapupExtra\", 128, 3\n\tDropItem \"F88Extra\", 128, 1\n}\n\nActor ShellBoxD : RandomSpawner replaces ClipBox//ShellBox\n{\n\tDropItem \"KushnapupExtra\", 192\n}\n\nActor RocketAmmoD : RandomSpawner replaces RocketAmmo\n{\n\tDropItem \"NeoSteadExtra\", 128, 3\n\tDropItem \"Mk3GrenadeAmmo\", 128, 1\n}\n\nActor RocketBoxD : RandomSpawner replaces RocketBox\n{\n\tDropItem \"NeoSteadExtra\", 192\n}\n\nActor CellD : RandomSpawner replaces Cell\n{\n\tDropItem \"XM25Extra\", 128//, 3\n\t//DropItem \"ThunderExtra\", 255, 1\n}\n\nActor CellBoxD : RandomSpawner replaces CellPack\n{\n\tDropItem \"XM25Extra\", 192, 3\n\tDropItem \"ThunderExtra\", 192, 1\n}\n\nActor StimPackD : RandomSpawner replaces StimPack\n{\n\tDropItem \"Mk23Extra\", 128, 3\n\tDropItem \"Mk3GrenadeAmmo\", 128, 1\n}"
      },
      {
        "source": "pk3",
        "name": "Actors/blood.txt",
        "contents": "// Blood.\n\nActor AddedBlood Replaces Blood\n{\n\t//Speed 25\n\t+NOGRAVITY\n  \t+NOTELEPORT\n\t-ALLOWPARTICLES\n\t-NOBLOCKMAP\n\t//Projectile\n  \tStates\n  \t{\n  \tSpawn:\n\t\tTNT1 A 1\n\t\tTNT1 A 0 A_SpawnItemEx(\"BloodMist\")\n\t\tTNT1 A 0 A_SpawnItemEx(\"BloodSpray\")\n\t\tBLUD CCCCCCCCCCCCC 0 A_SpawnItemEx(\"PoolingBlood\", 0, 0, 0, (frandom(-7, 7)), (frandom(-7, 7)), (frandom(-7, 7)), 0, 128)\n\t\tBLUD CCCCCCCCCCCCC 0 A_SpawnItemEx(\"PoolingBlood2\", 0, 0, 0, (frandom(-7, 7)), (frandom(-7, 7)), (frandom(-7, 7)), 0, 128)\n\t\tStop\n\tDeath:\n\t\tGoto Spawn+1\n\tNothing:\n\t\tStop\n  \t}\n}\n\nActor BNHS : AddedBlood {}\n\nActor AddedBloodSplatter : AddedBlood replaces BloodSplatter {}\n\nActor BloodMist\n{\n\tScale 0.2\n\tAlpha 1.0\n\tGravity 0.0\n\tRenderStyle Translucent\n\t+NOBLOCKMAP\n\tStates\n\t{\n\tSpawn:\n\t\tTNT1 A 0\n\t\tTNT1 A 0 A_Jump(256, \"SprayerOne\", \"SprayerTwo\", \"SprayerThree\", \"SprayerFour\")\n\t\tStop\n\tSprayerOne:\n\t\tTNT1 A 0 A_SetScale(ScaleX + 0.005)\n\t\tGORE A 1 A_FadeOut(0.04)\n\t\tLoop\n\tSprayerTwo:\n\t\tTNT1 A 0 A_SetScale(ScaleX + 0.005)\n\t\tGORE B 1 A_FadeOut(0.04)\n\t\tLoop\n\tSprayerThree:\n\t\tTNT1 A 0 A_SetScale(ScaleX + 0.005)\n\t\tGORE C 1 A_FadeOut(0.04)\n\t\tLoop\n\tSprayerFour:\n\t\tTNT1 A 0 A_SetScale(ScaleX + 0.005)\n\t\tGORE D 1 A_FadeOut(0.04)\n\t\tLoop\n\t}\n}\n\nActor BloodSpray : BloodMist\n{\n\tAlpha 0.75\n\tScale 1.25\n\tStates\n\t{\n\tSpawn:\n\t\tTNT1 A 0\n\t\tTNT1 A 1 A_Jump(128, \"SprayerTwo\")\n\tSprayerOne:\n\t\tBLOD AABBCC 1 A_SetScale(ScaleX + 0.025)\n\t\tStop\n\tSprayerTwo:\n\t\tBLOD DDEEFF 1 A_SetScale(ScaleX + 0.025)\n\t\tStop\n\t}\n}\n\nActor PoolingBlood\n{\n\tGravity 0.5\n\tVSpeed 5\n\tAlpha 0.75\n\tRadius 8\n\tHeight 2\n\tMass 5\n\tScale 0.05\n\tRenderStyle Translucent\n\tDecal BloodSplat\n\t+BLOODLESSIMPACT\n\t+CORPSE\n    +FORCEXYBILLBOARD\n\t+MISSILE\n\t+MOVEWITHSECTOR\n\t+NOBLOCKMAP\n\t+NODAMAGETHRUST\n\t+NOTELEPORT\n\t+RIPPER\n\t+SLIDESONWALLS\n\tStates\n\t{\n\tSpawn:\n\t\tTNT1 A 0\n\t\tTNT1 A 0 //A_PlaySound(\"blood/splat\")\n\t\tTNT1 A 1 A_Jump(256, \"SprayerOne\", \"SprayerTwo\", \"SprayerThree\", \"SprayerFour\")\n\t\tStop\n\tSprayerOne:\n\t\tGORE A 1 A_FadeOut(0.02)\n\t\tLoop\n\tSprayerTwo:\n\t\tGORE B 1 A_FadeOut(0.02)\n\t\tLoop\n\tSprayerThree:\n\t\tGORE C 1 A_FadeOut(0.02)\n\t\tLoop\n\tSprayerFour:\n\t\tGORE D 1 A_FadeOut(0.02)\n\t\tLoop\n\tDeath:\n\tCrash:\n\t\tTNT1 A 1 A_PlaySound(\"blood/splat\")\n\t\tTNT1 A 0 A_Jump(64, \"Crash2\")\n\t\tTNT1 A 0 A_SpawnItem(\"SmallerPool\")\n\t\tStop\n\tCrash2:\n\t\tTNT1 A 1 A_PlaySound(\"blood/splat\")\n\t\tStop\n\t}\n}\n\nActor SmallerPool : SmallBloodPool\n{\n\t+FORCEXYBILLBOARD\n\t+MOVEWITHSECTOR\n\t+NOBLOCKMAP\n\tDecal BloodWall\n\tRenderStyle Translucent\n\tAlpha 0.75\n\tScale 0.03\n\tYScale 0.017\n\tStates\n\t{\n\tSpawn:\n\t\tTNT1 A 0\n\t\tTNT1 A 1 A_Jump(256, \"SprayerOne\", \"SprayerTwo\", \"SprayerThree\", \"SprayerFour\")\n\t\tStop\n\tSprayerOne:\n\t\tGORE A 1 A_FadeOut(0.02)\n\t\tLoop\n\tSprayerTwo:\n\t\tGORE B 1 A_FadeOut(0.02)\n\t\tLoop\n\tSprayerThree:\n\t\tGORE C 1 A_FadeOut(0.02)\n\t\tLoop\n\tSprayerFour:\n\t\tGORE D 1 A_FadeOut(0.02)\n\t\tLoop\n\t}\n}\n\n//\n\nActor PoolingBlood2 : PoolingBlood\n{\n\tScale 0.4\n\tStates\n\t{\n\tSpawn:\n\t\tBLUD CBA 8 //CCCCCCCCBBBBBBBBAAAAAAAA 1 A_SpawnItemEx(\"TrailingBlood\")\n\t\tStop\n\tCrash:\n\t\tTNT1 A 0 A_PlaySound(\"blood/splat\")\n\t\tTNT1 A 0 A_Jump(64, \"Crash2\")\n\t\tTNT1 A 0 A_SpawnItem(\"SmallerPool2\")\n\t\tStop\n\tCrash2:\n\t\tTNT1 A 0 A_PlaySound(\"blood/splat2\")\n\t\tStop\n\t}\n}\n\nActor SmallerPool2 : SmallerPool\n{\n\tScale 0.30\n\tStates\n\t{\n\tSpawn:\n\t\tPOB2 A 1 A_FadeOut(0.02)\n\t\tloop\n\t}\n}\n\nActor TrailingBlood\n{\n\tAlpha 0.75\n\tGravity 0.15\n\tScale 0.5\n\tSpeed 0\n\tProjectile\n\t-NOGRAVITY\n\tStates\n\t{\n\tSpawn:\n\t\tBLUD CBA 1\n\tFadeOut:\n\t\tBLUD A 1 A_FadeOut(0.2)\n\t\tLoop\n\t}\n}"
      },
      {
        "source": "pk3",
        "name": "Actors/body.txt",
        "contents": "// Hideous Destructor style corpse shields to prevent over penetrating weapons.\n\nActor Blocker\n{\n\tRadius 16\n\tHeight 56\n\tMass 0x7FFFFFFF\n\tSpecies \"Enemy\"\n\tBloodColor \"60 00 00\"\n\tTag \" \"\n\t+SHOOTABLE\n\t+NODAMAGE\n\t+NOTARGET\n\t-SOLID\n\tStates\n\t{\n\tSpawn:\n\t\tTNT1 A 16\n\t\tStop\n\t}\n}\n\nActor BlockerPinky : Blocker\n{\n\tRadius 30\n\tHeight 56\n\tStates\n\t{\n\tSpawn:\n\t\tTNT1 A 20\n\t\tStop\n\t}\n}\n\nActor BlockerCaco : Blocker\n{\n\tRadius 30\n\tHeight 56\n\tStates\n\t{\n\tSpawn:\n\t\tTNT1 A 30\n\t\tStop\n\t}\n}\n\nActor BlockerArach : Blocker\n{\n\tRadius 64\n\tHeight 64\n\tStates\n\t{\n\tSpawn:\n\t\tTNT1 A 20\n\t\tStop\n\t}\n}\n\nActor BlockerFat : Blocker\n{\n\tRadius 48\n\tHeight 64\n\tStates\n\t{\n\tSpawn:\n\t\tTNT1 A 20\n\t\tStop\n\t}\n}\n\nActor BlockerBruiserK : Blocker\n{\n\tRadius 24\n\tHeight 64\n\tStates\n\t{\n\tSpawn:\n\t\tTNT1 A 20\n\t\tStop\n\t}\n}\n\nActor BlockerBruiserB : Blocker\n{\n\tRadius 24\n\tHeight 64\n\tStates\n\t{\n\tSpawn:\n\t\tTNT1 A 2\n\t\tStop\n\t}\n}\n\nActor BlockerVile : Blocker\n{\n\tRadius 20\n\tHeight 64\n\tStates\n\t{\n\tSpawn:\n\t\tTNT1 A 20\n\t\tStop\n\t}\n}\n\nActor BlockerVilePre : Blocker\n{\n\tRadius 20\n\tHeight 64\n\tStates\n\t{\n\tSpawn:\n\t\tTNT1 A 2\n\t\tStop\n\t}\n}\n\nActor BlockerSoul : Blocker\n{\n\tRadius 16\n\tHeight 32\n\tStates\n\t{\n\tSpawn:\n\t\tTNT1 A 2\n\t\tStop\n\t}\n}\n\nActor BlockerCyber : Blocker\n{\n\tRadius 50\n\tHeight 138\n\tStates\n\t{\n\tSpawn:\n\t\tTNT1 A 150\n\t\tStop\n\t}\n}\n\nActor BlockerMaster : Blocker\n{\n\tRadius 128\n\tHeight 100\n\tStates\n\t{\n\tSpawn:\n\t\tTNT1 A 150\n\t\tStop\n\t}\n}"
      },
      {
        "source": "pk3",
        "name": "Actors/bullets.txt",
        "contents": "// Bullets.\n\nActor BaseBullet : FastProjectile\n{\n\tHeight 1\n\tRadius 1\n\tScale 0.0125\n\tMissileType \"BaseBulletTrail\"\n\tMissileHeight 8\n\tRenderStyle Add\n\tAlpha 1.0\n\tDecal \"BulletChip\"\n\tDamageType \"Player\"\n\tProjectile\n\t+BLOODSPLATTER\n\t+BRIGHT\n\t//+DONTBLAST\n\t+FORCEXYBILLBOARD\n\t+NOEXTREMEDEATH\n\t+MTHRUSPECIES\n\t//+THRUGHOST\n\tStates\n\t{\n\tSpawn:\n\t\tPUFF Z 2 bright //A_PlaySound(\"whizz\")\n\t\tLoop\n\tDeath:\n\t\tTNT1 A 0\n\t\tTNT1 A 0 A_SpawnItem(\"GenSpark\")\n\t\tTNT1 A 1 A_PlaySound(\"ricochet\")\n\t\tTNT1 A 0 A_AlertMonsters(128)\n\t\tStop\n\tXDeath:\n\t\tTNT1 A 0\n\t\tTNT1 A 1 A_PlaySound(\"bullet/flesh\")\n\t\tTNT1 A 0 A_AlertMonsters(128)\n\t\tStop\n\t}\n}\n\nActor BaseBulletTrail\n{\n\tRenderStyle Add\n\tAlpha 1.0\n\tScale 0.0125\n\tGravity 0.0\n\t+BRIGHT\n\t+FORCEXYBILLBOARD\n\tStates\n\t{\n\tSpawn:\n\t\tPUFF Z 1 bright A_FadeOut(0.34)\n\t\tLoop\n\t}\n}"
      },
      {
        "source": "pk3",
        "name": "Actors/casings.txt",
        "contents": "// Casings.\n\nActor BulletCasing\n{\n\tProjectile\n\t+BOUNCEONACTORS\n\t+FORCEXYBILLBOARD\n\t-NOGRAVITY\n\t-NOBLOCKMAP\n\tBounceType Doom\n\tBounceFactor 0.5\n\tWallBounceFactor 1\n\tScale 0.1\n\tMass 5\n\tRadius 3\n\tHeight 3\n\tSpeed 6\n\tStates\n\t{\n\tSpawn:\n\t\tCSNG ABCDEFGHIJKLMNOP 1\n\t\tLoop\n\tDeath:\n\t\tTNT1 A 0 A_Jump(128, \"Death2\")\n\t\tCSNG C 500 A_StopSound\n\t\tGoto FadeLoop\n\tDeath2:\n\t\tCSNG K 500 A_StopSound\n\tFadeLoop:\n\t\t\"####\" \"#\" 1 A_FadeOut(0.05)\n\t\tLoop\n\t}\n}\n\nActor BulletCasingSpawner\n{\n    Radius 1\n    Height 1\n    Speed 25\n    Projectile\n    States\n    {\n    Spawn:\n        TNT1 A 1\n        TNT1 A 0 A_Die\n        Goto Death\n    Death:\n        TNT1 A 0 A_CustomMissile(\"BulletCasing\", -2 , 10, random(-110, -130), 2, random(8, -8))\n        Stop\n    }\n}\n\nActor PistolCasing : BulletCasing {Scale 0.1 BounceSound \"weapons/pasing\"}\n\nActor PistolCasingSpawner\n{\n    Radius 1\n    Height 1\n    Speed 25\n    Projectile\n    States\n    {\n    Spawn:\n        TNT1 A 1\n        TNT1 A 0 A_Die\n        Goto Death\n    Death:\n        TNT1 A 0 A_CustomMissile(\"PistolCasing\", -2 , 10, random(-110, -130), 2, random(8, -8))\n        Stop\n    }\n}\n\nActor RifleCasing : BulletCasing {Scale 0.15 Mass 8 BounceSound \"weapons/casing\"}\n\nActor RifleCasingSpawner // Inherting causes it to fire the wrong casing for some reason.\n{\n    Radius 1\n    Height 1\n    Speed 15\n    Projectile\n    States\n    {\n    Spawn:\n        TNT1 A 1\n        TNT1 A 0 A_Die\n        Goto Death\n    Death:\n        TNT1 A 0 A_CustomMissile(\"RifleCasing\", -2 , 10, random(-110, -130), 2, random(8, -8))\n        Stop\n    }\n}\n\nActor YellowShellCasing : BulletCasing\n{\n\tScale 0.2\n\tMass 10\n\tBounceSound \"weapons/shell\"\n\tStates\n\t{\n\tSpawn:\n\t\tSHLY ABCDEFGHIJKLMNOP 1\n\t\tLoop\n\tDeath:\n\t\tTNT1 A 0 A_Jump(128, \"Death2\")\n\t\tSHLY C 500 A_StopSound\n\t\tGoto FadeLoop\n\tDeath2:\n\t\tSHLY K 500 A_StopSound\n\tFadeLoop:\n\t\t\"####\" \"#\" 1 A_FadeOut(0.05)\n\t\tLoop\n\t}\n}\n\nActor YellowShellCasingSpawner\n{\n    Radius 1\n    Height 1\n    Speed 15\n    Projectile\n    States\n    {\n    Spawn:\n        TNT1 A 1\n        TNT1 A 0 A_Die\n        Goto Death\n    Death:\n        TNT1 A 0 A_CustomMissile(\"YellowShellCasing\", -2 , 10, random(-110, -130), 2, random(8, -8))\n        Stop\n    }\n}\n\nActor RedShellCasing : BulletCasing // No spawner needed.\n{\n\tScale 0.25\n\tMass 12\n\tBounceSound \"weapons/shell\"\n\tStates\n\t{\n\tSpawn:\n\t\tSHLL ABCDEFGHIJKLMNOP 1\n\t\tLoop\n\tDeath:\n\t\tTNT1 A 0 A_Jump(128, \"Death2\")\n\t\tSHLL C 500 A_StopSound\n\t\tGoto FadeLoop\n\tDeath2:\n\t\tSHLL K 500 A_StopSound\n\tFadeLoop:\n\t\t\"####\" \"#\" 1 A_FadeOut(0.05)\n\t\tLoop\n\t}\n}\n\nActor SniperRifleCasingSpawner\n{\n    Radius 1\n    Height 1\n    Speed 10\n    Projectile\n    States\n    {\n    Spawn:\n        TNT1 A 1\n        TNT1 A 0 A_Die\n        Goto Death\n    Death:\n        TNT1 A 0 A_CustomMissile(\"Riflecasing\", 3, 0, random(0, -45), 2, random(0, 45))\n        Stop\n    }\n}\n\nActor 25mmGrenadeCasing : BulletCasing\n{\n\tScale 0.33\n\tBounceSound \"weapons/casing\"\n\tStates\n\t{\n\tSpawn:\n\t\tSGRN A 1 A_SetAngle(angle - frandom(20, 60))\n\t\tLoop\n\tDeath:\n\t\t\"####\" \"#\" 500 A_StopSound\n\t\tGoto FadeLoop\n\t}\n}\n\nActor 25mmGrenadeCasingSpawner\n{\n    Radius 1\n    Height 1\n    Speed 15\n    Projectile\n    States\n    {\n    Spawn:\n        TNT1 A 1\n        TNT1 A 0 A_Die\n        Goto Death\n    Death:\n        TNT1 A 0 A_CustomMissile(\"25mmGrenadeCasing\", -2 , 10, random(-110, -130), 2, random(8, -8))\n        Stop\n    }\n}"
      },
      {
        "source": "pk3",
        "name": "Actors/corpses.txt",
        "contents": "// Marine corpses.\n\nActor CorpseSpawner : RandomSpawner\n{\n\tDropItem MC1\n\t//DropItem MC2\n\tDropItem MC3\n\tDropItem MC4\n\tDropItem MC5\n\tDropItem MC6\n\tDropItem MC7\n}\n\nActor MC1\n{\n\tStates\n\t{\n\tSpawn:\n\t\tCORA A -1\n\t\tStop\n\t}\n}\n\nActor MC2\n{\n\tStates\n\t{\n\tSpawn:\n\t\tCORB A -1\n\t\tStop\n\t}\n}\n\nActor MC3\n{\n\tStates\n\t{\n\tSpawn:\n\t\tCORC A -1\n\t\tStop\n\t}\n}\n\nActor MC4\n{\n\tStates\n\t{\n\tSpawn:\n\t\tCORD A -1\n\t\tStop\n\t}\n}\n\nActor MC5\n{\n\tStates\n\t{\n\tSpawn:\n\t\tCORE A -1\n\t\tStop\n\t}\n}\n\nActor MC6\n{\n\tStates\n\t{\n\tSpawn:\n\t\tCORF A -1\n\t\tStop\n\t}\n}\n\nActor MC7\n{\n\tStates\n\t{\n\tSpawn:\n\t\tCORG A -1\n\t\tStop\n\t}\n}"
      },
      {
        "source": "pk3",
        "name": "Actors/dmgtypes.txt",
        "contents": "// Redefining damage types.\n\nDamageType Headshot\n{\n\tFactor 1.0\n\tNoArmor\n}\n\nDamageType Slime\n{\n\tNoArmor // I don't want max health / vitality to be affected.\n\tReplaceFactor\n}"
      },
      {
        "source": "pk3",
        "name": "Actors/internal.txt",
        "contents": "// Action_ things and flags.\n\n// Grenade\nActor Action_Grenade : CustomInventory\n{\n   \tInventory.Amount 1\n   \tInventory.MaxAmount 1\n   \t-INVBAR\n   \tStates\n   \t{\n       \tUse:\n       \tTNT1 A 0 A_GiveInventory(\"IsThrowingGrenade\",1)\n       \tFail\n   \t}\n}\n\nActor Action_GrenadeCancel : CustomInventory\n{\n\tInventory.Amount 1\n   \tInventory.MaxAmount 1\n   \t-INVBAR\n   \tStates\n\t{\n\t   Use:\n       TNT1 A 0 A_TakeInventory(\"IsThrowingGrenade\",1)\n       Fail\n   \t}\n}\n\nActor IsThrowingGrenade : Inventory\n{\n   \tInventory.Amount 1\n   \tInventory.MaxAmount 1\n   \t-INVBAR\n}\n\n// Melee attack\nActor Action_Melee : CustomInventory\n{\n   \tInventory.Amount 1\n   \tInventory.MaxAmount 1\n   \t-INVBAR\n   \tStates\n   \t{\n       \tUse:\n       \tTNT1 A 0 A_GiveInventory(\"IsMeleeing\", 1)\n       \tFail\n   \t}\n}\n\nActor Action_MeleeCancel : CustomInventory\n{\n\tInventory.Amount 1\n   \tInventory.MaxAmount 1\n   \t-INVBAR\n   \tStates\n\t{\n\t   Use:\n       TNT1 A 0 A_TakeInventory(\"IsMeleeing\", 1)\n       Fail\n   \t}\n}\n\nActor IsMeleeing : Inventory\n{\n   \tInventory.Amount 1\n   \tInventory.MaxAmount 1\n   \t-INVBAR\n}\n\n// Perk menu\nActor Action_Perk : CustomInventory\n{\n   \tInventory.Amount 1\n   \tInventory.MaxAmount 1\n   \t-INVBAR\n   \tStates\n   \t{\n       \tUse:\n\t\tTNT1 A 0 A_GiveInventory(\"PerkMenu\", 1)\n\t\tTNT1 A 0 A_SelectWeapon(\"PerkMenu\")\n\t\t/*TNT1 A 0 A_GiveInventory(\"IsPerk\", 1)\n       \tTNT1 A 0 A_GiveInventory(\"PerkMenuSwitch\", 1)//A_GiveInventory(\"IsPerk\", 1)*/\n       \tFail\n   \t}\n}\n\nActor Action_PerkCancel : CustomInventory\n{\n\tInventory.Amount 1\n   \tInventory.MaxAmount 1\n   \t-INVBAR\n   \tStates\n\t{\n\t   Use:\n       TNT1 A 0 A_TakeInventory(\"IsPerk\",1)\n       Fail\n   \t}\n}\n\nActor IsPerk : Inventory\n{\n   \tInventory.Amount 1\n   \tInventory.MaxAmount 1\n   \t-INVBAR\n}\n\n//\n\nActor Pained : Inventory // When health is damaged.\n{\n\tInventory.Amount 1\n\tInventory.MaxAmount 175\n\t-INVBAR\n}\n\nActor Drained : Inventory // When stamina is used.\n{\n\tInventory.Amount 1\n\tInventory.MaxAmount 17\n\t-INVBAR\n}\n\nActor Dead : Inventory\n{\n\tInventory.Amount 1\n\tInventory.MaxAmount 1\n\t-INVBAR\n}\n\nActor DelayStopper : Inventory\n{\n\tInventory.Amount 1\n\tInventory.MaxAmount 1\n\t-INVBAR\n}\n\nActor HealthToken : Inventory\n{\n\tInventory.MaxAmount 100\n\t-INVBAR\n}\n\nActor Airborne : Inventory // Jumping overrides everything.\n{\n\tInventory.MaxAmount 1\n\t-INVBAR\n}\n\nActor Sprinting : Inventory\n{\n\tInventory.MaxAmount 1\n\t-INVBAR\n}\n\nActor Crouching : Inventory\n{\n\tInventory.MaxAmount 1\n\t-INVBAR\n}\n\nActor Tertiary : Inventory\n{\n\tInventory.MaxAmount 1\n\t-INVBAR\n}"
      },
      {
        "source": "pk3",
        "name": "Actors/items.txt",
        "contents": "// Non pickups.\n\nActor HealthArmor : BasicArmorPickup {Armor.SaveAmount 100 Armor.SavePercent 35}\nActor HealthArmorBonus : BasicArmorBonus {Armor.SaveAmount 1 Armor. MaxSaveAmount 100 Armor.SavePercent 35}\n\nActor StaminaX : Inventory {Inventory.Amount 1 Inventory.MaxAmount 3500}\nActor Fatigue : Inventory {Inventory.Amount 1 Inventory.MaxAmount 3500}\n\nActor NothingEver {}\n\n// Pickups.\n\nActor StimShot : CustomInventory replaces Berserk\n{\n\tInventory.Amount 1\n\tInventory.MaxAmount 3\n\tInventory.PickupMessage \"Combat stim\"\n\tInventory.PickupSound \"stimget\"\n\t-COUNTITEM\n\t-INVENTORY.INVBAR\n\tScale 0.122\n\tStates\n\t{\n\tSpawn:\n\t\tHYPO A 1\n\t\tLoop\n\tUse:\n\t\tPACK A 0 A_PlaySound(\"carepackage/use3\", CHAN_WEAPON)\n\t\tPACK A 0 A_PlaySound(\"carepackage/use3\", CHAN_WEAPON)\n\t\tPACK A 0 A_GiveInventory(\"StimEffect\", 210)\n\t\tPACK A 0 A_GiveInventory(\"StimJump\", 1)\n\t\tPACK A 0 ACS_NamedExecute(\"StimLife\", 0, 0, 0, 0)\n\t\tPACK A 0 A_TakeInventory(\"Pained\", 999)\n\t\tPACK A 0 A_TakeInventory(\"Drained\", 999)\n\t\tPACK A 0 A_SetBlend(\"FF FF 00\", 0.35, 18)\n\t\tStop\n\t}\n}\n\nActor StimGuard : PowerProtection { DamageFactor 0.95 Powerup.Duration -6 }\nActor StimJump : PowerHighJump { Powerup.Duration -6 }\nActor StimEffect : Inventory {Inventory.MaxAmount 210} // 6 seconds\n\nActor RadBall : CustomInventory replaces RadSuit\n{\n\tInventory.PickupMessage \"Biohazard sphere\"\n\tInventory.PickupSound \"radget\"\n\tRenderStyle Translucent\n\t+COUNTITEM\n\t+FLOATBOB\n\t+FORCEXYBILLBOARD\n\tStates\n\t{\n\tSpawn:\n\t\tBIOS AB 6 bright\n\t\tLoop\n\tPickup:\n\t\tTNT1 A 0 A_SetBlend(\"00 FF 00\", 0.8, 16)\n\t\tTNT1 A 0 A_GiveInventory(\"RadSuitAdd\", 1)\n\t\tStop\n\t}\n}\n\nActor RadSuitAdd : RadSuit\n{\n\t+INVENTORY.ADDITIVETIME\n}\n\nActor InvulBall : CustomInventory replaces InvulnerabilitySphere\n{\n\tInventory.PickupMessage \"Barrier sphere\"\n\tInventory.PickupSound \"megaget\"\n\tRenderStyle Translucent\n\t+COUNTITEM\n\t+FLOATBOB\n\t+FORCEXYBILLBOARD\n\tStates\n\t{\n\tSpawn:\n\t\tSPOT ABCD 6 bright\n\t\tLoop\n\tPickup:\n\t\tTNT1 A 0 A_SetBlend(\"FF FF 00\", 0.8, 16)\n\t\tTNT1 A 0 A_GiveInventory(\"InvulPower\", 1)\n\t\tStop\n\t}\n}\n\nActor InvulPower : InvulnerabilitySphere\n{\n\tPowerup.Color GoldMap\n\tPowerup.Duration -30\n\t//Powerup.Mode Reflective\n\t+INVENTORY.ADDITIVETIME\n}\n\nActor RecoverBall : CustomInventory\n{\n\tInventory.PickupMessage \"Demon soul sphere\"\n\tInventory.PickupSound \"soulget\"\n\tRenderStyle Translucent\n\t+COUNTITEM\n\t+FLOATBOB\n\t+FORCEXYBILLBOARD\n\tStates\n\t{\n\tSpawn:\n\t\tCARN ABCDEDCB 6 bright\n\t\tLoop\n\tPickup:\n\t\tTNT1 A 0 A_SetBlend(\"FF 00 00\", 0.8, 16)\n\t\tTNT1 A 0 HealThing(100)\n\t\tTNT1 A 0 A_GiveInventory(\"HealthArmor\", 1)\n\t\tTNT1 A 0 A_GiveInventory(\"StaminaX\", 9999)\n\t\tTNT1 A 0 A_GiveInventory(\"Fatigue\", 9999)\n\t\tStop\n\t}\n}\n\nActor RecoverBallDropped : CustomInventory\n{\n\tInventory.PickupMessage \"Demon soul sphere\"\n\tInventory.PickupSound \"soulget\"\n\tRenderStyle Translucent\n\t-COUNTITEM\n\t+FLOATBOB\n\t+FORCEXYBILLBOARD\n\tStates\n\t{\n\tSpawn:\n\t\tCARN ABCDEDCB 6 bright\n\t\tLoop\n\tPickup:\n\t\tTNT1 A 0 A_GiveInventory(\"XPNow\", 3500)\n\t\tTNT1 A 0 ACS_NamedTerminate(\"XPNowThing\", 0)\n\t\tTNT1 A 0 A_GiveInventory(\"XPNowDelay\", 105)\n\t\tTNT1 A 0 ACS_NamedExecute(\"XPNowThing\", 0, 0, 0, 0)\n\t\tTNT1 A 0 A_SetBlend(\"FF 00 00\", 0.8, 16)\n\t\tTNT1 A 0 A_GiveInventory(\"Experience\", 3500)\n\t\tTNT1 A 0 HealThing(100)\n\t\tTNT1 A 0 A_GiveInventory(\"HealthArmor\", 1)\n\t\tTNT1 A 0 A_GiveInventory(\"StaminaX\", 9999)\n\t\tTNT1 A 0 A_GiveInventory(\"Fatigue\", 9999)\n\t\tStop\n\t}\n}\n\nActor RecoverBallDroppedExtreme : CustomInventory\n{\n\tInventory.PickupMessage \"Demon soul sphere\"\n\tInventory.PickupSound \"soulget\"\n\tRenderStyle Translucent\n\t-COUNTITEM\n\t+FLOATBOB\n\t+FORCEXYBILLBOARD\n\tStates\n\t{\n\tSpawn:\n\t\tCARN ABCDEDCB 6 bright\n\t\tLoop\n\tPickup:\n\t\tTNT1 A 0 A_GiveInventory(\"XPNow\", 7000)\n\t\tTNT1 A 0 ACS_NamedTerminate(\"XPNowThing\", 0)\n\t\tTNT1 A 0 A_GiveInventory(\"XPNowDelay\", 105)\n\t\tTNT1 A 0 ACS_NamedExecute(\"XPNowThing\", 0, 0, 0, 0)\n\t\tTNT1 A 0 A_SetBlend(\"FF 00 00\", 0.8, 16)\n\t\tTNT1 A 0 A_GiveInventory(\"Experience\", 7000)\n\t\tTNT1 A 0 HealThing(100)\n\t\tTNT1 A 0 A_GiveInventory(\"HealthArmor\", 1)\n\t\tTNT1 A 0 A_GiveInventory(\"StaminaX\", 9999)\n\t\tTNT1 A 0 A_GiveInventory(\"Fatigue\", 9999)\n\t\tStop\n\t}\n}\n\nActor RBS1 : RecoverBall replaces SoulSphere {}\nActor RBS2 : RecoverBall replaces MegaSphere {}\n//Actor RBS3 : RecoverBall replaces Berserk {}\n\nActor XPBall : CustomInventory\n{\n\tInventory.PickupMessage \"Marine soul sphere\"\n\tInventory.PickupSound \"soulget\"\n\tRenderStyle Translucent\n\t-COUNTITEM\n\t+FLOATBOB\n\t+FORCEXYBILLBOARD\n\tStates\n\t{\n\tSpawn:\n\t\tTIME ABCD 6 bright\n\t\tLoop\n\tPickup:\n\t\tTNT1 A 0 A_GiveInventory(\"XPNow\", 1750)\n\t\tTNT1 A 0 ACS_NamedTerminate(\"XPNowThing\", 0)\n\t\tTNT1 A 0 A_GiveInventory(\"XPNowDelay\", 105)\n\t\tTNT1 A 0 ACS_NamedExecute(\"XPNowThing\", 0, 0, 0, 0)\n\t\tTNT1 A 0 A_SetBlend(\"FF FF FF\", 0.8, 16)\n\t\tTNT1 A 0 A_GiveInventory(\"Experience\", 1750)\n\t\tTNT1 A 0 HealThing(100)\n\t\tTNT1 A 0 A_GiveInventory(\"HealthArmor\", 1)\n\t\tTNT1 A 0 A_GiveInventory(\"StaminaX\", 9999)\n\t\tTNT1 A 0 A_GiveInventory(\"Fatigue\", 9999)\n\t\tStop\n\t}\n}\n\nActor XPBallExtreme : CustomInventory\n{\n\tInventory.PickupMessage \"Marine soul sphere\"\n\tInventory.PickupSound \"soulget\"\n\tRenderStyle Translucent\n\t-COUNTITEM\n\t+FLOATBOB\n\t+FORCEXYBILLBOARD\n\tStates\n\t{\n\tSpawn:\n\t\tTIME ABCD 6 bright\n\t\tLoop\n\tPickup:\n\t\tTNT1 A 0 A_GiveInventory(\"XPNow\", 3500)\n\t\tTNT1 A 0 ACS_NamedTerminate(\"XPNowThing\", 0)\n\t\tTNT1 A 0 A_GiveInventory(\"XPNowDelay\", 105)\n\t\tTNT1 A 0 ACS_NamedExecute(\"XPNowThing\", 0, 0, 0, 0)\n\t\tTNT1 A 0 A_SetBlend(\"FF FF FF\", 0.8, 16)\n\t\tTNT1 A 0 A_GiveInventory(\"Experience\", 3500)\n\t\tTNT1 A 0 HealThing(100)\n\t\tTNT1 A 0 A_GiveInventory(\"HealthArmor\", 1)\n\t\tTNT1 A 0 A_GiveInventory(\"StaminaX\", 9999)\n\t\tTNT1 A 0 A_GiveInventory(\"Fatigue\", 9999)\n\t\tStop\n\t}\n}\n\nActor LotsOfAmmo : CustomInventory replaces Backpack\n{\n\tInventory.PickupMessage \"resupply crate\"\n\tInventory.PickupSound \"packget\"\n\t-COUNTITEM\n\tScale 0.045\n\tStates\n\t{\n\tSpawn:\n\t\tAMMO X -1\n\t\tStop\n\tPickup:\n\t\tTNT1 A 0 A_GiveInventory(\"HealthPack\", 2)\n\t\tTNT1 A 0 A_GiveInventory(\"FieldRation\", 2)\n\t\tTNT1 A 0 A_GiveInventory(\"StimShot\", 1)\n\t\tTNT1 A 0 A_GiveInventory(\"Mk23Extra\", 20)\n\t\tTNT1 A 0 A_GiveInventory(\"F88Extra\", 60)\n\t\tTNT1 A 0 A_GiveInventory(\"KushnapupExtra\", 24)\n\t\tTNT1 A 0 A_GiveInventory(\"Mk3GrenadeAmmo\", 2)\n\t\tTNT1 A 0 A_GiveInventory(\"NeoSteadExtra\", 16)\n\t\tTNT1 A 0 A_GiveInventory(\"XM25Extra\", 30)\n\t\tTNT1 A 0 A_GiveInventory(\"ThunderExtra\", 2)\n\t\tStop\n\t}\n}\n\nActor SpawnBlur : PowerInvisibility\n{\n\t//Powerup.Color BlueMap\n\tPowerup.Duration -999\n\tPowerup.Strength 50\n\tPowerup.Mode \"Translucent\"\n}\n\nActor SpawnFreeze : PowerTimeFreezer {Powerup.Duration -999}\n\nActor SpawnFright : PowerFrightener {Powerup.Duration -999}\n\nActor StuffDropperHP : RandomSpawner replaces HealthBonus\n{\n\tDropItem \"Stuff1\"\n\tDropItem \"Stuff2\"\n\tDropItem \"Stuff3\"\n\tDropItem \"Stuff4\"\n}\n\nActor StuffDropperSA : StuffDropperHP replaces ArmorBonus {}\n\nActor Stuff1 : Inventory\n{\n\tInventory.PickupMessage \"Blood chalice\"\n\tInventory.PickupSound \"itemget\"\n\tInventory.MaxAmount 99999\n\tScale 1.33\n\t+COUNTITEM\n\tStates\n\t{\n\tSpawn:\n\t\tTREA A 8\n\t\tTREA A 8 bright\n\t\tLoop\n\t}\n}\n\nActor Stuff2 : Stuff1\n{\n\tInventory.PickupMessage \"Skull chest\"\n\tInventory.PickupSound \"itemget\"\n\tScale 0.95\n\tStates\n\t{\n\tSpawn:\n\t\tTREA B 8\n\t\tTREA B 8 bright\n\t\tLoop\n\t}\n}\n\nActor Stuff3 : Stuff1\n{\n\tInventory.PickupMessage \"Chi gem\"\n\tInventory.PickupSound \"itemget\"\n\tScale 0.95\n\tStates\n\t{\n\tSpawn:\n\t\tTREA C 8\n\t\tTREA C 8 bright\n\t\tLoop\n\t}\n}\n\nActor Stuff4 : Stuff1\n{\n\tInventory.PickupMessage \"Unholy bible\"\n\tInventory.PickupSound \"itemget\"\n\tScale 0.88\n\tStates\n\t{\n\tSpawn:\n\t\tTREA D 8\n\t\tTREA D 8 bright\n\t\tLoop\n\t}\n}\n\nActor NewBlueCard : BlueCard replaces BlueCard\n{\n\tInventory.PickupSound \"keyget1\"\n\tStates\n\t{\n\tSpawn:\n\t\tBKEY A 8\n\t\tBKEY A 8 bright\n\t\tLoop\n\t}\n}\n\nActor NewBlueSkull : BlueSkull replaces BlueSkull\n{\n\tInventory.PickupSound \"keyget2\"\n\tStates\n\t{\n\tSpawn:\n\t\tBSKL A 8\n\t\tBSKL A 8 bright\n\t\tLoop\n\t}\n}\n\nActor NewYellowCard : YellowCard replaces YellowCard\n{\n\tInventory.PickupSound \"keyget1\"\n\tStates\n\t{\n\tSpawn:\n\t\tYKEY A 8\n\t\tYKEY A 8 bright\n\t\tLoop\n\t}\n}\n\nActor NewYellowSkull : YellowSkull replaces YellowSkull\n{\n\tInventory.PickupSound \"keyget2\"\n\tStates\n\t{\n\tSpawn:\n\t\tYSKL A 8\n\t\tYSKL A 8 bright\n\t\tLoop\n\t}\n}\n\nActor NewRedCard : RedCard replaces RedCard\n{\n\tInventory.PickupSound \"keyget1\"\n\tStates\n\t{\n\tSpawn:\n\t\tRKEY A 8\n\t\tRKEY A 8 bright\n\t\tLoop\n\t}\n}\n\nActor NewRedSkull : RedSkull replaces RedSkull\n{\n\tInventory.PickupSound \"keyget2\"\n\tStates\n\t{\n\tSpawn:\n\t\tRSKL A 8\n\t\tRSKL A 8 bright\n\t\tLoop\n\t}\n}"
      },
      {
        "source": "pk3",
        "name": "Actors/kaboom.txt",
        "contents": "// Explosions.\n\nActor ExplosionMain\n{\n\t+FORCEXYBILLBOARD\n\t+NOGRAVITY\n  \t+NOINTERACTION\n  \t+NOBLOCKMAP\n  \t+NOTELEPORT\n\tRenderStyle Add\n\tAlpha 1.0\n\tScale 1.1\n\tStates\n\t{\n\tSpawn:\n\t\tTNT1 A 0\n\t\tTNT1 A 0 A_SpawnItemEx(\"AfterSmoke\", 0, 0, 0, (frandom(-1, 1)), (frandom(-1, 1)), (frandom(-1, 1)))\n\t\tTNT1 A 0 A_Jump(256, \"Boom3\", \"Boom4\", \"Boom5\", \"Boom6\")\n\t\tStop\n\tBoom3:\n\t\tX003 ACEGIKMOQSUWY 1 bright\n\t\tStop\n\tBoom4:\n\t\tX004 ACEGIKMOQ 1 bright\n\t\tStop\n\tBoom5:\n\t\tX005 ACEGIKMOQSUW 1 bright\n\t\tStop\n\tBoom6:\n\t\tX006 ACEGIKMO 1 bright\n\t\tStop\n\t}\n}\n\nActor ExplosionBigger : ExplosionMain {Scale 6.0}\n\nActor MiniExplosion : ExplosionMain\n{\n\tScale 0.5\n\tStates\n\t{\n\tSpawn:\n\t\tTNT1 A 0\n\t\tTNT1 A 0 A_SpawnItemEx(\"AfterSmokeSmaller\", 0, 0, 0, (frandom(-0.5, 0.5)), (frandom(-0.5, 0.5)), (frandom(-0.5, 0.5)))\n\t\tTNT1 A 0 A_Jump(256, \"Boom3\", \"Boom4\", \"Boom5\", \"Boom6\")\n\t\tStop\n\tBoom3:\n\t\tX003 ACEGIKMOQSUWY 1 bright\n\t\tStop\n\tBoom4:\n\t\tX004 ACEGIKMOQ 1 bright\n\t\tStop\n\tBoom5:\n\t\tX005 ACEGIKMOQSUW 1 bright\n\t\tStop\n\tBoom6:\n\t\tX006 ACEGIKMO 1 bright\n\t\tStop\n\t}\n}\n\nActor MiniExplosionBigger : MiniExplosion\n{\n\tScale 0.65\n}\n\nActor ExplosionFire\n{\n\t+FORCEXYBILLBOARD\n\t+NOGRAVITY\n\tRadius 0\n\tHeight 0\n\tAlpha 1.0\n\tRenderStyle Add\n\tScale 1.4\n\tStates\n\t{\n\tSpawn:\n\t\tXPN1 A 0\n\t\tXPN1 A 0 A_Jump(128, \"Spawn2\")\n\t\tXPN1 ABCDEFGHIJK 1 Bright\n\t\tXPN2 ABCDEFGHIJK 1 Bright\n\t\tXPN3 ABCDEFGHIJ 1 Bright\n\t\tStop\n\tSpawn2:\n\t\tXPN1 LMNOPQRSTUV 1 Bright\n\t\tXPN2 LMNOPQRSTUV 1 Bright\n\t\tXPN3 LMNOPQRSTU 1 Bright\n\t\tStop\n\t}\n}\n\nActor ExplosionFireBigger : ExplosionFire {Scale 6.0}\n\nActor ExplosionFireSmaller : ExplosionFire\n{\n\tScale 1.3\n\tStates\n\t{\n\tSpawn:\n\t\tXPN1 A 0\n\t\tXPN1 A 0 A_Jump(128, \"Spawn2\")\n\t\tXPN1 ACEGIK 1 Bright\n\t\tXPN2 ACEGIK 1 Bright\n\t\tXPN3 ACEGI 1 Bright\n\t\tStop\n\tSpawn2:\n\t\tXPN1 LNPRTV 1 Bright\n\t\tXPN2 LNPRTV 1 Bright\n\t\tXPN3 LNPRT 1 Bright\n\t\tStop\n\t}\n}\n\nActor ExplosionFireMuzzle : ExplosionFire\n{\n\tSpeed 35\n\tScale 1.0\n\tStates\n\t{\n\tSpawn:\n\t\tXPN1 A 0\n\t\tXPN1 A 0 A_Jump(128, \"Spawn2\")\n\t\tXPN1 A 1 Bright A_Jump(128, 1)\n\t\tXPN1 E 1 Bright A_Jump(128, 1)\n\t\tXPN1 I 1 Bright A_Jump(128, 1)\n\t\tXPN2 A 1 Bright A_Jump(128, 1)\n\t\tXPN2 E 1 Bright A_Jump(128, 1)\n\t\tXPN2 I 1 Bright A_Jump(128, 1)\n\t\tXPN3 A 1 Bright A_Jump(128, 1)\n\t\tXPN3 E 1 Bright A_Jump(128, 1)\n\t\tXPN3 I 1 Bright\n\t\tStop\n\tSpawn2:\n\t\tXPN1 L 1 Bright A_Jump(128, 1)\n\t\tXPN1 P 1 Bright A_Jump(128, 1)\n\t\tXPN1 T 1 Bright A_Jump(128, 1)\n\t\tXPN2 L 1 Bright A_Jump(128, 1)\n\t\tXPN2 P 1 Bright A_Jump(128, 1)\n\t\tXPN2 T 1 Bright A_Jump(128, 1)\n\t\tXPN3 L 1 Bright A_Jump(128, 1)\n\t\tXPN3 P 1 Bright A_Jump(128, 1)\n\t\tXPN3 T 1 Bright\n\t\tStop\n\t}\n}\n\nActor ExplosionFireDebris : ExplosionFireSmaller\n{\n\tDamageType \"Smolder\"\n\tScale 0.8\n\t+NODAMAGETHRUST\n\tStates\n\t{\n\tSpawn:\n\t\tXPN1 A 0\n\t\tXPN1 A 0 A_Jump(128, \"Spawn2\")\n\t\tXPN1 ACEGIK 1 Bright //A_Explode(3, 48)\n\t\tXPN2 ACEGIK 1 Bright\n\t\tXPN3 ACEGI 1 Bright\n\t\tStop\n\tSpawn2:\n\t\tXPN1 LNPRTV 1 Bright //A_Explode(3, 48)\n\t\tXPN2 LNPRTV 1 Bright\n\t\tXPN3 LNPRT 1 Bright\n\t\tStop\n\t}\n}\n\nActor ExplosionShockwave\n{\n\tAlpha 0.9\n\tSpeed 0\n\tProjectile\n\tRenderStyle Add\n\t+FORCEXYBILLBOARD\n\t+NOGRAVITY\n\t+NOINTERACTION\n\tStates\n\t{\n\tSpawn:\n\t\tWAVE A 0\n\t\tWAVE A 0 A_FadeOut(0.1)\n\t\tWAVE A 2 bright A_SetScale(0.5)\n\t\tWAVE A 0 A_FadeOut(0.1)\n\t\tWAVE A 1 bright A_SetScale(0.8)\n\t\tWAVE A 0 A_FadeOut(0.1)\n\t\tWAVE A 1 bright A_SetScale(1.1)\n\t\tWAVE A 0 A_FadeOut(0.1)\n\t\tWAVE A 1 bright A_SetScale(1.4)\n\t\tWAVE A 0 A_FadeOut(0.1)\n\t\tWAVE A 1 bright A_SetScale(1.7)\n\t\tWAVE A 0 A_FadeOut(0.1)\n\t\tWAVE A 1 bright A_SetScale(2.0)\n\t\tStop\n\t}\n}\n\nActor 25mmExplosionShockwave : ExplosionShockwave\n{\n\tStates\n\t{\n\tSpawn:\n\t\tWAVE A 0\n\t\tWAVE A 0 A_FadeOut(0.1)\n\t\tWAVE A 2 bright A_SetScale(0.2)\n\t\tWAVE A 0 A_FadeOut(0.1)\n\t\tWAVE A 1 bright A_SetScale(0.4)\n\t\tWAVE A 0 A_FadeOut(0.1)\n\t\tWAVE A 1 bright A_SetScale(0.6)\n\t\tWAVE A 0 A_FadeOut(0.1)\n\t\tWAVE A 1 bright A_SetScale(0.8)\n\t\tWAVE A 0 A_FadeOut(0.1)\n\t\tWAVE A 1 bright A_SetScale(1.0)\n\t\tWAVE A 0 A_FadeOut(0.1)\n\t\tWAVE A 1 bright A_SetScale(1.2)\n\t\tStop\n\t}\n}"
      },
      {
        "source": "pk3",
        "name": "Actors/muzzles.txt",
        "contents": "// Muzzle flashes.\n\nActor MuzzleFlash\n{\n\tAlpha 1.0\n\tSpeed 40\n\tProjectile\n\tScale 0.25\n\tRadius 1\n\tHeight 1\n\tRenderStyle Add\n\t+FIXMAPTHINGPOS\n\t+NOGRAVITY\n\t+NOINTERACTION\n\t+MISSILE\n\t+NOBLOCKMAP\n\t+NOGRAVITY\n\t+DROPOFF\n\t+NOTELEPORT\n\t+FORCEXYBILLBOARD\n\t+GHOST\n\t+RANDOMIZE\n\tStates\n\t{\n\tSpawn:\n\t\tTNT1 A 0\n\t\tTNT1 A 1 A_Jump(256, \"Flash1\", \"Flash2\", \"Flash3\", \"Flash4\")\n\t\tStop\n\tFlash1:\n\t\tEXP6 A 1 bright A_Jump(128, 1)\n\t\tEXP6 B 1 bright A_Jump(128, 1)\n\t\tEXP6 C 1 bright A_Jump(128, 1)\n\t\tEXP6 D 1 bright A_Jump(128, 1)\n\t\tEXP6 E 1 bright A_Jump(128, 1)\n\t\tEXP6 F 1 bright A_Jump(128, 1)\n\t\tEXP6 G 1 bright A_Jump(128, 1)\n\t\tEXP6 H 1 bright\n\t\tStop\n\tFlash2:\n\t\tEXP7 A 1 bright A_Jump(128, 1)\n\t\tEXP7 B 1 bright A_Jump(128, 1)\n\t\tEXP7 C 1 bright A_Jump(128, 1)\n\t\tEXP7 D 1 bright A_Jump(128, 1)\n\t\tEXP7 E 1 bright A_Jump(128, 1)\n\t\tEXP7 F 1 bright A_Jump(128, 1)\n\t\tEXP7 G 1 bright A_Jump(128, 1)\n\t\tEXP7 H 1 bright\n\t\tStop\n\tFlash3:\n\t\tEXP8 A 1 bright A_Jump(128, 1)\n\t\tEXP8 B 1 bright A_Jump(128, 1)\n\t\tEXP8 C 1 bright A_Jump(128, 1)\n\t\tEXP8 D 1 bright A_Jump(128, 1)\n\t\tEXP8 E 1 bright A_Jump(128, 1)\n\t\tEXP8 F 1 bright A_Jump(128, 1)\n\t\tEXP8 G 1 bright A_Jump(128, 1)\n\t\tEXP8 H 1 bright\n\t\tStop\n\tFlash4:\n\t\tEXP9 A 1 bright A_Jump(128, 1)\n\t\tEXP9 B 1 bright A_Jump(128, 1)\n\t\tEXP9 C 1 bright A_Jump(128, 1)\n\t\tEXP9 D 1 bright A_Jump(128, 1)\n\t\tEXP9 E 1 bright A_Jump(128, 1)\n\t\tEXP9 F 1 bright A_Jump(128, 1)\n\t\tEXP9 G 1 bright A_Jump(128, 1)\n\t\tEXP9 H 1 bright\n\t\tStop\n\t}\n}\n\nActor SmallMuzzleFlash : MuzzleFlash {Scale 0.40}\nActor MediumMuzzleFlash : MuzzleFlash {Scale 0.50}\nActor BigMuzzleFlash : MuzzleFlash {Scale 0.60}\nActor HugeMuzzleFlash : MuzzleFlash {Scale 0.70}\n\nActor FistFlash : MuzzleFlash\n{\n\tSpeed 75\n\tScale 1.5\n\t-RANDOMIZE\n\tStates\n\t{\n\tSpawn:\n\t\tTNT1 A 0\n\t\tPLSE CD 1 bright //A_Blast(BF_NOIMPACTDAMAGE, 250, 65, 75.0)\n\t\tStop\n\t}\n}\n\nActor FullMuzzle : MuzzleFlash\n{\n\tSpeed 0\n\tBounceType \"Doom\"\n\t+FLOORCLIP\n\t-NOCLIP\n\t-RANDOMIZE\n\tStates\n\t{\n\tSpawn:\n\t\tTNT1 A 0\n\t\tTNT1 A 1 A_Jump(256, \"Flash1\", \"Flash2\", \"Flash3\", \"Flash4\")\n\t\tStop\n\tFlash1:\n\t\tEXP6 ABCDEFGH 2 Bright\n\t\tStop\n\tFlash2:\n\t\tEXP7 ABCDEFGH 2 Bright\n\t\tStop\n\tFlash3:\n\t\tEXP8 ABCDEFGH 2 Bright\n\t\tStop\n\tFlash4:\n\t\tEXP9 ABCDEFGH 2 Bright\n\t\tStop\n\t}\n}\n\nActor SmallFullMuzzle : FullMuzzle {Scale 0.40}\nActor MediumFullMuzzle : FullMuzzle {Scale 0.50}\nActor BigFullMuzzle : FullMuzzle {Scale 0.60}\nActor HugeFullMuzzle : FullMuzzle {Scale 0.70}\n\nActor FullMuzzleDebris\n{\n\tAlpha 1.0\n\tSpeed 2\n\tGravity 1.25\n\tScale 0.50\n\tRadius 3\n\tHeight 3\n\tRenderStyle Add\n\tBounceCount 2\n\tBounceFactor 0.1\n\tBounceType \"Doom\"\n\tDamageType \"Smolder\"\n\tDecal \"Scorch\"\n\t+DONTSPLASH\n\t+FLOORCLIP\n\t+FORCEXYBILLBOARD\n\t+MISSILE\n\t//+NODAMAGETHRUST\n\t+NOTELEPORT\n\t+SKYEXPLODE\n\tStates\n\t{\n\tSpawn:\n\t\tTNT1 A 0\n\t\tTNT1 A 0 A_Jump(256, \"Flash1\", \"Flash2\", \"Flash3\", \"Flash4\")\n\t\tStop\n\tFlash1:\n\t\tTNT1 A 0 A_Explode(3, 48)\n\t\tTNT1 A 0 A_SpawnItem(\"AfterSmoke\")\n\t\tEXP6 A 2 Bright A_SpawnItemEx(\"MediumFullMuzzle\")\n\t\tLoop\n\tFlash2:\n\t\tTNT1 A 0 A_Explode(3, 48)\n\t\tTNT1 A 0 A_SpawnItem(\"AfterSmoke\")\n\t\tEXP7 A 2 Bright A_SpawnItemEx(\"MediumFullMuzzle\")\n\t\tLoop\n\tFlash3:\n\t\tTNT1 A 0 A_Explode(3, 48)\n\t\tTNT1 A 0 A_SpawnItem(\"AfterSmoke\")\n\t\tEXP8 A 2 Bright A_SpawnItemEx(\"MediumFullMuzzle\")\n\t\tLoop\n\tFlash4:\n\t\tTNT1 A 0 A_Explode(3, 48)\n\t\tTNT1 A 0 A_SpawnItem(\"AfterSmoke\")\n\t\tEXP9 A 2 Bright A_SpawnItemEx(\"MediumFullMuzzle\")\n\t\tLoop\n\tDeath:\n\t\tTNT1 A 0 A_Jump(256, \"Death1\", \"Death2\", \"Death3\", \"Death4\")\n\t\tStop\n\tDeath1:\n\t\tTNT1 A 0 A_Explode(3, 48)\n\t\tTNT1 A 0 A_SpawnItem(\"AfterSmoke\")\n\t\tTNT1 A 0 A_SpawnItemEx(\"ExplosionFireDebris\")\n\t\tEXP6 A 1 Bright A_FadeOut(0.05)\n\t\tLoop\n\tDeath2:\n\t\tTNT1 A 0 A_Explode(3, 48)\n\t\tTNT1 A 0 A_SpawnItem(\"AfterSmoke\")\n\t\tTNT1 A 0 A_SpawnItemEx(\"ExplosionFireDebris\")\n\t\tEXP7 A 1 Bright A_FadeOut(0.05)\n\t\tLoop\n\tDeath3:\n\t\tTNT1 A 0 A_Explode(3, 48)\n\t\tTNT1 A 0 A_SpawnItem(\"AfterSmoke\")\n\t\tTNT1 A 0 A_SpawnItemEx(\"ExplosionFireDebris\")\n\t\tEXP8 A 1 Bright A_FadeOut(0.05)\n\t\tLoop\n\tDeath4:\n\t\tTNT1 A 0 A_Explode(3, 48)\n\t\tTNT1 A 0 A_SpawnItem(\"AfterSmoke\")\n\t\tTNT1 A 0 A_SpawnItemEx(\"ExplosionFireDebris\")\n\t\tEXP9 A 1 Bright A_FadeOut(0.05)\n\t\tLoop\n\t}\n}\n\nActor FullMuzzleDebrisNuke : FullMuzzleDebris {DamageType \"Nuke\"}\n\nActor SilentMuzzle : MuzzleFlash\n{\n\tScale 0.4\n\tStates\n\t{\n\tSpawn:\n\t\tTNT1 A 0\n\t\tX105 A 1 bright A_Jump(128, 1)\n\t\t//X105 B 1 bright A_Jump(128, 1)\n\t\tX105 C 1 bright A_Jump(128, 1)\n\t\t//X105 D 1 bright A_Jump(128, 1)\n\t\tX105 E 1 bright A_Jump(128, 1)\n\t\t//X105 F 1 bright A_Jump(128, 1)\n\t\tX105 G 1 bright A_Jump(128, 1)\n\t\tX105 H 1 bright\n\t\tStop\n\t}\n}"
      },
      {
        "source": "pk3",
        "name": "Actors/ngplus.txt",
        "contents": "// New game plus stuff.\n\nActor IsNewGamePlus : Inventory {Inventory.MaxAmount 1}\n\nActor NGPlusDamage : PowerDamage\n{\n\tDamageFactor \"None\", 0.5\n\tPowerup.Duration -999999\n}\n\nActor NGPlusDefense : PowerProtection\n{\n\tDamageFactor \"None\", 2.0\n\tPowerup.Duration -999999\n}"
      },
      {
        "source": "pk3",
        "name": "Actors/player.txt",
        "contents": "// Pawn.\n\nActor \"Orange Vendor\" : DoomPlayer replaces DoomPlayer\n{\n\tGibHealth 25\n\tBloodColor \"60 00 00\"\n\n  \tPlayer.DisplayName \"Orange Vendor\"\n\tTag \"Orange Vendor\"\n\n  \tPlayer.DamageScreenColor \"40 00 00\", 1.0\n\tPlayer.DamageScreenColor \"00 00 FF\", 1.0, \"Drowning\"\n  \tPlayer.DamageScreenColor \"FF FF FF\", 1.0, \"Slime\"\n\tPlayer.DamageScreenColor \"00 FF 00\", 1.0, \"Telefrag\"\n\n\tPlayer.ForwardMove 3.0, 1.5\n\tPlayer.SideMove 2.5, 1.25\n\n\tPlayer.GruntSpeed 19\n\n  \t//Player.ForwardMove 1.25, 0.625//0.95, 0.475//0.9, 0.45\n  \t//Player.SideMove 1.0, 0.5//0.9, 0.45//0.85, 0.425\n  \tPlayer.ViewHeight 45\n  \tPlayer.AttackZOffset 18\n\tPlayer.JumpZ 9\n\tMass 125\n\t//Height 56\n\tRadius 16\n\n\tPlayer.StartItem \"HealthArmor\"\n\tPlayer.StartItem \"StaminaX\", 3500\n\tPlayer.StartItem \"Fatigue\", 3500\n\n\tPlayer.StartItem \"Mk23\"\n\tPlayer.StartItem \"CarePackage\"\n\t//Player.StartItem \"PerkMenu\"\n\n    Player.StartItem \"Mk23Clip\", 11\n\tPlayer.StartItem \"F88Clip\", 43\n\tPlayer.StartItem \"KushnapupClip\", 13\n\tPlayer.StartItem \"ScoutClip\", 9\n\tPlayer.StartItem \"NeoSteadClip\", 8\n\tPlayer.StartItem \"XM25Clip\", 16\n\tPlayer.StartItem \"ThunderClip\", 1\n\n\tPlayer.StartItem \"Mk23Extra\", 81\n\tPlayer.StartItem \"Mk3GrenadeAmmo\", 2\n\n  \tPlayer.StartItem \"HealthPack\", 2\n\tPlayer.StartItem \"FieldRation\", 2\n\tPlayer.StartItem \"StimShot\", 1\n\n\tPlayer.StartItem \"DexterityItem\", 3\n\tPlayer.StartItem \"EnduranceItem\", 3\n\tPlayer.StartItem \"PerceptionItem\", 3\n\tPlayer.StartItem \"TenacityItem\", 3\n\tPlayer.StartItem \"AgilityItem\", 3\n\n  \tPlayer.StartItem \"Action_Grenade\"\n  \tPlayer.StartItem \"Action_GrenadeCancel\"\n  \tPlayer.StartItem \"Action_Melee\"\n  \tPlayer.StartItem \"Action_MeleeCancel\"\n  \tPlayer.StartItem \"Action_Perk\"\n\n\tDamageFactor \"Boom\", 0.516\n\tDamageFactor \"Boom25mm\", 0.516\n\tDamageFactor \"BoomNS2K\", 0.516\n\tDamageFactor \"Falling\", 0.775\n\tDamageFactor \"Firebomb\", 0.516\n\tDamageFactor \"Friendly\", 0.0\n\tDamageFactor \"None\", 1.55 // Same as Normal damage type. (Or \"everything else?\")\n\tDamageFactor \"Nuke\", 0.0\n\tDamageFactor \"NukePlayer\", 0.516\n\tDamageFactor \"Player\", 0.516\n\tDamageFactor \"Smolder\", 0.516\n\n\tSpecies \"Friendly\"\n\n\t+DONTBLAST\n\t+QUICKTORETALIATE\n\t+THRUSPECIES\n\n  \tStates\n  \t{\n\tSee:\n\t\tPLAY ABCD 4 A_TakeInventory(\"SpawnBlur\", 1)\n\t\tLoop\n\tMissile:\n\t\tPLAY E 12 A_TakeInventory(\"SpawnBlur\", 1)\n\t\tGoto Spawn\n  \tPain:\n\t\tPLAY G 0 A_JumpIfInventory(\"Tenacity\", 1, \"PainCrouch\")\n\t\tPLAY G 0 A_JumpIfInventory(\"Airborne\", 1, \"PainContinue\")\n\t\tPLAY G 0 A_JumpIfInventory(\"Sprinting\", 1, \"PainContinue\")\n\t\tPLAY G 0 A_JumpIfInventory(\"Crouching\", 1, \"PainCrouch\")\n\tPainContinue:\n\t\t//PLAY G 0 ACS_NamedExecute(\"HealthLimit\", 0, 0, 0, 0)\n\t\tPLAY G 0 A_Quake(3, 12, 0, 4, \"no1\")\n\t\tPLAY G 0 A_SetPitch(pitch - (frandom(-5.5, 5.5)))\n\t\tPLAY G 0 A_SetAngle(angle - (frandom(-5.5, 5.5)))\n    \tPLAY G 0 A_GiveInventory(\"Pained\", 175)\n    \tPLAY G 1 A_Pain\n    \tGoto Spawn\n\tPainCrouch:\n\t\tPLAY G 0 A_Quake(3, 12, 0, 4, \"no1\")\n    \tPLAY G 0 A_GiveInventory(\"Pained\", 175)\n    \tPLAY G 1 A_Pain\n    \tGoto Spawn\n  \tDeath:\n\t\tPLAY A 0 A_Quake(3, 12, 0, 4, \"no1\")\n\t\tPLAY A 0 A_GiveInventory(\"Pained\", 175)\n  \t\tPLAY A 0 A_GiveInventory(\"Dead\", 1)\n\t\t//PLAY A 0 A_SkullPop // FadeRange doesn't seem to work when this is here.\n\t\tTNT1 A 1 A_PlayerScream\n\t\tTNT1 A -1\n    \tStop\n  \tXDeath:\n  \t\tPLAY A 0 A_SpawnItemEx(\"BlockerPlayer\", 0, 0, 0, velx, vely, velz, 0, 40)\n\t\tPLAY A 0 A_Quake(3, 12, 0, 4, \"no1\")\n\t\tPLAY A 0 A_GiveInventory(\"Pained\", 175)\n  \t\tPLAY A 0 A_GiveInventory(\"Dead\", 1)\n\t\tTNT1 A 1 A_XScream\n\t\tTNT1 A -1\n\t\tGoto Death\n\t}\n}\n\nActor BlockerPlayer\n{\n\tRadius 16\n\tHeight 56\n\tMass 0x7FFFFFFF\n\tSpecies \"Player\"\n\t//BloodColor \"60 00 00\"\n\t+SHOOTABLE\n\t+NODAMAGE\n\t-SOLID\n\tStates\n\t{\n\tSpawn:\n\t\tTNT1 A 0\n\t\tTNT1 A 1 A_Burst(\"Blood\")\n\t\tStop\n\t}\n}\n\nActor Nash_FloorCheck\n{\n\tRadius 16\n\tHeight 4\n\t+SOLID\n\tStates\n\t{\n\t\tSpawn:\n\t\t\tTNT1 A 1\n\t\t\tStop\n\t}\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.