Skip to content
NordBots.
Back to AutoBroadcast

AutoBroadcast configuration

The AutoBroadcast config.json controls how the plugin runs on your Ark Survival Ascended server. Every setting is listed below with what it does and its default value.

Open the configuration editorPrefer clicking to typing? Build the file with sliders and toggles.

Where it lives

Drop the file on your server at ArkApi/Plugins/AutoBroadcast/config.json then reload the plugin or restart the server. Keep a backup before large changes.

Every setting

General

Debug
togglefalse
Debug: set to true to write extra lines to ArkApi.log. Turn it on when something is not working and you want to see why. Leave it false for normal play.
ServerName
text"My ARK Server"
ServerName: your server name. It shows up when a message uses the {server} tag. If you also set ServerName in the Discord block, that one wins for embeds.

Commands

Commands: the words people type in chat.

ListChat
text"/broadcasts"
ListChat: the chat command that shows the list of broadcasts and if each is on. Only admins can use it (see the Permissions block). Set it to "" to turn it off.

Messages

Messages: your list of broadcasts. Each one has its own text, its own timing, and its own targets. You can have as many as you want. Add or remove blocks in the [ ] list. Every message needs a Name and a Schedule.

Database

Database: the plugin saves a row every time a message goes out. You get a full history of what was sent and when. This works with SQLite (a local file, no setup) or MySQL (a shared database).

UseMySQL
togglefalse
UseMySQL: false uses a local SQLite file. Set it to true to use MySQL and fill in the Host, User, Password, and Database below.
LogSends
toggletrue
LogSends: set to false to skip saving any log rows. Broadcasts still run.
Host
textempty
Host, Port, User, Password, Database: only needed when UseMySQL is true.
Port
number3306
User
textempty
Password
textempty
Database
textempty
TableName
text"AutoBroadcast"
TableName: the base name for the log table. The plugin adds "_log" to it, so the table is "AutoBroadcast_log" by default.
SQLiteDatabasePath
textempty
SQLiteDatabasePath: leave it empty to keep the file next to the plugin. Or set a full path to put the file somewhere else.

Permissions

Permissions: gate the admin commands. When Permissions.dll is installed and this is on, only players with the node below can use /broadcasts. The console and RCON commands are always for server operators.

Enabled
toggletrue
Enabled: set to false to skip Permissions checks.
AdminPermission
text"AutoBroadcast.Admin"
AdminPermission: the permission node a player needs to use the admin commands.

Discord

Discord: the webhook that gets embeds. Off by default. Every message that has "Discord": { "Enabled": true } posts here.

Enabled
togglefalse
Enabled: turn Discord posting on. You must also set a WebhookURL.
WebhookURL
textempty
WebhookURL: paste your Discord channel webhook URL here.
AlertWebhookURL
textempty
AlertWebhookURL: a second webhook for odd events. Leave it empty to send everything to the main WebhookURL.
Username
text"AutoBroadcast"
Username: the name the webhook posts under.
ServerName
text"My ARK Server"
ServerName: shows in the embed footer. Handy when you run more than one server.

The full commented config

This is a reading copy with notes. It is not valid JSON, so do not load it. Use the editor or the plain config.json instead.

{
  // This file explains every setting in config.json.
  // It has notes in it, so it is NOT valid JSON. Do not load this file.
  // Edit config.json instead. This file is just here to help you.

  "General": {
    // Debug: set to true to write extra lines to ArkApi.log. Turn it on when
    // something is not working and you want to see why. Leave it false for normal play.
    "Debug": false,

    // ServerName: your server name. It shows up when a message uses the {server}
    // tag. If you also set ServerName in the Discord block, that one wins for embeds.
    "ServerName": "My ARK Server"
  },

  // Commands: the words people type in chat.
  "Commands": {
    // ListChat: the chat command that shows the list of broadcasts and if each is on.
    // Only admins can use it (see the Permissions block). Set it to "" to turn it off.
    "ListChat": "/broadcasts"
  },

  // Messages: your list of broadcasts. Each one has its own text, its own timing,
  // and its own targets. You can have as many as you want. Add or remove blocks in
  // the [ ] list. Every message needs a Name and a Schedule.
  "Messages": [
    {
      // Name: a short id for this message. Keep each one different. You use this
      // name in the log and with the "AutoBroadcast.Say <name>" console command.
      "Name": "discord-invite",

      // Enabled: set to false to turn just this one message off. The rest still run.
      "Enabled": true,

      // Lines: one or more lines of text. If you list more than one, the plugin
      // rotates through them (see Rotation). You can use tags like {online} and
      // {server} in any line. The full tag list is at the bottom of this file.
      "Lines": [
        "Join our Discord for news and help. discord.gg/yourinvite",
        "Got a question? Ask a mod in our Discord. discord.gg/yourinvite"
      ],

      // Rotation: how it picks a line when you have more than one.
      //   "sequential" goes in order, then starts over.
      //   "random" picks any line each time.
      // This is ignored when there is only one line.
      "Rotation": "sequential",

      // Schedule: how often this message runs. There are three ways to set timing.
      // This one uses "interval", which just repeats every so often.
      //   Type:  "interval"
      //   Every: how many units between runs.
      //   Unit:  one of "seconds", "minutes", "hours", "days", "weeks".
      // So Every 30 with Unit "minutes" runs every 30 minutes.
      // You can also add these to any interval:
      //   "FireOnStart": true  sends it once right when the server is ready.
      //   "JitterSeconds": 20  adds up to 20 random seconds each run so many
      //                        messages do not all fire on the same second.
      "Schedule": { "Type": "interval", "Every": 30, "Unit": "minutes" },

      // Game: where and how it shows in the game. Every player online sees it.
      //   Enabled: send it in game.
      //   Style:   "chat"   a chat line from a sender name.
      //            "server" a colored server message on the left side.
      //            "notify" a big note in the middle of the screen.
      //   Color:   a color name for "server" and "notify". Try Green, Yellow, Red,
      //            White, Blue, Cyan, Orange, Gold, Purple, Pink, Grey, Lime.
      //   Prefix:  text put in front of every line, like a tag. For "chat" style,
      //            the Prefix is used as the sender name.
      "Game": { "Enabled": true, "Style": "server", "Color": "Green", "Prefix": "[Server] " },

      // Discord: post this same message to your webhook. Turn on the Discord block
      // at the bottom of this file first, and put in a WebhookURL.
      //   Enabled: post this one to Discord.
      //   Title:   the title on the embed.
      //   Color:   a name (success, info, warn, alert, jackpot) or a hex number.
      "Discord": { "Enabled": true, "Title": "Server Notice", "Color": "info" }
    },

    {
      // This one shows the live player count using the {online} and {server} tags,
      // and it only shows in chat.
      "Name": "welcome-count",
      "Enabled": true,
      "Lines": [ "There are {online} players on {server} right now. Have fun!" ],
      "Schedule": { "Type": "interval", "Every": 60, "Unit": "minutes", "JitterSeconds": 20 },
      "Game": { "Enabled": true, "Style": "chat", "Prefix": "Server" },
      "Discord": { "Enabled": false }
    },

    {
      // This one uses "times". It runs at set clock times each day, on your
      // server's local clock. Great for restart warnings.
      //   Type: "times"
      //   At:   a list of clock times in "HH:MM" on a 24 hour clock.
      // It fires once when the clock hits each time in the list.
      "Name": "restart-warning",
      "Enabled": true,
      "Lines": [ "The server restarts at 4 AM. Log out somewhere safe." ],
      "Schedule": { "Type": "times", "At": ["03:30", "03:45", "03:55"] },
      "Game": { "Enabled": true, "Style": "notify", "Color": "Red" },
      "Discord": { "Enabled": true, "Title": "Restart Soon", "Color": "warn" }
    },

    {
      // This one uses "cron" for full control. Cron is five fields in this order:
      //   minute  hour  dayOfMonth  month  dayOfWeek
      // Each field takes:
      //   *        any value
      //   5        just that number
      //   1,15,30  a list
      //   9-17     a range
      //   */2      every second one
      // Day of week is 0 to 6 where 0 and 7 both mean Sunday.
      // The example below runs at the top of every hour from 6 PM to 10 PM.
      // It also uses the shared "Days" limit so it only runs on the weekend.
      "Name": "prime-time-tip",
      "Enabled": true,
      "Lines": [
        "Tip: type /broadcasts to see server messages.",
        "Tip: vote for the server to earn points.",
        "Tip: build near water for easy taming."
      ],
      "Rotation": "random",
      "Schedule": { "Type": "cron", "Cron": "0 18-22 * * *", "Days": ["Fri","Sat","Sun"] },
      "Game": { "Enabled": true, "Style": "server", "Color": "Yellow" },
      "Discord": { "Enabled": false }
    }
  ],

  // Shared schedule limits: these work with any Type. Put them inside a Schedule block.
  //   "Days": ["Mon","Wed","Fri"]  only run on these weekdays. Leave it out to run every day.
  //                                Names or numbers both work (0 or 7 is Sunday).
  //   "ActiveFrom": "08:00"        only run at or after this clock time.
  //   "ActiveTo":   "23:00"        only run at or before this clock time.
  // If ActiveTo is earlier than ActiveFrom, the window runs past midnight.
  // Example: every 15 minutes, but only Mon to Fri, and only from 8 AM to 11 PM.

  // Database: the plugin saves a row every time a message goes out. You get a full
  // history of what was sent and when. This works with SQLite (a local file, no
  // setup) or MySQL (a shared database).
  "Database": {
    // UseMySQL: false uses a local SQLite file. Set it to true to use MySQL and
    // fill in the Host, User, Password, and Database below.
    "UseMySQL": false,

    // LogSends: set to false to skip saving any log rows. Broadcasts still run.
    "LogSends": true,

    // Host, Port, User, Password, Database: only needed when UseMySQL is true.
    "Host": "",
    "Port": 3306,
    "User": "",
    "Password": "",
    "Database": "",

    // TableName: the base name for the log table. The plugin adds "_log" to it,
    // so the table is "AutoBroadcast_log" by default.
    "TableName": "AutoBroadcast",

    // SQLiteDatabasePath: leave it empty to keep the file next to the plugin.
    // Or set a full path to put the file somewhere else.
    "SQLiteDatabasePath": ""
  },

  // Permissions: gate the admin commands. When Permissions.dll is installed and this
  // is on, only players with the node below can use /broadcasts. The console and RCON
  // commands are always for server operators.
  "Permissions": {
    // Enabled: set to false to skip Permissions checks.
    "Enabled": true,

    // AdminPermission: the permission node a player needs to use the admin commands.
    "AdminPermission": "AutoBroadcast.Admin"
  },

  // Discord: the webhook that gets embeds. Off by default. Every message that has
  // "Discord": { "Enabled": true } posts here.
  "Discord": {
    // Enabled: turn Discord posting on. You must also set a WebhookURL.
    "Enabled": false,

    // WebhookURL: paste your Discord channel webhook URL here.
    "WebhookURL": "",

    // AlertWebhookURL: a second webhook for odd events. Leave it empty to send
    // everything to the main WebhookURL.
    "AlertWebhookURL": "",

    // Username: the name the webhook posts under.
    "Username": "AutoBroadcast",

    // ServerName: shows in the embed footer. Handy when you run more than one server.
    "ServerName": "My ARK Server"
  }

  // Text tags you can use in any message Line:
  //   {online}   how many players are on right now.
  //   {players}  same as {online}.
  //   {server}   your server name.
  //   {time}     the local clock, like 9:05 PM.
  //   {date}     the local date, like 2026-07-07.
  //   {day}      the weekday, like Monday.
  //   {uptime}   how long the server has been up, like 3h 20m.
  //
  // A note on Discord limits: Discord lets a webhook post about 30 times a minute.
  // Do not point a lot of fast messages at Discord or it will start to block them.
  // Use in game for the fast stuff, and send Discord the ones that matter.
}