Jails and release
Use jail and unjail workflows with verified channel boundaries, release checks, and cautious saved-role restoration.
- Audience
- moderator · team lead · server admin
- Availability
- free · private beta access
- Maturity
- alpha · partial
Last reviewed
On this page
What jail changes
Jail places a member into the server's configured restricted workflow and records the active jail. Unjail closes that active state and attempts the supported release cleanup; the dashboard lists active records and provides a guarded release path.
Check the jail setup and member
Start with the registered Discord jail action when the member context is present, or open Active Jails in the dashboard to review an existing record and its release state.
- A verified server jail setup and a bot role high enough for the supported role changes.
- The correct member, reason, and intended duration or release decision.
- Awareness that current text and voice behavior depends on the server's configured jail surfaces.
Jail, verify, review, and release
Create the jail
Confirm the member, reason, and supported jail settings before submitting the action.
Check: An active jail record identifies the member, moderator, and server-scoped jail context.
Verify restricted access
Confirm the member can reach only the configured jail text or voice surfaces that the live setup supports.
Check: The restriction matches configured behavior without exposing staff-only channels.
Review before release
Open the active record, confirm the release decision, and check whether roles or channels changed while the jail was active.
Check: The moderator knows which cleanup and role-restoration steps are permitted.
Unjail and inspect
Run the registered release path once, then inspect the final record and any role-restoration warnings.
Check: The active jail closes or shows a recoverable failure instead of silently claiming full restoration.
Jail and release examples
The member enters and later leaves the configured jail workflow with a traceable active/final record and explicit warnings for cleanup or role restoration that could not complete.
/jail user:@Maya limit:1h reason:Private staff review needed/jail user:@Maya reason:Hold for senior staff review/unjail user:@Maya reason:Reviewed with staff; restrictions may end| Stage | Behavior | Verify |
|---|---|---|
| Jail | Saves restorable roles, applies the configured jail role, creates the case and jail channel, records the action, and posts the configured log. | Open the private moderator reply and the created jail channel/case. |
| During jail | The member uses the configured restricted text/voice surfaces; an optional limit can schedule automatic release. | Check the active jail record and actual channel visibility. |
| Unjail | Stops jail recording when active, removes the jail role, restores assignable saved roles, archives the channel flow, queues transcript work, and records the release. | Read the release summary for roles that were restored, skipped, or failed. |
- Release an active jail from the dashboard after confirming the member and reason.
- Treat a deleted saved role as non-restorable rather than recreating it automatically.
- Leave managed, hierarchy-blocked, or otherwise unassignable roles unresolved for an administrator instead of forcing them.
Understand the complete jail lifecycle
- STAGE 01
Preflight
ModFlow checks server setup, moderator authority, target membership, bot permissions, and role hierarchy.
- STAGE 02
Restrict
Restorable roles are recorded, the jail role is applied, and the private jail text/voice workspace is created or reused.
- STAGE 03
Active review
Staff use the active jail record, case, channel, and permitted voice artifacts while the restriction remains in force.
- STAGE 04
Release trigger
A moderator runs unjail, a supported timer expires, or another verified workflow requests release.
- STAGE 05
Cleanup
ModFlow removes the jail role, restores assignable saved roles, closes or archives the workspace, and queues supported transcript work.
- STAGE 06
Final record
The case and jail history state what completed, what was skipped, and what still requires manual recovery.
Jail preflight and setup reference
| Check | Why it matters | Typical failure |
|---|---|---|
| Moderator authority | Only permitted staff may start or end a restriction. | Command is hidden or returns permission denied. |
| Target membership | The jail workflow needs a current guild member and role state. | Member cannot be found in this server. |
| Bot Manage Roles / Channels | ModFlow must apply the jail role and manage the private workspace. | Setup error or channel/role creation failure. |
| Role hierarchy | The bot role must be above the target's managed roles and the configured jail role. | Target is not manageable or a saved role cannot be restored. |
| Configured jail role and category | The workflow depends on known server-scoped objects and overwrites. | System Health reports a missing or stale object. |
| Staff/member visibility | The jailed member needs the intended jail surfaces while ordinary members must not gain staff access. | Workspace is visible to the wrong audience or unusable by the jailed member. |
/jail user:@Maya limit:1h reason:Private review after repeated disruption/jail user:@Maya reason:Hold for senior reviewManage an active jail
The active jail is not only a role. It links the member, case, moderator, reason, jail text channel, optional voice channel, timer, saved-role snapshot, and later cleanup work. Use the active record as the handoff point instead of relying on a channel topic or memory.
| Area | Staff check | Do not assume |
|---|---|---|
| Text access | The jailed member can use the intended jail text space and cannot see unrelated staff channels. | A channel existing means all overwrites are correct. |
| Voice access | Any jail voice channel and sidechat follow the configured staff/member visibility. | Voice presence means recording or transcription is active. |
| Timer | The active record displays the intended release time when a limit was supplied. | A timer guarantees the later Discord cleanup succeeds. |
| Case | The case number and active jail refer to the same member and incident. | Every case reviewer can see every jail artifact. |
| Rejoin | If the member leaves and returns, verify the active record and actual role state. | A rejoin event always restores the restriction without a recorded outcome. |
| Dormant or paused state | Read the current jail/case status and latest timeline event. | An archived channel means the underlying restriction is fully resolved. |
Release and role-restoration checklist
Confirm the active record
Match server, member ID, case, reason, and current jail state. Do not release from a stale copied link.
Check: You are operating the current active jail.
Review changes made during jail
Check whether staff intentionally changed roles, whether roles were deleted, and whether hierarchy changed.
Check: Restoration expectations are realistic.
Run one release
Use /unjail or the guarded dashboard control once with a clear reason.
Check: ModFlow records one release attempt.
Read every outcome
Review jail-role removal, saved-role restoration, channel cleanup, voice/recording closure, transcript queueing, and final case state.
Check: Partial success is visible instead of hidden.
Correct only the failed remainder
Have an administrator address hierarchy or stale objects, then record any manual role/channel correction.
Check: The audit trail explains the final member state.
| Reason | Meaning | Safe response |
|---|---|---|
| Deleted | The Discord role no longer exists. | Do not recreate it automatically; ask the owning administrator whether a replacement is appropriate. |
| Managed | Discord or an integration controls the role. | Allow the owning integration to manage it. |
| Above the bot | The role is higher than ModFlow in hierarchy. | An administrator may correct hierarchy or assign the role manually if policy allows. |
| No longer assignable | Current permissions or server configuration block assignment. | Record the skipped role and resolve the exact server setting. |
| Intentionally changed | Staff changed access while the jail was active. | Follow the documented staff decision rather than blindly restoring the old snapshot. |
Jail messages, recordings, and transcripts
Jail text, voice recordings, and transcripts are separate artifacts with separate production, visibility, and persistence states. A jail can complete without every artifact, and a case can remain reviewable when a source file is unavailable.
| Artifact | When it exists | Access boundary | Handoff |
|---|---|---|---|
| Jail text history | Messages were sent in the supported jail workspace and transcript processing could read them. | Case, jail, channel, and transcript permissions still apply. | Use the transcript or case reference, not copied private conversation text. |
| Jail call recording | A supported recording session actually captured and persisted audio. | Guarded playback/download route and staff permission. | Attach through evidence tooling only when the review requires it. |
| Recorded transcript | Transcription completed and the resulting artifact was stored. | Visibility can differ from the recording and source channel. | State whether the artifact is processing or missing. |
| Case evidence reference | Authorized staff explicitly preserve the artifact or its source identity in the case. | Case evidence visibility, including senior-only material. | Link the evidence item rather than exporting it to a broader audience. |
Role restoration is best effort
Saved-role restoration is best effort. Deleted roles, integration-managed roles, roles above the bot hierarchy, and roles the bot otherwise cannot assign are skipped or reported. Do not claim that every pre-jail role will return, and do not describe experimental escape controls as supported operation.
Recover a partial release
The result is not what you expected
What you see: The member remains restricted, the active record remains open, or one or more saved roles were not restored.
What may be happening: Channel cleanup, Discord hierarchy, managed/deleted roles, a stale active record, or an interrupted release can block part of the workflow.
What to do
- Check the active jail record before running release again.
- Review reported channel and role cleanup outcomes.
- Have a server administrator resolve hierarchy or configuration issues.
- Record any manual correction in the moderation history.
When the jail produced significant messages, recordings, or decisions, attach only authorized material to a case and continue in Cases and evidence.
Message someone in Jail from the dashboard
Authorized staff can view up to 40 recent messages from the active Discord Jail channel and send one message with an optional image or GIF. Staff may use their displayed identity or an approved team-facing label. Mentions are disabled for dashboard-sent messages.
| Boundary | What it means |
|---|---|
| Recent messages | The panel shows recent Discord messages, not the full Jail transcript. |
| Staff identity | A team label may hide the sender's name from the jailed member, but ModFlow still records which staff member sent the message. |
| Transcript | A later transcript or evidence action can preserve a separate copy under its own visibility and retention rules. |
| Closure | After Jail closure, the dashboard conversation is read-only. |