๐Ÿ› ๏ธHelpers and Java Flags

Good starting value: true Enable this to hide ores from x-rayers. For detailed configuration of this feature check out Configuring Anti-Xray.

anti-xray.enabled

Good starting value: true

Enable this to hide ores from x-rayers. For detailed configuration of this feature check out Configuring Anti-Xray. Enabling this will actually decrease performance, however it is much more efficient than any anti-xray plugin. In most cases the performance impact will be negligible.

nether-ceiling-void-damage-height

Good starting value: 127

If this option is greater that 0, players above the set y level will be damaged as if they were in the void. This will prevent players from using the nether roof. Vanilla nether is 128 blocks tall, so you should probably set it to 127. If you modify the height of the nether in any way you should set this to [your_nether_height] - 1.

Vanilla Minecraft and Minecraft server software in version 1.20.5+ requires Java 21 or higher. Oracle has changed their licensing, and there is no longer a compelling reason to get your java from them. Recommended vendors are Adoptium and Amazon Corretto. Alternative JVM implementations such as OpenJ9 or GraalVM can work, however they are not supported by Paper and have been known to cause issues, therefore they are not currently recommended.

Your garbage collector can be configured to reduce lag spikes caused by big garbage collector tasks. You can find startup flags optimized for Minecraft servers here SOG. Keep in mind that this recommendation will not work on alternative JVM implementations. It's recommended to use the flags.sh startup flags generator to get the correct startup flags for your server

In addition, adding the beta flag --add-modules=jdk.incubator.vector before -jar in your startup flags can improve performance. This flag enables Pufferfish to use SIMD instructions on your CPU, making some maths faster. Currently, it's only used for making rendering in game plugin maps (like imageonmaps) possibly 8 times faster.

"Too good to be true" plugins

Plugins removing ground items

Absolutely unnecessary since they can be replaced with merge-radius and alt-item-despawn-rate and frankly, they're less configurable than basic server configs. They tend to use more resources scanning and removing items than not removing the items at all.

Mob stacker plugins

It's really hard to justify using one. Stacking naturally spawned entities causes more lag than not stacking them at all due to the server constantly trying to spawn more mobs. The only "acceptable" use case is for spawners on servers with a large amount of spawners.

Plugins enabling/disabling other plugins

Anything that enables or disables plugins on runtime is extremely dangerous. Loading a plugin like that can cause fatal errors with tracking data and disabling a plugin can lead to errors due to removing dependency. The /reload command suffers from exact same issues and you can read more about them in me4502's blog post

What's lagging? - measuring performance

mspt

Paper offers a /mspt command that will tell you how much time the server took to calculate recent ticks. If the first and second value you see are lower than 50, then congratulations! Your server is not lagging! If the third value is over 50 then it means there was at least 1 tick that took longer. That's completely normal and happens from time to time, so don't panic.

Spark

Spark is a plugin that allows you to profile your server's CPU and memory usage. You can read on how to use it on its wiki. There's also a guide on how to find the cause of lag spikes here.

Timings

Way to see what might be going on when your server is lagging are Timings. Timings is a tool that lets you see exactly what tasks are taking the longest. It's the most basic troubleshooting tool and if you ask for help regarding lag you will most likely be asked for your Timings. Timings is known to have a serious performance impact on servers, it's recommended to use the Spark plugin over Timings and use Purpur or Pufferfish to disable Timings all together.

To get Timings of your server, you just need to execute the /timings paste command and click the link you're provided with. You can share this link with other people to let them help you. It's also easy to misread if you don't know what you're doing. There is a detailed video tutorial by Aikar on how to read them. To see how to fix exploits that can cause lag spikes or crashes on a Minecraft server, refer to

Last updated

Logo

Copyright ยฉ 2024 HidenCloudโ„ข by HidenNetworkโ„ข - All rights reserved. | E: info@hidencloud.com | T/WA: +34624027199 | ID: 6H58JSXC8SCC2