Compatibility
Minecraft: Java Edition
26.3
26.2
26.1.x
1.21.x
1.20.x
1.19.x
Platforms
Tags
Creators
Details
Licensed MIT
Published 5 months ago
Updated 5 hours ago

Need a server?
Click the banner below and use code FLEOX for 30% off your first 2 billing cycles with Alyrix Cloud:

Alyrix Cloud
Protect underground bases, caves, and hidden structures from players using FreeCam / X-Ray / Block ESP mods. FPAntiFreeCam intercepts outgoing packets and replaces underground blocks with air so FreeCam users see nothing but void below the surface.
š Dependencies
FPAntiFreeCam requires the following plugin to be installed on your server:
- PacketEvents 2.x ā Required for packet interception & protocol handling.
⨠Features
- šļø Anti-FreeCam / Anti-Xray ā hides all underground blocks via packet manipulation.
- š¦ Entity hiding ā conceals mobs, item frames, and farms inside protected zones.
- š Update checker ā notifies admins in-game and in console when a new version is available.
- ā” Async & optimized ā tick-batched chunk refreshes, minimal performance impact.
- š Universal platform support ā Paper, Purpur, Spigot, Bukkit & Folia (multi-threaded region-aware scheduling).
- š± Bedrock support ā Geyser / Floodgate compatible.
š„ļø Commands
| Command | Description | Permission |
|---|---|---|
/fpac reload |
Reload the config | fpantifreecam.admin |
/fpac stats |
Show live plugin stats | fpantifreecam.admin |
/fpac debug |
Toggle debug logging | fpantifreecam.admin |
/fpac world <add|remove> <world> |
Add/remove a protected world | fpantifreecam.admin |
/fpac bypass <player> |
Toggle bypass for a player | fpantifreecam.admin |
/fpac help |
Show command help | fpantifreecam.admin |
/fpreload |
Quick config reload shortcut | fpantifreecam.admin |
/fpdebug |
Quick debug toggle shortcut | fpantifreecam.admin |
Aliases: /fpafc, /antifreecam, /fpacreload, /fpacdebug
š Permissions
| Permission | Description | Default |
|---|---|---|
fpantifreecam.admin |
Full access to all commands | OP |
fpantifreecam.reload |
Reload configuration | OP |
fpantifreecam.debug |
Toggle debug mode | OP |
fpantifreecam.world |
Manage protected worlds | OP |
fpantifreecam.bypass |
Exempt from protection (staff/builders) | ā |
āļø Config
Click to expand config.yml
# āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
# FPAntiFreeCam configuration
# Anti-FreeCam protection for Spigot, Paper and Folia (1.19 - 26.1+)
# Apply changes with /fpac reload.
# āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
# Do not change this manually.
config-version: 5.3
# āā General āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
settings:
# Check for updates on startup and tell admins on join.
update-checker: true
# Language file to use, from plugins/FPAntiFreeCam/lang/<language>.yml
language: "en"
# Print debug info to console. Keep false on a live server.
debug-mode: false
# Minimum seconds between chunk refreshes for one player.
# Stops refresh spam when someone keeps crossing protection-y.
refresh-cooldown-seconds: 3
# āā Worlds āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
# Worlds where underground hiding is active.
# Avoid the Nether and End, they can cause visual glitches.
worlds:
list:
- "world"
# - "survival"
# āā Protection āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
# How the Y levels fit together (defaults):
#
# protection-y 64 At or above this, everything below void-y is hidden.
# deep-deactivation-y 20 Below this, protection is always off.
# void-y 15 Blocks at or below this are what gets hidden.
#
# Between deep-deactivation-y and protection-y, protection turns on only
# when the player looks upward or has an open path up to the surface.
# Rule: void-y < deep-deactivation-y < protection-y
protection:
# Roughly your world's surface height (64 for a normal overworld).
protection-y: 64.0
# How far below protection-y a player must go before protection turns
# off again. Stops flickering when jumping around at the surface.
hysteresis-y: 2.0
# Blocks at or below this Y are hidden. Set it about 5 blocks above
# the highest point of the bases you want to protect.
void-y: 15
# Different void-y per world. Worlds not listed use void-y above.
# per-world-void-y:
# resource_world: 20
# Players below this Y always have protection off.
deep-deactivation-y: 20.0
# Also hide chests, signs, spawners, mobs, items, particles and sounds
# inside hidden areas. Stops the F3 pie chart and ESP mods from
# finding bases. Keep this on.
pie-chart-protection: true
# Smart Fill reveal: how much of the real cave around a player is shown.
# Only used when replacement.smart-fill.enabled is true.
smart-fill:
# Everything within this many blocks of the player is shown as real.
reveal-radius: 28
# Open space in the direction the player is looking is shown as real
# up to this many blocks away.
look-distance: 48
# Seconds an area stays real after the player leaves it, so it doesn't
# flicker when they move back and forth. 0 = switch back instantly.
# Very high values make it easier to scout a base and freecam back later.
recently-revealed-ttl-seconds: 45
# Show caves as far as the player can actually see across them, so big
# caverns don't show a wall of fake stone. Walls still block the view,
# so bases behind them stay hidden.
reveal-line-of-sight: true
# Don't see further than the player's render distance.
reveal-follow-render-distance: true
# Maximum line-of-sight distance in blocks (32-256).
reveal-max-distance-cap: 128
# Blocks checked per player each second for line of sight.
# Lower this if it costs too much server time.
reveal-sight-budget: 60000
# āā What hidden blocks look like āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
replacement:
# Block shown instead of hidden blocks when Smart Fill is off.
block-type: "air"
# Smart Fill: fill hidden areas with stone, deepslate and ores copied
# from nearby terrain, so they look like normal rock instead of a void.
smart-fill:
enabled: true
# Keep hiding distant caves while players are underground, not only
# while protection is on at the surface.
always-on: true
# Use plain hiding (below void-y) for Bedrock players instead of Smart
# Fill. Smart Fill re-sends chunks as players move, which Bedrock
# (Geyser) shows as glitchy chunk reloads. Needs Geyser or Floodgate.
disable-for-bedrock: true
# Top Y of the area Smart Fill hides. Defaults to protection-y.
# ceiling-y: 64
# How many 16-block layers above and below to copy blocks from (0-4).
sample-radius-sections: 1
# Max different block types used in the fill (2-16).
max-palette-size: 6
# Block used when there is no nearby terrain to copy from.
fallback-block: "stone"
# Small enclosed rooms near the surface (PvP arenas, crystal holes)
# are left alone instead of being filled. Note: a small, low hidden
# room near the surface would be left alone too.
surface-structures:
# Only rooms with their roof at or above this Y.
min-y: 30
# Only rooms at most this many blocks tall (1-32).
max-pocket-height: 10
# āā Entities āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
entities:
# Hide mobs, item frames, minecarts etc. inside hidden areas
# (mob farms, storage mobs) from protected players.
hide-entities: true
# āā Notifications āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
notifications:
action-bar:
# Show an action bar message while a player is protected.
enabled: false
message-active: "&cā FreeCam Protected"
# āā Anti-cheat āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
anti-cheat:
freeze-detection:
# Warn in console when a protected player hasn't moved for this
# many seconds (can mean a position-spoofing freecam).
enabled: false
seconds: 30
# āā Performance āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
performance:
# Paper/Spigot: max chunks refreshed per tick (1-500).
max-chunks-per-tick: 40
# Folia: max chunks re-sent to one player per tick (1-64). Smart Fill
# refreshes are spread out over ticks so they don't flood the network.
max-chunks-per-player-per-tick: 8
# When a player comes near protection-y, refresh a large radius at once
# so there is no moment where real blocks show.
instant-protection:
enabled: true
force-immediate-refresh: true
# Chunk radius to refresh.
instant-load-radius: 14
# How many blocks above protection-y this starts.
pre-load-distance: 10
# Only refresh chunks within this radius when protection changes.
# Chunks further out can briefly show real blocks until they reload.
# Leave off unless you need the performance.
limited-area:
enabled: false
chunk-radius: 4
# āā Freecam mod detection āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
# On join, a hidden anvil opens for a split second to check if the
# player's client has the Freecam mod installed. Only runs once per join.
# Test it with a real Freecam client before using a ban command.
freecam-detection:
enabled: true
# Ticks the hidden anvil stays open (20 ticks = 1 second).
probe-timeout-ticks: 5
# Print debug info about each check to console.
debug: false
# Console commands run when a player is detected, in order.
# Placeholders: %player%, %uuid%, %key%
detected-commands:
- "kick %player% &cFreecam detected"
# - "ban %player% Freecam detected"
# Alert staff with the fpantifreecam.alerts permission and the console.
alerts-enabled: true
alert-message: "&8[&cFPAntiFreecam&8] &e%player% &7was flagged for &cFreecam &7(&8%key%&7)"
š Statistics
š¬ Support
Secure what players shouldn't see.


