âī¸ Text Format
MiniMessageâ
When configuring item names, descriptions, GUIs, etc., for the plugin, please use the MiniMessage format. https://docs.advntr.dev/minimessage/format.html
Any meaningful token can be escaped in the locations where they have influence. In plain text, tag open characters (
<
) can be escaped with a leading backslash (\
). Within quoted strings, the opening quote character can be escaped ('
or"
). In either place, the escape character can be escaped in places where it would otherwise be relevant. Unquoted tag arguments cannot have escapes, for simplicity. In locations where escaping is not supported, the literal escape character will be passed through. In locations where escaping is supported but a literal escape character is desired, the escape character can itself be escaped to produce a\
.
Extra Tagsâ
These are additional tags provided by the plugin.
[_argument_]
means Optional
You can surround your arguments with '
& "
for instance <papi:'exp_multiplier':'1'>
You can also use nested tags for instance <expr:'0.##':'<papi:exp_multiplier:1> * 10'>
You'll notice that some tags start with "viewer_". This is because, in certain scenarios, a text might be constructed by multiple contextual entities. For example, consider the following configuration:
message: -|
Hi, <viewer_arg:player.name>.
Did you notice that <arg:player.name> interacted a custom block?
If Player A interacts with the custom block and triggers a message broadcast, then Player B receiving this message would see:
"Hi, B. Did you notice that A interacted a custom block?"
<shift:_pixels_>â
shift
allows you to directly use the plugin's offset characters.
item-name: "<!i><shift:-100><#FF8C00>Topaz Rod"
<papi:_placeholder_:[_default_value_]>â
<viewer_papi:_placeholder_:[_default_value_]>â
<rel_papi:_placeholder_:[_default_value_]>â
papi
allows to use placeholders provided by PlaceholderAPI
.
rel_papi refers to relational placeholders
item-name: "<!i><#FF8C00><papi:player_name>'s Topaz Rod"
You can also specify a default value to make it available in more places without causing errors for example:
functions:
- type: drop_exp
count:
type: uniform
min: "<papi:exp_multiplier:1> * 3"
max: "<papi:exp_multiplier:1> * 5"
<image:_namespace_:_id_:[_row_]:[_column_]>â
image
allows to use images registered in the plugin
item-name: "<!i><white><image:default:icons><#FF8C00> Topaz Rod"
item-name: "<!i><white><image:default:icons:0:1><#FF8C00> Topaz Rod"
<i18n:_id_>â
Searching for translations applicable to the current language.
internal:cooking_info:
template: "internal:icon/2d"
arguments:
model_data: 1006
texture: cooking_info
name: "<!i><#FF8C00><i18n:internal.cooking_info>"
lore:
- "<!i><gray><i18n:internal.cooking_info.0>"
- "<!i><gray><i18n:internal.cooking_info.1>"
<expr:_format_:_expression_>â
Perform some math operations
item-name: "<!i><#FF8C00><expr:0.##:'70 / 8'>"
item-name: "<!i><#FF8C00><expr:0.##:'<papi:player_x> / 8'>"
<arg:_index_>â
Only used for files under translations
, representing indexed parameters.
<arg:_id_>â
<viewer_arg:_id_>â
The is a named parameter. Its value can come from two possible sources:
- Context-specific arguments â These are parameters explicitly passed in the current context.
internal.cooking_info.0: "Time: <arg:cooking_time>ticks"
internal.cooking_info.1: "Experience: <arg:cooking_experience>"
- Common arguments
<arg:random> # generates a random number between 0 and 1
<arg:last_random> # gets the last random number
- Context subjects â If the context subject (e.g., a player) provides parameters. Check this page for more:
In certain cases, multiple context subjects may coexist. By accessing parameters from different context subjects, you can precisely control the scope and behavior of functions.
# spawns the particle at the location of the block
- type: particle
x: '<arg:block.x> + 0.5'
y: '<arg:block.y> + 0.5'
z: '<arg:block.z> + 0.5'
...
# spawns the particle at the location of the player
- type: particle
x: '<arg:player.x>'
y: '<arg:player.y>'
z: '<arg:player.z>'
...
# broadcast the message
- type: message
target: 'all'
message:
- "Hello <viewer_arg:player.name>! This message is from <arg:player.name>."
- "<arg:player.name> just interacted a <arg:block.owner> block!"
<global:_id_:[args...]>â
global variable defined in configs
item-name: "<global:rare_tag> Rare spear"