SimpleTSMA — Documentation
Spigot/Paper 1.21.4 · Java 21 · author: ImMrLink
[HR][/HR]
1. Installation & first run
- Drop simpletsma-1.0.0.jar into plugins/ (Spigot or Paper, 1.21.4; Java 21).
- Start the server. SimpleTSMA creates plugins/SimpleTSMA/ containing:
config.yml, messages.yml, tab.yml, scoreboard.yml, motd.yml, announcer.yml.
- Edit the files (all use legacy & color codes) or run /simpletsma editor.
- Apply changes with /simpletsma reload — no restart needed.
The console prints a summary ending in
[SimpleTSMA] SimpleTSMA is ready.
[HR][/HR]
2. Commands
- /simpletsma (alias /tsma) — help
- /simpletsma reload — reload all configs & restart modules
- /simpletsma modules — view module status
- /simpletsma version — plugin version
- /simpletsma editor (or /tsma gui) — open the in-game editor
- /tab preview · /tab reload
- /scoreboard / /scoreboard toggle (alias /sb) · /scoreboard reload
- /motd preview · /motd reload · /motd maintenance <on|off>
- /announce <message> — instant chat broadcast
- /announcer preview <id> · /announcer list · /announcer reload
Note:
/scoreboard shares its name with the vanilla command. If vanilla wins, use
/sb or
/simpletsma:scoreboard.
[HR][/HR]
3. Permissions
- simpletsma.admin — everything below (default: op)
- simpletsma.reload / .modules / .version / .editor (+ .editor.tab/.scoreboard/.motd/.announcer/.reload) — op
- simpletsma.tab.preview / .tab.reload — op
- simpletsma.scoreboard.toggle — everyone (players toggle their own board)
- simpletsma.scoreboard.reload — op
- simpletsma.motd.preview / .motd.reload / .motd.maintenance — op
- simpletsma.announce — op
- simpletsma.announcer.preview / .announcer.reload — op
[HR][/HR]
4. Placeholders
Built in (no PlaceholderAPI needed), usable in any SimpleTSMA text:
%player%
%player_name%
%display_name%
%online%
%max_players%
%world%
%ping%
%server_name%
%time%
%date%
%tps%
With
PlaceholderAPI installed and
settings.use-placeholderapi: true, external
%placeholders% are resolved too.
(On Spigot, %tps% reports 20.0 — Spigot exposes no TPS API; on Paper it's the real TPS.)
[HR][/HR]
5. Configuration
config.yml — global settings & module toggles.
Code (Text):
settings:
prefix: "&8[&bSimpleTSMA&8] &7"
use-placeholderapi: true
server-name: "SimpleServer" # value of %server_name%
modules:
tab: true
scoreboard: true
motd: true
announcer: true
gui-editor: true
gui:
enabled: true
chat-input-timeout-seconds: 60
A module runs only when both its
modules.<id> toggle here AND its own
enabled: flag (in its file) are true.
tab.yml — header/footer are lists of lines;
"" is a blank line.
Code (Text):
tab:
enabled: true
update-interval-ticks: 40 # 20 ticks = 1 second
header:
- "&b&lSimpleTSMA"
- "&7Welcome, &f%player_name%"
footer:
- "&7Online: &f%online%&7/&f%max_players%"
- "&7Ping: &a%ping%ms"
disabled-worlds:
- "example_disabled_world"
scoreboard.yml — multiple boards; a board is chosen by the player's world, else the
default-board. A board with
worlds: ["*"] is the fallback. Max 15 lines.
Code (Text):
scoreboard:
enabled: true
update-interval-ticks: 40
default-board: "main"
disabled-worlds: []
boards:
main:
title: "&b&lSimpleTSMA"
worlds: ["*"]
lines:
- "&fPlayer: &b%player_name%"
- "&fOnline: &e%online%&7/&e%max_players%"
- "&7play.example.com"
lobby:
title: "&d&lLobby"
worlds: ["lobby"]
lines:
- "&7Welcome, &f%player_name%"
motd.yml —
mode is
static (always "default"),
random, or
rotating. Two lines each.
Code (Text):
motd:
enabled: true
mode: "random"
maintenance:
enabled: false
line1: "&c&lMaintenance Mode"
line2: "&7We will be back soon."
messages:
default:
line1: "&b&lSimpleTSMA &8| &7A polished server display"
line2: "&fTab, Scoreboard, MOTD, and Announcements"
update:
line1: "&a&lNew Update!"
line2: "&7Join now and check out what changed."
Toggle maintenance live with
/motd maintenance on|off.
announcer.yml —
mode is
ordered or
random; each entry has a
type of
chat,
actionbar, or
title.
Code (Text):
announcer:
enabled: true
mode: "ordered"
interval-seconds: 180
start-delay-seconds: 30
announcements:
discord: # chat with a clickable line
type: "chat"
permission: "" # empty = everyone; else a perm node
worlds: ["*"]
lines:
- text: "&7Join our Discord: &9&nClick Here"
click-action: "OPEN_URL"
click-value: "https://discord.gg/example"
hover: "&bClick to open our Discord invite."
- "&7Plain second line."
vote:
type: "actionbar"
worlds: ["*"]
message: "&aVote daily for rewards!"
welcome:
type: "title"
worlds: ["*"]
title: "&bSimpleTSMA"
subtitle: "&7Four server visuals. One simple plugin."
fade-in: 10
stay: 60
fade-out: 20
[HR][/HR]
6. Clickable chat announcements
Any
chat line can be a plain string, or an object with
text + a click action:
- OPEN_URL — opens a link (click-value; https:// added if missing)
- RUN_COMMAND — runs a command as the player (e.g. /rules)
- SUGGEST_COMMAND — puts text in the player's chat box (e.g. /report )
- COPY_TO_CLIPBOARD — copies click-value
Add an optional
hover line for a tooltip. (Clickable & hover text work on Spigot and Paper.)
[HR][/HR]
7. In-game GUI editor
/simpletsma editor opens inventory menus — no YAML needed.
- Main menu: Tab / Scoreboard / MOTD / Announcer editors, Module Settings, Preview Tools, Reload, Close.
- Editing text: click an item; the menu closes and you type the new value in chat (or cancel); the menu reopens. Idle edits time out (see gui.chat-input-timeout-seconds).
- Lines: left-click to edit, right-click to delete, "+ Add" to append.
- Announcer: create chat announcements and build clickable lines with the guided Clickable Link Helper.
- Module Settings: toggle modules on/off live (saved to config.yml).
- Preview Tools: preview tab/scoreboard/MOTD/next announcement, and send yourself a test chat/actionbar/title.
Menus cancel item movement (no theft) and survive reloads / disconnects.
Note: GUI saving doesn't preserve YAML comments (the shipped defaults keep them). GUI editing covers the default scoreboard board and default MOTD; extra boards/messages are edited in YAML.
[HR][/HR]
8. Troubleshooting
- Scoreboard shows 0,1,2 numbers on the right (Spigot): expected — no Spigot API hides them. They're hidden automatically on Paper.
- /scoreboard does nothing / opens vanilla: use /sb or /simpletsma:scoreboard.
- A change didn't apply: run /simpletsma reload (or the module's own reload). Check the module is enabled both in config.yml and its file.
- External placeholders show as raw text: install PlaceholderAPI and set settings.use-placeholderapi: true.