Dev License: This installation of WHMCS is running under a Development License and is not authorized to be used for production use. Please report any cases of abuse to [email protected]

How to optimize your Minecraft modded server Print

  • 0

Profiling & Fixing performance issues on your Minecraft modded server
In this guide, we'll see some methods to profile your server performance, some optimization mods that can mean a huge difference on your server, and some tips that you can follow to say "bye-bye" to lag issues.

Profiling your server performance

In order to determine the best way to fix performance issues, first, we have to know what's exactly causing those problems.

Some methods to profile your server performance:

  • Spark : Spark is a server-side (optional on the client) lightweight mod that can be used to profile your server CPU, inspect the RAM Memory usage, and create timing reports of your server. Spark is available for the following versions [Forge 1.7.10 | Forge 1.12.2 | Forge 1.15.2 | Forge 1.16.4/5 | Forge 1.17.1 | Forge 1.18 | Fabric 1.15.2 | Fabric 1.16.4/5 | Fabric 1.17/.1 | Fabric 1.18 ]. This is the only stable method as of now that's available for Fabric & Forge.

  • SpongeForge : Sponge itself is a server-side software that allows you to use Sponge plugins & Forge mods at the same time, but that isn't everything! Sponge also has its own Timings report function integrated. It is available on Forge 1.8-1.12.2/1.16.5. If you don't know how to install Sponge, you can follow this tutorial : https://www.youtube.com/watch?v=_D3Y-EkAScs

  • Magma : Magma and Sponge are very similar, Magma is a server-side software that allows you to use Bukkit/Spigot/Paper plugins & Forge mods at the same time. I personally prefer it over Sponge because it has support for more plugins, and adds many performance patches to your server! What makes Magma useful to profile your server performance is that it adds the same tool as Sponge for Timings report, which is extremely useful. Magma is available for 1.12.2 and 1.16.5, however, we only recommend using it for 1.12.2 for now.

  • Mohist : The same story as Magma, it allows you to use Bukkit/Spigot/Paper plugins & Forge mods at the same time. It also includes many performance patches and has the same Timings report profiling tool. It is available for 1.12.2, 1.16.5, and 1.18, however, we only recommend using it for 1.16.5 for now.

    NOTE: Even though all of these 3 last software (Sponge/Magma/Mohist) are mostly stable, mods and plugins were never meant to work together. In case you have any issues related to using any of the software above, just open a ticket and we'll help you out!


    How to profile your server performance using those methods:


  • Using Spark : Spark has many useful features to profile different types of performance issues. However, what we'll be focussing on in this article is their Timings profiler since it's the tool that can be used to determine lag sources in 90% of the situations. 

    Once you've installed Spark on your server, you'll have to start the Timings profiler by running the command "spark profiler". Once you've done this you'll have to run the command "spark profiler --stop", and after running the command, the server will return a link to the profile site where you'll be able to check exactly what's causing any tick usage and with this, what's probably causing the most lag on your server.


  • Using Sponge/Magma/Mohist : These 3 methods have a very similar timings profiler tool. In fact, they're all based on the same software (Timings v2 by Aikar), the only difference is the command used to get the reports.

    In order to get your timings report when using Sponge, you'll have to run the command "sponge timings on", then wait (ideally) between 5 and 15 minutes (The longer you leave it active, the more accurate the result will be), and then you'll have to run the command "sponge timings paste" or "sponge timings report". After running the command, you'll get a link to the timings report site.

    The process is very similar on Magma and Mohist, you'll have to run the command "timings on", wait a couple of minutes, and then run the command "timings paste" or "timings report".

    Once you access the timings report site, you'll be able to see a lot of useful information, such as the uptime, the usage of your server garbage collector, a list of your plugins, the tick usage of each server process, and more. 


If you're unsure of how to read your timing reports, do not hesitate to make a ticket and we'll for sure help you out!


Recommended optimization mods for your server

Sometimes, the only way to optimize your server is to simply download and drag-drop a mod. As simple as that! In this section, we'll see some of the best optimization mods out there for the most used Modded versions of Minecraft and we'll briefly explain why they're so good.

Note: All of these mods should be fully compatible with each other while using the same version of Minecraft and the same modloader.

 

  • Minecraft 1.17.1/1.18.1

    Fabric Mod Loader:
     
    Lithium: Lithium is what's called a "general-purpose optimization mod" because it helps to improve a lot of systems without making major changes to vanilla behaviors. This means that there's literally no reason to not use it since it won't have any negative impact on your gameplay!

    Lithium can be used both on the server-side and the client-side without being required to have it installed on both. It doesn't have any dependency, so you just have to download and drag-drop it on your mods folder.

    FerriteCore: FerriteCore has so many patches that would be really difficult to number them. However, an extremely simple explanation of what this mod does is "It helps your server to keep its RAM usage as low as possible". It has a very significant impact on huge modded servers, however, it can help to decrease the RAM usage in the "long-term" (Servers that have to run for many hours without restarting) for small servers too.

    FerriteCore can be used both on the server-side and the client-side without being required to have it installed on both. It doesn't have any dependency.

    Phosphor: Phosphor was made to optimize one of the most inefficient areas of Minecraft. The lighting engine of the game. When using Phosphor you'll instantly notice how the chunks generation becomes a lot faster.

    Phosphor can be installed both on the server-side and the client-side without being required to have it installed on both. It doesn't have any dependency.


    Forge Mod Loader
    FerriteCore: It has the same/very similar features as Fabric on Forge.

    - AI Improvements: AI Improvements is a mod that focuses on optimizing the AI of Mobs/Animals with nearly 0 modifications of how they work in-game. This mod has a major effect on servers with a lot of mobs active at the same time and can help to increase the overall performance in huge servers by removing simple vanilla tasks and replacing them with optimized tasks handled by the mod.

    AI Improvements is a server-side mod so it isn't required to be installed on the client. It doesn't have any dependency so you just have to drag-drop it on your mods folder!

  • Minecraft 1.16.5

    Fabric Mod Loader:
    Lithium: It has the same/very similar features as 1.17.1 on 1.16.5.

    FerriteCore: It has the same/very similar features as 1.17.1 on 1.16.5.

    Phosphor: It has the same/very similar features as 1.17.1 on 1.16.5.


    Forge Mod Loader
    FerriteCore: It has the same/very similar features as 1.17.1 on 1.16.5.

    - AI Improvements: It has the same/very similar features as 1.17.1 on 1.16.5.

    Performant: Performant is a multi-purpose optimization mod that helps to improve many game mechanics such as AI overhead, multithread entity collisions, and more! 

    Performant can be used both on the server-side and the client-side without being required to be installed on both. It doesn't have any dependency so once you download it is ready to drag-drop it on your mods folder and enjoy your improved server performance!

  • Minecraft 1.12.2

    Forge Mod Loader

    AI Improvements: It has the same/very similar features as 1.17.1/1.16.5 on 1.12.2.

    Phosphor: It's slightly slower than its 1.16.5 version, however, it's still highly recommended to improve chunk-loader performance and to fix/improve the vanilla light engine.

    BetterFPS: From all of the mods listed, this is probably the least useful on servers. This mod is mostly meant for the client-side, however, it includes some server-side optimizations such as the "fast hopper" implementation which improves the overall performance of hoppers on the server.

    It's recommended to be used both on the server-side and the client-side. It doesn't require any dependency.

    FoamFix: This mod focuses on optimizing the Java heap usage, which helps to decrease the RAM usage, especially for large servers. Note that it has some incompatibilities with Sponge & Magma (And possibly with Mohist too) so it's not recommended to install it if you use one of these 2 software on your server.

    FoamFix can be installed both on the server-side and the client-side without being required to be installed on both. It doesn't have any dependency, however, it's not recommended to be used on servers under 1.12.2.

  • Minecraft 1.7.10

    Forge Mod Loader:
    FastCraft: FastCraft is one of those mods that don't focus on just one thing, but can help a lot even if you don't notice it. It has features and improvements to reduce the RAM usage and make the chunk loading a lot faster.

    FastCraft can be used both on the server-side and the client-side without being required to be installed on both. It doesn't have any dependency, however, it won't work with FoamFix, so in case you've got FoamFix installed, it's recommended to replace it for FastCraft.

    BetterFPS: It has similar features as its 1.12.2 version and will probably not perform as well as its newer version, however, it's still recommended to be used.


  • Honorific mentions

     - Starlight [Forge] [Fabric]: Starlight it's the "stereoidic" version of Phosphor, it's a mod that rewrites the Minecraft lighting engine making massives performance improvement, but, at what cost? what makes this mod be in the honorific mentions and not in the list above?

    Starlight's code is very aggressive in the way it interacts with the lighting engine, which means that it has really high chances to break other mods that modify in any way the lighting engine or have any kind of rendering system, so, you may want to try it out if you really want to have the best performance possible in your server, however, for big modpacks, I'd recommend using Phosphor instead, which may not be as fast as Starlight, but it's a lot more compatible with other mods and still has a huge performance impact. By the way, did I mention that it's completely incompatible with Phosphor?


Other ways to optimize your server

Even though adding the mods listed above should improve the performance by a ton and they even may seem to do magic on your server, there are always some things that these mods can't or are unable to fix. Here we'll be talking about how to detect and fix some external performance issues using the tools that we've already talked about, and also using some extra mods that may not be considered as "optimization mods".

  •  World Pre-generation

DISCLAIMER: THIS PART OF THE ARTICLE IS NOT FULLY FINISHED, SO YOU MAY NOTICE CHANGES IN THE FUTURE.

This article was last reviewed on January 22, 2022. If you think that something should be added/updated, do not hesitate to open a ticket.


Was this answer helpful?

« Back

Powered by WHMCompleteSolution