From fbead6afa380b5605468dfeb82b4232346af4011 Mon Sep 17 00:00:00 2001 From: Pantera <89838384+Pantera07@users.noreply.github.com> Date: Wed, 5 Jan 2022 18:50:29 +0900 Subject: [PATCH 1/2] Purpur is now a pufferfish fork. Change Purpur Address, Add Pufferfish --- README.md | 30 ++++++++++++++++++++++++++---- 1 file changed, 26 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index a802d93..44a53d5 100644 --- a/README.md +++ b/README.md @@ -18,7 +18,8 @@ Your choice of server software can make a huge difference in performance and API Recommended top picks: * [Paper](https://github.com/PaperMC/Paper) - The most popular server software that aims to improve performance while fixing gameplay and mechanics inconsistencies. -* [Purpur](https://github.com/pl3xgaming/Purpur) - Paper fork focused on features and the freedom of customization. +* [Pufferfish](https://github.com/pufferfish-gg/Pufferfish) - Paper fork that aims to further improve server performance. +* [Purpur](https://github.com/PurpurMC/Purpur) - Pufferfish fork focused on features and the freedom of customization. You should stay away from: * Yatopia - "The combined power of Paper forks for maximum instability and unmaintainablity!" - [KennyTV's list of shame](https://github.com/KennyTV/list-of-shame). Nothing more to be said. (Moreover, the project has been discontinued.) @@ -27,7 +28,7 @@ You should stay away from: * Any paid server JAR that claims async anything - 99.99% chance of being a scam. * Bukkit/CraftBukkit/Spigot - Extremely outdated in terms of performance compared to other server software you have access to. * Any plugin/software that enables/disables/reloads plugins on runtime. See [this section](#plugins-enablingdisabling-other-plugins) to understand why. -* Many forks further downstream from Purpur will encounter instability and other issues. If you're seeking more performance gains, optimize your server or invest in a personal private fork. +* Many forks further downstream from Pufferfish or Purpur will encounter instability and other issues. If you're seeking more performance gains, optimize your server or invest in a personal private fork. ## Map pregen Map pregeneration is one of the most important steps in improving a low-budget server. This helps out servers that are hosted on a shared CPU/single core node the most, since they can't fully utilize async chunk loading. You can use a plugin such as [Chunky](https://github.com/pop4959/Chunky) to pregenerate the world. Make sure to set up a world border so your players don't generate new chunks! Note that pregenning can sometimes take hours depending on the radius you set in the pregen plugin. Keep in mind that with Paper and above your tps will not be affected by chunk loading, but the speed of loading chunks can significantly slow down when your server's cpu is overloaded. @@ -57,7 +58,7 @@ This allows you to set the cap for the size of a packet before the server attemp You can enable Purpur's alternate keepalive system so players with bad connection don't get timed out as often. Has known incompatibility with TCPShield. > Enabling this sends a keepalive packet once per second to a player, and only kicks for timeout if none of them were responded to in 30 seconds. Responding to any of them in any order will keep the player connected. AKA, it won't kick your players because 1 packet gets dropped somewhere along the lines -~ https://purpur.pl3x.net/docs/Configuration/#use-alternate-keepalive +~ https://purpurmc.org/docs/Configuration/#use-alternate-keepalive --- @@ -311,6 +312,26 @@ Good starting values: This decides how often specified behaviors and sensors are being fired in ticks. `acquirepoi` for villagers seems to be the heaviest behavior, so it's been greately increased. Decrease it in case of issues with villagers finding their way around. +### [pufferfish.yml] + +#### max-loads-per-projectile + +`Good starting value: 8` + +Specifies the maximum amount of chunks a projectile can load in its lifetime. Decreasing will reduce chunk loads caused by entity projectiles, but could cause issues with tridents, enderpearls, etc. + +#### max-tick-freq + +`Good starting value: 20` + +This option defines the slowest amount entities farthest from players will be ticked. Increasing this value may improve the performance of entities far from view but may break farms or greatly nerf mob behavior. + +#### activation-dist-mod + +`Good starting value: 7` + +Controls the gradient in which mobs are ticked. DAB works on a gradient instead of a hard cutoff like EAR. Instead of fully ticking close entities and barely ticking far entities, DAB will reduce the amount an entity is ticked based on the result of this calculation. Decreasing this will activate DAB closer to players, improving DAB's performance gains, but will affect how entities interact with their surroundings and may break mob farms. + ### [purpur.yml] #### aggressive-towards-villager-when-lagging @@ -533,4 +554,5 @@ To get timings of your server you just need to execute the `/timings paste` comm [bukkit.yml]: https://bukkit.gamepedia.com/Bukkit.yml [spigot.yml]: https://www.spigotmc.org/wiki/spigot-configuration/ [paper.yml]: https://paper.readthedocs.io/en/latest/server/configuration.html -[purpur.yml]: https://purpur.pl3x.net/docs +[purpur.yml]: https://purpurmc.org/docs/ +[pufferfish.yml]: https://github.com/pufferfish-gg/Pufferfish From cae708271daa6e9e2027d769097f58041ae01a01 Mon Sep 17 00:00:00 2001 From: Pantera <89838384+Pantera07@users.noreply.github.com> Date: Fri, 28 Jan 2022 18:21:06 +0900 Subject: [PATCH 2/2] Bring back the Lobotomizer https://github.com/PurpurMC/Purpur/commit/611c0347104e9c0e1a263d1ab4103e6a1aa5eb3f --- README.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/README.md b/README.md index 44a53d5..b1b11e1 100644 --- a/README.md +++ b/README.md @@ -352,6 +352,12 @@ This option can disable portal usage of all entities besides the player. This pr This option allows you to set how often (in ticks) villager brains (work and poi) will tick. Going higher than `3` is confirmed to make villagers inconsistent/buggy. +#### villager.lobotomize + +`Good starting value: true` + +Lobotomized villagers are stripped from their AI and only restock their offers every so often. Enabling this will lobotomize villagers that are unable to pathfind to their destination. Freeing them should unlobotomize them. + --- ## Misc