See farther without turning your game into a slide show.
What is Distant Horizons?
Distant Horizons is a mod which implements a Level of Detail system to Minecraft.
This allows for far greater render distances without harming performance by gradually lowering the quality of distant terrain.
Below is a video demonstrating the system:
Translations
Crowdin Project: Distant Horizons
Guidelines: translations.md
Source Code Installation
Prerequisites
- A Java Development Kit (JDK) for Java 25 (recommended) or newer.
Visit https://www.oracle.com/java/technologies/downloads/ for installers. - Git or someway to clone git projects.
Visit https://git-scm.com/ for installers. - (Not required) Any Java IDE with plugins that support Manifold, for example IntelliJ IDEA.
If using IntelliJ:
- Install the Manifold plugin
- Open IDEA and import the build.gradle
- Refresh the Gradle project in IDEA if required
Switching Versions
To switch between different Minecraft versions, change mcVer=1.? in the gradle.properties file.
If running in an IDE, to ensure the IDE noticed the version change, run any gradle command to refresh gradle.
In IntelliJ, you will also need to do a gradle sync if it didn't happen automatically.
Compiling
Prerequisites:
- JDK 25 or newer
From the command line:
git clone --recurse-submodules https://gitlab.com/distant-horizons-team/distant-horizons.gitcd distant-horizons./gradlew assemble- The compiled jar file will be in the folder
\build\libs
From the File Explorer:
- Download and extract the project zip
- Download the core from https://gitlab.com/distant-horizons-team/distant-horizons-core and extract into a folder called
coreSubProjects - Open command prompt/terminal in the project folder
- Run the commands:
./gradlew assemble - The compiled jar file will be in the folder
\build\libs
Note: You can add the argument
-PmcVer=?to tell gradle to build a selected MC version instead of having to modify thegradle.propertiesfile.
For example:./gradlew assemble -PmcVer=1.18.2
Other commands
Run the standalone jar: ./gradlew run
Build the standalone jar: ./gradlew core:build
Only build Fabric: ./gradlew fabric:assemble or ./gradlew fabric:build
Only build Forge: ./gradlew forge:assemble or ./gradlew forge:build
Run the Fabric client (for debugging): ./gradlew fabric:runClient
Run the Forge client (for debugging): ./gradlew forge:runClient
Delete all compiled code: ./gradlew clean
Refresh local dependencies: ./gradlew --refresh-dependencies
To build all versions: ./buildAll
Open Source Libraries
Forgix (To merge multiple mod versions into one jar) [Formerly DHJarMerger]
https://github.com/PacifistMC/Forgix
LZ4 for Java (data compression)
https://github.com/lz4/lz4-java
NightConfig for JSON & TOML (config handling)
https://github.com/TheElectronWill/night-config
SVG Salamander for SVG support (not being used atm)
https://github.com/blackears/svgSalamander
sqlite-jdbc
https://github.com/xerial/sqlite-jdbc
Acknowledgements
Distant Horizons has been graciously provided an open source license for YourKit Java Profiler.
![]()
YourKit supports open source projects with innovative and intelligent tools for monitoring and profiling Java and .NET applications. YourKit is the creator of YourKit Java Profiler, YourKit .NET Profiler, and YourKit YouMonitor.

