Tags
Creators
Details
1.5.2
Compatibility
Required content
Changes
โจ New Feature
Smart Fill: line-of-sight reveal
Smart Fill now reveals caves based on what you can actually see. Once a second, the plugin casts rays from your eyes and reveals every cave section they pass through, out to your render distance (or reveal-max-distance-cap, default 128 blocks). Large caverns are now revealed across their full width instead of ending in a wall of fake stone partway across. Walls and corners still block the view, so bases behind them stay hidden. The close-range reveal around you works as before.
New settings in protection.smart-fill:
reveal-line-of-sight: turn the ray sweep on or off (defaulttrue)reveal-follow-render-distance: limit the sweep to your render distance (defaulttrue)reveal-max-distance-cap: hard cap in blocks, 32 to 256 (default128)reveal-sight-budget: max blocks checked per player per second (default60000)
Other new settings
replacement.smart-fill.disable-for-bedrock(defaulttrue): Bedrock players (Geyser/Floodgate) get plain hiding below void-y instead of Smart Fill. Smart Fill re-sends chunks as players move, and Bedrock shows those re-sends as glitchy chunk reloads. Java players keep Smart Fill. Set this tofalseto give Bedrock players Smart Fill again.performance.max-chunks-per-player-per-tick(default8, range 1-64): how many chunks one player can be sent per tick on Folia. Lower it if the network is still busy, or raise it if caves take too long to appear.
๐งฉ Compatibility
- Supports Paper, Folia, Purpur and Spigot, 1.19 โ 26.3.
- Spigot support fixed: the plugin used to crash on plain Spigot. It now works there, with these differences:
- Chunk refreshes use the server's view distance instead of each player's.
/fpac statsshows TPS as N/A.- Freecam mod detection is turned off, because it needs Paper.
- Requires PacketEvents 2.11.0 or newer. Use the PacketEvents version that matches your Minecraft version (for example 2.14.0+ for 26.3).
โก Performance
- Smart Fill no longer slows down the network or raises ping on busy servers. Smart Fill refreshes used to go to every nearby player, not just the one who needed them, so with many players in one area chunk traffic grew far faster than the player count. Each refresh now goes only to the player it's for, on Paper, Spigot and Folia.
- Folia: Smart Fill chunk refreshes are spread over several ticks with a per-player limit, instead of being sent in one large burst.
- Smart Fill remembers which chunks were sent to each player with hidden blocks in them, and only re-sends a chunk when the player has moved or turned enough to reveal something new. These records are cleared when a chunk unloads on the client, and on respawn, world change, quit, or when Smart Fill turns off for the player.
- Chunks already waiting to be refreshed are no longer queued again, which lowers server and network load.
performance.max-chunks-per-tickis now actually used.- Paper/Folia: entities are removed from the plugin's internal cache the moment they leave the world, instead of every world being scanned every 60 seconds. Spigot still uses the periodic scan.
- If your server doesn't support per-player chunk sending, the plugin logs one warning and goes back to the old method.
๐ Bug fixes
Chunks & terrain
- Fixed players sometimes seeing a gap of missing chunks while mining underground with Smart Fill disabled. Walking into it froze the player and made the screen glitch until a relog or
/fpac reload.- Chunks that were hidden while near the surface are now always restored once protection turns off. Any that slip through are repaired automatically within about a second.
- Chunk refresh requests are no longer dropped when protection switches on and off quickly (most noticeable on Folia).
- Fixed some caves staying hidden in large caverns. When too many newly visible chunks appeared at once, the extras were skipped and never updated. They're now refreshed over the next few seconds.
Bedrock (Geyser/Floodgate)
- Fixed chunks constantly reloading every 1โ2 seconds when Smart Fill was enabled. The world would flash between empty ground and half-loaded terrain with floating trees.
- Fixed chunks sometimes not loading at all. Too many chunks were re-sent at once and Bedrock clients dropped some of them. Smart Fill updates are now rate-limited for Bedrock players, and refreshes never go beyond their view distance.
- Fixed outdated chunks at the edge of Bedrock players' view. The outermost ring of chunks is now refreshed properly when protection changes.
- Fixed Bedrock detection breaking after
/fpac reload. - Clearer startup message when Geyser/Floodgate isn't found. If Geyser runs on a proxy (BungeeCord/Velocity), install Floodgate on the backend server too so Bedrock players are recognised.
Mobs & entities
- Fixed mobs sometimes being invisible while still attacking (creepers exploding, skeletons shooting, zombies hitting with nothing visible). Seen mostly on Folia.
- Mobs whose spawn was hidden because they spawned below void-y are sent to the player again once they move somewhere that shouldn't be hidden.
- Mobs hidden while underground are shown again as soon as they leave the hidden zone, instead of staying hidden until the player's own protection state changed.
- Mobs inside hidden underground areas stay hidden, so base protection works the same as before.
- Entity Hider: minecarts, boats and chest/hopper/TNT/furnace/spawner minecarts placed underground were never hidden. They are now.
- Fixed entities staying hidden after turning
hide-entitiesoff and reloading.
Folia
- Fixed the
Thread failed main thread check: Accessing entity state off owning region's threaderror that appeared in console every 60 seconds during cache cleanup. Each entity is now checked on the thread that owns it. - Showing or hiding a mob in a different region no longer throws an error and stops the remaining mobs from being shown. Those mobs are retried on the next check.
- Fixed a scheduling error that could stop chunk refreshes for a player until they relogged.
Other
- Sounds, particles and mob/item spawns in hidden areas now follow
pie-chart-protectionand Smart Fill's reveal, so you can hear and see them in your own cave again. - Fixed some block sounds being hidden or shown based on the wrong position.
pie-chart-protection: falsenow also stops hiding chest/sign/spawner data.- Raycast no longer turns off Smart Fill's look-direction reveal.
- Fixed freeze detection never triggering.
- Smart Fill reveal settings now load on startup instead of only after a reload.
๐งน Config & cleanup
config.ymlis reorganized, with shorter and clearer comments.- Removed the
protection.raycastsection. It now uses fixed, tuned values. - Removed the unused
folia-optimizationsoption. - Freecam detection's translation keys are now built in.
- Removed the unused
/fpac freecamtestcommand. Automatic Freecam detection on join is unchanged.
๐ Notes
- Your config updates automatically to version 5.3. New settings are added, removed keys are deleted, and your other values stay the same.
- For the new clean comments, delete
plugins/FPAntiFreeCam/config.ymland let it regenerate. - Bedrock players may see hidden caves turn into real blocks a few seconds later than Java players. Java players aren't affected.
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:DT9cwrlV"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:NodGIhss:DT9cwrlV"
}

