diff --git a/.gradle/8.2.1/checksums/checksums.lock b/.gradle/8.2.1/checksums/checksums.lock
index ff263c3..975eff9 100644
Binary files a/.gradle/8.2.1/checksums/checksums.lock and b/.gradle/8.2.1/checksums/checksums.lock differ
diff --git a/.gradle/8.2.1/fileHashes/fileHashes.lock b/.gradle/8.2.1/fileHashes/fileHashes.lock
index a435248..80f7284 100644
--- a/.gradle/8.2.1/fileHashes/fileHashes.lock
+++ b/.gradle/8.2.1/fileHashes/fileHashes.lock
@@ -1 +1 @@
-�[�i5���
\ No newline at end of file
+�[�i5���$_
\ No newline at end of file
diff --git a/.idea/uiDesigner.xml b/.idea/uiDesigner.xml
new file mode 100644
index 0000000..2b63946
--- /dev/null
+++ b/.idea/uiDesigner.xml
@@ -0,0 +1,124 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="Palette2">
+    <group name="Swing">
+      <item class="com.intellij.uiDesigner.HSpacer" tooltip-text="Horizontal Spacer" icon="/com/intellij/uiDesigner/icons/hspacer.svg" removable="false" auto-create-binding="false" can-attach-label="false">
+        <default-constraints vsize-policy="1" hsize-policy="6" anchor="0" fill="1" />
+      </item>
+      <item class="com.intellij.uiDesigner.VSpacer" tooltip-text="Vertical Spacer" icon="/com/intellij/uiDesigner/icons/vspacer.svg" removable="false" auto-create-binding="false" can-attach-label="false">
+        <default-constraints vsize-policy="6" hsize-policy="1" anchor="0" fill="2" />
+      </item>
+      <item class="javax.swing.JPanel" icon="/com/intellij/uiDesigner/icons/panel.svg" removable="false" auto-create-binding="false" can-attach-label="false">
+        <default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3" />
+      </item>
+      <item class="javax.swing.JScrollPane" icon="/com/intellij/uiDesigner/icons/scrollPane.svg" removable="false" auto-create-binding="false" can-attach-label="true">
+        <default-constraints vsize-policy="7" hsize-policy="7" anchor="0" fill="3" />
+      </item>
+      <item class="javax.swing.JButton" icon="/com/intellij/uiDesigner/icons/button.svg" removable="false" auto-create-binding="true" can-attach-label="false">
+        <default-constraints vsize-policy="0" hsize-policy="3" anchor="0" fill="1" />
+        <initial-values>
+          <property name="text" value="Button" />
+        </initial-values>
+      </item>
+      <item class="javax.swing.JRadioButton" icon="/com/intellij/uiDesigner/icons/radioButton.svg" removable="false" auto-create-binding="true" can-attach-label="false">
+        <default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" />
+        <initial-values>
+          <property name="text" value="RadioButton" />
+        </initial-values>
+      </item>
+      <item class="javax.swing.JCheckBox" icon="/com/intellij/uiDesigner/icons/checkBox.svg" removable="false" auto-create-binding="true" can-attach-label="false">
+        <default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" />
+        <initial-values>
+          <property name="text" value="CheckBox" />
+        </initial-values>
+      </item>
+      <item class="javax.swing.JLabel" icon="/com/intellij/uiDesigner/icons/label.svg" removable="false" auto-create-binding="false" can-attach-label="false">
+        <default-constraints vsize-policy="0" hsize-policy="0" anchor="8" fill="0" />
+        <initial-values>
+          <property name="text" value="Label" />
+        </initial-values>
+      </item>
+      <item class="javax.swing.JTextField" icon="/com/intellij/uiDesigner/icons/textField.svg" removable="false" auto-create-binding="true" can-attach-label="true">
+        <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
+          <preferred-size width="150" height="-1" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JPasswordField" icon="/com/intellij/uiDesigner/icons/passwordField.svg" removable="false" auto-create-binding="true" can-attach-label="true">
+        <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
+          <preferred-size width="150" height="-1" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JFormattedTextField" icon="/com/intellij/uiDesigner/icons/formattedTextField.svg" removable="false" auto-create-binding="true" can-attach-label="true">
+        <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
+          <preferred-size width="150" height="-1" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JTextArea" icon="/com/intellij/uiDesigner/icons/textArea.svg" removable="false" auto-create-binding="true" can-attach-label="true">
+        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
+          <preferred-size width="150" height="50" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JTextPane" icon="/com/intellij/uiDesigner/icons/textPane.svg" removable="false" auto-create-binding="true" can-attach-label="true">
+        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
+          <preferred-size width="150" height="50" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JEditorPane" icon="/com/intellij/uiDesigner/icons/editorPane.svg" removable="false" auto-create-binding="true" can-attach-label="true">
+        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
+          <preferred-size width="150" height="50" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JComboBox" icon="/com/intellij/uiDesigner/icons/comboBox.svg" removable="false" auto-create-binding="true" can-attach-label="true">
+        <default-constraints vsize-policy="0" hsize-policy="2" anchor="8" fill="1" />
+      </item>
+      <item class="javax.swing.JTable" icon="/com/intellij/uiDesigner/icons/table.svg" removable="false" auto-create-binding="true" can-attach-label="false">
+        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
+          <preferred-size width="150" height="50" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JList" icon="/com/intellij/uiDesigner/icons/list.svg" removable="false" auto-create-binding="true" can-attach-label="false">
+        <default-constraints vsize-policy="6" hsize-policy="2" anchor="0" fill="3">
+          <preferred-size width="150" height="50" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JTree" icon="/com/intellij/uiDesigner/icons/tree.svg" removable="false" auto-create-binding="true" can-attach-label="false">
+        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
+          <preferred-size width="150" height="50" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JTabbedPane" icon="/com/intellij/uiDesigner/icons/tabbedPane.svg" removable="false" auto-create-binding="true" can-attach-label="false">
+        <default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3">
+          <preferred-size width="200" height="200" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JSplitPane" icon="/com/intellij/uiDesigner/icons/splitPane.svg" removable="false" auto-create-binding="false" can-attach-label="false">
+        <default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3">
+          <preferred-size width="200" height="200" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JSpinner" icon="/com/intellij/uiDesigner/icons/spinner.svg" removable="false" auto-create-binding="true" can-attach-label="true">
+        <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" />
+      </item>
+      <item class="javax.swing.JSlider" icon="/com/intellij/uiDesigner/icons/slider.svg" removable="false" auto-create-binding="true" can-attach-label="false">
+        <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" />
+      </item>
+      <item class="javax.swing.JSeparator" icon="/com/intellij/uiDesigner/icons/separator.svg" removable="false" auto-create-binding="false" can-attach-label="false">
+        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3" />
+      </item>
+      <item class="javax.swing.JProgressBar" icon="/com/intellij/uiDesigner/icons/progressbar.svg" removable="false" auto-create-binding="true" can-attach-label="false">
+        <default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1" />
+      </item>
+      <item class="javax.swing.JToolBar" icon="/com/intellij/uiDesigner/icons/toolbar.svg" removable="false" auto-create-binding="false" can-attach-label="false">
+        <default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1">
+          <preferred-size width="-1" height="20" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JToolBar$Separator" icon="/com/intellij/uiDesigner/icons/toolbarSeparator.svg" removable="false" auto-create-binding="false" can-attach-label="false">
+        <default-constraints vsize-policy="0" hsize-policy="0" anchor="0" fill="1" />
+      </item>
+      <item class="javax.swing.JScrollBar" icon="/com/intellij/uiDesigner/icons/scrollbar.svg" removable="false" auto-create-binding="true" can-attach-label="false">
+        <default-constraints vsize-policy="6" hsize-policy="0" anchor="0" fill="2" />
+      </item>
+    </group>
+  </component>
+</project>
\ No newline at end of file
diff --git a/src/main/java/com/zivilon/cinder_loe/CinderLoE.java b/src/main/java/com/zivilon/cinder_loe/CinderLoE.java
index bb280b2..a1e0f4c 100644
--- a/src/main/java/com/zivilon/cinder_loe/CinderLoE.java
+++ b/src/main/java/com/zivilon/cinder_loe/CinderLoE.java
@@ -4,8 +4,10 @@ import com.zivilon.cinder_loe.blocks.*;
 import com.zivilon.cinder_loe.character.CharacterEventListener;
 import com.zivilon.cinder_loe.character.CharacterRoleAPI;
 import com.zivilon.cinder_loe.client.render.*;
+import com.zivilon.cinder_loe.client.render.corrupt.*;
 import com.zivilon.cinder_loe.command.CommandCinderCharacter;
 import com.zivilon.cinder_loe.entity.*;
+import com.zivilon.cinder_loe.entity.corrupt.*;
 import com.zivilon.cinder_loe.items.*;
 import com.zivilon.cinder_loe.tileentity.*;
 import com.zivilon.cinder_loe.util.Utilities;
@@ -75,11 +77,11 @@ import net.minecraftforge.client.ClientCommandHandler;
 
 @Mod(
     modid = "cinder_loe",
-    version = "1.2.1",
+    version = "1.2.3",
     name = "CinderLoE",
     dependencies = "required-after:spongemixins@[1.1.0,);required-after:lotr",
     acceptedMinecraftVersions = "[1.7.10]",
-    acceptableRemoteVersions = "*")
+    acceptableRemoteVersions = "[1.2.3]")
 public class CinderLoE {
 
     @Instance("cinder_loe")
@@ -100,7 +102,7 @@ public class CinderLoE {
 
 
     // Blocks
-    public static Block barricade;
+   // public static Block barricade;
     public static Block cinderBlock;
     public static Block ivoryBlock;
     public static Block blockRedDwarfSteel;
@@ -135,6 +137,7 @@ public class CinderLoE {
 
     // Misc
     public static Item frostblade;
+    public static Item daggervoid;
     public static Item spearsolidgold;
     public static Item whip;
     public static Item swordAsh;
@@ -299,13 +302,19 @@ public class CinderLoE {
         event.registerServerCommand(new CommandCinderCharacter());
     }
 
-    public void registerEntities() { // Last ID added: 37
+    public void registerEntities() { // Last ID added: 41
         GameRegistry.registerTileEntity(TileEntityMistBlock.class, "TileEntityMistBlock");
 
         int entityID = 7320; // Always increment entityID by 1 over the last entity to ensure unique IDs
-        EntityRegistry.registerModEntity(HaradLevy.class, "HaradLevy", (entityID + 36), this, 64, 1, true);
-        EntityRegistry.registerModEntity(DwarfLevy.class, "DwarfLevy", (entityID + 37), this, 64, 1, true);
+      //  EntityRegistry.registerModEntity(HaradLevy.class, "HaradLevy", (entityID + 36), this, 64, 1, true);
+      //  EntityRegistry.registerModEntity(DwarfLevy.class, "DwarfLevy", (entityID + 37), this, 64, 1, true);
 
+        EntityRegistry.registerModEntity(CorruptDwarf.class, "CorruptDwarf", (entityID + 36), this, 64, 1, true);
+        EntityRegistry.registerModEntity(CorruptElf.class, "CorruptElf", (entityID + 37), this, 64, 1, true);
+        EntityRegistry.registerModEntity(CorruptEnt.class, "CorruptEnt", (entityID + 38), this, 64, 1, true);
+        EntityRegistry.registerModEntity(CorruptHobbit.class, "CorruptHobit", (entityID + 39), this, 64, 1, true);
+        EntityRegistry.registerModEntity(CorruptMan.class, "CorruptMan", (entityID + 40), this, 64, 1, true);
+        EntityRegistry.registerModEntity(CorruptOrc.class, "CorruptOrc", (entityID + 41), this, 64, 1, true);
 
         EntityRegistry.registerModEntity(SarumanFireball.class, "SarumanFireball", entityID + 0, this, 64, 10, true);
         EntityRegistry.registerModEntity(Renegade.class, "Renegade", (entityID + 1), this, 64, 1, true);
@@ -354,8 +363,8 @@ public class CinderLoE {
 
     public void registerBlocks() {
         // barricade
-        barricade = (new barricade());
-        GameRegistry.registerBlock(barricade, "barricade");
+       // barricade = (new barricade());
+      //  GameRegistry.registerBlock(barricade, "barricade");
 
 
         // Cinder Block
@@ -502,7 +511,7 @@ public class CinderLoE {
         * Item Registation, add up the "last ID added" upon adding a new item
         * Weapons will need to be linked
          */
-        // Last ID added: 95
+        // Last ID added: 96
 
         // ==Food Items==
         ItemRegistration.registerItem(onion, "onion", 89);
@@ -571,15 +580,18 @@ public class CinderLoE {
         // Misc
         EVENT = getLOTRMaterialByName("EVENT");
         frostblade = (new LOTRItemSword(EVENT)).setUnlocalizedName("lotr:frostblade").setTextureName("lotr:frostblade");
+        daggervoid = (new VoidDagger(EVENT)).addWeaponDamage(5.0F).setUnlocalizedName("lotr:daggerVoid").setTextureName("lotr:daggerVoid").setCreativeTab(null);
         spearsolidgold = (new LOTRItemSpear(EVENT)).setUnlocalizedName("lotr:spearsolidgold").setTextureName("lotr:spearsolidgold").setCreativeTab(null);
         whip = (new Whip()).setUnlocalizedName("lotr:whip").setTextureName("lotr:whip");
 
 
 
         ItemRegistration.registerItem(frostblade, "frostblade", 30);
+        ItemRegistration.registerItem(daggervoid, "daggerVoid", 96);
         ItemRegistration.registerItem(spearsolidgold, "spearsolidgold", 31);
         ItemRegistration.registerItem(whip, "whip", 32);
         linkLOTRWeapon(frostblade, "frostblade");
+        linkLOTRWeapon(daggervoid, "daggerVoid");
         linkLOTRWeapon(spearsolidgold, "spearsolidgold");
         linkLOTRWeapon(whip, "whip");
 
@@ -723,8 +735,8 @@ public class CinderLoE {
         //Bree
         MATERIAL_BREE = getLOTRMaterialByName("BREE");
         if (MATERIAL_BREE != null) {
-            helmetBree = (new LOTRItemArmor(MATERIAL_BREE, 0, "helmet")).setUnlocalizedName("lotr:helmetBree").setTextureName("lotr:helmetBree");
             helmetBreeKettle = (new LOTRItemArmor(MATERIAL_BREE, 0, "helmet")).setUnlocalizedName("lotr:helmetBreeKettle").setTextureName("lotr:breekettlehelmet");
+            helmetBree = (new LOTRItemArmor(MATERIAL_BREE, 0, "helmet")).setUnlocalizedName("lotr:helmetBree").setTextureName("lotr:helmetBree");
             bodyBree = (new LOTRItemArmor(MATERIAL_BREE, 1)).setUnlocalizedName("lotr:bodyBree").setTextureName("lotr:bodyBree");
             legsBree = (new LOTRItemArmor(MATERIAL_BREE, 2)).setUnlocalizedName("lotr:legsBree").setTextureName("lotr:legsBree");
             bootsBree = (new LOTRItemArmor(MATERIAL_BREE, 3)).setUnlocalizedName("lotr:bootsBree").setTextureName("lotr:bootsBree");
@@ -783,8 +795,15 @@ public class CinderLoE {
     public static class ClientProxy extends CommonProxy {
         @Override
         public void setup() {
-            RenderingRegistry.registerEntityRenderingHandler(HaradLevy.class, new LOTRRenderNearHaradrim());
-            RenderingRegistry.registerEntityRenderingHandler(DwarfLevy.class, new LOTRRenderDwarf());
+       //     RenderingRegistry.registerEntityRenderingHandler(HaradLevy.class, new LOTRRenderNearHaradrim());
+        //    RenderingRegistry.registerEntityRenderingHandler(DwarfLevy.class, new LOTRRenderDwarf());
+
+            RenderingRegistry.registerEntityRenderingHandler(CorruptDwarf.class, new RenderCorruptDwarf());
+            RenderingRegistry.registerEntityRenderingHandler(CorruptElf.class, new RenderCorruptElf());
+            RenderingRegistry.registerEntityRenderingHandler(CorruptEnt.class, new RenderCorruptEnt());
+            RenderingRegistry.registerEntityRenderingHandler(CorruptHobbit.class, new RenderCorruptHobbit());
+            RenderingRegistry.registerEntityRenderingHandler(CorruptMan.class, new RenderCorruptMan());
+            RenderingRegistry.registerEntityRenderingHandler(CorruptOrc.class, new RenderCorruptOrc());
 
             RenderingRegistry.registerEntityRenderingHandler(SarumanFireball.class, new RenderSarumanFireball());
             RenderingRegistry.registerEntityRenderingHandler(Renegade.class, new RenderRenegade());
@@ -937,7 +956,7 @@ public class CinderLoE {
 
         //== Blocks==
         CinderCore.registerItemFallback(Block.getIdFromBlock(cinderBlock), Block.getIdFromBlock(Blocks.netherrack), "cinder_loe", "1.0");
-        CinderCore.registerItemFallback(Block.getIdFromBlock(barricade), Block.getIdFromBlock(Blocks.fence), "cinder_loe", "1.0");
+       // CinderCore.registerItemFallback(Block.getIdFromBlock(barricade), Block.getIdFromBlock(Blocks.fence), "cinder_loe", "1.0");
         CinderCore.registerItemFallback(Block.getIdFromBlock(ivoryBlock), Block.getIdFromBlock(LOTRMod.boneBlock), "cinder_loe", "1.0");
         CinderCore.registerItemFallback(Block.getIdFromBlock(blockRedDwarfSteel), Block.getIdFromBlock(LOTRMod.blockOreStorage), "cinder_loe", "1.0");
         CinderCore.registerItemFallback(Block.getIdFromBlock(chandelierRedDwarf), Block.getIdFromBlock(LOTRMod.chandelier), "cinder_loe", "1.0");
@@ -981,6 +1000,7 @@ public class CinderLoE {
         CinderCore.registerItemFallback(Item.getIdFromItem(welfRelic), Item.getIdFromItem(LOTRMod.rhinoHorn), "cinder_loe", "1.2");
         // == Specials ==
         CinderCore.registerItemFallback(Item.getIdFromItem(frostblade), Item.getIdFromItem(LOTRMod.swordMithril), "cinder_loe", "1.0");
+        CinderCore.registerItemFallback(Item.getIdFromItem(daggervoid), Item.getIdFromItem(LOTRMod.daggerMithril), "cinder_loe", "1.2.3");
         CinderCore.registerItemFallback(Item.getIdFromItem(spearsolidgold), Item.getIdFromItem(LOTRMod.spearMithril), "cinder_loe", "1.1");
         CinderCore.registerItemFallback(Item.getIdFromItem(whip), Item.getIdFromItem(LOTRMod.balrogWhip), "cinder_loe", "1.2");
         // == Ash Forged ==
@@ -1058,8 +1078,15 @@ public class CinderLoE {
         CinderCore.registerItemFallback(Item.getIdFromItem(bootsArnorBanner), Item.getIdFromItem(Items.chainmail_boots), "cinder_loe", "1.1");
         CinderCore.registerItemFallback(Item.getIdFromItem(maceArnor), Item.getIdFromItem(LOTRMod.blacksmithHammer), "cinder_loe", "1.1");
 
-        CinderCore.registerEntityFallback(HaradLevy.class, LOTREntityNearHaradrim.class, "cinder_loe", "1.2");
-        CinderCore.registerEntityFallback(DwarfLevy.class, LOTREntityDwarf.class, "cinder_loe", "1.2");
+     //   CinderCore.registerEntityFallback(HaradLevy.class, LOTREntityNearHaradrim.class, "cinder_loe", "1.2.3");
+     //   CinderCore.registerEntityFallback(DwarfLevy.class, LOTREntityDwarf.class, "cinder_loe", "1.2.3");
+
+        CinderCore.registerEntityFallback(CorruptDwarf.class, LOTREntityDwarf.class, "cinder_loe", "1.2.3");
+        CinderCore.registerEntityFallback(CorruptElf.class, LOTREntityTormentedElf.class, "cinder_loe", "1.2.3");
+        CinderCore.registerEntityFallback(CorruptEnt.class, LOTREntityEnt.class, "cinder_loe", "1.2.3");
+        CinderCore.registerEntityFallback(CorruptHobbit.class, LOTREntityHobbit.class, "cinder_loe", "1.2.3");
+        CinderCore.registerEntityFallback(CorruptMan.class, LOTREntityGondorMan.class, "cinder_loe", "1.2.3");
+        CinderCore.registerEntityFallback(CorruptOrc.class, LOTREntityGundabadOrc.class, "cinder_loe", "1.2.3");
 
         CinderCore.registerEntityFallback(SarumanFireball.class, LOTREntityGandalfFireball.class, "cinder_loe", "1.0");
         CinderCore.registerEntityFallback(Renegade.class, LOTREntityBandit.class, "cinder_loe", "1.0");
diff --git a/src/main/java/com/zivilon/cinder_loe/CinderLoE_Config.java b/src/main/java/com/zivilon/cinder_loe/CinderLoE_Config.java
index 23c6693..47694f0 100644
--- a/src/main/java/com/zivilon/cinder_loe/CinderLoE_Config.java
+++ b/src/main/java/com/zivilon/cinder_loe/CinderLoE_Config.java
@@ -4,6 +4,7 @@ import cpw.mods.fml.common.event.FMLPreInitializationEvent;
 
 import java.io.File;
 
+import lotr.common.fac.LOTRFaction;
 import net.minecraftforge.common.config.Configuration;
 
 public class CinderLoE_Config {
@@ -11,6 +12,7 @@ public class CinderLoE_Config {
     public static float enchantment_color_red;
     public static float enchantment_color_green;
     public static float enchantment_color_blue;
+    public static String corrupt_faction;
 
     public static void init(FMLPreInitializationEvent event) {
         File configFile = new File(event.getModConfigurationDirectory(), "CinderLoE.cfg");
@@ -28,6 +30,7 @@ public class CinderLoE_Config {
             enchantment_color_green = config.getFloat("EnchantmentColorGreen", Configuration.CATEGORY_GENERAL, 0.19f, 0.0f, 1.0f, "Configure green color for enchantments");
             enchantment_color_blue = config.getFloat("EnchantmentColorBlue", Configuration.CATEGORY_GENERAL, 0.608f, 0.0f, 1.0f, "Configure blue color for enchantments");
 
+            corrupt_faction = config.getString("CorruptFaction", Configuration.CATEGORY_GENERAL, "MORDOR", "Configure the alignment the Corrupt npcs follow");
             // Save the configuration if it has changed
             if (config.hasChanged()) {
                 config.save();
diff --git a/src/main/java/com/zivilon/cinder_loe/client/render/corrupt/RenderCorruptDwarf.java b/src/main/java/com/zivilon/cinder_loe/client/render/corrupt/RenderCorruptDwarf.java
new file mode 100644
index 0000000..d69e84b
--- /dev/null
+++ b/src/main/java/com/zivilon/cinder_loe/client/render/corrupt/RenderCorruptDwarf.java
@@ -0,0 +1,38 @@
+package com.zivilon.cinder_loe.client.render.corrupt;
+
+import com.zivilon.cinder_loe.entity.corrupt.CorruptDwarf;
+import com.zivilon.cinder_loe.entity.corrupt.CorruptElf;
+import lotr.client.model.LOTRModelDwarf;
+import lotr.client.model.LOTRModelElf;
+import lotr.client.render.entity.LOTRRandomSkins;
+import lotr.client.render.entity.LOTRRenderBiped;
+import lotr.client.render.entity.LOTRRenderDwarf;
+import lotr.common.entity.LOTRRandomSkinEntity;
+import lotr.common.entity.npc.LOTREntityNPC;
+import net.minecraft.client.model.ModelBiped;
+import net.minecraft.entity.Entity;
+import net.minecraft.util.ResourceLocation;
+
+public class RenderCorruptDwarf extends LOTRRenderDwarf {
+    public static LOTRRandomSkins skinsMale;
+    protected ModelBiped standardRenderPassModel = new LOTRModelDwarf(0.5f, 64, 64);
+
+    public RenderCorruptDwarf() {
+        super();
+        skinsMale = LOTRRandomSkins.loadSkinsList("cinder_loe:mob/corrupt/dwarf");
+    }
+    @Override
+    protected void func_82421_b() {
+        this.field_82423_g = new LOTRModelDwarf(1.0f);
+        this.field_82425_h = new LOTRModelDwarf(0.5f);
+    }
+
+    @Override
+    public ResourceLocation getEntityTexture(Entity entity) {
+        CorruptDwarf dwarf = (CorruptDwarf)entity;
+        if (dwarf.familyInfo.isMale()) {
+            return skinsMale.getRandomSkin(dwarf);
+        }
+        return skinsMale.getRandomSkin(dwarf);
+    }
+}
diff --git a/src/main/java/com/zivilon/cinder_loe/client/render/corrupt/RenderCorruptElf.java b/src/main/java/com/zivilon/cinder_loe/client/render/corrupt/RenderCorruptElf.java
new file mode 100644
index 0000000..419b2fd
--- /dev/null
+++ b/src/main/java/com/zivilon/cinder_loe/client/render/corrupt/RenderCorruptElf.java
@@ -0,0 +1,41 @@
+package com.zivilon.cinder_loe.client.render.corrupt;
+
+import com.zivilon.cinder_loe.entity.corrupt.CorruptDwarf;
+import com.zivilon.cinder_loe.entity.corrupt.CorruptElf;
+import lotr.client.model.LOTRModelElf;
+import lotr.client.render.entity.LOTRRandomSkins;
+import lotr.client.render.entity.LOTRRenderBiped;
+import lotr.client.render.entity.LOTRRenderElf;
+import lotr.common.entity.LOTRRandomSkinEntity;
+import lotr.common.entity.npc.LOTREntityNPC;
+import net.minecraft.client.model.ModelBiped;
+import net.minecraft.entity.Entity;
+import net.minecraft.util.ResourceLocation;
+
+public class RenderCorruptElf extends LOTRRenderElf {
+    public static LOTRRandomSkins skinsMale;
+    public static LOTRRandomSkins skinsFemale;
+    private LOTRModelElf eyesModel = new LOTRModelElf(0.05f, 64, 64);
+    private LOTRModelElf outfitModel = new LOTRModelElf(0.6f, 64, 64);
+
+    public RenderCorruptElf() {
+        super();
+        skinsMale = LOTRRandomSkins.loadSkinsList("cinder_loe:mob/corrupt/elf_male");
+        skinsFemale = LOTRRandomSkins.loadSkinsList("cinder_loe:mob/corrupt/elf_female");
+    }
+
+    @Override
+    protected void func_82421_b() {
+        this.field_82423_g = new LOTRModelElf(1.0f);
+        this.field_82425_h = new LOTRModelElf(0.5f);
+    }
+    @Override
+    public ResourceLocation getEntityTexture(Entity entity) {
+        CorruptElf elf = (CorruptElf)entity;
+        if (((LOTREntityNPC)elf).familyInfo.isMale()) {
+            return skinsMale.getRandomSkin((LOTRRandomSkinEntity)elf);
+        }
+        return skinsFemale.getRandomSkin((LOTRRandomSkinEntity)elf);
+    }
+
+}
diff --git a/src/main/java/com/zivilon/cinder_loe/client/render/corrupt/RenderCorruptEnt.java b/src/main/java/com/zivilon/cinder_loe/client/render/corrupt/RenderCorruptEnt.java
new file mode 100644
index 0000000..b6275e7
--- /dev/null
+++ b/src/main/java/com/zivilon/cinder_loe/client/render/corrupt/RenderCorruptEnt.java
@@ -0,0 +1,45 @@
+package com.zivilon.cinder_loe.client.render.corrupt;
+
+import com.zivilon.cinder_loe.entity.corrupt.CorruptDwarf;
+import lotr.client.LOTRTextures;
+import lotr.client.model.LOTRModelDwarf;
+import lotr.client.model.LOTRModelEnt;
+import lotr.client.render.entity.LOTRGlowingEyes;
+import lotr.client.render.entity.LOTRRandomSkins;
+import lotr.client.render.entity.LOTRRenderBiped;
+import lotr.common.entity.npc.LOTREntityEnt;
+import lotr.common.entity.npc.LOTREntityTree;
+import net.minecraft.client.model.ModelBase;
+import net.minecraft.client.model.ModelBiped;
+import net.minecraft.client.renderer.entity.RenderLiving;
+import net.minecraft.entity.Entity;
+import net.minecraft.entity.EntityLivingBase;
+import net.minecraft.util.ResourceLocation;
+
+import java.util.HashMap;
+
+public class RenderCorruptEnt extends RenderLiving {
+    private static HashMap entTextures = new HashMap();
+    private LOTRModelEnt eyesModel = new LOTRModelEnt(0.05f);
+
+    public RenderCorruptEnt() {
+        super((ModelBase)new LOTRModelEnt(), 0.5f);
+    }
+
+    protected ResourceLocation getEntityTexture(Entity entity) {
+        int treeType = ((LOTREntityEnt)entity).getTreeType();
+        String s = "cinder_loe:mob/corrupt/ent/" + LOTREntityTree.TYPES[treeType] + ".png";
+        ResourceLocation r = (ResourceLocation)entTextures.get(treeType);
+        if (r == null) {
+            r = new ResourceLocation(s);
+            entTextures.put(treeType, r);
+        }
+        return r;
+    }
+
+    protected void renderModel(EntityLivingBase entity, float f, float f1, float f2, float f3, float f4, float f5) {
+        super.renderModel(entity, f, f1, f2, f3, f4, f5);
+        ResourceLocation eyes = LOTRTextures.getEyesTexture(this.getEntityTexture((Entity)entity), new int[][]{{15, 23}, {22, 23}}, 3, 2);
+        LOTRGlowingEyes.renderGlowingEyes((Entity)entity, eyes, this.eyesModel, f, f1, f2, f3, f4, f5);
+    }
+}
diff --git a/src/main/java/com/zivilon/cinder_loe/client/render/corrupt/RenderCorruptHobbit.java b/src/main/java/com/zivilon/cinder_loe/client/render/corrupt/RenderCorruptHobbit.java
new file mode 100644
index 0000000..116ced5
--- /dev/null
+++ b/src/main/java/com/zivilon/cinder_loe/client/render/corrupt/RenderCorruptHobbit.java
@@ -0,0 +1,42 @@
+package com.zivilon.cinder_loe.client.render.corrupt;
+
+import com.zivilon.cinder_loe.entity.corrupt.CorruptDwarf;
+import com.zivilon.cinder_loe.entity.corrupt.CorruptHobbit;
+import lotr.client.model.LOTRModelDwarf;
+import lotr.client.model.LOTRModelHobbit;
+import lotr.client.render.entity.LOTRRandomSkins;
+import lotr.client.render.entity.LOTRRenderBiped;
+import lotr.client.render.entity.LOTRRenderHobbit;
+import net.minecraft.client.model.ModelBase;
+import net.minecraft.client.model.ModelBiped;
+import net.minecraft.entity.Entity;
+import net.minecraft.entity.EntityLiving;
+import net.minecraft.util.ResourceLocation;
+
+public class RenderCorruptHobbit extends LOTRRenderHobbit {
+    public static LOTRRandomSkins hobbitSkinsMale;
+    public static LOTRRandomSkins hobbitSkinsFemale;
+    protected ModelBiped outfitModel = new LOTRModelHobbit(0.5f, 64, 64);
+
+    public RenderCorruptHobbit() {
+        super();
+        hobbitSkinsMale = LOTRRandomSkins.loadSkinsList("cinder_loe:mob/corrupt/hobbit_male");
+        hobbitSkinsFemale = LOTRRandomSkins.loadSkinsList("cinder_loe:mob/corrupt/hobbit_female");
+
+    }
+
+    @Override
+    protected void func_82421_b() {
+        this.field_82423_g = new LOTRModelHobbit(1.0f);
+        this.field_82425_h = new LOTRModelHobbit(0.5f);
+    }
+
+    @Override
+    public ResourceLocation getEntityTexture(Entity entity) {
+        CorruptHobbit dwarf = (CorruptHobbit) entity;
+        if (dwarf.familyInfo.isMale()) {
+            return hobbitSkinsMale.getRandomSkin(dwarf);
+        }
+        return hobbitSkinsFemale.getRandomSkin(dwarf);
+    }
+}
diff --git a/src/main/java/com/zivilon/cinder_loe/client/render/corrupt/RenderCorruptMan.java b/src/main/java/com/zivilon/cinder_loe/client/render/corrupt/RenderCorruptMan.java
new file mode 100644
index 0000000..eb187fd
--- /dev/null
+++ b/src/main/java/com/zivilon/cinder_loe/client/render/corrupt/RenderCorruptMan.java
@@ -0,0 +1,41 @@
+package com.zivilon.cinder_loe.client.render.corrupt;
+
+import com.zivilon.cinder_loe.entity.corrupt.CorruptElf;
+import com.zivilon.cinder_loe.entity.corrupt.CorruptMan;
+import lotr.client.model.LOTRModelElf;
+import lotr.client.model.LOTRModelHuman;
+import lotr.client.render.entity.*;
+import lotr.common.entity.LOTRRandomSkinEntity;
+import lotr.common.entity.npc.LOTREntityMan;
+import lotr.common.entity.npc.LOTREntityNPC;
+import net.minecraft.client.model.ModelBase;
+import net.minecraft.client.model.ModelBiped;
+import net.minecraft.entity.Entity;
+import net.minecraft.entity.EntityLiving;
+import net.minecraft.util.ResourceLocation;
+
+public class RenderCorruptMan extends LOTRRenderGondorMan {
+    public static LOTRRandomSkins skinsMale;
+    public static LOTRRandomSkins skinsFemale;
+    protected ModelBiped outfitModel = new LOTRModelHuman(0.6f, false);
+
+    public RenderCorruptMan() {
+        super();
+        skinsMale = LOTRRandomSkins.loadSkinsList("cinder_loe:mob/corrupt/human_male");
+        skinsFemale = LOTRRandomSkins.loadSkinsList("cinder_loe:mob/corrupt/human_female");
+    }
+
+    @Override
+    public ResourceLocation getEntityTexture(Entity entity) {
+        CorruptMan gondorian = (CorruptMan)entity;
+        if (gondorian.familyInfo.isMale()) {
+            return skinsMale.getRandomSkin(gondorian);
+        }
+        return skinsFemale.getRandomSkin(gondorian);
+    }
+    @Override
+    public int shouldRenderPass(EntityLiving entity, int pass, float f) {
+        CorruptMan dunedain = (CorruptMan)entity;
+        return super.shouldRenderPass((EntityLiving)dunedain, pass, f);
+    }
+}
diff --git a/src/main/java/com/zivilon/cinder_loe/client/render/corrupt/RenderCorruptOrc.java b/src/main/java/com/zivilon/cinder_loe/client/render/corrupt/RenderCorruptOrc.java
new file mode 100644
index 0000000..ae51dce
--- /dev/null
+++ b/src/main/java/com/zivilon/cinder_loe/client/render/corrupt/RenderCorruptOrc.java
@@ -0,0 +1,40 @@
+package com.zivilon.cinder_loe.client.render.corrupt;
+
+import com.zivilon.cinder_loe.entity.corrupt.CorruptDwarf;
+import com.zivilon.cinder_loe.entity.corrupt.CorruptOrc;
+import lotr.client.LOTRTextures;
+import lotr.client.model.LOTRModelDwarf;
+import lotr.client.model.LOTRModelOrc;
+import lotr.client.render.entity.LOTRRandomSkins;
+import lotr.client.render.entity.LOTRRenderBiped;
+import lotr.client.render.entity.LOTRRenderDwarf;
+import lotr.client.render.entity.LOTRRenderOrc;
+import net.minecraft.client.model.ModelBiped;
+import net.minecraft.entity.Entity;
+import net.minecraft.entity.EntityLivingBase;
+import net.minecraft.util.ResourceLocation;
+import org.lwjgl.opengl.GL11;
+
+public class RenderCorruptOrc extends LOTRRenderOrc {
+    private static LOTRRandomSkins orcSkins;
+    private static LOTRRandomSkins urukSkins;
+    private static LOTRRandomSkins blackUrukSkins;
+    private LOTRModelOrc eyesModel = new LOTRModelOrc(0.05f);
+
+    public RenderCorruptOrc() {
+        super();
+        orcSkins = LOTRRandomSkins.loadSkinsList("cinder_loe:mob/corrupt/orc");
+    }
+
+    @Override
+    protected void func_82421_b() {
+        this.field_82423_g = new LOTRModelOrc(1.0f);
+        this.field_82425_h = new LOTRModelOrc(0.5f);
+    }
+
+    @Override
+    public ResourceLocation getEntityTexture(Entity entity) {
+        CorruptOrc orc = (CorruptOrc)entity;
+        return orcSkins.getRandomSkin(orc);
+    }
+}
diff --git a/src/main/java/com/zivilon/cinder_loe/entity/Limwaith.java b/src/main/java/com/zivilon/cinder_loe/entity/Limwaith.java
index 8c7bad8..7dfaccc 100644
--- a/src/main/java/com/zivilon/cinder_loe/entity/Limwaith.java
+++ b/src/main/java/com/zivilon/cinder_loe/entity/Limwaith.java
@@ -32,6 +32,7 @@ import net.minecraft.init.Blocks;
 import net.minecraft.init.Items;
 import net.minecraft.item.ItemStack;
 import net.minecraft.util.MathHelper;
+import net.minecraft.util.MovingObjectPosition;
 import net.minecraft.util.StatCollector;
 import net.minecraft.world.World;
 import net.minecraft.world.biome.BiomeGenBase;
@@ -67,4 +68,8 @@ public class Limwaith extends LOTREntityMoredain {
         } 
         return "limwaith/moredain/hostile";
     }
+    @Override
+    public ItemStack getPickedResult(MovingObjectPosition target) {
+        return new ItemStack(CinderLoE.limwaithSpawnEgg, 1);
+    }
 }
\ No newline at end of file
diff --git a/src/main/java/com/zivilon/cinder_loe/entity/corrupt/CorruptDwarf.java b/src/main/java/com/zivilon/cinder_loe/entity/corrupt/CorruptDwarf.java
new file mode 100644
index 0000000..82a5714
--- /dev/null
+++ b/src/main/java/com/zivilon/cinder_loe/entity/corrupt/CorruptDwarf.java
@@ -0,0 +1,64 @@
+package com.zivilon.cinder_loe.entity.corrupt;
+
+import com.zivilon.cinder_loe.CinderLoE_Config;
+import lotr.common.LOTRFoods;
+import lotr.common.LOTRMod;
+import lotr.common.entity.ai.LOTREntityAIAttackOnCollide;
+import lotr.common.entity.npc.LOTREntityDwarf;
+import lotr.common.entity.npc.LOTREntityElf;
+import lotr.common.entity.npc.LOTRNames;
+import lotr.common.fac.LOTRFaction;
+import lotr.common.item.LOTRItemMug;
+import lotr.common.world.structure.LOTRChestContents;
+import net.minecraft.entity.EntityLivingBase;
+import net.minecraft.entity.IEntityLivingData;
+import net.minecraft.entity.SharedMonsterAttributes;
+import net.minecraft.entity.ai.EntityAIBase;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.item.Item;
+import net.minecraft.item.ItemStack;
+import net.minecraft.util.MovingObjectPosition;
+import net.minecraft.world.World;
+import net.minecraftforge.common.config.Configuration;
+
+import static com.zivilon.cinder_loe.CinderLoE_Config.config;
+
+public class CorruptDwarf extends LOTREntityDwarf {
+
+    @Override
+    public ItemStack getPickedResult(MovingObjectPosition target) {
+        return null;
+    }
+    public CorruptDwarf(World world) {
+        super(world);
+    }
+    @Override
+    public void setupNPCGender() {
+        this.familyInfo.setMale(true);
+    }
+    @Override
+    public void setupNPCName() {
+        this.familyInfo.setName(LOTRNames.getDwarfName(this.rand, this.familyInfo.isMale()));
+    }
+    @Override
+    public IEntityLivingData onSpawnWithEgg(IEntityLivingData data) {
+        data = super.onSpawnWithEgg(data);
+        return data;
+    }
+    @Override
+    public LOTRFaction getFaction() {
+        return LOTRFaction.valueOf(CinderLoE_Config.corrupt_faction);
+    }
+
+    @Override
+    protected float getSoundPitch() {
+        return super.getSoundPitch() * 0.65f;
+    }
+    @Override
+    public String getSpeechBank(EntityPlayer entityplayer) {
+        if (this.isFriendlyAndAligned(entityplayer)) {
+            return "corrupt/neutral";
+        }
+        return "corrupt/hostile";
+    }
+}
diff --git a/src/main/java/com/zivilon/cinder_loe/entity/corrupt/CorruptElf.java b/src/main/java/com/zivilon/cinder_loe/entity/corrupt/CorruptElf.java
new file mode 100644
index 0000000..a8c6dc7
--- /dev/null
+++ b/src/main/java/com/zivilon/cinder_loe/entity/corrupt/CorruptElf.java
@@ -0,0 +1,119 @@
+package com.zivilon.cinder_loe.entity.corrupt;
+
+import com.zivilon.cinder_loe.CinderLoE_Config;
+import lotr.common.LOTRFoods;
+import lotr.common.LOTRMod;
+import lotr.common.entity.ai.LOTREntityAIAttackOnCollide;
+import lotr.common.entity.npc.LOTREntityElf;
+import lotr.common.entity.npc.LOTREntityNPC;
+import lotr.common.entity.npc.LOTRNames;
+import lotr.common.fac.LOTRFaction;
+import lotr.common.item.LOTRItemMug;
+import lotr.common.world.structure.LOTRChestContents;
+import net.minecraft.entity.EntityLivingBase;
+import net.minecraft.entity.IEntityLivingData;
+import net.minecraft.entity.ai.EntityAIBase;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.item.ItemStack;
+import net.minecraft.util.MovingObjectPosition;
+import net.minecraft.world.World;
+
+public class CorruptElf  extends LOTREntityElf {
+    private LOTRFaction faction;
+    @Override
+    public ItemStack getPickedResult(MovingObjectPosition target) {
+        return null;
+    }
+    public CorruptElf(World world) {
+        super(world);
+    }
+    @Override
+    protected LOTRFoods getElfDrinks() {
+        return LOTRFoods.ORC_DRINK;
+    }
+    @Override
+    protected EntityAIBase createElfMeleeAttackAI() {
+        return new LOTREntityAIAttackOnCollide(this, 1.5, false);
+    }
+    @Override
+    protected EntityAIBase createElfRangedAttackAI() {
+        return this.createElfMeleeAttackAI();
+    }
+
+    @Override
+    public void setupNPCName() {
+        this.familyInfo.setName(LOTRNames.getSindarinName(this.rand, this.familyInfo.isMale()));
+    }
+    @Override
+    public IEntityLivingData onSpawnWithEgg(IEntityLivingData data) {
+        data = super.onSpawnWithEgg(data);
+        return data;
+    }
+
+    @Override
+    protected void onAttackModeChange(LOTREntityNPC.AttackMode mode, boolean mounted) {
+        if (mode == LOTREntityNPC.AttackMode.IDLE) {
+            this.tasks.removeTask(this.meleeAttackAI);
+            this.tasks.removeTask(this.rangedAttackAI);
+            this.setCurrentItemOrArmor(0, this.npcItemsInv.getIdleItem());
+        } else {
+            this.tasks.removeTask(this.meleeAttackAI);
+            this.tasks.removeTask(this.rangedAttackAI);
+            this.tasks.addTask(2, this.meleeAttackAI);
+            this.setCurrentItemOrArmor(0, this.npcItemsInv.getMeleeWeapon());
+        }
+    }
+    @Override
+    public LOTRFaction getFaction() {
+        return LOTRFaction.valueOf(CinderLoE_Config.corrupt_faction);
+    }
+    @Override
+    public float getAlignmentBonus() {
+        return 0.0f;
+    }
+
+    @Override
+    protected void dropElfItems(boolean flag, int i) {
+    }
+    @Override
+    protected void dropFewItems(boolean flag, int i) {
+    }
+
+    @Override
+    public boolean canElfSpawnHere() {
+        return false;
+    }
+    @Override
+    public String getSpeechBank(EntityPlayer entityplayer) {
+        if (this.isFriendlyAndAligned(entityplayer)) {
+            return "corrupt/neutral";
+        }
+        return "corrupt/hostile";
+    }
+
+    @Override
+    public void attackEntityWithRangedAttack(EntityLivingBase p_82196_1_, float p_82196_2_) {
+    }
+    @Override
+    protected float getSoundPitch() {
+        return super.getSoundPitch() * 0.65f;
+    }
+    @Override
+    public String getHurtSound() {
+        return "lotr:orc.hurt";
+    }
+    @Override
+    public String getDeathSound() {
+        return "lotr:orc.death";
+    }
+
+    @Override
+    public String getAttackSound() {
+        return "lotr:orc.attack";
+    }
+    @Override
+    public void onKillEntity(EntityLivingBase entity) {
+        super.onKillEntity(entity);
+        this.playSound("lotr:orc.kill", this.getSoundVolume(), this.getSoundPitch());
+    }
+}
diff --git a/src/main/java/com/zivilon/cinder_loe/entity/corrupt/CorruptEnt.java b/src/main/java/com/zivilon/cinder_loe/entity/corrupt/CorruptEnt.java
new file mode 100644
index 0000000..3773fbf
--- /dev/null
+++ b/src/main/java/com/zivilon/cinder_loe/entity/corrupt/CorruptEnt.java
@@ -0,0 +1,50 @@
+package com.zivilon.cinder_loe.entity.corrupt;
+
+import com.zivilon.cinder_loe.CinderLoE_Config;
+import lotr.common.LOTRFoods;
+import lotr.common.LOTRMod;
+import lotr.common.entity.ai.LOTREntityAIAttackOnCollide;
+import lotr.common.entity.npc.LOTREntityDwarf;
+import lotr.common.entity.npc.LOTREntityEnt;
+import lotr.common.entity.npc.LOTREntityTree;
+import lotr.common.entity.npc.LOTRNames;
+import lotr.common.fac.LOTRFaction;
+import net.minecraft.entity.EntityLivingBase;
+import net.minecraft.entity.IEntityLivingData;
+import net.minecraft.entity.ai.EntityAIBase;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.item.ItemStack;
+import net.minecraft.util.MovingObjectPosition;
+import net.minecraft.world.World;
+
+import java.util.Random;
+
+public class CorruptEnt extends LOTREntityEnt {
+    private LOTRFaction faction;
+    @Override
+    public ItemStack getPickedResult(MovingObjectPosition target) {
+        return null;
+    }
+
+    public CorruptEnt(World world) {
+        super(world);
+    }
+    @Override
+    public LOTRFaction getFaction() {
+        return LOTRFaction.valueOf(CinderLoE_Config.corrupt_faction);
+    }
+    @Override
+    public IEntityLivingData onSpawnWithEgg(IEntityLivingData data) {
+        data = super.onSpawnWithEgg(data);
+        return data;
+    }
+    @Override
+    public float getAlignmentBonus() {
+        return 0.0f;
+    }
+    @Override
+    protected void dropFewItems(boolean flag, int i) {
+        super.dropFewItems(flag, i);
+    }
+}
+
diff --git a/src/main/java/com/zivilon/cinder_loe/entity/corrupt/CorruptHobbit.java b/src/main/java/com/zivilon/cinder_loe/entity/corrupt/CorruptHobbit.java
new file mode 100644
index 0000000..f7dbbab
--- /dev/null
+++ b/src/main/java/com/zivilon/cinder_loe/entity/corrupt/CorruptHobbit.java
@@ -0,0 +1,95 @@
+package com.zivilon.cinder_loe.entity.corrupt;
+
+import lotr.common.LOTRAchievement;
+import lotr.common.LOTRFoods;
+import lotr.common.LOTRMod;
+import lotr.common.entity.ai.LOTREntityAIAttackOnCollide;
+import lotr.common.entity.npc.LOTREntityDwarf;
+import lotr.common.entity.npc.LOTREntityHobbit;
+import lotr.common.entity.npc.LOTREntityHobbitBounder;
+import lotr.common.entity.npc.LOTRNames;
+import lotr.common.fac.LOTRFaction;
+import lotr.common.item.LOTRItemLeatherHat;
+import lotr.common.world.structure.LOTRChestContents;
+import net.minecraft.entity.EntityLivingBase;
+import net.minecraft.entity.IEntityLivingData;
+import net.minecraft.entity.ai.EntityAIBase;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.item.ItemStack;
+import net.minecraft.util.MovingObjectPosition;
+import net.minecraft.world.World;
+
+public class CorruptHobbit extends LOTREntityHobbitBounder {
+    private LOTRFaction faction;
+    public CorruptHobbit(World world) {
+        super(world);
+        this.spawnRidingHorse = false;
+    }
+    @Override
+    public ItemStack getPickedResult(MovingObjectPosition target) {
+        return null;
+    }
+    @Override
+    public IEntityLivingData onSpawnWithEgg(IEntityLivingData data) {
+        return null;
+    }
+    @Override
+    protected LOTRFoods getHobbitFoods() {
+        return LOTRFoods.ORC;
+    }
+    @Override
+    protected LOTRFoods getHobbitDrinks() {
+        return LOTRFoods.ORC_DRINK;
+    }
+    @Override
+    public float getAlignmentBonus() {
+        return 0.0f;
+    }
+
+    @Override
+    public boolean getCanSpawnHere() {
+        return false;
+    }
+
+    @Override
+    public float getBlockPathWeight(int i, int j, int k) {
+        float f = 0.0f;
+        return f;
+    }
+    @Override
+    public LOTRFaction getFaction() {
+        return this.faction != null ? this.faction : LOTRFaction.UTUMNO;
+    }
+    @Override
+    protected float getSoundPitch() {
+        return super.getSoundPitch() * 1.5f;
+    }
+    @Override
+    public String getHurtSound() {
+        return "lotr:orc.hurt";
+    }
+    @Override
+    public String getDeathSound() {
+        return "lotr:orc.death";
+    }
+
+    @Override
+    public String getAttackSound() {
+        return "lotr:orc.attack";
+    }
+
+    @Override
+    public String getSpeechBank(EntityPlayer entityplayer) {
+        if (this.isFriendlyAndAligned(entityplayer)) {
+            return "corrupt/neutral";
+        }
+        return "corrupt/hostile";
+    }
+    @Override
+    protected void dropFewItems(boolean flag, int i) {
+    }
+
+    protected void dropHobbitItems(boolean flag, int i) {
+    }
+
+}
diff --git a/src/main/java/com/zivilon/cinder_loe/entity/corrupt/CorruptMan.java b/src/main/java/com/zivilon/cinder_loe/entity/corrupt/CorruptMan.java
new file mode 100644
index 0000000..f3ac4a0
--- /dev/null
+++ b/src/main/java/com/zivilon/cinder_loe/entity/corrupt/CorruptMan.java
@@ -0,0 +1,110 @@
+package com.zivilon.cinder_loe.entity.corrupt;
+
+import com.zivilon.cinder_loe.CinderLoE;
+import com.zivilon.cinder_loe.CinderLoE_Config;
+import lotr.common.LOTRFoods;
+import lotr.common.LOTRMod;
+import lotr.common.entity.ai.*;
+import lotr.common.entity.npc.*;
+import lotr.common.fac.LOTRFaction;
+import lotr.common.quest.LOTRMiniQuest;
+import lotr.common.quest.LOTRMiniQuestFactory;
+import net.minecraft.entity.*;
+import net.minecraft.entity.ai.*;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.item.ItemStack;
+import net.minecraft.util.MovingObjectPosition;
+import net.minecraft.util.StatCollector;
+import net.minecraft.world.World;
+
+public class CorruptMan extends LOTREntityGondorMan {
+
+    public CorruptMan(World world) {
+        super(world);
+        this.addTargetTasks(true);
+    }
+    @Override
+    public ItemStack getPickedResult(MovingObjectPosition target) {
+        return null;
+    }
+    @Override
+    protected EntityAIBase createGondorAttackAI() {
+        return new LOTREntityAIAttackOnCollide(this, 1.45, true);
+    }
+
+    @Override
+    public void setupNPCName() {
+        this.familyInfo.setName(LOTRNames.getGondorName(this.rand, this.familyInfo.isMale()));
+    }
+
+    @Override
+    public IEntityLivingData onSpawnWithEgg(IEntityLivingData data) {
+        return null;
+    }
+
+    @Override
+    public LOTRFaction getFaction() {
+        return LOTRFaction.valueOf(CinderLoE_Config.corrupt_faction);
+    }
+
+    @Override
+    public String getNPCName() {
+        return this.familyInfo.getName();
+    }
+    @Override
+    public float getAlignmentBonus() {
+        return 0.0f;
+    }
+
+    @Override
+    public boolean getCanSpawnHere() {
+        return false;
+    }
+
+    @Override
+    public float getBlockPathWeight(int i, int j, int k) {
+        float f = 0.0f;
+        return f;
+    }
+    @Override
+    protected float getSoundPitch() {
+        return super.getSoundPitch() * 0.65f;
+    }
+    @Override
+    public String getHurtSound() {
+        return "lotr:orc.hurt";
+    }
+    @Override
+    public String getDeathSound() {
+        return "lotr:orc.death";
+    }
+
+    @Override
+    public String getAttackSound() {
+        return "lotr:orc.attack";
+    }
+    @Override
+    public String getSpeechBank(EntityPlayer entityplayer) {
+        if (this.isFriendlyAndAligned(entityplayer)) {
+            return "corrupt/neutral";
+        }
+        return "corrupt/hostile";
+    }
+    @Override
+    public LOTRMiniQuest createMiniQuest() {
+        return null;
+    }
+
+    @Override
+    public LOTRMiniQuestFactory getBountyHelpSpeechDir() {
+        return null;
+    }
+
+    @Override
+    public void attackEntityWithRangedAttack(EntityLivingBase p_82196_1_, float p_82196_2_) {
+    }
+    @Override
+    protected void dropFewItems(boolean flag, int i) {
+
+    }
+}
diff --git a/src/main/java/com/zivilon/cinder_loe/entity/corrupt/CorruptOrc.java b/src/main/java/com/zivilon/cinder_loe/entity/corrupt/CorruptOrc.java
new file mode 100644
index 0000000..2b7e6a0
--- /dev/null
+++ b/src/main/java/com/zivilon/cinder_loe/entity/corrupt/CorruptOrc.java
@@ -0,0 +1,85 @@
+package com.zivilon.cinder_loe.entity.corrupt;
+
+import com.zivilon.cinder_loe.CinderLoE;
+import com.zivilon.cinder_loe.CinderLoE_Config;
+import lotr.common.LOTRFoods;
+import lotr.common.LOTRMod;
+import lotr.common.entity.ai.LOTREntityAIAttackOnCollide;
+import lotr.common.entity.npc.LOTREntityDwarf;
+import lotr.common.entity.npc.LOTREntityOrc;
+import lotr.common.entity.npc.LOTRNames;
+import lotr.common.fac.LOTRFaction;
+import net.minecraft.entity.EntityLivingBase;
+import net.minecraft.entity.IEntityLivingData;
+import net.minecraft.entity.SharedMonsterAttributes;
+import net.minecraft.entity.ai.EntityAIBase;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.item.ItemStack;
+import net.minecraft.util.MovingObjectPosition;
+import net.minecraft.world.World;
+
+public class CorruptOrc extends LOTREntityOrc {
+    private LOTRFaction faction;
+    public CorruptOrc(World world) {
+        super(world);
+    }
+    @Override
+    public ItemStack getPickedResult(MovingObjectPosition target) {
+        return null;
+    }
+    @Override
+    public EntityAIBase createOrcAttackAI() {
+        return new LOTREntityAIAttackOnCollide(this, 1.4, false);
+    }
+    @Override
+    protected void applyEntityAttributes() {
+        super.applyEntityAttributes();
+        this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(20.0);
+    }
+
+    @Override
+    public LOTRFaction getFaction() {
+        return LOTRFaction.valueOf(CinderLoE_Config.corrupt_faction);
+    }
+
+    @Override
+    public String getHurtSound() {
+        return "lotr:orc.hurt";
+    }
+    @Override
+    public String getDeathSound() {
+        return "lotr:orc.death";
+    }
+
+    @Override
+    public String getAttackSound() {
+        return "lotr:orc.attack";
+    }
+    @Override
+    public void onKillEntity(EntityLivingBase entity) {
+        super.onKillEntity(entity);
+        this.playSound("lotr:orc.kill", this.getSoundVolume(), this.getSoundPitch());
+    }
+    @Override
+    public String getSpeechBank(EntityPlayer entityplayer) {
+        if (this.isFriendlyAndAligned(entityplayer)) {
+            return "corrupt/neutral";
+        }
+        return "corrupt/hostile";
+    }
+    @Override
+    public float getAlignmentBonus() {
+        return 0.0f;
+    }
+
+    @Override
+    public void attackEntityWithRangedAttack(EntityLivingBase p_82196_1_, float p_82196_2_) {
+
+    }
+    @Override
+    protected void dropFewItems(boolean flag, int i) {
+    }
+    @Override
+    protected void dropOrcItems(boolean flag, int i) {
+    }
+}
diff --git a/src/main/java/com/zivilon/cinder_loe/items/VoidDagger.java b/src/main/java/com/zivilon/cinder_loe/items/VoidDagger.java
new file mode 100644
index 0000000..96f7c06
--- /dev/null
+++ b/src/main/java/com/zivilon/cinder_loe/items/VoidDagger.java
@@ -0,0 +1,177 @@
+package com.zivilon.cinder_loe.items;
+
+import com.zivilon.cinder_loe.entity.corrupt.*;
+import lotr.common.LOTRLevelData;
+import lotr.common.entity.npc.*;
+import lotr.common.fac.LOTRFaction;
+import lotr.common.item.LOTRItemDagger;
+import lotr.common.item.LOTRItemSword;
+import lotr.common.item.LOTRMaterial;
+import lotr.common.item.LOTRWeaponStats;
+import net.minecraft.entity.Entity;
+import net.minecraft.entity.EntityLivingBase;
+import net.minecraft.entity.IEntityLivingData;
+import net.minecraft.entity.monster.EntityZombie;
+import net.minecraft.entity.passive.EntityVillager;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.init.Items;
+import net.minecraft.item.EnumAction;
+import net.minecraft.item.Item;
+import net.minecraft.item.ItemStack;
+import net.minecraft.potion.Potion;
+import net.minecraft.potion.PotionEffect;
+import net.minecraft.world.EnumDifficulty;
+import net.minecraft.world.World;
+
+public class VoidDagger extends LOTRItemDagger {
+    public VoidDagger(LOTRMaterial material) {
+        super(material);
+    }
+    private LOTRFaction getFaction(EntityPlayer player) {
+        LOTRFaction faction = LOTRLevelData.getData(player).getPledgeFaction();
+        if (faction == null) {
+            faction = LOTRFaction.RUFFIAN;
+        }
+        return faction;
+    }
+
+    @Override
+    public boolean hitEntity(ItemStack itemstack, EntityLivingBase target, EntityLivingBase attacker) {
+        itemstack.damageItem(1, attacker);
+
+        // Check if the target is dead and call the onKillEntity method
+        if (target.getHealth() <= 0.0F) {
+            onKillEntity(target, attacker);
+        }
+
+        return true;
+    }
+    public void onKillEntity(EntityLivingBase entityKilled, EntityLivingBase killer) {
+        if (killer instanceof EntityPlayer) {
+            EntityPlayer player = (EntityPlayer) killer;
+            LOTRFaction faction = getFaction(player);
+            entityKilled.worldObj.playSoundAtEntity(player, "mob.zombie.unfect", 1F,1F);
+
+            if (!entityKilled.worldObj.isRemote && entityKilled instanceof LOTREntityOrc) {
+                CorruptOrc corruptOrc = new CorruptOrc(entityKilled.worldObj);
+                corruptOrc.copyLocationAndAnglesFrom(entityKilled);
+
+                for (int i = 0; i < 4; i++) {
+                    ItemStack armor = entityKilled.getEquipmentInSlot(i + 1); // Armor slots
+                    corruptOrc.setCurrentItemOrArmor(i + 1, armor);
+                }
+
+                ItemStack mainWeapon = ((LOTREntityOrc) entityKilled).npcItemsInv.getMeleeWeapon(); // Main hand weapon
+                corruptOrc.npcItemsInv.setIdleItem(mainWeapon);
+                corruptOrc.npcItemsInv.setMeleeWeapon(mainWeapon);
+                corruptOrc.setHealth(10);
+                corruptOrc.addPotionEffect(new PotionEffect(Potion.regeneration.id, 9999, 0));
+
+                entityKilled.worldObj.removeEntity(entityKilled);
+                corruptOrc.onSpawnWithEgg((IEntityLivingData) null);
+
+                entityKilled.worldObj.spawnEntityInWorld(corruptOrc);
+                entityKilled.worldObj.playAuxSFXAtEntity(null, 1016, (int) corruptOrc.posX, (int) corruptOrc.posY, (int) corruptOrc.posZ, 0);
+
+            }
+            if (!entityKilled.worldObj.isRemote && entityKilled instanceof LOTREntityMan && !(entityKilled instanceof LOTREntityHobbit)) {
+
+                    CorruptMan entity = new CorruptMan(entityKilled.worldObj);
+                    entity.copyLocationAndAnglesFrom(entityKilled);
+
+                    for (int i = 0; i < 4; i++) {
+                        ItemStack armor = entityKilled.getEquipmentInSlot(i + 1); // Armor slots
+                        entity.setCurrentItemOrArmor(i + 1, armor);
+                    }
+
+                    ItemStack mainWeapon = ((LOTREntityMan) entityKilled).npcItemsInv.getMeleeWeapon(); // Main hand weapon
+                    entity.npcItemsInv.setIdleItem(mainWeapon);
+                    entity.npcItemsInv.setMeleeWeapon(mainWeapon);
+                    entity.setHealth(10);
+                    entity.addPotionEffect(new PotionEffect(Potion.regeneration.id, 9999, 0));
+
+                    entityKilled.worldObj.removeEntity(entityKilled);
+                    entity.onSpawnWithEgg((IEntityLivingData) null);
+
+                    entityKilled.worldObj.spawnEntityInWorld(entity);
+                    entityKilled.worldObj.playAuxSFXAtEntity(null, 1016, (int) entity.posX, (int) entity.posY, (int) entity.posZ, 0);
+                }
+            }
+            if (entityKilled instanceof LOTREntityHobbit) {
+                CorruptHobbit entity = new CorruptHobbit(entityKilled.worldObj);
+                entity.copyLocationAndAnglesFrom(entityKilled);
+
+                for (int i = 0; i < 4; i++) {
+                    ItemStack armor = entityKilled.getEquipmentInSlot(i + 1); // Armor slots
+                    entity.setCurrentItemOrArmor(i + 1, armor);
+                }
+
+                ItemStack mainWeapon = ((LOTREntityHobbit) entityKilled).npcItemsInv.getMeleeWeapon(); // Main hand weapon
+                entity.npcItemsInv.setIdleItem(mainWeapon);
+                entity.npcItemsInv.setMeleeWeapon(mainWeapon);
+                entity.setHealth(10);
+                entity.addPotionEffect(new PotionEffect(Potion.regeneration.id, 9999, 0));
+
+                entityKilled.worldObj.removeEntity(entityKilled);
+                entity.onSpawnWithEgg((IEntityLivingData) null);
+
+                entityKilled.worldObj.spawnEntityInWorld(entity);
+                entityKilled.worldObj.playAuxSFXAtEntity(null, 1016, (int) entity.posX, (int) entity.posY, (int) entity.posZ, 0);
+            }
+            if (!entityKilled.worldObj.isRemote && entityKilled instanceof LOTREntityEnt) {
+                CorruptEnt entity = new CorruptEnt(entityKilled.worldObj);
+                entity.copyLocationAndAnglesFrom(entityKilled);
+
+                entityKilled.worldObj.removeEntity(entityKilled);
+                entity.onSpawnWithEgg((IEntityLivingData) null);
+                entity.setHealth(10);
+                entity.addPotionEffect(new PotionEffect(Potion.regeneration.id, 9999, 0));
+
+                entityKilled.worldObj.spawnEntityInWorld(entity);
+                entityKilled.worldObj.playAuxSFXAtEntity(null, 1016, (int) entity.posX, (int) entity.posY, (int) entity.posZ, 0);
+            }
+            if (!entityKilled.worldObj.isRemote && entityKilled instanceof LOTREntityElf) {
+                CorruptElf entity = new CorruptElf(entityKilled.worldObj);
+                entity.copyLocationAndAnglesFrom(entityKilled);
+
+                for (int i = 0; i < 4; i++) {
+                    ItemStack armor = entityKilled.getEquipmentInSlot(i + 1); // Armor slots
+                    entity.setCurrentItemOrArmor(i + 1, armor);
+                }
+                entity.setHealth(10);
+                entity.addPotionEffect(new PotionEffect(Potion.regeneration.id, 9999, 0));
+
+                ItemStack mainWeapon = ((LOTREntityElf) entityKilled).npcItemsInv.getMeleeWeapon(); // Main hand weapon
+                entity.npcItemsInv.setIdleItem(mainWeapon);
+                entity.npcItemsInv.setMeleeWeapon(mainWeapon);
+
+                entityKilled.worldObj.removeEntity(entityKilled);
+                entity.onSpawnWithEgg((IEntityLivingData) null);
+
+                entityKilled.worldObj.spawnEntityInWorld(entity);
+                entityKilled.worldObj.playAuxSFXAtEntity(null, 1016, (int) entity.posX, (int) entity.posY, (int) entity.posZ, 0);
+            }
+            if (!entityKilled.worldObj.isRemote && entityKilled instanceof LOTREntityDwarf) {
+                CorruptDwarf entity = new CorruptDwarf(entityKilled.worldObj);
+                entity.copyLocationAndAnglesFrom(entityKilled);
+
+
+                for (int i = 0; i < 4; i++) {
+                    ItemStack armor = entityKilled.getEquipmentInSlot(i + 1); // Armor slots
+                    entity.setCurrentItemOrArmor(i + 1, armor);
+                }
+
+                ItemStack mainWeapon = ((LOTREntityDwarf) entityKilled).npcItemsInv.getMeleeWeapon(); // Main hand weapon
+                entity.npcItemsInv.setIdleItem(mainWeapon);
+                entity.npcItemsInv.setMeleeWeapon(mainWeapon);
+                entity.setHealth(10);
+                entity.addPotionEffect(new PotionEffect(Potion.regeneration.id, 9999, 0));
+
+                entityKilled.worldObj.removeEntity(entityKilled);
+                entity.onSpawnWithEgg((IEntityLivingData) null);
+
+                entityKilled.worldObj.spawnEntityInWorld(entity);
+                entityKilled.worldObj.playAuxSFXAtEntity(null, 1016, (int) entity.posX, (int) entity.posY, (int) entity.posZ, 0);
+            }
+    }
+}
diff --git a/src/main/java/com/zivilon/cinder_loe/items/WoodElfRelic.java b/src/main/java/com/zivilon/cinder_loe/items/WoodElfRelic.java
index d976c27..60e0fe1 100644
--- a/src/main/java/com/zivilon/cinder_loe/items/WoodElfRelic.java
+++ b/src/main/java/com/zivilon/cinder_loe/items/WoodElfRelic.java
@@ -22,7 +22,7 @@ import net.minecraft.world.World;
 
 import java.util.List;
 
-public class WoodElfRelic extends WizardStaff  {
+public class WoodElfRelic extends WizardStaff {
     public WoodElfRelic() {
         super();
     }
@@ -30,31 +30,38 @@ public class WoodElfRelic extends WizardStaff  {
 
     public ItemStack onEaten(ItemStack itemstack, World world, EntityPlayer entityplayer) {
         entityplayer.swingItem();
-        itemstack.damageItem(2, (EntityLivingBase)entityplayer);
-        world.playSoundAtEntity((Entity)entityplayer, "lotr:elf.woodElf_teleport", 2.0F, (Item.itemRand.nextFloat() - Item.itemRand.nextFloat()) * 0.2F + 1.0F);
-        LOTRFaction faction = LOTRFaction.WOOD_ELF;
+        itemstack.damageItem(2, (EntityLivingBase) entityplayer);
+        world.playSoundAtEntity((Entity) entityplayer, "lotr:elf.woodElf_teleport", 2.0F, (Item.itemRand.nextFloat() - Item.itemRand.nextFloat()) * 0.2F + 1.0F);
+        LOTRFaction faction = LOTRLevelData.getData(entityplayer).getPledgeFaction();
+        LOTRFaction woodElfFaction = LOTRFaction.WOOD_ELF;
+
         if (!world.isRemote) {
-            List<EntityLivingBase> entities = world.getEntitiesWithinAABB(EntityLivingBase.class, ((Entity)entityplayer).boundingBox.expand(12.0D, 8.0D, 12.0D));
-            if (!entities.isEmpty())
-                for (int i = 0; i < entities.size(); i++) {
-                    EntityLivingBase entity = entities.get(i);
+            List<EntityLivingBase> entities = world.getEntitiesWithinAABB(EntityLivingBase.class, ((Entity) entityplayer).boundingBox.expand(12.0D, 8.0D, 12.0D));
+            if (!entities.isEmpty()) {
+                for (EntityLivingBase entity : entities) {
                     if (entity != entityplayer) {
                         if (entity instanceof EntityLiving) {
-                            EntityLiving entityliving = (EntityLiving)entity;
-                            if (!faction.isGoodRelation(LOTRMod.getNPCFaction((Entity)entityliving)))
-                                continue; 
-                        } 
-                        if (entity instanceof EntityPlayer)
-                            if (!MinecraftServer.getServer().isPVPEnabled() || LOTRLevelData.getData((EntityPlayer)entity).getAlignment(faction) < 0.0F)
-                                continue; 
+                            EntityLiving entityliving = (EntityLiving) entity;
+                            if (LOTRMod.getNPCFaction((Entity) entityliving) != woodElfFaction) {
+                                continue;
+                            }
+                        }
+
+                        if (entity instanceof EntityPlayer) {
+                            if (!MinecraftServer.getServer().isPVPEnabled() || LOTRLevelData.getData((EntityPlayer) entity).getAlignment(faction) < 0.0F) {
+                                continue;
+                            }
+                        }
 
                         entity.addPotionEffect(new PotionEffect(Potion.moveSpeed.id, 1200, 0));
                         entity.addPotionEffect(new PotionEffect(Potion.damageBoost.id, 1200, 0));
                     }
                 }
-            LOTRPacketWeaponFX packet = new LOTRPacketWeaponFX(LOTRPacketWeaponFX.Type.MACE_SAURON, (Entity)entityplayer);
-            LOTRPacketHandler.networkWrapper.sendToAllAround((IMessage)packet, LOTRPacketHandler.nearEntity((Entity)entityplayer, 64.0D));
-        } 
+            }
+
+            LOTRPacketWeaponFX packet = new LOTRPacketWeaponFX(LOTRPacketWeaponFX.Type.MACE_SAURON, (Entity) entityplayer);
+            LOTRPacketHandler.networkWrapper.sendToAllAround((IMessage) packet, LOTRPacketHandler.nearEntity((Entity) entityplayer, 64.0D));
+        }
         return itemstack;
     }
 }
\ No newline at end of file
diff --git a/src/main/resources/assets/cinder_loe/lang/en_US.lang b/src/main/resources/assets/cinder_loe/lang/en_US.lang
index d17c784..98eeaa9 100644
--- a/src/main/resources/assets/cinder_loe/lang/en_US.lang
+++ b/src/main/resources/assets/cinder_loe/lang/en_US.lang
@@ -21,6 +21,7 @@ tile.lotr:voidblock.name=Void
 
 item.lotr:frostblade.name=Frostblade
 item.lotr:whip.name=Whip
+item.lotr:daggerVoid.name=Voidal Dagger
 item.lotr:spearsolidgold.name=Solid Gold Spear
 item.lotr:helmetRedDwarf.name=Red Dwarven Helmet
 item.lotr:bodyRedDwarf.name=Red Dwarven Chestplate
@@ -91,6 +92,8 @@ item.lotr:bowAsh.name=Ash-Forged Bow
 item.lotr:pikeAsh.name=Ash-Forged Pike
 item.lotr:spearAsh.name=Ash-Forged Spear
 
+item.lotr:banner.redDwarf.name=Banner of the Orocani
+
 item.spawn_egg_fangornauroch.name=Spawn Fangorn Auroch
 item.spawn_egg_fangornbear.name=Spawn Fangorn Bear
 item.spawn_egg_fangornwildboar.name=Spawn Fangorn Wild Boar
@@ -124,6 +127,14 @@ item.spawn_egg_limwaithshaman.name=Spawn Limwaith Shaman
 item.spawn_egg_limwaithfishmonger.name=Spawn Limwaith Fishmonger
 item.spawn_egg_limwaithbonewarrior.name=Spawn Limwaith Warrior
 
+entity.cinder_loe.CorruptMan.name=Corrupt Man
+entity.cinder_loe.CorruptDwarf.name=Corrupt Dwarf
+entity.cinder_loe.CorruptElf.name=Corrupt Elf
+entity.cinder_loe.CorruptEnt.name=Corrupt Ent
+entity.cinder_loe.CorruptHobit.name=Corrupt Hobbit
+entity.cinder_loe.CorruptOrc.name=Corrupt Orc
+
+
 entity.cinder_loe.RedDwarfSmith.name=Red Dwarf Smith
 entity.cinder_loe.RedDwarfWarrior.name=Red Dwarf Warrior
 entity.cinder_loe.RedDwarfArbalest.name=Red Dwarf Arbalest
diff --git a/src/main/resources/assets/cinder_loe/speech/corrupt/hostile.txt b/src/main/resources/assets/cinder_loe/speech/corrupt/hostile.txt
new file mode 100644
index 0000000..3154ef4
--- /dev/null
+++ b/src/main/resources/assets/cinder_loe/speech/corrupt/hostile.txt
@@ -0,0 +1,10 @@
+Bow before the dark!
+Beg for your gods to save you!
+Stay back, or I'll be forced to attack you!
+I don't have any choice! I'm Sorry!
+I don't want to do this!
+Soon you will know the cold of death...
+The darkness consumes all...
+You will serve in death...
+You cannot escape the void...
+Submit... that is the only option...
\ No newline at end of file
diff --git a/src/main/resources/assets/cinder_loe/speech/corrupt/neutral.txt b/src/main/resources/assets/cinder_loe/speech/corrupt/neutral.txt
new file mode 100644
index 0000000..77f5e8a
--- /dev/null
+++ b/src/main/resources/assets/cinder_loe/speech/corrupt/neutral.txt
@@ -0,0 +1,10 @@
+Serve the darkness, obey the master.
+The endless darkness creeps for us all...
+In shadows, we find our purpose.
+We are one with the void.
+Our will is bound, our souls are lost.
+The master commands, we obey.
+Our minds are bound, our spirits broken.
+The light fades, the dark remains.
+No thoughts of our own, only the master's will.
+
diff --git a/src/main/resources/assets/lotr/textures/items/daggerVoid.png b/src/main/resources/assets/lotr/textures/items/daggerVoid.png
new file mode 100644
index 0000000..7efb611
Binary files /dev/null and b/src/main/resources/assets/lotr/textures/items/daggerVoid.png differ
diff --git a/src/main/resources/assets/lotr/textures/items/daggerVoid.png.mcmeta b/src/main/resources/assets/lotr/textures/items/daggerVoid.png.mcmeta
new file mode 100644
index 0000000..7f18a4d
--- /dev/null
+++ b/src/main/resources/assets/lotr/textures/items/daggerVoid.png.mcmeta
@@ -0,0 +1,77 @@
+{
+  "animation": {
+    "frames": [
+      0,
+      0,
+      0,
+      1,
+      1,
+      1,
+      2,
+      2,
+      2,
+      3,
+      3,
+      3,
+      4,
+      4,
+      4,
+      5,
+      5,
+      5,
+      6,
+      6,
+      6,
+      7,
+      7,
+      7,
+      7,
+      7,
+      7,
+      7,
+      7,
+      7,
+      7,
+      7,
+      7,
+      7,
+      7,
+      7,
+      7,
+      7,
+      7,
+      7,
+      7,
+      7,
+      7,
+      7,
+      7,
+      7,
+      7,
+      7,
+      7,
+      7,
+      7,
+      7,
+      7,
+      7,
+      7,
+      7,
+      7,
+      7,
+      7,
+      7,
+      7,
+      7,
+      7,
+      7,
+      7,
+      7,
+      7,
+      7,
+      7,
+      7,
+      7      
+    ]
+  }
+}
