// Random Weapon Spawners (used by classic Doom multiplayer maps)

ACTOR WeaponSpawner1 : RandomSpawner
{
	DropItem "IDMSuperShotgun", 256, 500
	DropItem "IDMShotgun", 256, 120
	DropItem "RiotShotgun", 256, 110
	DropItem "Screwgun", 256, 110
	DropItem "SuperChaingun", 256, 110
	DropItem "HeavyMachinegun",255, 110
	DropItem "SuperNailgun", 256, 110
	DropItem "IDMRocketlauncher", 256, 110
	DropItem "IDMRailgun", 256, 110
	DropItem "IDMPlasmagun", 256, 110
}

ACTOR DuelWeaponSpawner1 : RandomSpawner
{
	DropItem "IDMSuperShotgun"
	DropItem "RiotShotgun"
	DropItem "IDMShotgun"
	DropItem "Screwgun"
}

ACTOR WeaponSpawner2 : RandomSpawner
{
	DropItem "IDMSuperShotgun", 256, 150
	DropItem "IDMShotgun", 256, 150
	DropItem "RiotShotgun", 256, 150
	DropItem "Screwgun", 256, 150
	DropItem "SuperChaingun", 256, 150
	DropItem "SuperNailgun", 256, 150
	DropItem "HeavyMachinegun",255, 150
	DropItem "IDMRocketlauncher", 256, 150
	DropItem "IDMRailgun", 256, 150
	DropItem "IDMPlasmagun", 256, 150
}

ACTOR DuelWeaponSpawner2 : RandomSpawner
{
	DropItem "IDMSuperShotgun"
	DropItem "RiotShotgun"
	DropItem "IDMShotgun"
	DropItem "Screwgun"
	DropItem "SuperNailgun"
	DropItem "SuperChaingun"
	DropItem "HeavyMachinegun"
}

ACTOR WeaponSpawner3 : RandomSpawner
{
	DropItem "SuperNailgun"
	DropItem "SuperChaingun"
	DropItem "HeavyMachinegun"
	DropItem "AssaultRifle"
}

ACTOR WeaponSpawner4 : RandomSpawner
{
	DropItem "IDMRocketlauncher"
	DropItem "IDMGrenadeLauncher"
	DropItem "BarrageLauncher"
	DropItem "HeatSeeker"
	DropItem "MiniBomber"
}

ACTOR DuelWeaponSpawner4 : RandomSpawner
{
	DropItem "IDMRocketlauncher"
	DropItem "IDMGrenadeLauncher"
	DropItem "BarrageLauncher"
	DropItem "MiniBomber"
}

ACTOR WeaponSpawner5 : RandomSpawner
{
	DropItem "PlasMachineGun"
	DropItem "PulseRifle"
	DropItem "PlasmaBeam"
	DropItem "IonBlaster"
	DropItem "Repeater"
}

ACTOR DuelWeaponSpawner5 : RandomSpawner
{
	DropItem "IDMPlasmaGun"
	DropItem "PulseRifle"
	DropItem "PlasmaBeam"
	DropItem "IDMRailgun"
}

ACTOR WeaponSpawner6 : RandomSpawner
{
	DropItem "QuadShotgun"
	DropItem "HandCannon"
	DropItem "IDMMinigun"
	DropItem "Stinger"
	DropItem "MyoosicMaker"
	DropItem "HellstormCannon"
	DropItem "Devastator"
	DropItem "BarrelGun"
	DropItem "FreezeThrower"
	DropItem "WidePlasmagun"
	DropItem "InsanePlasmaArray"
	DropItem "IDMBFG9000"
	DropItem "IDMBloodScourge"
	DropItem "IDMWraithVerge"
	DropItem "IDMQuietus"
	DropItem "Unmaker"
	DropItem "IDMBFG10K"
	DropItem "IDMMace"
	DropItem "Meowitzer"
	DropItem "IDMFlamethrower"
	DropItem "IDMPyroCannon"
	DropItem "IDMHeatWave"
	DropItem "IDMSigil"
	DropItem "Devastator1000"
	DropItem "Redeemer"
}

ACTOR DuelWeaponSpawner6 : RandomSpawner
{
	DropItem "QuadShotgun"
	DropItem "Stinger"
	DropItem "HellstormCannon"
	DropItem "IDMBFG9000"
	DropItem "IDMBloodScourge"
	DropItem "Unmaker"
	DropItem "IDMMace"
	DropItem "IDMPyroCannon"
	DropItem "IDMSigil"
}

ACTOR CellShockSpawner : RandomSpawner
{
	DropItem "IDMPlasmaGun"
	DropItem "PlasMachineGun"
	DropItem "IDMRailgun"
	DropItem "PulseRifle"
	DropItem "PlasmaBeam"
	DropItem "IonBlaster"
	DropItem "Repeater"
}

ACTOR BigPointBlankWeaponSpawner : RandomSpawner
{
	DropItem "QuadShotgun"
	DropItem "HandCannon"
}

ACTOR BigBulletHellWeaponSpawner : RandomSpawner
{
	DropItem "IDMMinigun"
	DropItem "Stinger"
	DropItem "MyoosicMaker"
}

ACTOR BigBlockBusterWeaponSpawner : RandomSpawner
{
	DropItem "HellstormCannon"
	DropItem "Devastator"
	DropItem "BarrelGun"
}

ACTOR BigCellShockWeaponSpawner : RandomSpawner
{
	DropItem "FreezeThrower"
	DropItem "WidePlasmagun"
	DropItem "InsanePlasmaArray"
}

ACTOR WeaponSpawnActor1 : CustomInventory 82
{
	Tag "Common Weapon Spawner 1"
	//$Category Weapons
	//$Sprite SGN2A0
	+NOGRAVITY
	States
	{
	Spawn:
	  TNT1 A 0
	  TNT1 A 1
	  TNT1 A 1 A_JumpIf(ACS_NamedExecuteWithResult("GunModifierSpawn") == 666,"Nothing")
	  // Weapon spawn modifier checks
	  TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("BigGunSpawn") == true,"BigGun")
	  TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("WeaponGroupSpawn") == 1,"PointBlank")
	  TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("WeaponGroupSpawn") == 2,"BulletHell")
	  TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("WeaponGroupSpawn") == 3,"BlockBuster")
	  TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("WeaponGroupSpawn") == 4,"CellShock")
	  // Custom weapon spawn checks
	  TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("WeaponSpawner_SSG") == 1, "SuperShotgun")
	  TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("WeaponSpawner_SSG") == 2, "Shotgun")
	  TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("WeaponSpawner_SSG") == 3, "RiotShotgun")
	  TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("WeaponSpawner_SSG") == 4, "Screwgun")
	  TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("WeaponSpawner_SSG") == 5, "SuperChaingun")
	  TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("WeaponSpawner_SSG") == 6, "HeavyMachinegun")
	  TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("WeaponSpawner_SSG") == 7, "SuperNailgun")
	  TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("WeaponSpawner_SSG") == 8, "RocketLauncher")
	  TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("WeaponSpawner_SSG") == 9, "Railgun")
	  TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("WeaponSpawner_SSG") == 10, "Plasmagun")
	  // Duel check
	  TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("DuelSpawn") == true,"Duel")
	  TNT1 A 1 A_SpawnItemEx("WeaponSpawner1")
	Nothing:
	  TNT1 A 1
	  Stop
	// Custom weapon spawn states
	SuperShotgun:
	  TNT1 A 1 A_SpawnItemEx("SuperShotgunSpawner")
	  Stop
	Shotgun:
	  TNT1 A 1 A_SpawnItemEx("ShotgunSpawner")
	  Stop
	RiotShotgun:
	  TNT1 A 1 A_SpawnItemEx("RiotShotgunSpawner")
	  Stop
	Screwgun:
	  TNT1 A 1 A_SpawnItemEx("ScrewgunSpawner")
	  Stop
	SuperChaingun:
	  TNT1 A 1 A_SpawnItemEx("SuperChaingunSpawner")
	  Stop
	HeavyMachinegun:
	  TNT1 A 1 A_SpawnItemEx("HeavyMachinegunSpawner")
	  Stop
	SuperNailgun:
	  TNT1 A 1 A_SpawnItemEx("SuperNailgunSpawner")
	  Stop
	RocketLauncher:
	  TNT1 A 1 A_SpawnItemEx("RocketLauncherSpawner")
	  Stop
	Railgun:
	  TNT1 A 1 A_SpawnItemEx("RailgunSpawner")
	  Stop
	Plasmagun:
	  TNT1 A 1 A_SpawnItemEx("PlasmagunSpawner")
	  Stop
	// Weapon spawn modifier states
	BigGun:
	  TNT1 A 1 A_SpawnItemEx("WeaponSpawner6")
	  Stop
	// Duel spawn
	Duel:
	PointBlank:
	  TNT1 A 1 A_SpawnItemEx("DuelWeaponSpawner1")
	  Stop
	BulletHell:
	  TNT1 A 1 A_SpawnItemEx("WeaponSpawner3")
	  Stop
	BlockBuster:
	  TNT1 A 1 A_SpawnItemEx("WeaponSpawner4")
	  Stop
	CellShock:
	  TNT1 A 1 A_SpawnItemEx("CellShockSpawner")
	  Stop
	}
}

ACTOR WeaponSpawnActor2 : CustomInventory replaces Shotgun
{
	Tag "Common Weapon Spawner 2"
	//$Category Weapons
	//$Sprite SHOTA0
	+NOBLOCKMAP
	+NOGRAVITY
	States
	{
	Spawn:
	  TNT1 A 0
	  TNT1 A 1
	  TNT1 A 1 A_JumpIf(ACS_NamedExecuteWithResult("GunModifierSpawn") == 666,"Nothing")
	  // Weapon spawn modifier checks
	  TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("BigGunSpawn") == true,"BigGun")
	  TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("WeaponGroupSpawn") == 1,"PointBlank")
	  TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("WeaponGroupSpawn") == 2,"BulletHell")
	  TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("WeaponGroupSpawn") == 3,"BlockBuster")
	  TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("WeaponGroupSpawn") == 4,"CellShock")
	  // Custom weapon spawn checks
	  TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("WeaponSpawner_SG") == 1, "SuperShotgun")
	  TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("WeaponSpawner_SG") == 2, "Shotgun")
	  TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("WeaponSpawner_SG") == 3, "RiotShotgun")
	  TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("WeaponSpawner_SG") == 4, "Screwgun")
	  TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("WeaponSpawner_SG") == 5, "SuperChaingun")
	  TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("WeaponSpawner_SG") == 6, "HeavyMachinegun")
	  TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("WeaponSpawner_SG") == 7, "SuperNailgun")
	  TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("WeaponSpawner_SG") == 8, "RocketLauncher")
	  TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("WeaponSpawner_SG") == 9, "Railgun")
	  TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("WeaponSpawner_SG") == 10, "Plasmagun")
	  // Duel check
	  TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("DuelSpawn") == true,"Duel")
	  TNT1 A 1 A_SpawnItemEx("WeaponSpawner2")
	Nothing:
	  TNT1 A 1
	  Stop
	// Weapon spawn modifier states
	SuperShotgun:
	  TNT1 A 1 A_SpawnItemEx("SuperShotgunSpawner")
	  Stop
	Shotgun:
	  TNT1 A 1 A_SpawnItemEx("ShotgunSpawner")
	  Stop
	RiotShotgun:
	  TNT1 A 1 A_SpawnItemEx("RiotShotgunSpawner")
	  Stop
	Screwgun:
	  TNT1 A 1 A_SpawnItemEx("ScrewgunSpawner")
	  Stop
	SuperChaingun:
	  TNT1 A 1 A_SpawnItemEx("SuperChaingunSpawner")
	  Stop
	HeavyMachinegun:
	  TNT1 A 1 A_SpawnItemEx("HeavyMachinegunSpawner")
	  Stop
	SuperNailgun:
	  TNT1 A 1 A_SpawnItemEx("SuperNailgunSpawner")
	  Stop
	RocketLauncher:
	  TNT1 A 1 A_SpawnItemEx("RocketLauncherSpawner")
	  Stop
	Railgun:
	  TNT1 A 1 A_SpawnItemEx("RailgunSpawner")
	  Stop
	Plasmagun:
	  TNT1 A 1 A_SpawnItemEx("PlasmagunSpawner")
	  Stop
	BigGun:
	  TNT1 A 1 A_SpawnItemEx("WeaponSpawner6")
	  Stop
	PointBlank:
	  TNT1 A 1 A_SpawnItemEx("DuelWeaponSpawner1")
	  Stop
	BulletHell:
	  TNT1 A 1 A_SpawnItemEx("WeaponSpawner3")
	  Stop
	BlockBuster:
	  TNT1 A 1 A_SpawnItemEx("WeaponSpawner4")
	  Stop
	CellShock:
	  TNT1 A 1 A_SpawnItemEx("CellShockSpawner")
	  Stop
	Duel:
	  TNT1 A 1 A_SpawnItemEx("DuelWeaponSpawner2")
	  Stop
	}
}

ACTOR WeaponSpawnActor3 : CustomInventory replaces Chaingun
{
	Tag "Bullet Weapon Spawner"
	//$Category Weapons
	//$Sprite MGUNA0
	+NOBLOCKMAP
	+NOGRAVITY
	States
	{
	Spawn:
	  TNT1 A 0
	  TNT1 A 1
	  TNT1 A 1 A_JumpIf(ACS_NamedExecuteWithResult("GunModifierSpawn") == 666,"Nothing")
	  // Weapon spawn modifier checks
	  TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("BigGunSpawn") == true,"BigGun")
	  TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("WeaponGroupSpawn") == 1,"PointBlank")
	  TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("WeaponGroupSpawn") == 2,"BulletHell")
	  TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("WeaponGroupSpawn") == 3,"BlockBuster")
	  TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("WeaponGroupSpawn") == 4,"CellShock")
	  // Custom weapon spawn checks
	  TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("WeaponSpawner_CG") == 1, "SuperChaingun")
	  TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("WeaponSpawner_CG") == 2, "SuperNailgun")
	  TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("WeaponSpawner_CG") == 3, "HeavyMachinegun")
	  TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("WeaponSpawner_CG") == 4, "AssaultRifle")
	  TNT1 A 1 A_SpawnItemEx("WeaponSpawner3")
	Nothing:
	  TNT1 A 1
	  Stop
	// Custom weapon spawn states
	SuperChaingun:
	  TNT1 A 1 A_SpawnItemEx("SuperChaingunSpawner")
	  Stop
	SuperNailgun:
	  TNT1 A 1 A_SpawnItemEx("SuperNailgunSpawner")
	  Stop
	HeavyMachinegun:
	  TNT1 A 1 A_SpawnItemEx("HeavyMachinegunSpawner")
	  Stop
	AssaultRifle:
	  TNT1 A 1 A_SpawnItemEx("AssaultRifleSpawner")
	  Stop
	// Weapon spawn modifier states
	BigGun:
	  TNT1 A 1 A_SpawnItemEx("WeaponSpawner6")
	  Stop
	PointBlank:
	  TNT1 A 1 A_SpawnItemEx("DuelWeaponSpawner1")
	  Stop
	BulletHell:
	  TNT1 A 1 A_SpawnItemEx("WeaponSpawner3")
	  Stop
	BlockBuster:
	  TNT1 A 1 A_SpawnItemEx("WeaponSpawner4")
	  Stop
	CellShock:
	  TNT1 A 1 A_SpawnItemEx("CellShockSpawner")
	  Stop
	}
}

ACTOR WeaponSpawnActor4 : CustomInventory replaces RocketLauncher
{
	Tag "Explosive Weapon Spawner"
	//$Category Weapons
	//$Sprite LAUNA0
	+NOBLOCKMAP
	+NOGRAVITY
	States
	{
	Spawn:
	  TNT1 A 0
	  TNT1 A 1
	  TNT1 A 1 A_JumpIf(ACS_NamedExecuteWithResult("GunModifierSpawn") == 666,"Nothing")
	  // Weapon spawn modifier checks
	  TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("BigGunSpawn") == true,"BigGun")
	  TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("WeaponGroupSpawn") == 1,"PointBlank")
	  TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("WeaponGroupSpawn") == 2,"BulletHell")
	  TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("WeaponGroupSpawn") == 3,"BlockBuster")
	  TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("WeaponGroupSpawn") == 4,"CellShock")
	  // Custom weapon spawn checks
	  TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("WeaponSpawner_RL") == 1, "RocketLauncher")
	  TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("WeaponSpawner_RL") == 2, "GrenadeLauncher")
	  TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("WeaponSpawner_RL") == 3, "BarrageLauncher")
	  TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("WeaponSpawner_RL") == 4, "HeatSeeker")
	  TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("WeaponSpawner_RL") == 5, "MiniBomber")
	  // Duel check
	  TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("DuelSpawn") == true,"Duel")
	  TNT1 A 1 A_SpawnItemEx("WeaponSpawner4")
	Nothing:
	  TNT1 A 1
	  Stop
	// Custom weapon spawn states
	RocketLauncher:
	  TNT1 A 1 A_SpawnItemEx("RocketLauncherSpawner")
	  Stop
	GrenadeLauncher:
	  TNT1 A 1 A_SpawnItemEx("GrenadeLauncherSpawner")
	  Stop
	BarrageLauncher:
	  TNT1 A 1 A_SpawnItemEx("BarrageLauncherSpawner")
	  Stop
	HeatSeeker:
	  TNT1 A 1 A_SpawnItemEx("HeatSeekerSpawner")
	  Stop
	MiniBomber:
	  TNT1 A 1 A_SpawnItemEx("MiniBomberSpawner")
	  Stop
	// Weapon spawn modifier checks
	BigGun:
	  TNT1 A 1 A_SpawnItemEx("WeaponSpawner6")
	  Stop
	PointBlank:
	  TNT1 A 1 A_SpawnItemEx("DuelWeaponSpawner1")
	  Stop
	BulletHell:
	  TNT1 A 1 A_SpawnItemEx("WeaponSpawner3")
	  Stop
	BlockBuster:
	  TNT1 A 1 A_SpawnItemEx("WeaponSpawner4")
	  Stop
	CellShock:
	  TNT1 A 1 A_SpawnItemEx("CellShockSpawner")
	  Stop
	// Duel check
	Duel:
	  TNT1 A 1 A_SpawnItemEx("DuelWeaponSpawner4")
	  Stop
	}
}

ACTOR WeaponSpawnActor5 : CustomInventory replaces PlasmaRifle
{
	Tag "Plasma Weapon Spawner"
	//$Category Weapons
	//$Sprite PLASA0
	+NOBLOCKMAP
	+NOGRAVITY
	States
	{
	Spawn:
	  TNT1 A 0
	  TNT1 A 1
	  TNT1 A 1 A_JumpIf(ACS_NamedExecuteWithResult("GunModifierSpawn") == 666,"Nothing")
	  // Weapon spawn modifier checks
	  TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("BigGunSpawn") == true,"BigGun")
	  TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("WeaponGroupSpawn") == 1,"PointBlank")
	  TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("WeaponGroupSpawn") == 2,"BulletHell")
	  TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("WeaponGroupSpawn") == 3,"BlockBuster")
	  TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("WeaponGroupSpawn") == 4,"CellShock")
	  // Custom weapon spawn checks
	  TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("WeaponSpawner_PG") == 1, "PlasMachineGun")
	  TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("WeaponSpawner_PG") == 2, "PulseRifle")
	  TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("WeaponSpawner_PG") == 3, "PlasmaBeam")
	  TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("WeaponSpawner_PG") == 4, "IonBlaster")
	  TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("WeaponSpawner_PG") == 5, "Repeater")
	  // Duel check
	  TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("DuelSpawn") == true,"Duel")
	  TNT1 A 1 A_SpawnItemEx("WeaponSpawner5")
	Nothing:
	  TNT1 A 1
	  Stop
	// Custom weapon spawn states
	PlasMachinegun:
	  TNT1 A 1 A_SpawnItemEx("PlasMachinegunSpawner")
	  Stop
	PulseRifle:
	  TNT1 A 1 A_SpawnItemEx("PulseRifleSpawner")
	  Stop
	PlasmaBeam:
	  TNT1 A 1 A_SpawnItemEx("PlasmaBeamSpawner")
	  Stop
	IonBlaster:
	  TNT1 A 1 A_SpawnItemEx("IonBlasterSpawner")
	  Stop
	Repeater:
	  TNT1 A 1 A_SpawnItemEx("RepeaterSpawner")
	  Stop
	// Weapon spawn modifier states
	BigGun:
	  TNT1 A 1 A_SpawnItemEx("WeaponSpawner6")
	  Stop
	PointBlank:
	  TNT1 A 1 A_SpawnItemEx("DuelWeaponSpawner1")
	  Stop
	BulletHell:
	  TNT1 A 1 A_SpawnItemEx("WeaponSpawner3")
	  Stop
	BlockBuster:
	  TNT1 A 1 A_SpawnItemEx("WeaponSpawner4")
	  Stop
	CellShock:
	  TNT1 A 1 A_SpawnItemEx("CellShockSpawner")
	  Stop
	Duel:
	  TNT1 A 1 A_SpawnItemEx("DuelWeaponSpawner5")
	  Stop
	}
}

ACTOR WeaponSpawnActor6 : CustomInventory replaces BFG9000
{
	Tag "Big Weapon Spawner"
	//$Category Weapons
	//$Sprite BFUGA0
	+NOBLOCKMAP
	+NOGRAVITY
	States
	{
	Spawn:
	  TNT1 A 0
	  TNT1 A 1
	  TNT1 A 1 A_JumpIf(ACS_NamedExecuteWithResult("GunModifierSpawn") == 666,"Nothing")
	  // Weapon spawn modifier checks
	  TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("WeaponGroupSpawn") == 1,"PointBlank")
	  TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("WeaponGroupSpawn") == 2,"BulletHell")
	  TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("WeaponGroupSpawn") == 3,"BlockBuster")
	  TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("WeaponGroupSpawn") == 4,"CellShock")
	  // Custom weapon spawn checks
	  TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("WeaponSpawner_BFG") == 1, "QuadShotgun")
	  TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("WeaponSpawner_BFG") == 2, "HandCannon")
	  TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("WeaponSpawner_BFG") == 3, "Minigun")
	  TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("WeaponSpawner_BFG") == 4, "Stinger")
	  TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("WeaponSpawner_BFG") == 5, "MyoosicMaker")
	  TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("WeaponSpawner_BFG") == 6, "HellstormCannon")
	  TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("WeaponSpawner_BFG") == 7, "Devastator")
	  TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("WeaponSpawner_BFG") == 8, "BarrelGun")
	  TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("WeaponSpawner_BFG") == 9, "FreezeThrower")
	  TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("WeaponSpawner_BFG") == 10, "WidePlasmaGun")
	  TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("WeaponSpawner_BFG") == 11, "IPA")
	  TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("WeaponSpawner_BFG") == 12, "BFGPrototype")
	  TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("WeaponSpawner_BFG") == 13, "BFG10K")
	  TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("WeaponSpawner_BFG") == 14, "Devastator1000")
	  TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("WeaponSpawner_BFG") == 15, "Unmaker")
	  TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("WeaponSpawner_BFG") == 16, "FireMace")
	  TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("WeaponSpawner_BFG") == 17, "BloodScourge")
	  TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("WeaponSpawner_BFG") == 18, "Wraithverge")
	  TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("WeaponSpawner_BFG") == 19, "Quietus")
	  TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("WeaponSpawner_BFG") == 20, "Meowitzer")
	  TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("WeaponSpawner_BFG") == 21, "Flamethrower")
	  TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("WeaponSpawner_BFG") == 22, "PyroCannon")
	  TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("WeaponSpawner_BFG") == 23, "Heatwave")
	  TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("WeaponSpawner_BFG") == 24, "Sigil")
	  TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("WeaponSpawner_BFG") == 25, "Redeemer")
	  // Duel check
	  TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("DuelSpawn") == true,"Duel")
	  TNT1 A 1 A_SpawnItemEx("WeaponSpawner6")
	Nothing:
	  TNT1 A 1
	  Stop
	// Weapon spawn modifier states
	PointBlank:
	  TNT1 A 1 A_SpawnItemEx("BigPointBlankWeaponSpawner")
	  Stop
	BulletHell:
	  TNT1 A 1 A_SpawnItemEx("BigBulletHellWeaponSpawner")
	  Stop
	BlockBuster:
	  TNT1 A 1 A_SpawnItemEx("BigBlockBusterWeaponSpawner")
	  Stop
	CellShock:
	  TNT1 A 1 A_SpawnItemEx("BigCellShockWeaponSpawner")
	  Stop
	// Custom weapon spawn states
	QuadShotgun:
	  TNT1 A 0 A_SpawnItemEx("QuadShotgunSpawner")
	  Stop
	HandCannon:
	  TNT1 A 0 A_SpawnItemEx("HandCannonSpawner")
	  Stop
	Minigun:
	  TNT1 A 0 A_SpawnItemEx("MinigunSpawner")
	  Stop
	Stinger:
	  TNT1 A 0 A_SpawnItemEx("StingerSpawner")
	  Stop
	MyoosicMaker:
	  TNT1 A 0 A_SpawnItemEx("MyoosicMakerSpawner")
	  Stop
	HellstormCannon:
	  TNT1 A 0 A_SpawnItemEx("HellstormCannonSpawner")
	  Stop
	Devastator:
	  TNT1 A 0 A_SpawnItemEx("DevastatorSpawner")
	  Stop
	BarrelGun:
	  TNT1 A 0 A_SpawnItemEx("BarrelGunSpawner")
	  Stop
	FreezeThrower:
	  TNT1 A 0 A_SpawnItemEx("FreezeThrowerSpawner")
	  Stop
	WidePlasmaGun:
	  TNT1 A 0 A_SpawnItemEx("WidePlasmaGunSpawner")
	  Stop
	IPA:
	  TNT1 A 0 A_SpawnItemEx("InsanePlasmaArraySpawner")
	  Stop
	BFGPrototype:
	  TNT1 A 0 A_SpawnItemEx("BFGPrototypeSpawner")
	  Stop
	BFG10K:
	  TNT1 A 0 A_SpawnItemEx("BFG10KSpawner")
	  Stop
	Devastator1000:
	  TNT1 A 0 A_SpawnItemEx("Devastator1000Spawner")
	  Stop
	Unmaker:
	  TNT1 A 0 A_SpawnItemEx("UnmakerSpawner")
	  Stop
	FireMace:
	  TNT1 A 0 A_SpawnItemEx("IDMMaceSpawner")
	  Stop
	BloodScourge:
	  TNT1 A 0 A_SpawnItemEx("BloodScourgeSpawner")
	  Stop
	Wraithverge:
	  TNT1 A 0 A_SpawnItemEx("WraithvergeSpawner")
	  Stop
	Quietus:
	  TNT1 A 0 A_SpawnItemEx("QuietusSpawner")
	  Stop
	Meowitzer:
	  TNT1 A 0 A_SpawnItemEx("MeowitzerSpawner")
	  Stop
	Flamethrower:
	  TNT1 A 0 A_SpawnItemEx("FlamethrowerSpawner")
	  Stop
	PyroCannon:
	  TNT1 A 0 A_SpawnItemEx("PyroCannonSpawner")
	  Stop
	Heatwave:
	  TNT1 A 0 A_SpawnItemEx("HeatwaveSpawner")
	  Stop
	Sigil:
	  TNT1 A 0 A_SpawnItemEx("SigilSpawner")
	  Stop
	Redeemer:
	  TNT1 A 0 A_SpawnItemEx("RedeemerSpawner")
	  Stop
	// Duel spawn
	Duel:
	  TNT1 A 1 A_SpawnItemEx("DuelWeaponSpawner6")
	  Stop
	}
}