Every system a detention needs.
Jail with a timer, take appeals in private, escalate automatically and keep a case record that sticks. Here's how each part works.
Jail with a clock that actually runs out.
/jail strips a member's roles, saves them, and puts them in the jail channel with a timer. When the time is up, the sweeper gives the roles back on its own.
- Any duration from seconds to years, or forever until staff clear it
- Roles are saved per case and restored on release; deleted roles are skipped
- The member gets a DM with the reason, the timer and a private web appeal link
- Release early with /release
The links were from our own event page, I didn't know they counted. Can I get a review?
Spam
5h 24m
A fair hearing, in private.
Members appeal with /appeal in Discord, or on the web with their case ID and the secret code from their jail DM. No login needed. Staff decide with one click in the appeal channel.
- A private channel for every appeal, visible to the member and your staff
- Release (overturned), Deny, or Ban, each logged on the case
- Members check their own case with /my-jsd-case
- A web appeal page with the case timeline and countdown
Small strikes add up. JSD keeps count.
Every /warn and /mute from staff counts as a strike over a rolling window, 30 days by default. Reach your threshold and JSD jails the member for 24 hours on its own.
- Off until you turn it on: set the threshold and window in the dashboard under Settings
- Mutes take natural durations like 1d12h
- Member reports with /report go to staff and never count on their own
- WARNSpamming invites in #general+1
- MUTEMute 1d12h · Harassment+1
Help that doesn't get lost in DMs.
Post a panel with /ticket-panel or let members use /ticket open. Each ticket gets its own private channel and a tracking code.
- Support, moderation and appeal tickets, each with its own channel
- Members check a ticket's status on the web with its tracking code, no login
- Staff close with a reason, logged against the ticket
One ID. The whole story.
Every jail gets a short case ID. Look it up with /jsd-case, see a member's past with /jsd-history, and add staff-only context with /jsd-notes.
- Who did what, when and why, posted to your mod-log channel
- Cases stay on record after release and after appeals
- Searchable, filterable case history in the dashboard
| CASE | ACTION | MEMBER | BY |
|---|---|---|---|
| #A1F3 | JAIL 6h | nightowl_42 | mod.rae |
| #A1F3 | APPEAL | nightowl_42 | member |
| #9C2D | RELEASE | pixel.fern | sweeper |
| #9B07 | AUTO-JAIL | kestrel.vx | escalation |
| #9AE1 | NOTE | kestrel.vx | admin.ollie |
- IntroBot permissions
- Jail role@Jailed
- Mod role@JSD Mod
- Channels#jsd-log · JSD Appeal
- 5TimezoneEurope/Berlin
- 6Summary
Six steps. A couple of minutes.
/setup walks you through the jail role, the mod role, the log channel and appeal category, and your timezone. JSD can create anything that's missing.
- Starts with Spam, Harassment, NSFW, Other. Add 3 of your own with /jsd-categories
- Start over cleanly with /rework-jsd
- Stuck? /jsd-help covers 7 topics in Discord
Your server, on one screen.
Log in with Discord to see live jails, cases, appeals, tickets, setup health and analytics for the servers you run. Members see their own countdown and history.
- Jail role below JSD
- Mod-log channel set
- Appeal category set
- Timezone not set
The right buttons for the right people.
JSD keeps access simple: administrators and the JSD mod role you choose run moderation in Discord. On the web, owners get the full console and your mods get a read-only view.
- Mod commands need Administrator or the JSD mod role
- JSD won't act on anyone whose top role is at or above its own
- Change the mod role any time by running /setup again
Start free. Stay free.
Everything on this page works today at no cost. Pro, priced per server, is on the way for owners who want more.