PERMISSIONS & HIERARCHY
Role Management & Promotions
VIRCON manages a hierarchical staff role system with automated Discord and VRChat permission synchronization. Promotions and demotions are logged, validated, and propagated across platforms to maintain consistent access control.
Role Commands
Commands for promoting, demoting, and managing staff role assignments across platforms.
- ,promote @user <role> - Promote user to higher staff role (Discord + VRChat)
- ,demote @user [role|remove] - Demote user or remove all staff roles
- ,grantstaff @user [vrc_url] - Grant basic staff permissions
- ,grantadmin @user [vrc_url] - Grant admin permissions
- ,grantheadadmin @user [vrc_url] - Grant head admin permissions
Staff Role Hierarchy
Eight-tier permission structure from observer to council with graduated access levels.
Observer
L1Trial Moderator
L2Junior Moderator
L3Full Moderator
L4Staff
L5Admin
L6Head Admin
L7Council
L8Promotion Workflow
Step-by-step process for validating and executing role promotions with cross-platform sync.
- 1. Recommender identifies candidate for promotion based on performance.
- 2. Recommender initiates promotion with appropriate command (e.g., ,promote @user mod).
- 3. System validates: current role, eligibility criteria, training completion.
- 4. Discord roles updated automatically via bot permissions.
- 5. VRChat group permissions updated via VRChat API (requires VRChat profile link).
- 6. Promotion logged to audit trail with timestamp, actor, and target.
- 7. Notification sent to staff channel announcing promotion.
- 8. Promoted user receives DM with new responsibilities and resources.
Demotion Workflow
Controlled process for demoting staff with required justification and access revocation.
- 1. Admin initiates demotion with ,demote @user [target_role].
- 2. System validates admin has authority to demote target (higher role required).
- 3. If target_role specified: user demoted to that level.
- 4. If 'remove' specified: all staff Discord roles and VRChat permissions revoked.
- 5. Demotion logged to audit trail with mandatory reason field.
- 6. Access to staff channels and commands updated immediately.
- 7. Notification sent to admin channel (not public to avoid embarrassment).
- 8. Demoted user receives private DM explaining reason and next steps.
Role Assignment Database Schema
Database structure for tracking role grants, revocations, and justification documentation.
| Field | Description |
|---|---|
| role_id | Unique role assignment identifier. |
| user_discord_id | Discord ID of role recipient. |
| user_vrc_id | VRChat ID of role recipient. |
| role_name | observer, tmod, junior, mod, staff, admin, headadmin, council. |
| granted_by | Discord ID of admin who granted role. |
| granted_at | Timestamp of role assignment. |
| promotion_reason | Justification for promotion (optional but encouraged). |
| revoked_at | Timestamp of role removal (NULL if active). |
| revoked_by | Discord ID of admin who revoked role. |
| demotion_reason | Required reason for demotion/removal. |
Automation Features
Automated role synchronization, conflict detection, and permission cascade management.
- Auto-graduation from trial/junior to mod when training metrics hit thresholds.
- Cross-platform sync: Discord role changes trigger VRChat API updates.
- Permission cascade: lower roles auto-revoked when higher role granted.
- Audit logging: all promotions/demotions recorded with actor and timestamp.
- Conflict detection: alerts if user has mismatched Discord/VRChat permissions.
- Inactive role cleanup: staff inactive 90+ days flagged for review.
Real-World Use Cases
Practical examples of promotion and demotion scenarios with their outcomes.
Case 1
Trial mod completes training with 95% approval rate
Action: ,promote @user mod - upgrades to full moderation permissions
Outcome: User gains independent action authority, training metrics reset
Case 2
Staff member violates policy, receives 3rd strike
Action: ,demote @user tmod - demoted to trial mod pending review
Outcome: Permissions restricted, performance monitored closely
Case 3
Long-time moderator promoted to help with admin tasks
Action: ,promote @user admin - grants configuration and staff management access
Outcome: User can now manage roles, edit config, access admin-only commands
Best Practices
Guidelines for transparent and fair role management across the staff hierarchy.
- Always document promotion/demotion reasons for transparency.
- Verify VRChat profile is linked before granting roles (prevents permission gaps).
- Use graduated promotions - don't skip trial/junior stages.
- Review demotions with head admin before executing (second opinion).
- Celebrate promotions publicly, handle demotions privately.
- Audit role assignments quarterly to catch stale/incorrect permissions.