systems 02
Welcome
Tessera can greet players on join with a title, an actionbar line, chat lines, a broadcast and a
written book. Everything lives in the welcome section of config.yml.
The sequence runs welcome.delay_ticks after join, which gives the client time to render the world.
First joins and returning joins are configured separately.
Structure
welcome:
enabled: true
delay_ticks: 25
first_join:
enabled: true
sound:
type: "UI_TOAST_CHALLENGE_COMPLETE"
volume: 1.0
pitch: 1.0
title: "<gradient:#00c6ff:#0072ff><bold>WELCOME TO THE SERVER</bold></gradient>"
subtitle: "<gray>Greetings, <yellow>%player%</yellow>!</gray>"
fade_in_ticks: 15
stay_ticks: 80
fade_out_ticks: 20
actionbar: "<gray>Have fun on your first adventure</gray>"
chat_lines:
- "<gray>Type <yellow>/tessera menu</yellow> to browse the catalog.</gray>"
broadcast:
enabled: true
message: "<aqua>%player%</aqua> <gray>joined for the first time.</gray>"
book:
enabled: true
title: "<gradient:#00c6ff:#0072ff>Starter Guide</gradient>"
author: "Tessera Server"
pages:
- "<bold>Welcome to Tessera</bold>"
regular_join:
enabled: true
# same keys, minus the book
Keys
| Key | Applies to | Notes |
|---|---|---|
enabled | both | Section switch. welcome.enabled turns the whole system off. |
delay_ticks | global | Delay before the sequence runs. |
sound.type, sound.volume, sound.pitch | both | Played to the joining player. |
title, subtitle | both | Title card. |
fade_in_ticks, stay_ticks, fade_out_ticks | both | Title timing. |
actionbar | both | One actionbar line. |
chat_lines | both | List of lines sent to the joining player only. |
broadcast.enabled, broadcast.message | both | Sent to everyone. |
book.enabled, book.title, book.author, book.pages | first join | Written book placed in the inventory. |
All text is MiniMessage and glyphs are substituted, so :tessera_badge: works here too. Chat lines
support MiniMessage click and hover tags.
Four placeholders are replaced in every welcome string:
| Placeholder | Value |
|---|---|
%player% | Player name |
%displayname% | Display name |
%online% | Players online |
%max_players% | Server slot count |
PlaceholderAPI placeholders are not parsed here in 2.0.0.
First join detection
A join counts as a first join when the server has never seen the player and the player has no
tessera:welcomed marker in their PersistentDataContainer. The marker is written right after the
first-join sequence runs, so replaying it by hand does not re-trigger it on the next login.
Testing
/tessera welcome # tessera.admin, runs the join sequence on yourself