From 0f1c655ff3d65b047fb00a629704fc4910178b86 Mon Sep 17 00:00:00 2001 From: goosBanny <74544572+goosBanny@users.noreply.github.com> Date: Thu, 24 Jul 2025 03:39:09 +0500 Subject: [PATCH 01/11] Updated basic.mdx --- .../docs/guides/Minecraft/Optimisation/basic.mdx | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/content/docs/guides/Minecraft/Optimisation/basic.mdx b/src/content/docs/guides/Minecraft/Optimisation/basic.mdx index 82dfc54b13..812a269cae 100644 --- a/src/content/docs/guides/Minecraft/Optimisation/basic.mdx +++ b/src/content/docs/guides/Minecraft/Optimisation/basic.mdx @@ -6,10 +6,11 @@ sidebar: order: 2 --- -The setup.md recommended optimisation guides has been linked below, keep in mind that these optimisations can heavily impact mechanics such as entity behavior, despawn ranges etc. +Most servers will only ever need a basic degree of optimisation. Please note that certain optimisations can alter vanilla gameplay mechanics. -Other than that, there's not much that most servers will need to do other than perhaps check their plugin's performance impacts using spark profiler. +The setup.md recommended optimisation guides has been linked below. -
-Paper-Chan Guide YHT Guide -
+ + + + From 37a9f116f49351a7938162e675a6c043de2a09cd Mon Sep 17 00:00:00 2001 From: goosBanny <74544572+goosBanny@users.noreply.github.com> Date: Thu, 24 Jul 2025 03:40:48 +0500 Subject: [PATCH 02/11] fix --- src/content/docs/guides/Minecraft/Optimisation/basic.mdx | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/content/docs/guides/Minecraft/Optimisation/basic.mdx b/src/content/docs/guides/Minecraft/Optimisation/basic.mdx index 812a269cae..3270139538 100644 --- a/src/content/docs/guides/Minecraft/Optimisation/basic.mdx +++ b/src/content/docs/guides/Minecraft/Optimisation/basic.mdx @@ -6,6 +6,9 @@ sidebar: order: 2 --- +import MainStatusPill from '../../../../components/MainStatusPill.vue'; +import { LinkCard, CardGrid } from '@astrojs/starlight/components'; + Most servers will only ever need a basic degree of optimisation. Please note that certain optimisations can alter vanilla gameplay mechanics. The setup.md recommended optimisation guides has been linked below. From 08a91ffd852cd2460d1d84d88f9dfbcd5dc78b3a Mon Sep 17 00:00:00 2001 From: goosBanny <74544572+goosBanny@users.noreply.github.com> Date: Thu, 24 Jul 2025 04:10:59 +0500 Subject: [PATCH 03/11] Update advanced.mdx --- .../Minecraft/Optimisation/advanced.mdx | 114 ++++++++++++------ 1 file changed, 78 insertions(+), 36 deletions(-) diff --git a/src/content/docs/guides/Minecraft/Optimisation/advanced.mdx b/src/content/docs/guides/Minecraft/Optimisation/advanced.mdx index 63a6802804..18af94a25a 100644 --- a/src/content/docs/guides/Minecraft/Optimisation/advanced.mdx +++ b/src/content/docs/guides/Minecraft/Optimisation/advanced.mdx @@ -6,19 +6,36 @@ sidebar: order: 3 --- +import MainStatusPill from '../../../../components/MainStatusPill.vue'; +import { LinkCard, CardGrid } from '@astrojs/starlight/components'; + This section covers plugins that you can modify/replace to improve performance. Only recommended at higher player counts. -#### TAB -The plugin author's optimisation guide is linked below.. The `anti-override` options are especially important as TAB's overriding is quite intensive. An additional config worth changing to false is `unlimited-nametag-mode`. +#### Reading Spark Reports +The most important part of optimisation is to be able to read performance reports. Spark is recommended for this purpose. +Some useful flags within Spark are given below: -Regarding anti-override, first make sure that none of your plugins mess with the tablist or scoreboard other than TAB itself. Some common culprits might be BetterTeams, eGlow, Paper's collision rules and CMI. +Flag | Summary +------------ | ------- +`--only-ticks-over` | Only records samples from ticks that took longer than x milliseconds. Useful for diagnosing the cause of tick spikes. +`--thread *` | Records every thread that is being used by the server instance, including plugins. You can use this to figure out the cause of high CPU usage. +`--timeout` | Automatically stop and upload the spark report after x seconds. +`--interval` | Change the rate of sampling (default = 4ms) -You will need to modify eGlow in order to take full advantage of this optimization. Note that disabling these settings in eGlow will most likely result in incorrect glow colors unless you add the placeholder %eglow_glowcolor% at the end of the tagprefix in TAB. Just like TAB, eGlow has an anti-override feature called `smart-packet-blocker` and a setting called `send-eGlow-team-packets` for team packets. Switch this from true to false to disable them. Once you're done modifying/removing such plugins, make sure `enable-player-collisions` in Paper's configuration is true. After you do that, you can disable player collisions in TAB's config by changing `scoreboard-teams.enable-collisions`. + -Finally, switch `anti-override` from true to false. If your tablist does not have proper order, an external plugin is probably still modifying the tablist. -
-Guide -
+#### TAB +Although TAB is already well-optimised, there are still some modifications you can make to improve it's performance and reduce load on the CPU. + + --- @@ -30,65 +47,90 @@ Consider finding alternatives to plugins that use ProtocolLib, or fork them to u --- #### Citizens -Citizens often eats up >5% of ticks on larger servers. It is recommended that you use ZNPCsPlus instead if you don't mind a smaller catalogue of supported plugins. Overall, ZNPCsPlus was using 0.03% of the ticks at 330 players according to a spark report. +Although Citizens is supported by a wide variety of plugins, it is also notorious for it's poor performance. IT is recommended that you use either FancyNPCs or ZNPCs+ for your server if possible. Both plugins have almost no impact on the Server Thread. -
-GitHub -
+ + + + --- #### ajLeaderboards -Although ajLeaderboards has seen great optimization patches in recent times, it is still a tad laggier than it really should be. We recommend LeaderHeadsRevamped instead. Yes, LHR still works perfectly even though it hasn't seen an update in ages. +ajLeaderboards is famous for causing crashes thanks to it's generation of thousands of threads (over 50k!) We recommend finding an alternative such as Topper. -If you insist on using ajLeaderboards, make sure `register-lp-contexts` is set to false. + -
-Spigot -
--- #### AntiCheat -Vulcan as an anti-cheat does not scale well at higher player counts, where every bit of performance matters. >1.6% ticks eaten at 350+ players is supoptimal. AstroAC on the other hand only eats 0.03% of ticks at 330 players while having checks that are almost as good as Vulcan's. - -Polar might also be worth it but we have yet to check it's performance at higher player counts +Vulcan as an anti-cheat does not scale well at higher player counts, where every bit of performance matters. >1.6% ticks eaten at 350+ players is supoptimal. These days, the only anti-cheat we can truly recommend is Grim, which unfortunately doesn't have the best checks. -Spartan (Both Java and Bedrock) is an absolute no-go for even medium-sized servers. Performance is extremely poor and checks are subpar. +AntiCheats such as Polar haven't seen particularly wide-scale adoption, so we cannot say anything regarding those. View our Anti-Cheats page below for more information. -
-Astro -
+ + + + --- -#### FastAsyncWorldEdit -Although FAWE performs far better than WE when it's actually being used for building, it's performance is, rather ironically, significantly worse than standard WorldEdit's at idle due to FAWE listening to player interaction events. +#### WorldEdit / FastAsyncWorldEdit / WorldGuard +If you're using FAWE or WorldEdit, we suggest forking it to unregister any useless events (located within the WorldEditListener class.) On idle, these events are the primary culprit of high server thread usage in FAWE/WE. -If you nor any of your plugins are actively using FAWE, consider switching to standard WorldEdit. +As for WorldGuard, we suggest using FreshSMP's WG fork. Do note that it is version-specific, so you might have to compile an older commit if you're running an older version. Alongside using the fork, you may also disable listening to specific events and disable `high-frequency-events` within WorldGuard's config. + + --- #### Vanish Plugins -It is recommended to use AdvancedVanish instead of plugins like SuperVanish and PremiumVanish as their performance is rather poor in comparison. +We recommend using AdvancedVanish instead of plugins such as SuperVanish or PremiumVanish which often rely on ProtocolLib. + + + +--- -
-Spigot -
+#### EssentialsX +EssentialsX has a plethora of issues including laggy tabcompletion and an improper caching system. We suggest creating a fork that disables/optimises it's tabcompletion features until it's officially fixed. + +You should consider using/forking the FreshSMP fork, which is linked below. Although it has a few optimisations, it does not disable the tabcompletion system. + + --- #### Geyser To offload Geyser's performance impact on your Spigot/Proxy server, you can use Geyser Standalone. Worth it for servers that have a lot of bedrock players. +--- + #### DiscordSRV If you are fine with losing a few features, consider replacing DiscordSRV with Essentials Discord as it isn't as bloated. +--- + #### Auction House Plugins -zAuctionHouse is recommended as it runs the smoothest while also having the most features. PlayerAuctions is an alright alternative if you want a free plugin, but it's performance is marginally inferior. Consider enabling zAuctionHouse's cacheItems setting as well. +AxAuctions is thus far the most stable and performant Auction House plugin we've tried. PlayerAuctions is an acceptable alternative if you want a free plugin, but it's performance is marginally inferior. -#### Stacking Plugins -Stacking plugins can be very detrimental to server performance depending on their implementations and configurations. RoseStacker is the best we've used thus far, but might end up lagging the server a bit more than if you didn't have it installed. +--- -#### WorldGuard -WorldGuard allows you to prevent it from listening to certain events in it's configuration file. Could prove useful for very specific servers, but not something the average server should tinker with. +#### Stacking Plugins +Stacking plugins can be very detrimental to server performance depending on their implementations and configurations. RoseStacker is the best we've used thus far, but might end up lagging the server a bit more than if you didn't have it installed depending on how you configure it. From 2bd9c076e18d08b0c038ac0b0124d2f30923d7a8 Mon Sep 17 00:00:00 2001 From: goosBanny <74544572+goosBanny@users.noreply.github.com> Date: Thu, 24 Jul 2025 04:11:40 +0500 Subject: [PATCH 04/11] Update advanced.mdx --- src/content/docs/guides/Minecraft/Optimisation/advanced.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/content/docs/guides/Minecraft/Optimisation/advanced.mdx b/src/content/docs/guides/Minecraft/Optimisation/advanced.mdx index 18af94a25a..f85840c78c 100644 --- a/src/content/docs/guides/Minecraft/Optimisation/advanced.mdx +++ b/src/content/docs/guides/Minecraft/Optimisation/advanced.mdx @@ -57,7 +57,7 @@ Although Citizens is supported by a wide variety of plugins, it is also notoriou --- #### ajLeaderboards -ajLeaderboards is famous for causing crashes thanks to it's generation of thousands of threads (over 50k!) We recommend finding an alternative such as Topper. +ajLeaderboards is famous for causing crashes thanks to it's generation of thousands of threads (over 50k!) We recommend using an alternative such as Topper. Date: Thu, 24 Jul 2025 04:15:00 +0500 Subject: [PATCH 05/11] Update antixray.mdx --- src/content/docs/enhancements/Anti-X Tools/antixray.mdx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/content/docs/enhancements/Anti-X Tools/antixray.mdx b/src/content/docs/enhancements/Anti-X Tools/antixray.mdx index d6b38bb3b2..052b210e72 100644 --- a/src/content/docs/enhancements/Anti-X Tools/antixray.mdx +++ b/src/content/docs/enhancements/Anti-X Tools/antixray.mdx @@ -39,10 +39,10 @@ Orebfuscator does have a tendency to turn chests into dirt when server is laggy, ### RayTraceAntiXray -Paper plugin for server-side async multithreaded ray tracing to hide ores that are exposed to air using Paper Anti-Xray engine-mode 1. Might be worth using instead of engine-mode 2 as that can cause lag on slow devices. Only recommended if you have extra threads and don't mind using ProtocolLib. +Paper plugin for server-side async multithreaded ray tracing to hide ores that are exposed to air using Paper Anti-Xray engine-mode 1. We recommend using TauCubed's fork which uses PacketEvents instead of ProtocolLib. From 258bf1287db6a4afde90b92464288ebca05f0509 Mon Sep 17 00:00:00 2001 From: goosBanny <74544572+goosBanny@users.noreply.github.com> Date: Thu, 24 Jul 2025 04:15:56 +0500 Subject: [PATCH 06/11] Update antixray.mdx --- src/content/docs/enhancements/Anti-X Tools/antixray.mdx | 6 ------ 1 file changed, 6 deletions(-) diff --git a/src/content/docs/enhancements/Anti-X Tools/antixray.mdx b/src/content/docs/enhancements/Anti-X Tools/antixray.mdx index 052b210e72..e817d03bc0 100644 --- a/src/content/docs/enhancements/Anti-X Tools/antixray.mdx +++ b/src/content/docs/enhancements/Anti-X Tools/antixray.mdx @@ -13,12 +13,6 @@ As the name suggests, Anti-Xray will prevent players from finding ores using Xra #### PaperMC PaperMC (A fork of Spigot) comes with a built-in Anti-Xray. This Anti-Xray usually does the trick just fine. It is simple to setup and causes no lag for both the server and the client (unless you hide caves (air), which will be much laggier for the client). A great guide is shown [here](https://docs.papermc.io/paper/anti-xray). Again, make sure that you do NOT add `air` to `hidden-blocks`. - - --- #### Orebfuscator From 55723e98d12a928948535ee0c505a98d38fbe7cc Mon Sep 17 00:00:00 2001 From: goosBanny <74544572+goosBanny@users.noreply.github.com> Date: Thu, 24 Jul 2025 04:21:02 +0500 Subject: [PATCH 07/11] Update anticheat.mdx --- .../enhancements/Anti-X Tools/anticheat.mdx | 83 +++++-------------- 1 file changed, 19 insertions(+), 64 deletions(-) diff --git a/src/content/docs/enhancements/Anti-X Tools/anticheat.mdx b/src/content/docs/enhancements/Anti-X Tools/anticheat.mdx index cf4ae3b404..40a3ed85a7 100644 --- a/src/content/docs/enhancements/Anti-X Tools/anticheat.mdx +++ b/src/content/docs/enhancements/Anti-X Tools/anticheat.mdx @@ -46,62 +46,63 @@ We highly discourage the usage of auto-bans as no anti-cheat is perfect. If you This list consists common ACs and some pros and cons of each AC. -#### NoCheatPlus Spigot / Paper & forks only +#### Grim Spigot / Paper & forks only ##### Pros
    -
  • Free and open-source
  • -
  • Good movement checks
  • +
  • Open-source
  • +
  • Great movement checks
  • +
  • Predictive technology
##### Cons
    -
  • Default configuration will spam false movement positives all over the place, you should buy a good config (eg. [MarkElf's](https://www.mc-market.org/resources/475/)) OR make your own
  • +
  • v3 is Poorly Optimized; Use v2.
  • Mediocre combat checks
--- -#### Grim Spigot / Paper & forks only + +#### NoCheatPlus Spigot / Paper & forks only ##### Pros
    -
  • Open-source
  • -
  • Great movement checks
  • -
  • Predictive technology
  • +
  • Free and open-source
  • +
  • Good movement checks
##### Cons
    -
  • Currently WIP, not ready for production servers
  • +
  • Poor default configuration
  • Mediocre combat checks
  • -
  • Quite unoptimized
--- + #### Vulcan Spigot / Paper & forks only ##### Pros
    -
  • Great movement and combat checks
  • +
  • Decent movement and combat checks
  • Good default config
@@ -134,7 +135,7 @@ This list consists common ACs and some pros and cons of each AC.
  • EUR 22.49
  • -
  • Relatively poor combat checks
  • +
  • Poor combat checks
  • Crashes on start up at times
  • Sub-par performance
@@ -182,6 +183,7 @@ This list consists common ACs and some pros and cons of each AC.
  • Bad Combat & Mediocre Movement checks (Bad Elytra, Timer, KillAura Checks)
  • Lack of checks in general
  • +
  • Poor performance
Spigot / Paper & forks only - -##### Pros - -
    -
  • Free
  • -
- -##### Cons -
    -
  • Bad Checks
  • -
  • Infinite False Positives
  • -
  • Fake Open Source Link. Leads to a Rick Roll
  • -
- - - ---- - -#### Negativity v1 & v2 All major Java platforms - -##### Pros -
    -
  • Free & Open Source
  • -
  • Paid Version (v2) is Open Source
  • -
  • v2 supports a lot of platforms (Minestom, Sponge, Fabric & more)
  • -
- -##### Cons -
    -
  • Lacks some important checks (No Elytra Checks, NoSlow Checks etc)
  • -
  • Poor movement and combat checks
  • -
- - - ---- - #### Polar ##### Pros @@ -266,8 +222,7 @@ This anti-cheat is optimised for bedrock players. ### Recommendations -Both Astro and Vulcan offer a great price to performance ratio. However, Astro will be significantly lighter on system resources. -Also, Vulcan will support Bedrock in the near future. Astro already supports it. +We recommend using Grim since it is both free and relatively capable while still being optimal performance-wise. Take Vulcan into consideration as well since it is a one-time purchase. :::tip Remember, no anti-cheat is perfect. Players will be able to bypass anti-cheats, so we recommend having a moderator or two online to keep an eye out for any cheaters. From c3ef537aad60c1b95afe5e7a449e4ce85e4f5ebb Mon Sep 17 00:00:00 2001 From: goosBanny <74544572+goosBanny@users.noreply.github.com> Date: Thu, 24 Jul 2025 04:24:26 +0500 Subject: [PATCH 08/11] Update lint.yml --- .github/workflows/lint.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 42ed3c3148..ff71fc404b 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -28,7 +28,7 @@ jobs: node-version: 18 registry-url: https://registry.npmjs.org/ - - name: npm install, build - run: | - npm install - npm run astro build + - name: npm install, build + run: | + npm install + npm run astro build From cf88601148abded6e9af9aa9116bdc20c079f1b1 Mon Sep 17 00:00:00 2001 From: goosBanny <74544572+goosBanny@users.noreply.github.com> Date: Fri, 25 Jul 2025 23:39:50 +0500 Subject: [PATCH 09/11] minor WG opt --- src/content/docs/guides/Minecraft/Optimisation/advanced.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/content/docs/guides/Minecraft/Optimisation/advanced.mdx b/src/content/docs/guides/Minecraft/Optimisation/advanced.mdx index f85840c78c..af649f636d 100644 --- a/src/content/docs/guides/Minecraft/Optimisation/advanced.mdx +++ b/src/content/docs/guides/Minecraft/Optimisation/advanced.mdx @@ -83,7 +83,7 @@ AntiCheats such as Polar haven't seen particularly wide-scale adoption, so we ca #### WorldEdit / FastAsyncWorldEdit / WorldGuard If you're using FAWE or WorldEdit, we suggest forking it to unregister any useless events (located within the WorldEditListener class.) On idle, these events are the primary culprit of high server thread usage in FAWE/WE. -As for WorldGuard, we suggest using FreshSMP's WG fork. Do note that it is version-specific, so you might have to compile an older commit if you're running an older version. Alongside using the fork, you may also disable listening to specific events and disable `high-frequency-events` within WorldGuard's config. +As for WorldGuard, we suggest using FreshSMP's WG fork. Do note that it is version-specific, so you might have to compile an older commit if you're running an older version. Alongside using the fork, you may also disable listening to specific events and disable `high-frequency-events` within WorldGuard's config. If you have worlds without any regions, WorldGuard also allows you to disabl elisteners in those worlds by setting `regions.enabled: false` within that world's config. Date: Sat, 26 Jul 2025 02:38:09 +0500 Subject: [PATCH 10/11] Update basic.mdx --- src/content/docs/guides/Minecraft/Optimisation/basic.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/content/docs/guides/Minecraft/Optimisation/basic.mdx b/src/content/docs/guides/Minecraft/Optimisation/basic.mdx index 3270139538..45d322ac9b 100644 --- a/src/content/docs/guides/Minecraft/Optimisation/basic.mdx +++ b/src/content/docs/guides/Minecraft/Optimisation/basic.mdx @@ -6,7 +6,7 @@ sidebar: order: 2 --- -import MainStatusPill from '../../../../components/MainStatusPill.vue'; +import MainStatusPill from '../../../../../components/MainStatusPill.vue'; import { LinkCard, CardGrid } from '@astrojs/starlight/components'; Most servers will only ever need a basic degree of optimisation. Please note that certain optimisations can alter vanilla gameplay mechanics. From da9c753420c33bedc5e69522abbdca4b9bef2877 Mon Sep 17 00:00:00 2001 From: goosBanny <74544572+goosBanny@users.noreply.github.com> Date: Sat, 26 Jul 2025 02:38:10 +0500 Subject: [PATCH 11/11] Update advanced.mdx --- src/content/docs/guides/Minecraft/Optimisation/advanced.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/content/docs/guides/Minecraft/Optimisation/advanced.mdx b/src/content/docs/guides/Minecraft/Optimisation/advanced.mdx index af649f636d..ca7f2ca279 100644 --- a/src/content/docs/guides/Minecraft/Optimisation/advanced.mdx +++ b/src/content/docs/guides/Minecraft/Optimisation/advanced.mdx @@ -6,7 +6,7 @@ sidebar: order: 3 --- -import MainStatusPill from '../../../../components/MainStatusPill.vue'; +import MainStatusPill from '../../../../../components/MainStatusPill.vue'; import { LinkCard, CardGrid } from '@astrojs/starlight/components'; This section covers plugins that you can modify/replace to improve performance. Only recommended at higher player counts.