diff --git a/wadsrc/static/filter/redneck.ridesagain/rmapinfo.spawnclasses b/wadsrc/static/filter/redneck.ridesagain/rmapinfo.spawnclasses
index 20e43ea93..5a4fa69fa 100644
--- a/wadsrc/static/filter/redneck.ridesagain/rmapinfo.spawnclasses
+++ b/wadsrc/static/filter/redneck.ridesagain/rmapinfo.spawnclasses
@@ -55,6 +55,7 @@ spawnclasses
 	8704 = RedneckJoe9000, noskill
 	7220 = RedneckEmptyBike, noskill
 	7233 = RedneckEmptyBoat, noskill
+	4352 = RedneckRASheriff
 
 	7636 = DukeGenericDestructible, noskill, "OLDPHOTO0", "OLDPHOTO0BROKE", "VENT_BUST"
 	7638 = DukeGenericDestructible, noskill, "OLDPHOTO1", "OLDPHOTO1BROKE", "VENT_BUST"
@@ -166,8 +167,6 @@ spawnclasses
 
 	// stuff below uses CON
 	
-	5376 = RedneckRACoot
-	5377 = RedneckRACootStayput
 	7280 = RedneckRabbit
 	5995 = RedneckBiker
 	5890 = RedneckBikerB
diff --git a/wadsrc/static/filter/redneck/rmapinfo.spawnclasses b/wadsrc/static/filter/redneck/rmapinfo.spawnclasses
index dbb008c97..4724f60ce 100644
--- a/wadsrc/static/filter/redneck/rmapinfo.spawnclasses
+++ b/wadsrc/static/filter/redneck/rmapinfo.spawnclasses
@@ -337,7 +337,6 @@ spawnclasses
 
 	
 	4861 = RedneckHen
-	4862 = RedneckHenStayput
 	5376 = RedneckCoot
 	5377 = RedneckCootStayput
 	5317 = RedneckCow
@@ -345,8 +344,6 @@ spawnclasses
 	4946 = RedneckPigStayput
 	4162 = RedneckBillyRay
 	4163 = RedneckBillyRayStayput
-	4147 = RedneckBillyRayCock
-	4249 = RedneckBillyRaySniper
 	5120 = RedneckMinion
 	5121 = RedneckMinionStayput
 	4504 = RedneckBubbaStand
diff --git a/wadsrc/static/zscript.txt b/wadsrc/static/zscript.txt
index 35ac499ff..e33d88c18 100644
--- a/wadsrc/static/zscript.txt
+++ b/wadsrc/static/zscript.txt
@@ -85,12 +85,6 @@ version "4.10"
 #include "zscript/games/duke/actors/bowling.zs"
 #include "zscript/games/duke/actors/rabbitspawner.zs"
 
-#include "zscript/games/duke/actors/coot.zs"
-#include "zscript/games/duke/actors/billyray.zs"
-#include "zscript/games/duke/actors/minion.zs"
-#include "zscript/games/duke/actors/hen.zs"
-#include "zscript/games/duke/actors/cow.zs"
-#include "zscript/games/duke/actors/pig.zs"
 #include "zscript/games/duke/actors/rabbit.zs"
 
 #include "zscript/games/duke/actors/nwinter.zs"
@@ -184,6 +178,22 @@ version "4.10"
 #include "zscript/games/duke/actors/redneckcstuff/rrcactus.zs"
 #include "zscript/games/duke/actors/redneckcstuff/rrteleport.zs"
 
+#include "zscript/games/duke/actors/redneckenemies/enemy_common.zs"
+#include "zscript/games/duke/actors/redneckenemies/billyray.zs"
+#include "zscript/games/duke/actors/redneckenemies/bubba.zs"
+#include "zscript/games/duke/actors/redneckenemies/coot.zs"
+#include "zscript/games/duke/actors/redneckenemies/cow.zs"
+#include "zscript/games/duke/actors/redneckenemies/destructo.zs"
+#include "zscript/games/duke/actors/redneckenemies/dog.zs"
+#include "zscript/games/duke/actors/redneckenemies/gator.zs"
+#include "zscript/games/duke/actors/redneckenemies/hen.zs"
+#include "zscript/games/duke/actors/redneckenemies/hulk.zs"
+#include "zscript/games/duke/actors/redneckenemies/minion.zs"
+#include "zscript/games/duke/actors/redneckenemies/mosquito.zs"
+#include "zscript/games/duke/actors/redneckenemies/pig.zs"
+#include "zscript/games/duke/actors/redneckenemies/sheriff.zs"
+#include "zscript/games/duke/actors/redneckenemies/shitboss.zs"
+#include "zscript/games/duke/actors/redneckenemies/tornado.zs"
 #include "zscript/games/duke/actors/redneckenemies/vixen.zs"
 
 #include "zscript/games/duke/actors/redneckweapons/boatcannon.zs"
diff --git a/wadsrc/static/zscript/games/duke/actors/billyray.zs b/wadsrc/static/zscript/games/duke/actors/billyray.zs
deleted file mode 100644
index 2dddb61fa..000000000
--- a/wadsrc/static/zscript/games/duke/actors/billyray.zs
+++ /dev/null
@@ -1,62 +0,0 @@
-
-class RedneckBillyRay : DukeActor
-{
-	default
-	{
-		pic "BILLYRAY";
-		+INTERNAL_BADGUY;
-		+KILLCOUNT;
-	}
-	
-	override void PlayFTASound()
-	{
-		self.PlayActorSound("BR_RECOG");
-	}
-	
-	override void Initialize()
-	{
-		self.scale = (0.390625, 0.328125);
-		self.setClipDistFromTile();
-	}
-}
-
-class RedneckBillyRayStayput: RedneckBillyRay
-{
-	default
-	{
-		pic "BILLYRAYSTAYPUT";
-	}
-
-	override void PlayFTASound()
-	{
-	}
-	
-	override void initialize()
-	{
-		super.initialize();
-		self.actorstayput = self.sector;	// make this a flag once everything has been exported.
-	}
-}
-
-class RedneckBillyRayCock: RedneckBillyRay
-{
-	default
-	{
-		pic "BILLYCOCK";
-	}
-
-}
-
-class RedneckBillyRaySniper: RedneckBillyRay
-{
-	default
-	{
-		pic "BRAYSNIPER";
-	}
-
-	override void initialize()
-	{
-		super.initialize();
-		self.actorstayput = self.sector;	// make this a flag once everything has been exported.
-	}
-}
diff --git a/wadsrc/static/zscript/games/duke/actors/controllers.zs b/wadsrc/static/zscript/games/duke/actors/controllers.zs
index 45170835d..3a2c5dc20 100644
--- a/wadsrc/static/zscript/games/duke/actors/controllers.zs
+++ b/wadsrc/static/zscript/games/duke/actors/controllers.zs
@@ -246,38 +246,6 @@ class RedneckLadder : DukeActor
 	}
 }
 
-class RedneckDestructo : DukeActor
-{
-	default
-	{
-		+DESTRUCTOIMMUNE;
-		pic "DESTRUCTO";
-		statnum STAT_DESTRUCT;
-	}
-	
-	override bool animate(tspritetype t)
-	{
-		t.cstat |= CSTAT_SPRITE_INVISIBLE;
-		return true;
-	}
-}
-
-class RedneckDestroyTags : DukeActor
-{
-	default
-	{
-		+DESTRUCTOIMMUNE;
-		pic "DESTROYTAGS";
-	}
-	override void Initialize()
-	{
-		self.cstat |= CSTAT_SPRITE_INVISIBLE;
-		self.scale = (REPEAT_SCALE, REPEAT_SCALE);
-		self.clipdist = 0.25;
-		self.ChangeStat(STAT_DESTRUCT);
-	}
-}
-
 class RedneckPistonSoundEnabler : DukeActor
 {
 	override void StaticSetup()
diff --git a/wadsrc/static/zscript/games/duke/actors/redneckenemies.zs b/wadsrc/static/zscript/games/duke/actors/redneckenemies.zs
index f39dfb236..af47cfcb8 100644
--- a/wadsrc/static/zscript/games/duke/actors/redneckenemies.zs
+++ b/wadsrc/static/zscript/games/duke/actors/redneckenemies.zs
@@ -306,79 +306,6 @@ class RedneckCheerStayput : RedneckCheerleader
 	}
 }
 
-class RedneckShitBoss : DukeActor
-{
-	default
-	{
-		pic "SBMOVE";
-		+FULLBRIGHT;
-		+INTERNAL_BADGUY;
-		+KILLCOUNT;
-		+NORADIUSPUSH;
-	}
-
-	override void Initialize()
-	{
-		self.scale = (0.75, 0.75);
-		self.setClipDistFromTile();
-	}
-}
-
-class RedneckBubbaStand : DukeActor
-{
-	default
-	{
-		pic "BUBBASTAND";
-		+INTERNAL_BADGUY;
-	}
-	
-	override void initialize()
-	{
-		self.actorstayput = self.sector;	// make this a flag once everything has been exported.
-		self.scale = (0.390625, 0.328125);
-		self.setClipDistFromTile();
-	}
-}
-
-
-class RedneckHulk : DukeActor
-{
-	default
-	{
-		pic "HULK";
-		+INTERNAL_BADGUY;
-		+KILLCOUNT;
-		+NORADIUSPUSH;
-		ProjectileSpread -5.625;
-	}
-
-	override void Initialize()
-	{
-		self.scale = (0.5, 0.5);
-		self.setClipDistFromTile();
-	}
-
-	override Vector3 SpecialProjectileOffset()
-	{
-		return ((self.Angle + 45).ToVector() * 16, 12);
-	}
-
-}
-
-class RedneckHulkStayput : RedneckHulk
-{
-	default
-	{
-		pic "HULKSTAYPUT";
-	}
-	
-	override void initialize()
-	{
-		super.initialize();
-		self.actorstayput = self.sector;	// make this a flag once everything has been exported.
-	}
-}
-
 class RedneckBoulder : DukeActor
 {
 	default
@@ -396,85 +323,3 @@ class RedneckBoulder1 : DukeActor
 		+INTERNAL_BADGUY;
 	}
 }
-
-class RedneckTornado : DukeActor
-{
-	default
-	{
-		pic "TORNADO";
-		+DESTRUCTOIMMUNE;
-		+INTERNAL_BADGUY;
-		+NOHITSCANHIT;
-	}
-	override void Initialize()
-	{
-		self.scale = (1, 2);
-		self.setClipDistFromTile();
-		self.clipdist *= 0.25;
-		self.cstat = CSTAT_SPRITE_TRANSLUCENT;
-	}
-}
-
-class RedneckDog : DukeActor
-{
-	default
-	{
-		pic "DOGRUN";
-		+INTERNAL_BADGUY;
-		+KILLCOUNT;
-	}
-	override void Initialize()
-	{
-		self.scale = (0.25, 0.25);
-		self.setClipDistFromTile();
-	}
-}
-
-class RedneckSheriff : DukeActor
-{
-	default
-	{
-		pic "LTH";
-		+INTERNAL_BADGUY;
-		+KILLCOUNT;
-	}
-	override void Initialize()
-	{
-		self.scale =  (0.375, 0.34375);
-		self.setClipDistFromTile();
-	}
-}
-
-class RedneckMosquito : DukeActor
-{
-	default
-	{
-		pic "DRONE";
-		+INTERNAL_BADGUY;
-		+KILLCOUNT;
-		+NOWATERDIP;
-		+FLOATING;
-		+QUICKALTERANG;
-		+NOJIBS;
-		+NOHITJIBS;
-		falladjustz 0;
-		floating_floordist 30;
-		floating_ceilingdist 50;
-	}
-	override void Initialize()
-	{
-		self.scale = (0.21875, 0.109375);
-		self.clipdist = 32;
-	}
-}
-
-// only new thing in Route 66.
-class RedneckGator : DukeActor
-{
-	default
-	{
-		pic "GATOR";
-		+INTERNAL_BADGUY;
-		+KILLCOUNT;
-	}
-}
\ No newline at end of file
diff --git a/wadsrc/static/zscript/games/duke/actors/redneckenemies/billyray.zs b/wadsrc/static/zscript/games/duke/actors/redneckenemies/billyray.zs
new file mode 100644
index 000000000..029c3bb27
--- /dev/null
+++ b/wadsrc/static/zscript/games/duke/actors/redneckenemies/billyray.zs
@@ -0,0 +1,40 @@
+
+class RedneckBillyRay : DukeActor
+{
+	const BILLYRAYSTRENGTH = 100;
+	default
+	{
+		pic "BILLYRAY";
+		+INTERNAL_BADGUY;
+		+KILLCOUNT;
+		Strength BILLYRAYSTRENGTH;
+		
+	}
+	
+	override void PlayFTASound()
+	{
+		self.PlayActorSound("BR_RECOG");
+	}
+	
+	override void Initialize()
+	{
+		self.scale = (0.390625, 0.328125);
+		self.setClipDistFromTile();
+	}
+	
+	
+}
+
+class RedneckBillyRayStayput: RedneckBillyRay
+{
+	default
+	{
+		pic "BILLYRAYSTAYPUT";
+		+BADGUYSTAYPUT
+	}
+
+	override void PlayFTASound()
+	{
+	}
+
+}
\ No newline at end of file
diff --git a/wadsrc/static/zscript/games/duke/actors/redneckenemies/bubba.zs b/wadsrc/static/zscript/games/duke/actors/redneckenemies/bubba.zs
new file mode 100644
index 000000000..10b52fc7c
--- /dev/null
+++ b/wadsrc/static/zscript/games/duke/actors/redneckenemies/bubba.zs
@@ -0,0 +1,18 @@
+class RedneckBubbaStand : DukeActor
+{
+	default
+	{
+		pic "BUBBASTAND";
+		+INTERNAL_BADGUY;
+		Strength 100;
+	}
+	
+	override void initialize()
+	{
+		self.actorstayput = self.sector;	// make this a flag once everything has been exported.
+		self.scale = (0.390625, 0.328125);
+		self.setClipDistFromTile();
+	}
+
+	
+}
diff --git a/wadsrc/static/zscript/games/duke/actors/coot.zs b/wadsrc/static/zscript/games/duke/actors/redneckenemies/coot.zs
similarity index 55%
rename from wadsrc/static/zscript/games/duke/actors/coot.zs
rename to wadsrc/static/zscript/games/duke/actors/redneckenemies/coot.zs
index 3fe49e982..e5b8759c5 100644
--- a/wadsrc/static/zscript/games/duke/actors/coot.zs
+++ b/wadsrc/static/zscript/games/duke/actors/redneckenemies/coot.zs
@@ -1,8 +1,13 @@
+
+
 class RedneckCoot : DukeActor
 {
+	const COOTSTRENGTH = 50;
+
 	default
 	{
 		pic "COOT";
+		Strength COOTSTRENGTH;
 		+INTERNAL_BADGUY;
 		+KILLCOUNT;
 		+DESTRUCTOIMMUNE;
@@ -19,7 +24,10 @@ class RedneckCoot : DukeActor
 		self.scale = (0.375, 0.28125);
 		self.setClipDistFromTile();
 		self.clipdist *= 4;
+		if (Raze.isRRRA()) bLookAllaround = true;
 	}
+
+	
 }
 
 class RedneckCootStayput: RedneckCoot
@@ -29,38 +37,12 @@ class RedneckCootStayput: RedneckCoot
 		pic "COOTSTAYPUT";
 		+INTERNAL_BADGUY;
 		+KILLCOUNT;
-	}
-
-	override void PlayFTASound()
-	{
-	}
-	
-	override void initialize()
-	{
-		super.initialize();
-		self.actorstayput = self.sector;	// make this a flag once everything has been exported.
-	}
-}
-
-// CON for this is different in RRRA, so we need the split regardless of the flag.
-class RedneckRACoot : RedneckCoot
-{
-	default
-	{
-		+LOOKALLAROUND
-	}
-}
-
-class RedneckRACootStayput: RedneckRACoot
-{
-	default
-	{
-		pic "COOTSTAYPUT";
 		+BADGUYSTAYPUT;
 	}
 
 	override void PlayFTASound()
 	{
 	}
+	
 }
 
diff --git a/wadsrc/static/zscript/games/duke/actors/cow.zs b/wadsrc/static/zscript/games/duke/actors/redneckenemies/cow.zs
similarity index 76%
rename from wadsrc/static/zscript/games/duke/actors/cow.zs
rename to wadsrc/static/zscript/games/duke/actors/redneckenemies/cow.zs
index e056afd98..16d14b220 100644
--- a/wadsrc/static/zscript/games/duke/actors/cow.zs
+++ b/wadsrc/static/zscript/games/duke/actors/redneckenemies/cow.zs
@@ -1,9 +1,12 @@
 class RedneckCow : DukeActor
 {
+	const COWSTRENGTH = 50;
+
 	default
 	{
 		pic "COW";
 		+BADGUY;
+		Strength COWSTRENGTH;
 	}
 	
 	override void Initialize()
@@ -11,5 +14,5 @@ class RedneckCow : DukeActor
 		self.scale = (0.5, 0.5);
 		self.setClipDistFromTile();
 	}
-}
 
+}
\ No newline at end of file
diff --git a/wadsrc/static/zscript/games/duke/actors/redneckenemies/destructo.zs b/wadsrc/static/zscript/games/duke/actors/redneckenemies/destructo.zs
new file mode 100644
index 000000000..4ac647c0c
--- /dev/null
+++ b/wadsrc/static/zscript/games/duke/actors/redneckenemies/destructo.zs
@@ -0,0 +1,39 @@
+class RedneckDestructo : DukeActor
+{
+	default
+	{
+		pic "DESTRUCTO";
+		statnum STAT_DESTRUCT;
+		+DESTRUCTOIMMUNE;
+		Strength MEGASTRENGTH;
+		
+	}
+	
+	override void Initialize()
+	{
+		// do NOT run the default init code for this one.
+	}
+	
+	override bool animate(tspritetype t)
+	{
+		t.cstat |= CSTAT_SPRITE_INVISIBLE;
+		return true;
+	}
+	
+}
+
+class RedneckDestroyTags : DukeActor
+{
+	default
+	{
+		pic "DESTROYTAGS";
+		+DESTRUCTOIMMUNE;
+	}
+	override void Initialize()
+	{
+		self.cstat |= CSTAT_SPRITE_INVISIBLE;
+		self.scale = (REPEAT_SCALE, REPEAT_SCALE);
+		self.clipdist = 0.25;
+		self.ChangeStat(STAT_DESTRUCT);
+	}
+}
diff --git a/wadsrc/static/zscript/games/duke/actors/redneckenemies/dog.zs b/wadsrc/static/zscript/games/duke/actors/redneckenemies/dog.zs
new file mode 100644
index 000000000..1b0a15a5b
--- /dev/null
+++ b/wadsrc/static/zscript/games/duke/actors/redneckenemies/dog.zs
@@ -0,0 +1,17 @@
+class RedneckDog : DukeActor
+{
+	default
+	{
+		pic "DOGRUN";
+		+INTERNAL_BADGUY;
+		+KILLCOUNT;
+		Strength 200;
+	}
+	override void Initialize()
+	{
+		self.scale = (0.25, 0.25);
+		self.setClipDistFromTile();
+	}
+	
+	
+}
diff --git a/wadsrc/static/zscript/games/duke/actors/redneckenemies/enemy_common.zs b/wadsrc/static/zscript/games/duke/actors/redneckenemies/enemy_common.zs
new file mode 100644
index 000000000..28802e540
--- /dev/null
+++ b/wadsrc/static/zscript/games/duke/actors/redneckenemies/enemy_common.zs
@@ -0,0 +1,3 @@
+extend class DukeActor
+{
+}
\ No newline at end of file
diff --git a/wadsrc/static/zscript/games/duke/actors/redneckenemies/gator.zs b/wadsrc/static/zscript/games/duke/actors/redneckenemies/gator.zs
new file mode 100644
index 000000000..33658a251
--- /dev/null
+++ b/wadsrc/static/zscript/games/duke/actors/redneckenemies/gator.zs
@@ -0,0 +1,16 @@
+
+// The gator is the only new thing in Route 66.
+class RedneckGator : DukeActor
+{
+	const GATOR_STRENGTH = 100;
+	const GATOR_BITE = -5;
+	const GATOR_GOOD_BITE = -10;
+
+	default
+	{
+		pic "GATOR";
+		Strength GATOR_STRENGTH;
+		+INTERNAL_BADGUY;
+		+KILLCOUNT;
+	}
+}
\ No newline at end of file
diff --git a/wadsrc/static/zscript/games/duke/actors/hen.zs b/wadsrc/static/zscript/games/duke/actors/redneckenemies/hen.zs
similarity index 57%
rename from wadsrc/static/zscript/games/duke/actors/hen.zs
rename to wadsrc/static/zscript/games/duke/actors/redneckenemies/hen.zs
index 0e27e45d5..e01c5a279 100644
--- a/wadsrc/static/zscript/games/duke/actors/hen.zs
+++ b/wadsrc/static/zscript/games/duke/actors/redneckenemies/hen.zs
@@ -1,9 +1,14 @@
 class RedneckHen : DukeActor
 {
+	const HEN_NORMAL_STRENGTH = 5;
+	const HEN_TOUGHER_STRENGTH = 12;
+	const HEN_DAMAGE_TO_PLAYER = -1;
+
 	default
 	{
 		pic "HEN";
 		+INTERNAL_BADGUY;
+		Strength HEN_TOUGHER_STRENGTH;
 	}
 	
 	override void Initialize()
@@ -19,18 +24,6 @@ class RedneckHen : DukeActor
 			self.clipdist = 16;
 		}
 	}
-}
-
-class RedneckHenStayput: RedneckHen
-{
-	default
-	{
-		pic "HENSTAYPUT";
-	}
 	
-	override void initialize()
-	{
-		super.initialize();
-		self.actorstayput = self.sector;	// make this a flag once everything has been exported.
-	}
+
 }
diff --git a/wadsrc/static/zscript/games/duke/actors/redneckenemies/hulk.zs b/wadsrc/static/zscript/games/duke/actors/redneckenemies/hulk.zs
new file mode 100644
index 000000000..6001c1a32
--- /dev/null
+++ b/wadsrc/static/zscript/games/duke/actors/redneckenemies/hulk.zs
@@ -0,0 +1,43 @@
+extend class DukeActor
+{
+}
+
+class RedneckHulk : DukeActor
+{
+	const HULKSTRENGTH = 1200;
+	const HULKRESPAWNEDSTRENGTH = 600;
+	const HULKWHACKAMOUNT = -22;
+	
+	default
+	{
+		pic "HULK";
+		+INTERNAL_BADGUY;
+		+KILLCOUNT;
+		+NORADIUSPUSH;
+		ProjectileSpread -5.625;
+		Strength HULKSTRENGTH;
+	}
+
+	override void Initialize()
+	{
+		self.scale = (0.5, 0.5);
+		self.setClipDistFromTile();
+	}
+
+	override Vector3 SpecialProjectileOffset()
+	{
+		return ((self.Angle + 45).ToVector() * 16, 12);
+	}
+
+}
+
+class RedneckHulkStayput : RedneckHulk
+{
+	default
+	{
+		pic "HULKSTAYPUT";
+		+BADGUYSTAYPUT;
+	}
+	
+	
+}
diff --git a/wadsrc/static/zscript/games/duke/actors/minion.zs b/wadsrc/static/zscript/games/duke/actors/redneckenemies/minion.zs
similarity index 61%
rename from wadsrc/static/zscript/games/duke/actors/minion.zs
rename to wadsrc/static/zscript/games/duke/actors/redneckenemies/minion.zs
index d0c9ffe21..21dd3a45f 100644
--- a/wadsrc/static/zscript/games/duke/actors/minion.zs
+++ b/wadsrc/static/zscript/games/duke/actors/redneckenemies/minion.zs
@@ -1,5 +1,8 @@
 class RedneckMinion : DukeActor
 {
+	const MINIONSTRENGTH = 50;
+	const MINIONFREAK = -10;
+
 	default
 	{
 		pic "MINION";
@@ -13,16 +16,12 @@ class RedneckMinion : DukeActor
 	{
 		self.scale = (0.25, 0.25);
 		self.setClipDistFromTile();
-		if (Raze.isRRRA())
+		if (ud.ufospawnsminion)
+			self.pal = 8;
+		if (self.pal == 19)
 		{
-			if (ud.ufospawnsminion)
-				self.pal = 8;
-
-			if (self.pal == 19)
-			{
-				self.bHitradius_NoEffect = true;
-				self.bMagmaImmune = true;
-			}
+			self.bHitradius_NoEffect = true;
+			self.bMagmaImmune = true;
 		}
 	}
 	
@@ -32,6 +31,7 @@ class RedneckMinion : DukeActor
 			t.shade = -127;
 		return false;
 	}
+
 }
 
 class RedneckMinionStayput: RedneckMinion
@@ -39,15 +39,12 @@ class RedneckMinionStayput: RedneckMinion
 	default
 	{
 		pic "MINIONSTAYPUT";
+		+BADGUYSTAYPUT;
 	}
 
 	override void PlayFTASound()
 	{
 	}
-	
-	override void initialize()
-	{
-		super.initialize();
-		self.actorstayput = self.sector;	// make this a flag once everything has been exported.
-	}
+
 }
+
diff --git a/wadsrc/static/zscript/games/duke/actors/redneckenemies/mosquito.zs b/wadsrc/static/zscript/games/duke/actors/redneckenemies/mosquito.zs
new file mode 100644
index 000000000..33d813beb
--- /dev/null
+++ b/wadsrc/static/zscript/games/duke/actors/redneckenemies/mosquito.zs
@@ -0,0 +1,26 @@
+class RedneckMosquito : DukeActor
+{
+	const MOSQUITOSTRENGTH = 1;
+	const MOSQDAMAGE = -4;
+	default
+	{
+		pic "DRONE";
+		+INTERNAL_BADGUY;
+		+KILLCOUNT;
+		+NOWATERDIP;
+		+FLOATING;
+		+QUICKALTERANG;
+		+NOJIBS;
+		+NOHITJIBS;
+		falladjustz 0;
+		floating_floordist 30;
+		floating_ceilingdist 50;
+	}
+
+	override void Initialize()
+	{
+		self.scale = (0.21875, 0.109375);
+		self.clipdist = 32;
+	}
+
+}
diff --git a/wadsrc/static/zscript/games/duke/actors/pig.zs b/wadsrc/static/zscript/games/duke/actors/redneckenemies/pig.zs
similarity index 61%
rename from wadsrc/static/zscript/games/duke/actors/pig.zs
rename to wadsrc/static/zscript/games/duke/actors/redneckenemies/pig.zs
index 6b085da85..cd94b844c 100644
--- a/wadsrc/static/zscript/games/duke/actors/pig.zs
+++ b/wadsrc/static/zscript/games/duke/actors/redneckenemies/pig.zs
@@ -1,9 +1,13 @@
 class RedneckPig : DukeActor
 {
+	const PIGSTRENGTH = 75;
+	const PIG_GNAW_AMOUNT = -1;
+
 	default
 	{
 		pic "PIG";
 		+INTERNAL_BADGUY;
+		Strength PIGSTRENGTH;
 	}
 	
 	override void Initialize()
@@ -11,20 +15,18 @@ class RedneckPig : DukeActor
 		self.scale = (0.25, 0.25);;
 		self.setClipDistFromTile();
 	}
+	
+	
 }
 
-class RedneckPigStayput: RedneckPig
+class RedneckPigStayput : RedneckPig
 {
 	default
 	{
 		pic "PIGSTAYPUT";
+		+BADGUYSTAYPUT;
 	}
 	
-	override void initialize()
-	{
-		super.initialize();
-		self.actorstayput = self.sector;	// make this a flag once everything has been exported.
-	}
 }
 
 class RedneckPigEat : RedneckPig
@@ -33,5 +35,7 @@ class RedneckPigEat : RedneckPig
 	{
 		pic "PIGEAT";
 	}
+	
+	
 }
 
diff --git a/wadsrc/static/zscript/games/duke/actors/redneckenemies/sheriff.zs b/wadsrc/static/zscript/games/duke/actors/redneckenemies/sheriff.zs
new file mode 100644
index 000000000..f8fef0eb1
--- /dev/null
+++ b/wadsrc/static/zscript/games/duke/actors/redneckenemies/sheriff.zs
@@ -0,0 +1,27 @@
+class RedneckSheriff : DukeActor
+{
+	const LTHSNDAMB = 16;
+	const LTHSTRENGTH = 500;
+	default
+	{
+		pic "LTH";
+		+INTERNAL_BADGUY;
+		+KILLCOUNT;
+		Strength LTHSTRENGTH;
+	}
+	override void Initialize()
+	{
+		self.scale =  (0.375, 0.34375);
+		self.setClipDistFromTile();
+	}
+
+}
+
+class RedneckRASheriff : DukeActor // LTH (4352) // less health than in RR!
+{
+	default
+	{
+		Strength 300;
+	}
+}
+
diff --git a/wadsrc/static/zscript/games/duke/actors/redneckenemies/shitboss.zs b/wadsrc/static/zscript/games/duke/actors/redneckenemies/shitboss.zs
new file mode 100644
index 000000000..85bc77cd1
--- /dev/null
+++ b/wadsrc/static/zscript/games/duke/actors/redneckenemies/shitboss.zs
@@ -0,0 +1,24 @@
+class RedneckShitBoss : DukeActor
+{
+	const SBSPITSPD = 16;
+	const SBDIPSPD = 16;
+	const SBSNDRND = 64;
+	const SBSWHACKAMOUNT = -22;
+
+	default
+	{
+		pic "SBMOVE";
+		+FULLBRIGHT;
+		+INTERNAL_BADGUY;
+		+KILLCOUNT;
+		+NORADIUSPUSH;
+		Strength 2500;
+	}
+
+	override void Initialize()
+	{
+		self.scale = (0.75, 0.75);
+		self.setClipDistFromTile();
+	}
+
+}
\ No newline at end of file
diff --git a/wadsrc/static/zscript/games/duke/actors/redneckenemies/tornado.zs b/wadsrc/static/zscript/games/duke/actors/redneckenemies/tornado.zs
new file mode 100644
index 000000000..b42bd81dc
--- /dev/null
+++ b/wadsrc/static/zscript/games/duke/actors/redneckenemies/tornado.zs
@@ -0,0 +1,18 @@
+class RedneckTornado : DukeActor
+{
+	default
+	{
+		pic "TORNADO";
+		+DESTRUCTOIMMUNE;
+		+INTERNAL_BADGUY;
+		+NOHITSCANHIT;
+		Strength MEGASTRENGTH;
+	}
+	override void Initialize()
+	{
+		self.scale = (1, 2);
+		self.setClipDistFromTile();
+		self.clipdist *= 0.25;
+		self.cstat = CSTAT_SPRITE_TRANSLUCENT;
+	}
+}
\ No newline at end of file