Skip to content

Mapacheee/ExtendedHorizons

Repository files navigation

Gemini_Generated_Image_knhvbtknhvbtknhv
fondo
2025-10-25_09 24 09
2025-10-26_09 03 15(1)(1)

Dependencies


Installation

  1. Download ExtendedHorizons.jar
  2. Download dependencies
  3. Put all of them inside your /plugins folder
  4. Start your server — done

Config

# Global view distance limits and defaults
# Note: The minimum distance is automatically set to the server's view-distance from server.properties
view-distance:
  max-distance: 64
  default-distance: 32

# Per-world settings (optional)
# If a world is not listed here, it will use the global settings above
# You can configure each world independently
world-settings:
  # Example: Limit view distance in the Nether
  # world_nether:
  #   enabled: true           # Enable/disable fake chunks for this world
  #   max-distance: 32        # Maximum view distance for this world
  
  # Example: Disable fake chunks in the End
  # world_the_end:
  #   enabled: false
  #   max-distance: 64

# Performance settings
performance:
  # Maximum chunks to load per tick (for async loading)
  max-chunks-per-tick: 20
  
  # Number of threads for parallel chunk processing (0 = auto-detect based on CPU cores)
  # Recommended: 0 (auto) or 4-8 for most servers
  chunk-processor-threads: 0

  # Fake chunks system (packets cache)
  fake-chunks:
    # Enable packet cache system
    enabled: true
    # Maximum cached packets (5000 = ~150MB)
    max-cached-packets: 5000
    # Enable GZIP compression for packets (slower but saves RAM)
    use-compression: false
    # Cache cleanup interval in seconds
    cache-cleanup-interval: 20
    # Enable NMS chunk memory cache (reuses loaded chunks, saves CPU but uses RAM)
    # Recommended: true for <50 players, false for >100 players or low RAM servers
    enable-memory-cache: true
    # Maximum chunks to cache in memory (1000 = ~40-80MB depending on chunk complexity)
    # Increase for more players in same area, decrease for dispersed players or low RAM
    max-memory-cache-size: 1000

# Database (SQLite) used for player view persistence
database:
  enabled: true
  file-name: "extendedhorizons"

integrations:
  placeholderapi:
    enabled: true
  luckperms:
    enabled: true
    check-interval: 60 # seconds
    use-group-permissions: true

# Message toggles (actual texts live in messages.yml)
messages:
  welcome-message:
    enabled: true

Messages

  • All texts are in messages.yml, with MiniMessage support.
  • The welcome message is controlled by messages.welcome-message.enabled in config.yml, and its text is in messages.yml.

Commands

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

Permissions

  • extendedhorizons.use — player commands
  • extendedhorizons.admin — admin commands
  • extendedhorizons.bypass.limits — ignores boundaries when setting distances

LuckPerms Integration

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.


Placeholders (PlaceholderAPI)

  • %extendedhorizons_view_distance% — current effective distance

Operation

  • Distance is managed per player with global limits configured in config.yml
  • Dual chunk system:
    • Real chunks (within server view-distance): Managed naturally by the server
    • Fake chunks (beyond server view-distance): Sent via packet cache when fake-chunks.enabled: true
  • The server's view-distance (from server.properties) acts as the boundary between real and fake chunks
  • All chunk processing is done 100% asynchronously to maintain server performance
  • LRU cache system automatically manages memory with configurable limits
  • PacketEvents is required
  • Fully compatible with Paper 1.21+

Support

  • Report issues and suggestions in the repository’s Issues section.
  • Join our Discord: discord.gg/yA3vD2S8Zj

photo-collage png(1)(1)

About

The best high-performance per-player view distance via Packets!

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •  

Languages