Docs/Plugins

Infractions plugin

Infraction tracking and moderation commands for Dreamliner.

#Commands

#Punishment commands

CommandPermissionDescription
/warncan_warnIssue a warning
/notecan_noteAdd a staff note
/mutecan_muteTimeout a member via Discord (requires duration, max 28d)
/unmutecan_muteClear a member's Discord timeout
/kickcan_kickKick a member
/bancan_banPermanently ban a member
/tempbancan_banTemporarily ban a member
/unbancan_unbanUnban by user ID
/softbancan_softbanBan and immediately unban to purge messages

#Case management

CommandPermissionDescription
/infraction viewcan_viewView infraction details by ID
/infraction searchcan_viewSearch by ID, user, mod, or reason text
/infraction reasoncan_edit_reasonEdit an infraction reason
/infraction durationcan_edit_durationExtend or set duration (from creation time)
/infraction deletecan_deleteDelete an infraction record

#Configuration

yaml
plugins:
  infractions:
    config:
      mute_role: "1234567890123456789"      # Optional legacy; /mute uses Discord timeout instead
      case_log_channel: "1234567890123456789"  # Optional; falls back to moderation_log_channel_id
      confirm_actions: true
      ban_delete_message_days: 0
      softban_delete_message_days: 7
      reason_edit_level: 100
      duration_edit_level: 100
      notify:
        warn:
          dm: true
        mute:
          dm: false
    overrides:
      - level: ">=50"
        config:
          can_warn: true
          can_mute: true
          can_view: true

#Duration format

Timed actions use Dreamliner duration formats: 30s, 5m, 2h, 1d, 1w.

#Expiration

Timed mutes and bans are checked every minute. When a tempmute or tempban expires, the bot removes the mute role or unbans the user and marks the infraction inactive.

Manual unmute/unban or removing the mute role also clears active infraction records.

#Case log

When case_log_channel (or the server moderation_log_channel_id) is set, each action posts a log line to that channel. Case updates, deletions, and expirations are also logged there.