Repository navigation
Server Setup
The easiest way to run a GSPack server is GSPackServerInstaller. It builds a ready-to-run server on Windows, Linux or macOS. No CurseForge API key is needed.
Using a hosting panel? See Server Setup: AMP Panel for CubeCoders AMP. Other panels (Pterodactyl, etc.) work the same way with the
-FilesOnlyoption below.
- Downloads the latest GSPack from CurseForge (project
1777849), or uses a local export zip you give it. - Downloads every mod in the pack's
manifest.json.- Client-only mods are skipped (for example Sodium, Iris and FancyMenu), as are resource packs and shader packs.
- Mods tagged client-only on CurseForge that still add blocks or recipes (for example Equivox) are kept, because players can't join without them.
- Copies the overrides:
config/,kubejs/and similar folders, plus anyserver-overrides. - Installs NeoForge.
- Downloads a portable Java (Temurin) if the right version isn't installed.
- Writes
start.bat/start.sh(with auto-restart),user_jvm_args.txt(8 GB RAM) andeula.txt.
| System | Needs |
|---|---|
| Windows | PowerShell (built in) |
| Linux / macOS |
bash, curl, unzip and jq. On Debian/Ubuntu: sudo apt install curl unzip jq
|
| Both | About 8 GB of free RAM for the server, plus some for the OS |
-
Download or clone GSPackServerInstaller.
-
Run it.
Windows: double-click
Build-ServerPack.bat, or run:powershell -ExecutionPolicy Bypass -File .\Build-ServerPack.ps1 -AcceptEula
Linux / macOS:
./build-serverpack.sh --accept-eula
-AcceptEula/--accept-eulasetseula=true, which means you agree to the Minecraft EULA. -
Start the server:
GSPackServer\start.bat(Windows) orGSPackServer/start.sh(Linux/macOS). -
Players connect on the default port 25565. Open or forward that port on your router or firewall if friends join over the internet.
The first start takes a few minutes while NeoForge and all mods load and the world generates.
| PowerShell | bash | What it does | Default |
|---|---|---|---|
-Zip <file> |
--zip <file> |
Build from a local CurseForge export zip | Download from CurseForge |
-ProjectId / -FileId
|
--project / --file
|
Use a specific CurseForge project or pack version | GSPack (1777849), latest version |
-OutDir <dir> |
--out <dir> |
Output folder | GSPackServer |
-AcceptEula |
--accept-eula |
Set eula=true
|
Off |
-RamMB <mb> |
--ram <mb> |
Server memory in MB |
8192 (8 GB) |
-JavaPath <path> |
--java <path> |
Use your own Java instead of the portable one | Auto |
-ExcludeMods <regex> |
--exclude <regex> |
Extra mods to leave off the server | None |
-KeepClientMods |
--keep-client-mods |
Turn off the client-only filter | Off |
-FilesOnly |
--files-only |
Only create the server folders and the NeoForge installer, no start scripts or Java. Use this for hosting panels. | Off |
| Path | Notes |
|---|---|
mods/ |
Rebuilt on every build. Don't put your own mods here. |
extra-mods/ |
Your own server-only mods. Copied into mods/ on every build. |
config/, kubejs/
|
The pack's configs and scripts |
start.bat / start.sh
|
Start scripts with auto-restart |
user_jvm_args.txt |
Memory settings (8 GB by default) |
server.properties, whitelist |
Kept when you rebuild |
world/ |
Kept when you rebuild |
skipped-client-mods.txt |
Mods left out as client-only |
failed-mods.txt |
Mods that could not be downloaded |
Downloads are cached in .cache/, so rebuilds are fast.
-
Stop the server and make a backup of
world/(FTB Backups also keeps copies inftbackups3/). - Run the installer again (with the new zip if you use
-Zip). - Start the server.
mods/ is rebuilt, extra-mods/ is copied in again, and your world, server.properties and whitelist stay as they are. Quest progress is kept, because quest IDs don't change between versions.
In the server console:
op <your name>
| Command | What it does |
|---|---|
/ftbquests reload |
Reload the quest book after changing quest files |
/ftbquests editing_mode |
Edit quests in-game (operators) |
/ftbteams |
Create, join and manage teams |
/ftbranks |
Manage ranks and permissions (FTB Ranks) |
/spark profiler start / stop
|
Profile the server to find lag (spark) |
These come from the pack's configs. Change them in your server's config files if you want:
| Setting | Value | File |
|---|---|---|
| Max claimed chunks per team | 500 |
config/ftbchunks-world.json5 (max_claimed_chunks) |
| Max force-loaded chunks per team | 25 |
config/ftbchunks-world.json5 (max_force_loaded_chunks) |
| Offline force-loading | Only for teams with a player who has the ftbchunks.chunk_load_offline permission |
config/ftbchunks-world.json5 (force_load_mode: "default") |
| PvP in claimed chunks | Always allowed |
config/ftbchunks-world.json5 (pvp_mode) |
| Backups | Every 2 hours (backup_timer: 120 minutes), max 50 GB total |
config/ftbbackups3-server.json5 |
To give extra claims or offline force-loading to everyone (or a rank), use FTB Ranks permissions such as ftbchunks.max_claimed, ftbchunks.max_force_loaded and ftbchunks.chunk_load_offline. Edit ranks with /ftbranks or in world/serverconfig/ftbranks/ranks.json5, not in config/ftbranks-pack.json5 (that file can be overwritten by pack updates).
| Problem | Fix |
|---|---|
| "Channel … is missing on the server side" when joining | A mod that was skipped as client-only is needed on the server. Find it in skipped-client-mods.txt, put the jar in extra-mods/ and rebuild. Or rebuild with -KeepClientMods. |
| A mod didn't download | It's listed in failed-mods.txt. Download it yourself into extra-mods/ and rebuild. |
| "Mod rejections" / mismatched mods when joining | Client and server are on different pack versions. Update both to the same version. |
| Server runs out of memory or lags | Raise -RamMB (for example -RamMB 10240) and rebuild, or edit user_jvm_args.txt. Use /spark profiler start to find the cause. |
| Players can't connect from outside | Forward TCP port 25565 (or the server-port in server.properties) and allow it in the firewall. |
More questions: FAQ & Troubleshooting.
GSPack 0.5 unifies materials: one item per metal, dust or plate (AllTheOres first), and ores that AllTheOres also has no longer generate. A world started on an older version still holds the old blocks and items. They keep working, and the pack converts them while you play: your inventory, chests you open, and chunks when they load.
To convert the whole world at once, even areas nobody visits, update the server to 0.5, stop it, and use the converter that comes with the GSPack Server Installer:
- GUI: the Convert world button: pick the server or world folder in File Explorer
-
Menu: option
8inBuild-ServerPack.bat(Enter = this server,B= browse for a folder) -
Windows: double-click
Convert-World.batand pick the folder in File Explorer, or drag a server or world folder onto it -
Linux:
./convert-world.sh [server folder](needs PowerShell 7,pwsh)
It always shows a dry run first and asks before it writes anything. Not using the installer? The same tool is tools/convert-world.ps1 in the GSPack repository: powershell -ExecutionPolicy Bypass -File convert-world.ps1 -World <server or world folder> [-DryRun] (or -Interactive -Pick for a folder picker, a dry run and a question before it writes).
- It converts placed blocks in every dimension, items in chests and machines, dropped items, player inventories and saved mod data.
- It works on any old world: the id tables are built in, so the world doesn't need a GSPack 0.5
kubejsfolder next to it. - It refuses to run while the world is in use. Every file it changes is copied to
world/gspack-convert-backupfirst; delete that folder once the world works. - Make a normal backup of the world before you start anyway.
GSPack · Minecraft 26.1.2 NeoForge · CurseForge · Config repo · Server installer