Logs
The Logs module provides a centralized logging system for actions performed by other bot modules. Each log category can be directed to a separate channel with an individual embed color.
Enabling the Module
Enable the module
Dashboard → Your server → toggle Logs
Configure categories
Click Edit to configure individual log categories
Set up each category
For each category: enable the toggle, select a channel, optionally change the color
Save
Save changes
Validation
You cannot save an enabled log category without a selected channel. The dashboard will highlight the missing field and display an error message.
Log Categories
| Category | Logged Actions |
|---|---|
moderation | Ban, kick, mute, unmute, warn, clear, setnick, role add/remove, warning threshold exceeded |
welcome | Member joined, member left |
reaction_roles | Role added/removed via buttons, dropdown, reactions + errors (missing role) |
suggestions | Suggestion created, approved, rejected |
polls | Poll created, poll closed |
message_builder | Embed sent |
alliances | Alliance created/deleted, member added/removed/promoted/demoted, leadership transfer, auto-succession |
presidents | President appointed, removed, decree issued |
armory | Armory slot assigned, cleared |
Configuration
Each log category has three settings:
| Option | Type | Description |
|---|---|---|
enabled | boolean | Whether this category is active |
channel_id | string | Target channel ID |
color | string (hex) | Log embed color (optional) |
Configuration Example (JSON)
{
"logs": {
"moderation": {
"enabled": true,
"channel_id": "1234567890",
"color": "#5865F2"
},
"welcome": {
"enabled": true,
"channel_id": "1234567890",
"color": "#22C55E"
},
"alliances": {
"enabled": true,
"channel_id": "9876543210",
"color": "#10B981"
}
}
}Dashboard — Configuration
The Logs edit panel displays a tile grid — one per category:
Each tile contains:
- Category title + short description
- Toggle — enable/disable
- Channel Select — dropdown with text channels
- Color Picker — clickable color swatch + hex input
All categories are saved with a single Save click (UnsavedBar).
Log Format
Each log is a Discord embed with the following structure:
┌─────────────────────────────┐
│ 🔨 Ban │ ← title with action emoji
├─────────────────────────────┤
│ Target: @User (ID: 123) │
│ Moderator: @Mod (ID: 456) │
│ Reason: Spamming │
├─────────────────────────────┤
│ 2026-06-12T10:30:00Z │ ← ISO timestamp in footer
└─────────────────────────────┘Action Emojis
| Action | Emoji + Title |
|---|---|
| Ban | 🔨 Ban |
| Kick | 👢 Kick |
| Mute | 🔇 Mute |
| Unmute | 🔊 Unmute |
| Warning | ⚠️ Warning |
| Clear | 🗑️ Clear |
| Nickname Change | 📝 Nickname Change |
| Role Added | ➕ Role Added |
| Role Removed | ➖ Role Removed |
| Member Joined | 📥 Member Joined |
| Member Left | 📤 Member Left |
| Suggestion Created | 💡 Suggestion Created |
| Suggestion Approved | ✅ Suggestion Approved |
| Suggestion Rejected | ❌ Suggestion Rejected |
| Poll Created | 📊 Poll Created |
| Poll Closed | 📊 Poll Closed |
| Embed Sent | 📨 Embed Sent |
| Alliance Created | ⚔️ Alliance Created |
| Alliance Deleted | 🗑️ Alliance Deleted |
| Member Added (alliance) | ➕ Member Added |
| Member Removed (alliance) | ➖ Member Removed |
| Rank Changed | 📊 Rank Changed |
| Leadership Transferred | 👑 Leadership Transferred |
| President Appointed | 🎖️ President Appointed |
| President Removed | 🚫 President Removed |
| Decree Issued | 📜 Decree Issued |
| Armory Assigned | 🏰 Armory Assigned |
| Armory Cleared | 🏰 Armory Cleared |
How Other Modules Send Logs
Other modules use the Logs module API:
logs_cog = self.bot.get_cog("LogsCog")
if logs_cog:
embed = logs_cog.build_log_embed("ban", target, moderator, reason)
await logs_cog.send_log(guild_id, "moderation", embed)The send_log method checks:
- Whether the given category is enabled (
enabled) - Whether a channel is configured (
channel_id) - Optionally overrides the embed color with the configured one
If the category is disabled or there's no channel — the log is silently skipped.
Listened Events
The Logs module does not directly listen to any Discord events. It operates as a service — other modules call its send_log and build_log_embed methods.
Tips
Best Practices
- Create dedicated log channels (e.g.,
#logs-moderation,#logs-alliances) - Restrict access to log channels to moderators/admins only
- Use different colors for categories — makes it easier to quickly identify log types
- Enable at least the
moderationcategory — it's the basic audit trail
One Channel for Everything
You can set the same channel for all categories — logs will be distinguished by color and emoji. But separate channels provide better organization.
No Commands
The Logs module has no slash commands. All configuration is done through the dashboard.
Welcome & Goodbye
Handles welcome and goodbye messages sent automatically when someone joins or leaves the server, supporting text messages and embeds with full customization.
Reaction Roles
Allows users to self-assign roles by interacting with bot messages using buttons, dropdown menus, or emoji reactions.