About the actions

An action is a string that performs a certain operation. These actions are mainly used in the AdditionsPlus plugin, but there are several other plugins that use them as well. Actions are always wrapped between square brackets [] and the action identifiers are case-insensitive. An example is: [message].
Actions are often followed by a string, because most actions require more things to be specified than just the identifier. For example: [message]this is a message.

There are several action types:
INNER ([action=...]) : require inline arguments; these often return true/false, if false the action won't be executed; example: [permission].
OUTER ([action]...[/action]) : require an opening and closing tag; often have a return value; example: [math].
STANDALONE ([action]) : do not require any arguments; example: [safelanding].
NORMAL ([action]...) : require arguments; most common one; example: [message].
COMBINED ([action][anotherAction]) : does nothing on its own; must be combined with another action; example: [everyone].

All INNER, OUTER and COMBINED actions can be combined with normal ones. This way, you can create dynamic actions. For example, you can use an INNER action to check if a player has a certain permission, if true, send the player a message: [permission=my.perm][message]you have the permission my.perm!

Below is the list with all actions with their descriptions and a few examples for every action.
Please note that this list is based on the latest version of AdditionsPlus.

Click an action in the list below to get more info about it.

Actions Description
[message] Send a message to a player
[command] Perform a command as a player
[console] Perform a command as the console
[title] This will send a title to the player. Use \n to switch to the subtitle. Supports color codes.
[actionbar] This will send an actionbar to a player. Supports color codes.
[json] This will send a json message to a player. Use a generator like this to create json messages.
[everyone] This will perform the action for all online players instead of the event player only.
[center] This will send a json message to a player. Use a generator like this to create json messages.
[language] This will only perform the action if the player has a certain Minecraft language/locale. You can find a list of Minecraft locales here. If the player does not have that locale, the action will be skipped for that player. This action works with [everyone]. Use [language=""] as base, then put the target locale between the double quotes.
[delay] This will delay the action with the specified amount of ticks (1 sec = 20 ticks). Use [delay=""] as base, then put the delay time, in ticks, between the double quotes.
[connect] This will connect the player to another server. This can only be used on a bungeeCord server and the specified server must be connected to it. The names of the server are the same as the ones in the config.yml on your bungee host.
[money] This will deposit/withdraw money to/from a player's balance. Vault must be installed in order to use this.
[close] This will close the player's inventory. Do not use this after you specified the [menu] action. The menu will not open then.
[permission] This checks if the player has the specified permission and discontinues the action if the player doesn't have it.
[vgroup] This checks if the player is a member of the specified group. Vault is required in order to use this action. Also, a permission plugin is needed which should be supported by Vault.
[chance] This adds chances to the action. This should be a percentual amount between 0-100. If you set it to 50, there will be 50% chance for the action to be performed.
[sound] This plays a sound for a player. Make sure to play sounds matching your server version.
[customitem] Give a custom Additions item to a player.
[book] Give a custom book to a player
[safelanding] This teleports a player to the highest location at their x,z coordinates.
[kick] Kick a player from the server
[teleport] Teleports a player to the specified location
[fly] Toggle/set the flight of a player
[allowfly] Toggles the flying allowance of a player
[food] Sets the foodbar of a player
[health] Sets the health of a player
[kill] Kills a player
[clear] Clears the inventory of a player
[clearchat] Clears the chat of a player. (Actually just spams the chat with empty messages)
[weather] Sets the weather (of a world). Weather types are: SUN, RAIN and STORM.
[playerweather] Sets the player's personal weather. Weather types are: SUN, RAIN and RESET.
[time] Sets the time (of a world). Time type could either be DAY, NIGHT or some specific integer.
[playertime] Sets the player's personal time. Time type could either be DAY, NIGHT, RESET or some specific integer.
[gamemode] Sets the gamemode of the player. Gamemode can either be SURVIVAL, ADVENTURE, CREATIVE or SPECTATOR. Version 1.1.0 also supports the numbers 0, 1, 2 and 3.
[flyspeed] Sets the flying speed of the player. This should be an integer between 0 and 1! Do not use ints greater than 1.
[flyspeed] Sets the walking speed of the player. This should be an integer between 0 and 1! Do not use ints greater than 1.
[speed] Sets the walking/flying speed of a player. Depends whether a player is flying or not. This should be an integer between 0 and 1! Do not use ints greater than 1.
[chat] Sends a chat message as the player
[target] This sets the action target to the specified player(s). The action will then not be performed for the 'main' player. If you want multiple players, split them by adding a , between the names/placeholders. No spaces. This especially can be used in combination with command arguments.
[randomnumbergenerator] This isn't a real action. This turns into a number you can specify. RNG stands for Random Number Generator. You can specify one or two numbers. And it will then pick a random number between them. If you only specify one, it will go from 0 to your specified number. The / on the end of the tag is required!
[math] This calculates everything between the opening and closing math tag. The opening tag is [math] and the closing tag is [/math]. So the math tags will be turned into the solution.
[price] This checks if the player has the specified amount of money. Requires Vault. This does not withdraw any money from the player's account!
[targetworld] This sets the action target to the player(s) in the specified world(s). The action will then not be performed for the 'main' player. If you want multiple players, split them by adding a , between the world names/placeholders. No spaces.
[resourcepack] This will send a resource pack installation request to the player. You need to specify a link.
[nopermission] This will check if the player does not have a certain permission.
[novaultgroup] This will check if the player is not in a certain vault group.
[isconsole] This will check if the sender is the console. Useful for commands that are compatible with console and players.
[isplayer] This will check if the sender is a player. Useful for commands that are compatible with console and players.
[world] This will check if the current world is equal to something.
[return] You can use this action to stop the plugin from executing further actions in the list. You can just put this in any action, doesn't have to be in one by itself. You can use this e.g. to do different things when players have different permissions.
[if] This feature executes a custom Javascript code and uses the value as return. So make sure that when you're using this, the return object of the code is always a boolean (true/false)! If you are using placeholders in your javascript code, make sure to put them between double quotes, because otherwise the plugin will think that it's a variable.
[placeholders] You can use this to use other online players' placeholders in an action.
[discord] This tag can be used to send custom messages to a custom discord webhook in your Discord server. The discord hook has to be enabled and configured in the config.yml to make it work!
[httprequest] This tag can be used to send HTTP Requests to a website. This could be useful for API usages.
[operator] This tag will perform a command as the player as if they were an operator, without needing any additional permissions.
[renameitem] This tag renames any item in the player's hand with the given value.
[holdsitem] This tag will require a player to hold any/a specific item. Leave the tag arguments empty for any item, or specify the material name or custom item id in the tag arguments.
[experience] This tag adds/removes/sets experience of a player. Use the prefix '+' to add experience, use '-' to remove, and use just the number to set the experience.
[levels] This tag adds/removes/sets levels of a player. Use the prefix '+' to add levels, use '-' to remove, and use just the number to set the level.
[hasexperience] This tag checks if a player has a certain number of experience. This number must be an integer (no decimals), and positive.
[haslevels] This tag checks if a player has a certain number of experience. This number must be an integer (no decimals), and positive.