KeepChunksInRam
Summary
KeepChunksInRam (KCIR) is a lightweight and simple tool which lets the server operator or any privileged user select specific chunks which should never be unloaded. Keeping certain chunks in memory can decrease the load of the filesystem. Also it potentially prevents some bugs which makes players spawn inside of a wall or falling into the void after being teleported.
Keeping a chunk loaded also has some additional useful effects:
- Redstone circuits and clocks stay functioning.
- Saplings, crops, etc. keep growing.
- Villagers and animals keep breeding.
Warning: Keeping a large amount of chunks in memory can have a negative effect on the server performance if the operating system is forced to swap out chunks to the harddisk because of a lack of available RAM. In some cases it might be necessary to adjust the parameters of the JVM.
KCIR stores the coordinates of the chunks in a human readable format in the file chunks.txt in the plugins data folder using the following format:
worldxz
or
worldxz !squarerange
Each line contains one chunk list entry including the name of the world the chunk belongs to. New lines can be added manually at any time. When the list is being edited manually, it is important to leave an empty line at the end of the list.
Commands
The command kcir
accepts the arguments add (adds an entry to the list), remove (removes an entry from the list), load (reloads the chunks.txt file), store (stores the entries to chunks.txt), clear (clears the list) and list (prints a list of all loaded entries).
Adding an entry to the list
Usage: kcir add
(only in-game) or kcir add [world] [x] [z]
(in-game or via console)
Permission: kcir.add
or operator privilege
Removing an entry from the list
Usage: kcir remove
(only in-game) or kcir remove [world] [x] [z]
(in-game or via console)
Permission: kcir.remove
or operator privilege
Loading the entries from chunks.txt
Usage: kcir load
(in-game or via console)
Permission: kcir.load
or operator privilege
Storing the entries to chunks.txt
Usage: kcir store
(ingame or via console)
Permission: kcir.store
or operator privilege
Clearing the list
Usage: kcir clear
(ingame or via console)
Permission: kcir.clear
or operator privilege
Printing the list
Useage: kcir list
(ingame or via console)
Permission: kcir.list
or operator privilege
About range entries
If an area of chunks should not be unloaded, it is not necessary to add each single chunk to the list. You should use a range entry instead:
Example:
world 0 0 !square 20
This example will keep a total of 1600 chunks loaded (from x:-20, z:-20 to x:20, z:20). This syntax can be used with the add command or can be manually added to the chunks.txt file. In order to remove the entry, use the remove command and pass only the coordinates to it.