How to Set Up Chunk Loaders Without Lag
Set up chunk loaders on a Minecraft server without killing performance: vanilla spawn chunks, plugin options like BetterChunkLoader, per-player limits, online-only loading, and Paper chunk config.
Chunk loading is one of those features that players love and server owners dread. Players want their farms running 24/7, their hoppers feeding, their mob grinders producing loot while they explore the opposite corner of the world. But every loaded chunk costs memory and tick time, entities process, redstone fires, hoppers transfer, crops grow, and the server pays for all of it whether a player is nearby or not. The art is giving players the chunk loading they want without handing them a tool to melt the server.
What chunk loading actually means
Minecraft divides the world into 16x16 block columns called chunks. Only chunks near a player are "loaded", meaning the server processes their block ticks, entity AI, redstone updates, and scheduled events. When no player is near a chunk, it goes dormant. Nothing happens there: crops freeze, mobs stand still, hoppers stop transferring.
A chunk loader keeps one or more chunks loaded regardless of player proximity. The server treats them as if a player is standing there, processing everything inside them. This is exactly why farms "work while you're away", and exactly why it kills TPS when abused.
Vanilla chunk loading methods
Spawn chunks
Every world has spawn chunks, a fixed area around the world spawn that is always loaded. In Java Edition, this is a roughly 23x23 chunk area (368x368 blocks) centered on the spawn point. These chunks process everything: redstone, entities, block ticks, the lot. Many players build their main farms here to take advantage of the free permanent loading.
The downside: every player's spawn-chunk farm shares the same budget. If three players each build a sorting system and a mob grinder in the spawn chunks, that area becomes the TPS bottleneck. On Paper, you can control spawn chunk loading with:
# paper-world.yml
keep-spawn-loaded: false
Setting this to false disables spawn chunk loading entirely, which saves significant resources but breaks any farms built there. Consider this for worlds where spawn chunks are not used for farms (like hub worlds).
Nether portal chunk loading
When an entity travels through a nether portal, the destination chunks load for a brief period. Technical players exploit this by sending items through portals on a timer, keeping the destination chunks loaded indefinitely. This is vanilla behavior and works without any plugins, but it is fragile, if the item stream breaks (hopper despawn, chunk unload timing), the chain breaks.
On Paper, this behavior can be configured:
# paper-world.yml
portal-create-radius: 16
/forceload command
Operators can force-load chunks with the built-in command:
/forceload add 0 0
/forceload add 0 0 100 100 # loads a range of chunks
/forceload query # lists all force-loaded chunks
/forceload remove 0 0 # unloads a specific chunk
Force-loaded chunks behave like spawn chunks, fully ticked at all times. This is the simplest "chunk loader" for admins but offers no player-facing controls, no limits, and no tracking. It is fine for one or two staff-maintained farms but does not scale to a player feature.
Plugin chunk loaders
BetterChunkLoader
BetterChunkLoader is the most popular chunk loading plugin for Spigot/Paper servers. It provides two types of loaders:
- Online-only loaders, chunks load only while the owner is online, anywhere on the server. When the owner disconnects, the chunks unload. This is the safer option for most servers because the maximum loaded chunks is bounded by online player count.
- Always-on loaders, chunks load 24/7, even when the owner is offline. This is what players want but what server owners fear. Use sparingly and with strict limits.
Configuration revolves around limits:
# BetterChunkLoader config
max-online-chunks-per-player: 9
max-always-on-chunks-per-player: 1
Nine online-only chunks covers a 3x3 area, enough for a single farm setup. One always-on chunk is generous enough for a key hopper system but not enough to keep an entire base loaded. Adjust these numbers based on your hardware and player count.
ChunkLoader
A simpler alternative to BetterChunkLoader. Players place a special block (configured in the plugin) to mark a chunk as loaded. The plugin tracks loader blocks and unloads chunks when the block is removed. It supports:
- Permission-based access (only certain ranks can place loaders)
- Per-player chunk limits
- Automatic cleanup of loaders placed by banned or inactive players
Balancing chunk loaders
The key to offering chunk loaders without destroying performance is layered restrictions:
| Restriction | Why | Recommended setting |
|---|---|---|
| Per-player chunk limit | Prevents one player from loading 100 chunks | 4–9 online, 0–1 always-on |
| Online-only by default | Scales with player count naturally | Always-on as a premium/rank perk |
| No entity ticking in loaded chunks | Prevents loaded mob farms from running unattended | Paper entity-activation-range handles this |
| Maximum server-wide loaded chunks | Hard cap prevents cumulative overload | 50–100 total across all players |
| Inactive cleanup | Removes loaders from players who haven't logged in | 30 days of inactivity |
Performance impact and monitoring
Each loaded chunk adds approximately 0.05-0.1ms of tick time under normal conditions (passive mobs, some redstone, regular block ticks). A chunk with a dense mob farm, active redstone, and hundreds of hopper transfers can add 1-2ms per tick. With a 50ms tick budget (20 TPS), 25 "heavy" loaded chunks consume your entire budget.
Monitor loaded chunk performance with Spark:
/spark profiler start --thread server
# Let it run during peak hours
/spark profiler stop
Look for chunk tick times and identify which loaded chunks cost the most. If a player's chunk loader is hosting a lag machine disguised as a farm, you will see it in the profiler. Combine this data with general optimization to maintain healthy TPS.
Alternatives to chunk loading
Before adding chunk loaders, consider whether players actually need them:
- Offline time compensation plugins, some plugins simulate farm output based on elapsed time, giving players items as if their farm ran while they were offline. No chunk loading needed.
- Scheduled tasks, for server-owned farms (like a public mob grinder), use a plugin to run commands on a schedule that spawns loot into a chest, simulating continuous production.
- Larger entity activation ranges, instead of loading distant chunks, increase the range at which entities tick around players. This keeps farms running while the player is within a few hundred blocks, without permanent loading.
- Central farm areas, designate an area near spawn as "the farm district" where spawn chunks handle the loading naturally. Players build their farms there instead of at their bases.
Each approach has tradeoffs, but all of them are lighter on the server than actual chunk loading. For most survival servers, online-only chunk loaders with strict limits strike the best balance between player satisfaction and server health.
Need a server that handles this? Astroworld Hosting runs NVMe SSD, Pterodactyl panel, and DDoS protection. See features , plans from €6.39/mo.