Managing your Minecraft server
Protect your Minecraft world: what a backup must include, safe save commands on Java and Bedrock, CoreProtect rollback, and scheduled daily restarts.
This guide covers the two jobs that keep a Minecraft server alive over months rather than weeks: protecting the world and running it on a sane routine. It applies to both Java and Bedrock, on top of any of the setup guides: Java: Getting Started, Java: Plugins, Java: Mods, or Bedrock.
Performance now has pages of its own, because it deserved more than a bullet list:
- Minecraft Server RAM and JVM Flags — how much RAM your server actually needs,
-Xmsand-Xmx, Aikar's flags, G1GC tuning and the Java version requirement. - Diagnosing Minecraft Server Lag — TPS versus MSPT, profiling with spark, the usual culprits, and reading crash logs.
Performance in Ninety Seconds
If you only take three things from the performance pages, take these:
- Lower
simulation-distancebeforeview-distance. Simulation distance decides how many chunks actually tick entities, crops and redstone; view distance mostly costs bandwidth. Dropping simulation to6while leaving view at8to10is the cheapest win there is. - Run Paper or Purpur rather than the vanilla jar if you are using plugins. The tick-loop optimisations are substantial once you are past a handful of players — Minecraft Server Software Compared sets out the trade-offs.
- Measure before you buy. More RAM fixes very few lag problems, because the Minecraft tick loop runs on a single thread.
/spark tpstells you in one command whether memory is even involved.
Bedrock
Bedrock Dedicated Server has no JVM and no spark, so the two Java pages above do not apply to it. Its levers are narrower:
- Lower
view-distanceinserver.properties. Bedrock's default is a very generous32chunks. This is the lever with real headroom in it — bringing it down to12to16on a busy server costs players almost nothing. - Leave
tick-distancealone. It controls how many chunks are ticked around each player and is Bedrock's nearest equivalent to Java'ssimulation-distance, but its default of4is also its minimum — the allowed range is4to12. There is nothing to gain by lowering it, and raising it costs CPU. - Set
max-playersto something your plan can actually serve. Bedrock is lighter than Java, but a slot count set past the hardware still guarantees lag at peak. - Restart daily, as with any long-running server.
What Is Actually in a Minecraft World
Knowing which files carry your community's work makes every decision below obvious. On Java Edition, the world directory is named by level-name in server.properties (world by default), and it contains:
| Path | What it holds |
|---|---|
level.dat |
Global world state — seed, spawn point, time, gamerules, world border. level.dat_old is the previous copy |
dimensions/minecraft/overworld/region/ |
The Overworld terrain itself, as r.<x>.<z>.mca region files |
dimensions/minecraft/the_nether/, .../the_end/ |
The other two dimensions, same layout |
.../entities/ and .../poi/ |
Entity data and points of interest — villager job sites and beds, Nether portals, bee nests, lodestones — stored separately from the terrain region files |
data/ |
Scoreboards, raids, wandering trader state, world generation settings |
datapacks/ |
Data packs enabled for this world |
| Player data | Per-player .dat and .json files, keyed by UUID — inventories, positions, statistics and advancements |
And these live outside the world folder, in the server root — losing them loses your staff structure and your bans:
ops.json,whitelist.json,banned-players.json,banned-ips.jsonserver.properties, and on Paper theconfig/directoryplugins/(with each plugin's own data folder inside it) ormods/
Back up the whole server, not the world folder
Plugin data is the reason. A land-claim plugin, an economy plugin and a permissions plugin all store their state in
plugins/<PluginName>/, and restoring a world without them gives you the terrain back and nothing else — no claims, no balances, no ranks. The panel's Backups tab snapshots the entire server volume, which is exactly what you want. See How to Create a Backup for the mechanics.
A Backup Routine That Holds Up
The panel workflow — creating, restoring, downloading, locking and the retention allowance — is covered in How to Create a Backup. What matters here is when, and Minecraft's answer differs from most games because a world is cumulative: nobody wipes it, so a loss is permanent.
- Daily automatic snapshot, minimum, on any server people actually play on.
- Twice daily during a big build project or an active season.
- Before every update — Minecraft version, plugin or mod updates, pack upgrades. This is the one people skip and the one that costs worlds.
- Monthly download to your own storage. A panel backup protects you from your own mistakes; a copy on your own disk protects you from everything else.
Plugin backups are not a substitute
Plugins such as EssentialsX offer their own
/backupcommand, but they copy the world to another folder on the same volume. That protects against a bad/fill; it does not protect against anything that affects the volume itself. Use panel backups as the primary safety net and treat plugin backups as a convenience on top.
Automating it
From the Schedules tab:
Create schedule: "Daily Backup"
Cron:
0 5 * * *(5 AM server time)Add task: Create Backup, name pattern
auto-{date}
Taking a Consistent Snapshot
A world being written to while it is being copied can produce a backup with half-saved chunks. Panel backups handle this for you, and for most people that is the end of the matter. If you are copying files by hand — an SFTP pull, or an external script — flush the world to disk first and pause writes while you copy.
On Java, the sequence is save-off, then save-all flush, then your copy, then save-on. save-all flush writes every player and chunk to disk immediately, and save-off queues further level changes in memory until you re-enable saving. The full sequence, with the reasoning, is in Minecraft Server Commands.
Never leave
save-offonWith saving disabled, everything your players do lives only in memory. A crash at that point loses all of it. If a manual copy fails halfway through, run
save-onbefore you do anything else.
On Bedrock, the equivalent commands are different and often missed:
save hold
save query
save resume save hold stops the server writing to the world files and queues changes. save query then reports the path of every file that must be copied, along with the number of bytes to truncate each one to — Bedrock's files can contain trailing data that is not yet valid, so the truncation lengths are part of the answer, not a detail. save resume re-enables writing.
Rollback: Three Different Undos
"Can you roll it back?" means three different operations depending on what went wrong, and picking the wrong one costs more than the original damage.
| What happened | The right undo | What it costs |
|---|---|---|
| One player griefed a build, stole from chests, or a plugin misfired | CoreProtect rollback — surgical, targeted at one player, one area and one time window | Nothing else on the server is touched |
The world is corrupt, an update went wrong, or a /fill flattened something enormous |
Panel backup restore | Everything since that backup is lost, for everyone |
| A player lost an inventory to a bug | CoreProtect with a:inventory |
Nothing else is touched |
A full restore is a blunt instrument. If a single player broke a single base, restoring last night's backup punishes everyone who played since, and they will notice. Choosing between the three, and the prevention layer that stops you needing any of them, is covered in full in Minecraft Grief Protection and Rollback.
CoreProtect
CoreProtect logs block, container, inventory and chat activity so it can be reversed later. It is a Paper/Spigot plugin — install it as described in How to install plugins for Minecraft Java Edition.
It only knows what happened after you installed it
CoreProtect cannot roll back griefing that happened before it was logging. This is the single reason to install it on day one rather than the day you need it.
Toggle the inspector and left- or right-click a block to see its history:
> co inspect Look before you leap. /co lookup takes the same parameters as a rollback but only reports:
> co lookup t:2h r:20 a:-block Then roll back what you found. The parameters are u: user, t: time, r: radius, a: action, i: include and e: exclude:
> co rollback u:PlayerName t:1h #preview
> co rollback u:PlayerName t:1h r:30
> co rollback u:PlayerName t:6h r:#global e:stone,dirt
> co rollback u:PlayerName t:5m a:inventory Three things to know before you run one:
- The default radius is 10 blocks if you do not specify
r:, which restricts the rollback to your immediate surroundings. User:#globalfor a server-wide rollback, and mean it when you do. #previewshows you the result without applying it. Use it every time on anything larger than a few blocks.- A rollback is itself reversible.
/co restorewith the same parameters — or/co undo— puts back what a rollback removed, so an over-broad rollback is recoverable.
Lookups are global by default while rollbacks are not, which is a deliberate asymmetry: it makes searching wide and changing narrow the path of least resistance.
Restoring a World, or Moving One
A panel restore overwrites the current server state, so take a fresh backup first if there is any chance you will want the current state back. The full workflow, including pulling a single file out of a downloaded archive, is in How to Create a Backup. Putting a world on the server rather than restoring one — a singleplayer save you played on your own PC, or a second world running alongside the first — is a different job, covered in Minecraft World Management.
A Minecraft world only travels forwards
Loading a world on a newer Minecraft version upgrades it in place, permanently, the moment the server starts — nobody needs to join. A downgraded server then refuses it with
Server attempted to load chunk saved with newer version of minecraft!. There is no supported way back. The pre-upgrade backup is the only route, which is why "before every update" is on the list above. Updating Your Minecraft Server walks the upgrade through in a safe order.
Scheduled Restarts
Both editions benefit from a daily restart. On Java it clears memory creep and resets anything a plugin has slowly leaked; on Bedrock it does much the same for the server process. From the Schedules tab:
Create schedule: "Daily Restart"
Cron:
0 4 * * *(4 AM, before the 5 AM backup)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)
- Send Command:
A restart is maintenance, not a fix
A nightly restart is good hygiene. Restarting every few hours to stay playable is a symptom — see Diagnosing Minecraft Server Lag to find out what you are actually restarting away from.
For player warnings, chained backup-then-restart schedules and the rest of the automation this tab can do, see Minecraft Scheduled Restarts and Server Automation.
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. Settingonline-mode=falseis insecure on a public server and is not a fix — every ban, whitelist entry and anti-cheat measure you own depends on that one setting, as Minecraft Anti-Cheat and Fair Play explains. - The world reverted after a restart: saving was disabled — usually
save-offleft on after a manual backup, or a plugin that pauses saves. Runsave-onand verify withsave-all flush. - Plugin or mod errors after a Minecraft update: plugins and mods are built per Minecraft version. Check compatibility and take a backup before bumping the version, because the world upgrade is one-way.
- A player lost their inventory:
co lookup u:PlayerName t:1h a:inventoryfirst, then roll back the same window if the log confirms it. Do not restore a backup for one inventory. - Griefing discovered days later: CoreProtect can still reverse it if it was logging at the time — widen
t:accordingly. If it was not installed, only a backup from before the grief can help. - Backup fails or the schedule stops running: check the Backups tab for the allowance message. If every backup is locked and you are at the limit, new ones fail silently every night. How to Create a Backup covers this.
- Bedrock players cannot connect to a Java server: that requires Geyser, not a config change.
What to Read Next
- Minecraft Server RAM and JVM Flags for heap sizing, Aikar's flags and Java versions
- Diagnosing Minecraft Server Lag for TPS, MSPT, spark and crash logs
- Minecraft Grief Protection and Rollback for CoreProtect, claim plugins and reversing a grief properly
- Minecraft Scheduled Restarts and Server Automation for building the restart, the warnings and the backup as one schedule
- Updating Your Minecraft Server for version upgrades, which is when backups earn their keep
- How to Create a Backup for the panel backup workflow in detail
- Minecraft Server Commands for
save-off,save-alland the safe backup sequence - Java: Plugins for installing CoreProtect and the rest of the essential stack
- Getting started with your Minecraft server for
server.propertiesand version numbering
Made with 💜 by GameServerKings

Need a Minecraft server?
Deploy an instantly-provisioned Minecraft server on high-clock hardware — DDoS protected, no contracts, cancel anytime.
From $4.80 /month