What it does
ATG Core can post messages to every player’s chat on a schedule. Two kinds, and one list holds both:
- Rotating — a pool posted one at a time, on an interval. Use these for the things a server repeats all day: the rules link, the Discord invite, how to report a bug.
- Daily — posted once a day at a fixed wall-clock time, and taking no part in the rotation. Use these for something that happens at a time: an operation start, a restart warning, a weekly event.
Nothing is posted until you configure a message. The mod ships with an empty list, so loading Core on its own adds no chat traffic.
Settings
The file is <profile>/ATG/atg-broadcast.json, read on the server at startup. It is not
replicated — the finished line reaches players as an ordinary chat message rather than
as a setting — so nothing needs distributing to clients.
| Setting | Default | Meaning |
|---|---|---|
m_bEnabled | true | Master switch. Off stops everything without your having to clear the list. |
m_iRotationIntervalMinutes | 15 | How often a rotating message is posted. 0 stops rotation and leaves the daily messages running. |
m_bRotateRandomly | false | On, a rotating message is picked at random each time. Off, they cycle in the order listed. |
m_bScheduledUseUtc | true | On, daily times are read in UTC. Off, in the server machine’s local time. |
m_aMessages | (empty) | The messages themselves. |
Remember that a list is replaced wholesale — see
Configuration. If you name m_aMessages at all,
write out every message you want, including the ones you were happy with.
Each message
| Field | Meaning |
|---|---|
m_sText | The line shown in chat. Plain text. |
m_eSchedule | 0 for rotating, 1 for daily. |
m_iDailyHour | Daily messages only: the hour to post at, 0–23. |
m_iDailyMinute | Daily messages only: the minute to post at, 0–59. |
m_eSchedule is written as a number, not a word — 0 is rotating and 1 is daily.
The two hidden fields on a rotating message are ignored rather than rejected, so leaving
them at 0 is fine.
A complete file
<profile>/ATG/atg-broadcast.json
{
"m_bEnabled": true,
"m_iRotationIntervalMinutes": 15,
"m_bRotateRandomly": false,
"m_bScheduledUseUtc": true,
"m_aMessages": [
{
"$type": "ATG_Broadcast_Message",
"m_sText": "Server rules and mod list: example.com/rules",
"m_eSchedule": 0,
"m_iDailyHour": 0,
"m_iDailyMinute": 0
},
{
"$type": "ATG_Broadcast_Message",
"m_sText": "Found a bug? Report it on our Discord.",
"m_eSchedule": 0,
"m_iDailyHour": 0,
"m_iDailyMinute": 0
},
{
"$type": "ATG_Broadcast_Message",
"m_sText": "Scheduled restart in 30 minutes.",
"m_eSchedule": 1,
"m_iDailyHour": 3,
"m_iDailyMinute": 30
}
]
}
Every entry needs its $type, and for this list it is always
ATG_Broadcast_Message. A missing or misspelled one loads silently and does nothing.