Panel/ControlPanel/docs/games/minecraft.md
2025-09-11 13:29:15 -04:00

6.6 KiB

Minecraft — Complete Dedicated Server Guide

Startup Parameters

Default command line

java -Xmx4G -Xms4G -jar server.jar nogui

Parameters (exhaustive, server-relevant only)

  • -Xmx<size> — Maximum heap size (e.g., -Xmx4G).
  • -Xms<size> — Initial heap size (e.g., -Xms4G).
  • -jar <file> — Server JAR file (server.jar, paper.jar, etc.).
  • nogui — Run without GUI.
  • -Dfile.encoding=UTF-8 — Set file encoding.
  • -Djava.awt.headless=true — Headless mode.
  • -XX:+UseG1GC — Use G1 garbage collector.
  • -XX:+ParallelRefProcEnabled — Parallel reference processing.
  • -XX:MaxGCPauseMillis=200 — Maximum GC pause time.
  • -XX:+UnlockExperimentalVMOptions — Unlock experimental VM options.
  • -XX:+DisableExplicitGC — Disable explicit GC calls.
  • -XX:G1NewSizePercent=30 — G1 new generation size.
  • -XX:G1MaxNewSizePercent=40 — G1 max new generation size.
  • -XX:G1HeapRegionSize=8M — G1 heap region size.
  • -XX:G1ReservePercent=20 — G1 reserve percent.
  • -Dcom.mojang.eula.agree=true — Auto-accept EULA.

Ports

  • Game: TCP 25565 (primary)
  • Query: UDP 25565 (same as game port, if enabled)
  • RCON: TCP 25575 (if enabled in server.properties)

Config Files & Locations

Windows:

  • server.properties — Main server configuration
  • eula.txt — End User License Agreement acceptance
  • server.jar — Server executable
  • world/ — World save directory
  • logs/ — Server logs
  • plugins/ — Plugin directory (Bukkit/Spigot/Paper)
  • mods/ — Mods directory (Forge/Fabric)
  • config/ — Configuration files for mods/plugins
  • banned-players.json — Banned players list
  • banned-ips.json — Banned IP addresses
  • ops.json — Server operators list
  • whitelist.json — Whitelist (if enabled)

Linux:

  • ~/minecraft/server.properties — Main server configuration
  • ~/minecraft/eula.txt — EULA acceptance
  • ~/minecraft/server.jar — Server executable
  • ~/minecraft/world/ — World save directory
  • ~/minecraft/logs/ — Server logs
  • ~/minecraft/plugins/ — Plugin directory
  • ~/minecraft/mods/ — Mods directory
  • ~/minecraft/config/ — Configuration files

Key Configuration Files:

  • server.properties: Core server settings (port, world name, game mode, difficulty)
  • bukkit.yml/spigot.yml/paper.yml: Server platform-specific settings
  • plugin configs: Individual plugin configuration files in plugins/ directory

Steam Workshop

Not supported by this game.

Common Mods (curated)

  • EssentialsX

    • Purpose: Core commands, economy, permissions for Bukkit/Spigot/Paper servers.
    • Install: Download from GitHub releases, place JAR in plugins/ directory.
    • Configure: Edit plugins/Essentials/config.yml for basic settings, userdata/ for player data.
  • WorldEdit

    • Purpose: In-game world editing and building tools.
    • Install: Place WorldEdit JAR in plugins/ directory.
    • Configure: Permissions in plugins/WorldEdit/config.yml, user permissions via permission plugin.
  • Vault

    • Purpose: Economy and permissions API for other plugins.
    • Install: Download Vault JAR to plugins/ directory.
    • Configure: No direct configuration - provides API for other plugins.
  • LuckPerms

    • Purpose: Advanced permissions management system.
    • Install: Download from GitHub, place in plugins/ directory.
    • Configure: Database connection in plugins/LuckPerms/config.yml, manage permissions via commands or web editor.
  • Dynmap

    • Purpose: Real-time web-based map of server world.
    • Install: Download Dynmap JAR to plugins/ directory.
    • Configure: Web server settings in plugins/dynmap/configuration.txt, map rendering options.
  • ProtocolLib

    • Purpose: Packet manipulation library for advanced plugins.
    • Install: Required dependency for many plugins, place JAR in plugins/.
    • Configure: No direct configuration - provides API for packet handling.

Database

Engine: SQLite (default) or MySQL (for large servers)

SQLite Configuration (No setup required):

  • Database files stored in world directory
  • Player data in playerdata/ folder
  • Plugin data varies by plugin (typically in plugins/PluginName/)

MySQL Configuration (Advanced):

  • Configure in bukkit.yml or plugin-specific configs
  • Example connection string: jdbc:mysql://localhost:3306/minecraft
  • Required for multi-server networks and large-scale deployments

Backup Strategy:

  • Regular world folder backups (includes SQLite databases)
  • MySQL: Use mysqldump for database backups
  • Plugin data backup varies by plugin requirements

Administration & Scripting

Remote Administration:

  • RCON (Remote Console) access for server management
  • Web-based admin panels (game-specific or third-party)
  • In-game admin commands and permissions

Backup Strategy:

  • Automated daily backups of save files and configuration
  • Rotate backups (keep 7 daily, 4 weekly, 12 monthly)
  • Test backup restoration procedures regularly
  • Store backups in separate location/drive

Auto-Update:

  • Use SteamCMD for automatic server updates (Steam games)
  • Schedule updates during low-traffic periods
  • Backup before applying updates
  • Monitor for update announcements and patch notes

Monitoring:

  • Server performance monitoring (CPU, memory, network)
  • Player connection logs and statistics
  • Error log monitoring and alerting
  • Uptime tracking and availability reporting

Troubleshooting (game-specific)

"java.lang.OutOfMemoryError"

  • Cause: Insufficient heap memory allocation
  • Fix: Increase -Xmx parameter (e.g., -Xmx8G for 8GB), monitor memory usage

"Can't keep up! Skipping ticks"

  • Cause: Server overload, too many entities, or inefficient plugins
  • Fix: Reduce entity limits, optimize plugins, increase server resources, use profiling tools

"Connection timed out"

  • Cause: Firewall blocking port 25565 or server not responding
  • Fix: Open TCP port 25565, verify server is running, check network connectivity

"Plugin errors on startup"

  • Cause: Incompatible plugin versions or missing dependencies
  • Fix: Update plugins to match server version, install required dependencies, check plugin logs

"World corruption/rollback"

  • Cause: Improper server shutdown or storage issues
  • Fix: Use proper shutdown commands, implement regular backups, check disk health

"Low TPS (Ticks Per Second)"

  • Cause: Server lag from heavy operations or overloaded chunks
  • Fix: Use performance monitoring plugins, limit chunk loading, optimize redstone contraptions