Skip to content

Messages, Announcements, and Sounds

Wonder’s player-facing output lives across three files:

  • messages.conf
  • announcements.conf
  • sounds.conf

messages.conf is a flat key/value map under messages { ... }.

Bundled examples:

  • queue.accepted
  • queue.cancelled
  • queue.none
  • result.ready
  • result.claimed
  • result.none
  • command.player-only

announcements.conf now contains two arrays:

  • presentations = [...]
  • announcements = [...]

Presentation rules classify Pokemon for formatting and count aggregation.

Fields:

  • id
  • label
  • color-tag
  • prefix
  • suffix
  • label-match
  • aspect-match
  • properties-match

Matching is AND-based across the three optional matcher fields. If none of label-match, aspect-match, or properties-match is defined, the presentation never matches.

Announcement templates still contain:

  • id
  • enabled
  • trigger
  • permission
  • message

Wonder currently uses these triggers:

  • queue.submit
  • stats.periodic
  • result.rare

Template placeholders can now include both generic Pokemon fields and presentation-derived values such as:

  • {presentationPrefixes}
  • {presentationSuffixes}
  • {presentationLabels}
  • {presentationColorTag}
  • {queueCount}
  • {shinyCount}
  • {legendaryCount}
  • {mythicalCount}
  • {ultraBeastCount}

Per-presentation placeholders are also exposed from the presentation id, for example:

  • {shinyMatched}
  • {shinyLabel}
  • {shinyPrefix}
  • {shinySuffix}
  • {shinyColorTag}

sounds.conf contains named sound sequences:

  • queue-accepted
  • queue-cancelled
  • result-ready
  • reveal-pulse
  • reveal-open
  • rare-reveal
  • claim

Each cue has:

  • enabled
  • steps[]

And each step has:

  • tick
  • event
  • volume
  • pitch