
LOD Server Support
A Fabric client/server mod and Paper/Purpur/Folia plugin that provides unofficial multiplayer support for Voxy. See far away lands without traveling to them on multiplayer servers!
- Загрузки
- 3K
- Подписчики
- 19
- Обновлён
- 6 июля 2026 г.
- Лицензия
- MIT
Опубликован 17 марта 2026 г.
LOD Server Support
Distributes LOD (Level of Detail) chunk data from servers to connected clients over a custom networking protocol. Built primarily as a multiplayer backend for Voxy — clients request distant chunks in batches, the server reads them from disk or memory and streams the data back, enabling Voxy to render terrain far beyond the vanilla render distance on multiplayer servers.
Supports Fabric and Paper/Purpur/Folia servers. The client is always a Fabric mod.
Demo Video: https://github.com/user-attachments/assets/721fb344-890e-4e03-ab36-539444427f7b
How It Works
Without LSS, Voxy can only build LOD data from chunks the client has already loaded — limiting distant terrain rendering to areas the player has personally visited. LSS moves this work to the server:
- Client connects and performs a handshake with the server
- Server sends session config (distance limits, rate limits, generation settings)
- Client scans outward in an expanding spiral, batch-requesting chunks it doesn't have cached
- Server reads chunks from disk (or generates them on demand), serializes the raw MC section data (block states, biomes, lighting), and streams it back
- Client receives the section data and feeds it directly into Voxy's rendering engine via
rawIngest - After initial sync, the server pushes notifications when chunks change so clients stay up to date
The result: players see fully rendered terrain out to hundreds of chunks on multiplayer servers, without needing to explore the world first.
Installation
Fabric Server
- Place
lod-server-support-fabric.jarin the server'smods/directory - Install the Fabric mod and Voxy on all clients
- Restart the server — config is generated at
config/lss-server-config.json
Fabric Client
- Install Voxy and place
lod-server-support-fabric.jarin the client'smods/directory - Join a server running LSS — client config is generated at
config/lss-client-config.json
Paper Server
- Place
lod-server-support-paper.jarin the server'splugins/directory - Install the Fabric mod and Voxy on all clients
- Restart the server — config is generated at
plugins/LodServerSupport/lss-server-config.json
Commands
Server (Fabric and Paper)
/lsslod stats- Show per-player transfer statistics/lsslod diag- Show detailed diagnostics (config, bandwidth, queue depths)
Client (Fabric only)
/lss clearcache- Clear the local column cache, forcing all chunks to be re-requested from the server
Configuration
Server (Fabric and Paper)
Server config is generated on first run:
- Fabric:
config/lss-server-config.json - Paper:
plugins/LodServerSupport/lss-server-config.json
| Setting | Default | Description |
|---|---|---|
enabled |
true |
Enable LOD distribution |
lodDistanceChunks |
256 |
Max LOD distance in chunks |
bytesPerSecondLimitPerPlayer |
20971520 |
Per-player pre-compression bandwidth cap (20 MB/s) |
bytesPerSecondLimitGlobal |
104857600 |
Total pre-compression bandwidth cap (100 MB/s) |
diskReaderThreads |
5 |
Thread pool size for async disk reads |
sendQueueLimitPerPlayer |
4000 |
Max queued sections per player |
syncOnLoadRateLimitPerPlayer |
800 |
Sync-on-load requests per second per player |
syncOnLoadConcurrencyLimitPerPlayer |
200 |
Max in-flight sync requests per player |
generationRateLimitPerPlayer |
80 |
Generation requests per second per player |
generationConcurrencyLimitPerPlayer |
16 |
Max in-flight generation requests per player |
enableChunkGeneration |
true |
Generate missing chunks on demand for LOD data |
generationConcurrencyLimitGlobal |
32 |
Max chunks generating server-wide at once |
generationTimeoutSeconds |
60 |
Timeout for pending chunk generation |
dirtyBroadcastIntervalSeconds |
10 |
Interval for pushing dirty column notifications to clients |
Paper-specific: The config also includes an updateEvents list of Bukkit event class names used for dirty chunk detection. /lsslod commands require the lss.admin permission (or op).
Client
Client config is generated at config/lss-client-config.json on first run.
| Setting | Default | Description |
|---|---|---|
receiveServerLods |
true |
Enable receiving LOD data from the server |
lodDistanceChunks |
0 |
Max LOD request distance in chunks (0 = use server limit) |
offThreadSectionProcessing |
true |
Process received sections off the render thread |
License
MIT
Ченджлог
v0.6.1+paper+mc1.21.8Релиз1.21.8 · 6 июля 2026 г.
New Features
Minecraft 1.21.8 support — The full v0.6.1 feature set is now available for Minecraft 1.21.8, from the long-lived support/mc1.21.8 branch. Ships a Fabric mod (client + server) and a Paper/Purpur/Folia server plugin, published as v0.6.1+fabric+mc1.21.8 and v0.6.1+paper+mc1.21.8. Requires Java 21 and Fabric Loader 0.16.13+.
Folia support (experimental) — The Paper plugin loads on Folia 1.21.8 from the same jar (folia-supported: true). Folia support remains experimental: single-player soak testing is validated, but concurrent multi-region ingress is not yet — treat it as a preview on busy multi-region servers.
Configuration
- JSON config only on the 1.21.8 line — The in-game config screen (Mod Menu + Sodium config integration) is not available on 1.21.8, because it requires Sodium 0.8+ and the newest Sodium for 1.21.8 is 0.7.3. All settings still work — edit config/lss-server-config.json and config/lss-client-config.json directly, exactly as on the primary line.
Full Changelog: https://github.com/VoX/lod-server-support/commits/v0.6.1+mc1.21.8
v0.6.1+fabric+mc1.21.8Релиз1.21.8 · 6 июля 2026 г.
New Features
Minecraft 1.21.8 support — The full v0.6.1 feature set is now available for Minecraft 1.21.8, from the long-lived support/mc1.21.8 branch. Ships a Fabric mod (client + server) and a Paper/Purpur/Folia server plugin, published as v0.6.1+fabric+mc1.21.8 and v0.6.1+paper+mc1.21.8. Requires Java 21 and Fabric Loader 0.16.13+.
Folia support (experimental) — The Paper plugin loads on Folia 1.21.8 from the same jar (folia-supported: true). Folia support remains experimental: single-player soak testing is validated, but concurrent multi-region ingress is not yet — treat it as a preview on busy multi-region servers.
Configuration
- JSON config only on the 1.21.8 line — The in-game config screen (Mod Menu + Sodium config integration) is not available on 1.21.8, because it requires Sodium 0.8+ and the newest Sodium for 1.21.8 is 0.7.3. All settings still work — edit config/lss-server-config.json and config/lss-client-config.json directly, exactly as on the primary line.
Full Changelog: https://github.com/VoX/lod-server-support/commits/v0.6.1+mc1.21.8
v0.6.1+paper+mc26.2Релиз26.2 · 6 июля 2026 г.
Configuration
lodDistanceChunksmaximum raised from 512 to 2048 — the server and client LOD-distance setting was capped at 512 chunks, so larger values were silently clamped down (issue #22). It now accepts up to 2048 chunks, letting admins with the bandwidth and hardware for it push LOD terrain much farther. The default is unchanged (256), and requests stay paced by the existing bandwidth and concurrency limits.
Full Changelog: https://github.com/VoX/lod-server-support/compare/v0.6.0...v0.6.1
v0.6.1+fabric+mc26.2Релиз26.2 · 6 июля 2026 г.
Configuration
lodDistanceChunksmaximum raised from 512 to 2048 — the server and client LOD-distance setting was capped at 512 chunks, so larger values were silently clamped down (issue #22). It now accepts up to 2048 chunks, letting admins with the bandwidth and hardware for it push LOD terrain much farther. The default is unchanged (256), and requests stay paced by the existing bandwidth and concurrency limits.
Full Changelog: https://github.com/VoX/lod-server-support/compare/v0.6.0...v0.6.1
v0.6.0+paper+mc26.2Релиз26.2 · 5 июля 2026 г.
New Features
Minecraft 26.2 support — LSS now targets Minecraft 26.2 on Fabric (client + server) and Paper/Purpur servers. This becomes the primary line; it carries the full v0.5.x feature set with no gameplay changes, and the Minecraft 26.1.x line remains available at v0.5.1.
26.2 is currently a preview — several of Minecraft 26.2's upstreams are still pre-release (Paper and C2ME are in alpha, Sodium in beta). Folia support (experimental) returns for 26.2 once Folia publishes a 26.2 build.
Full Changelog: https://github.com/VoX/lod-server-support/compare/v0.5.1...v0.6.0
v0.6.0+fabric+mc26.2Релиз26.2 · 5 июля 2026 г.
New Features
Minecraft 26.2 support — LSS now targets Minecraft 26.2 on Fabric (client + server) and Paper/Purpur servers. This becomes the primary line; it carries the full v0.5.x feature set with no gameplay changes, and the Minecraft 26.1.x line remains available at v0.5.1.
26.2 is currently a preview — several of Minecraft 26.2's upstreams are still pre-release (Paper and C2ME are in alpha, Sodium in beta). Folia support (experimental) returns for 26.2 once Folia publishes a 26.2 build.
Full Changelog: https://github.com/VoX/lod-server-support/compare/v0.5.1...v0.6.0
v0.5.1+paper+mc26.1.2Релиз26.1.2 · 5 июля 2026 г.
Bug Fixes
Fixes stale LOD after editing a chunk that is being generated or loaded — A block change that landed while the server was still generating or reading a distant chunk could be hidden: the pre-edit version was sent and marked up-to-date, so the edit never appeared in LOD until that chunk changed again. Edits that overtake an in-flight generation or disk read now correctly re-serve the updated column, on both Fabric and Paper.
Folia (experimental): loaded chunks are read on their owning region thread — On Folia, the server now reads loaded chunk data on the chunk's owning region thread instead of the global tick thread, matching Folia's threading model. Folia support remains experimental — validated by an automated single-player soak suite; busy multi-region servers are still less tested, so please report issues.
Full Changelog: https://github.com/VoX/lod-server-support/compare/v0.5.0+mc1.21.11...v0.5.1
v0.5.1+fabric+mc26.1Релиз26.1, 26.1.1, 26.1.2 · 5 июля 2026 г.
Bug Fixes
Fixes stale LOD after editing a chunk that is being generated or loaded — A block change that landed while the server was still generating or reading a distant chunk could be hidden: the pre-edit version was sent and marked up-to-date, so the edit never appeared in LOD until that chunk changed again. Edits that overtake an in-flight generation or disk read now correctly re-serve the updated column, on both Fabric and Paper.
Folia (experimental): loaded chunks are read on their owning region thread — On Folia, the server now reads loaded chunk data on the chunk's owning region thread instead of the global tick thread, matching Folia's threading model. Folia support remains experimental — validated by an automated single-player soak suite; busy multi-region servers are still less tested, so please report issues.
Full Changelog: https://github.com/VoX/lod-server-support/compare/v0.5.0+mc1.21.11...v0.5.1
Комментарии
Загружаем…