Introducing Discord Integrator!
- Seamless discord integration with Ark


Features:
  • Safely Multi-Threaded plugin!
  • C++ Discord Bot using web sockets
  • Works on as many servers as you want!
  • Adds player that register with the Bot to the "Discord" permission group, also grants them permission "Discord". (automatically created)
  • Now with ability to run the Discord bot separate from the plugin for max stability! More documentation on this will come, for now feel free to ask on Discord. The files for this is available on Discord.
  • Seamless management of in-game Discord permission group as players leave/enter the Discord server.
  • Ability to automatically give Discord users roles based on in-game permission groups they have.
  • Ability to send a Discord warning message to players as their in-game structures are under attack. (only warns when they are offline. And in private discord message)
  • Each player can individually set how often a Raid Warning would be sent. Or if it's sent.
  • Seamless 2-way integration of a Discord text channel with the in-game General channel.
  • !players on your Discord channel will make the bot post list of online players.
  • Colorable tags for users.
  • Ability to color nicknames and chat messages based on group^^
  • Cross server chat that looks the same on all servers, except [server] tag!
  • Cross server tribe chat! Works automatically. Requires the same tribe owner on all clustered server. And if added on a new server. Owner must login at least once on each server to connect tribes.
  • Fully configurable!

Config File with explanations:

JSON:
{
  "ServerName": "",               // Must be inique. IF empty it defaults to mapname.
  "MasterBot (ONLY ONE)": false,  // One, and only one server must have this set to true. It will run the discord api connection.
  "MySQL": {
    "UseMySQL": true,                     // Must be true until SqLite is implemented.
    "UseMySQL CrossServerChat": true,     // Cross server chat.
    "CrossServerChatFetchInterval": 0.25, //How often the chat is fetched in seconds.
    "HostAdress": "localhost", 
    "Username": "root",
    "Password": "mysql",
    "DataBaseName": "discord_database"    // MYsql database name, plugin will create the tables here.
  },
  "UseAutoPermissionsIngameToDiscord": true, // If true, will automatically set user Discord role, if User has configured permission.
  "AutoPermissionsIngameToDiscord": { // Array that contains the configured auto ingame Permissions to Discord Roles.
    "Admin": [ // Ingame permission group name;
      "834907747594575572" // Discord Role ID;
    ],
    "Vip": [ // You can add multiple ingame permissions.
      "424907728503177216",
      "503177216424907728" // And multiple Discord Roles, as demonstrated here.
    ]
  },
  "DiscordBot": {
    "DiscordBotToken": "PutYourBotTokenHere", // This is your Bot's token. That you get from Discord Developer site.
    "RaidWarningMinInterval": 15, // Minimum amount of minutes between a raid warning sendt to the same user by the Discord Bot.
    "IntegratedChannelID": "0", // The ID of Discord Channel to integrate ingame global chat with. 0 = OFF.
    "IntegratedChannelWebHook": "webhook URL", // Webhook to the channel to post ingame messages too.
    "IngameMsgNameTagFormat": "[Discord]: {}", // The Ingame Name Tag format of Discord->Ingame messages. Default = [Discord]: John Doe
    "IngameMsgMessageFormat": "{}", // Format of Discord -> Ingame messages. Default adds nothing to the message.
    "IngameName_IN_Tribe_Format": "{}  **{}**[{}]:  {}\\n", // The Name Tag format of Ingame->Discord messages. When the speaker is in a tribe. Default = <mapname>   **<name>**[<tribe>]:  <message>
    "IngameName_NO_Tribe_Format": "{}  **{}**:  {}\\n", // The Name no-tribe Tag format of Ingame->Discord messages. When the speaker is NOT a tribe. Default = same as above, without tribe.
    "WebHook_IN_Tribe_Format": "**{}**[{}]:  {}\n",  //only \n here in webhook..
    "WebHook_NO_Tribe_Format": "**{}**:  {}\n"
  }, // PS: Any newline tag except the webhook must be escaped \\n and NOT \n.
  "DiscordBotMessages": { // Messages sent by bot
    "AuthencationMessage": "Thank you for joining our Discord!\\nTo link your discord to the server go in game, and type : /setdiscord {}", // Message sendt by bot after /setdiscord <name> is called by player ingame. Returns random 4digit code.
    "RaidWarning": "RAID WARNING: You're ingame structures are under attack!", // RaidWarning message sent by bot to players that have enabled it.
    "LinkedChannelSpamProtMsg": "<@{}> You must wait {} seconds to write another message." // Spam protection message in integrated channel.
  },
  "Messages": { // Messages sent to player ingame.
    "DiscordActivationCodeSent": "Sent activation code to {}. Please type the activation code received ingame.", // Player used /setdiscord and plugin successfully found the user on the server. Now sending auth code on Discord.
    "DiscordAlreadyLinked": "You are already linked with username:<RichColor Color=\"0, 1, 0, 1\">{}</>", // Player is trying to link same Discord twice.
    "DiscordCannotFindUserName": "<RichColor Color=\"1, 0, 0, 1\">Cannot find username: {}</>, make sure you have joined our server and that the username provided is correct.", // Cannot find the Discord user provived by player on the server.
    "DiscordLinkFail": "<RichColor Color=\"1, 0, 0, 1\">Wrong or expired validation code.</>", // Player wrote wrong auth code.
    "DiscordLinkSuccess": "<RichColor Color=\"0, 1, 0, 1\">Successfully linked your Discord!</>", // Successfully linked their Discord.
    "DiscordLinkUsage": "Link you Discord Account with our server and receive benefits like Raidwarning on Discord! <RichColor Color=\"0, 1, 0, 1\">/setdiscord <username></>",
    "DiscordLinkedWith": "You are linked with: {}",
    "DiscordRaidWarningActive": "Raid Warning activated. Message Interval set to: {} minutes", // User has just activated raid warning.
    "DiscordRaidWarningError": "<RichColor Color=\"1, 0, 0, 1\">ERROR.</> Correct usage:<RichColor Color=\"0, 1, 0, 1\">/raidwarning <minutes></>", // Wrongly formatted /raidwarning command
    "DiscordRaidWarningNotActive": "Raid Warning NOT active. Use /raidwarning <minutes>  to activate!",
    "DiscordRaidWarningNotLinked": "You need to link your Discord with<RichColor Color=\"0, 1, 0, 1\">/setdiscord</> before you can use this command.",
    "DiscordRaidWarningOff": "Raid Warning Turned<RichColor Color=\"1, 0, 0, 1\">Off.</>", // Message when player sets raid warning OFF.
    "DiscordRaidWarningSet": "Raid Warning set to once each {}. minutes", // Message when player sets raid warning.
    "setDiscordWrongUsage": "<RichColor Color=\"1, 0, 0, 1\">Error.</>Usage:<RichColor Color=\"0, 1, 0, 1\">/setdiscord <full username></>" // Wrong usage of /setdiscord command.
  },
  "UseChatColors": true, //Use ingame chat colors. (name, tag and message)
  "ChatColorsByGroup": { //defined chat colors by groupname.
    "Admins": {
      "Tag": "[Admin]", //Tag shown before nickname. Add space if you want it.
      "R": 0.5, // Message Ged       you can use 255 rgb values directly on all colors, the plugin will calculate ark values.
      "G": 0.8, // Message Green
      "B": 0, // Message Blue.
      "NameR": 0, // name colors
      "NameG": 1,
      "NameB": 0,
      "TagR": 0, // Tag colors
      "TagG": 1,
      "TagB": 1
    },
    "Discord": {
      "Tag": "[Linked]",
      "R": 0,
      "G": 1,
      "B": 1,
      "NameR": 1,
      "NameG": 0,
      "NameB": 0,
      "TagR": 0,
      "TagG": 1,
      "TagB": 0
    }
  },
  "ChatColorsDefault": { //default name colors
    "PlayerName_R": 0.859,
    "PlayerName_G": 0.804,
    "PlayerName_B": 0.09
  }
}

PS: You can use regular 0-255 RGB values for colors.

How to install and configure:
You will need a Discord application client id and a bot token. You can follow: this guide to get one.​
Do not use the invite link provided by the guide above, instead use the one below for correct permissions:​
Posting this link with your client ID should show this: (Name will be the name you chose)​
Click authorize and the bot should join your server.
You should manually check that bot has administrator permission.
You also need to make sure that your bot's role is above every other role in the discord server role config list.


Now you can start configuring the config.json.

To find Discord Role IDs check this link

To find Discord Channel IDs do this:

On Discord, open your User Settings -> Appearance -> Enable Developer Mode.


Right click on the Discord text channel you want the bot to interact with and press "Copy ID".

You now have the required ID for the config file!


Ingame Commands:
  • /discord - Prints information message.
  • /raidwarning <minutes> - Sets the raidwarning to <minutes> 0 = Off.
  • /setdiscord <username> - Sets player Discord username, no quotes needed.
    • Example: /setdiscord woolypenguin#3974
  • /setdiscord <authkey> - Authorizes player with received code.

Bot Commands:
  • !players - Prints player list on server.

Purchase Info:
After payment join my Discord via "Get Support" button (top right), and send me your hwid. The plugin will print it in console when not authorized.
Please give me at least 1-24 hours to setup hwid info. No new DLL is needed.
This purchase comes with basic support if needed.

Hwid Info:
- Each license represents a physical machine, so 6 ark servers running on one machine would only need 1 licence, Additional licensee's are required when using multiple physical servers.
- Are you moving server host/upgrading hardware and worried about the hwid? Not a problem send me a pm, here or on discord, with the new hwid and I will have it updated. In most cases within the hour, but it can take up to 24 hours depending upon my availability at that moment.

Plugin works with Atlas. But still needs a way to fetch tribe names. (last needed atlas part)
For questions or more information join my Discord via this link: https://discord.gg/fGPevkF
(This is a temporary link, and unless assigned a role, you automatically leave server when you go offline on discord.)
Author
woolypenguin
Downloads
54
Type
Digital product
License duration
1 Years
Renewal price
0.00 EUR
First release
Last update
Rating
5.00 star(s) 9 ratings

More resources from woolypenguin

Latest updates

  1. 1.1.5

    - Fixed double auth - Fixed cross tribe chat when servername has only korean letters. (would fix...
  2. Clustered tribe chat

    Added clustered tribechat -See discord for all changes.
  3. 1.0

    Total rewrite of whole underlying functionality. - Now supports as many clustered servers as...

Latest reviews

works as expected and has tons of features
This plugin is the best out there for the money. The dev truly cares and it shows! Hes constantly making updates and improvements to this plugin for the better!
The best plugin I have ever installed :) the developer helps immediately and responds very quickly. after a few minutes reading it was also very easy :)
quick response, wooly troubleshooted crashing issue with other mod dev to get things working properly. easy to setup and this plugins cross server chat actually works with discord.
Super fast response times!! great author highly recommended
The best plugin without a doubt, the creator answers quickly, and helps you. Very professional.
This plugin is amazing, auto role's, cross chat, coloured names and chat and with a dev that is super responsive this plugin is going to be amazing, get it now!
It's a very good plug-in. It works perfectly with the discord
Amazing guy! Very talented! Awesome stuff!
Top