A major update came through called "Hasturian Era" which brings the Prominence II fabric mod-pack from version 2.77 to version 3.0.10.
This post goes over deploying Prominence II RPG: Hasturian Era in a docker container with Java and Minecraft optimizations.
This update lead to some instability for me initially and lead to some heavy optimization through troubleshooting and testing to get this massive modpack stable for multi-user gameplay.
Server deployment changes from Prominence II version 2.7.7 to version 3.0.10:
Java version changed from version 17 to version 21 - note the container image change to 'itzg/minecraft-server:java21'
Fabric loader version changed from version '0.14.25' to version '0.16.5'
The server data pack URL has changed
Various Java and Minecraft optimizations listed below
Server optimizations for Prominence II RPG v3.0.10:
There are a good few optimizations in the docker compose file below. Here are the following changes:
Fixed memory allocation at 24GB to prevent memory allocation overhead and stuttering
Optimized G1GC garbage collection settings via Aikar's flags, tuned for Java 21's improved garbage collection
Performance-balanced view distance (8 chunks) and simulation distance (6 chunks) for modded stability
Network and entity optimizations: 75% broadcast range and 256-byte compression threshold
World size capped at 15,000 blocks with flight enabled - typical for RPG modpack requirements
Spawn protection disabled to allow for RPG-style building and interaction anywhere
Healthcheck disabled to account for erroneous errors that can be ignored by mods misbehaving but not crashing the server
Max tick time set to '-1' to account for transient extremely high tick times and delays due to misbehaving mods or long running operations caused by heavy mods
Deploying as a container with docker compose:
Create a directory where you plan to store the Minecraft data.
mkdir -p /opt/container-data/mc-prominence-2-rpg
I'll be storing this container's data in '/opt/container-data/mc-prominence-2-rpg' in this case.
Then create a docker-compose.yml file with the below data in the new directory.