Skip to content

Distant Horizons Integration

AntonIT99 edited this page Oct 3, 2026 · 3 revisions

Distant Horizons Integration

Distant Horizons draws simplified terrain far beyond the vanilla render distance. Flan's Mod Ultimate works without it, but when it is installed on the client the mod uses it to show and measure what lies out there:

  • Far-terrain rangefinding: vehicle rangefinders keep measuring past the loaded chunks, on Distant Horizons' terrain.
  • Distant driveables: planes, vehicles and mechas too far away to be drawn as entities are drawn as simplified shapes on the far terrain, including those beyond the server's entity tracking range.
  • Distant explosions: large explosions beyond the particle range appear as a flash, a fireball and a rising smoke column.
  • Driveables drawn to the chunk edge: driveables stay drawn as entities up to the edge of the vanilla chunks, where their far-terrain shapes take over, instead of disappearing at the vanilla entity distance.

Distant Horizons is optional and client-side for Flan's Mod. Nothing changes for players without it, and servers do not need it installed.

Requirements

  • Distant Horizons for your Flan's Mod Ultimate version (Forge 1.20.1 or NeoForge 1.21.1) providing API 5.1 or newer. Every 3.x release does. An older one is detected and logged, and the integration stays off.
  • For distant shapes: Distant Horizons rendering enabled, with its Generic Rendering option on (the default). Distant shapes are drawn through Distant Horizons' generic object renderer, the same one that draws its distant clouds and beacon beams.
  • For distant driveables and explosions from beyond the tracking range: a server running Flan's Mod Ultimate with distantContactsEnabled and distantExplosionRange allowing them (both are on by default).

Far-Terrain Rangefinding

The vehicle optics range readout measures loaded terrain and entities exactly, as before. When that measurement finds nothing before the first unloaded chunk, the ray carries on over Distant Horizons' terrain, up to the HUD's HUDMaxRange.

  • Such a range is approximate: Distant Horizons stores terrain in columns that grow coarser with distance, so the reading can be off by a few blocks far away. It is shown with a leading ~, for example ~2310.
  • The measurement runs on a background thread and takes a moment. With HUDRequireRangeKey true the readout shows ---- until it arrives; with a live readout the previous far reading stays on screen until the new one replaces it.
  • Entities beyond the loaded chunks are not measured, since the client does not have them. A ray that crosses terrain Distant Horizons has not generated yet finds nothing.
  • Nothing is loaded or generated in the vanilla world to make the measurement.

Distant Driveables

A driveable is drawn as a shape built from its damageable part boxes, the same boxes projectile tracing uses. Each part is cut into a few axis-aligned pieces along its length, so a turned fuselage stays slim rather than filling its whole diagonal. Shapes take the average colour of the driveable's skin, including its paintjob, and drop destroyed parts. Turrets of driveables the client tracks are drawn turned; those only the server reports are drawn facing forwards.

Two kinds of driveables are shown this way:

  1. Driveables the client tracks but no longer draws as entities because of their distance.
  2. Driveables beyond the entity tracking range, which the client knows nothing about by itself. A client with the integration enabled asks the server for them; the server then sends their type, paintjob, position, velocity and orientation every distantContactUpdateInterval ticks, and the client extrapolates their movement in between. Driveables only exist in loaded chunks, so in practice these are the vehicles of other players and those in force-loaded areas.

Where a shape is drawn depends on its distance:

  • Within the vanilla chunks, it is drawn by the mod itself, depth tested against the vanilla terrain like an entity. Distant Horizons draws before the vanilla terrain, which covers anything it drew there.
  • Beyond them, it is drawn by Distant Horizons, hidden by its terrain and fogged with it like the terrain itself.

In a FLIR thermal sight, distant driveables are drawn white-hot.

The positions the server sends could be read by a modified client as a radar. Servers where that matters can turn distantContactsEnabled off or lower distantContactRange.

Distant Explosions

Explosions send their particles to players within 256 blocks, or within their blast radius when larger. A player with the integration enabled who is farther away, but within distantExplosionRange, is sent the explosion instead, if its radius is at least distantExplosionMinRadius. The client shows:

  • a short white flash;
  • a fireball that cools from yellow to dark red, lasting longer for incendiary explosions;
  • a column of smoke puffs that rise, spread and fade, lingering longer after larger explosions. Incendiary explosions leave darker smoke.

At most 24 distant explosions are shown at once; the oldest makes way for a new one.

Driveables Drawn to the Chunk Edge

Driveables use the configured size-based entity render cutoff. Beyond that cutoff, contact shapes are drawn by Flan's Mod inside the vanilla chunks and by Distant Horizons on the far terrain. This preserves coverage when the render multiplier is reduced, provided contact rendering is enabled.

distantHorizonsDriveableRendering is an explicit optional extension: when on, full entities stay drawn to at least 16 blocks short of the effective chunk render distance (with a minimum of 64 blocks), even if their configured cutoff is shorter. It applies only while Distant Horizons is drawing shapes. New configurations default this option to off, so the render multiplier remains effective. Existing saved values remain in force. Server tracking and loaded chunks still limit full entities.

The Flan NPC distance controls work normally with Distant Horizons installed, but NPCs currently have no distant-contact proxy rendering.

Settings

Client settings, in the Distant Horizons section of the quick options screen (shown only while Distant Horizons is installed) and in flansmodultimate-client.toml:

Setting Default Purpose
distantHorizonsIntegration true Turns the whole integration on or off.
distantHorizonsRangefinder true Far-terrain rangefinding.
distantHorizonsContacts true Distant driveables.
distantHorizonsExplosions true Distant explosions.
distantHorizonsDriveableRendering false Explicitly extends the configured cutoff to the chunk edge; existing saved values are preserved.

Server settings, in the Distant Horizons Settings section of flansmodultimate-common.toml:

Setting Default Purpose
distantContactsEnabled true Sends players who ask for them the driveables beyond their tracking range.
distantContactRange 3072 Farthest such a driveable is sent, in blocks.
distantContactUpdateInterval 5 Ticks between two updates.
distantContactMaxCount 48 Most driveables sent to one player; the nearest are kept.
distantExplosionRange 4096 Farthest a distant explosion is sent, in blocks. 0 disables them.
distantExplosionMinRadius 1.5 Smallest explosion radius sent, in blocks.

See Mod Config for the full descriptions.

Notes

  • Only clients that ask for distant data receive it, so players without Distant Horizons cost the server nothing. The data is for display only and changes no gameplay.
  • Distant Horizons' own settings decide how far its terrain reaches; driveables and explosions beyond it are not drawn.
  • Running a development client with Distant Horizons: gradlew runClient -PwithDistantHorizons.

Clone this wiki locally