Yes, I know that Material.toString() exists. I need to get the IN-GAME names of the items. For example horse armor in Material.toString() returns IRON_BARDING, while it's actually called IRON_HORSE_ARMOR. And here's another example: command blocks return as COMMAND, while it's actually COMMAND_BLOCK. How can I get the "correct" item names without checking and correcting a ton? Just fixed it! Marking solved Alright the solution is to get the item asNMSCopy(), call the save() method on that and then call the .getString("id") on that. EDIT by Moderator: merged posts, please use the edit button instead of double posting.