Recently I've had to deal with an outbreak of issues with people having trouble with serialized data not working on newest versions of PocketMine-MP. While serialization may seem like a pretty nice simple way to store data that doesn't require more code, storing serialized objects is a very bad idea, because any changes to the classes you're serializing (which can happen any time in PM core!!!) WILL BREAK YOUR DATA. As an example, SlapperCache abused serialization to store CompoundTag and Item objects. Because these classes and their descendents subsequently changed in their implementations, the data stored no longer works after unserializing. As seen in the most recent commits, a whole bunch of ugly hacks were needed to try and salvage the data. TL;DR: Stored data depending on code is BAD. Do not abuse serialization. Your data storage format should always be independent of the code reading it. If it is not, it can and will break.