Skip to content

Managing your Minecraft server

Optimize Paper and modded servers with performance flags, run spark profiles, manage JVM memory, and schedule automatic daily restarts.

Updated July 20, 2026
Minecraft

This guide covers keeping a Minecraft server smooth and protecting your world, for both Java and Bedrock. It applies on top of any of the setup guides: Java: Getting Started, Java: Plugins, Java: Mods, or Bedrock.

Performance Tips (Java)

  • Use PaperMC or Purpur, not vanilla. The performance gains over the vanilla jar are large, especially with more than a handful of players. Paper optimizes entity ticking, chunk loading, and dozens of other systems.
  • Lower view-distance and simulation-distance. Default 10 each is reasonable; drop to 6 to 8 for crowded servers. simulation-distance especially drives CPU cost, since it controls how far entities and redstone actually tick.
  • Install Spark for profiling. The Spark plugin (/spark profiler) identifies exactly which plugins, entities, or chunks are eating your tick time. It is the single best tool for diagnosing lag.
  • Watch your tick rate. A healthy server holds 20 TPS (ticks per second). Use /spark tps or a plugin to monitor. Sustained drops below 20 mean the server cannot keep up.
  • Cap entities. Mob farms and item-drop accumulation are common lag sources. Paper's paper-world-defaults.yml lets you cap entities per chunk.
  • Schedule daily restarts at low-population hours to clear memory fragmentation.

Performance Tips (Modded Java)

  • Allocate enough RAM. Large modpacks are memory-hungry; if you see out-of-memory crashes, raise the Xmx heap size.
  • Use a performance mod set. Packs increasingly bundle Lithium, Starlight, and FerriteCore (Fabric) or equivalents for big server-side gains.
  • Pre-generate chunks. Tools like Chunky generate the world ahead of time so players are not triggering expensive generation while exploring.
  • Watch for laggy machines. In automation packs (Create, mekanism), a runaway machine setup can tank the whole server. Spark profiling finds these.

Performance Tips (Bedrock)

  • Lower tick-distance. Default 4 is reasonable; drop to 3 on crowded servers. It controls simulated chunks per player.
  • Cap max-players realistically. Bedrock is lighter than Java but still benefits from a sane slot count for your RAM.
  • Schedule daily restarts like any long-running server.

JVM Memory and Garbage Collection (Java)

The Startup tab exposes the Xmx (max heap) value. A few principles:

  • Allocate roughly 75% of your purchased RAM to the heap, leaving the rest for the OS and off-heap overhead.
  • More RAM is not always better. Beyond what the server actually uses, extra heap just makes garbage-collection pauses longer. A 20-player Paper server rarely needs more than 6 to 8 GB.
  • Modded servers are the exception and genuinely need large heaps.

If you see periodic lag spikes that are not tied to auto-save, they may be garbage-collection pauses. Right-sizing the heap (not over-allocating) usually helps.

Backups

The world folder (named per level-name) is the critical data on both editions. The panel Backups tab snapshots the whole server volume.

  • Daily snapshot minimum, via the panel's Backups tab
  • Twice-daily for busy servers or active build projects
  • Before every update (Minecraft version, plugin/mod updates, pack upgrades)
  • Monthly download to your own storage for off-platform safety

Automated Backups

Set up an automated daily backup through the Schedules tab:

  1. Create schedule: "Daily Backup"
  2. Cron: 0 5 * * * (5 AM server time)
  3. Add task: Create Backup, name pattern auto-{date}

Plugin Backups Are Not a Substitute

Plugins like EssentialsX offer /backup commands, but they only copy the world to a configured folder on the same volume. They do not protect against volume-level issues the way panel backups do. Use panel backups as your primary safety net.

Scheduled Restarts

Both editions benefit from a daily restart to clear memory creep. From the Schedules tab:

  1. Create schedule: "Daily Restart"
  2. Cron: 0 4 * * * (4 AM, before the 5 AM backup)
  3. Tasks (Java, with player warnings via a plugin or say):
    • Send Command: say Server restarting in 5 minutes.
    • Send Command: say Server restarting in 1 minute. (offset 240s)
    • Send Power Action: Restart (offset 300s)

Common Issues

  • "Failed to verify username" (Java): A player without a paid Minecraft account tried to connect while online-mode=true. They need a real account, or you would have to set online-mode=false (insecure for public servers, not recommended).
  • Plugin or mod errors after a Minecraft update: Plugins and mods must be updated for each MC version. Check compatibility before bumping your server version.
  • Modded server out of memory: Raise the JVM heap (Xmx) in the Startup tab.
  • Lag spikes every 30 seconds or so: Often auto-save. On Paper, tune the save interval, or schedule less frequent full saves. Spark profiling confirms whether saves are the cause.
  • TPS drops as the server fills up: Lower view-distance and simulation-distance, profile with Spark, and cap entities. Confirm you are running Paper, not vanilla.
  • Bedrock players cannot connect to a Java server: That requires Geyser, not a config change.
Made with 💜 by GameServerKings