Skip to main content
Choose a server first. Search by name; installed servers you can open appear first. Servers that require installation or additional access show the next step. Overview shows available staff tasks and relevant setup needs. Old Modules and Setup links open Overview. Setup tools at /dashboard/{serverId}/setup/tools retains server scans, resource inspection and protection reviews. Connection status shows affected behavior and delivery problems; there is no universal readiness score or requirement to assign staff access for a solo owner. Visible controls depend on current access and which capabilities are supported; a future product domain in the roadmap is not a working workspace. Sessions last seven days. Using the dashboard renews that period at most once per day when you navigate or return to the tab. Leaving an idle tab open does not keep you signed in indefinitely. After expiry, sign in with Discord again; renewing a session never changes your server permissions. Cases lists authoritative moderation outcomes. Open a case to inspect its reason, history and delivery state. A recorded case and a delivered Discord message are different facts: inspect delivery before assuming a member or staff channel received the notification.

Editing settings

Search for channels and roles by name. Multiple selections stay visible as removable chips, including saved selections that are no longer available. Short choices show their full labels before you open them. Related settings share a named section. Expand optional settings when you need them; closing a section keeps your draft. Unsaved changes appears beside the save action. Save applies that form’s settings; Discard changes restores its saved values. Leaving a changed form asks whether to keep editing or discard the draft.

Case evidence

An authorized moderator can capture a reviewed source for an existing case. The capture is purpose-limited and requires the moderator to explicitly affirm that the exact message and attachment set was reviewed. That affirmation records the moderator’s authorized review; it is not presented as consent from the message author. Pup stores only the selected message, attachment metadata, author, channel, timestamps, action context, and immutable SHA-256 digests. It does not copy surrounding conversation or unrelated member data. Message content is limited to 1 MiB; individual attachments are limited to 25 MiB and no more than ten attachments are accepted. Missing, deleted, inaccessible, or oversized material remains a truthful availability marker — Pup never reconstructs it. Accepted bytes are encrypted and queued for private storage. A pending capture has durable local staging but is not yet provider-verified; provider drift, corruption, or an unavailable copy remains unavailable rather than being shown as evidence. Case evidence remains available until explicitly deleted. Legal holds require moderation administration access and prevent deletion. To inspect existing evidence, select the narrowest purpose and confirm the review and consent-or-lawful-basis boundary. This reveals metadata only. Private downloads are separately authorized and audited; restricted evidence remains hidden without moderation administration access. A recorded share is redacted, does not create an object URL or a second copy, and can be revoked by an authorized administrator. Deleted, missing, inaccessible, oversized, partial, or provider-failed material stays visibly unavailable rather than being recreated. Activity includes a bounded command-audit view. Choose the Command audit shortcut, then narrow its receipts by command name, actor, channel, correlation, time, or the command.<name> subtype. Records remain until explicitly deleted. The view deliberately has no command arguments, moderator reasons, response text, or routine-denial history. Members lists visible server members and loads more as needed. Search by display name or username, or paste a Discord member mention or exact ID. Open a member to review their profile, visible Pup activity, roles and authorized case/history links. Across the dashboard, named member mentions offer a profile preview and a menu to copy the member ID, username or display name. User-account facts and server-membership facts are labelled separately with their source and freshness. Presence is shown as unavailable because Pup does not collect it. The moderation summary counts only approved standard records; it never includes restricted reasons, messages, or hidden history. Protected people and roles return no identity, membership, role, or moderation details. Connection status gives authorized server operators a redacted summary of module, provider, destination, configuration, delivery, and worker state. It labels freshness, impact, safe diagnostic codes, and the next place to look without exposing infrastructure. Use a specific recovery action only where it is separately authorized. Refreshing a page does not grant permissions or make a failed operation successful. Refresh status repeats read-only checks. Server owners see connection, bot-permission and delivery status. Advanced runtime details and private-object restore require the installation’s super-admin role in both managed and self-hosted Pup. Server permission sets do not grant that role. Normal case and log retries remain available through your server permissions. Public liveness does not expose these server-private diagnostics, tests, retries, or incident history. Access decisions explains recent permission checks, including why an action was refused. An allowed check does not prove that the action was performed; use Cases or Activity for actual outcomes. Expand Why this decision? for checked conditions, permission IDs and the reference ID. Hover an ID to see it in full or select it to copy. Protected people and roles are separate from access grants: they limit who moderation actions may target. For blocked member DMs, ask the member to permit messages or unblock the bot, then use the authorized delivery Retry action. The original case remains the record; avoid issuing another warning merely to resend its notification. After a role or permission change, refresh access. If a saved configuration was changed by another operator, reload and review their changes before resubmitting. Use Roles to inspect current role color, position, permission bitfield, membership count, managed state, and technical ID. Load a member’s current roles before editing. Managed roles and roles above your or Pup’s position remain unchanged. Review the named additions and removals before applying. If membership changes while you are editing, reload the member and review your changes again. Changing the target member replaces the draft. Member information and history links appear when your access permits them.

Commands

Open Commands to search the full command reference, inspect required and optional inputs, and see who can use each command. Slash commands run in Discord; optional history menus are available from a member or message. Only warn also supports the server’s text prefix. Administrators can change that prefix on this page. Logs owns moderation destinations and server-event routing. Moderation settings owns the mute role and its permission preview. Changing that role requires saving before previewing it. Each page saves only its own settings.

Edit settings

In Logs, Record server events turns collection on or off independently of destination drafts. Choose a staff-only Moderation log channel and save. Setup checks whether Pup can reach that channel. This destination is separate from the event-specific log routes below. Pup excludes messages in those log destinations from message logging, so removing old log posts does not create new deletion logs. Commands, log destinations, notification routes, moderation settings and each protection have separate save boundaries. Discard changes restores every field in that form to the last saved values. After saving, the form shows the values accepted by the server. Changes stay local until you save. The bar indicates unsaved changes and remains visible while scrolling. Following a dashboard link, using browser Back or Forward, or reloading with unsaved changes asks you to confirm. Choose Keep editing to preserve your draft, or Leave without saving to discard it. Honeypot channels require an explicit addition: select Add channel, choose the channel, then Add selected channel. Review the selected list and operating mode before saving. Adding a channel does not switch the rule into enforcement. Removing a channel from the list also requires saving. Log routes and filters controls messages, members, joins, leaves, timeouts, bans, channels, roles, emoji, server changes, and voice independently. Each family has its own destination and every listed subtype can be disabled before Pup retains it. Channel IDs, member IDs, and literal message prefixes can be excluded. The preview calls out shared destinations, disabled events, exclusions and destination changes before saving. It does not verify live Discord permissions or send a test message; check delivery status for actual failures. The JSON box is the exact versioned export. Importing replaces the complete route, event, filter, and attachment collection configuration in the local draft; review the preview and save to apply it. Imports with missing, extra, or unsupported versioned fields are rejected instead of being partially applied. The dashboard uses your Discord profile picture and server icon. Use Refresh Discord profile and server images beside your avatar to load changes without signing in again. Refreshing keeps unsaved settings on the current page. If Discord is unavailable, retry once the connection recovers. When a reviewed Mute role is configured, Preview configured role reads the current Discord role and channel permission data without changing it. The table shows the modeled result for text sending, voice connection and speaking, thread participation, and application-command use. It combines @everyone and the configured role’s channel overwrites, but it deliberately marks results partial when overwrite data or a thread parent is unavailable. It cannot infer other roles on a particular member, member-specific overwrites, private-thread state, or command-specific policies. Review those notes before relying on the role’s restriction scope; Pup never owns or edits channel overrides. Command restrictions use named role and member pickers under Staff access. Choose up to 50 ignored roles and members per command; these members cannot use that command. Save or discard the restriction draft before saving other controls. Saved selections remain visible when reopening the section. Warning-bot replies use a named channel selector and still require a channel Pup can access.

Protection rules and scopes

Open Protection and choose a policy. Honeypot, mention spam, attachment spam, blocked phrases, link protection and dangerous files each save behavior, scope, notifications and thresholds together. Off stops new automated responses; Monitor records matches; Take action uses the selected responder. Turning a protection Off does not undo completed actions or disable manual moderation and restoration. An action already sent to Discord may need reconciliation. Channel, member and role inclusions restrict where a rule applies. Member and role inclusions combine with “or”; exemptions win. Selected channels with no entries match no channels. Use the named channel and role selectors; unavailable saved resources remain visible until removed or restored. Saving checks current Discord resources. A missing resource prevents the affected protection from taking action. Preview scopes can inspect saved scope decisions without changing a policy. Blocked phrases has separate Literal phrases and Wildcard phrases lists. Literal phrases match a substring exactly; * and ? in that list stay literal. In the wildcard list, * matches any number of characters, including spaces and line breaks, and ? matches one Unicode character. buy*coins matches “buy cheap coins”; c?t matches “cat”. Escape a literal star, question mark or backslash with \*, \? or \\. Other escapes are invalid. Matching ignores case and normalizes Unicode compatibility forms; it does not ignore accents or punctuation. Patterns match anywhere in a message and must contain a non-space literal character. Each phrase is limited to 200 characters, with up to 200 literal phrases and 50 wildcard phrases. Wildcard phrases require Pup as responder; Discord AutoMod does not receive these patterns. Try a sample message checks the draft lists locally without saving or sending your message. Scope and exemption checks still apply to actual messages. Link protection distinguishes blocked domains and their subdomains from exact blocked hosts. Add hosts individually, without a URL scheme, path or port. example.com in the domain list includes sub.example.com; *.example.com is an alias for that same rule and also includes the base domain. The exact-host list matches only that hostname. Other glob expressions and regex are not supported. Allowed domains override either block list and the approved-role requirement for those hosts only. Approved roles permit other links; they do not bypass explicit blocked domains. With the role requirement enabled and no approved roles selected, it applies to all ordinary members. Protected-staff exemptions remain in effect. These additional link policies require Pup as the responder. Join admission, profile review, raid mode, server lockdown and warning escalation also have dedicated policy pages. Legacy settings links open the corresponding owner. A saved Off decision remains Off when the former shared security switch is retired.

Emergency incidents

Protection → Active emergencies lists active containment, lockdown, and raid work that you can access. Open an incident to keep its link, reload its current status, and use its available recovery actions. These pages do not save protection policies. Refresh after an action to confirm its outcome; queued work is not a confirmed Discord change.

Discord AutoMod coordination

Mention spam, blocked phrases and link protection offer Discord AutoMod as a responder under Take action. Its coordination panel shows the observed result and any blocker. Discord blocks matching messages after reconciliation; a saved choice alone does not confirm that Discord changed. Native AutoMod can exempt channels and roles, but cannot represent selected channel/member inclusions or member, thread and event exclusions. Choose Pup for those scopes. Missing or overlapping native responders stop automatic response. When switching back to Pup, Pup waits until its previous native rule is confirmed removed. Repair the reported problem and review the current result before relying on enforcement. Private native rule contents are not shown in this panel. The incident list filters by protection, mode and outcome. Older incidents follow a stable time-and-ID cursor, so equal timestamps do not skip incidents. Incident summaries never include matched message content or private pattern values. Message protections always skip bot and webhook authors, even when their scope exclusions are cleared. Scope previews can still model those actor kinds.

Moderation activity

Moderation → Activity → Event history starts with event type, member and date filters. Use More filters for command, actor, outcome, channel and audit details. Results appear before optional exports and the separate member timeline. Moderation settings is a separate page linked from the header. Scheduled actions lists the reversals Pup schedules for temporary moderation actions, such as removing a timed mute or ban. Each active timer shows its source case, owner, desired state, lease expiry, provider status and attempts. Pending or failed timers can be queued to run now with a reason. This queues the saved reversal for the worker; it does not repeat the original punishment. Uncertain timers require reconciliation first. Warning cases expose edit, rank, clear, revoke and reconciliation actions as their current lifecycle permits.

Workload insights

Moderation → Workload insights is a server-health view, not a staff scorecard. It shows the current reviewed seven-day aggregate for backlog, typical response time, unresolved timers, failed deliveries, and the age of unresolved cases. It never returns moderator names, member identities, reasons, action kinds, or punishment totals, and it does not rank or compare staff. The view withholds every measure until at least five reports are present in its reviewed window. It shows the current population and threshold so operators can distinguish a withheld small sample from zero workload. The aggregate is calculated when the page is read from Pup’s moderation reports, delivery ledger, and active-timer records; its freshness label is therefore current, not a historical export or a provider claim. To correct an insight, correct the relevant report, delivery, timer, or case through its existing authorized workflow and reopen this page. Workload insights create no export, retain no separate analytics dataset, and do not grant access to case content. Use the existing reviewed case-export flow when a specifically authorized record export is required.

Moderation notifications

Configure moderation notifications from Logs → Moderation notifications. A route is specific to one action, outcome, and audience. Pup snapshots that rule when it records the case, then delivers public, staff, member DM, appeal-information, and fallback routes independently through the durable outbox. A failure, retry, or dead-letter in one route does not hide or replay another route. Public routes are constrained to minimal notices: they cannot include a private moderation reason or mention a member. Member and appeal routes are private DMs. Only staff routes can opt in to an explicit target mention. Templates may use the listed case fields and never fetch additional member or case data after delivery has been queued. Administrators can save a bounded list of member IDs that have opted out of moderation DMs. Pup records each affected member or appeal route as suppressed and does not send a Discord request; it does not suppress staff, public, or fallback evidence.

Warning command policy

For channel and member restrictions, see slowmode, persistent communication restrictions, and server lockdown. For channel content rules, see media-only channels. Open Staff access → Command restrictions to change command availability, exclusions, and warning-bot replies. The moderation mode remains here: turning it off stops all moderation commands. Staff grants stay available even when you cannot configure moderation. Warn has one policy for its prefix and slash forms. Turning it off stops both; excluded members and roles cannot bypass an exclusion by switching forms. Staff still need the relevant Pup tasks and Discord permissions. The advanced Warning-bot integration section keeps bot access separate. Authorized bots can use only the prefix form, and their replies go to the configured reply channel. Pup checks that channel before saving. There is no generic command destination or additional “Moderator only” switch.

Protection scopes

Protection scopes separates four tasks. Test saved protections explains whether current rules apply to a named member, channel and set of roles. Changing an input clears the old result. Expand the exclusion checks when you need to understand why a member or event was excluded. Edit exceptions points to each protection’s own settings and retains the editor for additional rules. Try a draft checks proposed scope settings without saving them. Discord AutoMod compares Pup and Discord coverage. Switching tasks keeps your draft. Thread exceptions accept exact thread IDs, including archived threads that Discord may not list; event exceptions accept one exact event name per entry.

Access and setup tools

Access decisions separates recent checks from Protected members and roles. Filter checks by a named member and outcome; advanced filters include the capability and reference ID. Protected roles are selected by name. Protected members retain an unavailable identity when privacy rules prevent showing their profile; their stored ID remains available to the administrator. Setup tools groups server readiness, channels and roles, safeguards, and character lookup into separate tasks. Readiness lists missing access and affected modules. Safeguards can refresh a read-only review; it does not silently repair Discord settings.