Welcome to the Hangar Open Beta. Please report any issue you encounter on GitHub!
Reload plugins without restarting the server
BileTools reloads your plugin on a test server as soon as a new build lands in the plugins folder. Plugins that depend on it reload in the right order, and a failed reload puts the old versions back. It also runs on Velocity and can push builds to other dev servers.
BileTools loads, unloads and deletes plugins at runtime; it is recommended for development use only.
Automatic hot reload
The watcher
- A changed jar reloads once the file stops changing
- A new jar loads, with any missing dependency jars
- A deleted jar unloads after three seconds
- Rebuilt jars reload together, dependencies first
- A new BileTools jar updates BileTools itself
No false reloads
- A SHA-256 check confirms a jar really changed
- Half-written jars are skipped until complete
- A failed automatic reload pauses that plugin until you reload it by hand
- Ignore and allow lists limit what reloads on its own
Safer reloads and rollback
Checks before teardown
- Missing dependencies, cycles and name clashes stop a reload before anything unloads
- Tasks, listeners and commands are cleaned up
- Players get a fresh command list
- Errors while a plugin enables count as a failed reload
- Plugins can finish their work or refuse a reload
Recovery
- A failed swap loads back the old versions of the whole group
- Every version you run is archived
/bile installputs an older version back
Proxies and remote deploy
Velocity proxies
- Rebuilt proxy plugins reload with their dependents
- The same checks and recovery apply
Remote deploy
- Your main server pushes a reloaded jar to the dev servers you list
- Each server makes its own key on first start
- Both sides only talk to keys you trust
- Jars travel over encrypted TLS
- An optional IP list limits who can connect
Remote deploy is off by default.
Getting started
- Put the BileTools jar in
plugins/on your dev server or Velocity proxy and start it once. - Point your build output at
plugins/and rebuild. - Watch the console for the reload.
Commands and permissions
Commands
Aliases: /bile, /bi and /b for /biletools
/bile reload <plugin> Reload a plugin and dependents
/bile load <plugin> Load a jar from plugins/
/bile unload <plugin> Unload a plugin and dependents
/bile inspect <plugin> Check if it can reload
/bile library plugin=<name> List archived versions
/bile install <plugin> version=<v> Restore an archived version
/bile config Open the settings editor
/biletools debug dump Upload a diagnostic report
Permissions
Permission Default Allows
bile.use op Manage plugins and delete jars
biletools.config op Settings editor and server language
biletools.debug op Diagnostic reports
Compatibility and limits
Runs on: Paper, Purpur, Leaf, Folia, Canvas, Spigot, Velocity
Minecraft: 1.20.1 to 26.3 on Java 17 or newer. 26.x servers require Java 25
- Platforms Paper, Purpur and Leaf are the main targets. Velocity needs 3.4 or newer. On Folia and Canvas, plugins must clean up their own region work. Spigot needs permission to create symbolic links.
- Integrations Plugins can work with reloads through VolmLib's ReloadAware interface.
- Languages English plus 17 translations, for each player or the whole server. The proxy is English only.
- Network Downloads its libraries and any translation you pick. Checks GitHub for updates. Debug reports upload to mclo.gs unless you add
upload=false. Listens on port 9876 only when receiving deploys. - Limits Static state, private threads and packet hooks need the plugin's own cleanup. Recovery cannot undo data or world changes. On Paper, a new jar with paper-plugin.yml needs a restart. BileTools cannot reload itself on Velocity.
Questions, suggestions and bug reports are welcome on Discord or GitHub.
Pinned Versions
- R1.20–26.33.4–4.3.1
Pages
Members
1Owner