Paper plugins allow developers to take advantage of more modern concepts introduced by Mojang, such as datapacks, to expand the field of what the Paper API is able to introduce.
This is experimental and may be subject to change.
How do I use them?
Similarly to Bukkit plugins, you have to introduce a
paper-plugin.yml file into your jar resources folder.
This can act as a drop in replacement for
plugin.yml, allowing you to specifically target the Paper platform.
It should be noted you still have the ability to include both
plugin.yml in the same jar.
Here is an example configuration.
description: Paper Test Plugin
Dependency declaration is specified a bit differently than Bukkit plugins, as you are able to define if a dependency is required during bootstrapping. This means that any bootstrapping logic for your dependencies will be run before yours is run.
- name: DependencyName
If a dependency is
required it must be installed on the server or your plugin will fail to load. If marked otherwise, it will
ignore if the dependency isn't found.
Otherwise, your plugin will be loaded fine, in the same fashion as a plugin that is a
soft-depend in a Bukkit plugin.yml
If a dependency is marked as
bootstrap, this indicates that this dependency is required during bootstrapping, which currently does not serve a purpose.
Load Order Declaration
To declare the order in which plugins are loaded before/after your plugin, you are able to define two sections in your
It should be noted that the load order for bootstrapping is independent, meaning that if you want to define the load order for bootstrappers
you must set the
bootstrap field to
Note that in certain cases plugins may be able to introduce cyclic loading loops, which will prevent the server from starting. Please read the cyclic loading guide for more information.
You are able to define a list of plugins that your plugin should load before.
- name: PluginName
This means that your plugin will load before
PluginName is loaded.