Notice.xml

Scheduled server notices broadcast to all online players at a set interval. Typical use: announcement rotation (website URL, event reminder, rules link).

File Location#

Data/Util/Notice.xml

Loaded at GameServer startup. /reload util (or reload.util in the Server Manager) reloads it without a restart.

Schema#

<NoticeManager>
    <Notice Type="..." RepeatTime="..."
            Line1="..." Line2="..." Line3="..."
            TextColor="R,G,B[,A]" BgColor="R,G,B[,A]" Blink="true|false"
            Speed="25" Count="1" Delay="0" />
</NoticeManager>

Attributes#

AttributeTypeEffect
Type0, 1 or 2Notice channel. 0 = gold floating ribbon (mid-screen, legacy gold blinks). 1 = system message in the chat-box log. 2 = scrolling band across the top of the screen (right to left; the pointer over it slows it down; players can hide it with the slide-help option in Options). Other values are rejected at load time with [Notice.xml] skipping unsupported Type=N
RepeatTimesecondsInterval between broadcasts. 300 = every 5 minutes. Converted to milliseconds internally
Line1 / Line2 / Line3stringUp to three text lines, each up to 127 characters. Empty lines are skipped (not sent as empty packets)
TextColor"R,G,B" or "R,G,B,A"Types 0 and 2. Type 0: overrides the default blinking-gold text, omitted = legacy gold. Type 2: the scrolling text colour, omitted = warm white 230,220,200. Each component 0-255
BgColor"R,G,B" or "R,G,B,A"Type 0 only. Background tint behind the text. If TextColor is set but BgColor is omitted, defaults to 0,0,0,128
Blink"true" or "false"Type 0 only. Oscillate alpha between 50% and 100%. Defaults to false when a custom color is set; legacy gold blinks regardless
Speed1-255Type 2 only. Scroll speed: 10 slow, 25 default, 60 fast
Count1-30Type 2 only. Times each line scrolls per broadcast. Default 1
DelaysecondsType 2 only. Seconds between those repeats. Default 0 = back to back

Broadcast Behavior#

On every RepeatTime tick the server iterates Line1..Line3 and sends each non-empty line as its own packet to every connected character, then writes the combined text to the server console log in blue.

  • Type=1 (system message), and Type=0 with no colour attributes, use the legacy notice path with the stock gold styling.
  • Type=0 with any of TextColor / BgColor / Blink set uses the coloured broadcast path instead, carrying the RGBA values and the blink flag. All lines of one entry together are capped at 200 characters on that path.

Empty Line2 or Line3 are silently skipped; only non-empty lines travel the wire.

  • Type=2 lines are queued on the client and scroll one after another, never on top of each other. A queued line that could not start within a minute (the band busy the whole time) is dropped. The GM command /slide <text> sends one scrolling line to every GameServer of the group right away.

Important Behavior#

  • Dynamic notice width. The floating ribbon (Type=0) sizes itself to the text and wraps long lines to additional rows instead of clipping them at a fixed width. A line that used to be cut off now fits, and messages longer than one row wrap rather than truncate. More text fits on a single row than before. Per-line storage is still capped at 127 characters, and a colored broadcast still has a 200-character total ceiling on the wire (see below).
  • Color applies per entry, to all lines. TextColor / BgColor / Blink set on a <Notice> apply to every line of that entry. There is no per-line color.

Multiple Notices#

Multiple <Notice> entries rotate independently. Each fires on its own RepeatTime schedule, tracked by its own last-fired timestamp. There is no ordering or staggering - two entries with the same RepeatTime will tend to fire together. The loader uses a dynamic vector so there is no fixed cap, but keep the entry count small to avoid clogging the broadcast queue.

Cross-File Dependencies#

AttributeRelated in
Broadcast routingMapServerInfo.xml Group
Chat logCommon.dat WriteChatLog

Common Issues#

  • Notices spam too often - RepeatTime too low; raise to 300+ seconds
  • Multi-line display cut off - the ribbon width is dynamic and wraps long lines instead of clipping them, so this should no longer happen. Per-line text is still capped at 127 characters in storage; colored broadcasts have a 200-character total ceiling on the wire
  • Entry silently dropped - Type is not 0, 1 or 2. Watch for [Notice.xml] skipping unsupported Type=N on the server console
  • Custom color attrs ignored - Type=1 rows take only the legacy chat-box packet; only Type=0 honours TextColor / BgColor / Blink
  • Blink not blinking - custom color sets Blink=false by default; add Blink="true" explicitly when you want it
  • Scrolling notice (Type 2) not visible - the player turned the slide-help option off in Options, or the client is older than V2

Last updated October 2, 2026