Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions .github/workflows/lint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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
83 changes: 19 additions & 64 deletions src/content/docs/enhancements/Anti-X Tools/anticheat.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -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 <MainStatusPill warning>Spigot / Paper & forks only</MainStatusPill>
#### Grim <MainStatusPill warning>Spigot / Paper & forks only</MainStatusPill>

##### Pros

<ul class="pl-5 list-disc">
<li>Free and open-source</li>
<li>Good movement checks</li>
<li>Open-source</li>
<li>Great movement checks</li>
<li>Predictive technology</li>
</ul>

##### Cons

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

<LinkCard
title="Github"
description="View NoCheatPlus's official Github page for downloading the plugin."
href="https://github.com/Updated-NoCheatPlus/NoCheatPlus"
description="View Grim's official Github page for downloading the plugin."
href="https://github.com/GrimAnticheat/Grim"
/>

---

#### Grim <MainStatusPill warning>Spigot / Paper & forks only</MainStatusPill>

#### NoCheatPlus <MainStatusPill warning>Spigot / Paper & forks only</MainStatusPill>

##### Pros

<ul class="pl-5 list-disc">
<li>Open-source</li>
<li>Great movement checks</li>
<li>Predictive technology</li>
<li>Free and open-source</li>
<li>Good movement checks</li>
</ul>

##### Cons

<ul class="pl-5 list-disc">
<li>Currently WIP, not ready for production servers</li>
<li>Poor default configuration</li>
<li>Mediocre combat checks</li>
<li>Quite unoptimized</li>
</ul>

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

---


#### Vulcan <MainStatusPill warning>Spigot / Paper & forks only</MainStatusPill>

##### Pros

<ul class="pl-5 list-disc">
<li>Great movement and combat checks</li>
<li>Decent movement and combat checks</li>
<li>Good default config</li>
</ul>

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

<ul class="pl-5 list-disc">
<li>EUR 22.49</li>
<li>Relatively poor combat checks</li>
<li>Poor combat checks</li>
<li>Crashes on start up at times</li>
<li>Sub-par performance</li>
</ul>
Expand Down Expand Up @@ -182,6 +183,7 @@ This list consists common ACs and some pros and cons of each AC.
<ul class="pl-5 list-disc">
<li>Bad Combat & Mediocre Movement checks (Bad Elytra, Timer, KillAura Checks)</li>
<li>Lack of checks in general</li>
<li>Poor performance</li>
</ul>

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

---

#### SoaromaSAC (Config 6) <MainStatusPill warning>Spigot / Paper & forks only</MainStatusPill>

##### Pros

<ul class="pl-5 list-disc">
<li>Free</li>
</ul>

##### Cons
<ul class="pl-5 list-disc">
<li> Bad Checks </li>
<li>Infinite False Positives</li>
<li>Fake Open Source Link. Leads to a Rick Roll</li>
</ul>

<LinkCard
title="Spigot"
description="View SoaromaSAC's official Spigot page for downloading the plugin."
href="https://www.spigotmc.org/resources/soaromasac-lightweight-cheat-detection-system.87702/"
/>

---

#### Negativity v1 & v2 <MainStatusPill success>All major Java platforms</MainStatusPill>

##### Pros
<ul class="pl-5 list-disc">
<li>Free & Open Source</li>
<li>Paid Version (v2) is Open Source</li>
<li>v2 supports a lot of platforms (Minestom, Sponge, Fabric & more)</li>
</ul>

##### Cons
<ul class="pl-5 list-disc">
<li>Lacks some important checks (No Elytra Checks, NoSlow Checks etc)</li>
<li>Poor movement and combat checks</li>
</ul>

<LinkCard
title="Spigot"
description="View Negativity's official Spigot page for downloading the plugin."
href="https://www.spigotmc.org/resources/48399/"
/>

---

#### Polar

##### Pros
Expand All @@ -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.
Expand Down
12 changes: 3 additions & 9 deletions src/content/docs/enhancements/Anti-X Tools/antixray.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -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`.

<LinkCard
title="BuiltByBit"
description="View LPX's official BuiltByBit page for downloading the plugin."
href="https://builtbybit.com/resources/lpx-antipacketexploit-antinettycrasher.15709/"
/>

---

#### Orebfuscator
Expand All @@ -39,10 +33,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.

<LinkCard
title="Github"
description="View RayTraceAntiXray's official Github page for downloading the plugin."
href="https://github.com/stonar96/RayTraceAntiXray"
description="View the RayTraceAntiXray PacketEvents Fork"
href="https://github.com/TauCubed/RayTraceAntiXray"
/>
114 changes: 78 additions & 36 deletions src/content/docs/guides/Minecraft/Optimisation/advanced.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -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`.
<LinkCard
title="Learn about the Tick Loop"
description="To understand Spark reports, learn more about the Game Tick Loop here!"
href="https://spark.lucko.me/docs/guides/The-tick-loop"
/>

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.
<div>
<a class="button button--outline button--primary" href="https://github.com/NEZNAMY/TAB/wiki/Optimizing-the-plugin">Guide</a>
</div>
#### 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.

<LinkCard
title="TAB Developer's Optimisation Guide"
description="The official TAB optimisation guide."
href="https://github.com/NEZNAMY/TAB/wiki/Optimizing-the-plugin"
/>

---

Expand All @@ -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.

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

---

#### 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 using an alternative such as Topper.

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

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

---

#### 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.

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

---

#### 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. 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.

<LinkCard
title="WorldGuard Fork"
description="FreshSMP async-movement WorldGuard Fork"
href="https://github.com/FreshSMP/WorldGuard/"
/>

---

#### 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.

<LinkCard
title="AdvancedVanish"
description="GitHub page for AdvancedVanish"
href="https://github.com/quantiom/AdvancedVanish"
/>

---

<div>
<a class="button button--outline button--primary" href="https://www.spigotmc.org/resources/advancedvanish.86036/">Spigot</a>
</div>
#### 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.

<LinkCard
title="EssentialsX Fork"
description="FreshSMP EssentialsX Fork"
href="https://github.com/FreshSMP/Essentials"
/>

---

#### 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.
14 changes: 9 additions & 5 deletions src/content/docs/guides/Minecraft/Optimisation/basic.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,14 @@ 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.
import MainStatusPill from '../../../../../components/MainStatusPill.vue';
import { LinkCard, CardGrid } from '@astrojs/starlight/components';

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

<div>
<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>
</div>
The setup.md recommended optimisation guides has been linked below.

<CardGrid>
<LinkCard title="Paper-Chan Guide" href="https://paper-chan.moe/paper-optimization/" />
<LinkCard title="YouHaveTrouble Guide" href="https://github.com/YouHaveTrouble/minecraft-optimization" />
</CardGrid>
Loading