A Discord bot that mirrors comic book reviews between two servers, keeping both communities in sync.
When a member posts a review in the review channel, Amalgam:
- Validates it against the required format — invalid posts are deleted and the author is DM'd their original content to fix
- Creates a discussion thread on the review in both servers simultaneously
- Forwards the review to the partner server
- Keeps a sticky format guide pinned at the bottom of both channels at all times
- Propagates edits and deletions across both servers
- Forwards thread replies from the original reviewer
- Respects bans — a user banned in the destination server won't have their review forwarded
Posts that don't match this structure are deleted. The author receives a DM with their original text so they can repost.
## Comic Name
**Year and writer:**
**Rating:** x/10
**Review:** Your thoughts here. Use ||spoiler tags|| for spoilers.
**MU/DCUI link:** (optional)
All four main fields are required. The MU/DCUI link is optional. The pattern is matched case-insensitively.
-
Clone the repository
git clone https://github.com/BowGaming/Amalgam.git cd Amalgam -
Install dependencies
pip install discord.py python-dotenv
-
Create a
.envfile in the project root — see Configuration below. -
Run the bot
python main.py
All configuration is read from a .env file at startup.
| Variable | Required | Description |
|---|---|---|
DISCORD_TOKEN |
Yes | Bot token from the Discord Developer Portal |
BOT_PREFIX |
No | Command prefix — defaults to ~ |
GUILD_MD |
Yes | Server ID for the first server (MD) |
GUILD_DCO |
Yes | Server ID for the second server (DCO) |
COMIC_REVIEW_CHANNEL_MD |
Yes | Channel ID for the review channel in MD |
COMIC_REVIEW_CHANNEL_DCO |
Yes | Channel ID for the review channel in DCO |
REVIEW_REACTION_EMOJI_MD |
Yes | Emoji ID for the reaction added to reviews in MD |
REVIEW_REACTION_EMOJI_DCO |
Yes | Emoji ID for the reaction added to reviews in DCO |
Example .env:
# Bot credentials
DISCORD_TOKEN=your-token-here
BOT_PREFIX=~
# Server IDs (right-click server → Copy Server ID)
GUILD_MD=123456789012345678
GUILD_DCO=987654321098765432
# Review channel IDs
COMIC_REVIEW_CHANNEL_MD=111111111111111111
COMIC_REVIEW_CHANNEL_DCO=222222222222222222
# Custom emoji IDs (right-click emoji → Copy ID)
REVIEW_REACTION_EMOJI_MD=333333333333333333
REVIEW_REACTION_EMOJI_DCO=444444444444444444Grant these permissions in both servers when adding the bot:
- Read Messages / View Channels
- Send Messages
- Manage Messages
- Add Reactions
- Create Public Threads
- Send Messages in Threads
- Read Message History
- Ban Members
In the Discord Developer Portal, enable both Server Members Intent and Message Content Intent under Privileged Gateway Intents.
- Python 3.10+
- discord.py 2.x
- python-dotenv