Ender Dragon unbeatable due to server lag
Diagnosis: Server lag or client lag?
Are you experiencing problems defeating the Ender Dragon due to server lag? The combination of low TPS (ticks per second), high latency, and the resource-intensive Ender Dragon fight can make the battle impossible or unfair. This article provides concrete solutions for both acute and structural performance problems.
Diagnosis: Server lag or client lag?
Before you start optimizing, first determine where the problem lies:
Server-side lag (this article focuses on this):
- TPS (ticks per second) below 20 (check with
/tpsor/spark tps) - All players experience lag simultaneously
- Mobs move jerkily for everyone
- Blocks break with delay for all players
Client-side lag:
- Low FPS for individual players
- Other players experience no problems
- Only visual stuttering, no gameplay delay
Immediate temporary solutions
Step 1. Restart the server before the Dragon fight
A fresh server start has no memory leaks or accumulated entities. Access via the game panel at https://game.ping64.net → select your server → click "Restart".
Step 2. Pre-load the End chunks
Teleport to the End and let the chunks load before players arrive:
/execute in minecraft:the_end run tp @s 0 64 0
Walk a circle of approximately 200 blocks around the spawn platform to force chunks.
Step 3. Remove unnecessary entities in the End
/execute in minecraft:the_end run kill @e[type=!player,type=!ender_dragon,type=!end_crystal]
Structural optimizations
1. Lower view distance
Edit the server.properties file via the File Manager in the game panel:
view-distance=6
simulation-distance=4
view-distance: How far players can see chunks (default 10)simulation-distance: How far mobs/redstone are active (default 10)
For Dragon fight minimum:
- view-distance: 6-8
- simulation-distance: 4-6
2. Use Paper or Purpur server software
Paper and Purpur are optimized Spigot forks with better performance.
Advantages:
- Better entity tracking
- Async chunk loading
- Configurable mob AI optimizations
3. Optimize End dimension specifically
If you're using Paper or Purpur, edit config/paper-world-defaults.yml:
entities:
behavior:
ender-dragons-death-always-places-dragon-egg: true
spawning:
all-chunks-are-slime-chunks: false
alt-item-despawn-rate:
enabled: true
per-player-mob-spawns: true
chunks:
auto-save-interval: 300 # Increase for less disk I/O during fight
delay-chunk-unloads-by: 10s
environment:
treasure-maps:
enabled: false # Reduces chunk loading
4. Reduce mob AI complexity
Edit bukkit.yml:
ticks-per:
monster-spawns: 4 # Increase from 1 to 4
animal-spawns: 400
water-spawns: 400
water-ambient-spawns: 400
ambient-spawns: 400
Minecraft version specific problems
Versions 1.19 and higher
Versions from 1.19 onwards have significantly higher resource requirements due to:
- Chat signing system
- Improved entity collision detection
- Warden AI (even though it's not in the End)
Recommendation: Consider downgrading to 1.18.2 or upgrading to 1.20.4 or higher (contains optimizations).
Versions 1.20.5 and higher: Dragon fight bug
There is a known bug where the Dragon can get stuck in perching state.
Workaround:
/data merge entity @e[type=ender_dragon,limit=1] {DragonPhase:0}
This resets the Dragon AI to "circling" phase.
Check server resources
RAM usage
The End fight requires at least 2GB free RAM during the battle.
Check RAM via:
- Game panel dashboard
- In-game:
/spark heapsummary
Too little RAM?
- Upgrade your package via https://mijn.etheron.nl
- Or: Lower
simulation-distancefurther
CPU bottleneck
The Dragon AI is single-threaded and CPU-intensive.
Check with Spark profiler:
- Install the Spark plugin
- Start profiling:
/spark profiler start - Fight Dragon for 2-3 minutes
- Stop profiling:
/spark profiler stop - Analyze the URL: Look at "Tick" percentage of
EnderDragon.aiStep()
If Dragon uses >30% of tick time:
- Consider lowering Dragon health with a datapack
- Or use a plugin for simplified Dragon AI
Common problems
"TPS is 20 but Dragon still responds slowly"
This is likely an MSPT (milliseconds per tick) problem:
- Check
/spark tps→ look at MSPT value - If MSPT >45ms: Ticks are being "skipped" internally
- Solution: Follow structural optimizations above
"Server crashes during Dragon fight"
Crash logs can be found in the game panel under the logs section.
Common causes:
- OutOfMemoryError: Too little RAM → upgrade or optimize
- Watchdog crash: Tick took >60 seconds → lower simulation-distance drastically
- Plugin conflict: Disable plugins and test incrementally
"Dragon doesn't regenerate via End Crystals"
Not a lag problem, but a game mechanic bug in some versions.
Fix:
/data merge entity @e[type=end_crystal,limit=1,sort=nearest] {BeamTarget:{X:0,Y:128,Z:0}}
Ensures crystals beam to Dragon portal pillar.
Monitoring during fight
Use these commands to follow live performance:
/spark tps # Check every 30 seconds
/spark tickmonitoringstart # Warns of long ticks
/minecraft:debug start # Vanilla profiling (stop after 10 sec)
Target values:
- TPS: 19-20
- MSPT: <45ms
- RAM usage: <80% of total
Preventive measures
Pre-fight checklist:
- Server restart
/kill @e[type=item](remove dropped items)- Ensure <15 players in End simultaneously
- Disable non-essential plugins temporarily
Post-fight cleanup:
/execute in minecraft:the_end run kill @e[type=item]
/execute in minecraft:the_end run kill @e[type=experience_orb]
Scheduled restarts:
Set daily restarts at 4:00 AM via the game panel to prevent memory leaks.
Final note
If no optimization helps and your server continues to lag during Dragon fights, contact Etheron support via https://mijn.etheron.nl with:
- Your server package details
- Spark profiler URL from during fight
- Number of concurrent players during fight
- Minecraft version and server software
They may be able to apply backend optimizations or discuss hardware upgrade options.
Need help? Contact us via support.etheron.nl
