Skip to main content

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

  1. Dashboard → Your server → toggle Logs
  2. Click Edit to configure individual log categories
  3. For each category: enable the toggle, select a channel, optionally change the color
  4. 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

CategoryLogged Actions
moderationBan, kick, mute, unmute, warn, clear, setnick, role add/remove, warning threshold exceeded
welcomeMember joined, member left
reaction_rolesRole added/removed via buttons, dropdown, reactions + errors (missing role)
suggestionsSuggestion created, approved, rejected
pollsPoll created, poll closed
message_builderEmbed sent
alliancesAlliance created/deleted, member added/removed/promoted/demoted, leadership transfer, auto-succession
presidentsPresident appointed, removed, decree issued
armoryArmory slot assigned, cleared

Configuration

Each log category has three settings:

OptionTypeDescription
enabledbooleanWhether this category is active
channel_idstringTarget channel ID
colorstring (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

ActionEmoji + 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:

  1. Whether the given category is enabled (enabled)
  2. Whether a channel is configured (channel_id)
  3. 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 moderation category — 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.