diff --git a/main/src/main/java/me/blackvein/quests/Quests.java b/main/src/main/java/me/blackvein/quests/Quests.java
index 31bc779b8..08e3fe6a0 100644
--- a/main/src/main/java/me/blackvein/quests/Quests.java
+++ b/main/src/main/java/me/blackvein/quests/Quests.java
@@ -827,8 +827,13 @@ public class Quests extends JavaPlugin implements ConversationAbandonedListener
             for (final ItemStack e2 : data.blocksBroken) {
                 if (e2.getType().equals(e.getType()) && e2.getDurability() == e.getDurability()) {
                     final ChatColor color = e2.getAmount() < e.getAmount() ? ChatColor.GREEN : ChatColor.GRAY;
-                    String message = color + Lang.get(quester.getPlayer(), "break") + " <item>" 
-                                + color + ": " + e2.getAmount() + "/" + e.getAmount();
+                    String message = color + Lang.get(quester.getPlayer(), "break");
+                    if (message.contains("<count>")) {
+                        message = message.replace("<count>", "" + color + e2.getAmount() + "/" + e.getAmount());
+                    } else {
+                        // Legacy
+                        message += " <item>" + color + ": " + e2.getAmount() + "/" + e.getAmount();
+                    }
                     if (depends.getPlaceholderApi() != null) {
                         message = PlaceholderAPI.setPlaceholders(quester.getPlayer(), message);
                     }
@@ -844,8 +849,13 @@ public class Quests extends JavaPlugin implements ConversationAbandonedListener
             for (final ItemStack e2 : data.blocksDamaged) {
                 if (e2.getType().equals(e.getType()) && e2.getDurability() == e.getDurability()) {
                     final ChatColor color = e2.getAmount() < e.getAmount() ? ChatColor.GREEN : ChatColor.GRAY;
-                    String message = color + Lang.get(quester.getPlayer(), "damage") + " <item>" 
-                                + color + ": " + e2.getAmount() + "/" + e.getAmount();
+                    String message = color + Lang.get(quester.getPlayer(), "damage");
+                    if (message.contains("<count>")) {
+                        message = message.replace("<count>", "" + color + e2.getAmount() + "/" + e.getAmount());
+                    } else {
+                        // Legacy
+                        message += " <item>" + color + ": " + e2.getAmount() + "/" + e.getAmount();
+                    }
                     if (depends.getPlaceholderApi() != null) {
                         message = PlaceholderAPI.setPlaceholders(quester.getPlayer(), message);
                     }
@@ -861,8 +871,13 @@ public class Quests extends JavaPlugin implements ConversationAbandonedListener
             for (final ItemStack e2 : data.blocksPlaced) {
                 if (e2.getType().equals(e.getType()) && e2.getDurability() == e.getDurability()) {
                     final ChatColor color = e2.getAmount() < e.getAmount() ? ChatColor.GREEN : ChatColor.GRAY;
-                    String message = color + Lang.get(quester.getPlayer(), "place") + " <item>" 
-                                + color + ": " + e2.getAmount() + "/" + e.getAmount();
+                    String message = color + Lang.get(quester.getPlayer(), "place");
+                    if (message.contains("<count>")) {
+                        message = message.replace("<count>", "" + color + e2.getAmount() + "/" + e.getAmount());
+                    } else {
+                        // Legacy
+                        message += " <item>" + color + ": " + e2.getAmount() + "/" + e.getAmount();
+                    }
                     if (depends.getPlaceholderApi() != null) {
                         message = PlaceholderAPI.setPlaceholders(quester.getPlayer(), message);
                     }
@@ -878,8 +893,13 @@ public class Quests extends JavaPlugin implements ConversationAbandonedListener
             for (final ItemStack e2 : data.blocksUsed) {
                 if (e2.getType().equals(e.getType()) && e2.getDurability() == e.getDurability()) {
                     final ChatColor color = e2.getAmount() < e.getAmount() ? ChatColor.GREEN : ChatColor.GRAY;
-                    String message = color + Lang.get(quester.getPlayer(), "use") + " <item>" 
-                                + color + ": " + e2.getAmount() + "/" + e.getAmount();
+                    String message = color + Lang.get(quester.getPlayer(), "use");
+                    if (message.contains("<count>")) {
+                        message = message.replace("<count>", "" + color + e2.getAmount() + "/" + e.getAmount());
+                    } else {
+                        // Legacy
+                        message += " <item>" + color + ": " + e2.getAmount() + "/" + e.getAmount();
+                    }
                     if (depends.getPlaceholderApi() != null) {
                         message = PlaceholderAPI.setPlaceholders(quester.getPlayer(), message);
                     }
@@ -895,8 +915,13 @@ public class Quests extends JavaPlugin implements ConversationAbandonedListener
             for (final ItemStack e2 : data.blocksCut) {
                 if (e2.getType().equals(e.getType()) && e2.getDurability() == e.getDurability()) {
                     final ChatColor color = e2.getAmount() < e.getAmount() ? ChatColor.GREEN : ChatColor.GRAY;
-                    String message = color + Lang.get(quester.getPlayer(), "cut") + " <item>" 
-                                + color + ": " + e2.getAmount() + "/" + e.getAmount();
+                    String message = color + Lang.get(quester.getPlayer(), "cut");
+                    if (message.contains("<count>")) {
+                        message = message.replace("<count>", "" + color + e2.getAmount() + "/" + e.getAmount());
+                    } else {
+                        // Legacy
+                        message += " <item>" + color + ": " + e2.getAmount() + "/" + e.getAmount();
+                    }
                     if (depends.getPlaceholderApi() != null) {
                         message = PlaceholderAPI.setPlaceholders(quester.getPlayer(), message);
                     }
@@ -915,8 +940,12 @@ public class Quests extends JavaPlugin implements ConversationAbandonedListener
             }
             final int amt = is.getAmount();
             final ChatColor color = crafted < amt ? ChatColor.GREEN : ChatColor.GRAY;
-            String message = color + Lang.get(quester.getPlayer(), "craftItem") + color + ": " + crafted + "/" 
-                        + is.getAmount();
+            String message = color + Lang.get(quester.getPlayer(), "craftItem");
+            if (message.contains("<count>")) {
+                message = message.replace("<count>", "" + color + crafted + "/" + is.getAmount());
+            } else {
+                message += color + ": " + crafted + "/" + is.getAmount();
+            }
             if (depends.getPlaceholderApi() != null) {
                 message = PlaceholderAPI.setPlaceholders(quester.getPlayer(), message);
             }
@@ -934,8 +963,12 @@ public class Quests extends JavaPlugin implements ConversationAbandonedListener
             }
             final int amt = is.getAmount();
             final ChatColor color = smelted < amt ? ChatColor.GREEN : ChatColor.GRAY;
-            String message = color + Lang.get(quester.getPlayer(), "smeltItem") + color + ": " + smelted + "/" 
-                        + is.getAmount();
+            String message = color + Lang.get(quester.getPlayer(), "smeltItem");
+            if (message.contains("<count>")) {
+                message = message.replace("<count>", "" + color + smelted + "/" + is.getAmount());
+            } else {
+                message += color + ": " + smelted + "/" + is.getAmount();
+            }
             if (depends.getPlaceholderApi() != null) {
                 message = PlaceholderAPI.setPlaceholders(quester.getPlayer(), message);
             }
@@ -953,8 +986,12 @@ public class Quests extends JavaPlugin implements ConversationAbandonedListener
             }
             final int amt = is.getAmount();
             final ChatColor color = enchanted < amt ? ChatColor.GREEN : ChatColor.GRAY;
-            String message = color + Lang.get(quester.getPlayer(), "enchItem") + color + ": " + enchanted + "/" 
-                        + is.getAmount();
+            String message = color + Lang.get(quester.getPlayer(), "enchItem");
+            if (message.contains("<count>")) {
+                message = message.replace("<count>", "" + color + enchanted + "/" + is.getAmount());
+            } else {
+                message += color + ": " + enchanted + "/" + is.getAmount();
+            }
             if (depends.getPlaceholderApi() != null) {
                 message = PlaceholderAPI.setPlaceholders(quester.getPlayer(), message);
             }
@@ -979,8 +1016,12 @@ public class Quests extends JavaPlugin implements ConversationAbandonedListener
             }
             final int amt = is.getAmount();
             final ChatColor color = brewed < amt ? ChatColor.GREEN : ChatColor.GRAY;
-            String message = color + Lang.get(quester.getPlayer(), "brewItem") + color + ": " + brewed + "/" 
-                        + is.getAmount();
+            String message = color + Lang.get(quester.getPlayer(), "brewItem");
+            if (message.contains("<count>")) {
+                message = message.replace("<count>", "" + color + brewed + "/" + is.getAmount());
+            } else {
+                message += color + ": " + brewed + "/" + is.getAmount();
+            }
             if (depends.getPlaceholderApi() != null) {
                 message = PlaceholderAPI.setPlaceholders(quester.getPlayer(), message);
             }
@@ -1005,8 +1046,12 @@ public class Quests extends JavaPlugin implements ConversationAbandonedListener
             }
             final int amt = is.getAmount();
             final ChatColor color = consumed < amt ? ChatColor.GREEN : ChatColor.GRAY;
-            String message = color + Lang.get(quester.getPlayer(), "consumeItem") + color + ": " + consumed + "/" 
-                        + is.getAmount();
+            String message = color + Lang.get(quester.getPlayer(), "consumeItem");
+            if (message.contains("<count>")) {
+                message = message.replace("<count>", "" + color + consumed + "/" + is.getAmount());
+            } else {
+                message += color + ": " + consumed + "/" + is.getAmount();
+            }
             if (depends.getPlaceholderApi() != null) {
                 message = PlaceholderAPI.setPlaceholders(quester.getPlayer(), message);
             }
@@ -1019,8 +1064,12 @@ public class Quests extends JavaPlugin implements ConversationAbandonedListener
         }
         if (stage.cowsToMilk != null) {
             final ChatColor color = data.getCowsMilked() < stage.cowsToMilk ? ChatColor.GREEN : ChatColor.GRAY;
-            String message = color + Lang.get(quester.getPlayer(), "milkCow")
-                        + color + ": " + data.getCowsMilked() + "/" + stage.cowsToMilk;
+            String message = color + Lang.get(quester.getPlayer(), "milkCow");
+            if (message.contains("<count>")) {
+                message = message.replace("<count>", "" + color + data.getCowsMilked() + "/" + stage.cowsToMilk);
+            } else {
+                message += color + ": " + data.getCowsMilked() + "/" + stage.cowsToMilk;
+            }
             if (depends.getPlaceholderApi() != null) {
                 message = PlaceholderAPI.setPlaceholders(quester.getPlayer(), message);
             }
@@ -1028,8 +1077,12 @@ public class Quests extends JavaPlugin implements ConversationAbandonedListener
         }
         if (stage.fishToCatch != null) {
             final ChatColor color = data.getFishCaught() < stage.fishToCatch ? ChatColor.GREEN : ChatColor.GRAY;
-            String message = color + Lang.get(quester.getPlayer(), "catchFish")
-                        + color + ": " + data.getFishCaught() + "/" + stage.fishToCatch;
+            String message = color + Lang.get(quester.getPlayer(), "catchFish");
+            if (message.contains("<count>")) {
+                message = message.replace("<count>", "" + color + data.getFishCaught() + "/" + stage.fishToCatch);
+            } else {
+                message += color + ": " + data.getFishCaught() + "/" + stage.fishToCatch;
+            }
             if (depends.getPlaceholderApi() != null) {
                 message = PlaceholderAPI.setPlaceholders(quester.getPlayer(), message);
             }
@@ -1045,16 +1098,28 @@ public class Quests extends JavaPlugin implements ConversationAbandonedListener
                                 ? ChatColor.GREEN : ChatColor.GRAY;
                         String message = "";
                         if (stage.locationsToKillWithin.isEmpty()) {
-                            message = color + Lang.get(quester.getPlayer(), "kill") + " " 
-                                    + ChatColor.AQUA + "<mob>" + color + ": " 
-                                    + (data.mobNumKilled.get(data.mobsKilled.indexOf(e2))) 
-                                    + "/" + (stage.mobNumToKill.get(stage.mobsToKill.indexOf(e)));
+                            message = color + Lang.get(quester.getPlayer(), "kill");
+                            if (message.contains("<count>")) {
+                                message = message.replace("<count>", "" + color 
+                                        + (data.mobNumKilled.get(data.mobsKilled.indexOf(e2))) + "/" 
+                                        + (stage.mobNumToKill.get(stage.mobsToKill.indexOf(e))));
+                            } else {
+                                message += ChatColor.AQUA + "<mob>" + color + ": "
+                                        + (data.mobNumKilled.get(data.mobsKilled.indexOf(e2))) + "/" 
+                                        + (stage.mobNumToKill.get(stage.mobsToKill.indexOf(e)));
+                            }
                         } else {
-                            message = color + Lang.get(quester.getPlayer(), "killAtLocation") + color + ": " 
-                                    + (data.mobNumKilled.get(data.mobsKilled.indexOf(e2))) + "/" 
-                                    + (stage.mobNumToKill.get(stage.mobsToKill.indexOf(e)));
+                            message = color + Lang.get(quester.getPlayer(), "killAtLocation");
                             message = message.replace("<location>", 
                                     stage.killNames.get(stage.mobsToKill.indexOf(e)));
+                            if (message.contains("<count>")) {
+                                message = message.replace("<count>", "" + color 
+                                        + (data.mobNumKilled.get(data.mobsKilled.indexOf(e2))) + "/" 
+                                        + (stage.mobNumToKill.get(stage.mobsToKill.indexOf(e))));
+                            } else {
+                                message += color + ": " + (data.mobNumKilled.get(data.mobsKilled.indexOf(e2))) + "/" 
+                                        + (stage.mobNumToKill.get(stage.mobsToKill.indexOf(e)));
+                            }
                         }
                         if (depends.getPlaceholderApi() != null) {
                             message = PlaceholderAPI.setPlaceholders(quester.getPlayer(), message);
@@ -1070,8 +1135,12 @@ public class Quests extends JavaPlugin implements ConversationAbandonedListener
         }
         if (stage.playersToKill != null) {
             final ChatColor color = data.getPlayersKilled() < stage.playersToKill ? ChatColor.GREEN : ChatColor.GRAY;
-            String message = color + Lang.get(quester.getPlayer(), "killPlayer")
-                        + color + ": " + data.getPlayersKilled() + "/" + stage.playersToKill;
+            String message = color + Lang.get(quester.getPlayer(), "killPlayer");
+            if (message.contains("<count>")) {
+                message = message.replace("<count>", "" + color + data.getPlayersKilled() + "/" + stage.playersToKill);
+            } else {
+                message += color + ": " + data.getPlayersKilled() + "/" + stage.playersToKill;
+            }
             if (depends.getPlaceholderApi() != null) {
                 message = PlaceholderAPI.setPlaceholders(quester.getPlayer(), message);
             }
@@ -1087,9 +1156,12 @@ public class Quests extends JavaPlugin implements ConversationAbandonedListener
             final Integer npc = stage.itemDeliveryTargets.get(index);
             index++;
             final ChatColor color = delivered < toDeliver ? ChatColor.GREEN : ChatColor.GRAY;
-            String message = color + Lang.get(quester.getPlayer(), "deliver")
-                        + color + ": " + delivered + "/" + toDeliver;
-            message = message.replace("<npc>", depends.getNPCName(npc));
+            String message = color + Lang.get(quester.getPlayer(), "deliver").replace("<npc>", depends.getNPCName(npc));
+            if (message.contains("<count>")) {
+                message = message.replace("<count>", "" + color + delivered + "/" + toDeliver);
+            } else {
+                message += color + ": " + delivered + "/" + toDeliver;
+            }
             if (depends.getPlaceholderApi() != null) {
                 message = PlaceholderAPI.setPlaceholders(quester.getPlayer(), message);
             }
@@ -1104,8 +1176,8 @@ public class Quests extends JavaPlugin implements ConversationAbandonedListener
             for (final Entry<Integer, Boolean> e : data.citizensInteracted.entrySet()) {
                 if (e.getKey().equals(n)) {
                     final ChatColor color = e.getValue() == false ? ChatColor.GREEN : ChatColor.GRAY;
-                    String message = color + Lang.get(quester.getPlayer(), "talkTo");
-                    message = message.replace("<npc>", depends.getNPCName(n));
+                    String message = color + Lang.get(quester.getPlayer(), "talkTo")
+                            .replace("<npc>", depends.getNPCName(n));
                     if (depends.getPlaceholderApi() != null) {
                         message = PlaceholderAPI.setPlaceholders(quester.getPlayer(), message);
                     }
@@ -1121,9 +1193,20 @@ public class Quests extends JavaPlugin implements ConversationAbandonedListener
                         final ChatColor color = data.citizenNumKilled.get(data.citizensKilled.indexOf(n2)) 
                                 < stage.citizenNumToKill.get(stage.citizensToKill.indexOf(n)) == false 
                                 ? ChatColor.GREEN : ChatColor.GRAY;
-                        String message = color + Lang.get(quester.getPlayer(), "kill") + " " + depends.getNPCName(n) 
-                                    + color + " " + data.citizenNumKilled.get(stage.citizensToKill.indexOf(n)) + "/" 
+                        String message = color + Lang.get(quester.getPlayer(), "kill");
+                        if (message.contains("<mob>")) {
+                            message = message.replace("<mob>", depends.getNPCName(n));
+                        } else {
+                            message += " " + depends.getNPCName(n);
+                        }
+                        if (message.contains("<count>")) {
+                            message = message.replace("<count>", "" + color 
+                                    + data.citizenNumKilled.get(stage.citizensToKill.indexOf(n)) + "/" 
+                                    + stage.citizenNumToKill.get(stage.citizensToKill.indexOf(n)));
+                        } else {
+                            message += color + ": " + data.citizenNumKilled.get(stage.citizensToKill.indexOf(n)) + "/" 
                                     + stage.citizenNumToKill.get(stage.citizensToKill.indexOf(n));
+                        }
                         if (depends.getPlaceholderApi() != null) {
                             message = PlaceholderAPI.setPlaceholders(quester.getPlayer(), message);
                         }
@@ -1136,8 +1219,15 @@ public class Quests extends JavaPlugin implements ConversationAbandonedListener
             for (final Entry<EntityType, Integer> e2 : data.mobsTamed.entrySet()) {
                 if (e.getKey().equals(e2.getKey())) {
                     final ChatColor color = e2.getValue() < e.getValue() == false ? ChatColor.GREEN : ChatColor.GRAY;
-                    final String message = color + Lang.get(quester.getPlayer(), "tame") + " " + "<mob>" 
-                                + color + ": " + e2.getValue() + "/" + e.getValue();
+                    String message = color + Lang.get(quester.getPlayer(), "tame");
+                    if (!message.contains("<mob>")) {
+                        message += " <mob>";
+                    }
+                    if (message.contains("<count>")) {
+                        message = message.replace("<count>", "" + color + e2.getValue() + "/" + e.getValue());
+                    } else {
+                        message += color + ": " + e2.getValue() + "/" + e.getValue();
+                    }
                     if (getSettings().canTranslateNames()) {
                         localeQuery.sendMessage(quester.getPlayer(), message, e.getKey(), null);
                     } else {
@@ -1151,10 +1241,14 @@ public class Quests extends JavaPlugin implements ConversationAbandonedListener
             for (final Entry<DyeColor, Integer> e2 : data.sheepSheared.entrySet()) {
                 if (e.getKey().equals(e2.getKey())) {
                     final ChatColor color = e2.getValue() < e.getValue() == false ? ChatColor.GREEN : ChatColor.GRAY;
-                    String message = color + Lang.get(quester.getPlayer(), "shearSheep") 
-                                + color + ": " + e2.getValue() + "/" + e.getValue();
+                    String message = color + Lang.get(quester.getPlayer(), "shearSheep");
                     message = message.replace("<color>", 
                             MiscUtil.getPrettyDyeColorName(MiscUtil.getProperDyeColor(e.getKey().name())));
+                    if (message.contains("<count>")) {
+                        message = message.replace("<count>", "" + color + e2.getValue() + "/" + e.getValue());
+                    } else {
+                        message += color + ": " + e2.getValue() + "/" + e.getValue();
+                    }
                     quester.getPlayer().sendMessage(message);
                 }
             }
diff --git a/main/src/main/resources/strings.yml b/main/src/main/resources/strings.yml
index cd86cebed..bb592a1b8 100644
--- a/main/src/main/resources/strings.yml
+++ b/main/src/main/resources/strings.yml
@@ -644,25 +644,25 @@ questAccepted: "Quest accepted: <quest>"
 currentQuest: "Current Quests:"
 completedQuest: "Completed Quests:"
 noMoreQuest: "No more quests available."
-break: "Break"
-damage: "Damage"
-place: "Place"
-use: "Use"
-cut: "Shear"
-craftItem: "Craft <item>"
-smeltItem: "Smelt <item>"
-enchItem: "Enchant <item>"
-brewItem: "Brew <item>"
-consumeItem: "Consume <item>"
-catchFish: "Catch Fish"
-milkCow: "Milk Cow"
-kill: "Kill"
-killAtLocation: "Kill <mob> at <location>"
-killPlayer: "Kill a Player"
-deliver: "Deliver <item> to <npc>"
+break: "Break <item>: <count>"
+damage: "Damage <item>: <count>"
+place: "Place <item>: <count>"
+use: "Use <item>: <count>"
+cut: "Shear <item>: <count>"
+craftItem: "Craft <item>: <count>"
+smeltItem: "Smelt <item>: <count>"
+enchItem: "Enchant <item>: <count>"
+brewItem: "Brew <item>: <count>"
+consumeItem: "Consume <item>: <count>"
+catchFish: "Catch Fish: <count>"
+milkCow: "Milk Cow: <count>"
+kill: "Kill <mob>: <count>"
+killAtLocation: "Kill <mob> at <location>: <count>"
+killPlayer: "Kill a Player: <count>"
+deliver: "Deliver <item> to <npc>: <count>"
 talkTo: "Talk to <npc>"
-tame: "Tame"
-shearSheep: "Shear <color> Sheep"
+tame: "Tame <mob>: <count>"
+shearSheep: "Shear <color> Sheep: <count>"
 goTo: "Go to <location>"
 completed: "Completed"
 redoCompleted: "(Completed)"