About APDiscordOnline
APDiscordOnline v1.0.1 — Rust Plugin
Description
APDiscordOnline is a professional Rust plugin (compatible with uMod, Oxide, and Carbon) that automatically sends a list of online players to your Discord server using beautifully formatted embed messages. The plugin features full multilingual support, flexible data display options, third-party integration, and is fully optimized for servers of any scale.
Key Features
Automatic player list updates sent to Discord via Webhook at configurable intervals.
Fully customizable columns:
- Toggle the display of player name, SteamID, Discord tag, country flag — all via config.
Custom embed header format:
- Define your own header using variables like {statsLine}, or use the default layout.
Multilingual support:
- Built-in translations for English, Russian, Ukrainian, Polish, and German. All system and technical messages are auto-localized.
Automatic config migration:
- Your settings are preserved and updated during plugin upgrades.
Smart caching system:
- Stores country and Discord data to reduce server load.
Clean, optimized code:
- No unnecessary dependencies. Well-documented and maintainable.
Example Discord Embed
- Country flags can be disabled.
- All fields are configurable.
Chat Command: /apdis – Displays a QR code with the Discord invite link.

The QR code can be scanned to join the server and access the channel containing the button to receive your code.

A channel with a button to receive the code, along with the code itself — visible only to you.

Sample Config (config/APDiscordOnline.json)
{
"Check Online Players On Load": true,
"Embed Color": "16777215",
"Language": "en",
"Show Country Flag": true,
"Show Discord": true,
"Show Player Name": true,
"Show Steam ID": true,
"Update Interval": 300,
"Update Last Message": false,
"Use Random Color": true,
"Webhook URL": "https://discord.com/api/webhooks/your_webhook_url",
"Discord Invite Link for QR code": "https://discord.com/channels/id_discord_server/id_channels",
"Use Custom Header Format": false,
"Custom Header Format": "Online Players List: {statsLine}",
"Auth Settings": {
"Bot Token": "your_bot_token",
"Discord Server ID": "your_guild_id",
"Channel ID": "your_channel_id",
"Code Settings": {
"Code Lifetime (minutes)": 60,
"Code Length": 5,
"Code Case Insensitive Match": true,
"Code Characters": "ABCDEFGHJKMNPQRSTUVWXYZ"
},
"Embed Text": "Enter the code you received in-game using the command: /auth <code>",
"Embed Color": 3447003,
"Button Text": "Get code",
"Button Reply": "Your code: {code}",
"Message ID": ""
},
"Status Update Interval (Seconds)": 60,
"Randomize Status": false,
"Status Type (Game/Stream/Listen/Watch)": "Game",
"Status": [
"{players.online} / {server.maxplayers} (Sleepers {players.sleepers}) (Joining {players.joining})"
],
"Discord Rewards": {
"Periodic Group Notify Interval (Seconds)": 3,
"Groups": {
"apd_vip1": {
"Time Period": "50s",
"Description": "VIP group with special privileges",
"Permission": "apdiscordonline.group.apd_vip1"
},
"apd_vip2": {
"Time Period": "35s",
"Description": "APDiscordOnline group with special privileges",
"Permission": "apdiscordonline.group.apd_vip2"
},
"apd_vip3": {
"Time Period": "28s",
"Description": "Temporary group for Discord members",
"Permission": "apdiscordonline.group.apd_vip3"
}
},
"Settings": {
"Reset on wipe": true,
"Remove on unlink": true,
"Notify on grant": true,
"Notify on remove": true,
"Notify unlinked players": {
"Enabled": true,
"Interval": "1h"
}
}
},
"Version": {
"Major": 1,
"Minor": 0,
"Patch": 1
}
}
CHAT COMANDS:
/apdis – Displays a QR code with the Discord invite link.
/auth – Enter the code you received from the discord in the game
/deauth – Unlink discord
/apd_groups - Displays how much time is left until the privilege expires.
PERMISSION:
Discord binding permission.
apdiscordonline.auth
Discord unbinding permission.
apdiscordonline.deauth
access to the group
apdiscordonline.group.apd_vip1
CFG - INFO
"Check Online Players On Load": true
- Check online players when the plugin loads
- true – the check is performed immediately after loading
- false – the check is not performed
"Embed Color": "16777215"
- Color of the embed message in Discord (in decimal format)
- Default is white
- You can use any color in decimal format
"Language": "en"
- Language used for Discord notifications
"Show Country Flag": true
- Display the player’s country flag
"Show Discord": true
- Show the player’s Discord information
"Show Player Name": true
- Display the player’s name
"Show Steam ID": true
- Display the player’s Steam ID
"Update Interval": 300
- Interval for updating the player list (in seconds)
- Default is 300 seconds (5 minutes)
"Update Last Message": false
- Update the last message instead of sending a new one
- true – update existing message
- false – send a new message
"Use Random Color": true
- Use a random color for each embed
- true – color changes
- false – static color is used
"Webhook URL": "https://discord.com/api/webhooks/your_webhook_url"
- The Discord webhook URL for sending messages
- Replace with your actual webhook URL
"Discord Invite Link for QR code": "https://discord.com/channels/id_discord_server/id_channels"
- Invite link used for QR code
- Used in the /apdis command
"Use Custom Header Format": false
- Use a custom header format
- true – use your own format
- false – use the default format
"Custom Header Format": "Online Players List: {statsLine}"
- Custom header format
- Supports: {statsLine} – player statistics
"Auth Settings"
"Bot Token": "your_bot_token"
- Discord bot token
- Replace with your actual bot token
"Channel ID": "your_channel_id"
- Discord channel ID
- Replace with your actual channel ID
"Code Settings"
"Code Lifetime (minutes)": 60
- Lifetime of the confirmation code (in minutes)
"Code Length": 5
- Length of the confirmation code
"Code Case Insensitive Match": true
- Case-insensitive code matching
- true – case does not matter
- false – case-sensitive
"Code Characters": "ABCDEFGHJKMNPQRSTUVWXYZ"
- Characters used to generate the code
"Status Update Interval (Seconds)": 60
- Interval for updating the bot’s status (in seconds)
"Randomize Status": false
- Randomly select status
- true – status is chosen randomly
- false – one status is used
"Status Type": "Game"
- Bot status type
- Game – Playing
- Stream – Streaming
- Listen – Listening
- Watch – Watching
- "Status":
["{players.online} / {server.maxplayers} (Sleepers {players.sleepers}) (Joining {players.joining})"]
- Status format
- Supports variables: {players.online}, {server.maxplayers}, {players.sleepers}, {players.joining}
"Discord Rewards"
"Groups"
- Group and time period settings
- Time format: Xd (days), Xh (hours), Xm (minutes)
- "vip": { "Time Period": "30d" }
"Settings"
"Reset on wipe": true
- Reset rewards on wipe
- true – reset
- false – keep
"Remove on unlink": true
- Remove rewards when a player unlinks Discord
- true – remove
- false – keep
"Notify on grant": true
- Notify when rewards are granted
- true – send notification
- false – do not notify
"Notify on remove": true
- Notify when rewards are removed
- true – send notification
- false – do not notify
"Notify unlinked players"
"Enabled": true, "Interval": "1h"
- Notification settings for unlinked players
- Enabled – turn notifications on or off
- Interval – how often to send reminders
Installation
- Copy APDiscordOnline.cs to your oxide/plugins/ or carbon/plugins/ folder.
- Restart the server or run oxide.reload APDiscordOnline.
- Edit config/APDiscordOnline.json as needed.
- Set your Discord Webhook URL.
APDiscordOnline — the perfect plugin for connecting your Rust server with Discord.
Enhance visibility, automate admin work, and impress players with smart functionality.
