Skip to content

ZeWinny/zelthrSeeYou

Repository files navigation

zelthrSeeYou

A server-side Anti-ESP plugin for Paper servers that prevents players from using X-ray, ESP hacks, or texture pack exploits to see ores, containers, and other protected blocks through walls.

Built for the Zelthr server ecosystem.

Source: github.com/ZeWinny/zelthrSeeYou


How It Works

zelthrSeeYou uses a chunk-level block substitution approach:

  1. For each online player, the plugin scans protected blocks within a configurable chunk radius.
  2. For each block, it performs a line-of-sight raycast (rayTraceBlocks) from the player's eye position.
  3. Blocks that are not directly visible are replaced with fake block data sent via sendMultiBlockChange() — the actual world is never modified.
  4. When the player gains line-of-sight, the real block data is restored transparently.
  5. When a new chunk is sent to the player, protected blocks in that chunk are immediately hidden via packet interception.

Features

  • Server-side only — no client mod required
  • Chunk-based line-of-sight detection using rayTraceBlocks
  • Fake block packet injection — the world is never modified
  • Configurable protected block list (ores, containers, spawners, etc.)
  • Per-world enable/disable
  • Fake material substitution per environment (Overworld above/below y=0, Nether, End)
  • Automatic variant expansion — listing CHEST covers all chest types; SHULKER_BOX covers all colors; copper blocks cover all weathering stages
  • Supports both ProtocolLib and PacketEvents — uses whichever is available, disables itself if neither is found
  • Block updates (place/break) trigger immediate re-evaluation for nearby players

Requirements

Dependency Version
Paper API 26.1.2
Java 25
ProtocolLib or PacketEvents ProtocolLib 5.4.0 / PacketEvents 2.12.1

At least one of ProtocolLib or PacketEvents must be installed. The plugin will disable itself on startup if neither is found.


Installation

  1. Build the plugin jar (see Building) or download a release.
  2. Place the jar in your server's plugins/ folder.
  3. Ensure ProtocolLib or PacketEvents is also installed.
  4. Start the server — config.yml will be generated automatically.

Building

git clone https://github.com/ZeWinny/zelthrSeeYou.git
cd zelthrSeeYou
./gradlew build

Output jar will be in build/libs/. Requires Java 25. Uses paperweight-userdev for NMS access.


Configuration

# Enable or disable the plugin globally
enabled: true

# Worlds where Anti-ESP is active
enabled-worlds:
  - world
  - world_nether
  - world_the_end

# Blocks that will be hidden when not in line-of-sight
protected-blocks:
  - CHEST
  - TRAPPED_CHEST
  - BARREL
  - ENDER_CHEST
  - SHULKER_BOX
  - SPAWNER
  - TRIAL_SPAWNER
  - VAULT
  - COAL_ORE
  - DEEPSLATE_COAL_ORE
  - COPPER_ORE
  - DEEPSLATE_COPPER_ORE
  - DIAMOND_ORE
  - DEEPSLATE_DIAMOND_ORE
  - ANCIENT_DEBRIS
  - GOLD_ORE
  - DEEPSLATE_GOLD_ORE
  - IRON_ORE
  - DEEPSLATE_IRON_ORE
  - REDSTONE_ORE
  - DEEPSLATE_REDSTONE_ORE
  - LAPIS_ORE
  - DEEPSLATE_LAPIS_ORE
  - EMERALD_ORE
  - DEEPSLATE_EMERALD_ORE
  - NETHER_GOLD_ORE
  - NETHER_QUARTZ_ORE
  - GILDED_BLACKSTONE

# Radius in chunks around the player where blocks are always evaluated
reveal-chunk-radius: 3

# How often in ticks to recalculate line-of-sight per player (minimum: 1)
update-interval-ticks: 4

# Maximum block changes sent to a player per update cycle (minimum: 16)
max-changes-per-update: 256

# What material to substitute for hidden blocks, per environment
fake-materials:
  overworld-above-zero: STONE
  overworld-below-zero: DEEPSLATE
  nether: NETHERRACK
  end: END_STONE

Performance

rayTraceBlocks is CPU-intensive and runs every update-interval-ticks ticks for every online player. Tuning update-interval-ticks (default: 4) is the most effective way to reduce overhead. max-changes-per-update caps how many block changes are sent per cycle if a player has many blocks entering or leaving line-of-sight at once.

See a real-world spark profiler report for a performance sample.


License

MIT

About

Server-side Anti-ESP plugin for Paper — hides ores and containers from X-ray using line-of-sight detection

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages