
ExtendedHorizons is a high-performance view-distance extension plugin for modern Paper/Folia servers.
It renders distant terrain using optimized fake chunks and optional far-player sync, so players can see farther than vanilla without the usual server overhead.
Build this project with this command:
./gradlew shadowJar
The artifact will be generated in build/libs/ExtendedHorizons-{version}.jar ready to use!
ExtendedHorizons is built entirely with WinterFramework (Guice), so you can inject its services directly or resolve them statically.
Add this to your plugin.yml or paper-plugin.yml:
depend:
- ExtendedHorizons
You can access services natively through the Guice Injector provided by WinterFramework:
import me.mapacheee.extendedhorizons.ExtendedHorizonsPlugin;
import me.mapacheee.extendedhorizons.config.ConfigFacade;
import me.mapacheee.extendedhorizons.fakechunks.session.SessionRegistry;
import org.bukkit.plugin.java.JavaPlugin;
ExtendedHorizonsPlugin eh = JavaPlugin.getPlugin(ExtendedHorizonsPlugin.class);
// Retrieve via standard Guice Injector:
SessionRegistry sessionRegistry = eh.getInjector().getInstance(SessionRegistry.class);
// Or via the static helper:
sessionRegistry = ExtendedHorizonsPlugin.getService(SessionRegistry.class);
java
PlayerSession session = sessionRegistry.ensureFor(player, false);
session.playerOverrideDistance(64); // See up to 64 fake chunksworld-settings or permissions.
java
PlayerSession session = sessionRegistry.get(player.getUniqueId());
if (session != null) {
session.resetPlayerOverrideDistance();
}configFacade.get().trackedFarPlayers() from a PlayerSession to see exactly which entities are being simulated locally.To contribute to this project, just follow this steps: - Fork repository. - Make ur changes. - Make sure your changes work. - Create a pull request explaining what you've done!
Every contribution is welcome and appreciated!
$ claude mcp add ExtendedHorizons \
-- python -m otcore.mcp_server <graph>