ExtendedHorizons
Extend view distance with optimized fake chunks and far-player sync.
Install / Use
/learn @Mapacheee/ExtendedHorizonsREADME
What is ExtendedHorizons?
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.
Dependencies
- PacketEvents
- PlaceholderAPI (optional)
- TheWinterFramework (shaded in artifact)
How to build
Build this project with this command:
./gradlew shadowJar
The artifact will be generated in build/libs/ExtendedHorizons-{version}.jar ready to use!
For developers
You can access ExtendedHorizons services directly via injector.
Add this to your plugin.yml:
softdepend: [ExtendedHorizons]
Resolve services like this:
import me.mapacheee.extendedhorizons.ExtendedHorizonsPlugin;
import me.mapacheee.extendedhorizons.chunk.FakeChunkService;
import me.mapacheee.extendedhorizons.config.ConfigService;
import org.bukkit.plugin.java.JavaPlugin;
ExtendedHorizonsPlugin eh = JavaPlugin.getPlugin(ExtendedHorizonsPlugin.class);
FakeChunkService fakeChunkService = eh.getInjector().getInstance(FakeChunkService.class);
ConfigService configService = eh.getInjector().getInstance(ConfigService.class);
You can find a ready-to-use integration example in the examples directory.
What you can do through these services:
- Get the advertised distance for a player with
FakeChunkService#getAdvertisedDistance(UUID). - Apply or override player distance with
FakeChunkService#applyDistancePreference(Player, int). - Trigger fake-chunk refresh for changed chunks with
FakeChunkService#handleRealChunkInteraction(World, int, int)orFakeChunkService#handleRealChunkInteraction(UUID, int, int). - Read runtime config with
ConfigService#get(). - Check feature flags from config like
fakeChunksEnabledForWorld(worldName)andfarPlayersEnabled().
Contribute
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!
Support
- Report issues and suggestions in the repository’s issues section.
- Join our Discord: discord.gg/yA3vD2S8Zj
- Consider donate: PayPal
