diff --git a/flake.nix b/flake.nix index 1ee1ae0..a7d1c5d 100644 --- a/flake.nix +++ b/flake.nix @@ -75,7 +75,7 @@ modules = [ # Apply the overlay first so pkgs in later modules (like our local # `minecraft.nix`) see the extra helpers provided by the overlay - {nixpkgs.overlays = [inputs.nix-minecraft.overlay];} + { nixpkgs.overlays = [ inputs.nix-minecraft.overlay ]; } nix-minecraft.nixosModules.minecraft-servers diff --git a/nix-system-configs/modules/system/minecraft.nix b/nix-system-configs/modules/system/minecraft.nix index c120017..743bded 100644 --- a/nix-system-configs/modules/system/minecraft.nix +++ b/nix-system-configs/modules/system/minecraft.nix @@ -10,7 +10,7 @@ # Try to use the nix-minecraft helper if the overlay is present; otherwise # fall back to a local path. If you use the fallback, ensure the path is an # unpacked modpack directory with `mods` and `config` subdirectories. - modpack = /srv/minecraft/modpacks/atm10; + modpack = /srv/minecraft/modpacks/AllTheMods10-prg.mrpack; in { options.local = { hostname = lib.mkOption { @@ -70,7 +70,7 @@ in { eula = true; openFirewall = true; - servers.all-the-mods-tss = { + servers.all-the-mods-ten-tss = { enable = true; autoStart = true; restart = "always"; @@ -78,26 +78,8 @@ in { package = pkgs.neoforgeServers.neoforge-1_21_1-21_1_224; jvmOpts = lib.concatStringsSep " " [ - "-Xms4G" + "-Xms18G" "-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 = { @@ -115,57 +97,7 @@ 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; - 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. @@ -178,20 +110,34 @@ 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"; - "dynamic-data-pack-cache" = "${modpack}/dynamic-data-pack-cache"; - }; + #symlinks = { + # "mods" = "${modpack}/overrides/mods"; + # "moddata" = "${modpack}/overrides/moddata"; + # "resourcepacks" = "${modpack}/overrides/resourcepacks"; + # "shaderpacks" = "${modpack}/overrides/shaderpacks"; + # "dynamic-resource-pack-cache" = "${modpack}/overrides/dynamic-resource-pack-cache"; + # "dynamic-data-pack-cache" = "${modpack}/overrides/dynamic-data-pack-cache"; + #}; + #files = { + # "backup" = "${modpack}/overrides/backup"; + # "blueprints" = "${modpack}/overrides/blueprints"; + # "command_history.txt" = "${modpack}/overrides/command_history.txt"; + # "config" = "${modpack}/overrides/config"; + # "datapacks" = "${modpack}/overrides/datapacks"; + # "downloads" = "${modpack}/overrides/downloads"; + # "ESM" = "${modpack}/overrides/ESM"; + # "eula.txt" = "${modpack}/overrides/eula.txt"; + # "fancymenu_data" = "${modpack}/overrides/fancymenu_data"; + # "journeymap" = "${modpack}/overrides/journeymap"; + # "kubejs" = "${modpack}/overrides/kubejs"; + # "manifest.json" = "${modpack}/overrides/manifest.json"; + # "minecraftinstance.json" = "${modpack}/overrides/minecraftinstance.json"; + # "observable_announce" = "${modpack}/overrides/observable_announce"; + # "options.txt" = "${modpack}/overrides/options.txt"; + # "patchouli_books" = "${modpack}/overrides/patchouli_books"; + # "patchouli_data.json" = "${modpack}/overrides/patchouli_data.json"; + # "schematics" = "${modpack}/overrides/schematics"; + #}; }; servers.fabric-modded = { @@ -489,32 +435,10 @@ in { }; }; - # 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. + # For FastBackup force etc to have PATH 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