UltimateAdvancementAPI
3.0.0-beta-3A powerful API to create custom advancements for your Minecraft server.
3.0.0-beta-3latestUltimateAdvancementAPI 3.0.0-beta-3Jul 28, 2026 You can support the development of UltimateAdvancementAPI by contributions or by [sponsoring the project on Github](https://github.com/sponsors/frengor). * Added support for Minecraft 26.2 (by [@Ariouz](https://github.com/Ariouz)) * Updated CommandAPI to 12.0.0 * Updated Libby to 1.3.2 * SQLite database is now [vacuumed](https://sqlite.org/lang_vacuum.html) at startup, optimizing the database file and reducing its disk space #### Internal changes: * Unused imports are now checked at compile time * The project now uses .editorconfig * Added project icon for IntelliJUltimateAdvancementGenerator
Released the new version of [UltimateAdvancementGenerator](https://generator.devheim.space/), the official generator for UltimateAdvancementAPI: * New UI and improved user experience * Supports both 2.X.X and 3.0.0-beta versions * To migrate, download the JSON data from the [old generator](https://escanortargaryen.dev/UltimateAdvancementGenerator/), log in on the [new one](https://generator.devheim.space/) and import it into a new project * You can now manage multiple projects using your Google account * Export your projects as JSON to easily share them with your collaborators * Easily insert color codes with the new widget in titles and descriptions * Other fixes and improvements The tool is still in BETA*, please report bugs and wanted features on [GitHub](https://github.com/frengor/UltimateAdvancementAPI/issues)2.8.1UltimateAdvancementAPI 2.8.1Jul 28, 2026 You can support the development of UltimateAdvancementAPI by contributions or by [sponsoring the project on Github](https://github.com/sponsors/frengor). * Added support for Minecraft 26.2 (by [@Ariouz](https://github.com/Ariouz)) * Updated CommandAPI to 12.0.0 * Updated Libby to 1.3.2 * SQLite database is now [vacuumed](https://sqlite.org/lang_vacuum.html) at startup, optimizing the database file and reducing its disk space #### Internal changes: * Unused imports are now checked at compile time * The project now uses .editorconfig * Added project icon for IntelliJUltimateAdvancementGenerator
Released the new version of [UltimateAdvancementGenerator](https://generator.devheim.space/), the official generator for UltimateAdvancementAPI: * New UI and improved user experience * Supports both 2.X.X and 3.0.0-beta versions * To migrate, download the JSON data from the [old generator](https://escanortargaryen.dev/UltimateAdvancementGenerator/), log in on the [new one](https://generator.devheim.space/) and import it into a new project * You can now manage multiple projects using your Google account * Export your projects as JSON to easily share them with your collaborators * Easily insert color codes with the new widget in titles and descriptions * Other fixes and improvements The tool is still in BETA*, please report bugs and wanted features on [GitHub](https://github.com/frengor/UltimateAdvancementAPI/issues)3.0.0-beta-2UltimateAdvancementAPI 3.0.0-beta-2Apr 23, 2026 * Added support for Minecraft 26.1.2 * Updated CommandAPI to 11.2.0 * Renamed themojang-mappedclassifier tomojang-mapped-legacy. Starting from 26.1, both Spigot and Paper are Mojang mapped, so we now consider these versions as legacy, since they are only useful on (Mojang mapped) Paper 1.18-1.21.11 servers. * Minor improvements2.8.0UltimateAdvancementAPI 2.8.0Apr 23, 2026 * Added support for Minecraft 26.1.2 * Updated CommandAPI to 11.2.0 * Renamed themojang-mappedclassifier tomojang-mapped-legacy. Starting from 26.1, both Spigot and Paper are Mojang mapped, so we now consider these versions as legacy, since they are only useful on (Mojang mapped) Paper 1.18-1.21.11 servers. * Minor improvements3.0.0-beta-1UltimateAdvancementAPI 3.0.0-beta-1Jan 4, 2026 * Updated Java version to 17 * Advancement displays overhaul to allow, for example, multi-language or the usage of placeholders in displays: * Advancement displays are now abstract classes and useBaseComponents by default * Now there are three kinds of displays: * Immutable (AbstractImmutableAdvancementDisplay), which always returns the same values from the same methods (i.e., display properties never change) * Per-player (AbstractPerTeamAdvancementDisplay), which provides customized values for each player * Per-team (AbstractPerTeamAdvancementDisplay), which provides customized values for each team * Advancement constructors now accept anAbstractAdvancementDisplayinstead ofAdvancementDisplay* TheAdvancementDisplayclass is now an immutable display and can be constructed exclusively using the builder * Announcement messages now employ a system similar to advancement visibilities. For more information, seeIAnnouncementMessage* Announcement messages are now customizable per-player * Tab icon, background and title are now customizable (even per-player and per-team) and independent from the root advancement * On advancement grant, toasts are now shown to every online team member by default. UseAdvancementTab.setShowToastToTeamto send toasts only to the player who completed the advancement * On advancement grant, announcement messages can be shown only to team members by usingAdvancementTab.setSendAnnouncementMessageOnlyToTeam. By default, announcement messages are sent to every online player * RenamedUltimateAdvancementAPI.updatePlayertoupdateAdvancementsToTeam* Removed deprecated methods * Added more team management methods inUltimateAdvancementAPIclass: *createNewTeamWithOneLoadingRequest*loadAndAddLoadingRequest*addLoadingRequest*removeLoadingRequest*setTeamPermanent*isTeamPermanent*getPermanentTeams* RenamedUltimateAdvancementAPI.loadOfflinePlayertoloadAndAddLoadingRequest* RenamedUltimateAdvancementAPI.unloadOfflinePlayertoremoveLoadingRequest* RemovedCacheFreeingOption,ObjectResultandResultclasses * ReworkedMultiTasksAdvancementandTaskAdvancement* Make advancement constructors more coherent * AddedAdvancementGrantedEvent* FixedAdvancementTab.showtabsometimes being ignored * Refactored the advancement granting procedure * Reserved a prefix for namespaces and keys for internal use. For more information, seeAdvancementKey.RESERVED_NAMESPACE_PREFIXandAdvancementKey.RESERVED_KEY_PREFIX* Replace callbacks inUltimateAdvancementAPIclass withCompletableFutures #### Internal changes: * Massively improved theDatabaseManager* Use MockBukkit for tests * Added more tests For more details, refer to the [Javadoc](https://frengor.com/javadocs/UltimateAdvancementAPI/3.0.0… or contact us on Discord. The Wiki will be updated with the 3.0.0 official release.2.7.2UltimateAdvancementAPI 2.7.2Dec 20, 2025 * Updated to Minecraft 1.21.11 * Updated CommandAPI to 11.1.0 * Commands do not fail anymore if an advancement method throwsUnsupportedOperationException.UnsupportedOperationExceptionis thrown when granting or revoking some advancements (likeFakeAdvancements), usually when they are not saved in the database. Now, when anUnsupportedOperationExceptionis thrown, the advancement is simply ignored instead of failing the command execution #### Internal changes: * Refactored commands implementation2.7.1UltimateAdvancementAPI 2.7.1Oct 31, 2025 * Replaced usages of (the deprecated)PlayerLoginEventon Paper 1.21.7+ * Fixed SQLite not working on 1.15-1.17.1 * Minor fixes and improvements2.7.0UltimateAdvancementAPI 2.7.0Oct 9, 2025 * Added support for Minecraft 1.21.9 and 1.21.10 * Updated CommandAPI to 11.0.0 * Updated ConfigUpdater to 2.2 *TeamLoadEventmay now provide an invalidTeamProgression, fixing a rareIllegalArgumentException.TeamLoadEventhas been deprecated for removal since 2.2.0, it is recommended to useAsyncTeamLoadEventinstead2.6.0UltimateAdvancementAPI 2.6.0Jul 27, 2025 * Added support for Minecraft 1.21.8 (by [@NickCloudAT](https://github.com/NickCloudAT)) * Updated CommandAPI to 10.1.2 (by [@NickCloudAT](https://github.com/NickCloudAT)) * Vanilla recipe advancements are now disabled separately from vanilla advancements (by [@Hydrolien](https://github.com/HydrolienF)). Vanilla recipe advancements can be disabled using the newdisable-vanilla-recipe-advancementsconfig option or using theUltimateAdvancementAPI#disableVanillaRecipeAdvancements()method. #### Internal changes: * Added config updater * Added disabled vanilla recipe advancements to bStats2.5.2UltimateAdvancementAPI 2.5.2Jul 4, 2025 * Added support for Minecraft 1.21.6 and 1.21.7 * Updated CommandAPI to 10.1.1 * Fixed a rare stack overflow error when enabling commands2.5.1UltimateAdvancementAPI 2.5.1May 15, 2025 * Updated CommandAPI to 10.0.12.5.0UltimateAdvancementAPI 2.5.0May 2, 2025 * Added support for Minecraft 1.21.5 * Updated CommandAPI to 10.0.0 * Updated bStats to 3.1.0 * Added support for custom database implementations in the shaded version (by [CrazyDev05](https://github.com/CrazyDev05)). See [AdvancementMain#enable(...)](https://frengor.com/javadocs/UltimateAdvancementAPI/2.5.0… javadoc for more information * Improved config comments #### Internal changes: * Reworked database initialization2.4.3UltimateAdvancementAPI 2.4.3Dec 13, 2024 * Added support for Minecraft 1.21.4 * Updated CommandAPI to 9.7.0 * Fixed hex color codes not working in 1.20.3-1.20.6 * Added constructors taking aBaseComponenttoAdvancementDisplayWrapper(by [CrazyDev05](https://github.com/CrazyDev05))2.4.2UltimateAdvancementAPI 2.4.2Nov 2, 2024 * Added support for Minecraft 1.21.3 * Updated CommandAPI to 9.6.1 * Updated HikariCP to 5.1.0 * Minor fixes and improvements2.4.1UltimateAdvancementAPI 2.4.1Aug 18, 2024 * Added support for Minecraft 1.21.1 * Updated CommandAPI to 9.5.32.4.0UltimateAdvancementAPI 2.4.0Jun 20, 2024 * Added support for Minecraft 1.21 * Updated CommandAPI to 9.5.1 * Added support for hex color codes in titles and descriptions (for example using BungeeCord'sChatColor.of(new Color(0, 0, 0))) * Commands now use theultimateadvancementapinamespace (only for 1.17+)2.3.1UltimateAdvancementAPI 2.3.1May 15, 2024 * Fixed a SQLite related bug2.3.0UltimateAdvancementAPI 2.3.0May 15, 2024 * Added support for Minecraft 1.20.6 * Added support for Mojang mapped servers: if you're running a Mojang mapped server you should download theMojang-Mappedjar instead of the normal one. If you're shading, just add<classifier>mojang-mapped</classifier>to the UltimateAdvancementAPI dependency. For more information, see the [wiki](https://github.com/frengor/UltimateAdvancementAPI/wiki/Sh… * Refactored the Maven structure of the project to support Mojang mapped jars * Addedload: STARTUPto theplugin.ymlof the plugin version * Updated CommandAPI to 9.5.0-SNAPSHOT * Updated Libby to 1.3.0 * Minor improvements and fixes2.2.8UltimateAdvancementAPI 2.2.8Dec 18, 2023 * Added support for 1.20.3 and 1.20.4 * Updated CommandAPI to 9.3.02.2.7UltimateAdvancementAPI 2.2.7Oct 27, 2023 * FixNullPointerExceptionon player join on 1.20.2 * NowPlayerLoadingCompletedEventandPlayerLoadingFailedEventare always called afterPlayerJoinEvent2.2.6UltimateAdvancementAPI 2.2.6Sep 27, 2023 * Added support for 1.20.2 * Updated CommandAPI to 9.2.0 * Fixed a bug where, when loading on an unsupported server version, an error was printed to the console instead of the nicer message that was supposed to be printed2.2.5UltimateAdvancementAPI 2.2.5Jul 23, 2023 * Added support for 1.20.1 * Updated CommandAPI to 9.0.3 (by [dandan2611](https://github.com/dandan2611)) * The plugin version of the API now doesn't crash anymore when it fails to load or enable commands2.2.4UltimateAdvancementAPI 2.2.4Jul 23, 2023 * Added support for 1.20 * Updated CommandAPI to 9.0.2 * FixSQLException: Generated keys not requestedwhen usingmovePlayerInNewTeam(...)on MySQL2.2.3UltimateAdvancementAPI 2.2.3Jul 23, 2023 * Added support for 1.19.4 * Updated CommandAPI to 8.8.02.2.2UltimateAdvancementAPI 2.2.2Jul 23, 2023 * Added support for 1.19.3 * Updated CommandAPI to 8.7.1 * Fixed AdvancementKey#VALID_ADVANCEMENT_KEY and AdvancementKey#VALID_KEY patterns. Now they recognize keys correctly2.2.1UltimateAdvancementAPI 2.2.1Jul 23, 2023 * Added support for 1.19.2 * Updated CommandAPI to 8.5.12.2.0UltimateAdvancementAPI 2.2.0Jul 23, 2023 * Added support for 1.19 * Advancements updates are now sent maximum one time per tick to avoid sending useless packets * The method AdvancementTab#updateEveryAdvancement has been deprecated, use AdvancementTab#updateAdvancementsToTeam instead * The following utility methods has been added to the AdvancementTab class: * automaticallyShowToPlayers, which automatically shows this tab to every player just after they have been loaded * automaticallyGrantRootAdvancement, which automatically grants the root advancement of the tab to every player after they have been loaded * registerEvent, which registers an event into the EventManager of the tab * Added the following events: * AsyncTeamLoadEvent * AsyncTeamUnloadEvent * AsyncTeamUpdateEvent * AsyncPlayerUnregisteredEvent * Deprecated for removal (in the next versions) the following events: * TeamLoadEvent (use AsyncTeamLoadEvent instead) * TeamUnloadEvent (use AsyncTeamUnloadEvent instead) * TeamUpdateEvent (use AsyncTeamUpdateEvent instead) * Updated CommandAPI to 8.3.1 * The CHANGELOG file has been added on GitHub * Jenkins workspace is now cleaned after every successful build * The NOTICE file has been updated since UltimateAdvancementAPI is licensed under LGPL but it was containing GPL instead2.1.3UltimateAdvancementAPI 2.1.3Jul 23, 2023 * Fixed IllegalArgumentException thrown when AdvancementTab#hideTab(Player) is called with a player who hasn't the tab shown2.1.2UltimateAdvancementAPI 2.1.2Jul 23, 2023 * Added support for 1.18.2 * Updated CommandAPI to 6.5.42.1.1UltimateAdvancementAPI 2.1.1Jul 23, 2023 * The Javadoc of CoordAdapter has been improved * Tests has been improved, so now more things can be tested2.1.0UltimateAdvancementAPI 2.1.0Jul 23, 2023 * Added builders for AdvancementDisplay and FancyAdvancementDisplay (by [SoSeDiK](https://github.com/SoSeDiK)) * Added CoordAdapter class, which adds support to negative coordinates for AdvancementDisplays * Added some missing @Override annotations * Added some testing utilities which makes writing tests easier2.0.5UltimateAdvancementAPI 2.0.5Jul 23, 2023 * Fixed a bug that causes advancements not showing up on Paper * Updated Libby to 1.1.52.0.4UltimateAdvancementAPI 2.0.4Jul 23, 2023 * Added support for 1.18.1 * Updated CommandAPI to 6.5.32.0.3UltimateAdvancementAPI 2.0.3Jul 23, 2023 * Improved failing during API enabling: * Now the AdvancementMain#disable() method can be called multiple times without throwing any error * Added a bStats chart about whether vanilla advancement feature is enabled or not * Added a bStats chart about used database type * Added AsyncExecutionException * Apache Commons' Validate class has been replaced with Guava's Preconditions * Updated Libby to 1.1.42.0.2UltimateAdvancementAPI 2.0.2Jul 23, 2023 * Added support for 1.18 * Added in-memory database: * No connection to any database is made since the data is kept in RAM * The in-memory database is reset at every server restart/reload (reload usage is discouraged though) * It can be used for minigames which don't need to save the advancement progressions after games * Advancement announce messages are now not sent if announceAdvancements gamerule is set to true * Added a message error when an error occurs during command execution * Fixed vanilla advancement disabling issue2.0.1UltimateAdvancementAPI 2.0.1Jul 23, 2023 * Improved the Advancement Visibility System: * Added the final methodAdvancement#isVisible(Advancement, TeamProgression), which should help avoiding compilation errors when implementing multiple IVisibility subinterfaces. It always throws an IllegalOperationException, since it should not be called * Fixed a bug where the default method of an IVisibility subinterface was not called correctly2.0.0UltimateAdvancementAPI 2.0.0Jul 23, 2023 * Updated to Java 16 * Added multi-version support: 1.15.x to 1.7.1 * Maven project has been restructured: * Added the NMS module with the per-version code * Commands have been moved to the Commands module * Added thecom.frengor:ultimateadvancementapi-commandsartifact, which can be used alongside the shadeable version to add commands to the plugin * Commands now works with @a and @s selectors */ultimateadvancementapi criteria ...command has been renamed to/ultimateadvancementapi progression ...`ultimateadvancementapi.criteria.permissions have been renamed toultimateadvancementapi.progression.*` * Lombok has been removed *criteriahas been replaced withprogressionin classes, fields, and methods names: * AdvancementCriteriaUpdateEvent has been renamed to AdvancementProgressionUpdateEvent * CriteriaUpdateEvent has been renamed to ProgressionUpdateEvent * ArbitraryMultiTaskCriteriaUpdateException has been renamed to ArbitraryMultiTaskProgressionUpdateException * Advancement#maxCriteria has been renamed to maxProgression * Advancement#getMaxCriteria has been renamed to getMaxProgression * Advancement#getTeamCriteria has been renamed to getProgression * Advancement#incrementTeamCriteria has been renamed to incrementProgression * Advancement#setCriteriaTeamProgression has been renamed to setProgression * TeamProgression#getCriteria has been renamed to getProgression * DatabaseManager#getProgression and UltimateAdvancementAPI#getProgression have been renamed to getTeamProgression * DatabaseManager#updateCriteria has been renamed to updateProgression * DatabaseManager#updateCriteriaWithCompletable has been renamed to updateProgressionWithCompletable * AdvancementUtils#validateCriteria has been renamed to validateProgressionValue * AdvancementUtils#validateCriteriaStrict has been renamed to validateProgressionValueStrict * MultiTasksAdvancement#ENABLE_ARBITRARY_SET_TEAM_CRITERIA has been renamed to ENABLE_ARBITRARY_SET_PROGRESSION * MultiTasksAdvancement#DISABLE_EXCEPTION_ON_ARBITRARY_SET_TEAM_CRITERIA has been renamed to DISABLE_EXCEPTION_ON_ARBITRARY_SET_PROGRESSION * The column 'Criteria' into the 'Advancements' table in the database has been renamed to 'Progression' * Added VALID_ADVANCEMENT_KEY, VALID_NAMESPACE, and VALID_KEY patterns to AdvancementKey * MultiTasksAdvancement#ENABLE_ARBITRARY_SET_PROGRESSION and MultiTasksAdvancement#DISABLE_EXCEPTION_ON_ARBITRARY_SET_PROGRESSION are now protected * Updated Libby to 1.1.3 * Minor fixes and improvements1.0.2UltimateAdvancementAPI 1.0.2Jul 23, 2023 * Added Javadoc for almost every class * Now the plugin version checks for updates at startup * Added validation for TeamProgressions: now DatabaseManager accepts only TeamProgressions that exists in cache. Old TeamProgressions are no longer accepted * Added IllegalOperationException * Default pool-size config value is now 10 * Minor fixes1.0.1UltimateAdvancementAPI 1.0.1Jul 23, 2023 * Added bStats * Added Versions utility class to handle versions1.0.0UltimateAdvancementAPI 1.0.0Jul 23, 2023 * Initial Release
Similar projects
Plugin →VeinMiner
Mine the whole vein on mining a single ore/block. Make the tedious mining experience to something satisfying and fun! FTB Ultimine alternative
99.3MSueta
Simple Voice Chat
A working voice chat in Minecraft!
76.3MSueta
Let Me Despawn
Improves performance by tweaking mob despawn rules. Say bye to pesky unintentional persistent mobs.
26.2MSueta
Chunky
Pre-generates chunks, quickly and efficiently
20.8MSueta
VeinMiner Enchantment
Veinminer Addon - Adds vineminer enchantment to enchanting tables. Only tools with the enchantment can veinmine
18MSueta
JourneyMap
Real-time map used for mapping in-game or your browser as you explore.
14.7MSueta