All Mods Resource Packs Data Packs Shaders Modpacks Plugins
ItemJoin

ItemJoin

by RockinChaos • Downloads: 0 • Followers: 0
Description
Gallery
Changelog
Versions
Having issues with ItemJoin?

Please see Troubleshooting to resolve your problem.

This plugin grants the ability to give highly custom items to players upon joining, respawning, world-switch, region-enter, region-exit, first-join, and first-world. This is a multi-purpose plugin for giving items to players on a hub server, minigame servers, or even competitive servers such as survival, factions, skyblock, and other alternative game settings. You can set up an infinite amount of items for any specific world(s) you define. Players can be given the item every time upon joining or limit them to a set amount so they do not have any duplicate items. There are so many possibilities and limitless features but only if you want that ability. If there is a feature you are looking for it is likely to have already been implemented.

This plugin can be used with Chest Commands, BossShop, DeluxeMenus, or even CustomGUI which will allow the creation of menus made of items which ItemJoin could have an item with a command bound to open these menus or to execute commands on a compass to warp players to specific locations. There are no specific restrictions for how ItemJoin can interact with other plugins, as long as the plugin of interest has commands to execute their objectives such as /menu, then ItemJoin can utilize that as an ItemCommand.

This plugin is unique for its high functionality and hyperactive developer, if there is a feature that is missing or a new bug in the latest update it will be resolved swiftly. Out of the very few similar category plugins that give items, this is currently the only plugin out there that gives the player an item of their choice in a specific world, so players do not carry items to a black-listed world. If the world is not defined under the custom item players will not be given that item in the unspecified world although, items will transfer worlds unless it has been restricted, clear on world-switch, or use a multi-inventory plugin. ItemJoin is always expanding and adding new quality-of-life features, other plugins are either out of date, have inactive developers, missing features, or limiting items to a specific world is broken! ItemJoin was built on the idea of resolving these problems, to become the ultimate custom items on join plugin!


  • Individual items can be defined with specific itemflags which give the item special utilization and modified values.
  • Each item can be set with specific trigger events called triggers which will determine when the item will be given.
  • Items can be specified with their own specific ItemCommands which can be executed as an instance console, player, server, message, and more available in the wiki.
  • ItemCommands can be executed with certain actions if defined, multi-click, left/right-click, physical, and/or inventory click, which will allow the user to define different commands for each action.
  • Executed commands can be charged an economical cost and put on a custom cooldown with custom sounds and particles.
  • Set custom skull textures and skull owners to player head items.
  • Supports custom features for player heads, tipped arrows, books, banners, fireworks, leather armor, map items, and more.
  • Every item slot is supported, including armor slots and crafting slots.
  • Restrict certain items to a player's ip-address, reducing the chances of item abuse.
  • Give vanilla unmodified items as well as vanilla items that have the functionality of some defined features.
  • Dynamically updates items when a placeholder is changed.
  • Toggle blocking ALL item movement or ALL item pickups in specific worlds.
  • Items can be limited to specific gamemodes.
  • Specify custom item-usage cooldowns for items that have interaction events such as ender pearls or even food items.
  • Items can be given a probability of players receiving an item, a random chance.
  • General commands can be executed upon join, first-join, and world-switch.
  • Custom enchants and unsafe levels.
  • Toggle between clearing ALL or only ItemJoin items upon joining or world-switch.
  • Toggle overwriting existing items in the player's inventories.
  • Supports PlaceholderAPI, see the valid placeholders.
The number of features is limitless and it's thanks to all of you supporting this plugin and the developer.

Commands

You can either use /ItemJoin or /IJ to execute a command.

   itemjoin:
      description: Shows the plugin information, specific version, and author including a redirect
      to the help menu.
      permission: itemjoin.use
      aliases: [ij]
      usage: |
          /itemjoin
          Example: /itemjoin
   itemjoin help:
      description: Displays a page of the available help menu showing the available commands.
      permission: itemjoin.use
      usage: |
          /itemjoin help
          Example: /itemjoin help
          Example: /itemjoin help 2
          Example: /itemjoin help 3
          Example: /itemjoin help 4
          Example: /itemjoin help 5
          Example: /itemjoin help 6
          Example: /itemjoin help 7
          Example: /itemjoin help 8
          Example: /itemjoin help 9
   itemjoin reload:
      description: Reloads all plugin configuration files and caches any new data.
      permission: itemjoin.reload
      usage: |
          /itemjoin reload
          Example: /itemjoin reload - Configuration(s) Reloaded!
   itemjoin menu:
      description: Opens a GUI Menu to allow the view, modification, and creation of all custom items.
      permission: itemjoin.menu
      usage: |
          /itemjoin menu
          Example: /itemjoin menu - The creator menu has been launched!
   itemjoin info:
      description: Displays any needed information for the item you are holding, such as material type
      and in legacy versions the data value.
      permission: itemjoin.use
      usage: |
          /itemjoin info
          Example: /itemjoin info - The item type is WOODEN_SWORD.
   itemjoin world:
      description: Shows you what world you are in, useful for debugging purposes.
      permission: itemjoin.use
      usage: |
          /itemjoin world
          Example: /itemjoin world - You are in the world Pandora_the_end.
   itemjoin list:
      description: Shows you what items are defined and their respective enabled worlds.
      permission: itemjoin.list
      usage: |
          /itemjoin list
          Example: /itemjoin list - Current defines items are map-item, ultra-item.
   itemjoin updates:
      description: Checks for any available updates for the plugin.
      permission: itemjoin.updates
      usage: |
          /itemjoin updates
          Example: /itemjoin updates - You have requested to check for available plugin updates!
   itemjoin upgrade:
      description: Forces the plugin to update to the latest version if a new version is found,
      a server restart will be required for changes to take effect.
      permission: itemjoin.upgrade
      usage: |
          /itemjoin upgrade
          Example: /itemjoin upgrade - You have requested to force update the plugin.
   itemjoin permissions:
      description: Displays a page of every permission node showing which permissions are
      enabled/disabled for the player, including custom item nodes.
      permission: itemjoin.permissions
      usage: |
          /itemjoin permissions
          Example: /itemjoin permissions - You have the permissions itemjoin.reload.
          Example: /itemjoin permissions 2 - You have the permissions ultra-item.
   itemjoin get:
      description: Gives the specified custom item and the amount you specified to the player's inventory.
      permission: itemjoin.get, itemjoin.get.others
      usage: |
          /itemjoin get
          Example: /itemjoin get Ultra - You have received the item [Ultra]!
          Example: /itemjoin get Ultra 12 - You have received 12x of the item [Ultra]!
          Example: /itemjoin get Ultra RockinChaos - You have given the item [Ultra] to RockinChaos!
          Example: /itemjoin get Ultra RockinChaos 8 - You have given 8x of the item [Ultra] to RockinChaos!
   itemjoin getOnline:
      description: Gives the specified custom item and the amount to all online players.
      permission: itemjoin.get.others
      usage: |
          /itemjoin getOnline
          Example: /itemjoin getOnline Ultra - You have given the item [Ultra] to RockinChaos!
          Example: /itemjoin getOnline Ultra 8 - You have given 8x of the item [Ultra] to RockinChaos!
   itemjoin getall:
      description: Gives all custom items to the specified player.
      permission: itemjoin.get, itemjoin.get.others
      usage: |
          /itemjoin getall
          Example: /itemjoin getall - You have received all of the ItemJoin items.
          Example: /itemjoin getall RockinChaos - You have given RockinChaos all of the
          ItemJoin items that are available.
   itemjoin remove:
      description: Removes the specified custom item and the amount you specified from the player's inventory.
      permission: itemjoin.remove, itemjoin.remove.others
      usage: |
          /itemjoin remove
          Example: /itemjoin remove Ultra - You have removed the item [Ultra]!
          Example: /itemjoin remove Ultra 12 - You have removed 12x of the item [Ultra]!
          Example: /itemjoin remove Ultra RockinChaos - You have removed the item [Ultra] to RockinChaos!
          Example: /itemjoin remove Ultra RockinChaos 8 - You have removed 8x of the item [Ultra] to RockinChaos!
   itemjoin removeOnline:
      description: Removes the specified custom item and the amount from all online players.
      permission: itemjoin.remove.others
      usage: |
          /itemjoin removeOnline
          Example: /itemjoin removeOnline Ultra - You have removed the item [Ultra] from RockinChaos!
          Example: /itemjoin removeOnline Ultra 8 - You have removed 8x of the item [Ultra] from RockinChaos!
   itemjoin removeall:
      description: Removes all custom items from the specified player.
      permission: itemjoin.remove, itemjoin.remove.others
      usage: |
          /itemjoin removeall
          Example: /itemjoin removeall - You have removed all of the ItemJoin items from your inventory.
          Example: /itemjoin removeall RockinChaos - You have removed all of the ItemJoin items from RockinChaos.
   itemjoin enable:
      description: Enables the use of custom items for all players or specified players globally
      or specified player and world.
      permission: itemjoin.enable, itemjoin.enable.others
      usage: |
          /itemjoin enable
          Example: /itemjoin enable - You have globally enabled custom items.
          Example: /itemjoin enable RockinChaos - You have enabled custom items for RockinChaos!
          Example: /itemjoin enable RockinChaos world_the_end - You have enabled custom items for RockinChaos
          in the world world_the_end!
   itemjoin disable:
      description: Disables the use of custom items for all players or specified players globally
      or specified player and world.
      permission: itemjoin.disable, itemjoin.disable.others
      usage: |
          /itemjoin disable
          Example: /itemjoin disable - You have globally disabled custom items.
          Example: /itemjoin disable RockinChaos - You have disabled custom items for RockinChaos!
          Example: /itemjoin disable RockinChaos world_the_end - You have disabled custom items for RockinChaos
          in the world world_the_end!
   itemjoin purge:
      description: Purges ALL data or the specified data from the database file for ALL players
      or the specified player.
      permission: itemjoin.purge
      usage: |
          /itemjoin purge
          Example: /itemjoin purge - You have purged ALL data from the database file!
          Example: /itemjoin purge first-join - You have purged ALL first-join data from the database file!
          Example: /itemjoin purge first-world - You have purged ALL first-world data from the database file!
          Example: /itemjoin purge ip-limits - You have purged ALL IP-limit data from the database file!
          Example: /itemjoin purge first-join RockinChaos - You have purged ALL first-join data of RockinChaos
          from the database file!
          Example: /itemjoin purge first-world RockinChaos - You have purged ALL first-world data of RockinChaos
          from the database file!
          Example: /itemjoin purge ip-limits RockinChaos - You have purged ALL ip-limit data of RockinChaos
          from the database file!
Permissions

Please note; permissions are case-sensitive, including the world names!

   itemjoin.*:
      description: Grants access to all aspects of the plugin, including every permission node.
      default: false
      children:
          itemjoin.all: true
   itemjoin.all:
      description: Grants access to all aspects of the plugin, including every permission node.
      default: false
      children:
          itemjoin.use: true
          itemjoin.reload: true
          itemjoin.menu: true
          itemjoin.updates: true
          itemjoin.upgrade: true
          itemjoin.permissions: true
          itemjoin.list: true
          itemjoin.purge: true
          itemjoin.get: true
          itemjoin.get.others: true
          itemjoin.remove: true
          itemjoin.remove.others: true
          itemjoin.enable: true
          itemjoin.enable.others: true
          itemjoin.disable: true
          itemjoin.disable.others: true
          itemjoin.bypass.inventorymodify: false
   itemjoin.use:
      description: Grants access to basic plugin commands.
      default: true
   itemjoin.menu:
      description: Grants access to the menu command.
      default: false
   itemjoin.reload:
      description: Grants access to the reload command.
      default: false
   itemjoin.updates:
      description: Grants access to the updates command.
      default: false
   itemjoin.upgrade:
      description: Grants access to the upgrade command.
      default: false
   itemjoin.permissions:
      description: Grants access to the permissions command
      default: true
   itemjoin.list:
      description: Grants access to the list command.
      default: false
   itemjoin.purge:
      description: Grants access to the purge command.
      default: false
   itemjoin.get:
      description: Grants access to the basic get commands.
      default: false
   itemjoin.get.others:
      description: Grants access to all get commands that could affect other players.
      default: false
   itemjoin.remove:
      description: Grants access to the basic remove commands.
      default: false
   itemjoin.remove.others:
      description: Grants access to all remove commands that could affect other players.
      default: false
   itemjoin.enable:
      description: Grants access to the basic enable command.
      default: false
   itemjoin.enable.others:
      description: Grants access to all enabled commands that could affect other players individually.
      default: false
   itemjoin.disable:
      description: Grants access to the basic disable command.
      default: false
   itemjoin.disable.others:
      description: Grants access to all disable commands that could affect other players individually.
      default: false
   itemjoin.bypass.inventorymodify:
      description: Players with this permission will bypass any item movement restrictions.
      default: false
Item Permissions

These are the permission(s) required for players who are not server administrators to receive the item(s).

itemjoin.<world>.<item>:
description: Gives permission to get a specific item in a specific world.
Replace the <item> argument with the name of the specified item and
the <world> argument with the name of the world to receive that item.

itemjoin.<world>.*:
description: Gives permission to get all items from the specified world.
Replace the <world> argument with the name of the world to receive that item.
While this permission is NOT given by default, ALL items have their permission requirement disabled by default. In order for this permission to work (only if you intend on using item permissions), in the config.yml set Permissions.Obtain-Item to TRUE.
If you want to have a custom permission node for each item, you can set up individual ones which will supersede the default node shown above. All you have to do is add the permission node to your item, in this case, we will call it itemjoin.specialty but it can technically be anything such as chicken.fingers. The permission you choose will need to be given to the player and added to the item in this format permission-node: 'itemjoin.specialty'. Lastly, custom permission nodes can be used interchangeably with the default permission nodes in the instance where you only want a few items to have custom permission nodes.

Example(s):

itemjoin.world_the_end.*
itemjoin.world_the_end.ultra-item

items:
  example-item:
    id: DIAMOND_SWORD
    slot: 0
    permission-node: 'itemjoin.specialty'
If you want more detailed, better-explained commands and permissions they can be found on the wiki.

English Tutorial(s)

<iframe width="420" height="315" src="https://www.youtube.com/embed/gy7T0P9dVDA">






Italian Tutorial(s)




Does ItemJoin have its own Custom API?

  • Yes, ItemJoin does in fact allow other plugins to hook into it if needed. All API options are located under me.RockinChaos.itemjoin.api.ItemJoinAPI.
  • You can see all available methods here; Available Methods.
  • If you wish to see a method added feel free to submit a request on GitHub!

Does ItemJoin support placeholders?

  • Yes, ItemJoin has few placeholders by default but you can hook ItemJoin with PlaceholderAPI for ultimate placeholders! Just set PlaceholderAPI to true in the config.yml

Does ItemJoin support multiple worlds?

  • Yes, ItemJoin gives items to each specified world in the items.yml. Any server worlds not defined in the items.yml will not receive items. You can also have ItemJoin hook into Multiverse-Core & Multiverse-Inventories so you can have different items per world without clearing the player's inventory when they switch worlds. Just set Multiverse-core and Multiverse-Inventories to true in the config.yml.

Can I get items on first-join only?

  • Yes, ItemJoin has extreme compatibility with the first join mode. All you have to do is simply add the first-join itemflag to each item in the items.yml to get that item on the first join only. You can make it so only a set of items are given on first-join and others are given every time, or simply just make it so all items on first-join. If you want to receive the item every time you join again, just simply remove the first-join itemflag from the item.

Can I limit items to specific players' ip-address?

  • Yes, ItemJoin has extreme compatibility with ip limit mode. All you have to do is simply add the IP-limit itemflag to each item in the items.yml to limit those items to the specific player's ip. You can make it so only a set of items are given in an IP-limit and others are given regardless of the ip-address, or simply just make it so all items are in a limit. You can also specify the first-join itemflag to work alongside the IP-limit itemflag to limit the item's ip-address as well as give them upon first joining only.

Does ItemJoin have any dependencies?

  • ItemJoin has ZERO required dependencies but there are some optional ones that can make your experience much better!
  • You can learn more about these APIs / Hooks on the wiki page.
    • Vault - You can hook into Vault to use your economy on ItemJoin's commands!
    • PlaceholderAPI - You can use all of these placeholders on any part of ItemJoin! Whether it's commands, name, lore, skull-owner, book-lore, authors, etc! All parts of ItemJoin are hooked into PlaceholderAPI.
    • Multiverse-Core - Only used for Multiverse-Inventories as ItemJoin already has multi-world support without this.
    • MyWorlds - Allows easy multi-world support.
    • Multiverse-Inventories - Easily set world inventories using ItemJoin. You can make it so you get the items on join and world change without clearing the player's inventory! Very helpful with ItemJoin inventory management.
    • xInventories - Easily set world inventories using ItemJoin. You can make it so you get the items on join and world change without clearing the player's inventory! Very helpful with ItemJoin inventory management.
    • PerWorldInventory - Easily set world inventories using ItemJoin. You can make it so you get the items on join and world change without clearing the player's inventory! Very helpful with ItemJoin inventory management. I have recently seen this plugin start to pop up everywhere and it seems like an amazing alternative to Multiverse-Inventories.
    • PerWorldPlugins - As it is not recommended since ItemJoin is disabled in any world that is not defined under world-list but, ItemJoin does support PerWorldPlugins if you happen to have it running on your server for some reason and ItemJoin will be disabled in worlds that are not allowed by PerWorldPlugins.
    • AuthMe - Items will be given after the player types the login command and fully registers to AuthMe.
    • WorldGuard - Items will be given after the player enters the specified region defined under each item, upon leaving the region the items will be revoked. This allows the creation of region-only items and can only be used in the specified regions unless defined otherwise.
    • TokenEnchant - Items will now be able to be given specific TokenEnchantments when receiving them.
    • BetterNick - If items for some reason end up breaking and you use this plugin, setting this to true could resolve issues with items not working properly. This allows ItemJoin to easily find your original player name and UUID if you are nicknamed using BetterNick.
    • HeadDatabase - Items can now hook into HeadDatabase and fetch player heads from there using .
More Information on ItemJoin can be found here;

https://github.com/RockinChaos/ItemJoin/wiki








A massive thanks to those who have donated to help support the plugin's development. It is not the amount donated that matters, it is the fact that these supporters donated to support what they love. Even the smallest donation means so much because it grants the feeling that I have created something that is wanted. Every donation inspires and gives me the motivation to keep this plugin alive and thriving.
<Awesome Crafters>
    TheRobLP         =>         $168.04USD
    momoservertw     =>         $116.00USD
    Terbin           =>         $20.00USD
    Siuan            =>         $20.00USD
    JackScurvy       =>         $10.00USD
    Malum            =>         $10.00USD
    MrPranklez       =>         $10.00USD
    Jaocb            =>         $5.00USD
    Kubson_19        =>         $5.00USD
    Graatvis         =>         $3.00USD
    TheColdEmerald   =>         $1.00USD
    Vxrrxckter       =>         $1.00USD
    CloneMC          =>         $0.55USD
    Slimedog         =>         $UNKUSD
    piggalotgaming   =>         $UNKUSD
    XYBlue           =>         $UNKUSD
    Moemilords       =>         $UNKUSD
    Askarion         =>         $UNKUSD
</Awesome Crafters>
Supporters who are listed with a UNK value are those for who I am unable to calculate the amount donated. If you are of these supporters and know the amount you contributed, please contact me and I will fill in the proper value. If you wish to be a part of these amazing supporters, consider donating as it is the best way to say thanks to the developer!

★ Requested Changes ★
Please Pm me with feature requests as I will always look them over and get back to you.

Crossed Out requests mean that they have been completed.
no.1) ........

All Versions

+ Add Version
Name Game version Platforms Published Downloads Actions
26.2 26.1.x 1.21.x +13
Bukkit Folia Paper Purpur Spigot
1d ago 1
1.21.x 1.20.x 1.19.x +11
Bukkit Folia Paper Purpur Spigot
1d ago 1
1.21.x 1.20 1.19 +11
Bukkit Folia Paper Purpur Spigot
1d ago 1
1.21.x 1.20 1.19 +11
Bukkit Folia Paper Purpur Spigot
1d ago 1
1.21.6 1.20 1.19 +11
Bukkit Folia Paper Purpur Spigot
1d ago 1
1.21.5 1.20 1.19 +11
Bukkit Folia Paper Purpur Spigot
1d ago 1
1.21.4 1.20 1.19 +11
Bukkit Folia Paper Purpur Spigot
1d ago 1
1.21.x 1.20 1.19 +11
Bukkit Folia Paper Purpur Spigot
1d ago 1
1.21.1 1.20 1.19 +11
Bukkit Folia Paper Purpur Spigot
1d ago 1
1.20.x 1.19 1.18 +10
Bukkit Paper Purpur Spigot
1d ago 1
1.20.x 1.19 1.18 +10
Bukkit Paper Purpur Spigot
1d ago 1
1.20.4 1.19 1.18 +10
Bukkit Paper Purpur Spigot
1d ago 1
1.20.4 1.19.4 1.18.2 +10
Bukkit Paper Purpur Spigot
1d ago 1
1.20.x 1.19 1.18 +11
Bukkit Paper Purpur Spigot
1d ago 1
1.20.x 1.19 1.18 +11
Bukkit Paper Purpur Spigot
1d ago 1
1.19.x 1.18.x 1.17.x +10
Bukkit Paper Purpur Spigot
1d ago 1
1.19.x 1.18 1.17 +10
Bukkit Paper Purpur Spigot
1d ago 1
1.19 1.18 1.17 +10
Bukkit Paper Purpur Spigot
1d ago 1
#### Added:


#### Fixed:


#### Chore:

#### Added:


#### Fixed:


#### Changed:


#### Removed
#### Added:

#### Fixed:

#### Changed:
#### Added:



#### Fixed:



#### Changed:



#### Remove:

[6.1.4] 1.21.6 Support by RockinChaos on Oct 12, 2026
Download
#### Added:

``
model-components:
strings: 'chest_old'
colors: ORANGE
flags: 'true'
floats: '20.0'
``

#### Fixed:

#### Added:


#### Fixed:


#### Changed:

#### Added:


#### Fixed:


#### Changed:





  • Added:**
  • 1.21 & 1.21.1 Support.
  • Folia Support.
  • Folia is a new fork of PaperSpigot that adds regionized multithreading to the server.
  • no-clear itemflag
  • Prevents the player from using any plugins /clear commands to remove the custom item.
  • Executing /clear will now clear all items excluding any custom items with the no-clear itemflag.
  • %state% placeholder for toggle command messages.
  • erase-drops itemflag
  • This itemflag entirely removes the item from the player when they try to drop it or on-death.
  • Unlike the self-drops counterpart, the item is not given back.
  • Polish Language translation.
  • Thanks [@Coreli0](https://github.com/RockinChaos/ItemJoin/commits?author=Coreli0)!
  • selectable-delay
  • You can modify your selectable itemflag individually for each item by specifying selectable-delay: 1 on your item to increase the amount of time the user is allowed to have the item selected before they are forced to unselect it.
  • By default, the selectable itemflag no longer has a delay, you can add this delay to increase the amount of time the user can select the item. For each numerical value (1..., 2..., 3...) adds 10 ticks, so 1 is half a second, 2 is a full second, 4 is two seconds, etc.
  • disabled-regions
  • This was added as a replacement for region-priority, the idea of this is to allow the specification of enabled-regions while having the ability to disable specific regions inside the enabled-regions. There are other use cases for this but it was the main reason for being added.
  • This prevents region-enter and region-access items from being given in those regions, (region-access will have them auto-removed).
  • This also allows region-leave and region-egress items to be given in those regions (works best if they are a sub-region inside an enabled-region)
  • on-join item command
  • You can now add on-join item commands to custom items.
  • This will only trigger if the player already has the custom item while joining the server, not after getting the item.
  • This respects and waits for AuthMe authorization.
  • item command permissions
  • Every command action can have its own permission or set of permissions required to execute the command. In the example below I use interact, but this can be anything like interact-right, interact-left, inventory, inventory-creative, etc.
  • You can use a ! symbol in front of the permission to invert the condition, making the permission strictly not required to execute the command. If they have that permission and it's not set to false then they will not be allowed to execute the command.
  • Example;
``
interact:
  • 'console: eco give %player% 5000'
interact-permission:
  • '!itemjoin.group.owner'
  • 'itemjoin.group.newbies'
interact-fail-message: '%prefix% &cfailed to execute the interact-right commands.'
`
  • Inverted permission-node on custom items.
  • You can now use the ! symbol to invert the permission requirement from permission-node on custom items.
  • Example; permission-node: '!fish.cakes' - players without this permission will be given the item.
  • Entity selectors can now be used in plugin commands.
  • Example; /itemjoin get item_1 @a[team=afk]
  • commands-cost can now accept placeholders and double values.
  • Example; commands-cost: '%player_deaths%' - increases the cost to execute a command each time the player dies.
  • Example; commands-cost: 1.5 - will charge exactly $1.5 from the economy balance.



  • Fixed:**
  • AuthMe authentication.
  • AuthMe authentication was bypassed when any region trigger was defined.
  • stackable itemflag duplication.
  • self-drop itemflag
  • With an open GUI menu from any plugin you could drop the item from your inventory via your cursor.
  • placement itemflag
  • Containers can now be opened when the placement itemflag is present.
  • Previously the itemflag would prevent containers like chests from being opened.
  • item conditions
  • If a placeholder had a colon inside it, the conditions would fail to parse.
  • AutoCraft bug
  • Inventories smaller than 4 slots would cause the AutoCraftEvent to break, for example a furnace.
  • Data loading
  • Added a short delay to allow items to properly generate before finalizing the data.
  • fireworks use-cooldown
  • The use-cooldown would fail to function with fireworks if the player was actively flying with an Elytra.
  • region triggers debugging
  • Disabled "player has item" debug messages for region triggers as they are not necessary and are quite spammy.
  • /ij get fail count
  • Using /ij get, getAll, or getOnline with a non-ItemJoin item occupying the custom item slot would incorrectly say the player has all items.
  • Now the number of failed items to be given will be displayed if the custom item slot is occupied.
  • accidental removing of vanilla recipes.
  • Furnace, stone cutter, and enchant recipes were accidentally being removed on /ij reload resulting in them being non-functional.
  • The way recipes are removed has been changed to only remove ItemJoin recipes.
  • crafting items death-keep and death-drops
  • Crafting items were not being returned despite having the death-keep itemflag defined.
  • Crafting items were not being cleared if death-drops was defined.
  • death-keep breaking item animations.
  • death-keep online check.
  • death-keep itemflag with multi-slots
  • Multi-Slots were not being properly restored, instead they were being stacked.
  • AuthMe authentication
  • If a user hasn't logged in but hovered over a slot that previously had an ItemJoin item, the Item Commands could be triggered.
  • AuthMe does not remove items from the player inventory, they simply are made invisible (ghosts).
  • Illegal characters in chat.
  • Only occurred with alternative versions of Spigot, like PaperSpigot.
  • The issue typically was with using chat colors in item commands.
  • /ij get enabled-worlds checks.
  • The get commands were not checking to see if the player was in an enabled world for the item.
  • Clear-Items region clearing.
  • Items were constantly being cleared and restored instead of only doing so once.
  • The original functionality of Region-Enter clearing has been restored.
  • /ij dump (paste api)
  • Servers would crash in some geo-blocked locations.
  • count-lock bug with projectiles.
  • 1.20.5/1.20.6 broke the built-in API for blocking item consumption so a custom method has been added to replace this.
  • inventory-creative commands.
  • A bug would occur when shift+clicking "Destroy Items" in creative mode while having an item defined with inventory-creative commands.
  • Clicking "Destroy Item" would cause any item in the player inventory with inventory-creative defined to execute.
  • Check for updates bug.
  • Major version jumps would not be handled properly causing the updater to get confused.
  • Purge commands.
  • Trying to purge an entire data-set (not specifying a player) would result in a "command not found" error.
  • ChestSort API double-clicking bug.
  • Would cause custom items to duplicate when sorting.
  • Concurrent Exceptions.
  • Permission pages.
  • Would list duplicates.
  • Many many miscellaneous legacy Minecraft bugs.


  • Changed:**
  • selectable itemflag.
  • Removed delay and added other special cases like click-dropping items and giveTo triggers.
  • In /ij menu` the CustomModelData definition will now show a preview of the model data.
  • Rewrote timers to function better.
[6.0.7] Major bugfixes by RockinChaos on Oct 12, 2026
Download
  • Added:**
  • Permission-Switch trigger.
  • Adding this trigger to a custom item will allow it to be given at the moment the permission is granted to the user.
  • If the permission is revoked the custom item will be automatically removed.



  • Fixed:**
  • 1.17.0 - 1.17.1 bug with not being able to join the server when defining a custom book item.
  • JSON Books being non-functional for Legacy Minecraft versions 1.8 - 1.20.4.
  • Menu would break if items are empty or null in the items.yml.
  • Menu region-egress trigger being broken.
  • Was incorrectly referenced as region-engress instead of region-egress.
  • Menu disable triggers not removing all triggers.
  • A few new trigger values were missing instead, the list is just cleared rather than being checked.
  • Legacy Minecraft animation spam when updating the Player Inventory.
  • Even if no action was taken to the player inventory a force update was incorrectly triggered.
  • Legacy PotionMeta bug.
  • ItemMeta was incorrectly specified in the reflection.
  • Another VirusTotal false-flag.
  • This is very unlikely to happen again, the method has been entirely rewritten.
  • commands-cost bug.
  • Users with a balance in the negatives (less than zero) would not be allowed to execute commands regardless of commands-cost being specified.
  • commands-cost being set to zero or not defined now allows the commands to execute properly.



  • Changed:**
  • Dump URL is now interactable.
  • Easier to copy the URL.
  • Added:**
  • on-drop item command.
  • If you drop an item with on-drop command(s) specified these will execute.
  • Example;
``
example-item:
id: DIAMOND_SWORD
slot: 0
on-drop:
  • 'message: &cCome back! You left me behind!'
`
  • model-data, durability, and data saving using the in-game menu.
  • Previously this information was not saved when trying to import an existing item.
  • Snapshot update checking.
  • If you ever download a snapshot from our [integration server](https://ci.craftationgaming.com/downloads) ItemJoin now checks for updates to see if a new snapshot is available.
  • If a snapshot update is found it can be automatically fetched via /itemjoin upgrade.
  • Additionally, if a snapshot is outdated because it has officially hit the release stage, you will be moved off of the snapshot branch to update to the official release. You will **not** be automatically moved to the next snapshot branch (Aka v6.0.6 to v6.0.7). If you wish to move to the new snapshot versioning you will need to manually download it. This is done to encourage updating to the official release since initial snapshots after an official release are typically unstable.


  • Fixed:**
  • Bug with custom items being held in a cursor was not being removed.
  • Trigger conditions being erased when saving using the menu.
  • MCAntiMalware false-flag bug.
  • VirusTotal false-flag bug.
  • World-switch null item bugfix.
  • Item Statistics being lost when reloading (Enchantments, Placeholders, etc).
  • no-hat itemflag bugfix.
  • If this was enabled on the item and you typed in chat or executed a command that contained the characters hat the message or command would be blocked.
  • EX; What are you doing? would be blocked due to hat existing inside what.
  • Now supporting types are defined, currently EssentialsX /ehat, CMI /cmi hat, and General /hat are currently blocked, more can be added if needed in the future.
  • Null animations bugfix.
  • Items could continue to try to animate even when the player was offline or the item didn't exist for the player.
  • Death-Chest / Tombstone plugin bugfix.
  • death-drops / death-keep itemflags now properly prevent the item from being stored in a death chest from plugins like AngelChest.
  • Custom consumable potion effects bugfix.
  • These were functioning outside their defined enabled-worlds.
  • Null crafting items bugfix.
  • NMS bugfix.
  • The NMS checker would always think it was running a developer version.
  • This function exists to alert the player if they are using ItemJoin on a server version newer than what ItemJoin has been compiled and tested against.
  • Arbitrary item stacking bugfix.
  • Items with the arbitrary slot specified were not automatically stacking where applicable, instead they were always given in a new slot when using the /itemjoin get command.
  • Move-next itemflag bugfix.
  • If the player had already been given the item, it would try to move itself to the next available slot despite not needing to be given.
  • Limit-switch bugfix.
  • This was just straight-up broken and non-functional when WorldGuard was enabled on the server.
  • Limit-modes bugfix.
  • Old gamemode references were being used when respawning or switching worlds due to the item delay causing the item to be given (or not given) when it was supposed to.
  • Gamemodes are now properly checked at the exact time the item is to be given or removed.
  • Null NBT bugfix.
  • Some item types were being detected as ItemJoin items because they had NBT data even though it didn't match ItemJoin's data.
  • NBT data is now properly checked and verified.
  • Miscellaneous Menu bug fixes.
  • Bug with how items are displayed as loaded.
  • The incorrect number of items successfully loaded were listed in console at startup.
  • All items would be listed if they were successfully read instead of listing items that were successfully loaded into memory.
  • disposable itemflag duplication bugfix.
  • Items using the disposable itemflag but not having the item-store itemflag defined could result in item duplication when storing the item into chests or clicking on item-frames, armor stands, and other entities.
  • Major recipe bugfix for recipes with custom ItemJoin items defined.
  • These simply wouldn't work and would break the default crafting table functionality.


  • Changed:**
  • death-keep` itemflag.
  • This now functions more as a death-keep itemflag as the name implies.
  • Only items that currently exist at the time of death with the death-keep itemflag will be kept upon respawning.
  • If they do not meet the conditions to be given (enabled-worlds, enabled-regions, or limit-modes) the item will not be kept.
  • PlayerAutoCraftEvent whitelisting.
  • Plugins that utilize the PlayerAutoCraftEvent to open GUI menus can now request to be added to the whitelist.
  • Region triggers are now handled differently.
  • Instead of checking the regions when entering/leaving them the regions are always checked on player movement every 10 ticks.
  • This may result in higher timings but this makes the triggers more accurate reducing bugs and glitches.
[6.0.5] Bug fixes by RockinChaos on Oct 12, 2026
Download
<p align="center">
ItemJoin-v6.0.5-SNAPSHOT
</p>

## Changelog

  • Added:**
  • dynamic-count itemflag.
  • Automatically sets the items count back to its original defined stack size defined in the items.yml.
  • The dynamic or animate itemflag must be enabled for this to function.
  • This was originally a feature by default but now must be specified via this new itemflag.

  • Fixed:**
  • SkinsRestorer API bugs...
  • Hex colors not properly functioning for custom book pages or the messages command identifier.
<p align="center">
ItemJoin-v6.0.4-SNAPSHOT
</p>

## Changelog

  • Added:**
  • 1.20.3/1.20.4 Support.
  • Note that old JSON books will likely break!
  • Note that old items with the glowing itemflag will likely break!
  • splittable itemflag.
  • Items with this itemflag will not allowed to be "split" if their amount is greater than 1.
  • Blocks both right-click splitting and click-dragging.
  • damage command instance.
  • You can specify the amount of damage (durability) an item takes upon executing the command.
  • If durability hits 0 (or below) it will be automatically removed.
  • Example;
``
example-item:
id: DIAMOND_SWORD
slot: 0
interact:
  • 'damage: 15'
  • 'message: &cI have lost 15 durability points!'
`
  • on-kill command executor.
  • Executes the command set upon killing a Player.
  • Example;
`
example-item:
id: IRON_SWORD
slot: 0
on-kill:
  • 'message: &aYou killed a player!'
`

  • Fixed:**
  • Null check bug fixes for Legacy Minecraft.
  • Java 8 support.
  • Some newer methods were accidentally implemented resulting in errors in Java 8.
  • Death-drops bugfix with multi-slots.
  • Major recipe bug that caused a server crash.
  • Typically only occurred if you had an item with the vanilla itemflag defined and tried to craft items.
  • Implemented fall-back toggle messages into the lang.yml files.
  • Furthermore the plugin prefix has been removed from custom toggle messages that are defined per-item.
  • CheckforUpdates bugfix.
  • Just wasn't working, accidentally hard-coded instead of checking config.yml.
  • GameProfiles/PlayerProfiles are now properly cached.
  • Auto Chat-Tab-Completion for the upgrade command. Was still set to autoupdate which no longer exists.


  • Changed:**
  • enchantment: and enchantments: are now acceptable on an item.
  • Previously only enchantment: would function.
  • /itemjoin dump` has been switched to a self-hosted paste alternative.
  • Pastebin has been dropped, mainly because of it being blocked in quite a few regions.
  • Relocated ChaosCore package to be directly inside the main package.
  • Fixes conflicts with other plugins using ChaosCore.


  • Removed:**
  • Minecraft 1.7 support.
  • According to statistics, nobody is using this version and it was A PAIN to support.
  • There is no reason to be using this instead Minecraft 1.8 should be used to avoid combat mechanics...
<p align="center">
ItemJoin-v6.0.3-RELEASE
</p>

## Changelog

``
trim-test:
id: DIAMOND_CHESTPLATE
slot: CHESTPLATE
trim-meta: LAPIS:COAST
``


  • Fixed:**
  • Bug with enchantments not working after reload.
  • GameProfile bug fixes.
  • Designed a GameProfile caching system.
  • first-life itemflag bugfix.
  • Simply just wasn't working.
  • Item Recipe bugfix for Legacy Minecraft.
  • ProtocolAPI & TinyProtocol bugfixes.
  • Arbitrary slot bugfix for Legacy Minecraft.
  • JSON bugfix for Legacy Minecraft.
  • Bugfix for Book items in Legacy Minecraft.
  • Bugfix for global ItemMovement bypass.
  • Despite a bypass being set, all itemMovement was blocked.
  • Custom map image bugfix.
  • NMS Checker.
  • Using ItemJoin on a version of Minecraft NEWER than the version it was compiled for will now properly throw a not-supported warning.
  • Arbitrary slot bugfix for get and getall commands.
  • If one of the listed arbitrary slots were missing, it would say you had all items despite missing a defined slot.
  • Now all slots will be properly filled.


  • Changed:**
  • Reformatted a lot of the major code structure.
  • Implemented a "query" test in the menu.
  • Currently only setting the name of the item triggers the new query menu.

  • Removed:**
  • BetterNick dependency support.
  • It's a dead plugin that can't be downloaded anymore, use NickAPI instead.
[v6.0.2] 1.20 Support & Bug fixes by RockinChaos on Oct 12, 2026
Download
  • Added:**
  • 1.20/1.20.1 Support
  • ALLAY support to the item-store itemflag.
  • ALLAYs will no longer be able to take your item if the item is using the item-store itemflag.


  • Fixed:**
  • VirusTotal (False Flag) bugfix.
  • Major SQL/Database bugfixes.
  • Legacy skull items bugfix.


  • Changed:**
  • The glowing itemflag will now only register the glowing enchantment when the itemflag is actually used.
[v6.0.1] Major bug fix by RockinChaos on Oct 12, 2026
Download
<p align="center">
ItemJoin-v6.0.1-RELEASE
</p>

## Changelog

  • Fixed:**
  • Major bug preventing the SQL data from being loaded (breaking multiple features).
  • Database purging bug.
  • Enchant glowing bug on legacy Minecraft versions.
<p align="center">
ItemJoin-v6.0.0-RELEASE
</p>

## Changelog

  • Added:**
  • Minecraft 1.19.4 Support.
  • NMS Check.
  • You will now receive a warning if you are using ItemJoin on an unsupported version of Minecraft.
  • This will cause the plugin to enter compatibility mode and attempt to function as normal (although not guaranteed).
  • PlaceholderAPI support for Enchantments.
  • Teleport trigger
  • You can now give players items upon teleporting to new locations.
  • This also applies to the Active-Commands in the config.yml.
  • /itemjoin dump
  • Thank goodness, I can finally debug bug reports.
  • hide-enchants itemflag.
  • This... hides enchantments :)
  • not-hat itemflag.
  • Prevents the item from being equipped via the /hat command.
  • This applies to any plugin which uses the /hat command.
  • ItemCommand executors to Active-Commands (config.yml).
  • All executors for items now function for Active-Commands excluding delay and swap-item for obvious reasons.
  • The only addition is Active-Commands support the first-join executor whereas ItemCommands do not.
  • Portuguese language (pt-lang.yml) thanks to DeskTecc.
  • ignoreErrors in the config.yml.
  • Setting this to true will prevent admins from receiving messages upon login and reloading about ItemJoin errors.
  • Grindstone to the item-modifiable itemflag.


  • Fixed:**
  • A bug that made items from recipes lose their properties.
  • Bug that prevented crafting slots from being cleared using clear-items.
  • Bug with specific slots being able to bypass the item-modifiable itemflag.
  • 2x2 crafting recipe bugfix.
  • Items that are supposed to be in the player's crafting menu would be moved to the hotbar.
  • Misc NBT bugfix.
  • /itemjoin getall bugfix (console).
  • Server crashing bugfix.
  • Duplicate condition fail-messages being sent if more than one command was specified in a list.
  • Condition fail-messages being sent when using a command action that wasn't even sent...
  • ItemMap fetching bugfix.
  • Now more simple and more likely to return an ItemMap instead of null.
  • Enchantment level checking
  • If the level is detected to be below 1 it will automatically set the level as 1.
  • Animation / Dynamic bugfixes.
  • Major WorldGuard rework/bugfix.
  • ItemCommands bugfix.
  • on-equip bugfix.
  • Now properly only functions on right-clicking.
  • leather-color PlaceholderAPI bugfix.
  • Simply wasn't working at all...
  • Menu bugfixes.


  • Changed:**
  • Major plugin recode.
  • Now implements the use of the "ChaosCore" API.
  • This should make updating the plugin easier as well as streamline updates across all of my plugins.
  • Default config.yml no longer uses the console executor to set players to creative, instead it is now permission-based.
  • ChestSort Support.
  • If the player instance returns null (cannot find the player) then the ChestSort event is ignored and ItemJoin items are allowed to be moved.
  • Model-Data now supports Placeholders.
  • Reworked potions, now they even get the proper potion skin related to their potion effect!


  • Removed:**
  • Slot identifier from NBT Tags.
  • This is simply just no longer needed and causes unnecessary headaches.
  • The items (node name) specified as the path of the item are used instead to identify the item features.
[v5.2.5] 1.19 Support & Bugfixes by RockinChaos on Oct 12, 2026
Download
  • Added:**
  • Minecraft 1.19-1.19.2 Support
  • Recipes now support multiple(s)
  • The "result" now uses the count specified on the item.
  • The ingredients to achieve the result now support adding a count, for example; I:IRON_INGOT:#3 would require 3 iron in the specified I slot(s).
  • When specifying a custom item (node name) in the ingredients, the custom items count will be used instead.
  • Chat prevent to the config.yml
  • You can now block players from sending messages in ALL worlds or specified worlds by enabling Chat in the prevent section.
  • Useful for using this with a Bungee Proxy plugin, typically in reference to CloudSync.
  • VANILLA clear type for the clear items section in the config.yml
  • This will clear only VANILLA Minecraft items from the players inventory.
  • Therefore this excludes all ItemJoin items from being cleared.
  • Implemented Listed Recipes
  • You can now list a set of recipes and ingredients for a "result" item.
  • The function is as follows, brackets indicate a list [] and the list is split via a # symbol.
  • Example items;
``
recipe:
'1':
  • 'XAX'
  • 'DXB'
  • 'XCX'
'2':
  • 'XEX'
  • 'FXF'
  • 'XGX'
ingredients:
  • 'A:COAL'
  • 'B:IRON_INGOT'
  • 'C:DIAMOND'
  • 'D:EMERALD'
  • 'E:STRING'
  • 'F:BONE'
  • 'G:ENDER_PEARL'
`
  • NBT Properties Nesting/Listing Support.
  • You can now add nested or listed NBT Data to an item.
  • Example;
`
candestroy-item:
id: DIAMOND_PICKAXE
properties: 'CanDestroy:[minecraft:cobblestone#minecraft:dirt]'
`
`
canplace-item:
id: COBBLESTONE
properties: 'CanPlaceOn:[minecraft:diamond_block#minecraft:stone]'
`
`
random-item:
id: DIAMOND_BLOCK
properties: 'CanPlaceOn:[minecraft:emerald_block#minecraft:stone], CanDestroy:[minecraft:cobblestone#minecraft:dirt]'
`

  • Fixed:**
  • Major Recipe bugfixes
  • WorldGuard bugfixes
  • ChestSortAPI bugfixes
  • ItemJoin Menu bugfixes
  • Mostly related to animated/dynamic names, lores, etc.
  • Triggers priority bugfix
  • SkinsRestorer bugfixes
  • If proxy mode is enabled, ItemJoin will disable SkinsRestorer support.
  • Proxy mode is currently not supported by SkinsRestorer's API so ItemJoin cannot properly fetch the skins from the Bungee server.
  • /itemjoin getall` command bugfix
  • Region triggers bugfix
  • Limit-Switch trigger bugfix
  • fr-lang.yml bugfix
  • Setting the language to French would cause ItemJoin to break.
  • Thanks LymsMC!
  • Legacy data values bugfix


  • Changed:**
  • Recipes now support legacy item ids.
  • Do note this will not work on versions of Minecraft above 1.13.
  • Updates SkinsRestorerAPI
  • ItemJoin Menu now organizes items in order in the modify menu
  • Animate/Dynamic itemflag performance improvements
  • Limit-Switch trigger now respects regions
ItemJoin Icon
Download ItemJoin
Select game version
Select platform