Skip to main content
← All Guides
Performance · 8 min read

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:

RestrictionWhyRecommended setting
Per-player chunk limitPrevents one player from loading 100 chunks4–9 online, 0–1 always-on
Online-only by defaultScales with player count naturallyAlways-on as a premium/rank perk
No entity ticking in loaded chunksPrevents loaded mob farms from running unattendedPaper entity-activation-range handles this
Maximum server-wide loaded chunksHard cap prevents cumulative overload50–100 total across all players
Inactive cleanupRemoves loaders from players who haven't logged in30 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.

Related Tools & Resources

🔧

Minecraft Tools

Calculators, generators & server tools

🧱

Item Database

Browse all Minecraft items, stats & recipes

⚒️

Crafting Recipes

Visual crafting guides for every recipe