Files
mapsyncer-paper/src/main/resources/config.yml
T
janhouse 8d4b7df1ce
Build / build (push) Successful in 1m18s
protocol: hello carries five fields; the released client reads no serverName
Upstream's git HEAD appends serverName to server_installed, but the shipped
1.0.4 client (fabric-26.2) decodes exactly version/lastGen/interval/mode/
ticks and vanilla disconnects the player with "8 bytes extra" on the first
hello. Verified with javap on the release jar; the other three codecs match.
Drops the server-name option (a leftover key now only warns).

Claude-Session: https://claude.ai/code/session_011FePLXwBsCGLTzaSkk1Z6V
2026-09-07 00:24:43 +03:00

71 lines
3.2 KiB
YAML

# MapSyncer (Paper) — server half of the "MapSyncer for Xaero's World Map" mod.
#
# The server renders Xaero's World Map region files from the world on disk and
# streams them to players who run the MapSyncer client mod (Fabric/NeoForge,
# same Minecraft version as the server) alongside Xaero's World Map.
#
# Unlike the upstream mod, this plugin does NOT ship the whole generated world.
# It tracks which chunks were actually sent to players and renders only those,
# so pre-generated or never-visited terrain stays hidden until someone finds it.
# What a player receives.
# shared every player sees the union of everything anyone has discovered
# own each player sees only the chunks they discovered themselves
# (plus the seeded history below, which cannot be attributed)
visibility: shared
# On first start (or /mapsync seed) mark every chunk that players have
# already spent time in as discovered, using the chunk's InhabitedTime. Chunks
# that were merely pre-generated (Chunky, distant-terrain LOD generation, ...)
# have an InhabitedTime of 0 and stay hidden.
seed:
from-inhabited-time: true
# Minimum InhabitedTime (ticks) for a chunk to count. 1 = anything at all.
min-inhabited-ticks: 1
discovery:
# A chunk counts as discovered when the server sends it to a player, which is
# exactly what Xaero's client maps. -1 keeps that; a positive number caps the
# distance (in chunks) from the player at which a sent chunk still counts.
radius-chunks: -1
# How often the discovery bitmaps are flushed to disk (seconds).
save-interval-seconds: 60
render:
# How often dirty regions (changed world data or new discoveries) are
# re-rendered in the background (seconds).
interval-seconds: 300
# Worker threads for MCA -> Xaero conversion. Each region is a full parse of a
# ~10 MB region file; keep this small on a shared box.
threads: 2
# Flush the world to disk before a render cycle so freshly explored chunks are
# on disk. This is the same operation the autosave performs.
save-world-before-render: true
# A sync request whose regions are not rendered yet renders them inline, but
# stops after this many seconds and leaves the rest to the background cycle
# (the client re-polls). Keep well under the client's 10 minute session limit.
inline-budget-seconds: 420
sync:
# Largest sum of region bytes in one packet (client cap is 1,000,000).
max-packet-bytes: 262144
# Per-player send rate. 0 disables the limiter.
speed-limit-kbps: 1024
# Advertised to clients: how often (ticks) their mod re-polls for changes.
client-poll-interval-ticks: 6000
# Delay (ticks) between the client announcing the mod's channels and the
# server's hello. The client needs a few seconds after join to read its own
# cache, otherwise it forgets what it already has and re-syncs on every join.
hello-delay-ticks: 100
# Per-world settings. Keys are Bukkit world names. Anything not listed uses
# "default". `layers` controls what is rendered:
# auto surface for worlds with a sky, cave layers for worlds with a ceiling
# surface top-down map only
# caves cave layers only (16 blocks each, like Xaero's own cave mode)
# both
worlds:
default:
enabled: true
layers: auto