Chunks and entities will now be saved to disk when they go out of the render distance or when the game is closed. The file names include the chunk positions so when I need to load data at a specific chunk location I can do a file lookup for what the filename should be. Disk read and writes are multithreaded which help with reducing hitching. The data uses Run-length encoding to reduce load times and file size. On average my chunk file sizes for 65k blocks are around 1-2kb.