Tags
Creators
Details
Licensed MIT
Published 6 months ago
Updated 5 days ago
All versions
1.5.3
Release
FP's AntiFreecam 1.5.3last week 143
Compatibility
Minecraft: Java Edition
26.3
26.2
26.1.x
1.21.x
1.20.x
1.19.x
Platforms
Bukkit
Folia
Paper
Purpur
Spigot
Required content
Any compatible version
Changes
FPAntiFreeCam 1.5.3
New
- Line-of-sight Anti-Xray. Ores are sent to the client as the rock around them (stone, deepslate, tuff, netherrack, ...) until the player can actually see them. Xray packs and Xray mods see plain rock where the ores are hidden.
- Every exposed ore face is tested from the player's eye and from the F5 front/back camera. A camera clipped into a wall can't see through it.
- Ores within a few blocks are always shown, and ores next to a block you break are checked straight away, so you never mine into fake stone.
- Once seen, an ore stays real until you move away (
forget-distance), so nothing flickers back to stone. - Per-world block lists and height ranges under
anti-xray.worlds. Defaults cover all Overworld and Nether ores. Nether / End worlds with any name use thenether/the_endentries. The End entry includes shulker boxes (off by default). - Hidden chests and shulker boxes don't leak their block entity data (position, custom name) until revealed.
- Smart Fill never uses a hidden ore as fill material.
- Paper anti-xray is handled automatically. If Paper's built-in anti-xray is on in any world, ours turns itself off and saves
anti-xray.enabled: false, so fake ores never stack. Admins get a join warning (turn it off withanti-xray.paper-anti-xray-warning: false). - Entity hiding modes (
entities.hide-mode):chunk(default): entities are hidden inside areas Smart Fill hides and shown once their spot is revealed. Light on CPU.raycast: also hides entities behind walls (ESP blocker), like Anti-Xray does for ores. Costs more CPU. Settings are underentities.line-of-sight.
- Raycast mode details:
- Entities within
always-show-radius(8) are always shown, and stay shown forhide-delay-ms(1.5 s) after going out of sight, so nothing flickers at corners. - Moving entities are tested a little ahead, so they don't pop in around corners.
- Your vehicle and passengers, leashed mobs, your own projectiles, glowing entities and anything in combat with you (3 s) are never hidden.
never-hidelists projectiles, bosses and lightning. - New entities are held back until the first check says they're visible. F5 aware (
f5-aware). - Players can be hidden too (
include-players, off by default). Done at packet level, so the tab list never changes and other plugins still see them as visible. Never while thelocatorBargamerule is on.
- Entities within
- Smart Fill follow-terrain (
replacement.smart-fill.follow-terrain, off by default). Hides caves and bases inside hills and mountains aboveceiling-ywhen at leastmin-cover(6) natural blocks are above them. Builds and trees never count as cover. The 3 blocks in from cliff faces and cave mouths stay real. Overworld only. - Split bypass permissions.
fpantifreecam.bypass.freecam,.bypass.xrayand.bypass.entitiesbypass one feature each.fpantifreecam.bypassstill bypasses all, and setting one node tofalseturns that part back on (e.g.bypass+bypass.freecam: false= everything but FreeCam). - Cleaner
/fpac stats. Grouped into Server / Protection / Smart Fill / Anti-Xray / Entities / Traffic, one setting per row, short numbers (12.3k). - Freecam mod detection uses a sign instead of an anvil. On join, a hidden sign editor opens and closes in the same tick, so players don't see a GUI, and the client always sends its answer (the anvil sometimes didn't).
- Works on Spigot too, not only Paper. On Paper the sign goes through the server's own API, so ViaVersion converts it for older and newer clients (tested: 1.21.11 client on a 26.2 server).
- One sign checks four Freecam keys at once, covering old (1.3 and older) and new (1.4+) Freecam versions. A player is flagged when any key comes back translated, in any client language.
- The sign sits inside the ground under the player, and the real block is sent back right after. The answer is caught before the server sees it, so no real sign is changed.
- Waits for another plugin's menu (login, captcha) to close first, so it never closes it.
- With
freecam-detection.debug: truethe editor stays open for 1 second and each step is logged.
Changed
- Smart Fill reveals much less. Only the air a player can walk or see into within
reveal-radiusis real, plus a 2-block wall around it. A base behind 5+ blocks of rock stays hidden even when close.- New
near-radius(6): everything this close is always real, so mining never hits fake stone. - The look cone no longer reveals through rock. Line of sight works in 4×4×4 areas; whole sections only past 48 blocks.
- In huge caverns or next to unloaded chunks the old full sphere still applies.
- New
- Fake rock matches its surroundings. Each 4×4×4 area uses the most common real rock there, instead of a random mix of the whole layer.
- Water and lava under a roof (aquifers, lava lakes, flooded caves) are hidden like cave air. Oceans, lakes, rivers, ice and mangrove swamps are never touched.
recently-revealed-ttl-secondsdefault is now 20 (was 45).look-distanceonly decides how far ahead chunks are refreshed. It no longer reveals anything by itself.- Anti-Xray
hidden-oresis nowhidden-blocks(renamed automatically). /fpac reloadlists every feature and where it's on: protection worlds and Y, Smart Fill (ceiling and follow-terrain), Anti-Xray worlds, entity hiding mode and the Freecam mod check.freecam-detection.probe-timeout-ticksdefault is now 60 (was 5), and it never waits less than that. Right after join the ping often reads 0, so 5 ticks gave up before slower clients answered.- Shorter, clearer
config.ymlcomments, including whatprotection-yandceiling-yeach do. The bStats line is no longer printed on startup.
Performance
- Anti-Xray reveals are sent as block-change packets per chunk section, never whole chunks. Sections with no hidden ore are skipped. Checks run every 5 ticks with a step budget (
ray-budget), nearest first, and are skipped while the player stands still. Bedrock players get at most 256 reveals per check. - Faster block reads for all line-of-sight checks on Paper.
/fpac statsshowsfast reads on/off. - Smart Fill: no memory allocation on the network thread. At most 8 area checks start per pass, players in the same block share one, players high above
ceiling-yskip it, and it refreshes every 15 s while you stand still. - Chunks are only re-sent when part of their fake rock is actually revealed.
- Entity hiding only checks entities inside their tracking range. Pairs where nothing moved are re-tested less often, and checks are spread over two passes.
- Chunk mode only re-checks entities that are hidden. Hidden mobs that didn't move are fully re-checked every 2 s, leash checks only run for mobs close by, and validity checks run once a second. Helps a lot with thousands of hidden mobs.
- Bypass permissions are checked at most once a second per player.
- Follow-terrain height lookups are cached per chunk (about 1% CPU less on a weak host).
Bug fixes
- Smart Fill and Anti-Xray share the same line-of-sight code and safety checks (no chunk loads, no reading other Folia regions).
- An error in Anti-Xray can no longer stop the plugin from enabling, or skip FreeCam hiding on a packet.
- Folia: repeating tasks were never cancelled on
/fpac reloadand piled up with each reload. Per-player work, the reload / world / bypass commands, teleports, dismounting and the join check now run on the player's own thread. If a Folia scheduler call fails, the task is skipped with a warning instead of a second error. - 1.21+ / 26.x: action bar messages no longer depend on a deprecated Paper method.
- A PacketEvents that's too old now gives one clear "update PacketEvents" message instead of a long error.
- Mobs in a revealed cave were shown even with solid rock in between.
- Mobs (bats, etc.) inside Smart Fill rock between
void-yandceiling-ywere not hidden. - Smart Fill now updates straight away when a wall opens from another player, an explosion (the whole blast), a piston, fire, melting ice, falling blocks, endermen or plugins like WorldEdit, and catches turns during its cooldown.
- After a block change near
ceiling-y, fake rock could appear over shallow water or in the wrong rock type. - Follow-terrain: strips of open cave at chunk edges in mountains when the next chunk wasn't loaded yet.
Notes
- Config updates to
config-version: 5.8automatically. New settings are added and your existing ones are kept. Arecently-revealed-ttl-secondsstill on the old default 45 becomes 20.hidden-oreslists are renamed tohidden-blocks. - OPs no longer bypass protection automatically.
fpantifreecam.adminno longer includes any bypass permission. Givefpantifreecam.bypass(or a.bypass.*node) to staff who should be exempt. - Supports Spigot, Paper and Folia, Minecraft 1.19 – 26.3, Java 17+. Requires PacketEvents 2.11.0 or newer.
- Freecam mod detection can't see players with mods that block this check (ExploitPreventer, ModDetectionPreventer), or most likely clients older than 1.20, where the sign editor doesn't translate its text. They are never flagged by mistake, just not caught. Bedrock players are skipped.
- Tested on Spigot, Purpur and Folia, 1.19 – 26.3.
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:NodGIhss:XOJiZE6A"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:NodGIhss:XOJiZE6A"
}

