Channel Structure
The categories and channels JSD creates and how they work.
When you run /setup, JSD creates a structured channel layout for detention. Understanding this structure helps you customize it and troubleshoot access issues.
Default structure
JSD Info
#jsd-info public, read-only: explains detention to all members
#jsd-mod-log mods only: audit log of all jail actions
JSD Appeal
(private channels created per-case, visible only to the member and staff)
JSD Jail
#jsd-jail-chat jailed members + mods only
Category breakdown
JSD Info
This category is public. It contains two channels:
- #jsd-info: a read-only channel explaining how detention works, how to appeal, and what to expect
- #jsd-mod-log: restricted to the jail mod role. Every jail, release, appeal action, and auto-release is logged here as an embed
JSD Appeal
This category holds private appeal channels. When a jailed member runs /appeal, a new channel is created here:
- Visible only to the member and staff with the jail mod role
- Contains Release, Close (Deny), and Ban buttons for staff
- Closed automatically when the appeal is resolved or the member is released
JSD Jail
Contains #jsd-jail-chat: the only channel jailed members can access (besides their appeal channel). Both jailed members and staff can read and write here.
Role overwrites
The jail role has these overwrites applied to every non-JSD channel:
- Deny View Channel: hides the channel entirely
- Deny Send Messages: prevents posting
Within JSD channels, the overwrites are:
| Channel | Jail role | Everyone |
|---|---|---|
#jsd-info | Deny View | Read-only |
#jsd-mod-log | Deny View | Deny View (jail mod role: View) |
#jsd-jail-chat | View + Send | Deny View |
| Appeal channels | View + Send | Deny View |
Custom channels
During setup, you can point JSD at your own channels instead of creating new ones. JSD will still apply the correct overwrites. Re-running the structure command only creates what is missing: it never deletes or recreates existing channels.
Rebuilding structure
If you need to rebuild the channel structure (e.g., after accidental deletion), run /setup again. The wizard detects what exists and only fills gaps. Alternatively, use /rework-jsd to fully reset and start fresh.