I seem to reinvent the wheel -_- The next task is to save the complete data about all things in the player’s inventory in the json line (which will be later saved to the database, and if necessary, the player’s inventory will be restored using this information). If there are no problems with the inventory itself (you can simply skip it through the loop and get all the items), then what about the items? an ordinary ItemStack does not give a complete picture of an item, because an item can store attributes in itself, or be a shalker box, which will also store other items, or even have non-standard tags. At the same time, NBTTagCompound does not have a method like getTags (), which can return a collection of all available tags. With it, you can get the tag only if you have the name of the tag. Alternatively, knowing the structure of the subject (for example, take information from a wiki), manually get all the tags: Code (Java): net.minecraft.server.v1_12_R1.ItemStack nmsStack = CraftItemStack.asNMSCopy(item); NBTTagCompound nmsCompound = (nmsStack.hasTag()) ? nmsStack.getTag() : new NBTTagCompound(); nmsCompound.getString("some tag"); and then also put it in a string after processing. This method will turn out to be very cumbersome, but working (and in which case this json string can be turned back into an item for the player). But how much will it be right? Most likely this has already been done before me, just tell me. Thanks in advance.