1 - Introduction
Infractions are formal staff discipline records. CADLY supports warnings, strikes, suspensions, demotions, and terminations.
Infractions are not the same as the Moderation Panel. Infractions are internal staff discipline; moderation logs and CAD actions document server member incidents.
Use infractions when the target is a staff member and the record should affect staff status, punishment roles, or internal history. Use logs when the target is a player or community member and the record documents an RP or moderation incident.
The system is designed to be auditable. Revoked, expired, and consumed infractions remain visible so leadership can understand how a staff member's record changed over time.
1.1 - Table of Contents
Section What it covers
Issuing Infractions Command fields, types, and effects
Managing Infractions Lists, info, revoke, clear, and escalation
Settings Infractions settings reference
Troubleshooting Common hierarchy and expiry issues
1.2 - Links to Related Documents
2 - Issuing Infractions
Use /infraction issue with user, type, reason, optional duration, and optional note.
Supported types are warning, strike, suspension, demotion, and termination. Suspensions use duration such as 2h or 7d; if omitted, CADLY uses the default suspension duration setting.
Warnings and strikes are count-based discipline. Suspensions are time-based discipline. Demotions and terminations are serious staff-state changes and should be used only when your leadership process has approved them.
The note field is internal context. Put the staff-facing reason in reason, because that is what appears in logs and messages.
type: record
title: Strike issued
meta: Infractions > Staff discipline
status: Active
items:
- User | @RiversideUnit
- Type | strike
- Reason | Missed command protocol
- Note | Reviewed by supervisor team2.1 - Record Fields
Field Purpose
User Staff member receiving the infraction.
Type Warning, strike, suspension, demotion, or termination.
Reason Required discipline reason.
Duration Optional, used for suspensions.
Note Optional internal note.
Status Active, revoked, consumed, or expired.
2.2 - Expiry and Escalation
Warnings and strikes can expire after a configured number of days. If expiry is set to 0, they never expire automatically.
CADLY can auto-escalate three active warnings into a strike and three active strikes into a suspension-style higher action, consuming the lower infractions.
Consumed infractions are not deleted. They stop counting as active lower-tier discipline because they were used to create the escalated record. This makes the escalation path visible without double-counting the same behavior.
3 - Managing Infractions
Use /infraction list to view infractions for yourself or, with Manage Infractions permission, another user. Use /infraction info for a detailed record.
Use /infraction revoke to revoke one infraction. Use /infraction clear to revoke all active infractions for a user or only a selected type.
Revoking is the normal correction path for mistakes. Clearing is broader and should be used carefully because it can revoke several active records at once. Always include a reason when clearing discipline after an appeal or policy decision.
3.1 - Tier Roles
CADLY can assign roles based on infraction count. Tier roles exist for first, second, and third warning; first, second, and third strike; suspended; and termination.
4 - Settings / Configuration
4.1 - Infractions Module
Enable Infractions
Turns the infractions module on or off. Default: on | Requires: none
Log Channel
Channel where infraction logs are sent. Default: none | Requires: none
Warning Expiry
Days until warnings expire. 0 means never expire. Default: 0 | Requires: none
Strike Expiry
Days until strikes expire. 0 means never expire. Default: 0 | Requires: none
Default Suspension Duration
Default suspension length in days when the command does not provide a duration. Default: 1 day | Requires: none
Suspension Stacking
Controls whether new suspensions stack onto an existing active suspension or reset from now. Default: stack | Requires: none
Stacking is stricter and extends the user's time away. Resetting is easier to reason about when leadership wants the newest suspension to replace the previous one.
Tier Role Stacking
Controls whether punishment roles stack or only the highest applicable tier role is kept. Default: off | Requires: none
Hierarchy Block Policy
Controls whether blocked role changes fail the action or allow confirmation of partial changes. Default: confirm partial | Requires: none
4.2 - Tier Roles
Warning Tier Roles
Roles for first, second, and third warning. Default: none | Requires: none
Strike Tier Roles
Roles for first, second, and third strike. Default: none | Requires: none
Suspended Role
Role assigned during an active suspension. Default: none | Requires: none
Termination Role
Role assigned when a member is terminated. Default: none | Requires: none
5 - Troubleshooting Common Issues
5.1 - Infraction Role Changes Fail
Discord hierarchy is blocking CADLY. Move the bot role above all tier roles and make sure the actor outranks the target.
5.2 - Expired Infractions Still Appear
History remains visible after expiry. Expiry changes whether an infraction is active for counts and tier roles; it does not delete the record.
5.3 - Auto-Escalation Surprised Staff
Review active warning and strike counts before issuing another infraction. Consumed infractions remain in history for audit clarity.
6 - Getting Support and Resources
If you need help, several resources are available:
- CADLY Documentation: Detailed reference for all features.
- CADLY Support Server: Join for fast help from the team.
- CADLY Email Support: Reach out via email for direct support.