I've been looking around and haven't really noticed any way of getting values from lore, Since I've had this for awhile and its helpful for the project i'm doing I decided to post. This is to grab 1 value. Code:java public static String getValueFromLore(List<String> par1, String par2) { String retString = "";try {if (par1 != null) {for (int i = 0; i < par1.size(); i++) {if (par1.get(i).contains(par2)) {retString = cleanUpLore(par1.get(i));return retString;}}} elsereturn retString;} catch (Exception e) {outputError(e);}return retString;} private static String cleanUpLore(String par1) { String[] arg = par1.split(":");arg[1] = ChatColor.stripColor(arg[1]);String str = arg[1].replace("%", "").trim().toString();return str;} How to use: int health = getValueFromLore(lore, "Health"); Now if you are doing something like this "Damage: 100 - 150" for a rpg or whatever you would use this for. This is what you would do Code:java public static int getMinValueFromLore(ItemStack item, String value) { int returnVal = 0;ItemMeta meta = item.getItemMeta();try {List<String> lore = meta.getLore();if (lore != null) {for (int i = 0; i < lore.size(); i++) {if (lore.get(i).contains(value)) {String vals = lore.get(i).split(":")[1];vals = ChatColor.stripColor(vals);vals = vals.split("-")[0];returnVal = Integer.parseInt(vals.trim());}}}} catch (Exception e) {outputError(e);}return returnVal;} public static int getMaxValueFromLore(ItemStack item, String value) { int returnVal = 0;ItemMeta meta = item.getItemMeta();try {List<String> lore = meta.getLore();if (lore != null) {for (int i = 0; i < lore.size(); i++) {if (lore.get(i).contains(value)) {String vals = lore.get(i).split(":")[1];vals = ChatColor.stripColor(vals);vals = vals.split("-")[1];returnVal = Integer.parseInt(vals.trim());}}}} catch (Exception e) {outputError(e);}return returnVal;} To do this: int damageMin = getMinValueFromLore(weapon, "Damage"); int damageMax = getMaxValueFromLore(weapon, "Damage");