Artillex-Studios Documentation Help

đŸĒ Integrations

  • We have created our AxIntegrations library, which allows us to support third party plugins across all of our resources.

  • If you are a developer, feel free to open a pull request adding an integration to your plugin. If you are adding a paid plugin, and it isn't an api only jar, make sure to turn it into an empty (stub) jar first.

  • Note that it is almost impossible trying to keep all of these hooks up to date, so if you notice any issues with any of the integrations, please report them!

  • You don't have to download anything as AxIntegrations is included in our plugin jars.

Where are these integrations used?

✅ - this plugin is using this system

❌ - this plugin doesn't use this integration

Plugin

Backpack

Bank

Container

Currency

Custom Block

Level

Protection

Shop

Stacker

Team

Vanish

AxSellChests

❌

✅

❌

✅

❌

❌

✅

✅

❌

❌

❌

AxSpawners

❌

❌

❌

✅

❌

❌

✅

✅

❌

❌

❌

Supported Plugins

  • The list of supported plugins by each category. Next to the plugin name you can find the creator's username, so you figure out which exact plugin is supported.

  • Click on the category to open the list of supported plugins!

Backpack

  • ...

Bank

  • BentoBox (BentoBoxWorld) - âš ī¸ requires bank addon

  • KingdomsX (CryptoMorin)

  • SuperiorSkyblock2 (Ome_R)

Container

Currency

  • AxHoes (Artillex-Studios) [builtbybit] [spigot]

  • AxPickaxes (Artillex-Studios) [builtbybit]

  • AxQuestBoard (Artillex-Studios) [builtbybit] [spigot]

  • BeastTokens (MrAxeTv)

  • CoinsEngine (NightExpress) - âš ī¸ replaced by ExcellentEconomy

  • EcoBits (Exanthiax)

  • ExcellentEconomy (NightExpress)

  • PlayerPoints (Esophose)

  • RivalCredits (RivalDevelopment)

  • RivalHarvesterHoes (RivalDevelopment)

  • RivalMobSwords (RivalDevelopment)

  • RoyalEconomy (qKing)

  • SuperMobCoins (Swanis)

  • TokenManager (Realized)

  • UltraEconomy (TechsCode)

  • Vanilla Minecraft Experience

  • Vanilla Minecraft Level

  • Vault (Sleaker)

Custom Block

  • ItemsAdder (LoneDev)

  • Nexo (Boy0000)

  • Oraxen (Uxon)

Level

Protection

  • BentoBox (BentoBoxWorld)

  • ExcellentClaims (NightExpress)

  • HuskClaims (William278)

  • HuskTowns (William278)

  • IridiumSkyblock (Peaches_MLG)

  • KingdomsX (CryptoMorin)

  • Lands (Angeschossen)

  • PlotSquared (IntellectualSites)

  • SuperiorSkyblock2 (Ome_R)

  • Towny (TownyAdvanced)

  • WorldGuard (EngineHub)

Shop

  • AxGens (Artillex-Studios) [builtbybit] [spigot]

  • CMI (Zrips)

  • EconomyShopGUI (Gypopo) - â„šī¸ both the free and the premium versions are supported

  • EssentialsX (md678685)

  • ExcellentShop (NightExpress)

  • ShopGUIPlus (brc-plugins)

  • zShop (Maxlego08)

Stacker

  • AxStacker (Artillex-Studios) - âš ī¸ not released

  • RoseStacker (Esophose)

  • SuperiorSkyblock2 (Ome_R) - â„šī¸ only block stacking is available

  • WildStacker (Ome_R)

Team

  • ...

Vanish

  • EssentialsX (md678685)

  • PremiumVanish (MyzelYam)

  • SuperVanish (MyzelYam)

For Developers

How to add an integration using the AxIntegrations api?

  1. AxIntegrations is shaded and relocated into our plugins, so you must add the plugin's api jar into your project. See the specific plugin's developer api page for more information.

  2. Create your own integration class. Your class should extend one of these type classes. Check the comments on the type classes for more information on how you should create your own.

  1. Create a AxIntegrationsLoadEvent listener and register it in your plugin.

  2. In the listener, use the AxIntegrationsAPI provideIntegration (or registerIntegration) method to register your integration. Which method should you use?

provideIntegration

Adds the integration the same way as one of the builtin ones. It won't get automatically loaded, the user will have to manually select/enable your plugin for it to work. This is a safe and great way to register third party integrations in public plugins, so users aren't forced to use them.

registerIntegration

Automatically registers the integration without checking if the user have enabled it. Note that it can cause issues if the plugin only requires one of the integration type (for example if only one currency type is used) and if you registered a second one, it can break the plugin.

  1. Don't forget to add the plugin that you are adding your integration to into your plugin.yml's depend or softdepend list!

Full example

  • In this example I will show a full working example creating a currency integration named TestIntegration and adding it to AxSpawners.

  1. Add api jar into pom.yml (important: set the scope to provided so we are not including the api jar into our plugin)

<dependency> <groupId>com.artillexstudios</groupId> <artifactId>AxSpawnersAPI</artifactId> <version>4</version> <scope>provided</scope> </dependency>
  1. Add AxSpawners into the softdepend list:

softdepend: - AxSpawners
  1. Create our CurrencyIntegration

public class TestCurrencyIntegration extends CurrencyIntegration { // there are some additional optional methods that you can @Override, like setup if you need them public TestCurrencyIntegration(String currency) { // you should remove this parameter and set it to null if your currency plugin only support 1 currency super("TestIntegration", currency); } @Override public boolean worksOffline() { return true; } @Override public double getBalance(@NotNull Player player) { // ... } @NotNull @Override public CompletableFuture<Double> getBalance(@NotNull UUID uuid) { // ... } @NotNull @Override public CompletableFuture<Boolean> giveBalance(@NotNull UUID uuid, double v) { // ... } @NotNull @Override public CompletableFuture<Boolean> takeBalance(@NotNull UUID uuid, double v) { // ... } @Override public boolean canLoad() { return true; // add your check here if you have a situation where this integrations shouldn't be loaded } }
  1. Register the listener and integration. (note: if your integration class requires a listener or something else, you will have to do that yourself in the setup section)

public final class AxIntegrationsTest extends JavaPlugin implements Listener { @Override public void onEnable() { getServer().getPluginManager().registerEvents(this, this); } @EventHandler public void onLoad(AxIntegrationsLoadEvent event) { // when the event is called, just simple provide your integration class AxIntegrationsAPI.provideIntegration(TestCurrencyIntegration.class); } @EventHandler public void onReload(AxIntegrationsReloadEvent event) { // optional, if you need to do anything during an integration system reload } }
  1. Go to the plugin and enable the integration. Some integrations in some plugins are on by default. For example in AxSpawners → hooks.yml

sell-currency-plugins: plugin: 'TestIntegration' currency: 'mycurrency'
  1. And that's it, now you should see it registered after restarting: [AxSpawners] Loaded currency integrations: TestIntegration-mycurrency.

06 May 2026