A discord bot made in Python using the discord.py library made by Rapptz (rewrite version)
Made specifically for the discord server of the RuneScape 3 Clan Atlantis
-
Requirements
-
Python (3.10+ recommended)
pyenv install 3.10 pyenv local 3.10
-
-
Install dependencies
poetry install
- Run project once to generate config file
poetry run python atlantisbot.py- Setup Environment variables
# Edit resulting .env with the required env variables
cp .env.example .env-
Edit config file with required values at
bot/bot_settings.json- Discord Bot API Token
- It will also be required to have a PostgreSQL database running with the credentials setup in the config file. You can easily run a ready to setup database with docker by running
docker-compose up -d
-
Run database migrations
poetry run python manage.py migrate- Run bot
poetry run python atlantisbot.py
Alternatively, you can also run the bot with a debugger active by using VsCode with 'Run and Debug' (default keybind to run: F5)
- Not yet supported, and likely won't ever be, the bot is very customized to a specific discord server, do feel free, however, to copy features of it and implement them in your own bot (license)
- Automated Team Maker
- Gets information from the Bot's database for teams created with the
!teamcommand, such as which roles to allow to join a Team, listens for join (or leave) messages in the chat set with!teamand automatically builds the Team with them- Also saves every message the Bot sent for join/leave messages so it can clear them all when a team is deleted by using the
!del <team ID>command (Requires manage channels permission or be the Team creator) - Mark players as substitutes when they join over the Team limit number, automatically moving and notifying them when a slot opens up
- Also saves every message the Bot sent for join/leave messages so it can clear them all when a team is deleted by using the
- Gets information from the Bot's database for teams created with the
| Joining a Team | Team List |
|---|---|
![]() |
![]() |
-
Automated Raids (Game Event) Team Maker
- Notifications for Raids one hour before reset every 2 days, bot picks up people who ask for invites to the Team and gathers them into a list (works the same as the team making command explained above)
-
Clan Adventurer's Log Feed
- Sends Adventurer's log entries of every player in a Clan to a specific discord channel by making use of RuneScape 3's API by Jagex
| Adventurer's Log messages example |
|---|
![]() |
- Updated Merchant Stock
- Edits a message with the current Travelling Merchant stock everytime it updates

- Edits a message with the current Travelling Merchant stock everytime it updates
Arguments format: <required> (optional|default value)
!team- Saves information about a Team that gets saved in the Bot's database, this information is used to automate team creation and joining of other people, explained in the automated team making task above
| Using the Team command (gif) |
|---|
![]() |
!claninfo <player>- Gets clan information from a RuneScape 3 player and returns it in a formatted embed (makes use of RuneScape 3's API by Jagex)
| Using the Claninfo command |
|---|
![]() |
!ranks- Checks which rankings need to be updated in a RuneScape 3 Clan based on their Clan Exp (custom configuration)
| Using the Ranks command |
|---|
![]() |
!amigosecreto- Join the Yearly Atlantis Secret Santa event, automatically pairs people and notifies them when the the pairing is done
| Joining Secret Santa Successfully | Can't join if you aren't in the clan |
|---|---|
![]() |
![]() |
!comp (competition number|1) (number of players to list|10 (max=50))- Gets information from a RuneClan Exp competition (or lists them if you've passed no arguments and there's more than one running)
| Using the Comp command | Listing competitions |
|---|---|
![]() |
![]() |










