Перейти к содержимому
Mineforgian

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:

  1. Client connects and performs a handshake with the server
  2. Server sends session config (distance limits, rate limits, generation settings)
  3. Client scans outward in an expanding spiral, batch-requesting chunks it doesn't have cached
  4. Server reads chunks from disk (or generates them on demand), serializes the raw MC section data (block states, biomes, lighting), and streams it back
  5. Client receives the section data and feeds it directly into Voxy's rendering engine via rawIngest
  6. 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

  1. Place lod-server-support-fabric.jar in the server's mods/ directory
  2. Install the Fabric mod and Voxy on all clients
  3. Restart the server — config is generated at config/lss-server-config.json

Fabric Client

  1. Install Voxy and place lod-server-support-fabric.jar in the client's mods/ directory
  2. Join a server running LSS — client config is generated at config/lss-client-config.json

Paper Server

  1. Place lod-server-support-paper.jar in the server's plugins/ directory
  2. Install the Fabric mod and Voxy on all clients
  3. 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

  • lodDistanceChunks maximum 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

  • lodDistanceChunks maximum 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

Комментарии

Загружаем…