跳到正文
cccskills
免费在 GitHub 公开

minecraft-modpack-server

Host modded Minecraft servers (CurseForge, Modrinth).

中文简介正在准备中。当前显示原文说明。

查看安装方法

包含的文件(1)

  • SKILL.md6.6 KB

SKILL.md(原文)

安装前可以查看交给 AI 代理的指令内容。

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

评价

还没有评价。欢迎分享你的使用感受。

评论

无需登录即可发表。欢迎分享使用感受、提问,或说明在哪些环境下无法运行。

还没有评论。来写第一条吧。

提交后会立即公开。请勿填写邮箱、电话等个人信息。URL 最多 2 个。

0 / 1000 字

此表单受 reCAPTCHA 保护,适用 Google 的隐私权政策和服务条款。

同一仓库的技能

Drives development with tests. Use when implementing any logic, fixing any bug, or changing any behavior. Use when you need to prove that code works, when a bug report arrives, or when you're about to modify existing functionality.

中文简介正在准备中。当前显示原文说明。

kevinnft/ai-agent-skills142026年8月1日 更新

airtable

免费

Airtable REST API via curl. Records CRUD, filters, upserts.

中文简介正在准备中。当前显示原文说明。

kevinnft/ai-agent-skills142026年8月1日 更新

Guides stable API and interface design. Use when designing APIs, module boundaries, or any public interface. Use when creating REST or GraphQL endpoints, defining type contracts between modules, or establishing boundaries between frontend and backend.

中文简介正在准备中。当前显示原文说明。

kevinnft/ai-agent-skills142026年8月1日 更新

Build monitoring bots that poll APIs and send notifications on state changes (new listings, price alerts, status updates)

中文简介正在准备中。当前显示原文说明。

kevinnft/ai-agent-skills142026年8月1日 更新

REST/GraphQL API testing with automated validation — test endpoints, validate responses, check status codes, and ensure API contracts

中文简介正在准备中。当前显示原文说明。

kevinnft/ai-agent-skills142026年8月1日 更新

Manage Apple Notes via memo CLI: create, search, edit.

中文简介正在准备中。当前显示原文说明。

kevinnft/ai-agent-skills142026年8月1日 更新

查看 kevinnft 的全部技能

报告此技能的问题