Back to Blog
minecraftpluginsperformanceoptimizationsparkpapertpsserver admin

Minecraft Server Plugin Optimization: Which Plugins Are Killing Your Performance?

Published on June 26, 2026

# Minecraft Server Plugin Optimization: Which Plugins Are Killing Your Performance?

Plugins are the backbone of any Minecraft server — they power game modes, economies, region protection, and much more. But poorly optimized or misconfigured plugins are also one of the most common causes of server lag. In this guide, we'll show you how to identify problematic plugins and what you can do about them.

Why Plugins Can Drain So Much Performance

Every plugin runs on the server's main thread (the "Server Thread"). This single thread is responsible for everything: player movement, redstone, entities — and plugin logic. When a plugin spends too much time on the main thread, your TPS (Ticks Per Second) drops directly.

Common performance killers:

  • Scheduler tasks running too frequently (e.g., every second for every player)
  • Database queries running synchronously on the main thread instead of async
  • Chunk operations inside event listeners
  • Large loops iterating over all entities or all players

Step 1: Find the Problem with Spark

The first step in plugin optimization is profiling. The best tool for this is [Spark](https://spark.lucko.me/) — a lightweight profiler built specifically for Minecraft servers.

Install Spark as a plugin and start a profile during a lag period:

/spark profiler start

# Wait 1-2 minutes during the lag

/spark profiler stop

Spark generates a link with a detailed flamegraph. There you can see exactly which methods in which plugins are consuming the most CPU time. Pay special attention to:

  • onTick methods with a high time share
  • Repeating tasks (recognizable by consistently high values)
  • Database operations on the main thread

Step 2: Paper Timings as an Alternative

If you're running Paper, you also have access to the built-in Timings system:

/timings reset

# Wait 10 minutes

/timings report

This generates a report at timings.aikar.co. Under "Plugin" you'll find a breakdown by plugin tasks. Look for entries with high millisecond values per tick.

Note: As of Paper 1.20+, Spark is recommended over Timings, as Timings itself introduces slight overhead.

The Most Common Performance Killers in Detail

EssentialsX and Economy Plugins

EssentialsX is installed on most servers, but the default configuration isn't always optimal. In EssentialsX's config.yml:

# Reduce the frequency of save operations

save-data-interval: 120 # Default is often 60 (seconds)

# Disable unused features

disable-worth-command: true # If /worth isn't needed

WorldGuard and Region Plugins

WorldGuard can become a bottleneck with many overlapping regions and player movement. In its config.yml:

optimization:

# Enable optimized region cache

cache-max-age: 10

cache-size: 500

Also review how many regions you actually need. Hundreds of small, overlapping protection regions can significantly impact lookup performance.

ClearLag — Be Careful!

Many admins install ClearLag to fight lag — but the plugin itself can cause lag. Regularly scanning all entities across all worlds burdens the main thread.

Alternative: Configure entity limits directly in paper-world.yml instead:

entities:

spawning:

monster-spawn-max-light-level: 0

limits:

axolotls:

hard: 20

soft: 10

# ... more entity types

And in bukkit.yml:

spawn-limits:

monsters: 50 # Default: 70

animals: 10 # Default: 15

water-animals: 3

ambient: 1

Dynmap and Map Plugins

Dynmap is notorious for consuming enormous server resources during initial rendering. Configure rendering in configuration.txt:

# Limit render threads

num-workers: 2 # No more than CPU cores / 2

# Render only at night / when few players are online

tilespath: plugins/dynmap/web/tiles

Even better: Use Dynmap's built-in feature to restrict rendering to specific times of day.

Anti-Patterns: These Plugin Mistakes Are Common

1. Too many synchronous database queries

Every time a player picks up an item or enters a region, the database should never be queried synchronously. If you develop or customize plugins: always use asynchronous methods.

2. Excessive event listeners

Some plugins listen to the PlayerMoveEvent for every single block step. With 50 players, this can result in thousands of event calls per second.

3. Task intervals that are too short

A plugin that loops through all players every 5 ticks (4 times per second) is a real performance killer with 100 players. Check whether intervals can be adjusted in the plugin's configuration.

Plugins You Should Replace

| Instead of... | Use instead... |

|---|---|

| ClearLag | Paper-native entity limits |

| ProtocolLib (if unnecessary) | Native Paper API |

| Old WorldEdit versions | FastAsyncWorldEdit (FAWE) |

| Orebfuscator | Paper built-in Anti-Xray |

FastAsyncWorldEdit (FAWE) is an excellent example: it offloads heavy calculations to asynchronous threads, preventing TPS drops during large WorldEdit operations.

Paper Anti-Xray is built directly into Paper and significantly more performant than plugin solutions. Enable it in paper-world.yml:

anticheat:

anti-xray:

enabled: true

engine-mode: 2

hidden-blocks:

- copper_ore

- deepslate_copper_ore

- gold_ore

- iron_ore

- coal_ore

- diamond_ore

- emerald_ore

- lapis_ore

Ongoing Monitoring Is Essential

One-time profiling isn't enough — plugins get updated, player counts change, new features are added. Set up continuous monitoring to stay ahead of issues.

Tools like [PulseNode](https://pulsenode.tech) continuously analyze your server and automatically suggest optimizations before lag problems become noticeable to players. Especially for plugin-induced lag, which often creeps up gradually, early detection is key.

Conclusion

Plugin optimization isn't a one-time task — it's ongoing maintenance. The most important steps:

  1. Start profiling with Spark and find the real causes
  2. Remove unnecessary plugins and tune plugin configurations
  3. Use Paper-native features instead of plugin alternatives
  4. Monitor regularly and re-check after updates

With these measures, you can typically squeeze 20-40% more performance out of your server — without buying more expensive hardware.

Optimize your server performance?

PulseNode monitors your Minecraft server in real-time and gives you AI-powered optimization tips.

Start for free
Minecraft Server Plugin Optimization: Which Plugins Are Killing Your Performance? — PulseNode Blog | PulseNode