public

Paper vs Vanilla Minecraft

Introduction / Background Paper is a performance focused Minecraft server software that aims to provide the best multiplayer experience while also fixes many long standing exploits and bugs that exist in

2 years ago

Latest Post Folia - Multithreading Coming to your Minecraft server by EterNity public

Introduction / Background

Paper is a performance focused Minecraft server software that aims to provide the best multiplayer experience while also fixes many long standing exploits and bugs that exist in Vanilla/Spigot Minecraft. Most notably, Paper has a completely rewritten light engine called Starlight and recently a brand new chunk system as an initial step toward a true parallel chunk ticking in the planned future.

As Paper gains more popularity, the differences between Paper and Vanilla Minecraft gameplay has been brought up many times, this article is written to document the technical differences and the minor gameplay tweaks that server owners may wish to adjust to better fit the need of their communities.


Last updated: August 2nd, 2024 for Paper version 1.21


Table of Contents

Prerequisites
General Gameplays
.
View Distance
Entity Tracking Range
General Spawning
Chunk Loaders
Portal Based Farms
Iron Farms
Redstones
TNT, Carpet, and Rail Duplication
Bedrock and End Portal block Breaking
Gravity and Sand block Duplication
.
Advanced Gameplays
.
Ender Pearl Stasis Chamber
Overstacked Item Filter
RNG Manipulation
Light Suppression
Vanilla Experience
.
Closing Notes

PrerequisitesπŸ”—

In the following section, it will cover the major differences between Vanilla Minecraft and Paper. The focus of this post is not to optimize the server further; rather, it focus on preserving Vanilla gameplay experience with some cost of server performance. Essentially, an unoptimizing guide!

The sections will be categorized into general and advanced gameplay changes. It may be beneficial for majority of small servers to go through the general gameplay section and adjust as needed; for advanced category, it will list several gameplay changes that may be considered as expliots by most communities. Please take great consideration of the possible negative side effects of those changes and adjust as needed.

πŸ˜…
According to bStats, an average Minecraft server has roughly 0.58 average players online.

The vest majority of the Minecraft servers serve small-scale community and providing a better gameplay experience may be a stronger focus than the common lag reductions measures.


General GameplaysπŸ”—

View DistanceπŸ”—

View distance determines how far away terrain is displayed to players. Some players may prefer to see further than the default 10 chunks and here is where Paper shines! Unlike Vanilla Minecraft where chunk data is always sent regardless of client perference, Paper would respect the client config on how much chunks should be sent, this not only saves the server resource but also preventing perfornace issue on the client as well.

Depends on the size of your server, you may opt to increase view distance from 10 up to a maximum of 32 if you do wish to push the limit. Keep it in mind that each additional numerial increase will result in exponential growth with how much chunks a player loads. A more detailed info on view distance can be found here.

πŸ’‘
Alternatively, you can also utilize client side fabric mod to cache terrain locally without the increased workload on the server.

You can read more about client optimization mods here.


Entity Tracking RangeπŸ”—

Entity-Tracking-Range is Perhaps one of the most noticiable difference between Vanilla single player and Paper server, the entity tracking range on Paper servers is slightly lower by default in order to reduce server workloads.

The default entity distance is 160 blocks in Vanilla single player assuming the entity distance scroll is set to 100%

The relative config options can be found in spigot.yml

entity-tracking-range:
  players: 128
  animals: 96
  monsters: 96
  misc: 96
  other: 64

For a small server with sufficient hardware to support it, it may be benefitial to increase entity-tracking-range so players can see more happening in the world around them for a better gameplay experience. The Value is in blocks and if you do decide to increase them, please keep it at maximum equal or below (simulation distance-1)x16.

Bumping any other category may impose a heavy performance hit to your server; making small adjustments accordingly and observe how well your server is handling the increased workload will be the best approach.

πŸ’‘
It may be a good idea to bump the value of entity-activation-range accordingly with the increasing entity-activation-range so entity that are ticked at reduced rate will not be too noticeable to your players.

For more advanced information, please visit the relevant section on the server optimization guide


General SpawningπŸ”—

The default spawning value in Paper generally follows closely to Vanilla default; however, there are few things that our upstream spigot/CraftBukkit breaks that has not been fixed on Paper.

It is worth playing around the default value and find a sweet spot for your server. The default value is absurdly high and majority of the entities may spawn out of sight of a player. Please consult the server optimization guide for further details

Mob farm efficiency may decrease drastically on multiplayer server due to how mobspawning is determined in Minecraft. Paper does attempts to mitigate this issue with per-player-mob-spawns located in paper-world-defaults.yml.

Vanilla mob spawning is not only complicated, but also inherently flawed on multiplayer servers.

For example, we have two players in the Nether dimension - Player A is AFK high up on a Nether ceiling Piglin farm while player B is just chilling on Nether Waste biome.

Even though the spawn attempts are made on all loaded chunks around both players; a vast majority of the successful mob-spawn attempts will end up around the player with the most favorable spawning conditions.

In this case, player B will be getting most of the mobs while player A gets a little simply because there are more spawnable chunks around player B overall.


Chunk LoaderπŸ”—

Chunk Loader may not work as expected

Chunk Loader does work on Paper server!!

The misunderstanding often arises because players are unaware of the behavioral differences between Minecraft Singleplayer and Multiplayer.

Below is an example of a chunk loader that keeps chunks properly loaded in a 3x3 area. To help fix the behavioral difference mentioned above, a community-made solution is also listed below. Please continue reading in the next section for more details.


Portal Based Farm may not function like Vanilla Single Player

Certain Vanilla farm designs utilize portals to bypass the world spawn limits by temporarily transferring mobs to the Nether/End, effectively reducing the mob cap in the overworld and increasing the yield of the farm. However, on Minecraft Multiplayer, these types of farms will not function properly due to entities despawning when there are no players around the exit portal, unless you have a player who is near on the exit portal.

Read more on the technical explanation here GitHub issue

Is this a Paper Specific Behavior Changes...?

NO!

Please note that Paper behaves the same way as Vanilla Multiplayer in this case. In both cases, if there is no one in the target dimension, the mobs will be kept. However, if players are in the target dimension but too far away from the exit portal, the hard despawn logic will be triggered, and the mobs will disappear when they exit the portal. Therefore, the only difference in behavior is between singleplayer and multiplayer.

πŸ’‘
Understanding is the first step to finding a solution!

otherside a community made plugin by Kyle!

We now have an experimental plugin that prevents mobs from despawning upon exiting a portal when no players are nearby the exit portal. Please install the plugin and see if that fixes the farm issues!

otherside by community member - kyle42

Otherside | Hangar
Add a hard despawn cooldown for mobs going through portals

If you do have any issue with the plugin, please head to Kyle's Discord for additional helps!


Iron FarmπŸ”—

Design an Iron Farm that works in your server

There are many ways to approach in designing an Iron Farms and not all of them will work efficiently in your server; some of them may not even work at all. Let it be a direct impact of the two behavioral changes listed above or a side effect of server optimizations, generally speaking, Iron Farms do work on a Paper server. The issue is only amplified by clueless copycat builders that blindly copy a build from Youtube without making necessary adjustments such as the shortened activation ranges, simulation distances, and dozens of other factors. I suggest going through this sections and then ensure you've meet all requirement for villagers to spawn an Iron Golem quickly and reliably.

Here is a very insightful videos going in depth on several design philosophy and its efficiency. It should grant you useful tips and hopefully get your iron farm to work on a Paper server!


RedstonesπŸ”—

Redstones Implementations

Paper provides two additional optimized redstone implementations for server owner to choice from. You can find the options in config/paper-world-defaults.yml under redstone-implementation. The default here is vanilla; however alternate-current is recommended here as it is more optimized and mostly preserves the Vanilla behavior in my personal experience.

If you are building large redstone contraptions with lots of minecarts & rails that relies on hopper transfers, it may be worth setting misc to -1 on entity-activation-range in spigot.yml

πŸ’‘
Majority of Redstone contraptions work fine on Paper server. It may need some tweaking on tick-rates in some time-sensitive builds but it isn't impossible to achieve. 

TNT, Carpet, Rail, Sand, and String dupingπŸ”—

TNT, Carpet, Rail, Sand, and String duping requires your manual configuation

Paper fixes every and all publicly known duplication glitches exist in Vanilla Minecraft which includes the famous TNT/carpet duper. If you would like to restore such functionality, please toggle allow-piston-duplication to true in config/paper-global.yml


Bedrock and End portal block breaking requires your manual configuation.

To allow permanent blocks destruction such as bedrocks and end portal blocks, toggle allow-permanent-block-break-exploits to true in config/paper-global.yml.


Gravity and Sand block duplication

To Allow duplication sand blocks via end portals, toggle allow-unsafe-end-portal-teleportation to true in config/paper-global.yml.


String duplication

To Allow duplication String via tripwire machine, toggle allow-tripwire-disarming-exploits to true in config/paper-global.yml.


Advanced GameplaysπŸ”—

The exploits here completely break the sandbox game as they often enable players to gain unlimited resoruce with little to no efforts required, you may as well give your players creative modes. Some exploits can be re-enabled by config options provided by Paper; however, due to risk and complexity of certain exploits, not all of them can be reverted this way.

If you are running a highly technical server, please consider using Vanilla or Fabric as no technical server uses anything Craftbukkit/Spigot/Paper due to behavioral changes.


Ender Pearl Stasis Chamber

By default, Paper fixes the exploit that enable Enderpearl to stay suspended in air when the chunk unloads.

This can be reverted by toggling disable-unloaded-chunk-enderpearl-exploit to false in paper-world-defaults.yml.


Overstacked Item Filter

Certain item sorter designs require the use of an overstacked item filter, which exploits a glitch allowing players to stack items that would normally not be stackable. If you would like to allow this behavior, toggle allow-grindstone-overstacking to true in paper-global.yml


RNG manipulation

The technical details is a bit complicated but bascially RNG manipulation enable the players the ability to use program assisted method to get desireable outcomes. This is a game breaking exploit and should not really be possible; however, if you want to re-enable this exploit, you can use the plugin listed below.

Random Control

Below is a client mod released by Earthcomputer to automate the RNG manipulation.

/Earthcomputer/clientcommands

πŸ’‘
Currently, RandomControl plugin does NOT work with fishing manipulation.

Light Suppression

Light Supression exploits the slowness of Vanilla Minecraft light updates to supress/skip the light/block update to achieve varies effects. Due to Paper using a complete rewritten light engine called Starlight, the Light Supression simply does not work on Paper and there is and will never be a configuation to re-enable it. Consider using Vanilla if you are running such highly technical server.


Vanilla-like Experience

The most direct way to experience Vanilla gameplay is by running a Mojang or Fabric server software. However, if you still wish to host a Paper server, please take a look at PaperMC's recommendation. It provides you with a list of things to change/disable (in most cases, at the cost of performance) to make your server feels as close to Vanilla Minecraft as possible.


Closing NotesπŸ”—

In conculsion, of all forks downstreams of Spigot/CraftBukkit, Paper provides the most noticiable performance gains while being relatively stable and retains the most Vanilla behaviors compare to all other downstream forks.

For majority of the Minecraft server owners, new or returning, Paper is the most ideal choice of server software with the largest supporting community behind it. We welcome you to join us on Paper Discord if you have more questions that this post fails to answer.

Futher more, if you have any suggestion or feedback in regard to this article, please reach out to EterNity on Paper Chan Discord or email me at [email protected].


Special Thanks

Owen for providing epic graphics.


Paper Chan Hideout: https://paper-chan.moe/discord
Epic emojis, stickers, and more!

EterNity

Published 2 years ago