diff --git a/src/main/java/com/comandante/creeper/managers/GameManager.java b/src/main/java/com/comandante/creeper/managers/GameManager.java
index 215f741d70c0e6410a7e49ef65a1f532551798ae..a3af98697c22b79b54d6cf912a498fbe3c008ca8 100755
--- a/src/main/java/com/comandante/creeper/managers/GameManager.java
+++ b/src/main/java/com/comandante/creeper/managers/GameManager.java
@@ -414,6 +414,7 @@ public class GameManager {
         StringBuilder sb = new StringBuilder();
         // passing an empty createState because of the "difference calculation"
         sb.append(Color.MAGENTA + "-+=[ " + Color.RESET).append(npc.getColorName()).append(Color.MAGENTA + " ]=+- " + Color.RESET).append("\r\n");
+        sb.append("Level: " + npc.getLevel()).append("\r\n");
         sb.append(Color.MAGENTA + "Stats--------------------------------" + Color.RESET).append("\r\n");
         sb.append(buildLookString(npc.getColorName(), npc.getStats(), new StatsBuilder().createStats())).append("\r\n");
         if (npc.getEffects() != null && npc.getEffects().size() > 0) {
diff --git a/src/main/java/com/comandante/creeper/npc/BasicNpcLevelStatsModifier.java b/src/main/java/com/comandante/creeper/npc/BasicNpcLevelStatsModifier.java
new file mode 100644
index 0000000000000000000000000000000000000000..994866c552a554f56b52e22519cc0462b1871399
--- /dev/null
+++ b/src/main/java/com/comandante/creeper/npc/BasicNpcLevelStatsModifier.java
@@ -0,0 +1,102 @@
+package com.comandante.creeper.npc;
+
+import com.comandante.creeper.managers.GameManager;
+import com.comandante.creeper.player.Levels;
+import com.comandante.creeper.player.Player;
+import com.comandante.creeper.player.PlayerMetadata;
+import com.comandante.creeper.player.StatsModifier;
+import com.comandante.creeper.stat.Stats;
+import com.comandante.creeper.stat.StatsBuilder;
+
+import static java.lang.Math.pow;
+import static java.lang.StrictMath.sqrt;
+
+
+public class BasicNpcLevelStatsModifier  implements StatsModifier {
+
+    private final GameManager gameManager;
+
+    public BasicNpcLevelStatsModifier(GameManager gameManager) {
+        this.gameManager = gameManager;
+    }
+
+    private static double MELE_CONSTANT_MODIFIER = 1.01;
+    private static double WILLPOWER_CONSTANT_MODIFIER = 1.01;
+    private static double AGILE_CONSTANT_MODIFIER = 1.01;
+    private static double AIM_CONSTANT_MODIFIER = 1.01;
+    private static double HEALTH_CONSTANT_MODIFIER = 4;
+    private static double ARMOR_CONSTANT_MODIFIER = 1.01;
+    private static double STRENGTH_CONSTANT_MODIFIER = 1.4;
+    private static double MANA_CONSTANT_MODIFIER = 2;
+
+    public static long getMeleForLevel(long baseStat, long level) {
+        double v = (level) * sqrt(pow(level, MELE_CONSTANT_MODIFIER));
+        return (long) Math.floor(v) + baseStat;
+    }
+
+    public static long getWillpowerForLevel(long baseStat, long level) {
+        double v = (level) * sqrt(pow(level, WILLPOWER_CONSTANT_MODIFIER));
+        return (long) Math.floor(v) + baseStat;
+    }
+
+    public static long getAgileForLevel(long baseStat, long level) {
+        double v = (level) * sqrt(pow(level, AGILE_CONSTANT_MODIFIER));
+        return (long) Math.floor(v) + baseStat;
+    }
+
+    public static long getAimForLevel(long baseStat, long level) {
+        double v = (level) * sqrt(pow(level, AIM_CONSTANT_MODIFIER));
+        return (long) Math.floor(v) + baseStat;
+    }
+
+    public static long getStrengthForLevel(long baseStat, long level) {
+        double v = (level) * sqrt(pow(level, STRENGTH_CONSTANT_MODIFIER));
+        return (long) Math.floor(v) + baseStat;
+    }
+
+    public static long getArmorForLevel(long baseStat, long level) {
+        double v = (level) * sqrt(pow(level, ARMOR_CONSTANT_MODIFIER));
+        return (long) Math.floor(v) + baseStat;
+    }
+
+    public static long getHealthForLevel(long baseStat, long level) {
+        double v = (level) * sqrt(pow(level, HEALTH_CONSTANT_MODIFIER));
+        return (long) Math.floor(v) + baseStat;
+    }
+
+    public static long getManaForLevel(long baseStat, long level) {
+        double v = (level) * sqrt(pow(level, MANA_CONSTANT_MODIFIER));
+        return (long) Math.floor(v) + baseStat;
+    }
+
+    @Override
+    public Stats modify(Npc npc) {
+        Stats baseStats = npc.getBaseStats();
+        long level = Levels.getLevel(baseStats.getExperience());
+        long newMaxHealth = getHealthForLevel(baseStats.getMaxHealth(), level);
+        long newArmorRating = getArmorForLevel(baseStats.getArmorRating(), level);
+        long newStrengthRating = getStrengthForLevel(baseStats.getStrength(), level);
+        long newMaxMana = getManaForLevel(baseStats.getMaxMana(), level);
+        long newAimRating = getAimForLevel(baseStats.getAim(), level);
+        long newWillpowerRating = getWillpowerForLevel(baseStats.getWillpower(), level);
+        long newAgileRating = getAgileForLevel(baseStats.getAgile(), level);
+        long newMeleRating = getMeleForLevel(baseStats.getMeleSkill(), level);
+        StatsBuilder statsBuilder = new StatsBuilder(baseStats);
+        statsBuilder.setMaxHealth(newMaxHealth);
+        statsBuilder.setArmorRating(newArmorRating);
+        statsBuilder.setStrength(newStrengthRating);
+        statsBuilder.setMaxMana(newMaxMana);
+        statsBuilder.setAim(newAimRating);
+        statsBuilder.setWillpower(newWillpowerRating);
+        statsBuilder.setAgile(newAgileRating);
+        statsBuilder.setMeleSkill(newMeleRating);
+        statsBuilder.setCurrentHealth(baseStats.getCurrentHealth());
+        statsBuilder.setCurrentMana(baseStats.getCurrentMana());
+        return statsBuilder.createStats();
+    }
+
+    @Override
+    public Stats modify(Player player) {
+        return null;
+    }
+}
\ No newline at end of file
diff --git a/src/main/java/com/comandante/creeper/npc/Npc.java b/src/main/java/com/comandante/creeper/npc/Npc.java
index b9399300841661b2eecb5e6064066b6b7192bdba..41913f252752995716819006361cfe246fe254bf 100644
--- a/src/main/java/com/comandante/creeper/npc/Npc.java
+++ b/src/main/java/com/comandante/creeper/npc/Npc.java
@@ -41,6 +41,7 @@ public class Npc extends CreeperEntity {
     private long lastPhraseTimestamp;
     private final GameManager gameManager;
     private final String name;
+    private final long level;
     private final String colorName;
     private final Stats stats;
     private final String dieMessage;
@@ -60,9 +61,10 @@ public class Npc extends CreeperEntity {
     private final Random random = new Random();
 
 
-    protected Npc(GameManager gameManager, String name, String colorName, long lastPhraseTimestamp, Stats stats, String dieMessage, Set<Area> roamAreas, Set<String> validTriggers, Loot loot, Set<SpawnRule> spawnRules) {
+    protected Npc(GameManager gameManager, String name, long level, String colorName, long lastPhraseTimestamp, Stats stats, String dieMessage, Set<Area> roamAreas, Set<String> validTriggers, Loot loot, Set<SpawnRule> spawnRules) {
         this.gameManager = gameManager;
         this.name = name;
+        this.level = level;
         this.colorName = colorName;
         this.lastPhraseTimestamp = lastPhraseTimestamp;
         this.stats = stats;
@@ -119,6 +121,10 @@ public class Npc extends CreeperEntity {
         }
     }
 
+    public long getLevel() {
+        return level;
+    }
+
     private boolean getRandPercent(double percent) {
         double rangeMin = 0;
         double rangeMax = 100;
@@ -164,6 +170,10 @@ public class Npc extends CreeperEntity {
     }
 
     public Stats getStats() {
+        return gameManager.getStatsModifierFactory().getStatsModifier(this);
+    }
+
+    public Stats getBaseStats(){
         return stats;
     }
 
@@ -293,19 +303,19 @@ public class Npc extends CreeperEntity {
                             gameManager.getChannelUtils().write(npcStatsChange.getPlayer().getPlayerId(), message + "\r\n", true);
                         }
                     }
-                    StatsHelper.combineStats(getStats(), npcStatsChange.getStats());
+                    StatsHelper.combineStats(getBaseStats(), npcStatsChange.getStats());
                     long amt = npcStatsChange.getStats().getCurrentHealth();
                     long damageReportAmt = -npcStatsChange.getStats().getCurrentHealth();
-                    if (getStats().getCurrentHealth() < 0) {
-                        damageReportAmt = -amt + getStats().getCurrentHealth();
-                        getStats().setCurrentHealth(0);
+                    if (getBaseStats().getCurrentHealth() < 0) {
+                        damageReportAmt = -amt + getBaseStats().getCurrentHealth();
+                        getBaseStats().setCurrentHealth(0);
                     }
                     long damage = 0;
                     if (getPlayerDamageMap().containsKey(npcStatsChange.getPlayer().getPlayerId())) {
                         damage = getPlayerDamageMap().get(npcStatsChange.getPlayer().getPlayerId());
                     }
                     addDamageToMap(npcStatsChange.getPlayer().getPlayerId(), damage + damageReportAmt);
-                    if (getStats().getCurrentHealth() == 0) {
+                    if (getBaseStats().getCurrentHealth() == 0) {
                         killNpc(npcStatsChange.getPlayer());
                         return;
                     }
diff --git a/src/main/java/com/comandante/creeper/npc/NpcAdapter.java b/src/main/java/com/comandante/creeper/npc/NpcAdapter.java
index a2727f5abd5bc5c6974a5b35a5bf76bcef3b04d1..a19fc8103f81d4ebac30c5c6b6646d7d4340b7db 100644
--- a/src/main/java/com/comandante/creeper/npc/NpcAdapter.java
+++ b/src/main/java/com/comandante/creeper/npc/NpcAdapter.java
@@ -28,6 +28,7 @@ public class NpcAdapter extends TypeAdapter<Npc> {
     public void write(JsonWriter jsonWriter, Npc npc) throws IOException {
         jsonWriter.beginObject();
         jsonWriter.name("name").value(npc.getName());
+        jsonWriter.name("level").value(npc.getLevel());
         jsonWriter.name("colorName").value(npc.getColorName());
         jsonWriter.name("dieMessage").value(npc.getDieMessage());
 
@@ -102,6 +103,8 @@ public class NpcAdapter extends TypeAdapter<Npc> {
         jsonReader.nextName();
         final String npcName = jsonReader.nextString();
         jsonReader.nextName();
+        final long level = jsonReader.nextLong();
+        jsonReader.nextName();
         final String npcColorName = jsonReader.nextString();
         jsonReader.nextName();
         final String npcDieMessage = jsonReader.nextString();
@@ -207,6 +210,7 @@ public class NpcAdapter extends TypeAdapter<Npc> {
                 .setDieMessage(npcDieMessage)
                 .setLoot(loot)
                 .setName(npcName)
+                .setLevel(level)
                 .setRoamAreas(roamAreas)
                 .setSpawnRules(spawnRules)
                 .setStats(statsBuilder.createStats())
diff --git a/src/main/java/com/comandante/creeper/npc/NpcBuilder.java b/src/main/java/com/comandante/creeper/npc/NpcBuilder.java
index 642bc5482ba9dfcd4453f62eef8811a83789470b..8d4dff69e7fa87146583b650d401a54f7af14bbd 100644
--- a/src/main/java/com/comandante/creeper/npc/NpcBuilder.java
+++ b/src/main/java/com/comandante/creeper/npc/NpcBuilder.java
@@ -11,6 +11,7 @@ import java.util.Set;
 public class NpcBuilder {
     private GameManager gameManager;
     private String name;
+    private long level;
     private String colorName;
     private long lastPhraseTimestamp;
     private Stats stats;
@@ -25,6 +26,7 @@ public class NpcBuilder {
 
     public NpcBuilder(Npc npc) {
         this.name = npc.getName();
+        this.level = npc.getLevel();
         this.colorName = npc.getColorName();
         this.lastPhraseTimestamp = npc.getLastPhraseTimestamp();
         this.stats = new Stats(npc.getStats());
@@ -46,6 +48,11 @@ public class NpcBuilder {
         return this;
     }
 
+    public NpcBuilder setLevel(long level) {
+        this.level = level;
+        return this;
+    }
+
     public NpcBuilder setColorName(String colorName) {
         this.colorName = colorName;
         return this;
@@ -87,6 +94,6 @@ public class NpcBuilder {
     }
 
     public Npc createNpc() {
-        return new Npc(gameManager, name, colorName, lastPhraseTimestamp, stats, dieMessage, roamAreas, validTriggers, loot, spawnRules);
+        return new Npc(gameManager, name, level, colorName, lastPhraseTimestamp, stats, dieMessage, roamAreas, validTriggers, loot, spawnRules);
     }
 }
\ No newline at end of file
diff --git a/src/main/java/com/comandante/creeper/player/BasicPlayerLevelStatsModifier.java b/src/main/java/com/comandante/creeper/player/BasicPlayerLevelStatsModifier.java
index bd62876923a7155295f50eadf884d68f3a6c5298..72642560dcd69d480f41209cf053c601bcc6823b 100644
--- a/src/main/java/com/comandante/creeper/player/BasicPlayerLevelStatsModifier.java
+++ b/src/main/java/com/comandante/creeper/player/BasicPlayerLevelStatsModifier.java
@@ -1,6 +1,7 @@
 package com.comandante.creeper.player;
 
 import com.comandante.creeper.managers.GameManager;
+import com.comandante.creeper.npc.Npc;
 import com.comandante.creeper.stat.Stats;
 import com.comandante.creeper.stat.StatsBuilder;
 
@@ -90,4 +91,9 @@ public class BasicPlayerLevelStatsModifier implements StatsModifier {
         statsBuilder.setCurrentMana(baseStats.getCurrentMana());
         return statsBuilder.createStats();
     }
+
+    @Override
+    public Stats modify(Npc npc) {
+        return null;
+    }
 }
\ No newline at end of file
diff --git a/src/main/java/com/comandante/creeper/player/ExperienceManager.java b/src/main/java/com/comandante/creeper/player/ExperienceManager.java
index 632f5c9d19cc1901e13bc7fa8c80faca536fad56..5269af8068b29fa1789d88c808759dd45ce46bab 100644
--- a/src/main/java/com/comandante/creeper/player/ExperienceManager.java
+++ b/src/main/java/com/comandante/creeper/player/ExperienceManager.java
@@ -1,5 +1,94 @@
 package com.comandante.creeper.player;
 
+import com.comandante.creeper.npc.Npc;
+
 public class ExperienceManager {
 
+    // http://wowwiki.wikia.com/wiki/Formulas:Mob_XP
+
+    enum ExperienceType {
+        RED,
+        ORANGE,
+        YELLOW,
+        GREEN,
+        GRAY;
+    }
+
+    private ExperienceType getExperienceType(Npc npc, Player player) {
+        long npcLevel = npc.getLevel();
+        long playerLevel = player.getLevel();
+        if (npcLevel >= (playerLevel + 5)) {
+            return ExperienceType.RED;
+        } else if ((npcLevel == (playerLevel + 3)) || npcLevel == (playerLevel + 4)) {
+            return ExperienceType.ORANGE;
+        } else if ((npcLevel == (playerLevel + 2)) || (npcLevel == (playerLevel - 2))) {
+            return ExperienceType.YELLOW;
+        } else if ((npcLevel <= (playerLevel - 3)) && npcLevel > getGrayLevel(playerLevel)) {
+            return ExperienceType.GREEN;
+        }
+        return ExperienceType.GRAY;
+    }
+
+    public static long getGrayLevel(long playerLevel) {
+        if (playerLevel >= 1 && playerLevel <= 5) {
+            // All Mobs Give XP.
+            return 0;
+        } else if (playerLevel >= 6 && playerLevel <= 49) {
+            double v = playerLevel - Math.floor(playerLevel / 10) - 5;
+            return (long) v;
+        } else if (playerLevel == 50) {
+            return playerLevel - 10;
+        } else if (playerLevel >= 51 && playerLevel <= 59) {
+            double v = playerLevel - Math.floor(playerLevel / 5) - 1;
+            return (long) v;
+        } else if (playerLevel >= 60 && playerLevel <= 70) {
+            return playerLevel - 9;
+        } else {
+            return 0;
+        }
+    }
+
+    private static long getZeroDifference(long playerLevel) {
+        if (playerLevel >= 1 && playerLevel <= 7){
+            return 5;
+        } else if (playerLevel >= 8 && playerLevel <= 9) {
+            return 6;
+        } else if (playerLevel >= 10 && playerLevel <= 11) {
+            return 7;
+        } else if (playerLevel >= 12 && playerLevel <= 15) {
+            return 8;
+        } else if (playerLevel >= 16 && playerLevel <= 19) {
+            return 9;
+        } else if (playerLevel >= 20 && playerLevel <= 29) {
+            return 11;
+        } else if (playerLevel >= 30 && playerLevel <= 39) {
+            return 12;
+        } else if (playerLevel >= 40 && playerLevel <= 44) {
+            return 13;
+        } else if (playerLevel >= 45 && playerLevel <= 49) {
+            return 14;
+        } else if (playerLevel >= 50 && playerLevel <= 54) {
+            return 15;
+        } else if (playerLevel >= 55 && playerLevel <= 59) {
+            return 16;
+        } else if (playerLevel >= 60 && playerLevel <= 79) {
+            return 17;
+        } else {
+            return 18;
+        }
+
+    }
+
+
+    public static void main(String[] args) {
+        for (int i = 0; i < 70; i++) {
+            System.out.println("Level: " + i + " Gray Level: " + getGrayLevel(i) + " zero-difference:" + getZeroDifference(i) );
+        }
+    }
+
+    //public long getBasicExperienceGained(Npc npc, Player player) {
+     //   long level = player.getLevel();
+
+//    }
+
 }
diff --git a/src/main/java/com/comandante/creeper/player/Player.java b/src/main/java/com/comandante/creeper/player/Player.java
index 38b6960cef30f133228fdec4db0703ec53f211ea..c409f3a2bc629c20ffd9cd3f587e41999d84149f 100755
--- a/src/main/java/com/comandante/creeper/player/Player.java
+++ b/src/main/java/com/comandante/creeper/player/Player.java
@@ -728,6 +728,11 @@ public class Player extends CreeperEntity {
         }
     }
 
+    public long getLevel() {
+        Stats origStats = gameManager.getStatsModifierFactory().getStatsModifier(this);
+        return Levels.getLevel(origStats.getExperience());
+    }
+
     public String getLookString() {
         StringBuilder sb = new StringBuilder();
         Stats origStats = gameManager.getStatsModifierFactory().getStatsModifier(this);
diff --git a/src/main/java/com/comandante/creeper/player/StatsModifier.java b/src/main/java/com/comandante/creeper/player/StatsModifier.java
index c1b4e9687cb18af2bf8b70ff703dbc72dfd83c20..cfff526d0fdcfb4888ad8edcf16a37695fc62c60 100644
--- a/src/main/java/com/comandante/creeper/player/StatsModifier.java
+++ b/src/main/java/com/comandante/creeper/player/StatsModifier.java
@@ -1,9 +1,11 @@
 package com.comandante.creeper.player;
 
+import com.comandante.creeper.npc.Npc;
 import com.comandante.creeper.stat.Stats;
 
 public interface StatsModifier {
 
     public Stats modify(Player player);
 
+    public Stats modify(Npc npc);
 }
diff --git a/src/main/java/com/comandante/creeper/player/StatsModifierFactory.java b/src/main/java/com/comandante/creeper/player/StatsModifierFactory.java
index 4a321c0e172a7fa10da61febfaa7b7518a479081..018824fa0322c770eccf2ffb0cbea0e5074e3c3d 100644
--- a/src/main/java/com/comandante/creeper/player/StatsModifierFactory.java
+++ b/src/main/java/com/comandante/creeper/player/StatsModifierFactory.java
@@ -2,6 +2,8 @@ package com.comandante.creeper.player;
 
 
 import com.comandante.creeper.managers.GameManager;
+import com.comandante.creeper.npc.BasicNpcLevelStatsModifier;
+import com.comandante.creeper.npc.Npc;
 import com.comandante.creeper.stat.Stats;
 
 public class StatsModifierFactory {
@@ -16,4 +18,9 @@ public class StatsModifierFactory {
         BasicPlayerLevelStatsModifier basicPlayerLevelStatsModifier = new BasicPlayerLevelStatsModifier(gameManager);
         return basicPlayerLevelStatsModifier.modify(player);
     }
+
+    public Stats getStatsModifier(Npc npc) {
+        BasicNpcLevelStatsModifier basicNpcLevelStatsModifier = new BasicNpcLevelStatsModifier(gameManager);
+        return basicNpcLevelStatsModifier.modify(npc);
+    }
 }
diff --git a/world/npcs/allah.json b/world/npcs/allah.json
deleted file mode 100755
index 2d0ffeb584ac1756002b62a015044d1e7246d0ec..0000000000000000000000000000000000000000
--- a/world/npcs/allah.json
+++ /dev/null
@@ -1,41 +0,0 @@
-{
-  "name": "allah",
-  "colorName": "\u001B[1m\u001B[35mallah\u001B[0m",
-  "dieMessage": "ALLAH U AHKBAR! \u001B[1m\u001B[35mallah\u001B[0m has died and promises to seek vengeance.",
-  "loot": {
-    "lootGoldMin": 300000,
-    "lootGoldMax": 600000,
-    "lootItems": []
-  },
-  "roamAreas": [
-    "tisland3_zone",
-    "tisland4_zone"
-  ],
-  "stats": {
-    "agile": 400,
-    "aim": 400,
-    "armorRating": 1440,
-    "currentHealth": 300000,
-    "currentMana": 300000,
-    "experience": 250000,
-    "maxHealth": 300000,
-    "maxMana": 300000,
-    "meleSkill": 2400,
-    "numberOfWeaponRolls": 15,
-    "strength": 4000,
-    "weaponRatingMax": 4000,
-    "weaponRatingMin": 2300,
-    "willPower": 4000
-  },
-  "spawnAreas": {
-    "tisland10_zone": {
-      "randomChance": 90,
-      "maxPerRoom": 1,
-      "spawnIntervalTicks": 600,
-      "maxInstances": 1
-    } 
-  },
-  "validTriggers": [
-    "allah"
-  ]
-}
diff --git a/world/npcs/alpinetiger.json b/world/npcs/alpinetiger.json
deleted file mode 100644
index 51c301221a8001cc87fab8f9c98cd36b2ea553e9..0000000000000000000000000000000000000000
--- a/world/npcs/alpinetiger.json
+++ /dev/null
@@ -1,51 +0,0 @@
-{
-  "name": "alpine tiger",
-  "colorName": "alpine \u001B[1m\u001B[35mtiger\u001B[0m",
-  "dieMessage": "the alpine \u001B[1m\u001B[35mtiger\u001B[0m falls to the ground and convulses in death.",
-  "loot": {
-    "lootGoldMin": 31000000,
-    "lootGoldMax": 36000000,
-    "lootItems": [76]
-  },
-  "roamAreas": [
-    "bloodridge12_zone",
-    "bloodridge13_zone"
-  ],
-  "stats": {
-    "agile": 10000,
-    "aim": 12000,
-    "armorRating": 41000,
-    "currentHealth": 2000000,
-    "currentMana": 1200000,
-    "experience": 16000000,
-    "maxHealth": 2500000,
-    "maxMana": 800000,
-    "meleSkill": 110000,
-    "numberOfWeaponRolls": 20,
-    "strength": 110000,
-    "weaponRatingMax": 150000,
-    "weaponRatingMin": 70000,
-    "willPower": 30000
-  },
-  "spawnAreas": {
-    "bloodridge12_zone": {
-      "randomChance": 90,
-      "maxPerRoom": 1,
-      "spawnIntervalTicks": 600,
-      "maxInstances": 1
-    }, 
-    "bloodridge13_zone": {
-      "randomChance": 90,
-      "maxPerRoom": 1,
-      "spawnIntervalTicks": 600,
-      "maxInstances": 1
-    } 
-  },
-  "validTriggers": [
-    "alpine tiger",
-    "a",
-    "t",
-    "alpine",
-    "tiger"
-  ]
-}
diff --git a/world/npcs/alpineyeti.json b/world/npcs/alpineyeti.json
deleted file mode 100644
index aa275c731a7bedbcc7bac45365a897e127291edc..0000000000000000000000000000000000000000
--- a/world/npcs/alpineyeti.json
+++ /dev/null
@@ -1,51 +0,0 @@
-{
-  "name": "alpine yeti",
-  "colorName": "alpine \u001B[1m\u001B[35myeti\u001B[0m",
-  "dieMessage": "alpine yeti \u001B[1m\u001B[35mbiggers\u001B[0m breathes his last breath in a pool of \u001B[1m\u001B[31mblood\u001B[0m",
-  "loot": {
-    "lootGoldMin": 35000,
-    "lootGoldMax": 50000,
-    "lootItems": [55, 56]
-  },
-  "roamAreas": [
-    "bloodridge8_zone",
-    "bloodridge9_zone"
-  ],
-  "stats": {
-    "agile": 70,
-    "aim": 70,
-    "armorRating": 500,
-    "currentHealth": 65000,
-    "currentMana": 100,
-    "experience": 90000,
-    "maxHealth": 600,
-    "maxMana": 100,
-    "meleSkill": 400,
-    "numberOfWeaponRolls": 5,
-    "strength": 800,
-    "weaponRatingMax": 700,
-    "weaponRatingMin": 500,
-    "willPower": 16
-  },
-  "spawnAreas": {
-    "bloodridge8_zone": {
-      "randomChance": 100,
-      "maxPerRoom": 1,
-      "spawnIntervalTicks": 600,
-      "maxInstances": 3
-    }, 
-    "bloodridge9_zone": {
-      "randomChance": 100,
-      "maxPerRoom": 1,
-      "spawnIntervalTicks": 600,
-      "maxInstances": 2
-    } 
-  },
-  "validTriggers": [
-    "alpine yeti",
-    "a",
-    "alpine",
-    "y",
-    "yeti"
-  ]
-}
diff --git a/world/npcs/amarok.json b/world/npcs/amarok.json
deleted file mode 100644
index ee49226c9cfda8759463282d9367bd14f0c35151..0000000000000000000000000000000000000000
--- a/world/npcs/amarok.json
+++ /dev/null
@@ -1,42 +0,0 @@
-{
-  "name": "amarok",
-  "colorName": "\u001B[1m\u001B[35mamarok\u001B[0m",
-  "dieMessage": "the \u001B[1m\u001B[35mamarok\u001B[0m collapses to its death and its spirit vanishes into the shadows.",
-  "loot": {
-    "lootGoldMin": 500000,
-    "lootGoldMax": 800000,
-    "lootItems": [57]
-  },
-  "roamAreas": [
-    "bloodridge10_zone",
-    "bloodridge11_zone"
-  ],
-  "stats": {
-    "agile": 500,
-    "aim": 500,
-    "armorRating": 1840,
-    "currentHealth": 400000,
-    "currentMana": 400000,
-    "experience": 400000,
-    "maxHealth": 400000,
-    "maxMana": 400000,
-    "meleSkill": 3000,
-    "numberOfWeaponRolls": 15,
-    "strength": 6000,
-    "weaponRatingMax": 6000,
-    "weaponRatingMin": 4300,
-    "willPower": 4000
-  },
-  "spawnAreas": {
-    "bloodridge10_zone": {
-      "randomChance": 90,
-      "maxPerRoom": 1,
-      "spawnIntervalTicks": 600,
-      "maxInstances": 1
-    } 
-  },
-  "validTriggers": [
-    "amarok",
-    "a"
-  ]
-}
diff --git a/world/npcs/ancientberserker.json b/world/npcs/ancientberserker.json
deleted file mode 100644
index 88ac345fd02c409c812f7c4de22715953586e9e6..0000000000000000000000000000000000000000
--- a/world/npcs/ancientberserker.json
+++ /dev/null
@@ -1,51 +0,0 @@
-{
-  "name": "ancient berserker",
-  "colorName": "ancient \u001B[1m\u001B[35mberserker\u001B[0m",
-  "dieMessage": "the ancient \u001B[1m\u001B[35mberserker\u001B[0m falls to the ground and convulses in death.",
-  "loot": {
-    "lootGoldMin": 42000000,
-    "lootGoldMax": 52000000,
-    "lootItems": [80]
-  },
-  "roamAreas": [
-    "bloodridge14_zone",
-    "bloodridge15_zone"
-  ],
-  "stats": {
-    "agile": 13000,
-    "aim": 16000,
-    "armorRating": 82000,
-    "currentHealth": 4000000,
-    "currentMana": 2400000,
-    "experience": 24000000,
-    "maxHealth": 5000000,
-    "maxMana": 1600000,
-    "meleSkill": 140000,
-    "numberOfWeaponRolls": 20,
-    "strength": 160000,
-    "weaponRatingMax": 180000,
-    "weaponRatingMin": 80000,
-    "willPower": 80000
-  },
-  "spawnAreas": {
-    "bloodridge14_zone": {
-      "randomChance": 90,
-      "maxPerRoom": 1,
-      "spawnIntervalTicks": 600,
-      "maxInstances": 1
-    }, 
-    "bloodridge15_zone": {
-      "randomChance": 90,
-      "maxPerRoom": 1,
-      "spawnIntervalTicks": 600,
-      "maxInstances": 1
-    } 
-  },
-  "validTriggers": [
-    "ancient",
-    "a",
-    "b",
-    "berserker",
-    "ancient berserker"
-  ]
-}
diff --git a/world/npcs/apocalypticdruid.json b/world/npcs/apocalypticdruid.json
deleted file mode 100644
index a3cec740bef1c6170affcec6dbc08edef062137d..0000000000000000000000000000000000000000
--- a/world/npcs/apocalypticdruid.json
+++ /dev/null
@@ -1,51 +0,0 @@
-{
-  "name": "apocalyptic druid",
-  "colorName": "apocalyptic \u001B[1m\u001B[35mdruid\u001B[0m",
-  "dieMessage": "the apocalyptic \u001B[1m\u001B[35mdruid\u001B[0m falls to the ground and convulses in death.",
-  "loot": {
-    "lootGoldMin": 225000000,
-    "lootGoldMax": 300000000,
-    "lootItems": [85]
-  },
-  "roamAreas": [
-    "tisland8_zone",
-    "tisland9_zone"
-  ],
-  "stats": {
-    "agile": 63000,
-    "aim": 81000,
-    "armorRating": 380000,
-    "currentHealth": 15000000,
-    "currentMana": 9000000,
-    "experience": 120000000,
-    "maxHealth": 18000000,
-    "maxMana": 7200000,
-    "meleSkill": 630000,
-    "numberOfWeaponRolls": 50,
-    "strength": 1000000,
-    "weaponRatingMax": 1050000,
-    "weaponRatingMin": 930000,
-    "willPower": 400000
-  },
-  "spawnAreas": {
-    "tisland8_zone": {
-      "randomChance": 90,
-      "maxPerRoom": 1,
-      "spawnIntervalTicks": 600,
-      "maxInstances": 1
-    }, 
-    "tisland9_zone": {
-      "randomChance": 90,
-      "maxPerRoom": 1,
-      "spawnIntervalTicks": 600,
-      "maxInstances": 1
-    } 
-  },
-  "validTriggers": [
-    "apocalyptic druid",
-    "a",
-    "d",
-    "apocalyptic",
-    "druid"
-  ]
-}
diff --git a/world/npcs/banshee.json b/world/npcs/banshee.json
deleted file mode 100644
index 6df2d74a5efe8adcb4e2f6761ab1a5a11d03259c..0000000000000000000000000000000000000000
--- a/world/npcs/banshee.json
+++ /dev/null
@@ -1,48 +0,0 @@
-{
-  "name": "banshee",
-  "colorName": "\u001B[1m\u001B[35mbanshee\u001B[0m",
-  "dieMessage": "a \u001B[1m\u001B[35mbanshee\u001B[0m lets out a blood curdling scream as it collapses and dies.",
-  "loot": {
-    "lootGoldMin": 600000,
-    "lootGoldMax": 920000,
-    "lootItems": [58]
-  },
-  "roamAreas": [
-    "south2_zone",
-    "south3_zone"
-  ],
-  "stats": {
-    "agile": 700,
-    "aim": 700,
-    "armorRating": 3000,
-    "currentHealth": 300000,
-    "currentMana": 300000,
-    "experience": 250000,
-    "maxHealth": 300000,
-    "maxMana": 300000,
-    "meleSkill": 4000,
-    "numberOfWeaponRolls": 15,
-    "strength": 5300,
-    "weaponRatingMax": 6300,
-    "weaponRatingMin": 2300,
-    "willPower": 4000
-  },
-  "spawnAreas": {
-    "south2_zone": {
-      "randomChance": 90,
-      "maxPerRoom": 1,
-      "spawnIntervalTicks": 600,
-      "maxInstances": 4
-    }, 
-    "south3_zone": {
-      "randomChance": 90,
-      "maxPerRoom": 1,
-      "spawnIntervalTicks": 600,
-      "maxInstances": 1
-    }  
-  },
-  "validTriggers": [
-    "banshee",
-    "b"
-  ]
-}
diff --git a/world/npcs/basilisk.json b/world/npcs/basilisk.json
deleted file mode 100644
index 1d4d6079686333e9f205707fce4af2c95f11a4aa..0000000000000000000000000000000000000000
--- a/world/npcs/basilisk.json
+++ /dev/null
@@ -1,48 +0,0 @@
-{
-  "name": "basilisk",
-  "colorName": "\u001B[1m\u001B[35mbasilisk\u001B[0m",
-  "dieMessage": "the \u001B[1m\u001B[35mbasilisk\u001B[0m falls to the ground and convulses in death.",
-  "loot": {
-    "lootGoldMin": 800000000,
-    "lootGoldMax": 1000000000,
-    "lootItems": [108]
-  },
-  "roamAreas": [
-    "north14_zone",
-    "north15_zone"
-  ],
-  "stats": {
-    "agile": 180000,
-    "aim": 178000,
-    "armorRating": 750000,
-    "currentHealth": 34000000,
-    "currentMana": 22000000,
-    "experience": 220000000,
-    "maxHealth": 34000000,
-    "maxMana": 12000000,
-    "meleSkill": 1400000,
-    "numberOfWeaponRolls": 80,
-    "strength": 1350000,
-    "weaponRatingMax": 2200000,
-    "weaponRatingMin": 1300000,
-    "willPower": 1100000
-  },
-  "spawnAreas": {
-    "north14_zone": {
-      "randomChance": 90,
-      "maxPerRoom": 1,
-      "spawnIntervalTicks": 600,
-      "maxInstances": 1
-    }, 
-    "north15_zone": {
-      "randomChance": 90,
-      "maxPerRoom": 1,
-      "spawnIntervalTicks": 600,
-      "maxInstances": 1
-    } 
-  },
-  "validTriggers": [
-    "basilisk",
-    "b"
-  ]
-}
diff --git a/world/npcs/bergorc.json b/world/npcs/bergorc.json
deleted file mode 100755
index a098500515722de042956d41e2d365382fc973f0..0000000000000000000000000000000000000000
--- a/world/npcs/bergorc.json
+++ /dev/null
@@ -1,43 +0,0 @@
-{
-  "name": "berg orc",
-  "colorName": "berg \u001B[1m\u001B[35morc\u001B[0m",
-  "dieMessage": "a berg \u001B[1m\u001B[35morc\u001B[0m breathes his last breath in a pool of \u001B[1m\u001B[31mblood\u001B[0m",
-  "loot": {
-    "lootGoldMin": 6,
-    "lootGoldMax": 20,
-    "lootItems": []
-  },
-  "roamAreas": [
-    "bloodridge1_zone"
-  ],
-  "stats": {
-    "agile": 1,
-    "aim": 1,
-    "armorRating": 8,
-    "currentHealth": 230,
-    "currentMana": 100,
-    "experience": 250,
-    "maxHealth": 230,
-    "maxMana": 100,
-    "meleSkill": 6,
-    "numberOfWeaponRolls": 1,
-    "strength": 11,
-    "weaponRatingMax": 13,
-    "weaponRatingMin": 10,
-    "willPower": 1
-  },
-  "spawnAreas": {
-    "bloodridge1_zone": {
-      "randomChance": 100,
-      "maxPerRoom": 3,
-      "spawnIntervalTicks": 600,
-      "maxInstances": 12
-    }
-  },
-  "validTriggers": [
-    "b",
-    "berg orc",
-    "orc",
-    "o"
-  ]
-}
diff --git a/world/npcs/billcosby.json b/world/npcs/billcosby.json
deleted file mode 100644
index e00081314d019f2a5f0f22248319e9ccfef1b508..0000000000000000000000000000000000000000
--- a/world/npcs/billcosby.json
+++ /dev/null
@@ -1,130 +0,0 @@
-{
-  "name": "bill cosby",
-  "colorName": "bill \u001B[1m\u001B[35mcosby\u001B[0m",
-  "dieMessage": "bill \u001B[1m\u001B[35mcosby\u001B[0m collapses and scatters \u001B[1m\u001B[31mdrugs\u001B[0m all over the ground",
-  "loot": {
-    "lootGoldMin": 120,
-    "lootGoldMax": 180,
-    "lootItems": [2, 28, 41, 42, 46, 54]
-  },
-  "roamAreas": [
-    "lobby",
-    "newbie_zone",
-    "house_zone",
-    "fancyhouse_zone",
-    "north1_zone",
-    "north2_zone",
-    "north3_zone",
-    "north4_zone",
-    "north5_zone",
-    "north6_zone",
-    "north7_zone",
-    "north8_zone",
-    "north9_zone",
-    "north10_zone",
-    "north11_zone",
-    "north12_zone",
-    "north13_zone",
-    "north14_zone",
-    "north15_zone",
-    "bloodridge1_zone",
-    "bloodridge2_zone",
-    "bloodridge3_zone",
-    "bloodridge4_zone",
-    "bloodridge5_zone",
-    "bloodridge6_zone",
-    "bloodridge7_zone",
-    "bloodridge8_zone",
-    "bloodridge9_zone",
-    "bloodridge10_zone",
-    "bloodridge11_zone",
-    "bloodridge12_zone",
-    "bloodridge13_zone",
-    "bloodridge14_zone",
-    "bloodridge15_zone",
-    "bloodridge11_zone",
-    "bloodridge12_zone",
-    "bloodridge13_zone",
-    "bloodridge14_zone",
-    "bloodridge15_zone",
-    "western1_zone",
-    "western2_zone",
-    "western3_zone",
-    "western4_zone",
-    "western5_zone",
-    "western6_zone",
-    "western7_zone",
-    "western8_zone",
-    "western9_zone",
-    "western10_zone",
-    "toft1_zone",
-    "toft2_zone",
-    "toft3_zone",
-    "toft4_zone",
-    "toft5_zone",
-    "tisland1_zone",
-    "tisland2_zone",
-    "tisland3_zone",
-    "tisland4_zone",
-    "tisland5_zone",
-    "tisland6_zone",
-    "tisland7_zone",
-    "tisland8_zone",
-    "tisland9_zone",
-    "tisland10_zone",
-    "south1_zone",
-    "south2_zone",
-    "south3_zone",
-    "south4_zone",
-    "south5_zone",
-    "south6_zone",
-    "south7_zone",
-    "south8_zone",
-    "south9_zone",
-    "south10_zone",
-    "radio_room"
-  ],
-  "stats": {
-    "agile": 14,
-    "aim": 14,
-    "armorRating": 25,
-    "currentHealth": 1200,
-    "currentMana": 300,
-    "experience": 2600,
-    "maxHealth": 1200,
-    "maxMana": 100,
-    "meleSkill": 19,
-    "numberOfWeaponRolls": 1,
-    "strength": 70,
-    "weaponRatingMax": 60,
-    "weaponRatingMin": 35,
-    "willPower": 35
-  },
-  "spawnAreas": {
-    "western9_zone": {
-      "randomChance": 100,
-      "maxPerRoom": 1,
-      "spawnIntervalTicks": 600,
-      "maxInstances": 1
-    }, 
-    "bloodridge10_zone": {
-      "randomChance": 100,
-      "maxPerRoom": 1,
-      "spawnIntervalTicks": 600,
-      "maxInstances": 1
-    },
-    "tisland5_zone": {
-      "randomChance": 100,
-      "maxPerRoom": 1,
-      "spawnIntervalTicks": 600,
-      "maxInstances": 1    
-    }
-  },
-  "validTriggers": [
-    "bill",
-    "cosby",
-    "b",
-    "c",
-    "bill cosby"
-  ]
-}
diff --git a/world/npcs/blackhabrok.json b/world/npcs/blackhabrok.json
deleted file mode 100644
index c705afa459e7df0958c8d0e14186205b594c663f..0000000000000000000000000000000000000000
--- a/world/npcs/blackhabrok.json
+++ /dev/null
@@ -1,51 +0,0 @@
-{
-  "name": "black habrok",
-  "colorName": "black \u001B[1m\u001B[35mhabrok\u001B[0m",
-  "dieMessage": "the black \u001B[1m\u001B[35mhabrok\u001B[0m falls to the ground and convulses in death.",
-  "loot": {
-    "lootGoldMin": 11000000,
-    "lootGoldMax": 16000000,
-    "lootItems": [72]
-  },
-  "roamAreas": [
-    "western3_zone",
-    "western4_zone"
-  ],
-  "stats": {
-    "agile": 3000,
-    "aim": 4000,
-    "armorRating": 23000,
-    "currentHealth": 2000000,
-    "currentMana": 1200000,
-    "experience": 8000000,
-    "maxHealth": 1000000,
-    "maxMana": 800000,
-    "meleSkill": 40000,
-    "numberOfWeaponRolls": 15,
-    "strength": 40000,
-    "weaponRatingMax": 47000,
-    "weaponRatingMin": 29000,
-    "willPower": 16000
-  },
-  "spawnAreas": {
-    "western3_zone": {
-      "randomChance": 90,
-      "maxPerRoom": 1,
-      "spawnIntervalTicks": 600,
-      "maxInstances": 1
-    }, 
-    "western4_zone": {
-      "randomChance": 90,
-      "maxPerRoom": 1,
-      "spawnIntervalTicks": 600,
-      "maxInstances": 1
-    } 
-  },
-  "validTriggers": [
-    "black habrok",
-    "b",
-    "h",
-    "black",
-    "habrok"
-  ]
-}
diff --git a/world/npcs/blackhoodedwizard.json b/world/npcs/blackhoodedwizard.json
deleted file mode 100755
index 7f7239ca1b41fc73ab678e53e7838b423344a7e5..0000000000000000000000000000000000000000
--- a/world/npcs/blackhoodedwizard.json
+++ /dev/null
@@ -1,51 +0,0 @@
-{
-  "name": "black-hooded wizard",
-  "colorName": "black-hooded \u001B[1m\u001B[35mwizard\u001B[0m",
-  "dieMessage": "a black-hooded \u001B[1m\u001B[35mwizard\u001B[0m breathes his last breath in a pool of \u001B[1m\u001B[31mblood\u001B[0m",
-  "loot": {
-    "lootGoldMin": 55,
-    "lootGoldMax": 74,
-    "lootItems": []
-  },
-  "roamAreas": [
-    "tisland4_zone",
-    "tisland5_zone"
-  ],
-  "stats": {
-    "agile": 6,
-    "aim": 6,
-    "armorRating": 17,
-    "currentHealth": 650,
-    "currentMana": 100,
-    "experience": 1500,
-    "maxHealth": 650,
-    "maxMana": 100,
-    "meleSkill": 8,
-    "numberOfWeaponRolls": 1,
-    "strength": 35,
-    "weaponRatingMax": 32,
-    "weaponRatingMin": 22,
-    "willPower": 7
-  },
-  "spawnAreas": {
-    "tisland4_zone": {
-      "randomChance": 100,
-      "maxPerRoom": 3,
-      "spawnIntervalTicks": 600,
-      "maxInstances": 6
-    }, 
-    "tisland5_zone": {
-      "randomChance": 100,
-      "maxPerRoom": 3,
-      "spawnIntervalTicks": 600,
-      "maxInstances": 14
-    }
-  },
-  "validTriggers": [
-    "black-hooded",
-    "b",
-    "black-hooded wizard",
-    "wizard",
-    "w"
-  ]
-}
diff --git a/world/npcs/bloodvulture.json b/world/npcs/bloodvulture.json
deleted file mode 100644
index 02434f0aba399d3b96ba7ba261427f246d979d12..0000000000000000000000000000000000000000
--- a/world/npcs/bloodvulture.json
+++ /dev/null
@@ -1,51 +0,0 @@
-{
-  "name": "blood vulture",
-  "colorName": "blood \u001B[1m\u001B[35mvulture\u001B[0m",
-  "dieMessage": "the blood \u001B[1m\u001B[35mvulture\u001B[0m falls to the ground and convulses in death.",
-  "loot": {
-    "lootGoldMin": 62000000,
-    "lootGoldMax": 72000000,
-    "lootItems": [78]
-  },
-  "roamAreas": [
-    "bloodridge14_zone",
-    "bloodridge15_zone"
-  ],
-  "stats": {
-    "agile": 20000,
-    "aim": 24000,
-    "armorRating": 82000,
-    "currentHealth": 4000000,
-    "currentMana": 2400000,
-    "experience": 32000000,
-    "maxHealth": 5000000,
-    "maxMana": 1600000,
-    "meleSkill": 220000,
-    "numberOfWeaponRolls": 20,
-    "strength": 220000,
-    "weaponRatingMax": 300000,
-    "weaponRatingMin": 140000,
-    "willPower": 60000
-  },
-  "spawnAreas": {
-    "bloodridge14_zone": {
-      "randomChance": 90,
-      "maxPerRoom": 1,
-      "spawnIntervalTicks": 600,
-      "maxInstances": 1
-    }, 
-    "bloodridge15_zone": {
-      "randomChance": 90,
-      "maxPerRoom": 1,
-      "spawnIntervalTicks": 600,
-      "maxInstances": 1
-    } 
-  },
-  "validTriggers": [
-    "blood vulture",
-    "b",
-    "v",
-    "blood",
-    "vulture"
-  ]
-}
diff --git a/world/npcs/change_spawn_interval_tick.sh b/world/npcs/change_spawn_interval_tick.sh
deleted file mode 100755
index 01e91f815dcbe4b134918d58687ae4a32cf56af7..0000000000000000000000000000000000000000
--- a/world/npcs/change_spawn_interval_tick.sh
+++ /dev/null
@@ -1,6 +0,0 @@
-#!/bin/bash
-
-for file in $(ls *.json)
-do
-	echo "sed 's/^.*spawnIntervalTick.*$/      \"spawnIntervalTicks\": 600,/g' ${file} | tee ${file}"
-done
diff --git a/world/npcs/charlesbiggers.json b/world/npcs/charlesbiggers.json
deleted file mode 100755
index 7a0224f2684da8ed8972154fb00acaaf852fbd43..0000000000000000000000000000000000000000
--- a/world/npcs/charlesbiggers.json
+++ /dev/null
@@ -1,46 +0,0 @@
-{
-  "name": "charles biggers",
-  "colorName": "charles \u001B[1m\u001B[35mbiggers\u001B[0m",
-  "dieMessage": "charles biggers \u001B[1m\u001B[35mbiggers\u001B[0m breathes his last breath in a pool of \u001B[1m\u001B[31mblood\u001B[0m",
-  "loot": {
-    "lootGoldMin": 15000,
-    "lootGoldMax": 20000,
-    "lootItems": [40, 41, 47, 48, 49, 50, 51, 52]
-  },
-  "roamAreas": [
-    "tisland3_zone",
-    "tisland4_zone"
-  ],
-  "stats": {
-    "agile": 50,
-    "aim": 50,
-    "armorRating": 300,
-    "currentHealth": 40000,
-    "currentMana": 100,
-    "experience": 50000,
-    "maxHealth": 40000,
-    "maxMana": 100,
-    "meleSkill": 200,
-    "numberOfWeaponRolls": 5,
-    "strength": 500,
-    "weaponRatingMax": 500,
-    "weaponRatingMin": 300,
-    "willPower": 16
-  },
-  "spawnAreas": {
-    "tisland10_zone": {
-      "randomChance": 100,
-      "maxPerRoom": 1,
-      "spawnIntervalTicks": 600,
-      "maxInstances": 1
-    } 
-  },
-  "validTriggers": [
-    "charles biggers",
-    "b",
-    "charles",
-    "c",
-    "biggers",
-    "watchy"
-  ]
-}
diff --git a/world/npcs/cliffsatyr.json b/world/npcs/cliffsatyr.json
deleted file mode 100644
index 04ac12df5a0af1244f48734c5f88783798d3d8aa..0000000000000000000000000000000000000000
--- a/world/npcs/cliffsatyr.json
+++ /dev/null
@@ -1,51 +0,0 @@
-{
-  "name": "cliff satyr",
-  "colorName": "cliff \u001B[1m\u001B[35msatyr\u001B[0m",
-  "dieMessage": "the cliff \u001B[1m\u001B[35msatyr\u001B[0m falls to the ground and convulses in death.",
-  "loot": {
-    "lootGoldMin": 50000000,
-    "lootGoldMax": 56000000,
-    "lootItems": [79]
-  },
-  "roamAreas": [
-    "bloodridge14_zone",
-    "bloodridge15_zone"
-  ],
-  "stats": {
-    "agile": 14000,
-    "aim": 18000,
-    "armorRating": 94000,
-    "currentHealth": 4000000,
-    "currentMana": 2400000,
-    "experience": 24000000,
-    "maxHealth": 5000000,
-    "maxMana": 1600000,
-    "meleSkill": 140000,
-    "numberOfWeaponRolls": 25,
-    "strength": 180000,
-    "weaponRatingMax": 210000,
-    "weaponRatingMin": 80000,
-    "willPower": 50000
-  },
-  "spawnAreas": {
-    "bloodridge14_zone": {
-      "randomChance": 90,
-      "maxPerRoom": 1,
-      "spawnIntervalTicks": 600,
-      "maxInstances": 1
-    }, 
-    "bloodridge15_zone": {
-      "randomChance": 90,
-      "maxPerRoom": 1,
-      "spawnIntervalTicks": 600,
-      "maxInstances": 1
-    } 
-  },
-  "validTriggers": [
-    "cliff satyr",
-    "c",
-    "s",
-    "cliff",
-    "satyr"
-  ]
-}
diff --git a/world/npcs/deathgriffin.json b/world/npcs/deathgriffin.json
deleted file mode 100755
index a02a62a75a61847ef6f846b7501a44964ea6c6bd..0000000000000000000000000000000000000000
--- a/world/npcs/deathgriffin.json
+++ /dev/null
@@ -1,52 +0,0 @@
-{
-  "name": "death griffin",
-  "colorName": "death \u001B[1m\u001B[35mgriffin\u001B[0m",
-  "dieMessage": "a death \u001B[1m\u001B[35mgriffin\u001B[0m breathes his last breath in a pool of \u001B[1m\u001B[31mblood\u001B[0m",
-  "loot": {
-    "lootGoldMin": 60,
-    "lootGoldMax": 80,
-    "lootItems": []
-  },
-  "roamAreas": [
-    "western8_zone",
-    "western9_zone"
-  ],
-  "stats": {
-    "agile": 24,
-    "aim": 24,
-    "armorRating": 20,
-    "currentHealth": 1000,
-    "currentMana": 100,
-    "experience": 2100,
-    "maxHealth": 1000,
-    "maxMana": 100,
-    "meleSkill": 19,
-    "numberOfWeaponRolls": 1,
-    "strength": 55,
-    "weaponRatingMax": 65,
-    "weaponRatingMin": 20,
-    "willPower": 30
-  },
-  "spawnAreas": {
-    "western8_zone": {
-      "randomChance": 100,
-      "maxPerRoom": 3,
-      "spawnIntervalTicks": 600,
-      "maxInstances": 6
-    }, 
-    "western9_zone": {
-      "randomChance": 100,
-      "maxPerRoom": 3,
-      "spawnIntervalTicks": 600,
-      "maxInstances": 14
-    }
-  },
-  "validTriggers": [
-    "death",
-    "d",
-    "death griffin",
-    "death",
-    "griffin",
-    "g"
-  ]
-}
diff --git a/world/npcs/demonicelf.json b/world/npcs/demonicelf.json
deleted file mode 100644
index 0837576d9275484297bab26d8496dc49b54b5b72..0000000000000000000000000000000000000000
--- a/world/npcs/demonicelf.json
+++ /dev/null
@@ -1,51 +0,0 @@
-{
-  "name": "demonic elf",
-  "colorName": "demonic \u001B[1m\u001B[35melf\u001B[0m",
-  "dieMessage": "the demonic \u001B[1m\u001B[35melf\u001B[0m falls to the ground and convulses in death.",
-  "loot": {
-    "lootGoldMin": 25000000,
-    "lootGoldMax": 34000000,
-    "lootItems": [75]
-  },
-  "roamAreas": [
-    "bloodridge12_zone",
-    "bloodridge13_zone"
-  ],
-  "stats": {
-    "agile": 7000,
-    "aim": 9000,
-    "armorRating": 47000,
-    "currentHealth": 2000000,
-    "currentMana": 1200000,
-    "experience": 14500000,
-    "maxHealth": 2500000,
-    "maxMana": 800000,
-    "meleSkill": 70000,
-    "numberOfWeaponRolls": 20,
-    "strength": 110000,
-    "weaponRatingMax": 125000,
-    "weaponRatingMin": 90000,
-    "willPower": 30000
-  },
-  "spawnAreas": {
-    "bloodridge12_zone": {
-      "randomChance": 90,
-      "maxPerRoom": 1,
-      "spawnIntervalTicks": 600,
-      "maxInstances": 1
-    }, 
-    "bloodridge13_zone": {
-      "randomChance": 90,
-      "maxPerRoom": 1,
-      "spawnIntervalTicks": 600,
-      "maxInstances": 1
-    } 
-  },
-  "validTriggers": [
-    "demonic elf",
-    "d",
-    "e",
-    "demonic",
-    "elf"
-  ]
-}
diff --git a/world/npcs/demonsuccubus.json b/world/npcs/demonsuccubus.json
deleted file mode 100755
index 45cce2d5797725580cb1e7c4a6692be2e13e03e7..0000000000000000000000000000000000000000
--- a/world/npcs/demonsuccubus.json
+++ /dev/null
@@ -1,52 +0,0 @@
-{
-  "name": "demon succubus",
-  "colorName": "demon \u001B[1m\u001B[35msuccubus\u001B[0m",
-  "dieMessage": "a demon \u001B[1m\u001B[35msuccubus\u001B[0m breathes her last breath in a pool of \u001B[1m\u001B[31mblood\u001B[0m",
-  "loot": {
-    "lootGoldMin": 120,
-    "lootGoldMax": 180,
-    "lootItems": []
-  },
-  "roamAreas": [
-    "western9_zone",
-    "western10_zone"
-  ],
-  "stats": {
-    "agile": 14,
-    "aim": 14,
-    "armorRating": 25,
-    "currentHealth": 1200,
-    "currentMana": 300,
-    "experience": 2600,
-    "maxHealth": 1200,
-    "maxMana": 100,
-    "meleSkill": 19,
-    "numberOfWeaponRolls": 1,
-    "strength": 70,
-    "weaponRatingMax": 60,
-    "weaponRatingMin": 35,
-    "willPower": 35
-  },
-  "spawnAreas": {
-    "western9_zone": {
-      "randomChance": 100,
-      "maxPerRoom": 3,
-      "spawnIntervalTicks": 600,
-      "maxInstances": 6
-    }, 
-    "western10_zone": {
-      "randomChance": 100,
-      "maxPerRoom": 3,
-      "spawnIntervalTicks": 600,
-      "maxInstances": 14
-    }
-  },
-  "validTriggers": [
-    "demon",
-    "d",
-    "demon succubus",
-    "demon",
-    "succubus",
-    "s"
-  ]
-}
diff --git a/world/npcs/drunkentroll.json b/world/npcs/drunkentroll.json
deleted file mode 100644
index 6f0e4ca3c49f500d903a0183326c9a039f58f2de..0000000000000000000000000000000000000000
--- a/world/npcs/drunkentroll.json
+++ /dev/null
@@ -1,51 +0,0 @@
-{
-  "name": "drunken troll",
-  "colorName": "drunken \u001B[1m\u001B[35mtroll\u001B[0m",
-  "dieMessage": "the drunken \u001B[1m\u001B[35mtroll\u001B[0m falls to the ground and convulses in death.",
-  "loot": {
-    "lootGoldMin": 500000000,
-    "lootGoldMax": 700000000,
-    "lootItems": [106]
-  },
-  "roamAreas": [
-    "north14_zone",
-    "north15_zone"
-  ],
-  "stats": {
-    "agile": 120000,
-    "aim": 148000,
-    "armorRating": 700000,
-    "currentHealth": 30000000,
-    "currentMana": 12000000,
-    "experience": 220000000,
-    "maxHealth": 30000000,
-    "maxMana": 9600000,
-    "meleSkill": 1200000,
-    "numberOfWeaponRolls": 65,
-    "strength": 1500000,
-    "weaponRatingMax": 1900000,
-    "weaponRatingMin": 1500000,
-    "willPower": 800000
-  },
-  "spawnAreas": {
-    "north14_zone": {
-      "randomChance": 90,
-      "maxPerRoom": 1,
-      "spawnIntervalTicks": 600,
-      "maxInstances": 1
-    }, 
-    "north15_zone": {
-      "randomChance": 90,
-      "maxPerRoom": 1,
-      "spawnIntervalTicks": 600,
-      "maxInstances": 1
-    } 
-  },
-  "validTriggers": [
-    "drunken troll",
-    "t",
-    "d",
-    "drunken",
-    "troll"
-  ]
-}
diff --git a/world/npcs/dwarfvaettir.json b/world/npcs/dwarfvaettir.json
deleted file mode 100755
index 5712e89c3c8d0f2ab69536cd9edc68fdbf3b7624..0000000000000000000000000000000000000000
--- a/world/npcs/dwarfvaettir.json
+++ /dev/null
@@ -1,51 +0,0 @@
-{
-  "name": "dwarf vaettir",
-  "colorName": "dwarf \u001B[1m\u001B[35mvaettir\u001B[0m",
-  "dieMessage": "a dwarf \u001B[1m\u001B[35mvaettir\u001B[0m breathes his last breath in a pool of \u001B[1m\u001B[31mblood\u001B[0m",
-  "loot": {
-    "lootGoldMin": 100,
-    "lootGoldMax": 229,
-    "lootItems": [36, 38]
-  },
-  "roamAreas": [
-    "north10_zone",
-    "north11_zone"
-  ],
-  "stats": {
-    "agile": 5,
-    "aim": 32,
-    "armorRating": 30,
-    "currentHealth": 3500,
-    "currentMana": 100,
-    "experience": 3200,
-    "maxHealth": 3500,
-    "maxMana": 100,
-    "meleSkill": 8,
-    "numberOfWeaponRolls": 1,
-    "strength": 100,
-    "weaponRatingMax": 90,
-    "weaponRatingMin": 50,
-    "willPower": 9
-  },
-  "spawnAreas": {
-    "north10_zone": {
-      "randomChance": 100,
-      "maxPerRoom": 3,
-      "spawnIntervalTicks": 600,
-      "maxInstances": 20
-    },
-    "north11_zone": {
-      "randomChance": 100,
-      "maxPerRoom": 3,
-      "spawnIntervalTicks": 600,
-      "maxInstances": 14
-    }
-  },
-  "validTriggers": [
-    "dwarf",
-    "d",
-    "dwarf vaettir",
-    "vaettir",
-    "v"
-  ]
-}
diff --git a/world/npcs/fieldtroll.json b/world/npcs/fieldtroll.json
deleted file mode 100644
index d939766fc90a47b222afbcbbaba8c6e27ff05042..0000000000000000000000000000000000000000
--- a/world/npcs/fieldtroll.json
+++ /dev/null
@@ -1,51 +0,0 @@
-{
-  "name": "field troll",
-  "colorName": "field \u001B[1m\u001B[35mtroll\u001B[0m",
-  "dieMessage": "the field \u001B[1m\u001B[35mtroll\u001B[0m falls to the ground and convulses in death.",
-  "loot": {
-    "lootGoldMin": 5700000,
-    "lootGoldMax": 8000000,
-    "lootItems": [69]
-  },
-  "roamAreas": [
-    "western3_zone",
-    "western4_zone"
-  ],
-  "stats": {
-    "agile": 3000,
-    "aim": 4000,
-    "armorRating": 10000,
-    "currentHealth": 1100000,
-    "currentMana": 1200000,
-    "experience": 5100000,
-    "maxHealth": 1000000,
-    "maxMana": 800000,
-    "meleSkill": 15000,
-    "numberOfWeaponRolls": 15,
-    "strength": 27000,
-    "weaponRatingMax": 30000,
-    "weaponRatingMin": 23000,
-    "willPower": 12000
-  },
-  "spawnAreas": {
-    "western3_zone": {
-      "randomChance": 90,
-      "maxPerRoom": 1,
-      "spawnIntervalTicks": 600,
-      "maxInstances": 1
-    }, 
-    "western4_zone": {
-      "randomChance": 90,
-      "maxPerRoom": 1,
-      "spawnIntervalTicks": 600,
-      "maxInstances": 1
-    } 
-  },
-  "validTriggers": [
-    "field troll",
-    "f",
-    "t",
-    "field",
-    "troll"
-  ]
-}
diff --git a/world/npcs/firechimera.json b/world/npcs/firechimera.json
deleted file mode 100644
index 418079394511517a1b2ba885fd7662777346ba7f..0000000000000000000000000000000000000000
--- a/world/npcs/firechimera.json
+++ /dev/null
@@ -1,51 +0,0 @@
-{
-  "name": "fire chimera",
-  "colorName": "fire \u001B[1m\u001B[35mchimera\u001B[0m",
-  "dieMessage": "a fire \u001B[1m\u001B[35mchimera\u001B[0m lets out a blood curdling scream as it collapses and dies.",
-  "loot": {
-    "lootGoldMin": 1000000,
-    "lootGoldMax": 1750000,
-    "lootItems": [61, 62]
-  },
-  "roamAreas": [
-    "tisland6_zone",
-    "tisland7_zone"
-  ],
-  "stats": {
-    "agile": 1400,
-    "aim": 1400,
-    "armorRating": 6000,
-    "currentHealth": 600000,
-    "currentMana": 600000,
-    "experience": 1500000,
-    "maxHealth": 550000,
-    "maxMana": 500000,
-    "meleSkill": 8000,
-    "numberOfWeaponRolls": 15,
-    "strength": 10100,
-    "weaponRatingMax": 12300,
-    "weaponRatingMin": 4300,
-    "willPower": 8000
-  },
-  "spawnAreas": {
-    "tisland6_zone": {
-      "randomChance": 90,
-      "maxPerRoom": 1,
-      "spawnIntervalTicks": 600,
-      "maxInstances": 4
-    }, 
-    "tisland7_zone": {
-      "randomChance": 90,
-      "maxPerRoom": 1,
-      "spawnIntervalTicks": 600,
-      "maxInstances": 1
-    }  
-  },
-  "validTriggers": [
-    "fire chimera",
-    "f",
-    "c",
-    "chimera",
-    "fire"
-  ]
-}
diff --git a/world/npcs/forestbysen.json b/world/npcs/forestbysen.json
deleted file mode 100755
index 8fe04b40eb3bda03a9fa4630ac039861d6eab4b4..0000000000000000000000000000000000000000
--- a/world/npcs/forestbysen.json
+++ /dev/null
@@ -1,44 +0,0 @@
-{
-  "name": "forest bysen",
-  "colorName": "forest \u001B[1m\u001B[35mbysen\u001B[0m",
-  "dieMessage": "a forest \u001B[1m\u001B[35mbysen\u001B[0m breathes his last breath in a pool of \u001B[1m\u001B[31mblood\u001B[0m",
-  "loot": {
-    "lootGoldMin": 300,
-    "lootGoldMax": 400,
-    "lootItems": [39]
-  },
-  "roamAreas": [
-    "south1_zone"
-  ],
-  "stats": {
-    "agile": 35,
-    "aim": 32,
-    "armorRating": 70,
-    "currentHealth": 6500,
-    "currentMana": 100,
-    "experience": 9200,
-    "maxHealth": 6500,
-    "maxMana": 100,
-    "meleSkill": 30,
-    "numberOfWeaponRolls": 1,
-    "strength": 170,
-    "weaponRatingMax": 180,
-    "weaponRatingMin": 150,
-    "willPower": 9
-  },
-  "spawnAreas": {
-    "south1_zone": {
-      "randomChance": 100,
-      "maxPerRoom": 3,
-      "spawnIntervalTicks": 600,
-      "maxInstances": 18
-    }
-  },
-  "validTriggers": [
-    "forest",
-    "bysen",
-    "forest bysen",
-    "b",
-    "f"
-  ]
-}
diff --git a/world/npcs/forestsatyr.json b/world/npcs/forestsatyr.json
deleted file mode 100644
index 8a5a463cc5a4f5056c2278a9b3dee690bcffe469..0000000000000000000000000000000000000000
--- a/world/npcs/forestsatyr.json
+++ /dev/null
@@ -1,51 +0,0 @@
-{
-  "name": "forest satyr",
-  "colorName": "forest \u001B[1m\u001B[35msatyr\u001B[0m",
-  "dieMessage": "the forest \u001B[1m\u001B[35msatyr\u001B[0m falls to the ground and convulses in death.",
-  "loot": {
-    "lootGoldMin": 700000000,
-    "lootGoldMax": 900000000,
-    "lootItems": [107]
-  },
-  "roamAreas": [
-    "north14_zone",
-    "north15_zone"
-  ],
-  "stats": {
-    "agile": 140000,
-    "aim": 128000,
-    "armorRating": 600000,
-    "currentHealth": 30000000,
-    "currentMana": 22000000,
-    "experience": 200000000,
-    "maxHealth": 30000000,
-    "maxMana": 12000000,
-    "meleSkill": 1500000,
-    "numberOfWeaponRolls": 75,
-    "strength": 1250000,
-    "weaponRatingMax": 2200000,
-    "weaponRatingMin": 1300000,
-    "willPower": 1100000
-  },
-  "spawnAreas": {
-    "north14_zone": {
-      "randomChance": 90,
-      "maxPerRoom": 1,
-      "spawnIntervalTicks": 600,
-      "maxInstances": 1
-    }, 
-    "north15_zone": {
-      "randomChance": 90,
-      "maxPerRoom": 1,
-      "spawnIntervalTicks": 600,
-      "maxInstances": 1
-    } 
-  },
-  "validTriggers": [
-    "forest satyr",
-    "f",
-    "s",
-    "forest",
-    "satyr"
-  ]
-}
diff --git a/world/npcs/funneliktomi.json b/world/npcs/funneliktomi.json
deleted file mode 100644
index 339db5219364cacda0842730ed3daa4fcfc64637..0000000000000000000000000000000000000000
--- a/world/npcs/funneliktomi.json
+++ /dev/null
@@ -1,51 +0,0 @@
-{
-  "name": "funnel iktomi",
-  "colorName": "funnel \u001B[1m\u001B[35miktomi\u001B[0m",
-  "dieMessage": "the funnel \u001B[1m\u001B[35miktomi\u001B[0m falls to the ground and convulses in death.",
-  "loot": {
-    "lootGoldMin": 200000000,
-    "lootGoldMax": 250000000,
-    "lootItems": [84]
-  },
-  "roamAreas": [
-    "tisland8_zone",
-    "tisland9_zone"
-  ],
-  "stats": {
-    "agile": 50000,
-    "aim": 65000,
-    "armorRating": 300000,
-    "currentHealth": 12000000,
-    "currentMana": 73000000,
-    "experience": 90000000,
-    "maxHealth": 12000000,
-    "maxMana": 5200000,
-    "meleSkill": 500000,
-    "numberOfWeaponRolls": 30,
-    "strength": 710000,
-    "weaponRatingMax": 850000,
-    "weaponRatingMin": 620000,
-    "willPower": 300000
-  },
-  "spawnAreas": {
-    "tisland8_zone": {
-      "randomChance": 90,
-      "maxPerRoom": 1,
-      "spawnIntervalTicks": 600,
-      "maxInstances": 1
-    }, 
-    "tisland9_zone": {
-      "randomChance": 90,
-      "maxPerRoom": 1,
-      "spawnIntervalTicks": 600,
-      "maxInstances": 1
-    } 
-  },
-  "validTriggers": [
-    "funnel iktomi",
-    "f",
-    "i",
-    "funnel",
-    "iktomi"
-  ]
-}
diff --git a/world/npcs/giantjohul.json b/world/npcs/giantjohul.json
deleted file mode 100644
index 0a8a4c95ad83751362e6c2c3919a61fb548df0c0..0000000000000000000000000000000000000000
--- a/world/npcs/giantjohul.json
+++ /dev/null
@@ -1,51 +0,0 @@
-{
-  "name": "giant johul",
-  "colorName": "giant \u001B[1m\u001B[35mjohul\u001B[0m",
-  "dieMessage": "the giant \u001B[1m\u001B[35mjohul\u001B[0m falls to the ground and convulses in death.",
-  "loot": {
-    "lootGoldMin": 1100000000,
-    "lootGoldMax": 1300000000,
-    "lootItems": [115]
-  },
-  "roamAreas": [
-    "bloodridge16_zone",
-    "bloodridge17_zone"
-  ],
-  "stats": {
-    "agile": 200000,
-    "aim": 198000,
-    "armorRating": 900000,
-    "currentHealth": 45000000,
-    "currentMana": 34000000,
-    "experience": 290000000,
-    "maxHealth": 45000000,
-    "maxMana": 16000000,
-    "meleSkill": 2300000,
-    "numberOfWeaponRolls": 85,
-    "strength": 2250000,
-    "weaponRatingMax": 4000000,
-    "weaponRatingMin": 2900000,
-    "willPower": 2000000
-  },
-  "spawnAreas": {
-    "bloodridge16_zone": {
-      "randomChance": 90,
-      "maxPerRoom": 1,
-      "spawnIntervalTicks": 600,
-      "maxInstances": 1
-    }, 
-    "bloodridge17_zone": {
-      "randomChance": 90,
-      "maxPerRoom": 1,
-      "spawnIntervalTicks": 600,
-      "maxInstances": 1
-    } 
-  },
-  "validTriggers": [
-    "giant johul",
-    "g",
-    "j",
-    "giant",
-    "johul"
-  ]
-}
diff --git a/world/npcs/glacierdwarf.json b/world/npcs/glacierdwarf.json
deleted file mode 100644
index 0e439db3171af31238f649fafe203173258f76c7..0000000000000000000000000000000000000000
--- a/world/npcs/glacierdwarf.json
+++ /dev/null
@@ -1,51 +0,0 @@
-{
-  "name": "glacier dwarf",
-  "colorName": "glacier \u001B[1m\u001B[35mdwarf\u001B[0m",
-  "dieMessage": "the glacier \u001B[1m\u001B[35mdwarf\u001B[0m falls to the ground and convulses in death.",
-  "loot": {
-    "lootGoldMin": 500000000,
-    "lootGoldMax": 700000000,
-    "lootItems": [110]
-  },
-  "roamAreas": [
-    "bloodridge16_zone",
-    "bloodridge17_zone"
-  ],
-  "stats": {
-    "agile": 120000,
-    "aim": 148000,
-    "armorRating": 700000,
-    "currentHealth": 30000000,
-    "currentMana": 12000000,
-    "experience": 220000000,
-    "maxHealth": 30000000,
-    "maxMana": 9600000,
-    "meleSkill": 1200000,
-    "numberOfWeaponRolls": 65,
-    "strength": 1500000,
-    "weaponRatingMax": 1900000,
-    "weaponRatingMin": 1500000,
-    "willPower": 800000
-  },
-  "spawnAreas": {
-    "bloodridge16_zone": {
-      "randomChance": 90,
-      "maxPerRoom": 1,
-      "spawnIntervalTicks": 600,
-      "maxInstances": 1
-    }, 
-    "bloodridge17_zone": {
-      "randomChance": 90,
-      "maxPerRoom": 1,
-      "spawnIntervalTicks": 600,
-      "maxInstances": 1
-    } 
-  },
-  "validTriggers": [
-    "glacier dwarf",
-    "g",
-    "d",
-    "glacier",
-    "dwarf"
-  ]
-}
diff --git a/world/npcs/goblinastronomer.json b/world/npcs/goblinastronomer.json
deleted file mode 100644
index b763dee4a612e1ed25bb3933b80c252ff9a0599b..0000000000000000000000000000000000000000
--- a/world/npcs/goblinastronomer.json
+++ /dev/null
@@ -1,51 +0,0 @@
-{
-  "name": "goblin astronomer",
-  "colorName": "goblin \u001B[1m\u001B[35mastronomer\u001B[0m",
-  "dieMessage": "the goblin \u001B[1m\u001B[35mastronomer\u001B[0m falls to the ground and convulses in death.",
-  "loot": {
-    "lootGoldMin": 700000000,
-    "lootGoldMax": 900000000,
-    "lootItems": [112]
-  },
-  "roamAreas": [
-    "bloodridge16_zone",
-    "bloodridge17_zone"
-  ],
-  "stats": {
-    "agile": 140000,
-    "aim": 128000,
-    "armorRating": 600000,
-    "currentHealth": 30000000,
-    "currentMana": 22000000,
-    "experience": 200000000,
-    "maxHealth": 30000000,
-    "maxMana": 12000000,
-    "meleSkill": 1500000,
-    "numberOfWeaponRolls": 75,
-    "strength": 1250000,
-    "weaponRatingMax": 2200000,
-    "weaponRatingMin": 1300000,
-    "willPower": 1100000
-  },
-  "spawnAreas": {
-    "bloodridge16_zone": {
-      "randomChance": 90,
-      "maxPerRoom": 1,
-      "spawnIntervalTicks": 600,
-      "maxInstances": 1
-    }, 
-    "bloodridge17_zone": {
-      "randomChance": 90,
-      "maxPerRoom": 1,
-      "spawnIntervalTicks": 600,
-      "maxInstances": 1
-    } 
-  },
-  "validTriggers": [
-    "goblin astronomer",
-    "g",
-    "a",
-    "goblin",
-    "astronomer"
-  ]
-}
diff --git a/world/npcs/goblinnobleman.json b/world/npcs/goblinnobleman.json
deleted file mode 100644
index 3482e2ca600de02675a9e8935c7ea215ee363606..0000000000000000000000000000000000000000
--- a/world/npcs/goblinnobleman.json
+++ /dev/null
@@ -1,51 +0,0 @@
-{
-  "name": "goblin nobleman",
-  "colorName": "goblin \u001B[1m\u001B[35mnobleman\u001B[0m",
-  "dieMessage": "the goblin \u001B[1m\u001B[35mnobleman\u001B[0m falls to the ground and convulses in death.",
-  "loot": {
-    "lootGoldMin": 1000000000,
-    "lootGoldMax": 1200000000,
-    "lootItems": [114]
-  },
-  "roamAreas": [
-    "bloodridge16_zone",
-    "bloodridge17_zone"
-  ],
-  "stats": {
-    "agile": 190000,
-    "aim": 188000,
-    "armorRating": 800000,
-    "currentHealth": 42000000,
-    "currentMana": 32000000,
-    "experience": 270000000,
-    "maxHealth": 42000000,
-    "maxMana": 12000000,
-    "meleSkill": 2100000,
-    "numberOfWeaponRolls": 85,
-    "strength": 1850000,
-    "weaponRatingMax": 3200000,
-    "weaponRatingMin": 2300000,
-    "willPower": 1900000
-  },
-  "spawnAreas": {
-    "bloodridge16_zone": {
-      "randomChance": 90,
-      "maxPerRoom": 1,
-      "spawnIntervalTicks": 600,
-      "maxInstances": 1
-    }, 
-    "bloodridge17_zone": {
-      "randomChance": 90,
-      "maxPerRoom": 1,
-      "spawnIntervalTicks": 600,
-      "maxInstances": 1
-    } 
-  },
-  "validTriggers": [
-    "goblin nobleman",
-    "g",
-    "n",
-    "goblin",
-    "nobleman"
-  ]
-}
diff --git a/world/npcs/goldenstrix.json b/world/npcs/goldenstrix.json
deleted file mode 100644
index 156d808bb3406953552e7a8f76eeadb4853b867e..0000000000000000000000000000000000000000
--- a/world/npcs/goldenstrix.json
+++ /dev/null
@@ -1,51 +0,0 @@
-{
-  "name": "golden strix",
-  "colorName": "golden \u001B[1m\u001B[35mstrix\u001B[0m",
-  "dieMessage": "the golden \u001B[1m\u001B[35mstrix\u001B[0m falls to the ground and convulses in death.",
-  "loot": {
-    "lootGoldMin": 7500000,
-    "lootGoldMax": 10000000,
-    "lootItems": [67, 68]
-  },
-  "roamAreas": [
-    "tisland6_zone",
-    "tisland7_zone"
-  ],
-  "stats": {
-    "agile": 3000,
-    "aim": 4000,
-    "armorRating": 10000,
-    "currentHealth": 1800000,
-    "currentMana": 1200000,
-    "experience": 5100000,
-    "maxHealth": 1000000,
-    "maxMana": 800000,
-    "meleSkill": 15000,
-    "numberOfWeaponRolls": 15,
-    "strength": 27000,
-    "weaponRatingMax": 20000,
-    "weaponRatingMin": 13000,
-    "willPower": 12000
-  },
-  "spawnAreas": {
-    "tisland6_zone": {
-      "randomChance": 90,
-      "maxPerRoom": 1,
-      "spawnIntervalTicks": 600,
-      "maxInstances": 1
-    }, 
-    "tisland7_zone": {
-      "randomChance": 90,
-      "maxPerRoom": 1,
-      "spawnIntervalTicks": 600,
-      "maxInstances": 1
-    } 
-  },
-  "validTriggers": [
-    "golden strix",
-    "g",
-    "s",
-    "strix",
-    "golden"
-  ]
-}
diff --git a/world/npcs/grayekimmu.json b/world/npcs/grayekimmu.json
deleted file mode 100755
index 02dc8039235bfa9d6039d63f470274a4c04f758a..0000000000000000000000000000000000000000
--- a/world/npcs/grayekimmu.json
+++ /dev/null
@@ -1,51 +0,0 @@
-{
-  "name": "gray ekimmu",
-  "colorName": "gray \u001B[1m\u001B[35mekimmu\u001B[0m",
-  "dieMessage": "a gray \u001B[1m\u001B[35mekimmu\u001B[0m breathes his last breath in a pool of \u001B[1m\u001B[31mblood\u001B[0m",
-  "loot": {
-    "lootGoldMin": 12,
-    "lootGoldMax": 24,
-    "lootItems": []
-  },
-  "roamAreas": [
-    "north4_zone",
-    "north5_zone"
-  ],
-  "stats": {
-    "agile": 4,
-    "aim": 4,
-    "armorRating": 11,
-    "currentHealth": 450,
-    "currentMana": 300,
-    "experience": 450,
-    "maxHealth": 450,
-    "maxMana": 100,
-    "meleSkill": 8,
-    "numberOfWeaponRolls": 1,
-    "strength": 20,
-    "weaponRatingMax": 18,
-    "weaponRatingMin": 12,
-    "willPower": 4
-  },
-  "spawnAreas": {
-    "north4_zone": {
-      "randomChance": 100,
-      "maxPerRoom": 3,
-      "spawnIntervalTicks": 600,
-      "maxInstances": 14
-    }, 
-    "north5_zone": {
-      "randomChance": 100,
-      "maxPerRoom": 3,
-      "spawnIntervalTicks": 600,
-      "maxInstances": 14
-    }
-  },
-  "validTriggers": [
-    "g",
-    "gray ekimmu",
-    "gray",
-    "ekimmu",
-    "e"
-  ]
-}
diff --git a/world/npcs/greathellhound.json b/world/npcs/greathellhound.json
deleted file mode 100644
index 1cde9a7c8d5ec4ad642d30da6d1e567e2f3b822c..0000000000000000000000000000000000000000
--- a/world/npcs/greathellhound.json
+++ /dev/null
@@ -1,50 +0,0 @@
-{
-  "name": "great hellhound",
-  "colorName": "great \u001B[1m\u001B[35mhellhound\u001B[0m",
-  "dieMessage": "a great \u001B[1m\u001B[35mhellhound\u001B[0m screams in agony as it dies.",
-  "loot": {
-    "lootGoldMin": 300000,
-    "lootGoldMax": 600000,
-    "lootItems": []
-  },
-  "roamAreas": [
-    "south2_zone",
-    "south3_zone"
-  ],
-  "stats": {
-    "agile": 400,
-    "aim": 400,
-    "armorRating": 1440,
-    "currentHealth": 300000,
-    "currentMana": 300000,
-    "experience": 250000,
-    "maxHealth": 300000,
-    "maxMana": 300000,
-    "meleSkill": 2400,
-    "numberOfWeaponRolls": 15,
-    "strength": 4000,
-    "weaponRatingMax": 4000,
-    "weaponRatingMin": 2300,
-    "willPower": 4000
-  },
-  "spawnAreas": {
-    "south2_zone": {
-      "randomChance": 90,
-      "maxPerRoom": 1,
-      "spawnIntervalTicks": 600,
-      "maxInstances": 1
-    }, 
-    "south3_zone": {
-      "randomChance": 90,
-      "maxPerRoom": 1,
-      "spawnIntervalTicks": 600,
-      "maxInstances": 1
-    } 
-  },
-  "validTriggers": [
-    "great hellhound",
-    "g",
-    "h",
-    "hellhound"
-  ]
-}
diff --git a/world/npcs/highlandwarrior.json b/world/npcs/highlandwarrior.json
deleted file mode 100644
index 8531baf4ea286bbc88f2ea4586581342793c19a3..0000000000000000000000000000000000000000
--- a/world/npcs/highlandwarrior.json
+++ /dev/null
@@ -1,51 +0,0 @@
-{
-  "name": "highland warrior",
-  "colorName": "highland \u001B[1m\u001B[35mwarrior\u001B[0m",
-  "dieMessage": "the highland \u001B[1m\u001B[35mwarrior\u001B[0m falls to the ground and convulses in death.",
-  "loot": {
-    "lootGoldMin": 50000000,
-    "lootGoldMax": 68000000,
-    "lootItems": [77]
-  },
-  "roamAreas": [
-    "bloodridge14_zone",
-    "bloodridge15_zone"
-  ],
-  "stats": {
-    "agile": 14000,
-    "aim": 18000,
-    "armorRating": 94000,
-    "currentHealth": 4000000,
-    "currentMana": 2400000,
-    "experience": 29000000,
-    "maxHealth": 5000000,
-    "maxMana": 1600000,
-    "meleSkill": 140000,
-    "numberOfWeaponRolls": 20,
-    "strength": 220000,
-    "weaponRatingMax": 250000,
-    "weaponRatingMin": 180000,
-    "willPower": 60000
-  },
-  "spawnAreas": {
-    "bloodridge14_zone": {
-      "randomChance": 90,
-      "maxPerRoom": 1,
-      "spawnIntervalTicks": 600,
-      "maxInstances": 1
-    }, 
-    "bloodridge15_zone": {
-      "randomChance": 90,
-      "maxPerRoom": 1,
-      "spawnIntervalTicks": 600,
-      "maxInstances": 1
-    } 
-  },
-  "validTriggers": [
-    "highland warrior",
-    "h",
-    "w",
-    "highland",
-    "warrior"
-  ]
-}
diff --git a/world/npcs/jotunsoldier.json b/world/npcs/jotunsoldier.json
deleted file mode 100644
index 3d8a98ff00b5e447ccbf7a25935cee0be2e32969..0000000000000000000000000000000000000000
--- a/world/npcs/jotunsoldier.json
+++ /dev/null
@@ -1,51 +0,0 @@
-{
-  "name": "jotun soldier",
-  "colorName": "jotun \u001B[1m\u001B[35msoldier\u001B[0m",
-  "dieMessage": "the jotun \u001B[1m\u001B[35msoldier\u001B[0m falls to the ground and convulses in death.",
-  "loot": {
-    "lootGoldMin": 7500000,
-    "lootGoldMax": 10000000,
-    "lootItems": [70]
-  },
-  "roamAreas": [
-    "western3_zone",
-    "western4_zone"
-  ],
-  "stats": {
-    "agile": 4000,
-    "aim": 5000,
-    "armorRating": 10000,
-    "currentHealth": 1600000,
-    "currentMana": 1200000,
-    "experience": 6400000,
-    "maxHealth": 1000000,
-    "maxMana": 800000,
-    "meleSkill": 15000,
-    "numberOfWeaponRolls": 15,
-    "strength": 27000,
-    "weaponRatingMax": 26000,
-    "weaponRatingMin": 14000,
-    "willPower": 12000
-  },
-  "spawnAreas": {
-    "western3_zone": {
-      "randomChance": 90,
-      "maxPerRoom": 1,
-      "spawnIntervalTicks": 600,
-      "maxInstances": 1
-    }, 
-    "western4_zone": {
-      "randomChance": 90,
-      "maxPerRoom": 1,
-      "spawnIntervalTicks": 600,
-      "maxInstances": 1
-    } 
-  },
-  "validTriggers": [
-    "jotun soldier",
-    "j",
-    "s",
-    "jotun",
-    "soldier"
-  ]
-}
diff --git a/world/npcs/lightningdruid.json b/world/npcs/lightningdruid.json
deleted file mode 100644
index 79a2496f78bee05f5bc29c65d2c4e2ebb759f45f..0000000000000000000000000000000000000000
--- a/world/npcs/lightningdruid.json
+++ /dev/null
@@ -1,51 +0,0 @@
-{
-  "name": "lightning druid",
-  "colorName": "lightning \u001B[1m\u001B[35mdruid\u001B[0m",
-  "dieMessage": "the lightning \u001B[1m\u001B[35mdruid\u001B[0m falls to the ground and convulses in death.",
-  "loot": {
-    "lootGoldMin": 800000000,
-    "lootGoldMax": 1000000000,
-    "lootItems": [113]
-  },
-  "roamAreas": [
-    "bloodridge16_zone",
-    "bloodridge17_zone"
-  ],
-  "stats": {
-    "agile": 180000,
-    "aim": 178000,
-    "armorRating": 750000,
-    "currentHealth": 34000000,
-    "currentMana": 22000000,
-    "experience": 220000000,
-    "maxHealth": 34000000,
-    "maxMana": 12000000,
-    "meleSkill": 1400000,
-    "numberOfWeaponRolls": 80,
-    "strength": 1350000,
-    "weaponRatingMax": 2200000,
-    "weaponRatingMin": 1300000,
-    "willPower": 1100000
-  },
-  "spawnAreas": {
-    "bloodridge16_zone": {
-      "randomChance": 90,
-      "maxPerRoom": 1,
-      "spawnIntervalTicks": 600,
-      "maxInstances": 1
-    }, 
-    "bloodridge17_zone": {
-      "randomChance": 90,
-      "maxPerRoom": 1,
-      "spawnIntervalTicks": 600,
-      "maxInstances": 1
-    } 
-  },
-  "validTriggers": [
-    "lightning",
-    "druid",
-    "l",
-    "d",
-    "lightning druid"
-  ]
-}
diff --git a/world/npcs/lonebarbarian.json b/world/npcs/lonebarbarian.json
deleted file mode 100644
index 475d14ee831304e92bbac956b60d56520eccf4a4..0000000000000000000000000000000000000000
--- a/world/npcs/lonebarbarian.json
+++ /dev/null
@@ -1,51 +0,0 @@
-{
-  "name": "lone barbarian",
-  "colorName": "lone \u001B[1m\u001B[35mbarbarian\u001B[0m",
-  "dieMessage": "the lone \u001B[1m\u001B[35mbarbarian\u001B[0m falls to the ground and convulses in death.",
-  "loot": {
-    "lootGoldMin": 75000000,
-    "lootGoldMax": 100000000,
-    "lootItems": [81]
-  },
-  "roamAreas": [
-    "bloodridge14_zone",
-    "bloodridge15_zone"
-  ],
-  "stats": {
-    "agile": 21000,
-    "aim": 27000,
-    "armorRating": 123000,
-    "currentHealth": 5000000,
-    "currentMana": 3000000,
-    "experience": 40000000,
-    "maxHealth": 6000000,
-    "maxMana": 2400000,
-    "meleSkill": 210000,
-    "numberOfWeaponRolls": 30,
-    "strength": 330000,
-    "weaponRatingMax": 375000,
-    "weaponRatingMin": 270000,
-    "willPower": 100000
-  },
-  "spawnAreas": {
-    "bloodridge14_zone": {
-      "randomChance": 90,
-      "maxPerRoom": 1,
-      "spawnIntervalTicks": 600,
-      "maxInstances": 1
-    }, 
-    "bloodridge15_zone": {
-      "randomChance": 90,
-      "maxPerRoom": 1,
-      "spawnIntervalTicks": 600,
-      "maxInstances": 1
-    } 
-  },
-  "validTriggers": [
-    "lone barbarian",
-    "l",
-    "b",
-    "lone",
-    "barbarian"
-  ]
-}
diff --git a/world/npcs/mountaingoblin.json b/world/npcs/mountaingoblin.json
deleted file mode 100644
index 700364fd4d18669986f559f2a6d0fb7403eac245..0000000000000000000000000000000000000000
--- a/world/npcs/mountaingoblin.json
+++ /dev/null
@@ -1,51 +0,0 @@
-{
-  "name": "mountain goblin",
-  "colorName": "mountain \u001B[1m\u001B[35mgoblin\u001B[0m",
-  "dieMessage": "the mountain \u001B[1m\u001B[35mgoblin\u001B[0m falls to the ground and convulses in death.",
-  "loot": {
-    "lootGoldMin": 1500000,
-    "lootGoldMax": 2000000,
-    "lootItems": [59, 60]
-  },
-  "roamAreas": [
-    "south3_zone",
-    "south4_zone"
-  ],
-  "stats": {
-    "agile": 1000,
-    "aim": 1000,
-    "armorRating": 3840,
-    "currentHealth": 600000,
-    "currentMana": 400000,
-    "experience": 1100000,
-    "maxHealth": 600000,
-    "maxMana": 400000,
-    "meleSkill": 5000,
-    "numberOfWeaponRolls": 15,
-    "strength": 9000,
-    "weaponRatingMax": 9000,
-    "weaponRatingMin": 4300,
-    "willPower": 4000
-  },
-  "spawnAreas": {
-    "south3_zone": {
-      "randomChance": 90,
-      "maxPerRoom": 1,
-      "spawnIntervalTicks": 600,
-      "maxInstances": 1
-    }, 
-    "south4_zone": {
-      "randomChance": 90,
-      "maxPerRoom": 1,
-      "spawnIntervalTicks": 600,
-      "maxInstances": 1
-    } 
-  },
-  "validTriggers": [
-    "mountain goblin",
-    "m",
-    "g",
-    "goblin",
-    "mountain"
-  ]
-}
diff --git a/world/npcs/nemeanlion.json b/world/npcs/nemeanlion.json
deleted file mode 100644
index 8bce675cbbb77c310cae0c54c43452ce57cb5db6..0000000000000000000000000000000000000000
--- a/world/npcs/nemeanlion.json
+++ /dev/null
@@ -1,51 +0,0 @@
-{
-  "name": "nemean lion",
-  "colorName": "nemean \u001B[1m\u001B[35mlion\u001B[0m",
-  "dieMessage": "the nemean \u001B[1m\u001B[35mlion\u001B[0m falls to the ground and convulses in death.",
-  "loot": {
-    "lootGoldMin": 1500000,
-    "lootGoldMax": 2000000,
-    "lootItems": [64]
-  },
-  "roamAreas": [
-    "north12_zone",
-    "north13_zone"
-  ],
-  "stats": {
-    "agile": 1000,
-    "aim": 1000,
-    "armorRating": 3840,
-    "currentHealth": 600000,
-    "currentMana": 400000,
-    "experience": 1100000,
-    "maxHealth": 600000,
-    "maxMana": 400000,
-    "meleSkill": 5000,
-    "numberOfWeaponRolls": 15,
-    "strength": 9000,
-    "weaponRatingMax": 9000,
-    "weaponRatingMin": 4300,
-    "willPower": 4000
-  },
-  "spawnAreas": {
-    "north12_zone": {
-      "randomChance": 90,
-      "maxPerRoom": 1,
-      "spawnIntervalTicks": 600,
-      "maxInstances": 1
-    }, 
-    "north13_zone": {
-      "randomChance": 90,
-      "maxPerRoom": 1,
-      "spawnIntervalTicks": 600,
-      "maxInstances": 1
-    } 
-  },
-  "validTriggers": [
-    "nemean lion",
-    "n",
-    "l",
-    "nemean",
-    "lion"
-  ]
-}
diff --git a/world/npcs/nightmaretroll.json b/world/npcs/nightmaretroll.json
deleted file mode 100755
index 43e0ee232b41d765eb3ac2061c02d179b60c9852..0000000000000000000000000000000000000000
--- a/world/npcs/nightmaretroll.json
+++ /dev/null
@@ -1,51 +0,0 @@
-{
-  "name": "nightmare troll",
-  "colorName": "nightmare \u001B[1m\u001B[35mtroll\u001B[0m",
-  "dieMessage": "a nightmare \u001B[1m\u001B[35mtroll\u001B[0m breathes his last breath in a pool of \u001B[1m\u001B[31mblood\u001B[0m",
-  "loot": {
-    "lootGoldMin": 20,
-    "lootGoldMax": 40,
-    "lootItems": []
-  },
-  "roamAreas": [
-    "north7_zone",
-    "north8_zone"
-  ],
-  "stats": {
-    "agile": 6,
-    "aim": 6,
-    "armorRating": 18,
-    "currentHealth": 550,
-    "currentMana": 100,
-    "experience": 720,
-    "maxHealth": 550,
-    "maxMana": 100,
-    "meleSkill": 19,
-    "numberOfWeaponRolls": 1,
-    "strength": 34,
-    "weaponRatingMax": 32,
-    "weaponRatingMin": 5,
-    "willPower": 7
-  },
-  "spawnAreas": {
-    "north7_zone": {
-      "randomChance": 100,
-      "maxPerRoom": 3,
-      "spawnIntervalTicks": 600,
-      "maxInstances": 6
-    }, 
-    "north8_zone": {
-      "randomChance": 100,
-      "maxPerRoom": 3,
-      "spawnIntervalTicks": 600,
-      "maxInstances": 14
-    }
-  },
-  "validTriggers": [
-    "nightmare",
-    "n",
-    "nightmare troll",
-    "troll",
-    "t"
-  ]
-}
diff --git a/world/npcs/nomadicsorceror.json b/world/npcs/nomadicsorceror.json
deleted file mode 100644
index d56803eeb01c4813ff6b0494a9b8e75df98c2bc3..0000000000000000000000000000000000000000
--- a/world/npcs/nomadicsorceror.json
+++ /dev/null
@@ -1,51 +0,0 @@
-{
-  "name": "nomadic sorceror",
-  "colorName": "nomadic \u001B[1m\u001B[35msorceror\u001B[0m",
-  "dieMessage": "the nomadic \u001B[1m\u001B[35msorceror\u001B[0m chants the incantation of death.",
-  "loot": {
-    "lootGoldMin": 150000000,
-    "lootGoldMax": 200000000,
-    "lootItems": [83]
-  },
-  "roamAreas": [
-    "tisland8_zone",
-    "tisland9_zone"
-  ],
-  "stats": {
-    "agile": 42000,
-    "aim": 54000,
-    "armorRating": 256000,
-    "currentHealth": 10000000,
-    "currentMana": 7000000,
-    "experience": 80000000,
-    "maxHealth": 12000000,
-    "maxMana": 7000000,
-    "meleSkill": 420000,
-    "numberOfWeaponRolls": 40,
-    "strength": 666666,
-    "weaponRatingMax": 750000,
-    "weaponRatingMin": 540000,
-    "willPower": 300000
-  },
-  "spawnAreas": {
-    "tisland8_zone": {
-      "randomChance": 90,
-      "maxPerRoom": 1,
-      "spawnIntervalTicks": 600,
-      "maxInstances": 1
-    }, 
-    "tisland9_zone": {
-      "randomChance": 90,
-      "maxPerRoom": 1,
-      "spawnIntervalTicks": 600,
-      "maxInstances": 1
-    } 
-  },
-  "validTriggers": [
-    "nomadic sorceror",
-    "n",
-    "s",
-    "nomadic",
-    "sorceror"
-  ]
-}
diff --git a/world/npcs/phantomknight.json b/world/npcs/phantomknight.json
deleted file mode 100755
index 30ce9541ba29cc0659e3b605704f33753276bbd6..0000000000000000000000000000000000000000
--- a/world/npcs/phantomknight.json
+++ /dev/null
@@ -1,59 +0,0 @@
-{
-  "name": "phantom knight",
-  "colorName": "phantom \u001B[1m\u001B[35mknight\u001B[0m",
-  "dieMessage": "a phantom \u001B[1m\u001B[35mknight\u001B[0m breathes his last breath in a pool of \u001B[1m\u001B[31mblood\u001B[0m",
-  "loot": {
-    "lootGoldMin": 16,
-    "lootGoldMax": 32,
-    "lootItems": []
-  },
-  "roamAreas": [
-    "bloodridge7_zone",
-    "bloodridge6_zone",
-    "bloodridge5_zone"
-  ],
-  "stats": {
-    "agile": 6,
-    "aim": 5,
-    "armorRating": 14,
-    "currentHealth": 500,
-    "currentMana": 300,
-    "experience": 600,
-    "maxHealth": 500,
-    "maxMana": 100,
-    "meleSkill": 8,
-    "numberOfWeaponRolls": 1,
-    "strength": 28,
-    "weaponRatingMax": 22,
-    "weaponRatingMin": 12,
-    "willPower": 5
-  },
-  "spawnAreas": {
-    "bloodridge5_zone": {
-      "randomChance": 100,
-      "maxPerRoom": 3,
-      "spawnIntervalTicks": 600,
-      "maxInstances": 6
-    }, 
-    "bloodridge6_zone": {
-      "randomChance": 100,
-      "maxPerRoom": 3,
-      "spawnIntervalTicks": 600,
-      "maxInstances": 14
-    }
-    , 
-    "bloodridge7_zone": {
-      "randomChance": 100,
-      "maxPerRoom": 3,
-      "spawnIntervalTicks": 600,
-      "maxInstances": 14
-    }
-  },
-  "validTriggers": [
-    "p",
-    "phantom knight",
-    "phantom",
-    "knight",
-    "k"
-  ]
-}
diff --git a/world/npcs/phantomorc.json b/world/npcs/phantomorc.json
deleted file mode 100755
index d9cfc02cb837e7623ab0b99e609091ed22c32195..0000000000000000000000000000000000000000
--- a/world/npcs/phantomorc.json
+++ /dev/null
@@ -1,51 +0,0 @@
-{
-  "name": "phantom orc",
-  "colorName": "phantom \u001B[1m\u001B[35morc\u001B[0m",
-  "dieMessage": "a phantom \u001B[1m\u001B[35morc\u001B[0m breathes his last breath in a pool of \u001B[1m\u001B[31mblood\u001B[0m",
-  "loot": {
-    "lootGoldMin": 16,
-    "lootGoldMax": 24,
-    "lootItems": []
-  },
-  "roamAreas": [
-    "bloodridge4_zone",
-    "bloodridge5_zone"
-  ],
-  "stats": {
-    "agile": 6,
-    "aim": 5,
-    "armorRating": 9,
-    "currentHealth": 400,
-    "currentMana": 300,
-    "experience": 510,
-    "maxHealth": 400,
-    "maxMana": 100,
-    "meleSkill": 8,
-    "numberOfWeaponRolls": 1,
-    "strength": 16,
-    "weaponRatingMin": 12,
-    "weaponRatingMax": 25,
-    "willPower": 5
-  },
-  "spawnAreas": {
-    "bloodridge4_zone": {
-      "randomChance": 100,
-      "maxPerRoom": 3,
-      "spawnIntervalTicks": 600,
-      "maxInstances": 6
-    }, 
-    "bloodridge5_zone": {
-      "randomChance": 100,
-      "maxPerRoom": 3,
-      "spawnIntervalTicks": 600,
-      "maxInstances": 14
-    }
-  },
-  "validTriggers": [
-    "p",
-    "phantom orc",
-    "phantom",
-    "orc",
-    "o"
-  ]
-}
diff --git a/world/npcs/phantomwizard.json b/world/npcs/phantomwizard.json
deleted file mode 100755
index 1cb75fa0f2fb459c33b76d666ca34391bb0fce0d..0000000000000000000000000000000000000000
--- a/world/npcs/phantomwizard.json
+++ /dev/null
@@ -1,51 +0,0 @@
-{
-  "name": "phantom wizard",
-  "colorName": "phantom \u001B[1m\u001B[35mwizard\u001B[0m",
-  "dieMessage": "a phantom \u001B[1m\u001B[35mwizard\u001B[0m breathes his last breath in a pool of \u001B[1m\u001B[31mblood\u001B[0m",
-  "loot": {
-    "lootGoldMin": 16,
-    "lootGoldMax": 24,
-    "lootItems": []
-  },
-  "roamAreas": [
-    "bloodridge4_zone",
-    "bloodridge5_zone"
-  ],
-  "stats": {
-    "agile": 6,
-    "aim": 5,
-    "armorRating": 9,
-    "currentHealth": 400,
-    "currentMana": 300,
-    "experience": 510,
-    "maxHealth": 400,
-    "maxMana": 100,
-    "meleSkill": 8,
-    "numberOfWeaponRolls": 1,
-    "strength": 16,
-    "weaponRatingMin": 12,
-    "weaponRatingMax": 25,
-    "willPower": 5
-  },
-  "spawnAreas": {
-    "bloodridge4_zone": {
-      "randomChance": 100,
-      "maxPerRoom": 3,
-      "spawnIntervalTicks": 600,
-      "maxInstances": 6
-    }, 
-    "bloodridge5_zone": {
-      "randomChance": 100,
-      "maxPerRoom": 3,
-      "spawnIntervalTicks": 600,
-      "maxInstances": 14
-    }
-  },
-  "validTriggers": [
-    "p",
-    "phantom wizard",
-    "phantom",
-    "wizard",
-    "w"
-  ]
-}
diff --git a/world/npcs/phoenix.json b/world/npcs/phoenix.json
deleted file mode 100644
index 31936a0bbb2338051e37490ce78abe482fa9cba9..0000000000000000000000000000000000000000
--- a/world/npcs/phoenix.json
+++ /dev/null
@@ -1,48 +0,0 @@
-{
-  "name": "phoenix",
-  "colorName": "\u001B[1m\u001B[35mphoenix\u001B[0m",
-  "dieMessage": "a \u001B[1m\u001B[35mphoenix\u001B[0m breathes his last breath in a pool of \u001B[1m\u001B[31mblood\u001B[0m",
-  "loot": {
-    "lootGoldMin": 105000,
-    "lootGoldMax": 150000,
-    "lootItems": [65]
-  },
-  "roamAreas": [
-    "north12_zone",
-    "north13_zone"
-  ],
-  "stats": {
-    "agile": 210,
-    "aim": 210,
-    "armorRating": 1500,
-    "currentHealth": 195000,
-    "currentMana": 500,
-    "experience": 1270000,
-    "maxHealth": 195000,
-    "maxMana": 300,
-    "meleSkill": 1200,
-    "numberOfWeaponRolls": 10,
-    "strength": 14400,
-    "weaponRatingMax": 41000,
-    "weaponRatingMin": 35000,
-    "willPower": 50
-  },
-  "spawnAreas": {
-    "north12_zone": {
-      "randomChance": 100,
-      "maxPerRoom": 1,
-      "spawnIntervalTicks": 600,
-      "maxInstances": 3
-    }, 
-    "north13_zone": {
-      "randomChance": 100,
-      "maxPerRoom": 1,
-      "spawnIntervalTicks": 600,
-      "maxInstances": 2
-    } 
-  },
-  "validTriggers": [
-    "phoenix",
-    "p"
-  ]
-}
diff --git a/world/npcs/razorclawwolf.json b/world/npcs/razorclawwolf.json
deleted file mode 100755
index 381f98cd1b2d9f420e24544287c9a05e4aa0fb9a..0000000000000000000000000000000000000000
--- a/world/npcs/razorclawwolf.json
+++ /dev/null
@@ -1,51 +0,0 @@
-{
-  "name": "razor-claw wolf",
-  "colorName": "razor-claw \u001B[1m\u001B[35mwolf\u001B[0m",
-  "dieMessage": "a razor-claw \u001B[1m\u001B[35mwolf\u001B[0m breathes his last breath in a pool of \u001B[1m\u001B[31mblood\u001B[0m",
-  "loot": {
-    "lootGoldMin": 20,
-    "lootGoldMax": 30,
-    "lootItems": []
-  },
-  "roamAreas": [
-    "toft2_zone",
-    "toft3_zone"
-  ],
-  "stats": {
-    "agile": 9,
-    "aim": 5,
-    "armorRating": 8,
-    "currentHealth": 500,
-    "currentMana": 100,
-    "experience": 600,
-    "maxHealth": 500,
-    "maxMana": 100,
-    "meleSkill": 12,
-    "numberOfWeaponRolls": 1,
-    "strength": 25,
-    "weaponRatingMax": 27,
-    "weaponRatingMin": 10,
-    "willPower": 7
-  },
-  "spawnAreas": {
-    "toft2_zone": {
-      "randomChance": 100,
-      "maxPerRoom": 3,
-      "spawnIntervalTicks": 600,
-      "maxInstances": 6
-    }, 
-    "toft3_zone": {
-      "randomChance": 100,
-      "maxPerRoom": 3,
-      "spawnIntervalTicks": 600,
-      "maxInstances": 14
-    }
-  },
-  "validTriggers": [
-    "razor-claw",
-    "r",
-    "razor-claw wolf",
-    "wolf",
-    "w"
-  ]
-}
diff --git a/world/npcs/redeyedbear.json b/world/npcs/redeyedbear.json
deleted file mode 100755
index 9a15ad244934d05e3f4d857a6428090f39d83449..0000000000000000000000000000000000000000
--- a/world/npcs/redeyedbear.json
+++ /dev/null
@@ -1,45 +0,0 @@
-{
-  "name": "red-eyed bear",
-  "colorName": "red-eyed \u001B[1m\u001B[35mbear\u001B[0m",
-  "dieMessage": "a red-eyed \u001B[1m\u001B[35mbear\u001B[0m breathes his last breath in a pool of \u001B[1m\u001B[31mblood\u001B[0m",
-  "loot": {
-    "lootGoldMin": 6,
-    "lootGoldMax": 20,
-    "lootItems": []
-  },
-  "roamAreas": [
-    "toft1_zone",
-    "toft2_zone"
-  ],
-  "stats": {
-    "agile": 1,
-    "aim": 1,
-    "armorRating": 8,
-    "currentHealth": 230,
-    "currentMana": 100,
-    "experience": 250,
-    "maxHealth": 230,
-    "maxMana": 100,
-    "meleSkill": 6,
-    "numberOfWeaponRolls": 1,
-    "strength": 11,
-    "weaponRatingMax": 13,
-    "weaponRatingMin": 10,
-    "willPower": 1
-  },
-  "spawnAreas": {
-    "bloodridge1_zone": {
-      "randomChance": 100,
-      "maxPerRoom": 3,
-      "spawnIntervalTicks": 600,
-      "maxInstances": 14
-    }
-  },
-  "validTriggers": [
-    "r",
-    "red-eyed bear",
-    "red",
-    "red-eyed",
-    "b"
-  ]
-}
diff --git a/world/npcs/sabretoothboar.json b/world/npcs/sabretoothboar.json
deleted file mode 100644
index 7d25df1b9b3ac2b05585f395d6970b6618071346..0000000000000000000000000000000000000000
--- a/world/npcs/sabretoothboar.json
+++ /dev/null
@@ -1,51 +0,0 @@
-{
-  "name": "sabretooth boar",
-  "colorName": "sabretooth \u001B[1m\u001B[35mboar\u001B[0m",
-  "dieMessage": "the sabretooth \u001B[1m\u001B[35mboar\u001B[0m falls to the ground and convulses in death.",
-  "loot": {
-    "lootGoldMin": 25000000,
-    "lootGoldMax": 28000000,
-    "lootItems": [73]
-  },
-  "roamAreas": [
-    "bloodridge12_zone",
-    "bloodridge13_zone"
-  ],
-  "stats": {
-    "agile": 7000,
-    "aim": 9000,
-    "armorRating": 47000,
-    "currentHealth": 2000000,
-    "currentMana": 1200000,
-    "experience": 12000000,
-    "maxHealth": 2500000,
-    "maxMana": 800000,
-    "meleSkill": 70000,
-    "numberOfWeaponRolls": 20,
-    "strength": 90000,
-    "weaponRatingMax": 105000,
-    "weaponRatingMin": 40000,
-    "willPower": 30000
-  },
-  "spawnAreas": {
-    "bloodridge12_zone": {
-      "randomChance": 90,
-      "maxPerRoom": 1,
-      "spawnIntervalTicks": 600,
-      "maxInstances": 1
-    }, 
-    "bloodridge13_zone": {
-      "randomChance": 90,
-      "maxPerRoom": 1,
-      "spawnIntervalTicks": 600,
-      "maxInstances": 1
-    } 
-  },
-  "validTriggers": [
-    "sabretooth boar",
-    "s",
-    "b",
-    "boar",
-    "sabretooth"
-  ]
-}
diff --git a/world/npcs/scaleddeathcrawler.json b/world/npcs/scaleddeathcrawler.json
deleted file mode 100755
index 3bf3fb0f740c9e689e6ff965a1e17a7a762febc6..0000000000000000000000000000000000000000
--- a/world/npcs/scaleddeathcrawler.json
+++ /dev/null
@@ -1,51 +0,0 @@
-{
-  "name": "scaled deathcrawler",
-  "colorName": "scaled \u001B[1m\u001B[35mdeathcrawler\u001B[0m",
-  "dieMessage": "a scaled \u001B[1m\u001B[35mdeathcrawler\u001B[0m breathes his last breath in a pool of \u001B[1m\u001B[31mblood\u001B[0m",
-  "loot": {
-    "lootGoldMin": 150,
-    "lootGoldMax": 300,
-    "lootItems": [37]
-  },
-  "roamAreas": [
-    "north10_zone",
-    "north11_zone"
-  ],
-  "stats": {
-    "agile": 750,
-    "aim": 32,
-    "armorRating": 30,
-    "currentHealth": 4000,
-    "currentMana": 100,
-    "experience": 5600,
-    "maxHealth": 4000,
-    "maxMana": 100,
-    "meleSkill": 57,
-    "numberOfWeaponRolls": 1,
-    "strength": 1000,
-    "weaponRatingMax": 240,
-    "weaponRatingMin": 140,
-    "willPower": 9
-  },
-  "spawnAreas": {
-    "north10_zone": {
-      "randomChance": 100,
-      "maxPerRoom": 3,
-      "spawnIntervalTicks": 600,
-      "maxInstances": 20
-    }, 
-    "north11_zone": {
-      "randomChance": 100,
-      "maxPerRoom": 3,
-      "spawnIntervalTicks": 600,
-      "maxInstances": 14
-    }
-  },
-  "validTriggers": [
-    "scaled",
-    "s",
-    "scaled deathcrawler",
-    "deathcrawler",
-    "d"
-  ]
-}
diff --git a/world/npcs/scoffin.json b/world/npcs/scoffin.json
deleted file mode 100644
index 18a44a9c2e77a10570a554d3dd4311029b0351ee..0000000000000000000000000000000000000000
--- a/world/npcs/scoffin.json
+++ /dev/null
@@ -1,48 +0,0 @@
-{
-  "name": "scoffin",
-  "colorName": "\u001B[1m\u001B[35mscoffin\u001B[0m",
-  "dieMessage": "the \u001B[1m\u001B[35mscoffin\u001B[0m falls to the ground and convulses in death.",
-  "loot": {
-    "lootGoldMin": 100000000,
-    "lootGoldMax": 140000000,
-    "lootItems": [82]
-  },
-  "roamAreas": [
-    "tisland8_zone",
-    "tisland9_zone"
-  ],
-  "stats": {
-    "agile": 32000,
-    "aim": 40000,
-    "armorRating": 190000,
-    "currentHealth": 7500000,
-    "currentMana": 4000000,
-    "experience": 55000000,
-    "maxHealth": 8500000,
-    "maxMana": 3000000,
-    "meleSkill": 320000,
-    "numberOfWeaponRolls": 30,
-    "strength": 330000,
-    "weaponRatingMax": 500000,
-    "weaponRatingMin": 400000,
-    "willPower": 150000
-  },
-  "spawnAreas": {
-    "tisland8_zone": {
-      "randomChance": 90,
-      "maxPerRoom": 1,
-      "spawnIntervalTicks": 600,
-      "maxInstances": 1
-    }, 
-    "tisland9_zone": {
-      "randomChance": 90,
-      "maxPerRoom": 1,
-      "spawnIntervalTicks": 600,
-      "maxInstances": 1
-    } 
-  },
-  "validTriggers": [
-    "scoffin",
-    "s"
-  ]
-}
diff --git a/world/npcs/shadowminotaur.json b/world/npcs/shadowminotaur.json
deleted file mode 100644
index 47cfeaa9b1691b7631536dfed64eb3b42210a897..0000000000000000000000000000000000000000
--- a/world/npcs/shadowminotaur.json
+++ /dev/null
@@ -1,51 +0,0 @@
-{
-  "name": "shadow minotaur",
-  "colorName": "shadow \u001B[1m\u001B[35mminotaur\u001B[0m",
-  "dieMessage": "a shadow \u001B[1m\u001B[35mminotaur\u001B[0m lets out a blood curdling scream as it collapses and dies.",
-  "loot": {
-    "lootGoldMin": 2000000,
-    "lootGoldMax": 2500000,
-    "lootItems": [63]
-  },
-  "roamAreas": [
-    "tisland6_zone",
-    "tisland7_zone"
-  ],
-  "stats": {
-    "agile": 2100,
-    "aim": 2100,
-    "armorRating": 9000,
-    "currentHealth": 900000,
-    "currentMana": 900000,
-    "experience": 2200000,
-    "maxHealth": 900000,
-    "maxMana": 900000,
-    "meleSkill": 12000,
-    "numberOfWeaponRolls": 15,
-    "strength": 15800,
-    "weaponRatingMax": 18000,
-    "weaponRatingMin": 7000,
-    "willPower": 12000
-  },
-  "spawnAreas": {
-    "tisland6_zone": {
-      "randomChance": 90,
-      "maxPerRoom": 1,
-      "spawnIntervalTicks": 600,
-      "maxInstances": 4
-    }, 
-    "tisland7_zone": {
-      "randomChance": 90,
-      "maxPerRoom": 1,
-      "spawnIntervalTicks": 600,
-      "maxInstances": 1
-    }  
-  },
-  "validTriggers": [
-    "shadow minotaur",
-    "shadow",
-    "minotaur",
-    "s",
-    "m"
-  ]
-}
diff --git a/world/npcs/silverwendigo.json b/world/npcs/silverwendigo.json
deleted file mode 100644
index f45d239d9fe7c54302c1ae08f2413147235e7142..0000000000000000000000000000000000000000
--- a/world/npcs/silverwendigo.json
+++ /dev/null
@@ -1,51 +0,0 @@
-{
-  "name": "silver wendigo",
-  "colorName": "silver \u001B[1m\u001B[35mwendigo\u001B[0m",
-  "dieMessage": "a silver \u001B[1m\u001B[35mwendigo\u001B[0m breathes his last breath in a pool of \u001B[1m\u001B[31mblood\u001B[0m",
-  "loot": {
-    "lootGoldMin": 2000000,
-    "lootGoldMax": 2500000,
-    "lootItems": [66]
-  },
-  "roamAreas": [
-    "north12_zone",
-    "north13_zone"
-  ],
-  "stats": {
-    "agile": 140,
-    "aim": 140,
-    "armorRating": 1000,
-    "currentHealth": 300000,
-    "currentMana": 200,
-    "experience": 1800000,
-    "maxHealth": 300000,
-    "maxMana": 200,
-    "meleSkill": 800,
-    "numberOfWeaponRolls": 5,
-    "strength": 13000,
-    "weaponRatingMax": 70000,
-    "weaponRatingMin": 40000,
-    "willPower": 32
-  },
-  "spawnAreas": {
-    "north12_zone": {
-      "randomChance": 100,
-      "maxPerRoom": 1,
-      "spawnIntervalTicks": 600,
-      "maxInstances": 3
-    }, 
-    "north13_zone": {
-      "randomChance": 100,
-      "maxPerRoom": 1,
-      "spawnIntervalTicks": 600,
-      "maxInstances": 2
-    } 
-  },
-  "validTriggers": [
-    "silver wendigo",
-    "s",
-    "silver",
-    "w",
-    "wendigo"
-  ]
-}
diff --git a/world/npcs/stealthpanther.json b/world/npcs/stealthpanther.json
deleted file mode 100755
index 74188765621b410a6865381d6e9656fbced613ae..0000000000000000000000000000000000000000
--- a/world/npcs/stealthpanther.json
+++ /dev/null
@@ -1,51 +0,0 @@
-{
-  "name": "stealth panther",
-  "colorName": "stealth \u001B[1m\u001B[35mpanther\u001B[0m",
-  "dieMessage": "a stealth \u001B[1m\u001B[35mpanther\u001B[0m breathes his last breath in a pool of \u001B[1m\u001B[31mblood\u001B[0m",
-  "loot": {
-    "lootGoldMin": 16,
-    "lootGoldMax": 32,
-    "lootItems": []
-  },
-  "roamAreas": [
-    "north5_zone",
-    "north6_zone"
-  ],
-  "stats": {
-    "agile": 6,
-    "aim": 4,
-    "armorRating": 11,
-    "currentHealth": 500,
-    "currentMana": 300,
-    "experience": 510,
-    "maxHealth": 500,
-    "maxMana": 100,
-    "meleSkill": 8,
-    "numberOfWeaponRolls": 1,
-    "strength": 23,
-    "weaponRatingMax": 22,
-    "weaponRatingMin": 12,
-    "willPower": 5
-  },
-  "spawnAreas": {
-    "north5_zone": {
-      "randomChance": 100,
-      "maxPerRoom": 3,
-      "spawnIntervalTicks": 600,
-      "maxInstances": 14
-    }, 
-    "north6_zone": {
-      "randomChance": 100,
-      "maxPerRoom": 3,
-      "spawnIntervalTicks": 600,
-      "maxInstances": 14
-    }
-  },
-  "validTriggers": [
-    "s",
-    "stealth panther",
-    "panther",
-    "stealth",
-    "p"
-  ]
-}
diff --git a/world/npcs/stonegiant.json b/world/npcs/stonegiant.json
deleted file mode 100755
index 243d557c7c7b90902bb85371331e9fc04954f367..0000000000000000000000000000000000000000
--- a/world/npcs/stonegiant.json
+++ /dev/null
@@ -1,51 +0,0 @@
-{
-  "name": "stone giant",
-  "colorName": "stone \u001B[1m\u001B[35mgiant\u001B[0m",
-  "dieMessage": "a stone \u001B[1m\u001B[35mgiant\u001B[0m breathes his last breath in a pool of \u001B[1m\u001B[31mblood\u001B[0m",
-  "loot": {
-    "lootGoldMin": 55,
-    "lootGoldMax": 69,
-    "lootItems": []
-  },
-  "roamAreas": [
-    "tisland4_zone",
-    "tisland5_zone"
-  ],
-  "stats": {
-    "agile": 5,
-    "aim": 4,
-    "armorRating": 30,
-    "currentHealth": 700,
-    "currentMana": 100,
-    "experience": 1350,
-    "maxHealth": 700,
-    "maxMana": 100,
-    "meleSkill": 8,
-    "numberOfWeaponRolls": 2,
-    "strength": 50,
-    "weaponRatingMax": 35,
-    "weaponRatingMin": 25,
-    "willPower": 9
-  },
-  "spawnAreas": {
-    "tisland4_zone": {
-      "randomChance": 100,
-      "maxPerRoom": 3,
-      "spawnIntervalTicks": 600,
-      "maxInstances": 6
-    }, 
-    "tisland5_zone": {
-      "randomChance": 100,
-      "maxPerRoom": 3,
-      "spawnIntervalTicks": 600,
-      "maxInstances": 14
-    }
-  },
-  "validTriggers": [
-    "stone",
-    "s",
-    "stone giant",
-    "giant",
-    "g"
-  ]
-}
diff --git a/world/npcs/streethustler.json b/world/npcs/streethustler.json
deleted file mode 100755
index 8838c4658fe8912a5225478a00208c7d12b0852e..0000000000000000000000000000000000000000
--- a/world/npcs/streethustler.json
+++ /dev/null
@@ -1,43 +0,0 @@
-{
-  "name": "street hustler",
-  "colorName": "street \u001B[1m\u001B[35mhustler\u001B[0m",
-  "dieMessage": "a street \u001B[1m\u001B[35mdeathcrawler\u001B[0m breathes his last breath in a pool of \u001B[1m\u001B[31mblood\u001B[0m",
-  "loot": {
-    "lootGoldMin": 1,
-    "lootGoldMax": 3,
-    "lootItems": []
-  },
-  "roamAreas": [
-    "newbie_zone"
-  ],
-  "stats": {
-    "agile": 1,
-    "aim": 1,
-    "armorRating": 5,
-    "currentHealth": 150,
-    "currentMana": 100,
-    "experience": 30,
-    "maxHealth": 150,
-    "maxMana": 100,
-    "meleSkill": 5,
-    "numberOfWeaponRolls": 1,
-    "strength": 5,
-    "weaponRatingMax": 10,
-    "weaponRatingMin": 5,
-    "willPower": 1
-  },
-  "spawnAreas": {
-    "newbie_zone": {
-      "randomChance": 100,
-      "maxPerRoom": 3,
-      "spawnIntervalTicks": 600,
-      "maxInstances": 5
-    }
-  },
-  "validTriggers": [
-    "hustler",
-    "street hustler",
-    "h",
-    "s"
-  ]
-}
diff --git a/world/npcs/swampbear.json b/world/npcs/swampbear.json
deleted file mode 100755
index c80ac20606a041286c8c96cb20e01f85ecd89e47..0000000000000000000000000000000000000000
--- a/world/npcs/swampbear.json
+++ /dev/null
@@ -1,51 +0,0 @@
-{
-  "name": "swamp bear",
-  "colorName": "swamp \u001B[1m\u001B[35mbear\u001B[0m",
-  "dieMessage": "a swamp \u001B[1m\u001B[35mbear\u001B[0m breathes his last breath in a pool of \u001B[1m\u001B[31mblood\u001B[0m",
-  "loot": {
-    "lootGoldMin": 12,
-    "lootGoldMax": 24,
-    "lootItems": []
-  },
-  "roamAreas": [
-    "north3_zone",
-    "north4_zone"
-  ],
-  "stats": {
-    "agile": 3,
-    "aim": 3,
-    "armorRating": 8,
-    "currentHealth": 300,
-    "currentMana": 300,
-    "experience": 250,
-    "maxHealth": 300,
-    "maxMana": 100,
-    "meleSkill": 6,
-    "numberOfWeaponRolls": 1,
-    "strength": 15,
-    "weaponRatingMax": 16,
-    "weaponRatingMin": 10,
-    "willPower": 3
-  },
-  "spawnAreas": {
-    "north3_zone": {
-      "randomChance": 100,
-      "maxPerRoom": 3,
-      "spawnIntervalTicks": 600,
-      "maxInstances": 14
-    }, 
-    "north4_zone": {
-      "randomChance": 100,
-      "maxPerRoom": 3,
-      "spawnIntervalTicks": 600,
-      "maxInstances": 14
-    }
-  },
-  "validTriggers": [
-    "s",
-    "swamp bear",
-    "swamp",
-    "bear",
-    "b"
-  ]
-}
diff --git a/world/npcs/swampberserker.json b/world/npcs/swampberserker.json
deleted file mode 100755
index bc5e8b04a13563a184c8bbccdcf46f277c0eab71..0000000000000000000000000000000000000000
--- a/world/npcs/swampberserker.json
+++ /dev/null
@@ -1,43 +0,0 @@
-{
-  "name": "swamp berserker",
-  "colorName": "swamp \u001B[1m\u001B[35mberserker\u001B[0m",
-  "dieMessage": "a swamp \u001B[1m\u001B[35mberserker\u001B[0m breathes his last breath in a pool of \u001B[1m\u001B[31mblood\u001B[0m",
-  "loot": {
-    "lootGoldMin": 3,
-    "lootGoldMax": 10,
-    "lootItems": []
-  },
-  "roamAreas": [
-    "north1_zone"
-  ],
-  "stats": {
-    "agile": 1,
-    "aim": 1,
-    "armorRating": 8,
-    "currentHealth": 230,
-    "currentMana": 100,
-    "experience": 250,
-    "maxHealth": 230,
-    "maxMana": 100,
-    "meleSkill": 6,
-    "numberOfWeaponRolls": 1,
-    "strength": 11,
-    "weaponRatingMax": 13,
-    "weaponRatingMin": 10,
-    "willPower": 1
-  },
-  "spawnAreas": {
-    "north2_zone": {
-      "randomChance": 100,
-      "maxPerRoom": 3,
-      "spawnIntervalTicks": 600,
-      "maxInstances": 12
-    }
-  },
-  "validTriggers": [
-    "t",
-    "swamp berserker",
-    "berserker",
-    "b"
-  ]
-}
diff --git a/world/npcs/tatzelwurm.json b/world/npcs/tatzelwurm.json
deleted file mode 100644
index 3951e1be381e86fcddede2db49753948fef0722d..0000000000000000000000000000000000000000
--- a/world/npcs/tatzelwurm.json
+++ /dev/null
@@ -1,50 +0,0 @@
-{
-  "name": "tatzelwurm",
-  "colorName": "\u001B[1m\u001B[35mtatzelwurm\u001B[0m",
-  "dieMessage": "the \u001B[1m\u001B[35mtatzelwurm\u001B[0m dies in a pool of blood!",
-  "loot": {
-    "lootGoldMin": 100000,
-    "lootGoldMax": 126000,
-    "lootItems": []
-  },
-  "roamAreas": [
-    "bloodridge8_zone",
-    "bloodridge9_zone"
-  ],
-  "stats": {
-    "agile": 100,
-    "aim": 100,
-    "armorRating": 600,
-    "currentHealth": 80000,
-    "currentMana": 80000,
-    "experience": 100000,
-    "maxHealth": 80000,
-    "maxMana": 80000,
-    "meleSkill": 600,
-    "numberOfWeaponRolls": 5,
-    "strength": 1000,
-    "weaponRatingMax": 1000,
-    "weaponRatingMin": 700,
-    "willPower": 1000
-  },
-  "spawnAreas": {
-    "bloodridge8_zone": {
-      "randomChance": 5,
-      "maxPerRoom": 1,
-      "spawnIntervalTicks": 600,
-      "maxInstances": 1
-    }, 
-    "bloodridge9_zone": {
-      "randomChance": 5,
-      "maxPerRoom": 1,
-      "spawnIntervalTicks": 600,
-      "maxInstances": 1
-    } 
-  },
-  "validTriggers": [
-    "tatzelwurm",
-    "t",
-    "wurm",
-    "w"
-  ]
-}
diff --git a/world/npcs/thefirstnationalbank.json b/world/npcs/thefirstnationalbank.json
deleted file mode 100755
index bdc059f2d0adf74bdc694eec7f397bc1630be0f2..0000000000000000000000000000000000000000
--- a/world/npcs/thefirstnationalbank.json
+++ /dev/null
@@ -1,44 +0,0 @@
-{
-  "name": "first national bank",
-  "colorName": "first \u001B[1m\u001B[35mnational bank\u001B[0m",
-  "dieMessage": "the bankers cry out in despair! \u001B[1m\u001B[35mnational bank\u001B[0m drowns in its own vomit and \u001B[1m\u001B[31mblood\u001B[0m",
-  "loot": {
-    "lootGoldMin": 30000,
-    "lootGoldMax": 60000,
-    "lootItems": []
-  },
-  "roamAreas": [
-    "tisland3_zone",
-    "tisland4_zone"
-  ],
-  "stats": {
-    "agile": 100,
-    "aim": 100,
-    "armorRating": 600,
-    "currentHealth": 80000,
-    "currentMana": 80000,
-    "experience": 100000,
-    "maxHealth": 80000,
-    "maxMana": 80000,
-    "meleSkill": 600,
-    "numberOfWeaponRolls": 5,
-    "strength": 1000,
-    "weaponRatingMax": 1000,
-    "weaponRatingMin": 700,
-    "willPower": 1000
-  },
-  "spawnAreas": {
-    "tisland10_zone": {
-      "randomChance": 5,
-      "maxPerRoom": 1,
-      "spawnIntervalTicks": 600,
-      "maxInstances": 1
-    } 
-  },
-  "validTriggers": [
-    "national bank",
-    "the first national bank",
-    "bank",
-    "national"
-  ]
-}
diff --git a/world/npcs/thousandeyedspider.json b/world/npcs/thousandeyedspider.json
deleted file mode 100644
index b7aaa05eb4b4fe80481297a2946b49a1597f84c9..0000000000000000000000000000000000000000
--- a/world/npcs/thousandeyedspider.json
+++ /dev/null
@@ -1,51 +0,0 @@
-{
-  "name": "thousand-eyed spider",
-  "colorName": "thousand-eyed \u001B[1m\u001B[35mspider\u001B[0m",
-  "dieMessage": "the thousand-eyed \u001B[1m\u001B[35mspider\u001B[0m falls to the ground and convulses in death.",
-  "loot": {
-    "lootGoldMin": 300000000,
-    "lootGoldMax": 400000000,
-    "lootItems": [86]
-  },
-  "roamAreas": [
-    "tisland8_zone",
-    "tisland9_zone"
-  ],
-  "stats": {
-    "agile": 84000,
-    "aim": 108000,
-    "armorRating": 500000,
-    "currentHealth": 20000000,
-    "currentMana": 12000000,
-    "experience": 160000000,
-    "maxHealth": 24000000,
-    "maxMana": 9600000,
-    "meleSkill": 840000,
-    "numberOfWeaponRolls": 60,
-    "strength": 1250000,
-    "weaponRatingMax": 1500000,
-    "weaponRatingMin": 1000000,
-    "willPower": 600000
-  },
-  "spawnAreas": {
-    "tisland8_zone": {
-      "randomChance": 90,
-      "maxPerRoom": 1,
-      "spawnIntervalTicks": 600,
-      "maxInstances": 1
-    }, 
-    "tisland9_zone": {
-      "randomChance": 90,
-      "maxPerRoom": 1,
-      "spawnIntervalTicks": 600,
-      "maxInstances": 1
-    } 
-  },
-  "validTriggers": [
-    "thousand-eyed spider",
-    "t",
-    "s",
-    "thousand-eyed",
-    "spider"
-  ]
-}
diff --git a/world/npcs/tigermonoceruses.json b/world/npcs/tigermonoceruses.json
deleted file mode 100755
index 1bb475978ffe91b7458a1fdb4efc6f8daeb822e0..0000000000000000000000000000000000000000
--- a/world/npcs/tigermonoceruses.json
+++ /dev/null
@@ -1,51 +0,0 @@
-{
-  "name": "tiger monocerus",
-  "colorName": "tiger \u001B[1m\u001B[35mmonocerus\u001B[0m",
-  "dieMessage": "a tiger \u001B[1m\u001B[35mmonocerus\u001B[0m breathes his last breath in a pool of \u001B[1m\u001B[31mblood\u001B[0m",
-  "loot": {
-    "lootGoldMin": 20,
-    "lootGoldMax": 30,
-    "lootItems": []
-  },
-  "roamAreas": [
-    "north8_zone",
-    "north9_zone"
-  ],
-  "stats": {
-    "agile": 6,
-    "aim": 6,
-    "armorRating": 18,
-    "currentHealth": 550,
-    "currentMana": 100,
-    "experience": 800,
-    "maxHealth": 550,
-    "maxMana": 100,
-    "meleSkill": 19,
-    "numberOfWeaponRolls": 1,
-    "strength": 34,
-    "weaponRatingMax": 36,
-    "weaponRatingMin": 20,
-    "willPower": 7
-  },
-  "spawnAreas": {
-    "north8_zone": {
-      "randomChance": 1,
-      "maxPerRoom": 3,
-      "spawnIntervalTicks": 600,
-      "maxInstances": 6
-    }, 
-    "north9_zone": {
-      "randomChance": 1,
-      "maxPerRoom": 3,
-      "spawnIntervalTicks": 600,
-      "maxInstances": 14
-    }
-  },
-  "validTriggers": [
-    "tiger",
-    "t",
-    "tiger monocerus",
-    "monocerus",
-    "m"
-  ]
-}
diff --git a/world/npcs/treeberserker.json b/world/npcs/treeberserker.json
index fb4ff4f6494fc2722c337a23ec7313360289f498..dc54f6b476f2cd9a39e21547d0a780d81aa6dca5 100755
--- a/world/npcs/treeberserker.json
+++ b/world/npcs/treeberserker.json
@@ -1,5 +1,6 @@
 {
   "name": "tree berserker",
+  "level": 5,
   "colorName": "tree \u001B[1m\u001B[35mberserker\u001B[0m",
   "dieMessage": "a tree \u001B[1m\u001B[35mberserker\u001B[0m breathes his last breath in a pool of \u001B[1m\u001B[31mblood\u001B[0m",
   "loot": {
diff --git a/world/npcs/tribalalchemist.json b/world/npcs/tribalalchemist.json
deleted file mode 100644
index 94fa4dd28fbc0b8cb19124b8a35aee68317720e1..0000000000000000000000000000000000000000
--- a/world/npcs/tribalalchemist.json
+++ /dev/null
@@ -1,51 +0,0 @@
-{
-  "name": "tribal alchemist",
-  "colorName": "tribal \u001B[1m\u001B[35malchemist\u001B[0m",
-  "dieMessage": "the tribal \u001B[1m\u001B[35malchemist\u001B[0m falls to the ground and convulses in death.",
-  "loot": {
-    "lootGoldMin": 1100000000,
-    "lootGoldMax": 1300000000,
-    "lootItems": [111]
-  },
-  "roamAreas": [
-    "north14_zone",
-    "north15_zone"
-  ],
-  "stats": {
-    "agile": 200000,
-    "aim": 198000,
-    "armorRating": 900000,
-    "currentHealth": 45000000,
-    "currentMana": 34000000,
-    "experience": 290000000,
-    "maxHealth": 45000000,
-    "maxMana": 16000000,
-    "meleSkill": 2300000,
-    "numberOfWeaponRolls": 85,
-    "strength": 1950000,
-    "weaponRatingMax": 3500000,
-    "weaponRatingMin": 2200000,
-    "willPower": 2000000
-  },
-  "spawnAreas": {
-    "north14_zone": {
-      "randomChance": 90,
-      "maxPerRoom": 1,
-      "spawnIntervalTicks": 600,
-      "maxInstances": 1
-    }, 
-    "north15_zone": {
-      "randomChance": 90,
-      "maxPerRoom": 1,
-      "spawnIntervalTicks": 600,
-      "maxInstances": 1
-    } 
-  },
-  "validTriggers": [
-    "tribal alchemist",
-    "t",
-    "a",
-    "tribal",
-    "alchemist"
-  ]
-}
diff --git a/world/npcs/tribalranger.json b/world/npcs/tribalranger.json
deleted file mode 100644
index cba9a93a89443ff7c460139c6039c813945acf13..0000000000000000000000000000000000000000
--- a/world/npcs/tribalranger.json
+++ /dev/null
@@ -1,51 +0,0 @@
-{
-  "name": "tribal ranger",
-  "colorName": "tribal \u001B[1m\u001B[35mranger\u001B[0m",
-  "dieMessage": "the tribal \u001B[1m\u001B[35mranger\u001B[0m falls to the ground and convulses in death.",
-  "loot": {
-    "lootGoldMin": 1000000000,
-    "lootGoldMax": 1200000000,
-    "lootItems": [109]
-  },
-  "roamAreas": [
-    "north14_zone",
-    "north15_zone"
-  ],
-  "stats": {
-    "agile": 190000,
-    "aim": 188000,
-    "armorRating": 800000,
-    "currentHealth": 42000000,
-    "currentMana": 32000000,
-    "experience": 270000000,
-    "maxHealth": 42000000,
-    "maxMana": 12000000,
-    "meleSkill": 2100000,
-    "numberOfWeaponRolls": 85,
-    "strength": 1850000,
-    "weaponRatingMax": 3200000,
-    "weaponRatingMin": 2300000,
-    "willPower": 1900000
-  },
-  "spawnAreas": {
-    "north14_zone": {
-      "randomChance": 90,
-      "maxPerRoom": 1,
-      "spawnIntervalTicks": 600,
-      "maxInstances": 1
-    }, 
-    "north15_zone": {
-      "randomChance": 90,
-      "maxPerRoom": 1,
-      "spawnIntervalTicks": 600,
-      "maxInstances": 1
-    } 
-  },
-  "validTriggers": [
-    "tribal ranger",
-    "t",
-    "r",
-    "tribal",
-    "ranger"
-  ]
-}
diff --git a/world/npcs/tunnelcobra.json b/world/npcs/tunnelcobra.json
deleted file mode 100755
index 58c252461ca89d0feb9f452608b00a78bfc03b52..0000000000000000000000000000000000000000
--- a/world/npcs/tunnelcobra.json
+++ /dev/null
@@ -1,51 +0,0 @@
-{
-  "name": "tunnel cobra",
-  "colorName": "tunnel \u001B[1m\u001B[35mcobra\u001B[0m",
-  "dieMessage": "a tunnel \u001B[1m\u001B[35mcobra\u001B[0m breathes his last breath in a pool of \u001B[1m\u001B[31mblood\u001B[0m",
-  "loot": {
-    "lootGoldMin": 40,
-    "lootGoldMax": 54,
-    "lootItems": []
-  },
-  "roamAreas": [
-    "tisland3_zone",
-    "tisland4_zone"
-  ],
-  "stats": {
-    "agile": 9,
-    "aim": 9,
-    "armorRating": 20,
-    "currentHealth": 300,
-    "currentMana": 100,
-    "experience": 920,
-    "maxHealth": 300,
-    "maxMana": 100,
-    "meleSkill": 18,
-    "numberOfWeaponRolls": 2,
-    "strength": 40,
-    "weaponRatingMax": 31,
-    "weaponRatingMin": 24,
-    "willPower": 16
-  },
-  "spawnAreas": {
-    "tisland4_zone": {
-      "randomChance": 100,
-      "maxPerRoom": 3,
-      "spawnIntervalTicks": 600,
-      "maxInstances": 6
-    }, 
-    "tisland3_zone": {
-      "randomChance": 100,
-      "maxPerRoom": 3,
-      "spawnIntervalTicks": 600,
-      "maxInstances": 14
-    }
-  },
-  "validTriggers": [
-    "tunnel",
-    "t",
-    "tunnel cobra",
-    "cobra",
-    "c"
-  ]
-}
diff --git a/world/npcs/vinlandbard.json b/world/npcs/vinlandbard.json
deleted file mode 100644
index 40584fa916d6d7702ff431934a6190e28a729ce0..0000000000000000000000000000000000000000
--- a/world/npcs/vinlandbard.json
+++ /dev/null
@@ -1,51 +0,0 @@
-{
-  "name": "vinland bard",
-  "colorName": "vinland \u001B[1m\u001B[35mbard\u001B[0m",
-  "dieMessage": "the vinland \u001B[1m\u001B[35mbard\u001B[0m falls to the ground and convulses in death.",
-  "loot": {
-    "lootGoldMin": 900000,
-    "lootGoldMax": 14000000,
-    "lootItems": [71]
-  },
-  "roamAreas": [
-    "western3_zone",
-    "western4_zone"
-  ],
-  "stats": {
-    "agile": 3000,
-    "aim": 4000,
-    "armorRating": 23000,
-    "currentHealth": 1800000,
-    "currentMana": 1200000,
-    "experience": 7000000,
-    "maxHealth": 1000000,
-    "maxMana": 800000,
-    "meleSkill": 15000,
-    "numberOfWeaponRolls": 15,
-    "strength": 40000,
-    "weaponRatingMax": 41000,
-    "weaponRatingMin": 23000,
-    "willPower": 16000
-  },
-  "spawnAreas": {
-    "western3_zone": {
-      "randomChance": 90,
-      "maxPerRoom": 1,
-      "spawnIntervalTicks": 600,
-      "maxInstances": 1
-    }, 
-    "western4_zone": {
-      "randomChance": 90,
-      "maxPerRoom": 1,
-      "spawnIntervalTicks": 600,
-      "maxInstances": 1
-    } 
-  },
-  "validTriggers": [
-    "vinland bard",
-    "v",
-    "b",
-    "vinland",
-    "bard"
-  ]
-}
diff --git a/world/npcs/warlock.json b/world/npcs/warlock.json
deleted file mode 100644
index 211e52bd826f4d2606c6e1a15abc5241976a2d88..0000000000000000000000000000000000000000
--- a/world/npcs/warlock.json
+++ /dev/null
@@ -1,48 +0,0 @@
-{
-  "name": "warlock",
-  "colorName": "\u001B[1m\u001B[35mwarlock\u001B[0m",
-  "dieMessage": "the \u001B[1m\u001B[35mwarlock\u001B[0m falls to the ground and convulses in death.",
-  "loot": {
-    "lootGoldMin": 21000000,
-    "lootGoldMax": 26000000,
-    "lootItems": [74]
-  },
-  "roamAreas": [
-    "bloodridge12_zone",
-    "bloodridge13_zone"
-  ],
-  "stats": {
-    "agile": 6000,
-    "aim": 8000,
-    "armorRating": 41000,
-    "currentHealth": 2000000,
-    "currentMana": 1200000,
-    "experience": 12000000,
-    "maxHealth": 2500000,
-    "maxMana": 800000,
-    "meleSkill": 70000,
-    "numberOfWeaponRolls": 20,
-    "strength": 80000,
-    "weaponRatingMax": 90000,
-    "weaponRatingMin": 40000,
-    "willPower": 30000
-  },
-  "spawnAreas": {
-    "bloodridge12_zone": {
-      "randomChance": 90,
-      "maxPerRoom": 1,
-      "spawnIntervalTicks": 600,
-      "maxInstances": 1
-    }, 
-    "bloodridge13_zone": {
-      "randomChance": 90,
-      "maxPerRoom": 1,
-      "spawnIntervalTicks": 600,
-      "maxInstances": 1
-    } 
-  },
-  "validTriggers": [
-    "warlock",
-    "w"
-  ]
-}