AntiBase is a lightweight obfuscation plugin for Paper servers designed to hide underground bases and caves from X-ray and Freecam. Unlike simple proximity systems, it scans what a player can actually reach or see and hides everything else in outgoing packets. World files are never touched.
AntiBase intercepts outgoing packets to hide underground structures and entities:
- Visibility Scanning:
connectedmode (default) floods through open space so entire connected caves are preloaded before you walk in, including rooms around corners.line-of-sightmode keeps the old ray method if you want stronger corner hiding. - Occlusion: hidden blocks are sent as AIR in initial chunks. Once a block is known hidden on the client, further updates for it are just suppressed.
- Entity Hiding: players and mobs without actual line of sight are removed from the tracker. Players stay in the TAB list.
- Connected Flood Engine: sealed rooms stay hidden, connected caves load ahead of room entry. Solid full blocks stop the flood.
- Partial Blocks: slabs, stairs, walls, doors, fences and chests keep their gaps. A block only counts as solid if it fully supports all six faces.
- Terrain Padding: preloads a configurable number of solid layers behind visible terrain (default 2) so fast mining doesn't flash unrendered blocks.
- Explosions & Falling Blocks: crystal blasts and gravel/sand columns update nearby observers without canceling running scans.
- Entity Checks: sight is checked per entity height, so an Enderman head poking over a wall shows but the same wall still hides a minecart.
- Dynamic Radius: scans up to 96 blocks around the player (default 64), only reading loaded chunks.
- Packet-Level: no modifications to world files or block data on disk.
- Debug Mode: action bar stats via
/antibase debug, console capture via/antibase debug on [player].
- Drop AntiBase.jar into your
pluginsfolder. Requires Paper or Folia 26.2, Java 25 and PacketEvents 2.14.0 as a separate plugin. - Restart the server.
- Configure
hide-below-yin theconfig.yml(default is 0).
enabled: true
render-mode: connected # connected (default) or line-of-sight
hide-below-y: 0 # obfuscation starts below this Y level
terrain-padding: 2 # extra solid layers behind visible terrain (0..4)
scan-radius: 64 # scan reach, connected mode rounds up to whole sections
max-scan-blocks: 50000 # line-of-sight mode only
max-ray-steps: 2000000 # line-of-sight mode only
console-debug: false # periodic console summaries
blacklisted-worlds:
- world_nether
- world_the_endOld proximity-distance and replacement-block settings are ignored (hidden terrain is always AIR now).
/antibaseor/antibase status— current mode and queue info (antibase.admin)/antibase enable//antibase disable— toggle obfuscation (antibase.admin)/antibase debug— toggle action bar stats (antibase.debug)/antibase debug on [player]/off/status— console capture (antibase.admin)
Permissions default to operators.
./gradlew clean build with JDK 25. This compiles the plugin and runs the unit + regression tests. There are also gradle tasks for the cave simulation (caveSimulation), the old-method baseline (caveBaseline), the visibility benchmark (visibilityBenchmark) and an optional real-Paper chest state check (paperChestVerification). GitHub Actions builds and tests on Linux and Windows.
Requires Paper 26.2 and PacketEvents 2.14.0. Folia is supported.