Announcement Hangar - PaperMC's Plugin Repository

  • 2,692
  • 1
Once again, we have another exciting announcement for you, this time about PaperMC's own site for uploading and downloading Paper, Velocity, and Waterfall plugins, called Hangar! The main reason we started working on this is to finally provide a centralized place for Paper and Velocity plugins. Compared to the Spigot forums, Hangar allows you much more control over your resource in terms of:
  • adding other authors to your project,
  • creating organizations with projects under them,
  • managing roles per project or per organization (such as editor or developer)
  • combined releases with multiple jars or external links per platform,
  • customizable release channels (such as beta or snapshot),
  • a proper, documented API to upload and download plugins (OpenAPI yaml),
  • creating multiple project description/wiki pages,
  • selecting compatibility with minor Minecraft versions as well as specific Velocity versions,
  • additional tags to mark a plugin as an addon, a library, or Folia compatible,
  • a secure account system with support for modern multi factor authentication standards like TOTP and WebAuthN (YubiKeys are supported!)
... and more. As Hangar is still in beta, we intend on adding a lot more features and quality of life changes, such as the ability to set notifications per release channel and creating draft releases. You can follow up on our current plans in the Hangar roadmap project: There are of course other such resource sites already, such as CurseForge and Modrinth, however, we have made Hangar specifically with Paper and Velocity plugins in mind, so that you can have the best experience looking for plugins or uploading them to Hangar.

We have already made a Gradle plugin you can use to automatically upload new version releases, which you can find here with examples provided: - so the only thing that stands between you and your first uploaded version is creating an account and a project on Hangar!

Additionally, for developers who published to the Spigot forums before, we created an importer for that! You can find it here It will attempt to import the description and convert it to Markdown, set the project avatar and basic settings such as the category to make it as easy as possible for you to adopt Hangar for your projects. Do note however that you will have to upload your versions manually after you imported your projects!

If you happen to find any bugs, you can report them on our issue tracker:
If you want a testing grounds for the API, please use our staging instance.

Otherwise we hope to see you and your plugins on Hangar over at

Let me end this post with a bit of a personal note:
Hangar was born out of a discussion on the Papers Discord/IRC channel, after being annoyed by existing platforms, almost 3 years ago.
First it was a from-scratch project, then we forked Ore (the platfrom repository made by the Sponge project), then we rewrote Ore's frontend, then we rewrote the backend, then we rewrote the frontend, again. It has been quite a wild ride, with many ups and downs.
The lowest point was December last year: We weren't getting anywhere, I thought everything we had sucked, we were exploring alternatives internally, I started modifying existing software for our needs. Basically, I was ready to give up. In the end, we decided to not go that route, the Paper team assured me that what we had at that time was already better than other existing solutions and so I pushed through all that together with Kenny, without whom I would have never be able to do that.
So I'll end with thanking him, Machine_Maker, AlessioGr, mdcfe and all the other contributors, the Paper team, the people on the Hangar Discord, the plugin developers who where invited as early adopter and everybody else who tested Hangar over the years and provided valuable feedback, and generally everybody in the Paper community who pinged me daily to remind me that Hangar means something to them: You were annoying as heck, but I am glad you did it.
And now everybody go sign up!

Announcement Paper & Velocity 1.19.4

  • 3,120
  • 3

The 1.19.4 Update​

Paper 1.19.4 and Velocity with 1.19.4 support are now available on our website! As always, we recommend that you make a backup of your server before upgrading. Remember that you cannot downgrade your Paper server after doing the update.

Despite only being a minor version, once again, quite a bit of work has gone in the update. We would like to thank the following people for their work on the update process:

Experimental Channel for Builds​

This is the last warning regarding the experimental channel on our downloads API before we will publish experimental builds of the next major Minecraft release (1.20) to the downloads API instead of as separate builds while still considered unstable.

For future updates, we will no longer provide any early experimental builds on Discord, instead using the experimental channel in our downloads API. This means that you will need to distinguish between channels in your scripts to avoid getting highly experimental and potentially breaking versions. Please adjust your download scripts accordingly. Experimental builds marked as such will be available to download on our homepage as well.

Website Overhaul​

Our new website is now live at! Cubxity has been working on this with us for a while, and we're happy to finally be able to replace our old site that has been an annoyance to maintain for quite some time. Feedback is of course appreciated, the same applies to code contributions:

For Developers​

API changes
  • Experimental features have representation in API, but are marked as experimental and are subject to changes, as Mojang might still change them in major ways before they land in 1.20. See here for more information on experimental features in general.
  • Using adventure's ClickEvent.callback methods, you can now easily register message click event callbacks without having to keep track of them yourself. This code for example will create a click event to open a book that can be used for up to 2 minutes and has 5 uses:
    ClickCallback.Options options = ClickCallback.Options.builder()
    ClickEvent clickEvent = ClickEvent.callback(
        audience -> audience.openBook(book),
    player.sendMessage(Component.text().content("Click me!").clickEvent(clickEvent));
    In these methods, you can also make sure only a certain player/players with a certain permission are allowed to use the callback.
  • LivingEntity#setHurtDirection throws an UnsupportedOperationException if called on a non-player
  • HopperMinecart#setCooldown and getCooldown throw UnsupportedOperationException

WIP registry modification API
Machine Maker has been working on API to be able to modify certain Minecraft registries, including damage events. Before merging it, we would like to gather a last round of community feedback on it:

Additionally there is a second pull request to add API for modifying tags, used by the client in a lot of different ways, including knowing which blocks are climbable and which tool you can use to faster dig a block:

Future changes regarding API enums
Enums such as Biome implementing the Keyed interface will be converted to classes with public static final objects at some point. While some backwards compatibility will be provided, please try to avoid the use of switch statements, EnumMap and EnumSet on these.

Announcement Paper & Velocity 1.19.3

  • 9,608
  • 1

The 1.19.3 Update​

Paper 1.19.3 and Velocity with 1.19.3 support are now available on our website! Even though Paper is deemed stable, we still recommend that you make a backup of your server before upgrading. Remember that you cannot downgrade your Paper server after doing the update.

Despite only being a minor version, quite a bit of work has gone in the update. We would like to thank the following people for their work on the update process:

Experimental Features​

As explained in a article, Mojang now includes experimental feature previews of upcoming Minecraft versions. On servers, they can be enabled by adding update_1_20 to the initial-enabled-packs option in the server properties file (with entries separated with a comma) and will be applied to newly generated worlds. We do not recommend enabling these feature packs on production servers, as the features that come with them (such as Camels and the new bamboo blocks) will not survive world upgrades and are still riddled with bugs.

We do not provide support for these experimental features and will not fix any issues with them, unless the issue in question is caused by one of our patches and can affect other parts of the server as well.

For Developers​

Removal of Chat Previews
As part of 1.19.3, Mojang have removed the chat preview functionality in its entirety. This means you cannot make players sign messages that have been changed by the server (unless only formatting of the message has been changed) and other players will be able to see the unmodified chat message if they hover over a modified one.

However, this does not affect AsyncChatDecorateEvent and AsyncChatCommandDecorateEvent; going forward, we will mostly likely encourage changing a message's content through the decorate events, with changes to viewers and the chat type being done in AsyncChatEvent. Finalized changes to API regarding chat and signed chat will be held off until 1.20 so it is less likely to break again with Mojang still doing such major changes to the system.

Experimental features
Plugin developers can prepare their plugins for these features with prelimary API, but be aware that most of the API representations of the experimental features are likely to change before they are finalized by Mojang. These classes, fields, etc. will be marked with an @Experimental annotation.

Announcement Malware Announcement

  • 24,311
  • 21
We've seen a lot of reports of a new malware going around Minecraft servers. It seems to be spread by compromised Spigot plugin-author accounts, and is somewhat difficult to detect. We do know that the following exception is caused by it:

Code: No route to host

If you see this in your logs, that server is most likely infected. There are other indicators too - the compromised JAR will have inside of it a file called plugin-config.bin. We do have a one-liner for searching for this in your plugin directories, if you're on a Linux system:

grep -R "plugin-config.bin" .

If you're on a Windows system you can run this command in your plugins directory:

findstr /sml /c:"plugin-config.bin" *

Run the above while in your server or plugin directory, and if you get a match, you likely have an infected plugin. If you do not get a match, that is a good thing - you are likely not infected.

@Optic_Fusion1 's AntiMalware tool on has caught onto this malware about a month ago already and catches more variants of it. We highly suggest users run this tool as it contains checks for a lot more malware sources. If this tool reports any malware found, be sure to double check whether it's a false positive or not (known example: ForceOP check falsely triggers on a handful of plugins because of how it's used in plugins).

If you do get a match or think that you are infected, you should delete all of your JAR files and re-download them, as the malware spreads itself to other JARs. You should also immediately reinstall your machine, as this malware is known to install system services outside of Minecraft. It might be more effort, but it is important that infected machines are reinstalled, or else the malware will remain.

If you frequently download plugins from third-party sources e.g. SpigotMC, it's not a bad idea to do routine checks with this tool e.g. once a month or so. Remember to only download reputable plugins from reputable sources & authors.

Keep an eye out, and thanks.

Announcement Paper 1.19.1

  • 12,053
  • 1

The 1.19.1 Update​

We are excited to announce that Paper 1.19.1 is now available! As far as we know, it is in a good state for production use - however, it is still early in the release cycle and new bugs may be discovered at any time, so we recommend that you make a backup of your server before upgrading.

Chat Signing and Reporting Concerns​

We have received a great deal of concern regarding our stance and support for the new chat signing aspect of Minecraft. As such, we figure it best to clear up a few points in this announcement.

First: Paper will add support to its API so that plugins, servers, and developers that wish to use these features have the ability to without hindrance from us.

Second: Servers, plugins, and developers that wish to disable chat signing will also have the ability to do so without any hindrance from us. We will not enforce the use of Minecraft's chat signing features nor will we use our software to actively prevent the bypassing of these new safety features.

Third: We may choose to implement restrictions on our community's discussion of the bypassing of chat safety features. Similarly to offline mode servers, we would not at the same time prevent people's actually doing it, and will leave that decision up to each server owner and anyone using our software.

Fourth: Paper is not so involved with Mojang as to be able to make changes or decisions on this new system. Mojang has generally been involved with the community for years in multiple ways, but we have done all that we can do by bringing up various concerns about the new system with them and leaving it in their hands.

Finally: There is more information on the new system at This is accurate information as far as we know, and will be updated as new information is made available.

If you'd like to help the project's infrastructure costs, feel free to check out - we greatly appreciate your continued support! Also, a special thanks to kennytv and Machine Maker for their extraordinary help on this update. They both have GitHub Sponsors if you'd like to contribute directly to them!

Chunk System Rewrite​

We recently announced on our discord that a new chunk system is in development and needs testing. It has been updated to include 1.19.1. You can find more information at the PR on our GitHub. Please do not test this on worlds that are not backed up, or on production servers, as it is unstable and will probably break things. We appreciate any help in identifying and reporting bugs - please report anything broken on the same PR, linked again here.

One more reminder to please back up your server before upgrading to 1.19.1 - it is very important to do this!

Announcement Paper 1.19

  • 29,975
  • 18

The 1.19 Update​

We’re happy to announce that initial builds for Paper 1.19 have been released. We were able to fix a lot of issues already, but there might still be breaking ones, so as always, backups are absolutely mandatory. After upgrading your world to 1.19, you cannot downgrade back to a lower version!

We would like to thank everyone that worked on this update. Not only the people actually working on the code, but everyone that provided feedback, helped us test, has been patient, and the people that joined us in VC or on Twitch (where over 400 people watched Kenny stream at one point!). We would like to especially thank the following people:
Next to those people, you can find links to support them individually. If you'd like to support PaperMC as a whole, you can find more information at

Major Configuration Changes​

Starting with 1.19, the Paper configuration files will now be split into multiple parts. Instead of having one giant paper.yml file for everything, there are now two files in a newly created config directory: paper-global.yml, where you can configure options that apply to the whole server, and paper-world-defaults.yml, where you can set default per-world values; you can change the directory from config to any directory you like with the new --paper-settings-directory command line argument. The per-world configuration has been split into each individual world directory (paper-world.yml), so for example, for the world world_the_end, you will find the configuration file at world_the_end/paper-world.yml.

In addition to this, all configurable messages inside of Paper configs use the MiniMessage format from now on. This means that legacy formatting (& or § codes) will no longer work in the paper configs. Instead, you use MiniMessage, which allows modern formatting with RGB colors, gradients, translatable components, and a lot more. You can find more information about MiniMessage here:`

To try out MiniMessage formatting, you can use this live-previewing website:

Your current configuration files will be migrated into the new format automatically while keeping all of your previous settings. Your old paper.yml will automatically be backed-up into config/legacy-backup/paper.yml.old.

Our documentation will be updated over the next couple of weeks to reflect those changes.

Alternate Current redstone implementation
About a month ago, Space Walker ported his Fabric mod to Paper, allowing us to offer another redstone implementation: Alternate Current. You can enable it by changing the per-world setting redstone-implementation to alternate-current. As of now, Alternate Current is faster and more stable than the already implemented Eigencraft option (and a lot faster than Vanilla's redstone), but its behavior slightly deviates from Vanilla in certain edge cases, such as the order of surrounding block updates. Read more about Alternate Current and how it differs from other redstone implementations on its README.

For Developers​

Signed chat messages
Minecraft 1.19 introduced client-side signing of chat messages, allowing other clients to verify a message has been sent by the player, delivered verbatim and unmodified by the server. In the future, the client will most likely visually distinguish signed player messages, unsigned player messages, and system messages. Because we want to avoid issues with upstream compatibility and duplicate work, we are not yet able to provide an API for that system. Currently, all messages will be sent as (unsigned and unverified) system messages – this has no meaningful impact on how clients display these messages yet. With Mojang trying to make the player chat more secure, we will have to make some larger additions and changes around message events and API in the future to allow features like the ability to preview formatted messages on the client.

MiniMessage methods in API
After the inclusion of MiniMessage in our API in 1.18, we have now added sendPlainMessage(String) and sendRichMessage(String) methods to the CommandSender interface to make developers more aware of the distinction between legacy, plain, and MiniMessage text formatting – we strongly discourage the use of the old sendMessage(String) methods using legacy formatting.

We are currently not exposing Configurate, the library now used to manage Paper configurations, via our API. It will be exposed once Configurate receives more updates to make it more user friendly for use in plugins.

Experimental channel for builds​

Our downloads API has different channels to distinguish builds - right now between experimental and default. The first few 1.19 builds were released in the experimental channel, which has now been changed back to the default channel.

For future updates, we will no longer provide any early experimental builds on Discord, instead using the experimental channel in our downloads API. This means that you will need to distinguish between channels in your scripts to avoid getting highly experimental and potentially breaking versions. Please adjust your download scripts accordingly. Experimental builds marked as such will be available to download on our homepage as well.

Announcement Paper 1.18.2

  • 17,994
  • 12

The 1.18.2 Update​

We are now releasing initial builds for 1.18.2. These have been tested by our team over the last few days and we were able to iron out quite a few issues, but you should still be careful. These are early builds, they may contain breaking issues, backups are absolutely mandatory! After you update, you cannot downgrade your world back to 1.18.1 or lower again!

As always, we would like to thank everybody who contributed to this update, be it by contributing code, reporting issues or just discussing changes with us in voice chat and cheering us on.

In particular, we would like to thank the following developers:

You can also support the PaperMC project itself, you can find more information about that here:

For Developers​

MiniMessage included in Paper API
Since MiniMessage is now stable, we have decided to include it in the Paper API. For those who don’t know what MiniMessage is yet; it’s a simple, user-friendly, string representation of Minecraft’s chat components, perfect for use in config files. You can learn more about it here, and be sure to check out the Web UI to start playing with MiniMessage now!

Note: While MiniMessage is now packaged with the API and available for plugins to use, it is not currently used by Paper itself. In the future, we plan to migrate all configurable messages over to MiniMessage, allowing for much more control over the styling of configurable messages!


StructureLocateEvent replacement
Due to a lot of internal restructuring in Vanilla, the StructureLocateEvent has been replaced by the StructuresLocateEvent. It holds a list of ConfiguredStructures (as opposed to just one StructureType previously). The old event is no longer fired, so if you used it, you should update the API usage as soon as possible.


Another thing we would like to note is that we are working on a new documentation site for the PaperMC organization, which will replace the various documentation sites currently in use. We are looking to open the floor for discussion, ideas, suggestions, and contributions, so please keep an eye on the #docs channel for more information!

Announcement Paper 1.18 and more

  • 19,049
  • 17

The 1.18 update​

After the initial release a bit over a month ago, Paper 1.18.1 is now deemed ready for use in production environments. As with any upgrade, please ensure you have a functioning backup before proceeding. World downgrades are not supported under any circumstances.

Upgrading worlds to 1.18

With the increased world height that 1.18 brought, Mojang has introduced retrogen to allow worlds using the old (0 to 256) height to upgrade cleanly to the new (-64 to 320) height. Retrogen will fill in new caves below the bedrock layer, allowing you to explore the new terrain in already generated chunks. Should retrogen be undesired, you can disable it by setting below-zero-generation-in-existing-chunks to false in spigot.yml. This option is not recommended and may not work correctly in conjunction with --forceUpgrade or with worlds older than 1.14. Mojang has also introduced world blending to cleanly transition from old to new generation at the border of chunks that have not been generated before.

Changes to Anti-Xray and ore generation
Ores can now generate a lot higher than before, so you might need to adjust your Anti-Xray settings. We have increased the default max-block-height to 64, but you might want to increase it even further. Please be aware that higher numbers might impact performance, especially with engine-mode: 2. See stonar's anti-xray guide and the updated ore distribution for more information.

Security fixes to all Minecraft versions
Throughout December, we have pushed important security fixes to all Paper versions from 1.8 to 1.18. If you are running a build or server fork older than that on any given version, you should update immediately. While we decided to make an exception in pushing the fixes to legacy versions, we will never do this again, and it is only a matter of time until a new major security issue sees the light of day.

We would also like to thank the member of our community that made us aware of the issue via the exploit-report channel on our Discord, which made it possible to respond to the issue before it received too much public attention and to have Minecraft as a whole be one of the first communities to warn users about it.

Contributors to 1.18
A big thank you to everyone who contributed to the update process:

If you want to support the PaperMC project, you can find more information here:

We would also like to thank everyone who watched, chatted and talked with us during the update process. You are amazing ❤️

For Developers​

Changes to Paperweight (Paper contributors)
Instead of using the shadowJar and reobfJar Gradle tasks to create a runnable (but not distributable) jar, you now need the createMojmapBundlerJar or createReobfBundlerJar tasks. Similarly, Paperclip (distributable) jars are now created with the createMojmapPaperclipJar or createReobfPaperclipJar task. You can get a full list of tasks by running gradlew tasks. An updated, in-depth guide on contributing to Paper can be found here.

Paperweight Userdev: Working with NMS in 1.17+ (Plugin developers using NMS)
After upstream dropped their field mappings in 1.17, the same now happened with method names as well. Even though we generally advise against depending on server internals, we understand that not everything is possible through API. As of now, the only feasible way of depending on server internals is by coding against mapped names, which are then compiled to the obfuscated names to run with the obfuscated server. Paperweight’s Userdev allows you to do exactly that, but unlike upstream’s maven plugin, userdev uses full Mojang mappings with additional yarn parameter mappings, so you can more easily update your plugin whenever a new Minecraft version is released. Userdev is the only supported way of working with NMS in 1.18+. The obfuscated jar is no longer valid to compile against.

To set up paperweight userdev:
  1. Add Paper’s maven repository to your Gradle plugin repositories in your settings.gradle.kts.
  2. Add the Paperweight Userdev Gradle plugin to your build config with the id io.papermc.paperweight.userdev, keeping the version in sync with the paperweight version used in Paper.
  3. Add the development bundle to your dependencies.
  4. Make the assemble task depend on the reobfJar task.

A full, working example can be found on GitHub. Both settings.gradle.kts and build.gradle.kts are important! Paperweight Userdev integrates with the Gradle Shadow plugin, no special configuration is required.

If you have previously used Apache Maven, Gradle supports automatic migration for the majority of project configurations. We would recommend the Kotlin DSL, which can be selected via gradle init --dsl kotlin. If you have any issues getting started with Userdev, please come by the #paper-dev channel on our Discord.


Downloads API
We have shut down v1 of our downloads API at the end of November. Please make sure you are using v2 of our downloads API when trying to download Paper via scripts and automated tools. For reference, see the Downloads API documentation. We have also introduced a channel field to the build response, allowing builds to be marked as experimental.

Changes to the PaperMC team
Over the past couple of months, there have been a number of changes to the PaperMC team. Larry has been promoted to the role of Community Manager and will be focusing on the moderation aspects of the community. We would also like to welcome ocelotpotpie to our moderation team. sulu has taken the position of Triage lead and will be responsible for managing the Triage team, which looks after our GitHub issues. jmp has joined the Maintainer team; Proximyst has left the team, and we wish her all the best! aurora has left the development team to focus more on her responsibilities as a community manager.

Welcome to PaperMC

  • 6,287
  • 2
Welcome to PaperMC! This is the community forum space for our Minecraft software community - here, we ask questions, give answers, and talk about everything to do with our projects.

Paper: This is our Minecraft server software. It's designed to be fast, bug-free, and a breeze to use. With an extensive API for plugin developers to boot, we work hard on Paper and we're proud of it.

Velocity: A recent addition to the PaperMC community, Velocity is the most modern, secure, and highly performant proxy for Minecraft servers out there.

Waterfall: A BungeeCord-compatible Minecraft server proxy that might not be quite as fast as Velocity, but is fully supported and fully supports any BungeeCord plugins you might need to use!

Overall, PaperMC is a community that's excited about Minecraft software and making it better, while also providing a community space that's fun to be in. We have a strong culture of helping people and sharing knowledge for the betterment of everyone involved. Regardless of if you're a developer, run a Minecraft server yourself, or help someone else do it, we hope that you find yourself welcomed (and welcome others!) whenever you join us. Whether here, on Discord, or on GitHub, enjoy your time in the PaperMC community!

Members online

Latest posts