Developers

API reference

The calls available to script plugins through BA, and their external-pack equivalents.

Progress

BA.award(player, "gems:root", "emerald");  // complete one goal
BA.grant(player, "gems:root");             // complete an advancement
BA.revoke(player, "gems:root");
BA.isDone(player, "gems:root");            // true or false
BA.progress(player, "gems:hoarder");       // { done, total }

Events

BA.emit(player, "gems:polished", "ruby"); // progresses { trigger: "event", event: "gems:polished" }
BA.onComplete(({ player, advancement }) => {
  // every completion, from any pack
});

An event goal can require a value with data (a string or number, compared exactly) or, in script plugins, test it with match(data, player).

The screen

BA.open(player, { tabId: "gems:main" });

Content

BA.remove("minecraft:story/root");         // remove a built-in advancement
BA.english({ "my.tab.title": "My Tab" });  // English text for Discord when you use lang keys

External packs

Script pluginExternal pack (baClient.js)
BA.award(player, id, criterion)ba.award(player, id, criterion)
BA.grant / BA.revokeba.grant / ba.revoke
BA.emit(player, event, data)ba.emit(player, event, data)
BA.onComplete(fn)ba.onCompleted(fn)
BA.open(player, { tabId })ba.open(player, tabId)