6.6 KiB
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 configurationeula.txt— End User License Agreement acceptanceserver.jar— Server executableworld/— World save directorylogs/— Server logsplugins/— Plugin directory (Bukkit/Spigot/Paper)mods/— Mods directory (Forge/Fabric)config/— Configuration files for mods/pluginsbanned-players.json— Banned players listbanned-ips.json— Banned IP addressesops.json— Server operators listwhitelist.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.ymlfor 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.ymlor 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
mysqldumpfor 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
-Xmxparameter (e.g.,-Xmx8Gfor 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