AirCore⚡Modular, Fully-Configurable Essentials Plugin
2.0.2A modern, modular core plugin focused on performance, flexibility, and customization.
2.0.2latestyesterday [+] Added new command /aircore transfer to move data between backends. [*] Fixed modules/extras broadcast messages resolving viewer's own placeholders rather than target. [*] Fixed economy module loading after some plugins that depend on Vault. [*] Fixed tab-completion not showing right after "/aircore ..." [-] Migrated to paper plugin.2.0.14 weeks ago [+] Added item GUI priority now supports named priority groups [+] Added %aircore_gui_...% placeholders [+] Added support for nested {placeholder} resolution [+] Added <center> tag support [*] Fixed item hook (craftengine, nexo, itemsadder) not working [*] Fixed pay received message showed recipient's own name instead of sender's2.0.0Sep 23, 2026 This is a complete rewrite. Do not just replace the .jar. Remove all old files and install fresh. Treat this as a brand new plugin, not an update. To migrate the old database, please check the documentation. This release overhauls the entire plugin core, introducing a lot of new features.Compatible with Minecraft 1.21+
Folia supported
High performance, zero required extra dependencies
SQLite, MySQL/MariaDB and MongoDB support
70+ commands, modular and fully configurable
Over 20+ GUIs completely customizable
CraftEngine, Nexo and ItemsAdder compatibility
PlaceholderAPI compatibility with built-in placeholders (+65) to use anywhere.
Advanced announcement system. Schedules, sequences, and full customization.
Custom variables. Persistent stats with event hooks and reactive logic.
Custom placeholders. Conditions, math, progress bars, and transforms.
Events on join, leave, and custom death messages.
Chat system. Group formatting, channels, mentions, display tags, private messaging, filters and moderation.
Economy. Configurable balances, taxes, payments, item worth and selling.
Homes. Naming rules, limits, and per-world restrictions.
Kits. Cooldowns, one-time claims, and per-kit parameters.
Teleportation. TPA requests, confirmations, countdowns, cancel-conditions, and /back history.
Player toggles. Per-player control over messages, payments, requests and more.
Per-world restrictions for god mode, flight, speed, custom time and weather.
Custom leaderboards. Create unlimited leaderboards powered by the variables module. ... and more ...
1.2.2Apr 25, 2026 - Fix: Stop cancellation checks once teleport is complete. - Changed: Now all placeholders %player% and %target% use display names instead of player names. - Changed: /back to now save location before any teleport (world changes, TPA, /back itself, spawn teleports, etc.). - Added: Added /nick command, including colors and formats (permissions are the same for chat). - Added: Added new placeholder %aircore_player_displayname% Remember to add these new lines in your config files! - New in config.yml: Code (YAML): chat : # Player nicknames nickname: prefix : "*" # Prefix shown before nickname in chat ("" for none) max-length : 16 name-validation-regex : "^[a-zA-Z0-9_]+$" - New in commands.yml: Code (YAML): commands: nick: aliases : [nickname ] usage : "/%label% [nick]" usage-others : "/%label% [nick] [player]" - New in lang/messages/en_US.yml: Code (YAML): utilities : nick: set : "%prefix% <green>Your nickname has been set to <yellow>%nick%</yellow>.</green>" set-for : "%prefix% <green>You set <yellow>%player%</yellow>'s nickname to <yellow>%nick%</yellow>.</green>" set-by : "%prefix% <green><yellow>%player%</yellow> set your nickname to <yellow>%nick%</yellow>.</green>" reset : "%prefix% <green>Your nickname has been cleared.</green>" reset-for : "%prefix% <green>You cleared the nickname for <yellow>%player%</yellow>.</green>" reset-by : "%prefix% <red><yellow>%player%</yellow> cleared your nickname.</red>" errors: too-long : "%prefix% <red>That nickname is too long! (<yellow>%length%</yellow>/<yellow>%max%</yellow> characters).</red>" invalid-name : "%prefix% <red>Invalid nickname.</red>"1.2.1Apr 13, 2026 - Added a new shortcuts section to commands.yml that lets you define shortcut commands mapping to any full command with pre-filled arguments. Code (YAML): # ------------------------------------------------------------------- # COMMAND SHORTCUTS # ------------------------------------------------------------------- # Define shortcut commands that map to full commands with arguments. # Requires a restart to take effect when added/removed. # # You can add, remove, or rename any shortcut below. # Format: # <shortcut>: # command: "<full command and arguments>" # aliases: [...] # optional extra names for the same shortcut # ------------------------------------------------------------------- shortcuts: gmc: command : "gamemode creative" aliases : [gmce ] gms: command : "gamemode survival" aliases : [gmsu, gmsurv ] repairall: command : "repair all" aliases : [ ] day: command : "time set day" aliases : [ ] night: command : "time set night" aliases : [ ] - Added a new message-format option to config.yml that controls how chat messages, private messages, and all plugin messages are parsed. Code (YAML): # Message format: MINI | LEGACY | SMART # MINI - MiniMessage only (<red>, <bold>, etc.) # LEGACY - Legacy color codes (&c, &l, etc.) # SMART - Auto-detect per message message-format : SMART - Fixed repair all message key.1.2.0Mar 29, 2026 - Added a new file: commands.yml. You can now edit sub-command arguments & selectors. All command config related has been moved to commands.yml for better organization. - All commands now follow the same pattern for error handling and logic. - Added 2 new commands: /ptime and /pweather. Allows you to control per player weather/time. - Added new permissions: aircore.command.ptime, aircore.command.ptime.others, aircore.command.pweather, aircore.command.pweather.others - Added new message keys: Code (YAML): utilities: weather: set : "%prefix% <green>Weather set to <yellow>%type%</yellow>.</green>" set-in : "%prefix% <green>Weather set to <yellow>%type%</yellow> in world <yellow>%world%</yellow>.</green>" player: set : "%prefix% <green>Player weather set to <yellow>%type%</yellow>.</green>" set-for : "%prefix% <green>Player weather set to <yellow>%type%</yellow> for <yellow>%player%</yellow>.</green>" set-by : "%prefix% <yellow>%player%</yellow> <green>set your player weather to <yellow>%type%</yellow>.</green>" reset : "%prefix% <green>Your weather is now synced with the server.</green>" reset-for : "%prefix% <green>Reset weather for <yellow>%player%</yellow>.</green>" reset-by : "%prefix% <yellow>%player%</yellow> <green>reset your weather to server sync.</green>" placeholders: clear : "clear" rain : "rain" thunder : "thunder" reset : "reset" time: get : "%prefix% <green>Time is <yellow>%time-formatted%</yellow> or <yellow>%ticks%</yellow> ticks.</green>" set : "%prefix% <green>Time set to <yellow>%ticks%</yellow> ticks (<yellow>%time-formatted%</yellow>).</green>" add : "%prefix% <green>Added <yellow>%ticks%</yellow> ticks (<yellow>%time-formatted%</yellow>) to time.</green>" set-in : "%prefix% <green>Time set to <yellow>%ticks%</yellow> ticks (<yellow>%time-formatted%</yellow>) in <yellow>%world%</yellow>.</green>" add-in : "%prefix% <green>Added <yellow>%ticks%</yellow> ticks (<yellow>%time-formatted%</yellow>) to time in <yellow>%world%</yellow>.</green>" player: set : "%prefix% <green>Player time set to <yellow>%ticks%</yellow> ticks (<yellow>%time-formatted%</yellow>).</green>" set-for : "%prefix% <green>Player time set to <yellow>%ticks%</yellow> ticks (<yellow>%time-formatted%</yellow>) for <yellow>%player%</yellow>.</green>" set-by : "%prefix% <yellow>%player%</yellow> <green>set your player time to <yellow>%ticks%</yellow> ticks (<yellow>%time-formatted%</yellow>).</green>" add : "%prefix% <green>Added <yellow>%ticks%</yellow> ticks (<yellow>%time-formatted%</yellow>) to player time.</green>" add-for : "%prefix% <green>Added <yellow>%ticks%</yellow> ticks (<yellow>%time-formatted%</yellow>) to player time for <yellow>%player%</yellow>.</green>" add-by : "%prefix% <yellow>%player%</yellow> <green>added <yellow>%ticks%</yellow> ticks (<yellow>%time-formatted%</yellow>) to your player time.</green>" reset : "%prefix% <green>Your time is now synced with the server.</green>" reset-for : "%prefix% <green>Reset time for <yellow>%player%</yellow>.</green>" reset-by : "%prefix% <yellow>%player%</yellow> <green>reset your time to server sync.</green>" - Time placeholders have been moved to a separated section: Code (YAML): # ------------------------------------------------------------------- # TIME PLACEHOLDERS # ------------------------------------------------------------------- placeholders: ticks : " ticks" second : " second" seconds : " seconds" minute : " minute" minutes : " minutes" hour : " hour" hours : " hours" day : " day" days : " days" - Decoupled group formatting from message processing. Now, if group-format is disabled, other chat features will still be enabled. - Added multi-line support for all messages. Now instead of this: Code (YAML): motd-join: _DEFAULT_ : "<newline><green>Welcome back <yellow>%player%</yellow> to the server!</green><newline><gray>Glad to see you again.</gray><newline>" You can do this: Code (YAML): motd-join: _DEFAULT_ : - " " - "<green>Welcome back <yellow>%player%</yellow> to the server!</green>" - "<gray>Glad to see you again.</gray>" - " "1.1.13Mar 14, 2026 - Fixed bossbar inline tag duplication - Added per command cooldown bypass ( aircore.bypass.command.<name>) - Refactored command cooldown structure: Code (YAML): # ----------------------------- # COMMANDS, COOLDOWNS & LIMITS # ----------------------------- command-cooldowns : # 'strict: true' to match commands strictly. repair: key : "repair" cooldown : 60 strict : true # repairall: # key: "repair all" # cooldown: 120 # strict: true heal: key : "heal" cooldown : 120 strict : false # feed: # key: "feed" # cooldown: 60 # strict: false - Added -autoequip parameter on /createkit | /editkit - Removed auto-equip option from config.yml (kits section), now handled per kit thru parameter - Changed "permission: ..." to "delhome: ..." for consistency (on Home GUIs)1.1.12Mar 11, 2026 - Added support for Nexo and ItemsAdder - Added item priority for GUIs - Fixed error during shutdown for bossbar - Fixed Folia item duplication for invsee1.1.11Mar 10, 2026 - Fixed message keys - Added new config option: Code (YAML): # Date formatting used for GUIs # Common patterns: # dd/MM/yy -> 08/03/26 # dd MMM -> 08 Mar # MMMM dd, yyyy -> March 08, 2026 # E, dd MMM -> Sun, 08 Mar date-format : "dd/MM/yy" - Cached texture for player heads on GUIs1.1.10Mar 8, 2026 - Minor bug fixes1.1.9Mar 6, 2026 - Changes on GUI configs: (added specific [action] type) · sell.yml Code (Text): actions: - "[sell]" - "[sound] ui.button.click 1.0 1.2" apply-confirm: sell: enabled: true Code (Text): actions: - "[sell-all]" - "[sound] ui.button.click 1.0 1.2" apply-confirm: sell-all: enabled: true · confirm.yml Code (Text): actions: - "[sound] entity.player.levelup 1.0 1.2" - "[sell]" - "[close]" shift-actions: - "[sound] entity.player.levelup 1.0 1.2" - "[sell]" · homes.yml & homes-target.yml Code (Text): actions: - "[sound] entity.enderman.teleport 1 1.2" - "[teleport]" shift-actions: - "[sound] entity.enderman.teleport 1 1.2" - "[delete]" apply-confirm: teleport: enabled: false delete: enabled: true · confirm.yml & confirm-target.yml Code (Text): actions: - "[sound] entity.player.levelup 1.0 1.2" - "[teleport]" # Same for [delete] - "[close]" - Fixed %aircore_player_block_by_<player>% returning raw placeholder instead of boolean. - Added API for Block actions - Added console support for /tp command - Added @a argument for /tpahere (allows sending a tpa-here request to everyone online) - Added max balance limit validation check for /sell command - Added new message key: Code (Text): economy: sell: error-max-balance: "%prefix% <red>You cannot sell these items because your balance would exceed the limit of <yellow>$%amount%</yellow>.</red>"1.1.8Mar 2, 2026 - Added sequence: for announcements with interval - Fixed homes being removed after reload1.1.7Mar 1, 2026 - Added new module /announcements/ with multi-channel display. Broadcast messages simultaneously via Chat, Action Bar, Titles, and Boss Bars. - Added /announcetoggle for players. Preferences are saved persistently in the database just like the rest of the other toggles. - Added new command: /announcement <trigger|enable|disable> <key> [args] (aircore.command.announcement) - Added new placeholder %aircore_player_toggle_announcements% returns the state of the current player announcements toggle. - Added new message keys Code (Text): utilities: announcement: not-found: "%prefix% <red>Announcement <yellow>%name%</yellow> was not found.</red>" triggered: "%prefix% <green>Announcement <yellow>%name%</yellow> has been manually triggered.</green>" enabled: "%prefix% <green>Announcement <yellow>%name%</yellow> is now enabled and scheduled.</green>" already-enabled: "%prefix% <green>Announcement <yellow>%name%</yellow> is is already enabled.</green>" disabled: "%prefix% <red>Announcement <yellow>%name%</yellow> has been disabled.</red>" already-disabled: "%prefix% <red>Announcement <yellow>%name%</yellow> is already disabled.</red>" toggles: enabled: "%prefix% <green>You will now see automated announcements.</green>" disabled: "%prefix% <red>You have muted automated announcements.</red>" enabled-for: "%prefix% <green>Announcements enabled for <yellow>%player%</yellow>.</green>" disabled-for: "%prefix% <red>Announcements disabled for <yellow>%player%</yellow>.</red>" enabled-by: "%prefix% <green><yellow>%player%</yellow> enabled announcements for you.</green>" disabled-by: "%prefix% <red><yellow>%player%</yellow> disabled announcements for you.</red>" - Added new command usages Code (Text): command-usages: announcement: usage: "/%label% <option> <key>" usage-trigger: "/%label% trigger <key> [args]" usage-enable: "/%label% enable <key>" usage-disable: "/%label% disable <key>" aliases: [announcements] announcetoggle: usage: "/%label%" usage-others: "/%label% [player]" aliases: []1.1.6Feb 28, 2026 Fixed - Invsee armor slots not validating with shift+click1.1.5Feb 26, 2026 Fixed - Disabled custom commands (e.g., /give) no longer interfere with their vanilla counterparts. - cancel-teleport-when now only cancels a teleport for the player with an active countdown, rather than both players. - Fixed an issue where empty messages were sending empty lines instead of hiding them. Changed - Removed the permission-groups section to resolve internal logic conflicts Added - Added a "Filter" button to the Homes GUI to sort by specific worlds. - Added a countdown when using /home @p <player>. - Added a specific message key for teleporting to other players' homes.1.0.51.1.5Feb 26, 2026 Fixed - Disabled custom commands (e.g., /give) no longer interfere with their vanilla counterparts. - cancel-teleport-when now only cancels a teleport for the player with an active countdown, rather than both players. - Fixed an issue where empty messages were sending empty lines instead of hiding them. Changed - Removed the permission-groups section to resolve internal logic conflicts Added - Added a "Filter" button to the Homes GUI to sort by specific worlds. - Added a countdown when using /home @p <player>. - Added a specific message key for teleporting to other players' homes.1.1.4Feb 15, 2026 Added - New GUIs for home system: /guis/homes/homes.yml /guis/homes/homes-target.yml /guis/homes/confirm.yml /guis/homes/confirm-target.yml - Added new message key homes.errors.none-yet-for Fixed - Fixed several bugs - Performance issues related to GUIs - GUI layers not working properly1.1.3Feb 13, 2026 Added - error-on-excess-args option in config.yml - New message key errors.too-many-arguments1.1.2Feb 13, 2026 Added - notify-updates: true/false on config to notify admins when there is a new update available Changed - chat.blocking... message keys have been moved to utilities.blocking...1.1.1Feb 12, 2026 Added - Added new module /placeholders/, allows you to create your own custom placeholders with conditions and priorities! - Added auto migration when new columns are added to tables in database Changed - Reload command logic is now split into different modules instead of reloading all files Fixed - Fixed some bugs to /speed for offline players1.1.0Feb 11, 2026 Fixed - Message keys on sell-on-inventory-close: true Changed - Moved sell.yml to /sell/ folder Added - New GUI file /sell/confirm.yml - Added always-show-buttons: true/false to sell.yml - Added apply-confirm: false/true to sell.yml buttons (false by default if not set)1.0.6Feb 11, 2026 Fixed - Kit item duplication on claim (Folia) - Sell GUI not checking for invalid items with confirm-all button1.0.4Feb 8, 2026 Added - Added new option: chat.allow-self-message (allows self messaging) - Added title-own on /invsee/enderchest.yml to customize own title with /enderchest1.0.2Feb 5, 2026 Changed - invsee.yml and enderchest.yml GUIs are now located inside /invsee/ as inventory.yml and enderchest.yml Fixed - Placeholders now parse correctly in GUIs1.0.1Jan 31, 2026 Fixed - Messages with only formatting tags (like <red>) are now properly blocked when custom chat format is enabled. - Display tags with enabled: false are now properly disabled on reload.1.0.0First version uploadJan 30, 2026 First post
Similar projects
Plugin →Let Me Despawn
Improves performance by tweaking mob despawn rules. Say bye to pesky unintentional persistent mobs.
25MSueta
JourneyMap
Real-time map used for mapping in-game or your browser as you explore.
14.7MSueta
Emotecraft
Create your own emotes in Minecraft.
7.5MSueta
Simple Tpa
A simple tpa plugin which sends requests
5.4MSueta
Common Network
Forge and Fabric Unified Networking Solution
3.9MSueta
Set Home
A lightweight plugin for players to set their homes.
3.8MSueta