messages.json
##Introduction
The messages.json file lets you customize every message Stella sends on Fabric — command results, the team/player info panels, the update notice and all errors. It's the JSON equivalent of the Paper messages.yml: the same nested keys and the same & / hex color codes. Edit the text and run /stella reload to apply it.
##Color & formatting
Stella parses inline hex #RRGGBB and legacy & codes (&l, &m, &r, …) directly in the strings — there is no &x needed for hex. A %prefix% token at the start of most messages inserts the prefix defined at the top of the file.
##The messages.json file
{
"prefix": "#A9C8FF&lsτellα#5B86D9∙&r",
"reload": {
"success": "%prefix% #9BE0A8Configuration reloaded."
},
"team": {
"list": {
"empty": "%prefix% #C8D0E6There are no teams yet.",
"header": " #A9C8FF&lsτellα #5B86D9∙ #7ea4ed&lᴛᴇᴀᴍs",
"divider": " #5B86D9&m &r",
"entry": " #5B86D9∙ #A9C8FF%team% #6B7280— #C8D0E6priority #E5E7EB%priority% #6B7280· #C8D0E6%members% #E5E7EBmember(s)"
},
"info": {
"usage": "%prefix% #FB7185Usage: #ff9caa/stella info <team|player> <name>",
"header": " #7ea4ed&lᴛᴇᴀᴍ #5B86D9∙ %color%%team%",
"divider": " #5B86D9&m &r",
"line": " #5B86D9∙ #C8D0E6%field%#6B7280: #E5E7EB%value%",
"member": " #5B86D9- #E5E7EB%member%",
"members_more": " #6B7280(+%count% more)"
},
"player": {
"header": " #7ea4ed&lᴘʟᴀʏᴇʀ #5B86D9∙ #A9C8FF%member%",
"divider": " #5B86D9&m &r",
"none": " #5B86D9∙ #C8D0E6%member% belongs to no team.",
"main": " #FFD98C⭐ %color%%team% #6B7280— #E5E7EB%priority%",
"entry": " #5B86D9∙ %color%%team% #6B7280— #E5E7EB%priority%"
},
"create": {
"success": "%prefix% #9BE0A8Team #c8f7d1%team% #9BE0A8created.",
"exists": "%prefix% #FB7185A team named #ff9caa%team% #FB7185already exists.",
"invalid": "%prefix% #FB7185'#ff9caa%team%#FB7185' is not a valid team id."
},
"delete": {
"success": "%prefix% #9BE0A8Team #c8f7d1%team% #9BE0A8deleted."
},
"add": {
"success": "%prefix% #9BE0A8Added #c8f7d1%member% #9BE0A8to #c8f7d1%team%#9BE0A8.",
"bulk": "%prefix% #9BE0A8Added #c8f7d1%count% #9BE0A8player(s) to #c8f7d1%team%#9BE0A8.",
"none": "%prefix% #FFD98CNo players were added to #7DA8FF%team%#FFD98C."
},
"remove": {
"success": "%prefix% #9BE0A8Removed #c8f7d1%member% #9BE0A8from #c8f7d1%team%#9BE0A8.",
"bulk": "%prefix% #9BE0A8Removed #c8f7d1%count% #9BE0A8player(s) from #c8f7d1%team%#9BE0A8.",
"none": "%prefix% #FFD98CNo matching members in &f%team%#FFD98C."
},
"target": {
"unknown": "%prefix% #FB7185'#ff9caa%target%#FB7185' did not match any player.",
"required": "%prefix% #FB7185From console you must specify a target."
},
"set": {
"name": "%prefix% #9BE0A8Display name of #c8f7d1%team% #9BE0A8set to #c8f7d1%value%#9BE0A8.",
"color": "%prefix% #9BE0A8Color of #c8f7d1%team% #9BE0A8set to #c8f7d1%value%#9BE0A8.",
"color_invalid": "%prefix% #FB7185'#ff9caa%value%#FB7185' is not a valid #hex color.",
"priority": "%prefix% #9BE0A8Priority of #c8f7d1%team% #9BE0A8set to #c8f7d1%value%#9BE0A8."
},
"error": {
"not_found": "%prefix% #FB7185Team #ff9caa%team% #FB7185does not exist."
}
},
"stella": {
"error": {
"syntax": "%prefix% #FB7185Usage: #ff9caa{command} {syntax}",
"no_permission": "%prefix% #FB7185You don't have permission to use this command.",
"not_in_game": "%prefix% #FB7185This command can only be used in-game.",
"invalid_number": "%prefix% #FB7185'#ff9caa{num}#FB7185' is not a valid number.",
"player_not_online": "%prefix% #FB7185Player #ff9caa{search} #FB7185is not online.",
"unknown_command": "%prefix% #FB7185Unknown command. Type #ff9caa/stella help #FB7185for help."
}
}
}The keys, messages and placeholders mean exactly the same as on the Paper messages.yml — only the file format changes from YAML to JSON.
##Placeholder reference
| Token | Where | Meaning |
|---|---|---|
%prefix% |
most messages | The prefix value. |
%team% |
team messages | Team id. |
%color% |
info / list / player | Team color (applied inline). |
%priority% |
list / info / player | Team priority. |
%members% |
list entry | Member count. |
%member% |
add/remove, info members | A player name. |
%count% |
bulk add/remove, members_more | Number affected / hidden. |
%target% |
target.unknown | The raw target token entered. |
%field% / %value% |
info line / set | Field label / value. |
{command} {syntax} {num} {search} |
stella.error | Command-framework tokens. |
The stella.error.* block uses {…} tokens (not %…%): {command}, {syntax}, {num}, {search}.
If the Text Placeholder API is installed you can also drop %stella:…% placeholders into these messages. See the Placeholders page.