Bugs should be reported on Discord or opening an issue on GitHub.
BUG REPORTS IN THE REVIEWS WILL NOT BE CONSIDERED!
If a Minecraft version just come out and you are waiting for the update, please check out the FAQ.
BUG REPORTS IN THE REVIEWS WILL NOT BE CONSIDERED!
If a Minecraft version just come out and you are waiting for the update, please check out the FAQ.
3.0.0 Beta is available on the
main-3.0.0 branch. The Javadoc for the beta is published
here.
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.
Spoiler: Maven
Code (HTML5):
<repositories>
<repository>
<id>fren_gor </id>
<url>https://nexus.frengor.com/repository/public/ </url>
</repository>
</repositories>
<dependency>
<groupId>com.frengor </groupId>
<artifactId>ultimateadvancementapi </artifactId>
<version>2.8.1 </version>
<scope>provided </scope>
</dependency>
<repository>
<id>fren_gor </id>
<url>https://nexus.frengor.com/repository/public/ </url>
</repository>
</repositories>
<dependency>
<groupId>com.frengor </groupId>
<artifactId>ultimateadvancementapi </artifactId>
<version>2.8.1 </version>
<scope>provided </scope>
</dependency>
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.
Try it now
UltimateAdvancementGenerator (NEW)
UltimateAdvancementGenerator (NEW)
UltimateAdvancementGenerator (OLD)
Video tutorial (Old Generator)
Video tutorial (New Generator)
WIP
Video tutorial (Old Generator)
Video tutorial (New Generator)
WIP
WARNING: The tool is still in BETA, please report bugs on GitHub.
Spoiler: Commands and Permissions
/ultimateadvancementapi <progression|grant|revoke> ...
Permission: ultimateadvancementapi.command
/ultimateadvancementapi grant <all|tab|one> ...
Permission: ultimateadvancementapi.grant
/ultimateadvancementapi grant all <player> [giveRewards]
Permission: ultimateadvancementapi.grant.all
/ultimateadvancementapi grant tab <advancementTab> [player] [giveRewards]
Permission: ultimateadvancementapi.grant.tab
/ultimateadvancementapi grant one <advancement> [player] [giveRewards]
Permission: ultimateadvancementapi.grant.one
/ultimateadvancementapi revoke <all|tab|one> ...
Permission: ultimateadvancementapi.revoke
/ultimateadvancementapi revoke all <player> [hideTab]
Permission: ultimateadvancementapi.revoke.all
/ultimateadvancementapi revoke tab <advancementTab> [player] [hideTab]
Permission: ultimateadvancementapi.revoke.tab
/ultimateadvancementapi revoke one <advancement> [player]
Permission: ultimateadvancementapi.revoke.one
/ultimateadvancementapi progression <get|set> ...
Permission: ultimateadvancementapi.progression
/ultimateadvancementapi progression get <advancement> [player]
Permission: ultimateadvancementapi.progression.get
/ultimateadvancementapi progression set <advancement> <progression> [player] [giveRewards]
Permission: ultimateadvancementapi.progression.set
Permission: ultimateadvancementapi.command
/ultimateadvancementapi grant <all|tab|one> ...
Permission: ultimateadvancementapi.grant
/ultimateadvancementapi grant all <player> [giveRewards]
Permission: ultimateadvancementapi.grant.all
/ultimateadvancementapi grant tab <advancementTab> [player] [giveRewards]
Permission: ultimateadvancementapi.grant.tab
/ultimateadvancementapi grant one <advancement> [player] [giveRewards]
Permission: ultimateadvancementapi.grant.one
/ultimateadvancementapi revoke <all|tab|one> ...
Permission: ultimateadvancementapi.revoke
/ultimateadvancementapi revoke all <player> [hideTab]
Permission: ultimateadvancementapi.revoke.all
/ultimateadvancementapi revoke tab <advancementTab> [player] [hideTab]
Permission: ultimateadvancementapi.revoke.tab
/ultimateadvancementapi revoke one <advancement> [player]
Permission: ultimateadvancementapi.revoke.one
/ultimateadvancementapi progression <get|set> ...
Permission: ultimateadvancementapi.progression
/ultimateadvancementapi progression get <advancement> [player]
Permission: ultimateadvancementapi.progression.get
/ultimateadvancementapi progression set <advancement> <progression> [player] [giveRewards]
Permission: ultimateadvancementapi.progression.set
Spoiler: Example Code
Code (Java):
// Creates an advancement called "Example" with the description:
// - "A random"
// - "description."
public class MainClass extends JavaPlugin implements Listener {
private AdvancementTab advancementTab ;
private UltimateAdvancementAPI api ;
@Override
public void onEnable ( ) {
api = UltimateAdvancementAPI. getInstance ( this ) ;
advancementTab = api. createAdvancementTab ( "your_tab_name" ) ;
AdvancementDisplay rootDisplay = new AdvancementDisplay (Material. GRASS_BLOCK, "Example", AdvancementFrameType. TASK, true, true, 0, 0, "A random", "description." ) ;
RootAdvancement root = new RootAdvancement (advancementTab, "root", rootDisplay, "textures/block/stone.png" ) ;
advancementTab. registerAdvancements (root ) ;
Bukkit. getPluginManager ( ). registerEvents ( this, this ) ;
}
@EventHandler
public void 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 ) ;
}
}
// - "A random"
// - "description."
public class MainClass extends JavaPlugin implements Listener {
private AdvancementTab advancementTab ;
private UltimateAdvancementAPI api ;
@Override
public void onEnable ( ) {
api = UltimateAdvancementAPI. getInstance ( this ) ;
advancementTab = api. createAdvancementTab ( "your_tab_name" ) ;
AdvancementDisplay rootDisplay = new AdvancementDisplay (Material. GRASS_BLOCK, "Example", AdvancementFrameType. TASK, true, true, 0, 0, "A random", "description." ) ;
RootAdvancement root = new RootAdvancement (advancementTab, "root", rootDisplay, "textures/block/stone.png" ) ;
advancementTab. registerAdvancements (root ) ;
Bukkit. getPluginManager ( ). registerEvents ( this, this ) ;
}
@EventHandler
public void 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 ) ;
}
}
Result:
bStats
Quick facts
- Edition: Minecraft Java
- File type: .jar
- Minecraft versions listed: 1.15, 1.16, 1.17
- How to install: Install the matching mod loader (Forge, Fabric or NeoForge) for your Minecraft version. → Download the .jar. → Put it in the .minecraft/mods folder and launch that loader profile.
- Where to get it: Opens on Spigot — not every file is mirrored on our own servers.
Install steps are the general flow for this file type — How to install Minecraft Java mods & modpacks walks through it step by step.
UltimateAdvancementAPI [1.15-26.2] is a free Minecraft Java mod. Compatible with Minecraft 1.15, 1.16, 1.17, 1.18 and newer. Downloaded 14,952 times (via Spigot). Download it and open it directly in the game.