Welcome to DeviantCord’s documentation!¶
Warning
This documentation is still being worked on, while it is largely done here. Some things are still missing. If you need help with something join our discord here.
Welcome to the official documentation for DeviantCord, a Discord bot that allows the server to stay up to date with their favorite artists.
DeviantCord allows for two ways of hosting the Bot, you can either request hosting through us, or you can host it yourself. If you need help on choosing see this page Should I Self Host?
Getting Started (Self Hosted)¶
This section is for those who wish to host DeviantCord on there own hardware.
Should I Self Host?¶
If you do not have some experience with SSH in Linux and want to put this in a production server that is public it is recommended that you request hosting through us. We run reliable servers with experts configuring and maintaining the servers in important areas such as Security.
Self Hosting should really be reserved if you want to control all aspects of the bot and handle the technical details as well.
If you are still unsure or have any questions you can ask on our Discord server!
Setting up DeviantCord¶
DeviantCord has two different options in terms of hosting the bot. You can either request hosting through us, or you can host it yourself. You can see the differences between the two here
Finding a host¶
Self Hosting the bot requires a bit of work to get it setup, however before getting into the configuration of the bot you may want to consider where to host it. Cloud Hosting/ Virtual Private servers are usually the most affordable places to host your bot if you know where to look.
Note: If you are hosting the bot on your own machine you can skip to the Setup Section
If you want more information it can be found Choosing a host
Installing Python3¶
Depending on what operating system you are using (eg. Windows, Mac, Linux) the setup process will be different.
Please select the your operating system
Linux¶
Linux has many different types of Distributions with different Package Managers. Some may have Python3 already installed, however we only support Python version 3.6 minimum, check to see what your version of Python is (if any):
python3 --version
If your distribution is not below and does not come with a version of Python3 that isnt at least 3.6, then you will have to install python manually.
Ubuntu/Linux Mint¶
We only support Ubuntu Versions 18.04 and above
For Linux Mint we only support 19+
Ubuntu 18.04 has Python 3.6, the minimum version supported by the bot. While the versions after it has 3.7 However PIP the module manager for Python is not installed by default. You will have to install it.
To get started you first need to get the latest update headers otherwise you will not be able to proceed.
sudo apt-get update
Then you need to run the install command for PIP otherwise you will not be able to install the needed modules that the bot uses.
sudo apt-get install python3-pip
Once pip is intalled, you now have access to the pip command. Now lets install the required modules.
pip3 install discord.py discord asyncio urllib3
Debian 9¶
Debian 9 uses Python 3.5.3, the minimum supported version for the bot. It is not advised to use Python 3.5.3, as it may be deprecated within a future version.
If you want to use Python 3.5.3 then all you need to do is install pip
apt-get update && apt-get install python3-pip
Then you need to install the python modules for the bot
pip3 install discord.py asyncio urllib3
However, if you want to install Python 3.7 here is a guide to do so here
CentOS 7¶
CentOS does not come with any version of Python3 by default, and as a result you will have to install it manually. Additionally you will need to install a repository that allows you to install python3
yum install -y https://centos7.iuscommunity.org/ius-release.rpm
Once you have the repository installed, you should make sure that there are no updates before installing Python3
yum update
Then input Y and enter to confirm the update (If there are any updates).
Once you have the updates installed, you want to use the following command to install Python3
yum install -y python36u python36u-libs python36u-devel python36u-pip
After that, make sure the following command returns something
python3.6 -V
If it returns something, then Python3 is installed! Now we need to install the required Python modules for the bot. Use the following command to accomplish it
pip3.6 install discord.py asyncio urllib3
Fedora¶
Fedora 28+ has Python 3.6 and usually updates its python3 version consistently to newer versions. As a result you do not need to install Python3 or pip. So all you need to do is install the Python modules
pip3 install discord.py asyncio urllib3
Raspian (Arm Linux Distros)¶
ARM based Linux Distributions are not supported at this time.
Windows¶
Go download a release of Python 3.6+ here
Once it is installed, go to your search bar for Windows and search for cmd, then right click it and Run as Administrator and type
pip install discord.py asyncio urllib3
MacOS (OSX)¶
DeviantCord is not tested on MacOS, however it will still run. It should be noted however, that MacOS by default packages Python2, which is not compatible with DeviantCord.
You will need to install Python at their website. Then Run
pip3 install discord.py asyncio urllib3
Configuring DeviantCord (Self Host)¶
DeviantCord requires you to get a token from DeviantArt and Discord in order to use the bot. This page will guide you in getting those tokens.
Getting Registered¶
In order to get the needed tokens to run the bot you will need to register the bot with Discord and DeviantArt respectively
Requirements
- Discord Account
- DeviantArt Account (Preferably one that is not your primary)
DeviantArt¶
First go to the developers page for DeviantArt here
Register Click “Register Your Application”

Title the App whatever you want and click save. Since you are not using OAuth, you do not need to specify a callback URL
This should take you to your apps in the Developer page revealing your clientid and clientsecret

Open your client.json file where DeviantCord is being stored (With An Editor such as Atom or WinSCP’s default editor

Replace the clientid and client secrets on the deviantart page with what is inside the file and save.
Discord¶
First off we need to register the Bot with Discord, go to the developers page here
Click New Application

Add whatever information you want including the icon for the bot and the name for the bot.
Save your changes
Go to the Bot Category on the left
Click Add Bot

You do not need to specify permissions at the bottom. The bot will already have it setup
Adding A Bot user to the bot will now make the app a full fledged bot! Now we need to invite the bot the server it will be running on
Go to OAuth2
Enable the bot scope and copy the link generated into your browser and invite the bot to the server its needed in.

The Bot should appear on the server offine. Now go back to the bot tab and grab the token for the bot

Grab the token and put in the client.json file where DeviantCord is stored.

The bot is now setup!
Setting Up Permissions¶
DeviantCord like many other bots requires that you grant permission to users via a role. If there is no role set, then no commands besides admin commands will work.
However to set the role it should look for, you need someone with Administrator permissions to execute the setuprole command.
Warning
It should be noted that users with roles that are ranked higher then the bot role will automatically be granted permissions
However you will need to grab the roleid of the role you want to add. In order to get the roleid you will need to enable mentions for that role.
Then put the following in the chat of a textchannel
\@rolename
When the message is sent, it will reveal the id copy everything past the & sign except fore the >
Then replace roleid in the command below and execute it
To set the role use
$setuprole roleid
Warning
The prefix ($ above) may be different depending if you have a different prefix set. In that instance replace the $ with your used prefix
Running the Bot¶
Once you have completed configuring the bot, you will need to run the bot
Open your respective commandline interface (ex: cmd, terminal, bash)
Navigate to the directory/folder the Bot resides in.
Check for your platform below
Linux¶
If your Linux Distribution is not listed below try the following commands
python3 --version
Or try
python<version here> --version
Which ever one outputs a version that is at least 3.6 is what you will use instead replacing the version flag with Bot.py
This will start the bot.
Ubuntu/Linux Mint¶
We only support Ubuntu versions 18.04 and above
For Linux Mint we only support 19+
The following command should run the bot.
python3 Bot.py
Debian 9¶
Warning
Debian 9 uses Python 3.5.3, the minimum supported version for the bot. It is not advised to use Python 3.5.3, as it may be deprecated within a future version.
If you want to use Python 3.5.3 then all you need to do is
python3 Bot.py
However, if you used the guide for Python3.7 then use
python3.7 Bot.py
Windows¶
Windows does it simple, all you need to do is use the following command in cmd
python Bot.py
MacOS (OSX)¶
Warning
DO NOT Use the python command instead use python3! The python command is linked to Python2 which is installed on MacOS by default.
For MacOS all you need to do is
python3 Bot.py
Setting Up Listeners¶
There are two commands in DeviantCord that adds listeners that check gallery folders for new deviations. However this page aims to clear misconceptions with configuring listeners. The addartist command is the first command that should be ran for a new artist,
Things to Note:¶
- The bot needs Exact Foldernames (Case Sensitive)
- The bot needs the artists name exactly (Not Case Sensitive)
- Artist Username should be in quotes
- Folder name should be in quotes
- The addartist command is used to add a new artist that has no other listeners
- The addfolder command adds another listener for an already existing artist’s folder.
Correct Arguments¶
For Example with the addartist and addfolder command it is :
$addartist <artist_username> <folder> <channel_id> <inverted>
$addfolder <artist_username> <folder> <channel_id> <inverted>
If we looked at an artists page, such as the one below
Example image from Zander-The-Artist (With Permission) see his work here
Looking above at the example image, and using it as an example you should note the following
The addartist command should have the artist name and in this case it would be “zander-the-artist” not “zander the artist”
The artist username field should be the same as the yellow highlighted area in the picture above.
The folder field for the Hope in Friends Comic folder should be the exactly what it is in the sidebar on the left. In this case the folder for the comic Hope In Friends should be “Hope In Friends Comic” not “Hope in Friends”
$addartist “zander-the-artist” “Hope In Friends Comic” <channel_id> false
Inverted in this case would be false, but it depends on what artist and what folder
Removing Folders¶
Removing a listener uses the same logic as the section above, if you haven’t read the section it is suggested that you read it first.
However there are some differences you should note. As there is only a remove folder listener command. This was done to prevent accidentally deleting a whole artist from the folder as multiple folders can be stored under an artist.
As a result you can only delete one listener at a time. The command is as follows
$deletefolder <artist_username> <folder>
This will delete the folder from the artist.json file and no more notifications will be posted to Discord for that folder unless you readd it.
Additionally if you are having trouble remembering what folders are currently being listened for new deviations you can use the listfolders command
$listfolders
Inverted Galleries¶
Inverted galleries is the term we use to indicate that newest deviations are at the top instead of the bottom. An example of an inverted gallery can be seen here
The inverted argument would be declared true or false in the addfolder command and addartist command.
Warning
As of version bt-1.2.0, the inverse arguement should only be used for artists who have dependently posted an inverted gallery declaring inverse as false will now check for the 20 deviations posted at the top and will check for more at the bottom up until DeviantArt’s API says there is no more deviations.
Discord Developer Mode¶
Discord Developer Mode is required in order to get text channel id’s, you will need to enable it by clicking the gear icon near your name

Once you get into that menu click the Appearance Tab

then scroll down to the bottom and enable Developer Mode.

Choosing a host¶
Choosing a host for the first time can be difficult, this page aims to answer your questions on what hosting company you should choose for hosting your bot. As stated on the Installation page we recommend the following hosts.
We recommend the following hosts,
Reasons for Using VPS Dime¶
VPS Dime offers more power then OVH does for its VPS SSD plans for half the price. While their VPS solutions work well for a Discord bot, you are limited in terms of what else you can do with it, when compared with OVH there are no limits or additional rules. If you plan on using the VPS for other reasons as well, make sure that they are in compliance with VPS Dime’s TOS
Lastly, if you are worried about DDoS Attacks DO NOT GO with VPS Dime, they do not offer DDoS Protection. OVH offers reliable DDoS Protection with all of their plans.
Reasons for Using OVH¶
OVH offers a cheap price for its VPS products, while offering a balance of security and efficient power for its servers. All of its VPS products and Dedicated servers include DDoS protection, which is great if you are planning on using the VPS for only the bot and do not want limitations on what you can do with the VPS OVH is the best choice.
Getting Started (Hosted by us)¶
This section is for those who want us to host the bot, remember that you need to request it!
Requesting Hosting for DeviantCord¶
Errite/the group that develops the bot allows for communities to request hosting for the bot through us. Though we do have a few requirements
- Join the DeviantCord Discord server
- Fill out the Google Forms for requesting hosting
These requirements are mandatory to make sure that staff members can contact server owners by having a mutual server additionally it will allow for server owners/staff to be able to see announcements regarding the bot such as maintenance, and issues.
Support¶
Support will be given only through the official DeviantCord Discord server. Our support team at this time is very small and we plan on expanding it, but we keep support to Discord to allow for others to help out and also allow for others who may be experiencing problems to see solutions staff may have already answered.
I’ve requested it! Now what?¶
Requests will usually be done in no more then 3 days, to which a staff member will DM you with an invite link for the bot. However since the staff team consists of volunteers there may be times where there are delays. These delays will usually be talked about in the delays discord text channel. If there is no response to you and nothing in the delays text channel contact a staff member.
FAQ¶
How are version upgrades handled?
Bug Fixes will be applied to all server being hosted by us upon the updates being posted to Github* Updates always go through a testing process to make sure everything is functioning properly before a release.* When a new update is finished and released an announcement will be posted in the maintenance text chat
Who will have access to my bots files?
Only Errite Employee’s and certain staff members will be given access outside of server owners in order to fix issues and maintain the bot. Those who are given access are required to have a large amount of experience with Errite or with the team for them to have access to the files. (The organization who maintains the bot).
Are there any backups for our bots data?
All data is backed up daily on another server. Backups are retained for one month before being deleted.
What is Errite?
Errite is an organization based out of Chicago that primarily specializes in Art, Game Development, and software development. Most of the individuals behind the creation of the bot are in this organization.
Is there any difference between the self-hosting and the hosting you provide?
No, there is no major difference at this time in terms of functionality. The files provided on Github are the same ones used on the hosting we provide. The only difference is that we handle the management of the bot from the hosting side of things such as handling maintenance, and upgrading the bot.
Errite Error Notifier¶
Warning
AutoError Reporting is only enabled by default for the DeviantCord public bot hosted by us. Though the same functionality can still enabled manually on self hosting to report errors to any Discord Server the bot user resides on by whoever is hosting the bot. If you are unsure that this functionality on is enabled use erritetoggle to disable it. It will let you know.
AutoError reporting was introduced to the DeviantCord public bot in bt-1.3.0. It notifies DeviantCord staff of issues encountered with the bot so that the appropriate action can be taken, and for faster response in the instance that issues are encountered that may not be apparent otherwise. This functionality is not mandatory and can disabled using the erritetoggle command.
Any message sent by the Error Notifier will never contain personal identifying information of users. The Error Notifier can send the following information
- Current name of Discord server
- Discord server id
Listener Related Exceptions Only
- artistname
- foldername
Messages sent by the Error Notifier are kept securely and only the Support Team has access. An example message from the error notifer can be seen below for the reload command.

Still have questions regarding the Error Notifier? Ask your questions on our Discord server here.
Additional Information¶
erriteCommands¶
Warning
This is only regarding the Public DeviantCord bot hosted by us not the self hosted bot.
Starting with bt-1.3.0 we added the ability to remove the public DeviantCord bot hosted by us from any Discord server. This is the sole duty of the erriteCommands that can be seen when reloading DeviantCord on the public bot. It cannot run any other command not related to forcefully removing a bot from a server. The reason we implemented this was incase a situation arose where we needed to forcefully remove our bot from a server. Primarily in the instance that the bot is being abused or violating Discord’s ToS/Community Guidelines. We will also use this if staff members of a particular server repeatedly come on the DeviantCord Discord server and break the rules in regards to support. In this case we will always reach out to staff members/owner on the server and give them plenty of options and warning that if the behavior continues that they will lose access to the DeviantCord public bot. This only used a last resort and only Michael (Lead Developer of DeviantCord) can forcefully make the the bot leave a server.
Important Information For DeviantCord¶
This section is in regards to information, and announcments regarding Security for DeviantCord, the Community.
DeviantCord Security FAQ¶
Last Updated July 19th, 2019
Warning
Make sure that you are looking at the latest version of the documentation. Otherwise this information may have changed.
Server Security¶
What measures are put in place to protect the servers housing DeviantCord?
DeviantCord has many measures such as:
- Brute Force Detection
- 2FA on all accounts in regards to Hosting Provider Accounts
- 2FA on all Discord Accounts linked to the bot.
- 2FA Key Encryption to login
- DDoS Protection on all servers
Does DeviantCord have DDoS Protection
Yes we have DDoS Protection for all of our production servers. When a DDoS Attack occurs, measures will automatically activate without interrupting legitmate usage.
There are rumors about X person DDoSing DeviantCord.
No need to worry, as said in the previous question we have very reliable DDoS Protection that will activate automatically on all of our servers.
How are security vulnerabilities taken care of for servers housing DeviantCord?
We check many CVE websites for our servers daily to make sure that there is nothing that needs patching, not to mention we check updates on our servers daily and will apply them depending on what the updates do.
For security related updates, we will do what is necessary to apply security updates.
In regards to API Vulnerabilities for any libraries that DeviantCord uses, we keep a sharp eye on announcements by the developers of libraries we use. In this case urllib3 and DiscordPy
How are version upgrades handled for the public bot?
In most cases bug Fixes will be applied to all server being hosted by us upon the updates being posted to Github* Updates always go through a testing process to make sure everything is functioning properly before a release.* When a new update is finished and released an announcement will be posted in the maintenance text chat. However if there is an update that we feel may cause issues in Discord Servers we will wait a couple days to get in touch with server owners before applying it to the public bot.
Who has access to the bots token?
Only Michael (The Creator/Lead Dev) has access to the bots token.
Are there any backups for our bots data?
All data is backed up daily on another server. Backups are retained for one month before being deleted.
Who will have access to the public bots files?
Only Errite Employee’s and certain staff members will be given access outside of server owners in order to fix issues and maintain the bot. Those who are given access are required to have a large amount of experience with Errite or with the team for them to have access to the files. Not to mention they are all under legal agreements that we will not be detailing for obvious reasons.
What is Errite?
Errite is an organization based out of Chicago that primarily specializes in Art, Game Development, and software development. Most of the individuals behind the creation of the bot are in this organization.
Is there any difference between the self-hosting and the hosting you provide?
No, there is no major difference at this time in terms of functionality. The only difference is that DeviantCord can make the bot leave the server on the hosting we provide without the server owner doing anything.The files provided on Github are the same ones used on the hosting we provide. The only difference is that we handle the management of the bot from the hosting side of things such as handling maintenance, and upgrading the bot.
You can see information regarding erriteCommmands here Additional Information
General Security¶
Is DeviantCord Secure?
DeviantCord is secure, it runs when a command is ran to make sure that the user that used the command is authorized to use the command is executing the command from the target server and not another server. However it doesn’t hurt to limit DeviantCord to be able to see messages/send messages in channels meant for the bot.
When I click view image source link from an image posted by DeviantCord I get a spooky link notice for wixmp.com
Wix owns DeviantArt and stores deviation images on its Cloud Service. This is why the link is wixmp.com and not DeviantArt. You can see this by right clicking the image url on the deviantart page and finding that it goes to wixmp.
I found a vulnerability in DeviantCord where do I report it?
DO NOT create a Github Issue. Join our Discord server and contact a Developer via DM’s (Even if they are offline). Only discuss this through DM’s, as disclosing a vulnerability on the Discord Server publically is against our servers rules. This will ensure that a reliable method of communication and make it easier to find the bug and patch it
You can join our discord server here.
I Found a bug that doesn’t involve security? Where should I report it?
You can report it on our GitHub page here here. or report it on our Discord server here.
Can the DeviantCord Bot make modifications to my Discord Account?
No, bot users cannot make changes to your account for the public bot and self hosted DeviantCord bots.
My Antivirus/Browser says that DeviantCord is dangerous!
If your virus scanner reports a copy of DeviantCord downloaded from our gitlab here here. is infected with a virus, it is a false positive. We scan every release of DeviantCord using the scanning service at www.virustotal.com. It scans with 70 anti-virus products to make sure DeviantCord is safe before we make it available for download.
Please report antivirus issues to us via our Discord server here.
Additionally you can see the list of known false positives here DeviantCord False Positives
Phishing¶
I received an email/form of communication from someone claiming to be from DeviantCord
We do not reach out to server owners outside of Discord. All of our communication to our users is through Discord. If you receive an email claiming to be from DeviantCord or Errite. Contact us on our Discord server here.
How Can I determine if someone is DeviantCord staff?
Check the DeviantCord Discord server and check the #roles channel for the context of each role if they do not have a staff rank then they are not DeviantCord staff.
However if the behavior of the staff member is weird, bring it up to a Moderator/Developer
I found someone impersonating DeviantCord Staff! What do I do?
Join our Discord server and notify a staff member, and supply us their Discord ID (Enable Developer Mode and right click the user and select copy ID.
You can see how to enable developer mode here :doc:’addinglisteners’
Help!!! there was an event in the community in regards to security and I want to know if DeviantCord is affected
If none of the questions here answer the question, join our Discord
It more then likely will not affect DeviantCord. However you can view issues that we are currently aware about here.
What Discord ID’s does the public bot use?
Warning
Make sure that you are looking at the latest version of the documentation. Otherwise there may be DiscordID’s missing.
- DeviantCord#4637
- DeviantCord#1257
- TestDeviantCord#0062
I found one of the bots on my server not on this list.
First make sure that this is the latest version of the documentation. If this is the latest version of the documentation. Contact DeviantCord Support
Commmunity Security Events¶
This page displays changes we made to DeviantCord in terms of security.
Warning
Make sure that you are looking at the latest version of the documentation. Otherwise this information may have changed.
Latest Event¶
- July 17th, 2019 There was a hoax regarding KuwaiiBot that caused panic in the community
Past Events¶
- July 17th, 2019 There was a hoax regarding KuwaiiBot that caused panic in the community
DeviantCord False Positives¶
If your virus scanner reports a copy of DeviantCord downloaded from our Github here here. is infected with a virus, it is a false positive. We scan every release of DeviantCord using the scanning service at www.virustotal.com. It scans with 70 anti-virus products to make sure DeviantCord is safe before we make it available for download.
Please report antivirus issues to us via our Discord server here.
Warning
Make sure that you are looking at the latest version of the documentation. Otherwise this information may have changed.
Latest False Positives¶
None reported!
Past False Positives¶
None
Security Changelog¶
This page displays changes we made to DeviantCord in terms of security.
Warning
Make sure that you are looking at the latest version of the documentation. Otherwise this information may have changed.
Latest Changes¶
- July 18th, 2019 Activatec 2FA all points of entry for servers hosting the bot and tightened existing security measures.
made 2FA required for all logins for staff regarding anything DeviantCord uses
Past Changes¶
- July 18th, 2019 Activatec 2FA all points of entry for servers hosting the bot and tightened existing security measures.
made 2FA required for all logins for staff regarding anything DeviantCord uses