diff --git a/src/engine/objects/ItemTemplate.java b/src/engine/objects/ItemTemplate.java
index 5e7a6e03..1d488c18 100644
--- a/src/engine/objects/ItemTemplate.java
+++ b/src/engine/objects/ItemTemplate.java
@@ -12,6 +12,7 @@ import engine.Enum;
 import engine.math.Vector3fImmutable;
 import org.json.simple.JSONArray;
 import org.json.simple.JSONObject;
+import org.pmw.tinylog.Logger;
 
 import java.util.EnumSet;
 import java.util.HashMap;
@@ -54,114 +55,118 @@ public class ItemTemplate {
 
     public ItemTemplate(JSONObject jsonObject) {
 
-        // Reading a String
+        try {
+            // Reading a String
 
-        obj_name = (String) jsonObject.get("obj_name");
+            obj_name = (String) jsonObject.get("obj_name");
 
-        // Reading floats from an array
+            // Reading floats from an array
 
-        JSONArray scaleData = (JSONArray) jsonObject.get("obj_scale");
-        obj_scale = new Vector3fImmutable(((Double) scaleData.get(0)).floatValue(), ((Double) scaleData.get(1)).floatValue(),
-                ((Double) scaleData.get(2)).floatValue());
+            JSONArray scaleData = (JSONArray) jsonObject.get("obj_scale");
+            obj_scale = new Vector3fImmutable(((Double) scaleData.get(0)).floatValue(), ((Double) scaleData.get(1)).floatValue(),
+                    ((Double) scaleData.get(2)).floatValue());
 
-        // Reading an integer value
+            // Reading an integer value
 
-        obj_render_object = ((Long) jsonObject.get("obj_render_object")).intValue();
-        obj_icon = ((Long) jsonObject.get("obj_icon")).intValue();
+            obj_render_object = ((Long) jsonObject.get("obj_render_object")).intValue();
+            obj_icon = ((Long) jsonObject.get("obj_icon")).intValue();
 
-        // Reading float values
+            // Reading float values
 
-        combat_health_current = ((Double) jsonObject.get("combat_health_current")).floatValue();
-        combat_health_full = ((Double) jsonObject.get("combat_health_full")).floatValue();
+            combat_health_current = ((Double) jsonObject.get("combat_health_current")).floatValue();
+            combat_health_full = ((Double) jsonObject.get("combat_health_full")).floatValue();
 
-        // Reading a hashmap of floats
+            // Reading a hashmap of floats
 
-        JSONObject resist_json = (JSONObject) jsonObject.get("combat_attack_resist");
+            JSONObject resist_json = (JSONObject) jsonObject.get("combat_attack_resist");
 
-        for (Object key : resist_json.keySet()) {
-            float resist = ((Double) resist_json.get(key)).floatValue();
-            combat_attack_resist.put((String) key, resist);
-        }
+            for (Object key : resist_json.keySet()) {
+                float resist = ((Double) resist_json.get(key)).floatValue();
+                combat_attack_resist.put((String) key, resist);
+            }
 
-        // Parsing an enum
+            // Parsing an enum
 
-        item_type = Enum.ItemType.valueOf((String) jsonObject.get("item_type"));
-        item_eq_slots_value = ((Long) jsonObject.get("item_eq_slots_value")).intValue();
-        item_eq_slots_type = (boolean) jsonObject.get("item_eq_slots_type");
+            item_type = Enum.ItemType.valueOf((String) jsonObject.get("item_type"));
+            item_eq_slots_value = ((Long) jsonObject.get("item_eq_slots_value")).intValue();
+            item_eq_slots_type = (boolean) jsonObject.get("item_eq_slots_type");
 
-        // Parsing an enumset
+            // Parsing an enumset
 
-        JSONArray eq_slots_or = (JSONArray) jsonObject.get("item_eq_slots_or");
+            JSONArray eq_slots_or = (JSONArray) jsonObject.get("item_eq_slots_or");
 
-        if (eq_slots_or.isEmpty() == false)
-            for (Object o : eq_slots_or)
-                item_eq_slots_or.add(Enum.ItemEquipSlotType.valueOf((String) o));
+            if (eq_slots_or.isEmpty() == false)
+                for (Object o : eq_slots_or)
+                    item_eq_slots_or.add(Enum.ItemEquipSlotType.valueOf((String) o));
 
-        JSONArray eq_slots_and = (JSONArray) jsonObject.get("item_eq_slots_and");
+            JSONArray eq_slots_and = (JSONArray) jsonObject.get("item_eq_slots_and");
 
-        if (eq_slots_and.isEmpty() == false)
-            for (Object o : eq_slots_or)
-                item_eq_slots_and.add(Enum.ItemEquipSlotType.valueOf((String) o));
+            if (eq_slots_and.isEmpty() == false)
+                for (Object o : eq_slots_or)
+                    item_eq_slots_and.add(Enum.ItemEquipSlotType.valueOf((String) o));
 
-        item_value = ((Long) jsonObject.get("item_value")).intValue();
-        item_wt = ((Long) jsonObject.get("item_wt")).intValue();
-        item_passive_defense_mod = ((Double) jsonObject.get("item_passive_defense_mod")).floatValue();
-        item_base_name = (String) jsonObject.get("item_base_name");
-        item_dsc = (String) jsonObject.get("item_dsc");
-        item_render_object_female = ((Long) jsonObject.get("item_render_object_female")).intValue();
-        item_health_full = ((Double) jsonObject.get("item_health_full")).floatValue();
+            item_value = ((Long) jsonObject.get("item_value")).intValue();
+            item_wt = ((Long) jsonObject.get("item_wt")).intValue();
+            item_passive_defense_mod = ((Double) jsonObject.get("item_passive_defense_mod")).floatValue();
+            item_base_name = (String) jsonObject.get("item_base_name");
+            item_dsc = (String) jsonObject.get("item_dsc");
+            item_render_object_female = ((Long) jsonObject.get("item_render_object_female")).intValue();
+            item_health_full = ((Double) jsonObject.get("item_health_full")).floatValue();
 
-        Object skills_used = jsonObject.get("item_skill_used");
+            Object skills_used = jsonObject.get("item_skill_used");
 
-        if (skills_used instanceof String) {
-            String skilString = (String) skills_used;
-            skilString = skilString.replaceAll("\\s", "");
-            skilString = skilString.replaceAll(",", "");
-            item_skill_used.add(Enum.CharacterSkills.valueOf(skilString));
-        }
+            if (skills_used instanceof String) {
+                String skilString = (String) skills_used;
+                skilString = skilString.replaceAll("\\s", "");
+                skilString = skilString.replaceAll(",", "");
+                item_skill_used.add(Enum.CharacterSkills.valueOf(skilString));
+            }
 
-        Object mastery_used = jsonObject.get("item_skill_mastery_used");
+            Object mastery_used = jsonObject.get("item_skill_mastery_used");
 
-        if (mastery_used instanceof String) {
-            String masteryString = (String) mastery_used;
-            masteryString = masteryString.replaceAll("\\s", "");
-            masteryString = masteryString.replaceAll(",", "");
-            item_skill_mastery_used.add(Enum.CharacterSkills.valueOf(masteryString));
-        }
+            if (mastery_used instanceof String) {
+                String masteryString = (String) mastery_used;
+                masteryString = masteryString.replaceAll("\\s", "");
+                masteryString = masteryString.replaceAll(",", "");
+                item_skill_mastery_used.add(Enum.CharacterSkills.valueOf(masteryString));
+            }
 
-        item_parry_anim_id = ((Long) jsonObject.get("item_parry_anim_id")).intValue();
+            item_parry_anim_id = ((Long) jsonObject.get("item_parry_anim_id")).intValue();
 
-        // Item Type == ARMOR?
+            // Item Type == ARMOR?
 
-        if (jsonObject.containsValue("item_bulk_factor"))
-            item_bulk_factor = ((Double) jsonObject.get("item_bulk_factor")).floatValue();
+            if (jsonObject.containsValue("item_bulk_factor"))
+                item_bulk_factor = ((Double) jsonObject.get("item_bulk_factor")).floatValue();
 
-        if (jsonObject.containsValue("item_defense_rating"))
-            item_defense_rating = ((Double) jsonObject.get("item_defense_rating")).floatValue();
+            if (jsonObject.containsValue("item_defense_rating"))
+                item_defense_rating = ((Double) jsonObject.get("item_defense_rating")).floatValue();
 
-        JSONArray itemflags = (JSONArray) jsonObject.get("item_flags");
+            JSONArray itemflags = (JSONArray) jsonObject.get("item_flags");
 
-        if (itemflags.isEmpty() == false)
-            for (Object o : itemflags)
-                item_flags.add(Enum.ItemFlags.valueOf((String) o));
+            if (itemflags.isEmpty() == false)
+                for (Object o : itemflags)
+                    item_flags.add(Enum.ItemFlags.valueOf((String) o));
 
-        JSONArray itemUseflags = (JSONArray) jsonObject.get("item_use_flags");
+            JSONArray itemUseflags = (JSONArray) jsonObject.get("item_use_flags");
 
-        if (itemUseflags.isEmpty() == false)
-            for (Object o : itemUseflags)
-                item_use_flags.add(Enum.ItemUseFlags.valueOf((String) o));
+            if (itemUseflags.isEmpty() == false)
+                for (Object o : itemUseflags)
+                    item_use_flags.add(Enum.ItemUseFlags.valueOf((String) o));
 
-        item_initial_charges = ((Long) jsonObject.get("item_initial_charges")).intValue();
+            item_initial_charges = ((Long) jsonObject.get("item_initial_charges")).intValue();
 
-        JSONArray skill_required = (JSONArray) jsonObject.get("item_skill_req");
+            JSONArray skill_required = (JSONArray) jsonObject.get("item_skill_req");
 
-        for (Object o : skill_required) {
-            JSONObject skill_req = (JSONObject) o;
-            String skill_type = (String) skill_req.get("skill_type");
-            skill_type = skill_type.replaceAll("\\s", "");
-            skill_type = skill_type.replaceAll(",", "");
-            int skill_level = ((Long) skill_req.get("skill_level")).intValue();
-            item_skill_required.put(Enum.CharacterSkills.valueOf(skill_type), skill_level);
+            for (Object o : skill_required) {
+                JSONObject skill_req = (JSONObject) o;
+                String skill_type = (String) skill_req.get("skill_type");
+                skill_type = skill_type.replaceAll("\\s", "");
+                skill_type = skill_type.replaceAll(",", "");
+                int skill_level = ((Long) skill_req.get("skill_level")).intValue();
+                item_skill_required.put(Enum.CharacterSkills.valueOf(skill_type), skill_level);
+            }
+        } catch (Exception e) {
+            Logger.error(e);
         }
 
     }