I need to store information about players in my plugin into yml file using YamlConfiguration or other type of storage and I would like to hear how more experienced people deal with this. I look for performance and flexibility. When I add something new in future versions, I want users to keep their old data if possible and I want to ease maintenance of the data overally. Which one is better ? - Currently I am using ObjectStream to store things as HashMap<String, String> or HashMap<String ArrayList<Integer>>. I don't need users to be able to modify those. Is it generally better to store things in yml file or does it depend only on one's preference ? When to save ? - Now I use intervals defined in config to save all information I need, 15 minutes by default. In my plugin, I listen for such events as BlockBreak or EntityDeath, so pretty much can be done in 15 minutes. Is is OK to save more often, even every minute to prevent data loss ? (I'm talking about few strings and integers, maybe one or two small string lists per player.) How to save ? - Is it better to save all information in one file or to create separate file for every player or every unit I need to keep information about ? What if I know exactly when I need those information (player join/leave) ? Is it wise to have more files and save current ones more frequently, if I know I need only few of them at a time ? Few tips ? - Share your knowledge with me please. I am new to java and plugin making so I need a lot of help, especially with storage. Thanks.