Bugs should be reported on Discord or opening an issue on GitHub. BUG REPORTS IN THE REVIEWS WILL NOT BE CONSIDERED!
Simple - Create advancements for your server with ease
Async - Every operation is packet based. This means no lag for the server!
Advancement Visibility - Easy visibility system to customize advancement visibilities
Advancements for teams - The player progression is synchronized between members of the same team
Offline Player Support - Extensive and complete API to modify offline players progressions
Toasts - Send custom toast notifications
Database system - Fast and reliable savings wherever you want (SQLite, MySQL, In-Memory)
Disable vanilla advancements - Completely disable vanilla advancements without touching the server jar
This is a plugin for developers. If a plugin you use needs it, just download the correct version for you server and drop it into your plugins folder.
Add the dependency with maven to your project and start coding.
Check out the wiki to learn how to use the API.
There is also a shadeable version, see the
related wiki page to know more about it.
Fully customizable - Make your own advancements
Easy to use - Complete and well-documented API
Support teams of players - Let more players collaborate together thanks to native support for teams
Maven and shadeable version - API is distributed with maven and it can be shaded into your plugins
Great support - Ask your questions on our
Discord server Online generator - The API comes with
UltimateAdvancementGenerator, the official tool that helps you designing your advancements graphically
The official online tool to design your advancement graphically. The Java classes for your plugin are then generated by the tool automatically.
/ultimateadvancementapi progression get <advancement> [player]
Permission: ultimateadvancementapi.progression.get
/ultimateadvancementapi progression set <advancement> <progression> [player] [giveRewards]
Permission: ultimateadvancementapi.progression.set
Code (Java):
// Creates an advancement called "Example" with the description: // - "A random" // - "description." publicclass MainClass
extends JavaPlugin
implements Listener
{
private AdvancementTab advancementTab
; private UltimateAdvancementAPI api
;
@Override
publicvoid onEnable
(){ api
= UltimateAdvancementAPI.
getInstance(this);
@EventHandler
publicvoid onJoin
(PlayerLoadingCompletedEvent e
){ // Called after a player has successfully been loaded by the API Player p
= e.
getPlayer(); // Here you can show tabs to players advancementTab.
showTab(p
); } }