Update Minecraft server configuration with new JVM options and properties

This commit is contained in:
Root User 2026-04-09 01:46:16 +03:00
parent c605464950
commit 237f538fd4
Signed by: root
GPG key ID: 087F0A95E5766D72

View file

@ -78,8 +78,26 @@ in {
package = pkgs.neoforgeServers.neoforge-1_21_1-21_1_224;
jvmOpts = lib.concatStringsSep " " [
"-Xms18G"
"-Xms4G"
"-Xmx45G"
"-XX:+UseG1GC
-XX:+ParallelRefProcEnabled
-XX:MaxGCPauseMillis=200
-XX:+UnlockExperimentalVMOptions
-XX:+DisableExplicitGC
-XX:+AlwaysPreTouch
-XX:G1NewSizePercent=30
-XX:G1MaxNewSizePercent=40
-XX:G1HeapRegionSize=8M
-XX:G1ReservePercent=20
-XX:G1HeapWastePercent=5
-XX:G1MixedGCCountTarget=4
-XX:InitiatingHeapOccupancyPercent=15
-XX:G1MixedGCLiveThresholdPercent=90
-XX:G1RSetUpdatingPauseTimePercent=5
-XX:SurvivorRatio=32
-XX:+PerfDisableSharedMem
-XX:MaxTenuringThreshold=1"
];
serverProperties = {
@ -97,7 +115,58 @@ in {
enable-command-block = false;
enable-rcon = false;
require-resource-pack = false;
level-type = "minecraft:amplified";
level-seed = "-2032795982907864146";
# Added properties (do not overwrite existing ones above)
accepts-transfers = false;
allow-flight = true;
allow-nether = true;
broadcast-console-to-ops = true;
broadcast-rcon-to-ops = true;
bug-report-link = "";
enable-jmx-monitoring = false;
enable-query = false;
enable-status = true;
enforce-whitelist = false;
entity-broadcast-range-percentage = 100;
force-gamemode = false;
function-permission-level = 2;
generate-structures = true;
generator-settings = {};
hardcore = false;
hide-online-players = false;
initial-disabled-packs = "";
initial-enabled-packs = "vanilla";
level-name = "world";
log-ips = true;
max-chained-neighbor-updates = 1000000;
max-tick-time = 180000;
max-world-size = 29999984;
network-compression-threshold = 256;
op-permission-level = 4;
player-idle-timeout = 0;
prevent-proxy-connections = false;
pvp = true;
# dotted keys must be quoted
"query.port" = 25566;
rate-limit = 0;
"rcon.password" = "";
"rcon.port" = 25575;
region-file-compression = "deflate";
resource-pack = "";
resource-pack-id = "";
resource-pack-prompt = "";
resource-pack-sha1 = "";
server-ip = "";
spawn-animals = true;
spawn-monsters = true;
spawn-npcs = true;
sync-chunk-writes = true;
text-filtering-config = "";
use-native-transport = true;
# white-list, view-distance, simulation-distance, spawn-protection, etc.
# were kept above to avoid overwriting existing values.
};
# Grant operator privileges to the user with the given UUID.
@ -113,12 +182,17 @@ in {
symlinks = {
"mods" = "${modpack}/mods";
"datapacks" = "${modpack}/datapacks";
"user_jvm_args.txt" = "${modpack}/user_jvm_args.txt";
};
files = {
"config" = "${modpack}/config";
"patchouli_books" = "${modpack}/patchouli_books";
"defaultconfigs" = "${modpack}/defaultconfigs";
"kubejs" = "${modpack}/kubejs";
"local" = "${modpack}/local";
".mixin.out" = "${modpack}/.mixin.out";
"patchouli_books" = "${modpack}/patchouli_books";
"dynamic-data-pack-cache" = "${modpack}/dynamic-data-pack-cache";
};
};
@ -417,10 +491,32 @@ in {
};
};
# For FastBackup force etc to have PATH
# For FastBackup and to force OpenJDK 21 for the Minecraft services,
# set JAVA_HOME and include the OpenJDK bin in the service environment.
# Add matching environment for both server units created by nix-minecraft.
systemd.services."minecraft-server-fabric-modded".environment = {
JAVA_HOME = lib.mkForce "${pkgs.openjdk21}";
PATH = lib.mkForce (
lib.makeBinPath [
pkgs.openjdk21
pkgs.git
pkgs.git-lfs
pkgs.coreutils
pkgs.findutils
pkgs.gnugrep
pkgs.gnused
pkgs.systemd
]
+ ":/run/current-system/sw/bin"
);
};
# Ensure the other server unit also uses OpenJDK 21
systemd.services."minecraft-server-all-the-mods-tss".environment = {
JAVA_HOME = lib.mkForce "${pkgs.openjdk21}";
PATH = lib.mkForce (
lib.makeBinPath [
pkgs.openjdk21
pkgs.git
pkgs.git-lfs
pkgs.coreutils