Hello all! I have a plugin in which I give players the ability to blow up large swathes of terrain (just turning it all to air and the occasional fallingblock), and that terrain proceeds to regenerate over the course of several minutes. I do this by simply saving all that terrain as a list of blockstates, creating a bukkitrunnable, and running through that list over the course of thirty minutes or an hour and .updating all those blockstates by force. However, what if the server saves and crashes in the interim? I am a coder, and must plan for all eventualities! Even this. And I would be truly shamed if a player's chest full of diamond blocks vanished because of my poor coding! If the server saved and crashed while my plugin was still restoring blocks, the server would reload to the point of the save, where the terrain is still destroyed, but it wouldn't continue running the bukkitrunnable! Therefore, I need some way to store these BlockStates in a .yml file or something of that sort, and then re-acquire them on server start up to clean up everything if there are any pending repairs to be made. Currently, I've been trying to use gson to convert BlockStates into strings that I can store, but I'm having some difficulty. Code (Text): Gson gson = new GsonBuilder().setPrettyPrinting().create(); String s = gson.toJson(blockstate.get(1)); player.sendMessage(s); Doesn't even work, for example! Throws an error (assume that blockstate there is a List<BlockState>). Any tips or tricks, you folks?