- PacketEvents
- LuckPerms (optional)
- PlaceholderAPI (optional)
- Download ExtendedHorizons.jar
- Download dependencies
- Put all of them inside your
/pluginsfolder - Start your server — done
- All texts are in messages.yml, with MiniMessage support.
- The welcome message is controlled by
messages.welcome-message.enabledin config.yml, and its text is in messages.yml.
Alias base: /eh (also: extendedhorizons, horizons, viewdistance, vd)
| Command | Description | Permission |
|---|---|---|
/eh help |
General help | extendedhorizons.use |
/eh info |
Plugin information and your current distance | extendedhorizons.use |
/eh view |
Shows your current distance | extendedhorizons.use |
/eh setme <distance> |
Sets your distance | extendedhorizons.use |
/eh reset |
Resets your distance to default | extendedhorizons.use |
/eh check <player> |
Checks another player's distance | extendedhorizons.admin |
/eh setplayer <player> <distance> |
Sets another player's distance | extendedhorizons.admin |
/eh resetplayer <player> |
Resets another player's distance | extendedhorizons.admin |
/eh reload |
Reloads settings | extendedhorizons.admin |
/eh stats |
Displays statistics | extendedhorizons.admin |
extendedhorizons.use— player commandsextendedhorizons.admin— admin commandsextendedhorizons.bypass.limits— ignores boundaries when setting distancesextendedhorizons.max.<distance>— set max distance for a player
If integrations.luckperms.enabled is true, the plugin will check limits per group/player.
You can combine it with use-group-permissions and your group policies.
%extendedhorizons_view_distance%— current effective distance
ExtendedHorizons provides a comprehensive API for other plugins to interact with fake chunks.
- Full API Documentation - Complete guide with examples
- Example Plugin - Working example showing all API features
// Access the API
ExtendedHorizonsAPI api = ExtendedHorizonsPlugin.getService(ExtendedHorizonsAPI.class);
// Check if player is looking at a fake chunk
int chunkX = player.getLocation().getBlockX() >> 4;
int chunkZ = player.getLocation().getBlockZ() >> 4;
if (api.isFakeChunk(player, chunkX, chunkZ)) {
player.sendMessage("You're in a fake chunk!");
}
// Get all fake chunks for a player
Set<ChunkCoordinate> chunks = api.getFakeChunksForPlayer(player);
player.sendMessage("Loaded: " + chunks.size() + " fake chunks");FakeChunkLoadEvent- When a fake chunk is loaded (cancellable)FakeChunkUnloadEvent- When a fake chunk is unloadedFakeChunkBatchLoadEvent- When multiple chunks are loaded at once
See API-USAGE.md for complete documentation.
- Report issues and suggestions in the repository’s Issues section.
- Join our Discord: discord.gg/yA3vD2S8Zj



