Skip to content

Commit b6c7a5a

Browse files
authored
Merge pull request #226 from setupmd/optimisation-revamp
docs: Revamped Optimisation & AntiCheats sections.
2 parents 5bb5074 + da9c753 commit b6c7a5a

File tree

5 files changed

+113
-118
lines changed

5 files changed

+113
-118
lines changed

.github/workflows/lint.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ jobs:
2828
node-version: 18
2929
registry-url: https://registry.npmjs.org/
3030

31-
- name: npm install, build
32-
run: |
33-
npm install
34-
npm run astro build
31+
- name: npm install, build
32+
run: |
33+
npm install
34+
npm run astro build

src/content/docs/enhancements/Anti-X Tools/anticheat.mdx

Lines changed: 19 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -46,62 +46,63 @@ We highly discourage the usage of auto-bans as no anti-cheat is perfect. If you
4646

4747
This list consists common ACs and some pros and cons of each AC.
4848

49-
#### NoCheatPlus <MainStatusPill warning>Spigot / Paper & forks only</MainStatusPill>
49+
#### Grim <MainStatusPill warning>Spigot / Paper & forks only</MainStatusPill>
5050

5151
##### Pros
5252

5353
<ul class="pl-5 list-disc">
54-
<li>Free and open-source</li>
55-
<li>Good movement checks</li>
54+
<li>Open-source</li>
55+
<li>Great movement checks</li>
56+
<li>Predictive technology</li>
5657
</ul>
5758

5859
##### Cons
5960

6061
<ul class="pl-5 list-disc">
61-
<li>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</li>
62+
<li>v3 is Poorly Optimized; Use v2.</li>
6263
<li>Mediocre combat checks</li>
6364
</ul>
6465

6566
<LinkCard
6667
title="Github"
67-
description="View NoCheatPlus's official Github page for downloading the plugin."
68-
href="https://github.com/Updated-NoCheatPlus/NoCheatPlus"
68+
description="View Grim's official Github page for downloading the plugin."
69+
href="https://github.com/GrimAnticheat/Grim"
6970
/>
7071

7172
---
7273

73-
#### Grim <MainStatusPill warning>Spigot / Paper & forks only</MainStatusPill>
74+
75+
#### NoCheatPlus <MainStatusPill warning>Spigot / Paper & forks only</MainStatusPill>
7476

7577
##### Pros
7678

7779
<ul class="pl-5 list-disc">
78-
<li>Open-source</li>
79-
<li>Great movement checks</li>
80-
<li>Predictive technology</li>
80+
<li>Free and open-source</li>
81+
<li>Good movement checks</li>
8182
</ul>
8283

8384
##### Cons
8485

8586
<ul class="pl-5 list-disc">
86-
<li>Currently WIP, not ready for production servers</li>
87+
<li>Poor default configuration</li>
8788
<li>Mediocre combat checks</li>
88-
<li>Quite unoptimized</li>
8989
</ul>
9090

9191
<LinkCard
9292
title="Github"
93-
description="View Grim's official Github page for downloading the plugin."
94-
href="https://github.com/MWHunter/Grim"
93+
description="View NoCheatPlus's official Github page for downloading the plugin."
94+
href="https://github.com/Updated-NoCheatPlus/NoCheatPlus"
9595
/>
9696

9797
---
9898

99+
99100
#### Vulcan <MainStatusPill warning>Spigot / Paper & forks only</MainStatusPill>
100101

101102
##### Pros
102103

103104
<ul class="pl-5 list-disc">
104-
<li>Great movement and combat checks</li>
105+
<li>Decent movement and combat checks</li>
105106
<li>Good default config</li>
106107
</ul>
107108

@@ -134,7 +135,7 @@ This list consists common ACs and some pros and cons of each AC.
134135

135136
<ul class="pl-5 list-disc">
136137
<li>EUR 22.49</li>
137-
<li>Relatively poor combat checks</li>
138+
<li>Poor combat checks</li>
138139
<li>Crashes on start up at times</li>
139140
<li>Sub-par performance</li>
140141
</ul>
@@ -182,6 +183,7 @@ This list consists common ACs and some pros and cons of each AC.
182183
<ul class="pl-5 list-disc">
183184
<li>Bad Combat & Mediocre Movement checks (Bad Elytra, Timer, KillAura Checks)</li>
184185
<li>Lack of checks in general</li>
186+
<li>Poor performance</li>
185187
</ul>
186188

187189
<LinkCard
@@ -197,52 +199,6 @@ This anti-cheat is optimised for bedrock players.
197199

198200
---
199201

200-
#### SoaromaSAC (Config 6) <MainStatusPill warning>Spigot / Paper & forks only</MainStatusPill>
201-
202-
##### Pros
203-
204-
<ul class="pl-5 list-disc">
205-
<li>Free</li>
206-
</ul>
207-
208-
##### Cons
209-
<ul class="pl-5 list-disc">
210-
<li> Bad Checks </li>
211-
<li>Infinite False Positives</li>
212-
<li>Fake Open Source Link. Leads to a Rick Roll</li>
213-
</ul>
214-
215-
<LinkCard
216-
title="Spigot"
217-
description="View SoaromaSAC's official Spigot page for downloading the plugin."
218-
href="https://www.spigotmc.org/resources/soaromasac-lightweight-cheat-detection-system.87702/"
219-
/>
220-
221-
---
222-
223-
#### Negativity v1 & v2 <MainStatusPill success>All major Java platforms</MainStatusPill>
224-
225-
##### Pros
226-
<ul class="pl-5 list-disc">
227-
<li>Free & Open Source</li>
228-
<li>Paid Version (v2) is Open Source</li>
229-
<li>v2 supports a lot of platforms (Minestom, Sponge, Fabric & more)</li>
230-
</ul>
231-
232-
##### Cons
233-
<ul class="pl-5 list-disc">
234-
<li>Lacks some important checks (No Elytra Checks, NoSlow Checks etc)</li>
235-
<li>Poor movement and combat checks</li>
236-
</ul>
237-
238-
<LinkCard
239-
title="Spigot"
240-
description="View Negativity's official Spigot page for downloading the plugin."
241-
href="https://www.spigotmc.org/resources/48399/"
242-
/>
243-
244-
---
245-
246202
#### Polar
247203

248204
##### Pros
@@ -266,8 +222,7 @@ This anti-cheat is optimised for bedrock players.
266222

267223
### Recommendations
268224

269-
Both Astro and Vulcan offer a great price to performance ratio. However, Astro will be significantly lighter on system resources.
270-
Also, Vulcan will support Bedrock in the near future. Astro already supports it.
225+
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.
271226

272227
:::tip
273228
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.

src/content/docs/enhancements/Anti-X Tools/antixray.mdx

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -13,12 +13,6 @@ As the name suggests, Anti-Xray will prevent players from finding ores using Xra
1313
#### PaperMC
1414
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`.
1515

16-
<LinkCard
17-
title="BuiltByBit"
18-
description="View LPX's official BuiltByBit page for downloading the plugin."
19-
href="https://builtbybit.com/resources/lpx-antipacketexploit-antinettycrasher.15709/"
20-
/>
21-
2216
---
2317

2418
#### Orebfuscator
@@ -39,10 +33,10 @@ Orebfuscator does have a tendency to turn chests into dirt when server is laggy,
3933

4034
### RayTraceAntiXray
4135

42-
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.
36+
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.
4337

4438
<LinkCard
4539
title="Github"
46-
description="View RayTraceAntiXray's official Github page for downloading the plugin."
47-
href="https://github.com/stonar96/RayTraceAntiXray"
40+
description="View the RayTraceAntiXray PacketEvents Fork"
41+
href="https://github.com/TauCubed/RayTraceAntiXray"
4842
/>

src/content/docs/guides/Minecraft/Optimisation/advanced.mdx

Lines changed: 78 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -6,19 +6,36 @@ sidebar:
66
order: 3
77
---
88

9+
import MainStatusPill from '../../../../../components/MainStatusPill.vue';
10+
import { LinkCard, CardGrid } from '@astrojs/starlight/components';
11+
912
This section covers plugins that you can modify/replace to improve performance. Only recommended at higher player counts.
1013

11-
#### TAB
12-
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`.
14+
#### Reading Spark Reports
15+
The most important part of optimisation is to be able to read performance reports. Spark is recommended for this purpose.
16+
Some useful flags within Spark are given below:
1317

14-
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.
18+
Flag | Summary
19+
------------ | -------
20+
`--only-ticks-over` | Only records samples from ticks that took longer than x milliseconds. Useful for diagnosing the cause of tick spikes.
21+
`--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.
22+
`--timeout` | Automatically stop and upload the spark report after x seconds.
23+
`--interval` | Change the rate of sampling (default = 4ms)
1524

16-
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`.
25+
<LinkCard
26+
title="Learn about the Tick Loop"
27+
description="To understand Spark reports, learn more about the Game Tick Loop here!"
28+
href="https://spark.lucko.me/docs/guides/The-tick-loop"
29+
/>
1730

18-
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.
19-
<div>
20-
<a class="button button--outline button--primary" href="https://github.com/NEZNAMY/TAB/wiki/Optimizing-the-plugin">Guide</a>
21-
</div>
31+
#### TAB
32+
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.
33+
34+
<LinkCard
35+
title="TAB Developer's Optimisation Guide"
36+
description="The official TAB optimisation guide."
37+
href="https://github.com/NEZNAMY/TAB/wiki/Optimizing-the-plugin"
38+
/>
2239

2340
---
2441

@@ -30,65 +47,90 @@ Consider finding alternatives to plugins that use ProtocolLib, or fork them to u
3047
---
3148

3249
#### Citizens
33-
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.
50+
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.
3451

35-
<div>
36-
<a class="button button--outline button--primary" href="https://github.com/Pyrbu/ZNPCsPlus/tree/2.X">GitHub</a>
37-
</div>
52+
<CardGrid>
53+
<LinkCard title="FancyNPCs" href="https://modrinth.com/plugin/fancynpcs" />
54+
<LinkCard title="ZNPCs+" href="https://ci.pyr.lol/job/ZNPCsPlus/" />
55+
</CardGrid>
3856

3957
---
4058

4159
#### ajLeaderboards
42-
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.
60+
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.
4361

44-
If you insist on using ajLeaderboards, make sure `register-lp-contexts` is set to false.
62+
<LinkCard
63+
title="Topper"
64+
description="Modrinth page for Topper"
65+
href="https://modrinth.com/plugin/topper-lb"
66+
/>
4567

46-
<div>
47-
<a class="button button--outline button--primary" href="https://www.spigotmc.org/resources/leaderheads.2079/">Spigot</a>
48-
</div>
4968

5069
---
5170

5271
#### AntiCheat
53-
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.
54-
55-
Polar might also be worth it but we have yet to check it's performance at higher player counts
72+
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.
5673

57-
Spartan (Both Java and Bedrock) is an absolute no-go for even medium-sized servers. Performance is extremely poor and checks are subpar.
74+
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.
5875

59-
<div>
60-
<a class="button button--outline button--primary" href="https://astroac.cc/">Astro</a>
61-
</div>
76+
<CardGrid>
77+
<LinkCard title="Grim AC" href="https://github.com/GrimAnticheat/Grim" description="v3 not Production-Ready" />
78+
<LinkCard title="All AntiCheats" href="e/anti-x/ac" />
79+
</CardGrid>
6280

6381
---
6482

65-
#### FastAsyncWorldEdit
66-
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.
83+
#### WorldEdit / FastAsyncWorldEdit / WorldGuard
84+
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.
6785

68-
If you nor any of your plugins are actively using FAWE, consider switching to standard WorldEdit.
86+
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.
87+
88+
<LinkCard
89+
title="WorldGuard Fork"
90+
description="FreshSMP async-movement WorldGuard Fork"
91+
href="https://github.com/FreshSMP/WorldGuard/"
92+
/>
6993

7094
---
7195

7296
#### Vanish Plugins
73-
It is recommended to use AdvancedVanish instead of plugins like SuperVanish and PremiumVanish as their performance is rather poor in comparison.
97+
We recommend using AdvancedVanish instead of plugins such as SuperVanish or PremiumVanish which often rely on ProtocolLib.
98+
99+
<LinkCard
100+
title="AdvancedVanish"
101+
description="GitHub page for AdvancedVanish"
102+
href="https://github.com/quantiom/AdvancedVanish"
103+
/>
104+
105+
---
74106

75-
<div>
76-
<a class="button button--outline button--primary" href="https://www.spigotmc.org/resources/advancedvanish.86036/">Spigot</a>
77-
</div>
107+
#### EssentialsX
108+
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.
109+
110+
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.
111+
112+
<LinkCard
113+
title="EssentialsX Fork"
114+
description="FreshSMP EssentialsX Fork"
115+
href="https://github.com/FreshSMP/Essentials"
116+
/>
78117

79118
---
80119

81120
#### Geyser
82121
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.
83122

123+
---
124+
84125
#### DiscordSRV
85126
If you are fine with losing a few features, consider replacing DiscordSRV with Essentials Discord as it isn't as bloated.
86127

128+
---
129+
87130
#### Auction House Plugins
88-
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.
131+
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.
89132

90-
#### Stacking Plugins
91-
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.
133+
---
92134

93-
#### WorldGuard
94-
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.
135+
#### Stacking Plugins
136+
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.

src/content/docs/guides/Minecraft/Optimisation/basic.mdx

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,14 @@ sidebar:
66
order: 2
77
---
88

9-
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.
9+
import MainStatusPill from '../../../../../components/MainStatusPill.vue';
10+
import { LinkCard, CardGrid } from '@astrojs/starlight/components';
1011

11-
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.
12+
Most servers will only ever need a basic degree of optimisation. Please note that certain optimisations can alter vanilla gameplay mechanics.
1213

13-
<div>
14-
<a class="button button--outline button--primary" href="https://paper-chan.moe/paper-optimization/">Paper-Chan Guide</a> <a class="button button--outline button--primary" href="https://github.com/YouHaveTrouble/minecraft-optimization">YHT Guide</a>
15-
</div>
14+
The setup.md recommended optimisation guides has been linked below.
15+
16+
<CardGrid>
17+
<LinkCard title="Paper-Chan Guide" href="https://paper-chan.moe/paper-optimization/" />
18+
<LinkCard title="YouHaveTrouble Guide" href="https://github.com/YouHaveTrouble/minecraft-optimization" />
19+
</CardGrid>

0 commit comments

Comments
 (0)