Sauna

Complete user guide

Welcome to Sauna

Sauna brings tickets, moderation, member roles, engagement, leveling, commands, and server activity into one Discord bot and one dashboard. This guide can be read from beginning to end or searched for one specific answer.

Pay if you want to. Every Sauna feature is free. There are no premium-only commands, settings, or usage tiers.

Getting started

Add Sauna to your server

You need permission to add applications to the Discord server. Select Add Sauna to Discord on the website, choose the server, review the requested permissions, and finish Discord's authorization screen. Keep the applications.commands scope enabled so slash commands appear.

  1. Invite Sauna.Use the website's Add to Discord button and select your server.
  2. Place the Sauna role.In Discord's role settings, move it above every role Sauna should assign or moderate.
  3. Open the dashboard.Sign in with Discord, choose the server, and enable only the tools you need.

Sauna does not require the Discord Administrator permission. Its invite requests a focused set of permissions used by its features.

Getting started

Sign in and choose a server

Sauna uses Discord OAuth, so there is no separate password. The dashboard shows servers where Sauna is installed and your Discord account has the Administrator permission. Use the server selector at the top of the sidebar to switch servers; settings and stored data are isolated per server.

If a server is missing, check that the same Discord account is an administrator there and that Sauna is still a member of the server. Then sign out and back in to refresh the list.

Getting started

Using the dashboard

The sidebar separates server management into Overview, Tickets, Members, Moderation, Leveling, Engagement, Commands, and Analytics. Changes are not assumed to be saved until the relevant Save button confirms them. On phones, open the sidebar with the menu button and close it with the close button or the shaded backdrop.

The dashboard search finds settings and pages; this guide's search covers instructions, feature names, commands, and common alternative wording.

Getting started

Discord permissions and role order

Discord checks both permissions and role position. Manage Roles is not enough by itself: Sauna's highest role must sit above a role it grants or removes. The same hierarchy rule applies when moderating members. Integration-managed roles cannot be assigned.

Manage ChannelsCreate private ticket channels and their permission overwrites.
Manage RolesAuto-role, self-role panels, verification, and level rewards.
Manage MessagesRemove messages caught by automod.
Moderate MembersTimeouts and automatic muting.
Kick / Ban MembersThe corresponding moderation actions.
View Channel, Send Messages, Embed LinksPost panels, replies, announcements, and logs.
Attach FilesPost HTML ticket transcripts.
Read Message HistoryRead a ticket when generating its transcript.

Dashboard

Overview

Overview is a quiet summary of the selected server: members, recent messages, open tickets, and moderation activity. The Needs attention list prioritizes support conversations waiting on staff. Use it as a starting point rather than a replacement for each feature's full page.

Tickets

Set up the ticket system

Tickets give each requester a private channel shared with the support role for the selected category.

  1. Choose a panel channel.This is where members select a ticket category.
  2. Choose a transcript channel.Sauna posts the closed-ticket summary and HTML transcript here.
  3. Add at least one category.Give it a name, emoji, and ticket role.
  4. Save.Sauna posts or updates the panel message in Discord.

The panel channel needs View Channel, Send Messages, and Embed Links. The transcript channel also needs Attach Files. Sauna needs Manage Channels server-wide to create the private ticket channels.

Tickets

Ticket categories and ticket roles

Each category routes requests to one Discord role. When a ticket opens, that role is mentioned and receives access to the private channel. Use separate categories when different teams handle different requests—for example General Support, Billing, and Partnerships.

You can create up to 10 categories. Names may be up to 100 characters. The category's ticket role is also the staff role used for closing, claiming, assignment, and attention-state decisions.

Tickets

Pre-ticket questions

Enable questions on a category to collect context before creating the channel. Add up to five prompts, choose a short or paragraph response, and decide whether each answer is required. The answers are placed in the new ticket so staff can begin with useful context.

Tickets

Ticket panel and welcome message

Customize the public panel's title, description, color, footer, thumbnail, banner image, and category-picker placeholder. Each category can also have its own welcome title, message, and color inside the ticket. Image fields accept public HTTP or HTTPS URLs.

Category welcome messages support {user} for the opener and {role} for the category's ticket role. If fields are left empty, Sauna uses its clear default wording.

Tickets

Open, manage, and close tickets

A member selects a category, answers any intake questions, and receives a numbered private channel. A member can have one open ticket at a time. The opener, category ticket role, and administrators can see the ticket.

The category role or an administrator can close it from Discord; an administrator can also close open tickets from the dashboard. Closing first gathers the full message history, creates the transcript, records who closed it, and then removes the ticket channel.

Tickets

Ticket claiming and staff assignment

Claiming is optional. When enabled, a member of the category's ticket role can claim a ticket to show who owns the response. Staff can unclaim their ticket when it should return to the team, or reassign it to another eligible staff member. Administrators can correct an assignment when needed.

Claiming does not prevent other eligible staff from reading or helping in the channel; it provides clear ownership rather than locking the conversation to one person. Leave the setting off if your team prefers a shared queue.

Tickets

Needs attention and In progress

Sauna derives a ticket's state from the latest relevant human message. A new ticket, or a ticket where the requester's message is latest, is marked Needs attention. After someone with that category's ticket role replies, it becomes In progress. This keeps the queue useful without asking staff to update a status manually.

The original opener is always treated as the requester—even if they also hold the ticket role—so their own message cannot accidentally mark their ticket in progress. Bot and webhook messages are ignored.

Tickets

Ticket transcripts

Every closed ticket produces an HTML transcript in the configured Discord channel and a dashboard-readable copy. You can optionally DM a copy to the opener. DM delivery can fail when the member blocks server DMs; the configured transcript channel remains the reliable staff archive.

Sauna retains the 200 most recent transcripts per server. Transcripts contain the conversation and participant IDs, so keep the transcript channel private and review the Privacy Policy.

Members

Auto-role and bulk role assignment

Select an assignable role and save it to give that role to future members when they join. Give this role to every current member applies the saved role to existing members who do not have it. That bulk action is not automatically reversible, so verify the role first.

Sauna needs Manage Roles and must be above the selected role. Bots are included in the current-member operation when Discord allows the role to be assigned.

Members

Button role picker panels

Create a message with individual role buttons. Clicking a button gives the role; clicking it again removes it. Choose the channel, title, optional description, button labels, emojis, and roles. Editing a panel updates its Discord message; deleting it removes the message.

A server can have up to 10 button panels, each with up to 25 buttons. Sauna needs View Channel, Send Messages, Embed Links, and Manage Roles, with its role above every offered role.

Members

Member lookup

Search by username or exact Discord user ID to inspect a member of the selected server. Results show basic Discord profile information, join and account creation dates, and server roles. Search is scoped to the current server and performed live; lookup results are not stored by Sauna.

Moderation

Moderation commands

Use /warn, /mute, /unmute, /kick, and /ban in Discord. Reasons are recorded in case history. Mute durations accept forms such as 10m, 2h, or 1d, up to 28 days. Ban can delete zero to seven days of the user's recent messages.

Discord exposes these commands only to members with the relevant default permission: Moderate Members for warn, mute, unmute, and cases; Kick Members for kick; Ban Members for ban. The moderator and Sauna must both be above the target in the role hierarchy.

Moderation

Case history and dashboard bans

The Moderation page lists recorded warns, timeouts, kicks, bans, and automatic actions. Filter cases by user ID, or use /cases user:@member in Discord. The dashboard can also ban a user by ID and unban users from the server's ban list.

Sauna keeps the 500 most recent moderation cases per server. Removing a ban does not remove its historical case.

Moderation

Automod

Automod can remove Discord invite links, act on messages with too many mentions, and catch message flooding within a time window. Mention and rate thresholds accept 2–20 events across 3–30 seconds. Configure rules around normal server behavior; very low thresholds may catch enthusiastic conversation.

Automatic mute can time out a member after 2–10 accumulated warnings for 1–1,440 minutes. Sauna-created actions are added to case history. Administrators and members Sauna cannot moderate are protected by Discord permission and hierarchy rules.

Engagement

Welcome and leave messages

Enable welcome and leave messages independently, choose a text channel for each, and write messages up to 500 characters. Sauna posts an embed when a member joins or leaves.

Use {user} to mention a joining member, {username} for their name, {server} for the server name, and {memberCount} for the current member count. A leave message cannot mention someone who has already left, so use {username} there.

Engagement

Member verification

Verification posts a panel that grants a configured role after a member completes a challenge. Choose one-click button, math question, or emoji match, then select the channel, verified role, title, and description. Saving updates the existing panel when possible.

Sauna needs Manage Roles and must sit above the verified role. Discord channel permissions should keep unverified members in the verification area and let the verified role into the rest of the server; Sauna grants the role but does not redesign your channel access.

Engagement

Select-menu reaction roles

Reaction role panels use a Discord select menu rather than separate buttons. Members select roles to add them and deselect roles to remove them; unrelated roles are never changed. Configure a title, optional description, channel, labels, emojis, and roles.

A server can have up to 10 reaction-role panels with up to 25 roles each. Manage Roles and correct role order are required. Use the Members page's button role picker when a few prominent button choices are clearer.

Leveling

Leveling and XP

When leveling is enabled, a non-bot member earns a random 15–25 XP for an eligible message, at most once per 60 seconds. This rewards participation without making rapid message spam effective. Choose an optional text channel for level-up announcements; without one, Sauna announces in the channel where the member leveled.

Members use /rank to view their own or another member's progress and /leaderboard to see the server's top ten. Disabling leveling pauses XP earning without deleting existing progress.

Leveling

Level role rewards

Add up to 10 level-and-role milestones. When a member reaches a configured level, Sauna grants its role automatically. Rewards accumulate; reaching a later milestone does not remove earlier reward roles.

Sauna needs Manage Roles and must be above each reward role. If you add a reward below a member's current level, it is awarded the next time Sauna processes their XP progress rather than retroactively scanning every member immediately.

Commands

Custom slash commands

Create a server-specific slash command with a name, Discord-picker description, text response, and optional cooldown from 0–3,600 seconds. Names follow Discord's lowercase command-name rules and must be no more than 32 characters; descriptions allow 100 and responses 2,000.

Saving registers or updates the command for that server. Discord may take a short moment to refresh its command picker. A cooldown is tracked per user and prevents repetitive use without affecting other members.

Commands

Canned ticket responses

Save up to 25 reusable support replies, each with a staff-facing title and message content. In a Sauna ticket, type /canned and select the response using autocomplete. The command is intentionally restricted to active ticket channels.

Canned responses keep common answers consistent while still letting staff continue the conversation normally. Titles allow 100 characters and content allows 1,500.

Commands

Built-in command reference

/pingCheck that Sauna responds and view round-trip latency.
/helpOpen a private overview of commands and dashboard features.
/analyze-serverPrivately review server structure, permissions, and setup; administrators only.
/cannedPost a saved reply in an active Sauna ticket.
/warnWarn a member and record the reason.
/mute / /unmuteAdd or remove a Discord timeout.
/kick / /banRemove a member or ban a user.
/casesView a member's moderation history.
/rankView XP and level progress.
/leaderboardView the server's top ten XP members.

Commands

Server analysis

/analyze-server gives administrators a private review of risky @everyone permissions, powerful roles, public writable channels, Sauna's own feature permissions, and general setup. A deterministic safety score is combined with practical recommendations; when AI analysis is configured, sanitized server structure is sent to Google's Gemini API for additional suggestions.

The command does not send message history or member conversations. Server, channel, and role names may be included. Analysis has a 15-minute per-server cooldown and is guidance, not a guarantee that a server is secure.

Analytics

Analytics

The Analytics page shows daily member and message activity over the last 90 days and the most-used commands. Counts begin when Sauna observes activity; they are not imported from Discord's history. Use trends to understand participation, not as billing-grade statistics.

Analytics

Server audit log

Sauna records observed message edits and deletions, member joins and leaves, and role changes. Message text stored in an audit event is truncated to 300 characters. The page keeps the 500 most recent events per server, removing the oldest as new events arrive.

This is a Sauna activity trail, not a complete copy of Discord's native audit log. Events the bot cannot see, or events that occur while it is unavailable, cannot be reconstructed later.

Reference

Feature permission reference

TicketsManage Channels, View Channel, Send Messages, Embed Links, Attach Files, Read Message History.
Auto-role, role panels, verification, level rewardsManage Roles and a higher Sauna role.
AutomodManage Messages; Moderate Members when automatic timeouts are enabled.
Manual moderationModerate Members, Kick Members, or Ban Members according to the action.
Welcome, leave, analytics, and commandsView Channel, Send Messages, Embed Links where Sauna posts.

Channel-specific denies can override server-wide permissions. If a feature fails only in one channel, inspect that channel's permission overrides for the Sauna role.

Reference

Limits and retained history

Tickets10 categories; 5 questions per category; 200 newest transcripts retained.
Role panels10 button panels and 10 select-menu panels; 25 roles per panel.
Level rewards10 role milestones.
Canned responses25 saved replies.
Moderation and audit history500 newest cases and 500 newest audit events per server.
Analytics90 days of daily activity shown.

Help

Troubleshooting

Sauna cannot assign a role

Give Sauna Manage Roles, move its highest role above the target role, and confirm the target is not managed by another integration.

A panel will not post

Check View Channel, Send Messages, and Embed Links in the selected channel. Ticket transcript channels additionally need Attach Files.

Slash commands are missing

Confirm Sauna was invited with the applications.commands scope. Reopen Discord, check channel command permissions, and allow a short moment after changing custom commands.

A member cannot open another ticket

They already have an open ticket. Close the existing ticket, or remove its stale channel through normal ticket management if it was manually deleted.

The dashboard does not show my server

Use an account with Administrator permission in that server, confirm Sauna is installed, then sign out and back in.

Help

Frequently asked questions

Is Sauna free?

Yes. Every feature is available without payment under the “Pay if you want to” principle.

Can I enable only one feature?

Yes. Configuration is per server and features can be used independently.

Does changing one server affect another?

No. Each server has separate settings, history, tickets, commands, and leveling data.

Does Sauna read direct messages?

No. It may send a requested ticket transcript by DM, but dashboard login does not grant access to your DMs, friends, or unrelated Discord activity.

Where can I read the data and service terms?

See the current Privacy Policy and Terms of Service.