MCIdentity on FoliaMC
Folia introduces regionalized multi-threading. MCIdentity is natively compatible with its region and global schedulers — no single main thread to rely on.
How it runs
MCIdentity ships as one jar for every platform. When it starts, it detects Folia first and switches to Folia's region-aware scheduling. Instead of one main thread, Folia runs many region threads, so the plugin sends each task to the thread that owns the player or place it touches. The add-ons reuse this same scheduling from the core plugin, so they behave correctly on Folia too.
- GUIs, identity swaps, and stat updates are scheduled onto the region owning the relevant player or location.
- Storage I/O still runs on the asynchronous worker pool, exactly as on Spigot and Paper.
- Custom MCIdentity events mark themselves asynchronous whenever they are fired off a primary thread, so third-party handlers must stay thread-safe.
Async safety for integrations
Because events can fire on region threads, any plugin listening to MCIdentity events on Folia should treat handlers as potentially asynchronous. When you must call thread-confined Bukkit API (inventories, entities), schedule back onto the appropriate region or global scheduler rather than calling it directly. The Developer API covers this in detail.
Cold-boot login protection
When paired with the central server backend, the pre-login health-check and wake-up ping run on the async login thread — so a cold-started central server delays joins gracefully rather than blocking any region thread. See Key Features.
Requirements
- Java 25 or newer.
- A Folia server on the 26.1 API line.
Ready to deploy? See Installation & Setup and pick a storage backend.