Skip to content
Skillv1.0.0

minecraft-modpack-server

Host modded Minecraft servers (CurseForge, Modrinth).

by StarryCod(0) 0 installs
Free
Sign in to install

Free account. Installing gives you the manifest plus copy-paste snippets.

See reviews

About

Imported from StarryCod/cogitum (cogitum/data/skills/gaming/minecraft-modpack-server/SKILL.md). Install upstream with npx skills add StarryCod/cogitum --skill minecraft-modpack-server. Copyright stays with the author.

Minecraft Modpack Server Setup

When to use

  • User wants to set up a modded Minecraft server from a server pack zip
  • User needs help with NeoForge/Forge server configuration
  • User asks about Minecraft server performance tuning or backups

Gather User Preferences First

Before starting setup, ask the user for:

  • Server name / MOTD — what should it say in the server list?
  • Seed — specific seed or random?
  • Difficulty — peaceful / easy / normal / hard?
  • Gamemode — survival / creative / adventure?
  • Online mode — true (Mojang auth, legit accounts) or false (LAN/cracked friendly)?
  • Player count — how many players expected? (affects RAM & view distance tuning)
  • RAM allocation — or let agent decide based on mod count & available RAM?
  • View distance / simulation distance — or let agent pick based on player count & hardware?
  • PvP — on or off?
  • Whitelist — open server or whitelist only?
  • Backups — want automated backups? How often?

Use sensible defaults if the user doesn't care, but always ask before generating the config.

Steps

1. Download & Inspect the Pack

mkdir -p ~/minecraft-server
cd ~/minecraft-server
wget -O serverpack.zip "<URL>"
unzip -o serverpack.zip -d server
ls server/

Look for: startserver.sh, installer jar (neoforge/forge), user_jvm_args.txt, mods/ folder. Check the script to determine: mod loader type, version, and required Java version.

2. Install Java

  • Minecraft 1.21+ → Java 21: sudo apt install openjdk-21-jre-headless
  • Minecraft 1.18-1.20 → Java 17: sudo apt install openjdk-17-jre-headless
  • Minecraft 1.16 and below → Java 8: sudo apt install openjdk-8-jre-headless
  • Verify: java -version

3. Install the Mod Loader

Most server packs include an install script. Use the INSTALL_ONLY env var to install without launching:

cd ~/minecraft-server/server
ATM10_INSTALL_ONLY=true bash startserver.sh
# Or for generic Forge packs:
# java -jar forge-*-installer.jar --installServer

This downloads libraries, patches the server jar, etc.

4. Accept EULA

echo "eula=true" > ~/minecraft-server/server/eula.txt

5. Configure server.properties

Key settings for modded/LAN:

motd=\u00a7b\u00a7lServer Name \u00a7r\u00a78| \u00a7aModpack Name
server-port=25565
online-mode=true          # false for LAN without Mojang auth
enforce-secure-profile=true  # match online-mode
difficulty=hard            # most modpacks balance around hard
allow-flight=true          # REQUIRED for modded (flying mounts/items)
spawn-protection=0         # let everyone build at spawn
max-tick-time=180000       # modded needs longer tick timeout
enable-command-block=true

Performance settings (scale to hardware):

# 2 players, beefy machine:
view-distance=16
simulation-distance=10

# 4-6 players, moderate machine:
view-distance=10
simulation-distance=6

# 8+ players or weaker hardware:
view-distance=8
simulation-distance=4

6. Tune JVM Args (user_jvm_args.txt)

Scale RAM to player count and mod count. Rule of thumb for modded:

  • 100-200 mods: 6-12GB
  • 200-350+ mods: 12-24GB
  • Leave at least 8GB free for the OS/other tasks
-Xms12G
-Xmx24G
-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

7. Open Firewall

sudo ufw allow 25565/tcp comment "Minecraft Server"

Check with: sudo ufw status | grep 25565

8. Create Launch Script

cat > ~/start-minecraft.sh << 'EOF'
#!/bin/bash
cd ~/minecraft-server/server
java @user_jvm_args.txt @libraries/net/neoforged/neoforge/<VERSION>/unix_args.txt nogui
EOF
chmod +x ~/start-minecraft.sh

Note: For Forge (not NeoForge), the args file path differs. Check startserver.sh for the exact path.

9. Set Up Automated Backups

Create backup script:

cat > ~/minecraft-server/backup.sh << 'SCRIPT'
#!/bin/bash
SERVER_DIR="$HOME/minecraft-server/server"
BACKUP_DIR="$HOME/minecraft-server/backups"
WORLD_DIR="$SERVER_DIR/world"
MAX_BACKUPS=24
mkdir -p "$BACKUP_DIR"
[ ! -d "$WORLD_DIR" ] && echo "[BACKUP] No world folder" && exit 0
TIMESTAMP=$(date +%Y-%m-%d_%H-%M-%S)
BACKUP_FILE="$BACKUP_DIR/world_${TIMESTAMP}.tar.gz"
echo "[BACKUP] Starting at $(date)"
tar -czf "$BACKUP_FILE" -C "$SERVER_DIR" world
SIZE=$(du -h "$BACKUP_FILE" | cut -f1)
echo "[BACKUP] Saved: $BACKUP_FILE ($SIZE)"
BACKUP_COUNT=$(ls -1t "$BACKUP_DIR"/world_*.tar.gz 2>/dev/null | wc -l)
if [ "$BACKUP_COUNT" -gt "$MAX_BACKUPS" ]; then
    REMOVE=$((BACKUP_COUNT - MAX_BACKUPS))
    ls -1t "$BACKUP_DIR"/world_*.tar.gz | tail -n "$REMOVE" | xargs rm -f
    echo "[BACKUP] Pruned $REMOVE old backup(s)"
fi
echo "[BACKUP] Done at $(date)"
SCRIPT
chmod +x ~/minecraft-server/backup.sh

Add hourly cron:

(crontab -l 2>/dev/null | grep -v "minecraft/backup.sh"; echo "0 * * * * $HOME/minecraft-server/backup.sh >> $HOME/minecraft-server/backups/backup.log 2>&1") | crontab -

Pitfalls

  • ALWAYS set allow-flight=true for modded — mods with jetpacks/flight will kick players otherwise
  • max-tick-time=180000 or higher — modded servers often have long ticks during worldgen
  • First startup is SLOW (several minutes for big packs) — don't panic
  • "Can't keep up!" warnings on first launch are normal, settles after initial chunk gen
  • If online-mode=false, set enforce-secure-profile=false too or clients get rejected
  • The pack's startserver.sh often has an auto-restart loop — make a clean launch script without it
  • Delete the world/ folder to regenerate with a new seed
  • Some packs have env vars to control behavior (e.g., ATM10 uses ATM10_JAVA, ATM10_RESTART, ATM10_INSTALL_ONLY)

Verification

  • pgrep -fa neoforge or pgrep -fa minecraft to check if running
  • Check logs: tail -f ~/minecraft-server/server/logs/latest.log
  • Look for "Done (Xs)!" in the log = server is ready
  • Test connection: player adds server IP in Multiplayer

Use it

Copy one of these into your project. Installing also returns the manifest and these snippets.

yaml
targets:
  - https://api.opensmartroute.ai/api/v1/registry/starrycod-cogitum-minecraft-modpack-server/manifest   # or paste the manifest below

Manifest

An Open Capability Manifest: the router reads it to know what this does, what it costs and when to pick it.

starrycod-cogitum-minecraft-modpack-server.ocm.jsonjson
{
  "ocm": "1",
  "id": "starrycod-cogitum-minecraft-modpack-server",
  "kind": "skill",
  "name": "minecraft-modpack-server",
  "description": "Host modded Minecraft servers (CurseForge, Modrinth).",
  "publisher": "StarryCod",
  "version": "1.0.0",
  "capabilities": {
    "domains": [
      "general"
    ],
    "tags": [
      "skill-md",
      "minecraft",
      "gaming",
      "server",
      "neoforge",
      "forge",
      "modpack",
      "github"
    ],
    "languages": [
      "en"
    ]
  },
  "quality_prior": 0.6,
  "examples": [
    "Host modded Minecraft servers (CurseForge, Modrinth)."
  ],
  "primary": false,
  "metadata": {
    "source": {
      "provider": "github",
      "repository": "https://github.com/StarryCod/cogitum",
      "path": "cogitum/data/skills/gaming/minecraft-modpack-server/SKILL.md",
      "ref": "a99de210a5d82a24b7aa5020afa1f904f595d14c",
      "url": "https://github.com/StarryCod/cogitum/blob/a99de210a5d82a24b7aa5020afa1f904f595d14c/cogitum/data/skills/gaming/minecraft-modpack-server/SKILL.md",
      "key": "StarryCod/cogitum/cogitum/data/skills/gaming/minecraft-modpack-server/SKILL.md"
    }
  },
  "instructions": "# Minecraft Modpack Server Setup\n\n## When to use\n- User wants to set up a modded Minecraft server from a server pack zip\n- User needs help with NeoForge/Forge server configuration\n- User asks about Minecraft server performance tuning or backups\n\n## Gather User Preferences First\nBefore starting setup, ask the user for:\n- **Server name / MOTD** — what should it say in the server list?\n- **Seed** — specific seed or random?\n- **Difficulty** — peaceful / easy / normal / hard?\n- **Gamemode** — survival / creative / adventure?\n- **Online mode** — true (Mojang auth, legit accounts) or false (LAN/crack",
  "cost": {
    "context_tokens": 1581
  }
}

Fetch it by URL: GET /api/v1/registry/starrycod-cogitum-minecraft-modpack-server/manifest?version=1.0.0

Reviews

Star ratings from people who tried it. One review per account; edit yours any time.

No reviews yet. Install it, try it, and be the first to rate it.