MinecraftサバイバルサーバーでPaperMCのConfigurationと負荷軽減

Minecraftサーバーの負荷軽減についてです
PaperもしくはPaperをForkしたサーバー(Airplaneなど)を導入していることが前提の記事です

起動引数

aikarを使用してGCを最適化します

java -Xms8G -Xmx8G -XX:+UseG1GC -XX:+ParallelRefProcEnabled -XX:MaxGCPauseMillis=200 -XX:+UnlockExperimentalVMOptions -XX:+DisableExplicitGC -XX:+AlwaysPreTouch -XX:G1HeapWastePercent=5 -XX:G1MixedGCCountTarget=4 -XX:G1MixedGCLiveThresholdPercent=90 -XX:G1RSetUpdatingPauseTimePercent=5 -XX:SurvivorRatio=32 -XX:+PerfDisableSharedMem -XX:MaxTenuringThreshold=1 -XX:G1NewSizePercent=40 -XX:G1MaxNewSizePercent=50 -XX:G1HeapRegionSize=16M -XX:G1ReservePercent=15 -XX:InitiatingHeapOccupancyPercent=20 -Dusing.aikars.flags=https://mcflags.emc.gs -Daikars.new.flags=true -jar paper.jar nogui

Xms Xmx -jarをあなたのサーバーにあったものに変えて使ってください

読み込みチャンク

読み込みチャンクを減らすことで大幅に負荷を軽減します 送信チャンク数は変わらないのでプレイにはあまり影響しません
読み込みチャンクを指定します デフォルトは10です

(server.properties)
view-distance=4

送信チャンク数を指定します デフォルトは-1(無効)です

viewdistances:
  no-tick-view-distance: 10

スポーンチャンク

スポーンチャンクを変更します
keep-spawn-loadedをfalseにするとスポーンチャンクがなくなります
keep-spawn-loaded-rangeを変更することでスポーンチャンクの大きさを任意の値に変更することが出来ます デフォルトは10です
ディメンションが数十個あるサーバーにこの設定は非常に有用です

keep-spawn-loaded: false
keep-spawn-loaded-range: 0

Mobスポーン

同じワールドに複数人プレイヤーがいるとMobのスポーンが減ります
MinecraftではワールドごとにMobの上限が定められておりそれを超えるとMobがスポーンしなくなります
以下の設定にすることでMobの上限をワールドごとではなくプレイヤーごとにします
※なおこの機能にはバグがあります プレイヤーのすぐ近くにいきなりMobがスポーンする可能性があります#2614

per-player-mob-spawns: true

Mobのデスポーンを早くします
Minecraftでは32マス以上離れているランダムに選択されたmobと128マス以上の離れているmobはデスポーンします
遠くに居るmobは不要なので64マス以上離れたmobを強制的にデスポーンさせます

despawn-ranges:
  soft: 32
  hard: 64

爆発

爆発を最適化します
爆発の処理が大幅に早くなります

optimize-explosions: true

TNTが水に流されなくなります

prevent-tnt-from-moving-in-water: true

レッドストーン

レッドストーンの処理が大幅に向上しますが通常のMinecraftと違う挙動をする可能性があります

use-faster-eigencraft-redstone: true

Anti-Xray

地面透視チートの対策です 詳細

以下のは1.16向けの設定なのでバージョンによって鉱石を増やしたり減らしたりしてください

world-settings:
  default:
    anti-xray:
      enabled: true
      engine-mode: 2
      chunk-edge-mode: 2
      max-chunk-section-index: 7
      update-radius: 2
      lava-obscures: false
      use-permission: false
      hidden-blocks:
      - air
      - coal_ore
      - diamond_ore
      - emerald_ore
      - gold_ore
      - iron_ore
      - lapis_ore
      - mossy_cobblestone
      - redstone_ore
      - ancient_debris
      - bone_block
      - glowstone
      - magma_block
      - nether_bricks
      - nether_gold_ore
      - nether_quartz_ore
      - polished_blackstone_bricks
      replacement-blocks:
      - andesite
      - diorite
      - dirt
      - granite
      - gravel
      - oak_planks
      - stone
      - basalt
      - blackstone
      - gravel
      - netherrack
      - soul_sand
      - soul_soil

おまけ

オウムが肩から落ちなくなります
スニークをすることで解除できます

parrots-are-unaffected-by-player-movement: true

猫がチェストの上に乗っていてもチェストが開けられるようになります

disable-chest-cat-detection: true

通常の2/3の速度で魚が釣れます デフォルトはMinimumTicksが100,MaximumTicksが600です

fishing-time-range:
  MinimumTicks: 60
  MaximumTicks: 400

ウィザーの敵対しないバグの修正 MC-29274

fix-wither-targeting-bug: true