From 9bce1187fe3613a82ec4f5737505d301a8b4b6ba Mon Sep 17 00:00:00 2001 From: satr14 Date: Sat, 25 Jul 2026 11:42:33 +0700 Subject: [PATCH] installation guide and resources --- .packwizignore | 3 +- README.md | 31 +++++- scripts/docker-compose.yml | 47 +++++++++ scripts/installer.ps1 | 78 ++++++++++++++ scripts/mod-sync.json | 203 +++++++++++++++++++++++++++++++++++++ scripts/modpack.mrpack | Bin 0 -> 8130 bytes scripts/run-dialog.txt | 1 + 7 files changed, 360 insertions(+), 3 deletions(-) create mode 100644 scripts/docker-compose.yml create mode 100644 scripts/installer.ps1 create mode 100644 scripts/mod-sync.json create mode 100644 scripts/modpack.mrpack create mode 100644 scripts/run-dialog.txt diff --git a/.packwizignore b/.packwizignore index 5012e39..1f4610e 100644 --- a/.packwizignore +++ b/.packwizignore @@ -1,3 +1,4 @@ *.env *.md -*.jar \ No newline at end of file +*.jar +scripts \ No newline at end of file diff --git a/README.md b/README.md index 7fb55cc..1ca56be 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,33 @@ -server modpack used in my [nix flake](https://git.satr14.my.id/satr14/nix-flake/src/branch/main/modules/system/homelab/mc.nix) +server modpack used in my [nix flake](https://git.satr14.my.id/satr14/nix-flake/src/branch/main/modules/system/homelab/mc) -# Versions: +# Installation + +If you want a quick start then you can deploy the `scripts/docker-compose.yml` for a server in an instant. Please note that there are some configs you need to change and replace: (all optional, server still boots without them) +- `REPLACE_SVC_HOST` => `config/voicechat/voicechat-server.properties` for SVC host, personally use playit.gg. empty if your svc host is the same as your mc host. +- `REPLACE_RP_LINK` => `config/welcomemessage.json5` resource pack application is set to optional due to the sheer size and errors during download. you can host the pack separately and provide a link to it here instead. +- `REPLACE_DC_BOT_TOKEN` => `config/simple-discord-link/simple-discord-link.toml` discord bot token for crosschat with discord server. +- `REPLACE_DC_OWNER_ROLE` => `config/simple-discord-link/simple-discord-link.toml` discord owner role for admin commands via discord. + +Additionally you would need to download a [packsquash](https://github.com/ComunidadAylas/PackSquash/releases/) binary and place it in `polymer/packsquash` to enable RP compression. + +There's also some client side mods that can be installed for QOL: +- Modflared (if you are behind Cloudflare like how I am hosting this) +- Too Cheap! (allows for shift-clicking to anvil) +- Grind Enchantments (for displaying level costs) +- Xaero's Minimap (so you can see shared waypoints from other members better) +- Simple Voice Chat +- Sound Physics Remastered +- Jade +- AppleSkin +- Roughly Enough Items +- Effortless Building +- Do a Barrel Roll +- Polymer +- Polymer QOL + +All these mods + other QOL content are available in `scripts/mod-sync.json`. Clients can use [Simple Mod Sync](https://modrinth.com/mod/simple-mod-sync) to automatically install these mods by pointing it to the file's raw URL. There's also `scripts/installer.ps1` that downloads the mods and syncs them for you. + +# Versions: (with nix-minecraft packwiz hashes) - [Season 3.0](https://git.satr14.my.id/satr14/server-modpack/raw/commit/8523f89493ace13087eb68cd9fe3b5eb4f669440/pack.toml): `sha256-xB9Oc/aneogSQ9r7L42vyVM6xwq+QkoTaXYNuUzeo6M=` - [Season 3.1](https://git.satr14.my.id/satr14/server-modpack/raw/commit/6dc66117471b4f290e0d6776ac449d9f7f870c90/pack.toml): `sha256-J3KdjRer1d8jOeO84rET05nFdjCXjgz5A7mJysFwu6Q=` diff --git a/scripts/docker-compose.yml b/scripts/docker-compose.yml new file mode 100644 index 0000000..a3af008 --- /dev/null +++ b/scripts/docker-compose.yml @@ -0,0 +1,47 @@ +services: + mc: + image: itzg/minecraft-server:java25 + restart: always + dns: + - 1.1.1.1 + - 1.0.0.1 + ports: + - 25565:25565 + - 25575:25575 + environment: + EULA: "TRUE" + TYPE: FABRIC + VERSION: 1.21.11 + FABRIC_LOADER_VERSION: 0.19.2 + MEMORY: 12288M + PACKWIZ_URL: https://git.satr14.my.id/satr14/server-modpack/raw/branch/main/pack.toml + MOTD: Server Side Fun! + DIFFICULTY: normal + MODE: survival + MAX_WORLD_SIZE: "25000" + SPAWN_PROTECTION: "0" + PVP: "true" + ONLINE_MODE: "true" + ENABLE_QUERY: "true" + ENFORCE_SECURE_PROFILE: "false" + PREVENT_PROXY_CONNECTIONS: "false" + ALLOW_FLIGHT: "false" + PLAYER_IDLE_TIMEOUT: "0" + HIDE_ONLINE_PLAYERS: "true" + VIEW_DISTANCE: "12" + SIMULATION_DISTANCE: "6" + ENABLE_RCON: "true" + SYNC_CHUNK_WRITES: "false" + RCON_PASSWORD: howdy + RCON_PORT: "25575" + USE_AIKAR_FLAGS: "false" + JVM_OPTS: -XX:+UseZGC -XX:+UseCompactObjectHeaders + --add-modules=jdk.incubator.vector -XX:+UseLargePages + -XX:+AlwaysPreTouch -XX:+DisableExplicitGC -XX:+PerfDisableSharedMem + -XX:ZAllocationSpikeTolerance=5 -XX:SoftMaxHeapSize=10240M + -XX:ZCollectionInterval=1 -XX:ConcGCThreads=8 + volumes: + - ./data:/data + tty: true + stdin_open: true +networks: {} \ No newline at end of file diff --git a/scripts/installer.ps1 b/scripts/installer.ps1 new file mode 100644 index 0000000..3228a59 --- /dev/null +++ b/scripts/installer.ps1 @@ -0,0 +1,78 @@ +$mcVersion = "1.21.11" +$loaderVersion = "0.19.2" +$mcPath = "$env:APPDATA\.minecraft" +$modpackDir = "$mcPath\profiles\satr14-server" +$fabricJarUrl = "https://maven.fabricmc.net/net/fabricmc/fabric-installer/1.0.0/fabric-installer-1.0.0.jar" +$javaUrl = "https://github.com/adoptium/temurin21-binaries/releases/download/jdk-21.0.2%2B13/OpenJDK21U-jdk_x64_windows_hotspot_21.0.2_13.zip" + +Get-Process MinecraftLauncher -ErrorAction SilentlyContinue | Stop-Process -Force + +if (!(Test-Path "$modpackDir\mods")) { New-Item -ItemType Directory -Path "$modpackDir\mods" -Force } +$configDir = Join-Path $modpackDir "config" +if (!(Test-Path $configDir)) { New-Item -ItemType Directory -Path $configDir -Force } + +$javaZip = "$env:TEMP\java21.zip" +$javaExtracted = "$env:TEMP\java21_extracted" +$javaExe = Get-ChildItem -Path $javaExtracted -Filter java.exe -Recurse -ErrorAction SilentlyContinue | Select-Object -First 1 + +if ($null -eq $javaExe) { + if (!(Test-Path $javaZip)) { + Write-Host "Downloading Java 21..." -ForegroundColor Yellow + Invoke-WebRequest -Uri $javaUrl -OutFile $javaZip + } + Write-Host "Extracting Java..." -ForegroundColor Yellow + Expand-Archive -Path $javaZip -DestinationPath $javaExtracted -Force + $javaExe = Get-ChildItem -Path $javaExtracted -Filter java.exe -Recurse | Select-Object -First 1 +} else { + Write-Host "Java 21 already found, skipping download." -ForegroundColor Gray +} + +$tempJar = "$env:TEMP\fabric-installer.jar" +if (!(Test-Path $tempJar)) { + Write-Host "Downloading Fabric Installer..." -ForegroundColor Cyan + Invoke-WebRequest -Uri $fabricJarUrl -OutFile $tempJar +} + +Write-Host "Running Fabric Installer..." -ForegroundColor Cyan +& $javaExe.FullName -jar $tempJar client -mcversion $mcVersion -loader $loaderVersion -noprofile + +$mods = @( + "https://cdn.modrinth.com/data/P7dR8mSH/versions/i5tSkVBH/fabric-api-0.141.3%2B1.21.11.jar", + "https://cdn.modrinth.com/data/8IFHiuMI/versions/6ir0JEFa/simplemodsync-fabric-1.21.11-1.3.1.jar" +) + +foreach ($url in $mods) { + $rawName = [System.IO.Path]::GetFileName($url) + $filename = [uri]::UnescapeDataString($rawName) + $targetPath = Join-Path "$modpackDir\mods" $filename + + if (!(Test-Path $targetPath)) { + Write-Host "Downloading $filename..." -ForegroundColor Yellow + Invoke-WebRequest -Uri $url -OutFile $targetPath + } else { + Write-Host "$filename exists, skipping." -ForegroundColor Gray + } +} + +$syncConfig = @{ auto_download = $true; download_url = "https://git.satr14.my.id/satr14/server-modpack/raw/branch/main/scripts/mod-sync.json" } +$syncConfig | ConvertTo-Json | Set-Content (Join-Path $configDir "simplemodsync.json") -Encoding UTF8 + +$targetFiles = @("launcher_profiles.json", "launcher_profiles_microsoft_store.json") +foreach ($file in $targetFiles) { + $profilePath = Join-Path $mcPath $file + if (Test-Path $profilePath) { + $json = Get-Content $profilePath -Raw | ConvertFrom-Json + $newProfile = [PSCustomObject]@{ + name = "satr14's server modpack" + gameDir = $modpackDir + lastVersionId = "fabric-loader-$loaderVersion-$mcVersion" + javaArgs = "-Xmx4G -XX:+UseG1GC -XX:+UnlockExperimentalVMOptions -XX:+ParallelRefProcEnabled" + icon = "Enchanting_Table" + } + $json.profiles | Add-Member -MemberType NoteProperty -Name "server_sync_pack" -Value $newProfile -Force + $json | ConvertTo-Json -Depth 32 | Set-Content $profilePath + } +} + +Write-Host "Sync Complete!" -ForegroundColor Green +Pause \ No newline at end of file diff --git a/scripts/mod-sync.json b/scripts/mod-sync.json new file mode 100644 index 0000000..3cf1d3b --- /dev/null +++ b/scripts/mod-sync.json @@ -0,0 +1,203 @@ +{ + "sync_version": 3, + "sync": [ + { + "url": "https://cdn.modrinth.com/data/P7dR8mSH/versions/i5tSkVBH/fabric-api-0.141.3%2B1.21.11.jar", + "name": "Fabric API", + "version": "01", + "type": "mod" + }, + { + "url": "https://cdn.modrinth.com/data/IwCkru1D/versions/CqAskfnS/cicada-lib-0.14.3%2B1.21.9-1.21.10.jar", + "name": "CICADA Lib", + "version": "01", + "type": "mod" + }, + { + "url": "https://cdn.modrinth.com/data/1eAoo2KR/versions/pHWDw3Vc/yet_another_config_lib_v3-3.8.2%2B1.21.11-fabric.jar", + "name": "Yet Another Config Lib", + "version": "01", + "type": "mod" + }, + { + "url": "https://cdn.modrinth.com/data/9s6osm5g/versions/xuX40TN5/cloth-config-21.11.153-fabric.jar", + "name": "Cloth Config API", + "version": "01", + "type": "mod" + }, + { + "url": "https://cdn.modrinth.com/data/eXts2L7r/versions/qxjzQ9xY/placeholder-api-2.8.2%2B1.21.10.jar", + "name": "Text Placeholder API", + "version": "01", + "type": "mod" + }, + { + "url": "https://cdn.modrinth.com/data/aaRl8GiW/versions/fgUon9A6/prickle-fabric-1.21.11-21.11.1.jar", + "name": "Prickle", + "version": "01", + "type": "mod" + }, + { + "url": "https://cdn.modrinth.com/data/lhGA9TYQ/versions/uNdfrcQ8/architectury-19.0.1-fabric.jar", + "name": "Architectury API", + "version": "01", + "type": "mod" + }, + { + "url": "https://cdn.modrinth.com/data/mOgUt4GM/versions/Tyk71iSw/modmenu-17.0.0.jar", + "name": "ModMenu", + "version": "01", + "type": "mod" + }, + { + "url": "https://cdn.modrinth.com/data/8IFHiuMI/versions/6ir0JEFa/simplemodsync-fabric-1.21.11-1.3.1.jar", + "name": "Simple Mod Sync", + "version": "01", + "type": "mod" + }, + { + "url": "https://cdn.modrinth.com/data/h3XWIuzM/versions/UKZaPb5K/dark-loading-screen-1.6.17.jar", + "name": "Dark Loading Screen", + "version": "01", + "type": "mod" + }, + { + "url": "https://cdn.modrinth.com/data/uRHq6kbO/versions/ylsFkqBg/modflared-1.6.0%2Brelease.129.jar", + "name": "Modflared", + "version": "01", + "type": "mod" + }, + { + "url": "https://cdn.modrinth.com/data/9eGKb6K1/versions/KtAJ2LmQ/voicechat-fabric-1.21.11-2.6.16.jar", + "name": "Simple Voice Chat", + "version": "01", + "type": "mod" + }, + { + "url": "https://cdn.modrinth.com/data/6FtRfnLg/versions/QyuEXDMC/do_a_barrel_roll-fabric-3.8.3%2B1.21.11.jar", + "name": "Do a Barrel Roll", + "version": "01", + "type": "mod" + }, + { + "url": "https://cdn.modrinth.com/data/yxIf0Dct/versions/QqzmzxUx/too-cheap-1.4.1%2Bmc1.21.11.jar", + "name": "Too Cheap!", + "version": "01", + "type": "mod" + }, + { + "url": "https://cdn.modrinth.com/data/WC4UgDcZ/versions/XX0LqtxX/grind-enchantments-4.1.0%2B1.21.11-pre2.jar", + "name": "Grind Enchantments", + "version": "01", + "type": "mod" + }, + { + "url": "https://cdn.modrinth.com/data/1bokaNcj/versions/avSqR3vF/xaerominimap-fabric-1.21.11-25.3.10.jar", + "name": "Xaero's Minimap", + "version": "01", + "type": "mod" + }, + { + "url": "https://cdn.modrinth.com/data/6xKUDQcB/versions/tvP3UXwY/no-resource-pack-warnings-1.4.0.jar", + "name": "No Resource Pack Warning", + "version": "01", + "type": "mod" + }, + { + "url": "https://cdn.modrinth.com/data/qQyHxfxd/versions/rhykGstm/NoChatReports-FABRIC-1.21.11-v2.18.0.jar", + "name": "No Chat Reports", + "version": "01", + "type": "mod" + }, + { + "url": "https://cdn.modrinth.com/data/kzOJywOa/versions/WsRD6pYh/persistent-chat-2.0.1%2B1.21.11-fabric.jar", + "name": "Presistent Chat", + "version": "01", + "type": "mod" + }, + { + "url": "https://cdn.modrinth.com/data/8qkXwOnk/versions/3siYJiWG/morechathistory-1.3.1.jar", + "name": "More Chat History", + "version": "01", + "type": "mod" + }, + { + "url": "https://cdn.modrinth.com/data/EsAfCjCV/versions/59ti1rvg/appleskin-fabric-mc1.21.11-3.0.8.jar", + "name": "AppleSkin", + "version": "01", + "type": "mod" + }, + { + "url": "https://cdn.modrinth.com/data/nfn13YXA/versions/zwCdgCLz/RoughlyEnoughItems-21.11.814-fabric.jar", + "name": "Roughly Enough Items", + "version": "01", + "type": "mod" + }, + { + "url": "https://cdn.modrinth.com/data/nvQzSEkH/versions/swJhAyak/Jade-1.21.11-Fabric-21.1.6.jar", + "name": "Jade", + "version": "01", + "type": "mod" + }, + { + "url": "https://cdn.modrinth.com/data/DYtfQEYj/versions/WFfB60HD/effortlessbuilding-4.1%2B1.21.11.jar", + "name": "Effortless Building", + "version": "01", + "type": "mod" + }, + { + "url": "https://cdn.modrinth.com/data/qyVF9oeo/versions/pfqxi9qs/sound-physics-remastered-fabric-1.21.11-1.5.1.jar", + "name": "Sound Physics Remastered", + "version": "01", + "type": "mod" + }, + { + "url": "https://cdn.modrinth.com/data/UVtY3ZAC/versions/IiO55grZ/enchdesc-fabric-1.21.11-21.11.1.jar", + "name": "Enchantment Descriptions", + "version": "01", + "type": "mod" + }, + { + "url": "https://cdn.modrinth.com/data/xGdtZczs/versions/wugBT1fU/polymer-bundled-0.15.2%2B1.21.11.jar", + "name": "Polymer", + "version": "01", + "type": "mod" + }, + { + "url": "https://cdn.modrinth.com/data/DWuwk8aA/versions/75Ss7wMm/skyboxify-2.8%2B1.21.11-fabric.jar", + "name": "Skyboxify", + "version": "01", + "type": "mod" + }, + { + "url": "https://cdn.modrinth.com/data/S3nUv9ws/versions/znzS3kCV/Catppuccin%20Mocha%20Blue.zip", + "name": "Catppuccin Mocha Blue UI", + "version": "01", + "type": "resourcepack" + }, + { + "url": "https://cdn.modrinth.com/data/rHkfAZDW/versions/Elm2sLit/Fullslide%20%281.21.11%29.zip", + "name": "Fullslide", + "version": "01", + "type": "resourcepack" + }, + { + "url": "https://cdn.modrinth.com/data/2o1IGvNi/versions/k1UUHwyz/Enchants%2B%20Descriptions%20%26%20Translations%20v1.1.zip", + "name": "Enchants Plus: Descriptions", + "version": "01", + "type": "resourcepack" + }, + { + "url": "https://cdn.modrinth.com/data/PsMUgCo5/versions/vF8BRNfj/Hyper_Realistic_Sky_%5BLite%5D.zip", + "name": "Hyper Realistic Sky Lite", + "version": "01", + "type": "resourcepack" + }, + { + "url": "https://cdn.satr14.my.id/public/resource_pack.zip", + "name": "Polymer Resource Pack", + "version": "02", + "type": "resourcepack" + } + ] +} \ No newline at end of file diff --git a/scripts/modpack.mrpack b/scripts/modpack.mrpack new file mode 100644 index 0000000000000000000000000000000000000000..34cfd1aaec44bf98eaa6b37b370984d47d82cc5f GIT binary patch literal 8130 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 literal 0 HcmV?d00001 diff --git a/scripts/run-dialog.txt b/scripts/run-dialog.txt new file mode 100644 index 0000000..343af3e --- /dev/null +++ b/scripts/run-dialog.txt @@ -0,0 +1 @@ +powershell -ExecutionPolicy Bypass -Command "iex (New-Object Net.WebClient).DownloadString('https://cdn.satr14.my.id/drive/mc-server/installer.ps1?pw=howdy')" \ No newline at end of file