TL;DR Is there any value I can retrieve from a given ItemStack to uniquely identify it if parts of it change down the line? --------------------------------- Hello, Whenever a player breaks a block, it will add a number to a HashMap that is essentially like a block counter. Every 30 seconds, the server will then run through this HashMap and add to the Block Counter found in the lore of their pickaxe. The problem is that I am not sure how to uniquely identify the ItemStack they use to break blocks on. Say a player breaks a block with a Diamond Pickaxe, what value would I store as an identifier in this HashMap so 30 seconds later I know which ItemStack to update the lore to inside of a player's inventory (if it's still there). Getting the hashCode from the ItemStack does not seem to do the job because it changes if the ItemStack is updated at all (i.e. name, lore, enchantment). Furthermore, tracking this ItemStack through it's name, material, enchantments, etc. would not be possible because all of these values COULD change within these 30 seconds. The reason I am not adding to the block counter the second after they break a block is because I believe this is an inefficient way to do this when tens of players are mining blocks with efficiency 100.