Why you should never /reload on Spigot, Bukkit, and Paper

Posted on July 01, 2019 in minecraft

The /reload command has been around in Bukkit since the very early days. The idea was simple, to allow server owners to reload plugin configuration without a server restart quickly. This idea was similar to the old hMod command of the same name. However, to make it easier to write plugins, the reload command just disabled the plugin and re-ran Bukkit's plugin loading mechanisms. While this concept did exist on hMod as separate commands, it required usage in a much more controlled manner. Only single plugins could be enabled/disabled at a time.

As Java doesn't provide a proper way to "unload" classes that the server has already loaded, this started to cause a few subtle issues and errors. Loading everything again in some cases caused conflicts between the old and new versions of the classes, which was especially bad when plugin jar files were modified. Due to this, Spigot has always not recommended the usage of the reload command. Significant distaste for the reload command was evident as early as 2011, only shortly after Bukkit had started.

As Minecraft evolved, what needed to reload became a lot more complicated, until the concept of reloading became infeasible. Every recent update has seen the reload command cause more issues. Right now, no one should ever use the /reload command. It causes significant instabilities within Minecraft, Bukkit, and almost any plugin that makes use of the Bukkit API. Currently, an action as simple as checking player permissions can cause issues after a reload.

If you need to:

  • Add a plugin after the server has already started
  • Update a plugin while the server is running
  • Remove a plugin while the server is running

RESTART YOUR SERVER (Or at worst for the first one, enable it with PlugMan).

If you need to:

  • Reload a plugins configuration

Use the plugin-provided reload command, for example /cb reload will reload CraftBook's configuration.

If you've modified any jar files, reloading the server WILL create an unstable server, even if you can't notice it. The /reload command is ALWAYS either unnecessary or unsafe.

Note! This doesn't apply to Sponge's reload command. The Sponge reload command does not do what Bukkit does, and instead sends an event to plugins telling them a reload was requested. It is then the plugin's responsibility to reload configurations.

Note 2! If you're wanting to use the Minecraft /reload command to reload datapacks on Bukkit, you can safely use /minecraft:reload.

This article is part of a series on how to run a Minecraft server. Click here to check out more!

Share this with others!
Post Tags

Other Posts

Introducing WorldEdit 7: What's New?

Posted on June 11, 2019

After over a year in the making, WorldEdit 7 is complete. This is a major update with hundreds of brand new features, find out more here!

Which version of Minecraft should your server use?

Posted on September 08, 2020

Server admins often ask what version of Minecraft their server should run. This article goes over everything you should consider when choosing.

A Decade of Survival Multiplayer. Celebrating the first 10 years of the Minecraft Multiplayer Community

Posted on August 04, 2020

As of today, Minecraft has had multiplayer for a decade. We have created a comprehensive history of the multiplayer community.