Updated server to 1.21.11

Added Essentials, Voxy Serverside plugin, LoginTo, squaremap, imageframe, luckperms
Changed from url download to modrinth for better reliability.
This commit is contained in:
2026-10-08 21:50:10 +03:00
parent ec053a8ba9
commit 32a020c572
15 changed files with 52990 additions and 10 deletions
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,7 @@
# This file stores custom item aliases.
# Note: You cannot alias an item to another entry in this file.
aliases:
bluepaint: blue_dye
snad: sand
breakfast: cooked_porkchop
File diff suppressed because it is too large Load Diff
+48
View File
@@ -0,0 +1,48 @@
# EssentialsX kit configuration.
# If no kits are defined in this file, the plugin will attempt to copy them from 'config.yml'.
# All items MUST be followed by a quantity.
# Kit names should be in lowercase and will be treated as such in permissions and costs.
# Syntax: - item[:durability] amount [enchantment:level]... [itemmeta:value]...
# For detailed information on item meta, visit https://wiki.ess3.net/wiki/Item_Meta
#
# To make a kit execute a command, add '/<command>' to the item list. Use {USERNAME} to reference the player receiving the kit.
# Use {PLAYER} to display the player's display name instead of the username.
# 'delay' refers to the cooldown between how often you can use each kit, measured in seconds. Set to -1 for a one-time kit.
#
# You can also organize kits into separate files within the 'kits' subdirectory.
# Essentials will treat all '.yml' files in the subdirectory as valid kit files and add them along with those in here.
# Each file in the 'kits' subdirectory must be formatted the same as this file.
#
# For more information, refer to https://wiki.ess3.net/wiki/Kits
kits:
tools:
delay: 10
items:
- stonesword 1
- stoneshovel 1
- stonepickaxe 1
- stoneaxe 1
dtools:
delay: 600
items:
- dpickaxe 1 efficiency:1 durability:1 fortune:1 name:&4Gigadrill lore:The_drill_that_&npierces|the_heavens
- dshovel 1 digspeed:3 name:Dwarf lore:Diggy|Diggy|Hole
- lhelm 1 color:255,255,255 name:Top_Hat lore:Good_day,_Good_day
- daxe:780 1
- /broadcast {USERNAME} just got some fancy tools!
notch:
delay: 6000
items:
- playerhead 1 player:Notch
color:
delay: 6000
items:
- writtenbook 1 title:&4Book_&9o_&6Colors author:KHobbits lore:Ingame_color_codes book:Colors
firework:
delay: 6000
items:
- fireworkrocket 1 name:Angry_Creeper color:red fade:green type:creeper power:1
- fireworkrocket 1 name:Starry_Night color:yellow,orange fade:blue type:star effect:trail,twinkle power:1
- fireworkrocket 2 name:Solar_Wind color:yellow,orange fade:red shape:large effect:twinkle color:yellow,orange fade:red shape:ball effect:trail color:red,purple fade:pink shape:star effect:trail power:1
+4
View File
@@ -0,0 +1,4 @@
&6Welcome, {PLAYER}&6!
&6Type &c/help&6 for a list of commands.
&6Type &c/list&6 to see who else is online.
&6Players online:&c {ONLINE} &6- World time:&c {WORLDTIME12}
+16
View File
@@ -0,0 +1,16 @@
# Configuration for the random teleport command.
# Some settings may be defaulted and can be changed using the '/settpr' command in-game.
default-location: '{world}'
excluded-biomes:
- cold_ocean
- deep_cold_ocean
- deep_frozen_ocean
- deep_lukewarm_ocean
- deep_ocean
- deep_warm_ocean
- frozen_ocean
- frozen_river
- lukewarm_ocean
- ocean
- river
- warm_ocean
@@ -0,0 +1,15 @@
updateLegacyToAdventure: true
newUidCacheBuilt: true
updateSpawnsToNewSpawnsConfig: true
updateJailsToNewJailsConfig: true
warnMetrics: true
updateRandomTeleport: true
moverulesToFile: true
sanitizeAllUserFilenames: true
updateUsersPowerToolsFormat: true
updateUsersHomesFormat: true
banFormatChange: true
updateUsersIgnoreListUUID: true
updateUsersStupidLegacyPathNames: true
updateUsersMailList: true
updatePurgeBrokenNpcAccounts: true
Binary file not shown.
+1
View File
@@ -0,0 +1 @@
L ÎÀé¤3R¹Äg€s¨
+186
View File
@@ -0,0 +1,186 @@
# Determines the value of items on the server.
# Items not listed here cannot be sold.
# Setting the value to 0 sells items for free; set to -1 or remove the item to disable selling.
# Prices can be set in this file or via the '/setworth' command in-game.
worth:
# This will set the worth of all logs to '2'.
log: 2.0
# This will work similar to the above syntax.
wool:
'0': 20
# This will only allow selling leaves with datavalue '0' and '1'.
leaves:
'0': 1.0
'1': 1.0
# This will allow the selling of all, but sells '0' slightly cheaper.
sapling:
'0': 2.0
'*': 2.5
stonebutton: 6.0
wood: 0.50
arrow: 3.50
diamondpickaxe: 650.0
rawfish: 5.0
minecart: 23.0
leatherchestplate: 85.0
storageminecart: 30.0
feather: 3.0
goldchestplate: 6.5
mushroomsoup: 4.5
bread: 30.0
stationarywater: 1.0
workbench: 2.5
stonehoe: 2.5
brownmushroom: 2.0
mossycobblestone: 90.0
diamondhoe: 400.0
woodsword: 1.0
torch: 4.0
grass: 1.0
poweredminecart: 32.0
snowball: 1.0
goldenapple: 100.0
leatherleggings: 75.0
diamondaxe: 650.0
slimeball: 50.0
fence: 1.0
stonespade: 1.5
claybrick: 5.0
noteblock: 36.0
ironaxe: 22.0
coalore: 15.0
clayball: 3.0
fishingrod: 10.0
ironhoe: 22.0
goldrecord: 100.0
ironpickaxe: 22.0
irondoor: 22.0
bucket: 22.0
redrose: 2.0
grilledpork: 7.0
gravel: 1.0
wooddoor: 3.0
chainmailhelmet: 40.0
ironchestplate: 22.0
diamondblock: 2000.0
diamondhelmet: 1000.0
goldhelmet: 6.0
redstonetorchon: 32.0
ironspade: 22.0
furnace: 8.5
ironsword: 22.0
dispenser: 58.0
woodaxe: 2.0
seeds: 2.0
painting: 25.0
woodplate: 1.0
redstoneore: 30.0
diamondspade: 210.0
waterbucket: 40.0
water: 1.0
bedrock: 100.0
irondoorblock: 15.0
goldhoe: 6.0
sand: 1.0
goldsword: 6.0
stoneaxe: 3.0
bookshelf: 140.0
ironblock: 190.0
jackolantern: 56.0
boat: 3.0
diamondchestplate: 1750.0
redstonewire: 30.0
redmushroom: 2.0
string: 5.0
stoneplate: 6.0
wallsign: 1.0
cactus: 10.0
sulphur: 20.0
rails: 22.0
ironore: 18.0
leatherhelmet: 52.0
stone: 3.00
egg: 1.0
diamondore: 200.0
woodhoe: 2.0
goldleggings: 6.0
chainmailleggings: 50.0
yellowflower: 2.0
ironhelmet: 22.0
obsidian: 130.0
dirt: 1.0
leather: 10.0
leatherboots: 42.0
lever: 1.0
cobblestone: 1.0
cake: 180.0
woodstairs: 1.0
ironingot: 22.0
goldore: 45.0
pumpkin: 50.0
bed: 68.0
watch: 6.0
ironleggings: 22.0
sign: 1.5
doublestep: 1.0
woodpickaxe: 2.0
stonepickaxe: 4.0
chainmailboots: 30.0
diamondleggings: 1500.0
cookedfish: 7.0
saddle: 100.0
cobblestonestairs: 1.5
tnt: 100.0
glowingredstoneore: 30.0
apple: 10.0
woodspade: 1.0
goldingot: 105.0
diode: 110.0
soil: 1.0
clay: 12.0
goldblock: 450.0
stick: 0.25
paper: 10.0
brick: 21.0
stationarylava: 1.0
chest: 4.0
sandstone: 3.0
goldpickaxe: 6.0
compass: 22.0
sugarcane: 10.0
diamondsword: 420.0
goldboots: 6.0
sponge: 80.0
stonesword: 2.5
coal: 15.0
goldaxe: 6.0
bone: 2.0
diamond: 200.0
glass: 3.00
goldspade: 6.0
lapisblock: 950.0
lavabucket: 40.0
wheat: 9.0
ladder: 0.5
sugarcaneblock: 15.0
bowl: 0.50
chainmailchestplate: 40.0
diamondboots: 850.0
lapisore: 100.0
lava: 25.0
milkbucket: 40.0
redstone: 32.0
greenrecord: 100.0
inksack: 10.0
glowstonedust: 10.0
book: 45.0
bow: 15.0
ironboots: 22.0
step: 1.5
sugar: 10.0
+120
View File
@@ -0,0 +1,120 @@
Settings:
# Default language
# Translations are crowdsourced from the community!
# For supported languages, see https://loohpjames.com/imageframe/languages/
# To contribute your language, visit https://crowdin.com/project/imageframe/
Language: en_us
# Date format used where a time based variable is displayed
DateFormat: dd/MM/yyyy HH:mm:ss zzz
MapItemFormat: '&f{Name} &7({X}, {Y})'
# Whether empty maps are required to create image maps when not in creative
RequireEmptyMaps: true
# Max size of an image map
MaxSize: 100
# When enabled, Only websites from the list below is allowed to be shown through in-game maps
RestrictImageUrl:
Enabled: false
Whitelist:
- https://i.imgur.com
- http://i.imgur.com
- https://storage.googleapis.com
- http://storage.googleapis.com
- https://cdn.discordapp.com
- http://cdn.discordapp.com
- https://media.discordapp.net
- http://media.discordapp.net
- https://textures.minecraft.net
- http://textures.minecraft.net
# If the image is larger than the defined size, it won't be downloaded for preview
# (In Bytes)
MaxImageFileSize: 52428800
# If an image takes more than this time to load, it will be rejected
# (In Seconds)
MaxProcessingTime: 60
# How many images should be processed in parallel
# Updating this option requires a server restart
ParallelProcessingLimit: 1
# Max amount of image maps a player in the following groups can create
# Setting -1 means unlimited
# To add a player to a group, give the permission "imageframe.createlimit.<group>"
# For example "imageframe.createlimit.vip"
# Players with no groups will be treated as "default" unless they have "imageframe.createlimit.unlimited"
PlayerCreationLimit:
default: 10
vip: 15
moderator: 20
# Max amount of markers on an individual map
MapMarkerLimit: 20
# How many map packets can be sent to a player in 1/20 of a second
# You can turn this down if you are facing network issues
# However maps might take longer to show to a player
# To disable the rate limit, set to -1
MapPacketSendingRateLimit: -1
# Exempt certain map ids from deletion if their ImageFrame map is deleted
# Values can be map ids (For example: "13") or ranges (inclusive) of map ids (For example: "10-13")
ExemptMapIdsFromDeletion:
- '-1'
# This option should only be useful to developers and people who knew what they are doing
MapRenderersContextual: false
# Changing this option requires a restart
HandleAnimatedMapsOnMainThread: false
SendAnimatedMapsOnMainThread: false
# Valid modes are "DYNAMIC" and "MANUAL_PERSISTENT"
# DYNAMIC: load and unload image cache depending on whether a player is viewing
# May use more CPU and image might appear with a slight delay
# MANUAL_PERSISTENT: image cache stay loaded from server start
# May use more memory
# Changing this setting requires a restart
CacheControlMode: MANUAL_PERSISTENT
# Set this to true if you have corrupted 0 size map data in the world folder (not the ImageFrame plugin folder)
# Set this to false if your system's file IO is slow
TryDeleteBlankMapFiles: false
CombinedByDefault: false
# ImageFrame's convenient upload system where you can upload directly through an embedded web server
UploadService:
# Changing this value requires a restart
Enabled: true
# This is only used for displaying to the end user
DisplayURL: https://imageframe.hoshifu.ru
WebServer:
# Address in which the webserver binds to, defaults to 0.0.0.0
# Use 127.0.0.1 to limit to local access
# Changing this value requires a restart
Host: 0.0.0.0
# Port in which the webserver is hosted, make sure it is not blocked by your firewall
# Changing this value requires a restart
Port: 8517
# ImageFrame's complimentary mod where you can see images in its native resolution in full color
ImageFrameClient:
# Changing this value requires a restart
Enabled: true
# ImageFrame's built in survival friendly way of making invisible item frames
InvisibleFrame:
# Survival friendly way to get invisible item frames by splashing dropped items with invisibility potions
# Set to -1 for unlimited
# Set to 0 to disable
MaxConversionsPerSplash: 8
# Should empty invisible item frames glow
# Existing frames are not updated until they are interacted with
GlowEmptyFrames: true
# Which storage system should ImageFrame use
# Changing this section requires a restart
Storage:
# Supported storage systems: file (Default), jdbc (Currently only supports MYSQL dialect)
Type: file
# Options are only used if the storage system type requires it, such as jdbc
Options:
JdbcUrl: jdbc:mysql://localhost:3306/imageframe
Username: imageframe
Password: imageframe
# In Seconds
ActivePollInterval: 5
Hooks:
ViaVersion:
# Enable this if your players below 1.13 is having network issues
DisableSmoothAnimationForLegacyPlayers: false
DebugLogging: false
# Enable update notifications for admins
Updater: true
+96
View File
@@ -0,0 +1,96 @@
config-version: "2"
datastore:
# Database type, use one of this: SQLITE, MYSQL
database-type: "SQLITE"
host: ""
port: 0
database: ""
user: ""
password: ""
settings:
password:
# Characters that are required in the password
required-character: ""
# Decline the registration if the player's password if too common
decline-on-common-password: true
# Specify the password length rules
password-length:
min: 8
max: 32
# Specify the maximum attempts for authenticating, if the player enters the password X times
# wrong, they will be kicked.
# If this is set to 0, this feature will be disabled
max-login-attempts: 3
# Amount of seconds the players will have for doing /register or /login before getting kicked
# If this is set to 0, this feature will be disabled
authentication-timeout: 0
sessions:
# If this is enabled, a cracked player won't need to
# do the login authentication if that player is from
# the same ip and the session is not invalid
# Warning: If your server is running behind a proxy or tunnel
# that does not forward the player's real IP address, disable
# this feature. Otherwise, all players may appear to have the
# same IP address (e.g. 127.0.0.1 or 192.168.x.x).
enabled: true
# Session duration (in hours)
session-duration: 24
proxy:
# When enabled, LoginTo will delegate player authentication to the proxy.
# Instead of authenticating players locally, it checks the database to verify
# if the player was already logged in by the proxy. If not, movement is blocked.
# Both this server and the proxy must use the same MySQL database.
bridge-bukkit-proxy: false
premium:
# If this is enabled, any premium account would be able to
# join the server without doing /login or /register.
# If you are making a java and bedrock server and want this
# feature, make sure to install floodgate, otherwise every
# bedrock player without a java account will be kicked.
# If this setting is changed, a full server restart is required,
# not just a plugin reload
enabled: true
# Name's cache duration (in hours), if this is set to 0,
# everytime the same player joins the server, LoginTo will
# need to do 2 http request instead of 1 (this can slow down
# the authentication process)
cache-duration: 24
# If this is enabled, the plugin will generate a random password
# for premium and bedrock players
auto-register: true
# A list of player's name to skip during the premium authentication.
premium-bypass-list: []
spawn-setting:
# If this is enabled, the player will get teleported and those cords
# when they leave (the player will see the teleport on join)
enabled: false
# Change those cords so the players won't die after the registration
cords:
x: 0
y: 64
z: 0
world: "world"
# If this is enabled, after the login, the player will be teleported
# at the location where they left
restore-previous-location: true
otp:
# If you want players to create and use an otp code for changing their
# password, leave this on. If this gives you any problem or you simply
# don't want this, turn this off.
# (If this feature is changed, it requires the server to be restarted)
enabled: true
# Use the legacy changepassword command?
# The syntax will be: /changepassword <old_password> <new_password>
# If the otp code is disabled, this will automatically be enabled
legacy-changepass-command: false
# Check for an update every hour
check-for-updates: true
# If you want to support the plugin, consider leaving this on, this watermark
# will only appear once for every player
show-watermark: true
# If this is enabled, LoginTo will download a version of packetevents to use.
# If you are having problems with this, or you already have the packetevents
# plugin installed, turn this off
use-built-in-packetevents: true
@@ -0,0 +1,175 @@
# LOD Server Support — Paper/Folia server defaults.
# Edit this file, then run /vsslod reload. Settings marked [restart] wait for restart.
# Reload changes policy for new work; existing jobs/reads drain and cache trimming can lag.
# Distances are radii. 1 chunk = 16 blocks; 1 MiB = 1,048,576 bytes.
config_version: 1 # Local settings schema version, independent of the network protocol.
# Serves distant terrain to compatible clients beyond vanilla's view distance.
# This does not increase the server's simulation distance or keep distant chunks ticking.
service:
enabled: true # [restart] Enable the server's LOD service.
require_permission: false # Require both lss.use and vss.use; nodes default to allowed.
# Larger radii reveal more terrain, but cover more columns and can increase
# generation, transfer, cache and disk work. Doubling a radius covers roughly four
# times the area; a large configured radius does not mean it fills instantly.
lod:
distance:
default_chunks: 512 # Fallback for dimensions not listed below; range 1–2048.
by_dimension: # These are fresh-install defaults; migration preserves existing limits.
"minecraft:overworld": 512 # Overworld radius in chunks.
"minecraft:the_nether": 64 # Nether radius in chunks.
"minecraft:the_end": 512 # End radius in chunks.
by_world: {} # Paper world-name overrides; take priority over dimension entries.
# Lets LOD requests create terrain that does not yet exist in the world.
# This costs world-generation CPU time and grows the normal world files, independently
# of the LOD store. With generation off, existing terrain can still be served.
# Higher concurrency can fill missing terrain sooner, but competes with gameplay.
generation:
enabled: true # Generate missing terrain; disabling stops new jobs, existing jobs finish.
concurrency:
global: 40 # Maximum concurrent generations across the server; range 1–512.
per_player: 40 # Maximum per player; cannot exceed the global limit.
timeout_ticks: 1200 # New jobs only; 60 seconds at 20 TPS, longer under lag; range 20–12000.
# Limits and schedules LOD traffic so it shares resources with normal gameplay.
# Bandwidth limits count uncompressed payload work, so they also limit client decode
# work; compressed network traffic can be much smaller. Lower limits slow terrain fill.
network:
bandwidth:
per_player_mib_per_second: 5 # Raw MiB/s before compression; 0 clamps to 1 KiB/s, not unlimited.
global_mib_per_second: 50 # Shared raw MiB/s budget; 0 clamps to 1 KiB/s, not unlimited.
send_queue_limit_per_player: 1024 # Admission ceiling; lowering it lets existing work drain.
ping_backstop: true # Reduce LOD traffic when player latency indicates congestion.
send_pacing: true # Spread LOD sends across ticks to reduce bursts.
yield_to_vanilla: true # Let normal game traffic take transport priority; applies next flush.
# Keeps previously downloaded terrain up to date when the world changes.
# Shorter dirty-broadcast intervals show edits sooner but can send updates more often.
# Region summaries let returning clients validate cached areas without downloading
# every column again; they describe freshness, not the terrain itself.
updates:
# Tick-driven: 200 ticks = 10 seconds at 20 TPS, longer under lag.
dirty_broadcast_interval_ticks: 200 # 0 disables pushes, not invalidation; otherwise 20–6000.
region_summaries: true # Accept new region-validation requests; accepted requests can finish.
storage:
# Reader threads and concurrent reads control pressure on world-file access.
# More parallel reads can improve throughput, but can also compete with gameplay
# for disk and CPU. Automatic sizing accounts for the active read path and store.
disk:
reader_threads: 0 # [restart] 0 = automatic; explicit range 1–64.
max_concurrent_reads: 0 # 0 = automatic, based on the active reader pool and store.
background_priority: true # [restart] Use background-priority reads where supported.
split_background_reads: true # [restart] Separate background read work where supported.
# This RAM cache holds column freshness timestamps, not complete terrain.
# More capacity can avoid repeated timestamp lookups, at the cost of server memory.
# Reducing capacity trims gradually; it does not clear the entire cache on reload.
timestamp_cache_mib_per_dimension: 0 # 0 = automatic from the largest active LOD radius.
# Briefly remembering missing columns avoids repeatedly checking unavailable terrain.
# A longer lifetime can delay another lookup for newly available data on a memo hit.
miss_memo_ttl_seconds: 30 # 0 disables; maximum 60. Changing this clears old miss memos.
# Persistent cache of prepared LOD columns, reused across players and restarts.
# Cache hits reduce repeated world-file parsing, serialization and, when the
# client's format supports reuse, compression. Store reads still use disk I/O.
# Tradeoff: extra disk space and writes as terrain is cached or updated. A fully
# warmed store can be comparable in size to the region files; actual use depends
# on the world and how much terrain has been cached. This is rebuildable data.
# Off still allows normal LOD serving, but loses this reuse. Disabling the store
# does not delete its existing files or reclaim their disk space.
lod_store:
enabled: true # [restart] Fresh installs enable this; migration preserves old behavior.
# Smaller limits retain less prepared terrain, so evicted columns may need
# processing again. This bounds live database data, not total filesystem use:
# SQLite journal files and space awaiting reclamation can add overhead.
# Lowering the cap evicts gradually; reload does not instantly free filesystem space.
max_size_mib: 0 # 0 = unlimited; positive range 64–1,048,576 MiB.
# Periodically recheck saved-world freshness to catch edits without a Bukkit event.
# Shorter intervals find these saved edits sooner but perform more checks.
# Unsaved changes still have to reach the world files before this path can see them.
resweep_interval_seconds: 300 # 0 disables future periodic sweeps; an active sweep can finish.
# Optimized processing paths for turning world terrain into transmitted columns.
# Compression reduces network bytes but costs CPU when a reusable frame is unavailable.
# These are expert troubleshooting switches; their effects depend on the active path.
serialization:
selective_nbt_parse: true # Inactive on Paper's already-parsed NBT path; retained for portability.
nbt_transcode: true # New reads: use the optimized terrain serialization path.
compressed_columns: true # [restart] Compress columns for clients that support it.
# Allows older LOD protocol versions; these numbers are not Minecraft versions.
# Disabling a fallback restricts which clients can connect to the LOD service.
# It does not translate arbitrary modded blocks or replace a version-translation mod.
compatibility:
protocols:
v16: true # [restart] Accept protocol-16 clients.
v18: true # [restart] Accept protocol-18 clients.
v19: true # [restart] Accept protocol-19 clients.
via_mismatch_guard: true # [restart] Guard incompatible translated-protocol sessions.
# Prevents distant terrain data from revealing blocks hidden by anti-xray policy.
# Auto follows supported detected policy; forcing off can expose hidden terrain.
# The block list and height below are fallbacks, not overrides for an adopted engine policy.
privacy:
xray:
mode: "auto" # [restart] "auto", "on" or "off"; auto follows detected anti-xray policy.
max_y_blocks: 64 # [restart] Fallback mask applies below this world Y coordinate.
hidden_blocks: # [restart] Fallback list when engine policy is unavailable; [] hides none.
- "minecraft:copper_ore"
- "minecraft:deepslate_copper_ore"
- "minecraft:raw_copper_block"
- "minecraft:gold_ore"
- "minecraft:deepslate_gold_ore"
- "minecraft:iron_ore"
- "minecraft:deepslate_iron_ore"
- "minecraft:raw_iron_block"
- "minecraft:coal_ore"
- "minecraft:deepslate_coal_ore"
- "minecraft:lapis_ore"
- "minecraft:deepslate_lapis_ore"
- "minecraft:mossy_cobblestone"
- "minecraft:obsidian"
- "minecraft:chest"
- "minecraft:diamond_ore"
- "minecraft:deepslate_diamond_ore"
- "minecraft:redstone_ore"
- "minecraft:deepslate_redstone_ore"
- "minecraft:clay"
- "minecraft:emerald_ore"
- "minecraft:deepslate_emerald_ore"
- "minecraft:ender_chest"
# Sends lightweight distant-player snapshots beyond normal entity tracking range.
# This does not keep distant entities ticking. Larger ranges and more frequent
# updates can increase server work, traffic and client rendering work.
# "opt_in" shares only targets whose clients explicitly allow sharing; "on" can
# also include vanilla players. Exclusions, visibility rules and opt-outs still apply.
far_players:
mode: "on" # "off", "opt_in" or "on"; all modes honor exclusions and sharing opt-outs.
update_interval_ticks: 10 # 10 ticks = two updates/second at 20 TPS; range 2–100.
distance:
min_blocks: 0 # 0 = no additional inner ring; cannot exceed max_blocks.
max_blocks: 2048 # Server visibility ceiling; range 128–16384 blocks.
send_spectators: false # Include spectator targets if other privacy checks allow them.
excluded_players: [] # Player names or UUIDs never shared; kept out of diagnostic exports.
# Bukkit event hooks invalidate cached LODs after world edits. Adding frequent
# events can improve coverage but increase work; edits without a matching event
# may remain stale until saved terrain is checked by the store's periodic resweep.
paper:
update_events: # [restart] Bukkit events used to detect changed terrain.
- "org.bukkit.event.block.BlockPlaceEvent"
- "org.bukkit.event.block.BlockBreakEvent"
- "org.bukkit.event.block.BlockExplodeEvent"
- "org.bukkit.event.entity.EntityExplodeEvent"
- "org.bukkit.event.block.BlockBurnEvent"
- "org.bukkit.event.block.BlockFadeEvent"
- "org.bukkit.event.block.BlockFormEvent"
- "org.bukkit.event.block.BlockGrowEvent"
- "org.bukkit.event.block.BlockSpreadEvent"
- "org.bukkit.event.block.LeavesDecayEvent"
- "org.bukkit.event.block.BlockPistonExtendEvent"
- "org.bukkit.event.block.BlockPistonRetractEvent"
- "org.bukkit.event.entity.EntityChangeBlockEvent"
- "org.bukkit.event.world.StructureGrowEvent"