Custom Join Quit Msg Styles
styles.yml controls which particle movement styles are available in the join and quit selectors. A style is not the particle itself. The particle is selected from particles.yml; the style decides the shape, movement, or visual pattern used when that particle is spawned.
Source file:
modules/announce/Custom Join Quit Msg/styles.yml
Join style selector
selectors:
styles:
join:
enabled:
- halo
- wings
- tornado
disabled: []
selectors.styles.join.enabled is the allow-list for join styles. Every id in this list can appear in the join style selector when the join style feature is enabled and the player has permission for that option.
The service normalizes style ids to lowercase, so HALO, Halo, and halo resolve to the same style id. Keep the source list lowercase anyway because it matches the default file and avoids confusing permission names.
The current source enables a large style set for join, including shape styles such as ring, halo, sphere, triangle, square, hexagon, and star-shape; motion styles such as spiral, tornado, twin-helix, orbit-ring, and galaxy-swirl; aura styles such as flame-aura, frost-aura, shadow-aura, soul-aura, and rainbow-aura; and burst or wave styles such as nova-burst, shockwave, ripple, echo-wave, and firework-bloom.
selectors.styles.join.disabled
selectors:
styles:
join:
disabled:
- pentagram
- demon-wings
selectors.styles.join.disabled removes join style ids after the enabled list has been loaded. Use it when you want to keep the full source enabled list but temporarily hide a style from the join selector.
Disabled entries are also normalized to lowercase. If an id appears in both enabled and disabled, the disabled rule wins.
Quit style selector
selectors:
styles:
quit:
enabled:
- broken-ring
- shadow-aura
- shrinking-ring
disabled: []
selectors.styles.quit.enabled is the allow-list for quit styles. It works independently from the join list. You can give join and quit the same style pool, or make quit more limited by only enabling styles that visually fit a leave event.
The current source uses the same enabled style list for join and quit, and both disabled lists are empty.
selectors.styles.quit.disabled
selectors:
styles:
quit:
disabled:
- holy-aura
- angel-wings
selectors.styles.quit.disabled removes styles from the quit selector only. It does not affect join styles.
Feature switch interaction
The style selector also depends on the main config:
what-feature-enabled:
join:
styles: true
quit:
styles: true
When what-feature-enabled.join.styles is false, the join style selector is unavailable and the normal join profile falls back to default style behavior.
When what-feature-enabled.quit.styles is false, the quit style selector is unavailable and the normal quit profile falls back to default style behavior.
These feature switches are separate from the enabled and disabled lists. The feature switch disables the whole category. The style lists decide which options exist inside that category.
Style permissions
Each style id generates a permission check:
fiochat.joinquit.join.style.<style-id>
fiochat.joinquit.quit.style.<style-id>
For example:
fiochat.joinquit.join.style.halo
fiochat.joinquit.quit.style.shadow-aura
If a player has a saved style preference but no longer has permission for it, the service will not use that selected style.
Player preference keys
Selected styles are stored per player:
join-style
quit-style
Do not rename a style id casually after players have selected it. A renamed id is a different option from the service's point of view.
Custom style definitions
The service can also read custom style definitions from:
selectors:
styles:
custom:
my-style:
display: "<aqua>My Style</aqua>"
description:
- "<gray>Custom selector description.</gray>"
material: "AMETHYST_SHARD"
family: "ring"
variant: "soft"
selectors.styles.custom.<id>.display is the custom style's visible name.
selectors.styles.custom.<id>.description is the selector lore text.
selectors.styles.custom.<id>.material is the selector icon material.
selectors.styles.custom.<id>.family groups the style with a known renderer family.
selectors.styles.custom.<id>.variant lets the renderer distinguish a variation inside that family.
Custom style ids still need to be included in the relevant enabled list before they are offered to players.
This page is source-backed and includes a short callout so the content reads like a guide instead of plain reference text.