Golang logging bot for Discord
Files
README.md

Observer #

A logging bot for the Reverie Discord server. It keeps a careful record of what happens on the server, messages, edits, deletions, role and channel changes, voice, moderation, so that when something goes wrong, the moderators can see exactly what happened and who did it.

Built for Reverie, shared as-is. Observer is open source so others can learn from it or borrow from it, but it is made for one server and one set of habits (for example, it expects YAGPDB as the moderation bot) Please do not expect support

What it records #

Area Examples
Messages edits, deletions, bulk deletions, crossposts, command messages, invite links, reaction removals
Members joins, leaves, kicks, bans, prunes, nickname/username/avatar changes, role changes, timeouts, boosts
Voice joins, leaves, switching or being moved, being disconnected, server mute/deafen, streams and cameras, full channels
Server every server setting (name, icon, verification, features, onboarding, …)
Roles & channels creation, deletion, every change, and permission overwrites shown as before/after
Threads & forums new posts, renames, archiving, locking, tags
Emojis, stickers, soundboard, webhooks, invites creation, changes, deletion
Polls & events polls created/ended, votes, scheduled events
Moderation YAGPDB bans, kicks, mutes, timeouts, warnings and reports; case edits and deletions; notes
AutoMod rule changes and every action it takes

Privacy and retention #

  • Message text and attachments are kept for 90 days
  • Everything else (role changes, bans, cases, voice sessions) is kept
  • Channels can be excluded: fully ignored, or logged without their message text
  • Only moderators can use the commands
  • Every lookup is logged: each /history, /case, /vc-at and export is recorded in an audit channel, so it's always clear who looked at what
  • Saved files on the server can be encrypted, and stored fingerprints of messages can't be turned back into the text.

Commands #

Command What it's for
/history @member Everything recorded about a member (or everything they did), newest first, with filters and an export button
/case <number> One moderation case with its full edit history
/vc-at #channel <time> Who was in a voice channel at a given moment (“2h ago”, a date, or a Discord timestamp)
/note add · remove · list Private moderator notes about a member
/observer status Whether Observer is healthy and keeping up
/observer reload Reload the settings file (administrators)

Reports from YAGPDB also get Accept and Ignore buttons in the log.

License #

MIT