Minecraft Spigot Server
Get a basic debian setup and install git, build-essential, and default-jre-headless.
https://www.spigotmc.org/wiki/spigot-installation/
Create a minecraft user/group. Enter blank passwords, shouldn't need to login directly
adduser minecraft
mkdir -p /var/minecraft/build chown -R minecraft:minecraft /var/minecraft
Download spigotmc buildtool and run it to fetch/build latest version.
https://www.spigotmc.org/wiki/buildtools/
cd /var/minecraft/build wget <url for>/BuildTools.jar java -jar BuildTools.jar
For a specific spigotmc version or latest
java -jar BuildTools.jar --rev 1.14.4 java -jar BuildTools.jar --rev latest
Build mcrcon
git clone git://git.code.sf.net/p/mcrcon/code mcrcon gcc mcrcon.c -o mcrcon
Copy binaries to runtime location.
cp /var/minecraft/build/spigot/spigot-1.13.2.jar /var/minecraft/server/spigot.jar cp /var/minecraft/build/mcrcon/mcrcon /var/minecraft/server/
Server configuration:
Listing 1: server.properties
spawn-protection=16 max-tick-time=60000 generator-settings= force-gamemode=false allow-nether=true enforce-whitelist=true gamemode=0 broadcast-console-to-ops=true enable-query=true player-idle-timeout=0 difficulty=1 spawn-monsters=true broadcast-rcon-to-ops=true admin-slot=true op-permission-level=4 pvp=true snooper-enabled=true level-type=DEFAULT hardcore=false enable-command-block=false max-players=30 network-compression-threshold=256 resource-pack-sha1= max-world-size=29999984 spawn-monster=true debug=false texture-pack= spawn-npcs=true allow-flight=false level-name=world view-distance=10 resource-pack= spawn-animals=true white-list=true generate-structures=true online-mode=true max-build-height=256 use-native-transport=true prevent-proxy-connections=false enable-rcon=true level-seed=sweetiezilla motd=Sparky server-name=Shadow Elmo Home Server rcon.port=45892 query.port=25565 server-port=25565 rcon.password=<rcon-password> server-ip=<addr>
Listing 2: bukkit.yml
settings: allow-end: true warn-on-overload: true permissions-file: permissions.yml update-folder: update plugin-profiling: false connection-throttle: 4000 query-plugins: true deprecated-verbose: default shutdown-message: Server closed spawn-limits: monsters: 70 animals: 10 water-animals: 15 ambient: 15 chunk-gc: period-in-ticks: 600 load-threshold: 0 ticks-per: animal-spawns: 400 monster-spawns: 1 autosave: 6000 aliases: now-in-commands.yml
Listing 3: spigot.yml
config-version: 11
settings:
save-user-cache-on-stop-only: false
bungeecord: false
late-bind: false
sample-count: 12
player-shuffle: 0
user-cache-size: 1000
moved-wrongly-threshold: 0.0625
moved-too-quickly-multiplier: 10.0
timeout-time: 60
restart-on-crash: true
restart-script: ./start.sh
netty-threads: 4
attribute:
maxHealth:
max: 2048.0
movementSpeed:
max: 2048.0
attackDamage:
max: 2048.0
debug: false
messages:
whitelist: You are not whitelisted on this server!
unknown-command: Unknown command. Type "/help" for help.
server-full: The server is full!
outdated-client: Outdated client! Please use {0}
outdated-server: Outdated server! I'm still on {0}
restart: Server is restarting
stats:
disable-saving: false
forced-stats: {}
commands:
log: true
tab-complete: 0
send-namespaced: true
spam-exclusions:
- /skill
silent-commandblock-console: false
replace-commands:
- setblock
- summon
- testforblock
- tellraw
advancements:
disable-saving: false
disabled:
- minecraft:story/disabled
world-settings:
default:
verbose: true
growth:
beetroot-modifier: 100
carrot-modifier: 100
potato-modifier: 100
cactus-modifier: 100
cane-modifier: 100
melon-modifier: 100
mushroom-modifier: 100
pumpkin-modifier: 100
sapling-modifier: 100
wheat-modifier: 100
netherwart-modifier: 100
vine-modifier: 100
cocoa-modifier: 100
entity-activation-range:
animals: 32
monsters: 32
misc: 16
tick-inactive-villagers: true
entity-tracking-range:
players: 48
animals: 48
monsters: 48
misc: 32
other: 64
ticks-per:
hopper-transfer: 8
hopper-check: 1
hopper-amount: 1
random-light-updates: false
mob-spawn-range: 6
dragon-death-sound-radius: 0
seed-village: 10387312
seed-desert: 14357617
seed-igloo: 14357618
seed-jungle: 14357619
seed-swamp: 14357620
seed-monument: 10387313
seed-shipwreck: 165745295
seed-ocean: 14357621
seed-slime: 987234911
hunger:
jump-walk-exhaustion: 0.05
jump-sprint-exhaustion: 0.2
combat-exhaustion: 0.1
regen-exhaustion: 6.0
swim-multiplier: 0.01
sprint-multiplier: 0.1
other-multiplier: 0.0
max-tnt-per-tick: 100
max-tick-time:
tile: 50
entity: 50
squid-spawn-range:
min: 45.0
zombie-aggressive-towards-villager: true
merge-radius:
exp: 3.0
item: 2.5
enable-zombie-pigmen-portal-spawns: true
item-despawn-rate: 6000
arrow-despawn-rate: 1200
nerf-spawner-mobs: false
wither-spawn-sound-radius: 0
view-distance: 10
hanging-tick-frequency: 100
Listing 4: /etc/systemd/system/minecraft.service
[Unit] Description=Minecraft Server Documentation= Wants=network.target After=network.target [Service] User=minecraft Group=minecraft Nice=5 KillMode=none SuccessExitStatus=0 1 255 ProtectHome=true ProtectSystem=full PrivateDevices=true NoNewPrivileges=true PrivateTmp=true InaccessibleDirectories=/root /sys /srv -/opt /media -/lost+found ReadWriteDirectories=/var/minecraft/server WorkingDirectory=/var/minecraft/server ExecStart=/usr/bin/java -Xmx4096M -Xms4096M -jar spigot.jar --noconsole ExecStop=/var/minecraft/mcrcon -H <addr> -P 45892 -p <rcon-password> [Install] WantedBy=multi-user.target
Set up systemd unit to autorun server.
Install plugins. (Maps, anti-xray, teleport)
- Dynmap-3.0-beta-2-spigot.jar
- orebfuscator-4.4.1.jar
- TreeFellerPlus.jar
- JumpTo.jar
- ProtocolLib.jar