Gday, this is a little bot I made for the CTF teams I play in IrisSec and thehackerscrew (one of them being quite disorganised with their channels previously) so I made this bot to automate the reaction role process, role creation, category, channels and the likes.
Firstly, rename the .env.template to .env, here is a table for the key and value pairs that are expected.
| Key Name | Value Type | Value Options | Optional? | Default Value | Purpose |
|---|---|---|---|---|---|
| TOKEN | String | - | No | - | The token for your Discord Bot. |
| GUILD_ID | String | - | No | - | The ID for the Discord Server your bot is in. |
| ADMIN_ROLE_ID | String | - | No | - | The role ID for the Administrator role. |
The layout of channels is in the channels.json file. The array stores objects that contain both a name and a channels key, the name value being the name of the category and channels value being another array containing objects. The channels have a few keys listed below in this table.
| Key Name | Value Type | Value Options | Optional? | Default Value | Purpose |
|---|---|---|---|---|---|
| name | String | - | No | - | The name of the channel. |
| type | String | text/voice/forum | No | - | The type of channel it creates. |
| archive | Bool | true/false | Yes | false | If the channel is archived when running the archive command. |
| participant_editable | Bool | true/false | Yes | true | If the channel should be editable by participants. |
This bot was designed on Python 3.10.9.
Firstly install the requirements:
python3 -m pip install -r requirements.txt
And then run the bot:
python3 main.py
- Have reaction role expiration on a timestamp so people cannot join mid-CTF (prevent potential cheating)
- CTF auto-archival at a timestamp
- Customisable emoji for a reaction message when creating a CTF
- When working with multiple categories we can hit some errors when archiving where channels do not go to the correct archival category when channels share the same name.
- Interaction defference can cause some commands to partially execute wrong, known issue.