Key Features
A high-level tour of what MCIdentity brings to your server.
Multi-Platform Support
Fully supports SpigotMC, PaperMC, and Folia, including native compatibility with Folia's regionalized multi-threading architecture.
Interactive GUI System
Multi-tier virtual menus for managing identities and their stats. See the GUI System page for the full layout.
Skills, Runes, and Cosmetics as Separate Add-ons
Skills live in MCIdentitySkill, runes in MCIdentityRune, and skins and auras in MCIdentityCosmetic. Sigils, Relics, and Perks are coming in MCIdentityPerks, which is in development. Each add-on owns its own storage, always saved against the identity. The core plugin owns identities, stats, and sessions only: abilities left it in version 3.0.0, and runes and cosmetics in version 4.0.0.
Regionalized Threading
Fully compatible with Folia's region threading, so every task runs on the thread that owns the region it touches.
Multi-Database Storage
Identity data can live in SQLite (the zero-configuration default), MySQL, PostgreSQL, or MongoDB, chosen in the configuration file, or on the MCIdentity Central Server. Every backend behaves the same and runs in the background. See Data Storage.
Central Server Storage
Alternatively, all identity data can live on the MCIdentity Central Server, reached over an authenticated web API, so every game server on the network shares one consistent data set.
Extensible API
Gives other plugins one supported way to read and change identities, and a set of events to react to. See the Developer API.
Secure Commands
Every command has its own permission node. Player commands are open to everyone by default and admin commands to operators only, and a permission plugin can change either. See Commands & Permissions.
Visual Identity Keys
Identities are represented as physical items in the game. An identity item is named by its alias, in a colour derived from the identity so it stays the same across relogs, and carries its profession and level in the lore. An identity with no alias yet is named after its profession.
The name and the lore are decoration only. The plugin recognises an identity solely by the item's persistent data, so renaming an identity item or clearing its lore breaks nothing โ equipping, levelling, and everything else keep working, and the text is simply rewritten the next time the identity is rendered.
Unbound Identities
Identity items created with /identity get are initially "unbound" โ they lack a unique ID and database entry. Both the unique ID and the identity's initial stats are generated and registered in the database only when the item is first used.
Base "Player" Profession
Every player permanently owns a built-in Player profession, created automatically on first join and tied to the player's own account. It is the fallback state whenever an identity is unequipped, dropped on death (only when the drop on death option is turned on, which it is not by default), or fails to equip, so a player is never without a profession. It can never be deleted or turned into an identity key item.
Note: the base profession is built into the plugin. Unlike the other professions it has no profession file and cannot be changed by server owners.
Alternative Base Identities
On top of the Primary base identity โ the one Player profession, tied to the player's own account, players can unlock additional, fully independent identities of any other profession (random or chosen). Each one is numbered and always gets the same ID, so it survives across servers and restarts. Admins grant them with /identity base add; all owned base identities appear in the paginated Player Identity GUI and can be equipped by clicking their heads.
Cold-Boot Login Protection
When the central server is the backend, the plugin checks that the server is reachable while each player is logging in. That check also wakes up a central server that was sleeping. Players are politely refused while storage initialization has not finished, or while the server is offline, so nobody joins with unreachable data. Initialization retries automatically every 10 seconds. All checks run off the main game thread.
Passive Base Leveling
Base identities level without limit from passive playtime EXP on two tracks. The Primary identity gains 1 EXP per second for every online player โ even while another identity is equipped โ and levels at 86,400 EXP per level (one level per day of play). An Alternative identity gains its 1 EXP per second only while equipped, and levels at 3,600 EXP per level (one level per hour of active play). Gains are buffered in memory and flushed in bulk every five minutes and on quit.
Base Profession Restrictions
Which professions may use an add-on's feature is decided by that add-on. MCIdentityRune blocks the base profession from equipping runes; MCIdentityCosmetic allows every profession, base included.
Always-On Storage Isolation
Each identity's inventory and ender chest are always isolated and stored with the identity; the old options to turn this off have been removed.
Ready to try it? Head to Installation & Setup, or browse the bundled professions.