### 🐛 Fixed (Folia)
- **Teleport crash:** `onPlayerTeleport` called the blocking `Entity#teleport()` from inside a Folia region-scheduled task, which always throws `UnsupportedOperationException: Must use teleportAsync while in region threading`. The player was never moved and protection silently failed to apply/lift. Switched to `teleportAsync()`, with the follow-up state update correctly bounced back onto the owning region thread.
- **Entity-hiding crash risk:** `EntityHider` (active by default via `entities.hide-entities: true`) scheduled its hide/show/spawn-hook logic on the *global* region scheduler instead of the region that actually owns the entity/player. Same failure class as the teleport bug — now routed through the region-aware scheduler.
- **Update-notification crash risk:** the "notify already-online admins of a new version" path called the raw, legacy `Bukkit.getScheduler().runTask()`, which Folia rejects outright. Triggered whenever an update is detected while an admin is already online (e.g. right after `/fpac reload`). Now uses the Folia-safe scheduler wrapper like the rest of the plugin.
### 🐛 Fixed (config correctness)
- `protection.pie-chart-protection` had no effect — tile-entity stripping (`CHUNK_DATA`) and entity-spawn packet cancellation ran unconditionally regardless of the setting. Both now correctly respect it.
### 🔧 Config
- `config-version` bumped to `4.1` to ensure the migration path runs cleanly on upgrade for all existing installs.
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" }