About APDiscordOnline
APDiscordOnline v1.0.0 — 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": { "Groups": { "vip": { "Time Period": "30d", "Description": "VIP group with special privileges" }, "discord_member": { "Time Period": "7d", "Description": "Temporary group for Discord members" } }, "Permissions": { "discord.rewards.vip": { "Time Period": "0", "Description": "VIP permissions (permanent)" }, "discord.rewards.temp": { "Time Period": "12h", "Description": "Temporary permissions" } }, "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": 0 } }
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" }
"Permissions"
"discord.rewards.vip": { "Time Period": "0" }
- Permission settings
- 0 – permanent permission
- Other values – temporary permission
"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.