ACTOR ExplosionSmoke
{
    +NOBLOCKMAP
    +NOTELEPORT
    +DONTSPLASH
	+MISSILE
	+FORCEXYBILLBOARD
    +CLIENTSIDEONLY
	+NONETID
	+NOGRAVITY
	+DOOMBOUNCE
	+THRUACTORS
	BounceFactor 0.5
	Radius 0
	Height 0
	Alpha 0.01
	RenderStyle Translucent
	Scale 1.2
	Speed 1
	Mass 0
    States
    {
    Spawn:
		TNT1 A 0
		TNT1 A 0 A_JumpIf(waterlevel > 1, "Stap")
		smk2 AAAAAA 2 A_FadeIn(0.05)
		smk2 AAAAAAAAAA 2
		smk2 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 2 A_FadeOut(0.01)
		Stop
	Stap:
		TNT1 A 0
		Stop
    }
}

ACTOR ExplosionSmokeFast22: ExplosionSmoke
{
	Speed 2
	Scale 0.8
}

ACTOR HeavyExplosionSmoke: ExplosionSmoke
{
Speed 1
	States
    {
    Spawn:
		TNT1 A 0
		TNT1 A 0 A_JumpIf(waterlevel > 1, "Stap")
		smk2 AAAAAAAA 2 A_FadeIn(0.05)
		smk2 AAAAAAAAAAAAAAAAA 2
		smk2 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 2 A_FadeOut(0.01)
		Stop
	Stap:
		TNT1 A 0
		Stop
    }

}

ACTOR BigSmokes: ExplosionSmoke
{
    Speed 1
	Alpha 0.1
	Scale 1.5
    States
    {
    Spawn:
		SMK3 B 100
		SMK3 CDEFGHIJKLM 1
		Stop
    }
}

Actor NeoSmoke: ExplosionSmoke
{
	Alpha 0.1
	Speed 1
	+CLIENTSIDEONLY
	+NONETID
	Scale 1.5
	States
	{
	Spawn:
	TNT1 A 2
	PUF2 EEFGHIJK 2 A_FadeOut(0.010)
	TNT1 A 0 A_SpawnItem ("PlasmaSmoke")
	PUF2 LMNOPQRSTUVWXYZ 2 A_FadeOut(0.010)
	Stop
	}
}

Actor BigNeoSmoke: HeavyExplosionSmoke
{
	Scale 1.4
	Alpha 0.2
	Speed 1
	States
	{
	Spawn:
	TNT1 A 0
	TNT1 A 0 A_JumpIf(waterlevel > 1, "Stap")
	smk2 A 40
	TNT1 A 0 A_JumpIf(waterlevel > 1, "Stap")
	smk2 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 2 A_FadeOut(0.002)
    Stop
	Stap:
	TNT1 A 0
	Stop
	}
}

Actor HugeNeoSmoke: BigNeoSmoke
{
Alpha 0.5
Scale 2.5
States
	{
	Spawn:
	TNT1 A 0
	TNT1 A 0 A_JumpIf(waterlevel > 1, "Stap")
	smk2 A 5
	smk2 A 40
	TNT1 A 0 A_JumpIf(waterlevel > 1, "Stap")
	smk2 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 2 A_FadeOut(0.003)
	Stop
	}
}

Actor RidiculousNeoSmoke: BigNeoSmoke
{
Alpha 0.5
Scale 5.0
States
	{
	Spawn:
	TNT1 A 0
	TNT1 A 0 A_JumpIf(waterlevel > 1, "Stap")
	smk2 A 5
	smk2 A 40
	TNT1 A 0 A_JumpIf(waterlevel > 1, "Stap")
	smk2 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 2 A_FadeOut(0.003)
	Stop
	}
}

ACTOR GunFireSmoke
{
	Scale 0.2
	PROJECTILE
	+MISSILE
	+THRUACTORS
	Speed 12
    States
    {
    Spawn:
		TNT1 A 2
		SM6K ABCDEFG 1
		Stop
    }
}

ACTOR AltSmoke: ExplosionSmoke
{
+NOCLIP
Scale 0.8
States
    {
    Spawn:
        PUF2 A 1
        PUF2 ABCDEFGHIJKLMNOPQRSTUVWXYZ 2 A_FadeOut(0.010)
		Stop
    }
}

ACTOR ShinnySmoke: AltSmoke
{
Scale 2.0
Renderstyle Add
}

Actor PlasmaSmoke
{
PROJECTILE
+CLIENTSIDEONLY
+NONETID
+MISSILE
+THRUACTORS
+DOOMBOUNCE
Radius 1
Height 1
Scale 2.0
Speed 1
Renderstyle Translucent
Alpha 0.4
States
    {
    Spawn:
	    TNT1 A 0
		TNT1 A 0 A_Jump(128, 2)
		TNT1 A 0 A_SetScale(-1.2, 1.2)
		TNT1 A 0
        SMOK ABCDEFGHIJKLMNOPQR 2
		Stop
	}
}

ACTOR RocketSmokeTrail52: ExplosionSmoke
{
Speed 1
Alpha 0.3
Scale 0.3
States
{
Spawn:
TNT1 A 2
SMK3 B 20
SMK3 CDEFGHIJKLM 1
Stop
}
}

Actor OldschoolRocketSmokeTrail2: AltSmoke
{
Alpha 0.7
Speed 1
+CLIENTSIDEONLY
+NONETID
Scale 0.2
States
{
Spawn:
TNT1 A 2
SMK3 BCDEFGHIJKKLLMMNN 2
SMK3 NN 1 A_FadeOut(0.05)
Stop
}
}

Actor OldschoolRocketSmokeTrail2Bigger: AltSmoke
{
Alpha 0.7
Speed 1
+CLIENTSIDEONLY
+NONETID
Scale 0.4
States
{
Spawn:
TNT1 A 0
SMK3 BBBBBBCDEFGHIJKKLLMMN 2
SMK3 NNNN 1 A_FadeOut(0.05)
Stop
}
}

Actor OldschoolRocketSmokeTrailDarker: AltSmoke
{
Alpha 0.6
Speed 1
+CLIENTSIDEONLY
+NONETID
Scale 0.2
States
{
Spawn:
TNT1 A 2
SMK6 BCDEFGHIJKKLLMMNNNNNN 1
SMK6 NNNN 1 A_FadeOut(0.1)
Stop
}
}

Actor HitpuffSmoke
{
PROJECTILE
+CLIENTSIDEONLY
+NONETID
+MISSILE
+THRUACTORS
+DOOMBOUNCE
Radius 1
Height 1
Scale 0.7
Speed 1
Renderstyle Translucent
Alpha 0.4
States
    {
    Spawn:
	    TNT1 A 0
		TNT1 A 0 A_Jump(128, 2)
		TNT1 A 0 A_SetScale(-0.7, -0.7)
		TNT1 A 0
        SMOK ABCDEFGHIJKLMNOPQ 1
		Stop
}
}

Actor ExplosionSmokeHD: HitpuffSmoke
{
Scale 3.0
Speed 1
States
    {
    Spawn:
	    TNT1 A 0
		TNT1 A 0 A_Jump(128, 2)
		TNT1 A 0 A_SetScale(-3.5, -3.0)
		TNT1 A 0
        SMOK ABCDEFGHIJKLMNOPQ 3
		Stop
}
}

Actor ExplosionSmokeHDLarge: HitpuffSmoke
{
Scale 5.0
Speed 1
States
    {
    Spawn:
	    TNT1 A 0
		TNT1 A 0 A_Jump(128, 2)
		TNT1 A 0 A_SetScale(-6.0, -5.0)
		TNT1 A 0
        SMOK ABCDEFGHIJKLMNOPQ 5
		Stop
}
}

Actor NukeSmoke: HitpuffSmoke
{
	XScale 9.0
	YScale 6.0
	Speed 1
	Alpha 0.1
	+SKYEXPLODE
	+FORCEXYBILLBOARD
	States
    {
    Spawn:
	    SMk2 AAAAAAAA 4 A_FadeIn(0.05)
		SMk2 A 350
		SMk2 AAAAAAAAAA 14 A_FadeOut(0.05)
		Stop
	}
}

Actor NukeSmokeBig: NukeSmoke
{
XScale 18.0
YScale 12.0
}

Actor SmallSmoke: AltSmoke
{
+CLIENTSIDEONLY
+NONETID
Speed 1
Scale 1.5
}

ACTOR MeleeSmoke: ExplosionSmoke
{
Speed 1
Alpha 0.15
Scale 0.2
States
{
Spawn:
SMK3 B 4
SMK3 CDEFGHIJKLM 2
Stop
}
}

Actor SmokeSpawner
{
    Speed 20
    +NOCLIP
	+CLIENTSIDEONLY
	+NONETID
    States
    {
    Spawn:
	TNT1 A 0
	TNT1 A 0 Thing_ChangeTID(0,390)
	NULL AA 0 A_CustomMissile ("ShotSmoke", 0, 0, random (0, 360), 2, random (0, 180))
	Stop
    }
}

Actor SmokeSpawner11
{
    Speed 25
    +NOCLIP
	+CLIENTSIDEONLY
	+NONETID
    States
    {
    Spawn:
		TNT1 A 0
		NULL A 0 A_CustomMissile ("GunBarrelSmoke", -10, 0, 0, 2, 90)
        Stop
    }
}

ACTOR ShotSmoke
{
+NOGRAVITY
+NOBLOCKMAP
+FLOORCLIP
+FORCEXYBILLBOARD
+FORCEXYBILLBOARD
+MISSILE
Speed 1
RenderStyle Add
Alpha 0.06
+CLIENTSIDEONLY
+NONETID
Radius 0
Height 0
Scale 0.6
States
 {
    Spawn:
         NULL A 1
         SMOK AABBCCDDEEFFGGHHIIJJKK 1 A_FadeOut(0.001)
        Stop
    }
}

ACTOR CasingSmoke: Shotsmoke
{
Speed 1
RenderStyle Add
Alpha 0.4
Scale 0.07
States
{
Spawn:
 NULL A 1
 SMOK ABCDEFGHIJK 1 A_FadeOut(0.01)
Stop
}
}

actor CyberStep
{
	+NOBLOCKMAP
	+NOGRAVITY
	+NOTELEPORT
	renderstyle translucent
	alpha 0.75
	Scale 0.5
	states
	{
	Spawn:
	MNSM ABCDEFGHIJKLMNOPQ 1 bright
	stop
	}
}

Actor LostSoulOnHandFireSpawner
{
	Speed 20
	+NOCLIP
	+CLIENTSIDEONLY
	+NONETID
	States
	{
	Spawn:
	TNT1 A 1
	TNT1 A 0 Thing_ChangeTID(0,390)
	NULL AAA 0 A_CustomMissile ("SoulTrails", 0, 0, random (0, 360), 2, random (0, 180))
	Stop
	}
}

Actor LSOHK
{
	Speed 20
	+NOCLIP
	+CLIENTSIDEONLY
	+NONETID
	States
	{
	Spawn:
	TNT1 A 1
	TNT1 A 0 A_PlaySound ("Skull/Death")
	EXPL AAAAAAAAAAAAAAAA 0 A_CustomMissile ("FlameTrails", 6, 0, random (0, 360), 2, random (0, 360))
	EXPL A 0 A_SpawnItemEx("ExplosionParticleSpawner", 0, 0, 0, 0, 0, 0, 0, 0)
	TNT1 AAA 0 A_CustomMissile ("LSpart1", 42, 0, random (0, 360), 2, random (0, 160))
	TNT1 A 0 A_CustomMissile ("LSpart3", 42, 0, random (0, 360), 2, random (0, 160))
	TNT1 AAAA 0 A_CustomMissile ("LSpart2", 42, 0, random (0, 360), 2, random (0, 160))
	TNT1 A 0
	Stop
    }
}

ACTOR BarrelExplosionSmokeColumn
{
    Radius 0
    Height 0
	Alpha 0.7
	RenderStyle Translucent
	XScale 1.6
	YScale 0.8
    -SOLID
    +NOTELEPORT
    +DONTSPLASH
	+CLIENTSIDEONLY
	+NONETID
	Damage 0
    States
    {
    Spawn:
	SB17 A 3 A_SetScale(0.8, 0.4)
	SB17 B 3 A_SetScale(0.9, 0.5)
	SB17 C 3 A_SetScale(1.0, 0.6)
	SB17 D 3 A_SetScale(1.1, 0.7)
	SB17 E 3 A_SetScale(1.6, 0.8)
	TNT1 A 0 A_JumpIf(waterlevel > 1, "Stap")
	SB17 ABCDEFG 3
	SB17 ABCDEFGABCDEFGABCDEFGABCDEFGABCDEFGABCDEFGABCDEFGABCDEFGABCDEFGABCDEFGABCDEFGABCDEFGABCDEFGABCDEFGABCDEFGABCDEFG 3

	SB17 ABCDEFG 3 A_SetScale(1.6, 0.8)
	SB17 ABCDEFG 3 A_SetScale(1.1, 0.7)
	SB17 ABCDEFG 3 A_SetScale(1.0, 0.6)
	SB17 ABCDEFG 3 A_SetScale(0.6, 0.4)
	SB17 ABCDEFG 3 A_SetScale(0.4, 0.2)
	Stop
	Stap:
	TNT1 A 0
	Stop
    }
}

ACTOR BarrelExplosionSmokeColumnInfinite: BarrelExplosionSmokeColumn
{
    States
    {
    Spawn:
		SB17 ABCDEFG 3
		Loop
    }
}

ACTOR ExplosionSimpleSmokeColumn: BarrelExplosionSmokeColumn
{
    Radius 0
    Height 0
	Alpha 0.4
	RenderStyle Translucent
	XScale 1.5
	YScale 0.6
}

ACTOR MicroSmokeColumn: BarrelExplosionSmokeColumn
{
    Radius 0
    Height 0
	Alpha 0.2
	RenderStyle Add
	XScale 0.2
	YScale 0.2
	-NOINTERACTION
	-NOBLOCKMAP
	States
    {
    Spawn:
		SB17 ABCDEFGABCDEFGABCDEFGABCDEFGABCDEFGABCDEFGABCDEFGABCDEFG 3
		TNT1 A 0 A_SetScale(0.16, 0.16)
		SB17 ABCDEFG 3
		TNT1 A 0 A_SetScale(0.13, 0.13)
		SB17 ABCDEFG 3
		TNT1 A 0 A_SetScale(0.10, 0.10)
		SB17 ABCDEFG 3
		TNT1 A 0 A_SetScale(0.06, 0.06)
		SB17 ABCDEFG 3
		Stop
		}
}

ACTOR ExplosionSimpleSmokeColumn2: ExplosionSimpleSmokeColumn
{
   +NOGRAVITY
}

ACTOR BigBlackSmoke
{
    +NOBLOCKMAP
    +NOTELEPORT
    +DONTSPLASH
	+MISSILE
	+FORCEXYBILLBOARD
    +CLIENTSIDEONLY
	+NONETID
	+NOGRAVITY
	+DOOMBOUNCE
	+THRUACTORS
	Health 99999
	BounceFactor 0.5
	Radius 1
	Height 1
	Alpha 1.0
	RenderStyle Translucent
	XScale 1.1
	YScale 1.4
	Speed 2
    States
    {
    Spawn:
	TNT1 A 0
	TNT1 A 0 A_FadeOut(0.9)
	SMK1 KKKKKKKK 2 A_FadeIn(0.04)
	TNT1 A 0 A_JumpIf(waterlevel > 1, "Stap")
	SMK1 K 35
	TNT1 A 0 A_JumpIf(waterlevel > 1, "Stap")
	SMK1 KKKKKKKKK 2 A_FadeOut(0.05)
    Stop
Stap:
TNT1 A 0
Stop
    }
}

ACTOR BigBlackSmokeLarger: BigBlackSmoke
{
	Scale 3.4
	Speed 1
	States
    {
    Spawn:
	TNT1 A 0
	TNT1 A 0 A_FadeOut(0.9)
	SMK1 KKKKKKKKKKKKK 2 A_FadeIn(0.04)
	TNT1 A 0 A_JumpIf(waterlevel > 1, "Stap")
	SMK1 K 125
	TNT1 A 0 A_JumpIf(waterlevel > 1, "Stap")
	SMK1 KKKKKKKKK 2 A_FadeOut(0.05)
    Stop
Stap:
TNT1 A 0
Stop
}
}

ACTOR BigBlackSmokePillar: BigBlackSmoke
{
	Scale 1.4
	Speed 1
	Alpha 0.5
    States
    {
    Spawn:
	SMK5 JIHGFEDCB 2
	SMK5 A 50
	SMK5 BCDEFGHIJ 4
    Stop
	Stap:
	TNT1 A 0
	Stop
    }
}

ACTOR BigBlackSmokePillar2: BigBlackSmokePillar
{
	XScale -1.8
	YScale 1.8
}

ACTOR BlackSmokePillarParticle: BigBlackSmoke
{
Scale 0.3
    States
    {
    Spawn:
	TNT1 A 0
	TNT1 A 5
	TNT1 A 0 A_FadeOut(0.9)
	SMK1 KKKKKKKKK 2 A_FadeIn(0.02)
	TNT1 A 0 A_JumpIf(waterlevel > 1, "Stap")
	SMK1 K 50
	TNT1 A 0 A_JumpIf(waterlevel > 1, "Stap")
	SMK1 KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK 2 A_FadeOut(0.01)
    Stop
Stap:
TNT1 A 0
Stop
    }
}

ACTOR MediumBlackSmoke: BigBlackSmoke
{
Scale 0.3
}

ACTOR GunBarrelSmoke: ExplosionSmoke
{

	Alpha 0.01
	RenderStyle Add
	XScale 0.12
	YScale 0.15
	Speed 1
    States
    {
    Spawn:
		TNT1 A 0
		TNT1 A 0 A_JumpIf(waterlevel > 1, "Stap")
		smk2 aaaaa 1 A_FadeIn(0.1)
		smk2 A 2
		smk2 AAAAAAAAAAAAAAAAAAAAAAAAAA 1 A_FadeOut(0.04)
		Stop
	Stap:
		TNT1 A 0
		Stop
    }
}