AdditionsPlus | Custom Commands, Menus, Tablists, Scoreboards, Items & more | 1.8 - 1.18 2.6.0

Turn your creativity into reality! Everything your server needs in one plugin.
What is it?
AdditionsPlus is an all-in-one plugin that provides pretty much everything your server needs to be fully customized. Turn your creativity into reality! Create your own menus, (lobby)items, commands, scoreboard, and much more.

What are the features?
A complete list of features is listed below, so feel free to read that. But in short, it contains custom commands, items, menus, books, scoreboards, nametags, tab lists, signs, events, and much more.

Why would I buy it?
You are insane if you wouldn't. Ever had that crazy dream of a cool menu with click actions and sounds? - Done! That cool idea in your head of a custom command that trolls players? - Done! So many possibilities, really.
Oh, and did you know that you can almost recreate the whole Essentials plugin by just installing AdditionsPlus and creating some commands?

Don't like it? You can get 25% of your payment back when joining our Discord (but take it from us: you won't regret it, at all).

A minimum of Java 17 is required for this plugin to run!

Features (detailed description)
  • Custom Commands
    • Register commands
      • Registered commands show up while tab-completing.
      • Registered commands can also be executed from other plugins.
    • Command Arguments
    • Compatible with the console
    • Aliases {NEW}
    • Custom plugin names for tab-completion. {NEW}
    • Command suggestions when typing an invalid command. {NEW}
    • Permissions
    • No Permission message
    • Cooldowns
    • No Cooldown message
    • Actions
    • CUSTOM COMMAND GENERATOR [ONLINE]
  • Custom Menus
    • Custom menu title
    • Placeholders in menu title
    • Left-click actions for items
    • Right-click actions for items
    • Custom size
    • Custom open permission (message)
    • Custom open cooldown
    • Open actions
    • Close actions
    • Apply a command to the menu to open it in-game.
    • Register menu opening commands {NEW}
    • All items are configurable
    • Supports custom model data
    • Supports custom additions items using ci-ITEMNAME
    • Supports HeadDatabase/player heads
    • Supports ItemsAdder items {NEW}
    • Enchantments
    • Each item can now have its own cooldown! {NEW}
    • IN-GAME MENU CREATOR {NEW}
    • CUSTOM MENU GENERATOR [ONLINE]
  • Scoreboards
    • Supports (MVdW) PlaceholderAPI
    • Per World / General
    • Togglable per player
    • Anti-Flicker
    • Supports HEX and Gradient colors!
    • Up to 32 chars on 1.8-1.12
    • Unlimited characters on 1.13+!!
  • Nametags
    • Group-based
    • Animated
    • Permission-based
  • Create custom tablists
    • Per World
    • Supports (MVdW) PlaceholderAPI
  • Custom Player Names In Tab
    • Animated
    • Animations are in sync among all players with the same tag
    • Unlimited groups
    • Orders - Highest order gets to be the tag (0 is high)
    • Supports (MVdW) PlaceholderAPI
  • Create custom items
    • Cooldowns for items
    • Left-click actions
    • Right-click actions
    • Non-left-right-click actions
    • Everything of an item is configurable
    • Supports HeadDatabase/player heads
    • Supports custom model data
    • Supports ItemsAdder items
    • Enchantments
    • Item options for customizing your items even more, such as anti-moving, anti-drop, and more.
    • Colorable armor
    • Custom potions (effects, colors)
    • CUSTOM ITEM GENERATOR [ONLINE]
  • Create custom books
    • Book title
    • Book item name
    • Book item lore
    • Custom author
    • Custom generation (original, tattered, copy_of_copy, copy_of_original)
    • Inventory Slot (for giving the book)
    • Unlimited Pages
  • Interval actions
    • Random interval
    • Editable interval (in ticks)
    • Unlimited interval actions
  • Create custom signs
    • Supports color codes.
    • Supports PlaceholderAPI placeholders.
    • Per player placeholder support.
    • Actions when clicking the signs
  • Event Actions
    • 38 custom events
    • Perform actions when an event is being fired
    • Custom join message
    • Custom leave message
    • Custom Event API for Developers
    • CUSTOM EVENT GENERATOR [ONLINE]
  • Color Codes On Signs (&)
  • Color Codes In Anvils (&)
  • HEX Color support for all color-supported strings
    • Use the placeholder {c:#hex} (Example: {c:#42f5c5}text here)
  • Gradient Colors support for all color-supported strings on 1.13+:
    • Use the placeholder {#hex>}text{#hex<}.
  • Plugin hooks
    • PlaceholderAPI support
    • MVdWPlaceholderAPI support
    • Vault support
    • ProtocolLib support
    • HeadDatabase support
  • Plugin Event Integrations
  • Plugins Hooking Into Addititons+:
  • 74 Actions
  • 1.8x - 1.18x support
  • 13 Built-in Placeholders
  • Almost 100% customizable!
  • Frequently updated
  • 24/7 and fast support via Discord
  • Much more...
With all these features, you can create almost a full essentials plugin with /heal, /tp, /fly, /kill, /clear, /speed, /warp, /gamemode. Besides that, you can create a /calc command such as WorldEdit's one. You can also ditch that RandomTeleport plugin you have installed because you can generate a random number and teleport the players to that location safely.


videos-banner.png


The video above is uploaded by SoulStriker_.
Big thanks to him for showcasing the plugin.

depends-banner.png

AdditionsPlus does not have any hard dependencies. All plugins listed below are optional and bring extra features to the plugin.

PlaceholderAPI is a Soft-Dependency. Install it to use placeholders in the actions, item lores, item names, books, and all other texts.

MVdWPlaceholderAPI is a Soft-Dependency. Install it to use placeholders in the actions, item lores, item names, books, and all other texts.

Vault is a Soft-Dependency. Install it to use the [money], [vaultgroup], [novaultgroup], and [price] action.

HeadDatabase is a Soft-Dependency. Install it to use custom heads from their plugin. Use the format hdb-<headID> as material name.

ProtocolLib is a Soft-Dependency. Install it to use the [language] action.

MineTopiaSDB is a Soft-Dependency. Install it to use their custom events.

ASkyBlock is a Soft-Dependency. Install it to use their custom events.

SkyWarsReloaded is a Soft-Dependency. Install it to use their custom events, and open their menus using the [menu] action.
Make sure that all identifiers start with "swr-". Example: [menu]swr-killsound

join, join-team, join-single,
spectate, spectate-team, spectate-single,
options, taunt, cage/glasscolor, killsound, particleeffect, projectileffect, winsound

ItemsAdder is a Soft-Dependency. Install it to use their items in the custom items and menus, and to use their sounds.


commands-banner.png
/Command - Command Description - Permission

/additions - Main command - additions.command
/additions togglescoreboard [player] - Toggle scoreboard - additions.command.togglescoreboard
/additions updatescoreboard [player] - Force update your scoreboard - additions.command.updatescoreboard
/additions menus - List of registered menus - additions.command.menus
/additions books - List of registered books - additions.command.books
/additions commands - List of registered commands - additions.command.commands
/additions items - List of registered items - additions.command.items
/additions reload - Reload the plugin - additions.command.reload
/additions giveitem <item> [player] - Gives a custom item (to a player) - additions.command.giveitem
/additions givebook <book> [player] - Gives a custom book (to a player) - additions.command.givebook
/additions openmenu <menu> - Opens a custom menu - additions.command.openmenu
/additions testaction <action> - Performs an action string as the sender. - additions.command.testaction

/customitem info <item> - Get all info of an item
/customitem create <name> - Create an item of current handitem
/customitem remove <item> - Remove an item
/customitem setamount <item> <amount> - Sets the amount of the item
/customitem setdisplayname <item> <name> - Sets the display name of an item
/customitem setslot <item> <slot> - Sets the slot of an item
/customitem setcooldown <item> <cooldown> - Sets the cooldown of an item
/customitem setcooldownmessage <item> <message> - Sets the cooldown message
/customitem setpermission <item> <permission> - Sets the permission of an item
/customitem setnopermission <item> <message> - Sets the noPermission message of an item
/customitem actions <item> - Get the list of actions of an item
/customitem addaction <item> <action> - Add an action to the item's action list
/customitem removeaction <item> <actionInteger> - Removed an action from the item's action list
/customitem lore <item> - Get the lore of an item
/customitem addlore <item> <lore> - Add a lore line to the item's lore
/customitem removelore <item> <loreInteger> - Remove a lore line from the item's lore

The command below can be used to manage custom commands. Please note that if you have a command with more than one argument, you will have to put it between double quotes for the <name> arguments in the commands. For creating, removing, or getting all actions, you don't need to put it between quotes. The plugin will then recognize it as one argument.
Examples:
Custom command: hello
Permission command: /customcommand setpermission hello my.perm

Custom command: hello there everyone
Permission command: /customcommand setpermission "hello there everyone" my.perm

/customcommand create <name> - Create a new command
/customcommand addaction <name> <action> - Add an action to be executed when a player performs the command
/customcommand setnopermission <name> <message> - Set the message that will be displayed when the player doesn't have the required permission
/customcommand setcooldown <name> <cooldown in ticks> - Set the cooldown of the command
/customcommand setpermission <name> <perm> - Set the required permission for a command
/customcommand setregistered <name> <true/false> - Enable whether the command should be registered or not
/customcommand list - Get a list of all the commands
/customcommand removeaction <name> <number> - Remove an action. The actions can be found by using /customcommand actions <name>
/customcommand actions <name> - Get all actions from a command
/customcommand remove <name> - Remove a command
/customcommand setcooldownmessage <name> <message> - Set the message that will be displayed when the player udes the command more than once within the cooldown time.

/custommenu create <name> Create a new menu in-game.
/custommenu discard <name> Discard the menu you're currently are making. THIS CAN'T BE UNDONE!
/custommenu save This will export your current inventory, which you created, into a menu file. Reload the plugin to make it load.

Please note that if you stop the server or disable the plugin, all menus that players were making will be gone!
actions-banner.png
Below are all valid event identifiers. If you want to add any of these events to your server, you simply need to add it to your events.yml file. An example is:
Code:
join: # this is the identifier[/SIZE][/LEFT][/SIZE][/LEFT][/SIZE][/LEFT][/SIZE][/LEFT][/SIZE][/LEFT][/SIZE][/LEFT][/SIZE][/LEFT][/SIZE][/LEFT][/SIZE][/LEFT][/SIZE][/LEFT]
[SIZE=4]
[LEFT][SIZE=4]
[LEFT][SIZE=4]
[LEFT][SIZE=4]
[LEFT][SIZE=4]
[LEFT][SIZE=4]
[LEFT][SIZE=4]
[LEFT][SIZE=4]
[LEFT][SIZE=4]
[LEFT][SIZE=4]
[LEFT]  actions: # the list of actions to perform when this event is fired
  - '[msg]&aWelcome to the server, &b %player%&a!'












join:
description: Fired when the player joins the server
firstjoin:
description: Fired when the player joins the server for the first time
leave:
description: Fired when the player leaves the server
drop:
description: Fired when the player drops an item
placeholders:
- %dropped% : returns the dropped item name
fishing:
description: Fired when the player caught a fish
placeholders:
- %fished% : returns the caught fish/item name

kill:
description: Fired when the player kills another player
placeholders:
- %killed% : the name of the player who got killed
dead:
description: Fired when the player dies
shear:
description: Fired when the player shears an entity
itembreak:
description: Fired when the player breaks an item
placeholders:
- %item% : display name of the broken item
consume:
description: Fired when the player consumes an item (food)
placeholders:
- %consumed% : the display name of the consumed item
entitykill:
description: Fired when the player kills an entity (not a player)
placeholders:
- %killed% : killed entity type name
resourcepack-installed:
description: Fired when a server resource pack has successfully been installed.
resourcepack-failed:
description: Fired when a server resource pack has failed to download.
resourcepack-accepted:
description: Fired when a player accepted to install the resource packs.
resourcepack-declined:
description: Fired when a player declined to install the resource packs.
blockbreak:
description: Fired when a block got broken by a player. This is a special event because this event can be also be used for specific material types only (idea by ). You do that by using blockbreak-MATERIAL_TYPE (blockbreak-STONE).
teleport:
description: Fired when a player teleports.
placeholders:
- %from_x% : previous X location.
- %from_y% : previous Y location.
- %from_z% : previous Z location.
- %from_world% : previous world name.
- %to_x% : new X location.
- %to_y% : new Y location.
- %to_z% : new Z location.
- %to_world% : new world name.
world-change:
description: Fired when a player switches worlds.
placeholders:
- %from_world% : previous world name.
- %to_world% : new world name.


In the spoilers below are the events that are from another plugin.
minetopiasdb-receivelevelpayment:
description: Fired when the player receives his level payment
placeholders:
- %payment% : returns the level payment
minetopiasdb-atmopen:
description: Fired when the player opens an ATM
placeholders:
- %opentype% : returns how the player has opened the ATM
minetopiasdb-breakleg:
description: Fired when the player breaks his leg
minetopiasdb-changelevel:
description: Fired when the player's level changes
placeholders:
- %reason% : returns how the level changed (command, api, admintool)
minetopiasdb-changetime:
description: Fired when a player's time changes
placeholders:
- %days% : returns the new amount of days
- %hours% : returns the new amount of hours
- %minutes% : returns the new amount of minutes
- %seconds% : returns the new amount of seconds
minetopiasdb-staffchat:
description: Fired when the player talks in the staff chat
placeholders:
- %message% : returns the message that the player sent
minetopiasdb-openphone:
description: Fired when the player opens his phone
placeholders:
- %reason% : how the phone got opened (command, item)
- %number% : returns the player's phone number
minetopiasdb-sentsms:
description: Fired when a player sends a SMS
placeholders:
- %message% : returns the message that has been sent
- %receiver% : returns the name of the receiver
- %receiver_number% : returns the phone number of the receiver
askyblock-completechallenge:
description: Fired when a player completes a challenge
placeholders:
- %challenge% : returns the name of the challenge
- %reward_exp% : returns the exp reward
- %reward_money% : returns the money reward
- %reward_text% : returns the text reward
askyblock-completechallengelevel:
description: Fired when a player completes a challenge level
placeholders:
- %level_new% : returns the new level
- %level_old% : returns the old level
askyblock-coopjoin:
description: Fired when a player joins an island team as a coop member
placeholders:
- %inviter% : returns the player who invited the other player to join the island as coop member
- %team_leader% : returns the team leader of the island
askyblock-coopleave:
description: Fired when a player leaves his island as a coop member
placeholders:
- %expeller% : returns the expelling player
- %team_leader% : returns the team leader of the island
askyblock-islandchangeowner:
description: Fired when the owner of an island changes
placeholders:
- %owner_new% : returns the new owner
- %owner_old% : returns the old owner
askyblock-islanddelete:
description: Fired when a player deletes his island
askyblock-islandenter:
description: Fired when a player enters an island
placeholders:
- %island_owner% : returns the owner of the entered island
- %team_leader% : returns the team leader of the entered island
askyblock-islandexit:
description: Fired when a player exists an island
placeholders:
- %island_owner% : returns the owner of the exit island
- %team_leader% : returns the team leader of the exit island
swr-kill:
description: Fired when a player kills another player
placeholders:
- %arena% - name of the arena
- %killed% - name of the killed player
swr-win:
description: Fired when a player wins a game
placeholders:
- %arena% - name of the arena
swr-death:
description: Fired when a player dies (not killed)
placeholders:
- %arena% - name of the arena
swr-join:
description: Fired when a player joins a game
placeholders:
- %arena% - name of the arena
swr-leave:
description: Fired when a player leaves a game
placeholders:
- %arena% - name of the arena
itemsadder-customblockinteract:
description: Fired when a player interacts with a custom ItemsAdder block
placeholders:
- %item% - display name of the custom block item
- %material% - material of the custom block item
- %namespaceid% - namespace id of the block
- %action% - the click action used to interact
itemsadder-customblockbreak:
description: Fired when a player breaks a custom ItemsAdder block
placeholders:
- %item% - display name of the custom block item
- %material% - material of the custom block item
- %namespaceid% - namespace id of the block
itemsadder-customblockplace:
description: Fired when a player places a custom ItemsAdder block
placeholders:
- %item% - display name of the custom block item
- %material% - material of the custom block item
- %namespaceid% - namespace id of the block
By default, the events.yml only contains a few events. You can remove everything you want; everything is optional. All events above are valid event ids. Plugins have the ability to add their own events to AdditionsPlus.

Some events contain extra options that are optional to add. An example is the join event which allows you to change the joinMessage which will override the bukkit join message.
Code:
join:
  joinMessage: '&a&l%player% joined the server'
  actions: []
leave:
  leaveMessage: '&c&l%player% left the server'
  actions: []
dead:
  deathMessage: '&c%player% is soon to be hosting his own funeral as a ghost. Please be there, he''d like that. &lR.I.P'
  actions: []
custom-commands-banner.png
Creating custom commands isn't hard with this easy system. It practically works the same as the events, but you do it in the commands.yml file, and instead of the event name, you type the command.
All actions can be used on either the events or the commands.
Code:
help: # would be '/help' ingame
  actions:
  - '[msg]&7---- &bHelp Menu &7----'
  - '[msg]&b/helpop &7Get help from an operator'
  - '[msg]&r'
  - '[msg]&fpage 1/2'
help 1: # would be '/help 1' ingame
  actions:
  - '[msg]&7---- &bHelp Menu &7----'
  - '[msg]&b/helpop &7Get help from an operator'
  - '[msg]&b/help 2 &7Next page of the help menu
  - '[msg]&r'
  - '[msg]&fpage 1/2'
help 2: # would be '/help 3' ingame
  actions:
  - '[msg]&7---- &bHelp Menu &7----'
  - '[msg]&b/server &7Select a server'
  - '[msg]&b/help 1 &7Previous page of the help menu'
  - '[msg]&r'
  - '[msg]&fpage 2/2'

Commands can have placeholder arguments.
Placeholders for arguments are: {integer}, {double}, {boolean}, {string}, {player} and {}.
They all require exactly what's between the brackets {}.
But {} (empty brackets) is a long message with no limit or nothing. So you could use it to make it a broadcast command:
Code:
broadcast {}:
  actions:
  - '[msg][everyone]&7[&bBC&7] &a{arg1}'
All placeholder arguments in the name can also be used in the actions.
If your command is 'test this is a {string}`, you have 4 arguments. The format is {arg<NUMBER>}. So {arg1} returns "this", {arg2} "is", {arg3} "a" and {arg4} returns the specified string.

The commands can also have permissions. If you don't specify the permission, everyone will be able to perform the command. If you do specify the permission, the player needs it to perform it.
If the player doesn't have permission, the noPermission message will be sent to the player. This can be specified per command. If you don't specify the noPermission message, the default message will be sent: "&cYou don't have permission to do this".
The correct usage of permissions and the noPermission message is:
Code:
rankup 3:
  permission: yourperm.rankup.2
  noPermission: '&cYou must be at least rank 2 to rankup to rank 3. You can buy ranks in our store.'
  actions:
  - '[title]&a&lRANKED UP\n&7You are now level 3!'
  - '[msg]&aCongratulations! You are now rank 3.'
  - '[console]pex user %player% add yourperm.rankup.2'

Additions+ also offers the usage of cooldowns in commands. Use %time% in the cooldownMessage for the remaining time.
The correct usage of these features is:
Code:
mycommand:
  cooldown: 1200 # 1200/20 = 60 seconds ( 1 minute )
  cooldownMessage: '&cYou can only use this command once per minute. You have to wait for another %time%'
  actions:
  - '[msg]&aThis is a command with a cooldown'

Version 2.0.0 allows you to add aliases to commands. Just add the aliases to the command configuration and it should work fine. This requires the command to be registered. This will happen automatically if you have set any aliases.
Code:
msg:
  aliases:
  - tell
  - whisper

It is required to add the option register: true to the command configuration in order to register it to bukkit. It will then pop-up in the tab complete, and other plugins can recognize it.

When you don't have permission:
bnOXWxr

And also the command in the console is being performed. The permission has been successfully added to my permission list.

custom-menus-banner.png
Creating custom menus isn't hard to do. The plugin will automatically generate a 'menus' folder when enabling it. In that folder, you create your custom menus. Each menu is separated into its own YAML file. The name of the menu is the file name without .yml.

You simply create a YML file with as name the menu name. You only use this name to open the menu in the /additions command or in actions.
Example: example.yml. You open this menu with /additions openmenu example.

You can literally set everything of an item in the new version. You can add enchantments, add item flags to hide the enchants, and all other things. Note that all messages support color codes and Placeholders.
Below are the non-item options you can set for the menu:​
title:
Description: The title of the menu
Type: String
Required: true
command:
Description: The command to open the menu
Type: String
Required: false
register_open_command:
Description: Whether you want to register the open command to bukkit. The console will then be able to open it for a player as well with '/<command> [player]'.
Type: Boolean
Required: false
cancel_closing:
Description: If set to true, the player will not be able to close the menu and it can only be closed by using the [close] action.
Type: Boolean
size:
Description: Size of the menu. Must be either, 9,18, 27, 36, 45 or 54.
Type: Integer
Required: true
permission:
Description: The permissions needed to open the menu
Type: String
noPermission:
Description: The message that will be sent when a player doesn't have the specified permission to open the menu
Type: String
cooldown:
Description: The cooldown amount in ticks before the player can open the menu again. (1 second = 20 ticks)
Type: Long
cooldownMessage:
Description: The message that will be sent when a player is on cooldown for that menu. Use %time% for the remaining time
Type: String
openActions:
Description: Actions that will be performed when the player opens the menu
Type: String List
closeActions
Description: Actions that will be performed once the player closes the menu
Type: String List
If you set all of that, your file will look something like this:
Code:
title: '&b&lExample Menu (%player%)'
size: 9
commands: examplemenu
# optional
permission: myperm.examplemenu
noPermission: '&cWell.. This is too exclusive for your eyes :)'
cooldown: 200 # 200 ticks = 10 seconds (200/20=10)
cooldownMessage: '&cYou can only open this menu once per 10 seconds. You have to wait for another %time%'
openActions:
- '[msg]&aYou opened the menu :)'
closeActions:
- '[msg]&cYou closed the menu :('
Now you're ready to add the contents to the menu. You add all items under the content section. Then add the slot number (starting at 1, not 0) under it between brackets: '1'. Like this:
Code:
content:
  '1':
  '2':
Then you set the item information. Below is a list of all options you can add to the item to customize it, which is literally everything possible.
material:
Description: The material type of the item. If you have the HeadDatabase plugin, you can set this item to a custom head using "hdb-<headID>". Replace <headID> with the ID of the head. You can also set a player head using "head-<player>". Replace <player> with the player's name (this also supports the placeholder %player%)
Type: Material Type
Required: True
data:
Description: The data of the item (for 1.8-1.12 only)
Type: Byte (Integer)
displayName:
Description: The display name (title) of the item
Type: String
Required: True
amount:
Description: The amount of the item
Type: Integer
durability:
Description: The durability of the item
Type: Short (Integer)
lore:
Description: The lore of the item
Type: String List
itemFlags:
Description: The item flags of the item. Click here for a list of item flags
Type: ItemFlag List
enchantments:
Description: The enchantments that should be applied to the item. To set the enchantment level use the format ENCHANTMENT:LEVEL (DURABILITY:3). Click here for a list of enchantments.
Type: Enchantment List
unbreakable:
Description: Whether the item should be unbreakable or not
Type: Boolean
left_click_commands:
Description: A list of actions that will be performed when you left-click the item
Type: String List
right_click_commands:
Description: A list of actions that will be performed when you right-click the item
Type: String List
If you did all that, the file will look something like:
Code:
title: '&b&lExample Menu (%player%)'
size: 9
command: examplemenu
# optional
permission: myperm.examplemenu
noPermission: '&cWell.. This is too exclusive for your eyes :)'
cooldown: 200 # 200 ticks = 10 seconds (200/20=10)
cooldownMessage: '&cYou can only open this menu once per 10 seconds. You have to wait for another %time%'
openActions:
- '[msg]&aYou opened the menu :)'
closeActions:
- '[msg]&cYou closed the menu :('
# menu items
content:
  '1': # slot 1
    material: STONE
    data: 0
    amount: 2
    displayName: '&7Some random &lStone'
    lore:
    - ''
    - '&7This stone could be yours, &b%player%'
    - '&7This another lore item :)'
    enchantments:
    - DURABILITY:3
    - FIRE_ASPECT:10
    - MENDING
    itemFlags:
    - HIDE_ATTRIBUTES
    - HIDE_DESTROYS
    - HIDE_ENCHANTS
    - HIDE_PLACED_ON
    - HIDE_POTION_EFFECTS
    - HIDE_UNBREAKABLE
    unbreakable: true
    left_click_actions:
    - '[msg]&7You left-clicked a random stone'
    right_click_actions:
    - '[msg]&7You right-clicked a random stone'
  '2':
    material: head-%player%
    amount: 1
    displayName: '&b&lYour head'
    lore:
    - ''
    - '&7This is your own head'
    - '&7Don''t worry. It is not chopped off'
    itemFlags:
    - HIDE_ATTRIBUTES
    - HIDE_DESTROYS
    - HIDE_ENCHANTS
    - HIDE_PLACED_ON
    - HIDE_POTION_EFFECTS
    - HIDE_UNBREAKABLE
Oof. You now know how to create a menu :)
[/LEFT]
custom-items-banner.png
The custom items have the exact same possibilities as the items in the menu and work the exact same. Below is a list of all things you can change about the item.
Two example items are included by the plugin and will be put in the plugin folder once the plugin is running.

permission:
Description: The permissions needed to open the menu
Type: String
noPermission:
Description: The message that will be sent when a player doesn't have the specified permission to open the menu
Type: String
cooldown:
Description: The cooldown amount in ticks before the player can open the menu again. (1 second = 20 ticks)
Type: Long
cooldownMessage:
Description: The message that will be sent when a player is on cooldown for that menu. Use %time% for the remaining time
Type: String
actions:
Description: A list of actions that will be performed when another click action is being performed than left- /right-click.
Type: String List
left_click_actions:
Description: A list of actions that will be performed when you left-click the item.
Type: String List
right_click_actions:
Description: A list of actions that will be performed when you right-click the item.
Type: String List

custom_model_data:
Description: Custom value that allows you to change the item icon through a texture pack.
Type: Number/String
material:
Description: The material type of the item. If you have the HeadDatabase plugin, you can set this item to a custom head using "hdb-<headID>". Replace <headID> with the ID of the head. You can also set a player head using "head-<player>". Replace <player> with the player's name (this also supports the placeholder %player%)
Type: Material Type
Required: True
data:
Description: The data of the item (for 1.8-1.12 only)
Type: Byte (Integer)
displayName:
Description: The display name (title) of the item
Type: String
Required: True
amount:
Description: The amount of the item
Type: Integer
durability:
Description: The durability of the item
Type: Short (Integer)
lore:
Description: The lore of the item
Type: String List
itemFlags:
Description: The item flags of the item. Click here for a list of item flags
Type: ItemFlag List
enchantments:
Description: The enchantments that should be applied to the item. To set the enchantment level use the format ENCHANTMENT:LEVEL (DURABILITY:3). Click here for a list of enchantments.
Type: Enchantment List
unbreakable:
Description: Whether the item should be unbreakable or not
Type: Boolean
itemOptions:
Description: All custom options that should be applied to the item. Below is a list with all item options
Type: String List
slot:
Description: The slot the item will be put in if specified. If you don't specify this, it will just be added to the inventory. Slots start from 0
Type: Integer

The custom item's name is the sections name. Example:
Code:
diamond: # item name
  material: DIAMOND
  slot: 3 # actually slot 4

Item Options:
DISABLE_INVENTORY_MOVING:
Description: This disables the item from being moved around the inventory.
DISABLE_DROP
Description: This disables the item from being dropped.
DISABLE_BLOCK_BREAK
Description: This disables breaking blocks with the item in the hand.
DISABLE_BLOCK_PLACE:
Description: This disables the item from being placed. This is only necessary when the item is a block.
DISABLE_CONSUME:
Description: This disables the item from being consumed by the player. This is only necessary when the item is food.
DISABLE_PVP:
Description: This disables PvPing with the item in the hand. There will then no damage be given.​
join-items-banner.png
Follow this guide to turn your custom items into join items.
It's really easy to use, and you can ditch CustomJoinItems.

First, create your custom item in the customitems.yml file. Read the explanation above to learn how. Make sure to specify the slot of the item. You also have to make sure that you add the 'DISABLE_INVENTORY_MOVING' and the 'DISABLE_DROPPING' itemOptions.

Most join items perform commands for eg a join menu. You can also create a join menu with Additions.
Just add the command/menu or whatever other action to the action list of the item and when they click it, it will all happen :)

Once you've done all that, you go to the events.yml. There you add the [citem] action to the action list of the join event. Do it like this:
Code:
join:
  actions:
  - '[citem]youritem'
  - '[msg]&bWelcome to our server, %player%!'
Make sure to replace 'youritem' with the name of your custom item.

Custom Books

Just like everything else, custom books are really easy to create. Just like the menu system, you have one file per book located in the books folder.
The name of the book is the name of the file excluding .yml.

These are the things you can add to the file to customize your book:
title:
Description: The title of the book.
Type: String
author:
Description: The author of the book
Type: String
generation:
Description: The generation of the book. Could be either ORIGINAL, TATTERED, COPY_OF_ORIGINAL or COPY_OF_COPY
Type: Generation (String)
pages:
Description: A list of pages for the book
Type: String List
slot:
Description: The slot where the book should be added to
Type: Integer
displayName:
Description: The displayName of the book (overrides the title)
Type: String
lore:
Description: The lore of the book item (overrides the author and generation which are in the lore)
Type: String List

So if you add all that. Your file will look like this:
book-example.png


placeholders-banner.png
If you have PlaceholderAPI installed, you can use their placeholders.
If you have not, you're lucky! We've implemented some custom placeholders as an alternative for the PlaceholderAPI ones.

If you have MVdWPlaceholderAPI installed, you can also use their placeholders.

Per-Event placeholders:
%dropped% returns the item type of the dropped item. For the drop event only.
%fished% returns the fish type of the caught fish. For the fishing event only.
%killed% returns the player name when using in the kill event. It returns the killed entity's type in the entitykill event.
%item% returns the item's displayName. For the itembreak event.
%consumed% returns the consumed item's displayName. For the consume event.

Other languages:
%gevallen% is het item type van het gedropte item. Alleen voor het drop event.
%gevist% is het type vis dat is gevangen. Alleen voor het fishing event.
%vermoord% is de naam van de vermoordde speler als je het in het kill event gebruikt. Het is het type entity/wezen wanneer je het in het entitykill event gebruikt.
%item% is de weergave naam van het item. Alleen voor het itembreak event.
%opgegeten% is de weergave naam van het gegeten item. Alleen voor het consume event.

All-over placeholders:
%player% returns the player's name.
%uuid% returns the player's uuid.
%player_name% returns the player's name.
%player_gamemode% returns the player's gamemode.
%player_x% returns the player's x coord.
%player_y% returns the player's y coord.
%player_z% returns the player's z coord.
%player_world% returns the player's world name.
%player_uuid% returns the player's UUID.
%player_is_op% returns whether a player is opped or not.
%player_health% returns the player's health.​

actions-banner.png
Because the page is getting too long, we've moved the list of actions and their descriptions and usage to our own website.
Click here to view the list of actions (currently 63).

refund-banner.png


Terms And Conditions
All our premium resources have the same terms and conditions. By buying this resource, you will agree with them. So read them carefully.
Click the link below to view the terms and conditions.
https://www.gcnt.net/terms-of-service

Latest updates

  1. 1.18 SUPPORT + MIGRATED TO JAVA 17 + FIXES

    2.6.0 Hey! From v2.6.0 and up, we will be using Java 17. This means that you must at least run...
  2. FIXED [PLACEHOLDERS] ACTION + NEW CONFIG OPTION FOR [EVERYONE] ACTION

    2.5.2 Fixed [placeholders] action not replacing the placeholders as the specified player. Added...
  3. Fixed startup error

    2.5.1 Fixed startup errors regarding the registration of custom commands. Updated the...
Top
You need to upgrade!
Our dark style is reserved for our Premium members. Upgrade here.