Announcement Paper 1.19.1

  • 6,618
  • 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 https://gist.github.com/kennytv/ed783dd244ca0321bbd882c347892874. 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 https://papermc.io/sponsors - 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

  • 18,752
  • 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 https://papermc.io/sponsors.

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: https://docs.adventure.kyori.net/minimessage/format.html`

To try out MiniMessage formatting, you can use this live-previewing website: https://webui.adventure.kyori.net/.

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.

Configurate
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

  • 12,181
  • 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: https://papermc.io/sponsors

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!

1646417744506.png
1646417751079.png

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.

Docs​

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

  • 14,080
  • 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: https://papermc.io/sponsors.

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.

Miscellaneous​

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

  • 3,413
  • 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