{/* This page is auto-generated from the skill's SKILL.md by website/scripts/generate-skill-docs.py. Edit the source SKILL.md, not this page. */}
Minecraft Modpack Server
搭建模组化 Minecraft 服务器(CurseForge、Modrinth)。
Skill 元数据
| 来源 | 可选——使用 hermes skills install official/gaming/minecraft-modpack-server 安装 |
| 路径 | optional-skills/gaming/minecraft-modpack-server |
| 版本 | 1.0.0 |
| 作者 | Teknium (teknium1), Hermes Agent |
| 许可证 | MIT |
| 平台 | linux, macos |
参考:完整 SKILL.md
INFO
以下是 Hermes 在触发此 skill 时加载的完整 skill 定义。这是 skill 激活时 agent 所看到的指令内容。
Minecraft 模组包服务器配置
何时使用
- 用户想从一个服务器包 zip 搭建模组化 Minecraft 服务器
- 用户需要 NeoForge/Forge 服务器配置方面的帮助
- 用户询问 Minecraft 服务器性能调优或备份
先收集用户偏好
在开始配置前,向用户询问:
- 服务器名称 / MOTD——服务器列表里显示什么?
- 种子(Seed)——指定种子还是随机?
- 难度——peaceful / easy / normal / hard?
- 游戏模式——生存 / 创造 / 冒险?
- 在线模式(online-mode)——true(Mojang 认证,正版账户)还是 false(局域网/盗版友好)?
- 玩家数量——预计多少人?(影响内存和视距调优)
- 内存分配——还是让 agent 根据模组数量和可用内存决定?
- 视距 / 模拟距离——还是让 agent 根据玩家数量和硬件选择?
- PvP——开还是关?
- 白名单——公开服务器还是仅白名单?
- 备份——要自动备份吗?多久一次?
如果用户不在意就用合理默认值,但在生成配置前务必询问。
步骤
1. 下载并检查服务器包
mkdir -p ~/minecraft-server
cd ~/minecraft-server
wget -O serverpack.zip "<URL>"
unzip -o serverpack.zip -d server
ls server/
查找:startserver.sh、安装器 jar(neoforge/forge)、user_jvm_args.txt、mods/ 文件夹。
查看脚本以确定:模组加载器类型、版本,以及所需的 Java 版本。
2. 安装 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 及以下 → Java 8:
sudo apt install openjdk-8-jre-headless - 验证:
java -version
3. 安装模组加载器
大多数服务器包自带安装脚本。使用 INSTALL_ONLY 环境变量只安装不启动:
cd ~/minecraft-server/server
ATM10_INSTALL_ONLY=true bash startserver.sh
# 或对于通用 Forge 包:
# java -jar forge-*-installer.jar --installServer
这会下载库文件、补丁服务器 jar 等。
4. 接受 EULA
echo "eula=true" > ~/minecraft-server/server/eula.txt
5. 配置 server.properties
模组化/局域网的关键设置:
motd=§b§lServer Name §r§8| §aModpack Name
server-port=25565
online-mode=true # 局域网无 Mojang 认证时设为 false
enforce-secure-profile=true # 与 online-mode 保持一致
difficulty=hard # 大多数模组包按 hard 平衡
allow-flight=true # 模组化必需(飞行坐骑/物品)
spawn-protection=0 # 允许所有人在出生点建造
max-tick-time=180000 # 模组化需要更长的 tick 超时
enable-command-block=true
性能设置(按硬件缩放):
# 2 名玩家、高性能机器:
view-distance=16
simulation-distance=10
# 4-6 名玩家、中等机器:
view-distance=10
simulation-distance=6
# 8 名以上玩家或较弱硬件:
view-distance=8
simulation-distance=4
6. 调优 JVM 参数(user_jvm_args.txt)
按玩家数量和模组数量缩放内存。模组化的经验法则:
- 100-200 个模组:6-12GB
- 200-350+ 个模组:12-24GB
- 至少为系统/其他任务留出 8GB 空闲
-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. 开放防火墙
sudo ufw allow 25565/tcp comment "Minecraft Server"
检查:sudo ufw status | grep 25565
8. 创建启动脚本
cat > ~/start-minecraft.sh << 'EOF'
#!/usr/bin/env 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
注意:对于 Forge(而非 NeoForge),args 文件路径不同。查看 startserver.sh 确认确切路径。
9. 设置自动备份
创建备份脚本:
cat > ~/minecraft-server/backup.sh << 'SCRIPT'
#!/usr/bin/env 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
添加每小时 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 -
常见陷阱
- 模组化务必设
allow-flight=true——否则带喷气背包/飞行的模组会把玩家踢出去 max-tick-time=180000或更高——模组化服务器在世界生成时常常有很长的 tick- 首次启动很慢(大包要好几分钟)——不要慌
- 首次启动出现 "Can't keep up!" 警告是正常的,初始区块生成后会稳定
- 若 online-mode=false,也要把 enforce-secure-profile 设为 false,否则客户端会被拒绝
- 服务器包的 startserver.sh 常带自动重启循环——另写一个干净的启动脚本,不要带它
- 删除 world/ 文件夹即可用新种子重新生成
- 有些包有环境变量控制行为(例如 ATM10 使用 ATM10_JAVA、ATM10_RESTART、ATM10_INSTALL_ONLY)
验证
pgrep -fa neoforge或pgrep -fa minecraft检查是否在运行- 查看日志:
tail -f ~/minecraft-server/server/logs/latest.log - 日志中出现 "Done (Xs)!" = 服务器就绪
- 测试连接:玩家在多人游戏里添加服务器 IP