# ✨ New Features
- Freecam mod detection: probes players once on join with known Freecam-mod translation keys via a hidden anvil GUI, comparing what the client echoes back against the mod's real lang file. Fully configurable under freecam-detection in config.yml, including which translation keys to check and which command(s) to run on detection (kick by default, placeholders for player, uuid, and matched key).
- Staff alerts: new fpantifreecam.alerts permission. Anyone holding it gets an in-game alert plus a console log line whenever a player is flagged, similar to an anticheat's alert feed.
- pie-chart-protection now defaults to enabled, closing the F3 pie-chart exploit for locating chests, spawners, and bases through the void. Previously opt-in.
# 🐛 Bug Fixes
- Fixed the void-hiding radius under-scoping on servers with a per-world view distance higher than the global server.properties default. Bukkit.getViewDistance() ignored Paper's per-world override, leaving a ring of real, unmasked terrain visible just outside the refresh radius.
- Fixed a memory leak in ChunkListener where every spawned mob, item, XP orb, and painting added an entry to an internal cache that was never removed, even after despawning. Entity removal is now tracked via a periodic sweep and the cache is also cleared on disable/reload.
- Fixed a crash on server shutdown (IllegalPluginAccessException) caused by scheduler calls made after the plugin was already marked disabled.
- Fixed a related shutdown crash (Plugin cannot be disabled) from attempting to hide/show entities during onDisable(), which Bukkit refuses outright regardless of threading.
- Fixed the jar requiring Java 21 to even load, which broke it entirely on real 1.19.x/1.20.x servers (those run on Java 17). Lowered the compile target to 17, no loss of functionality.
- Fixed the Freecam probe item occasionally leaking into a player's inventory when the hidden anvil GUI auto-closed.
# 🔧 Improvements
- Freecam detection no longer periodically re-probes players while they're online. It only probes once, on join, since popping the anvil GUI mid-session was interrupting active PVP by hijacking left-click input.
- Bedrock players (via Geyser/Floodgate) are now excluded from Freecam probing entirely; Freecam mods are Java Edition only and can't exist on Bedrock.
- lang/*.yml now auto-merges new message keys on a config-version bump, the same mechanism config.yml already used.
- Cleaned up config.yml comments across the board for readability, no keys or default values changed.
Developer information
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle.
maven { name = "Modrinth"; url = "https://api.modrinth.com/maven" }