CAFE Roster Manager - Raid Lead Guide
Complete guide for raid leaders to manage Forked Tower rosters using the CAFE Roster Manager Discord Activity with drag-and-drop party composition.
Overview
The CAFE Roster Manager is a Discord Activity that provides an interactive interface for managing Forked Tower raid rosters. It replaces manual roster distribution with a visual drag-and-drop system that makes party composition fast and intuitive.
Key Features:
-
π― Visual Drag & Drop - Move players between parties and reserves with mouse or touch
-
π₯ Smart Placement - View player preferences for jobs, parties, and friends
-
π Real-time Updates - Changes sync instantly to database
-
π Secure Access - Discord OAuth2 with raid lead permission verification
Who Can Use It:
-
Raid leads with appropriate Discord roles
-
CAFE Staff
-
Anyone in demo mode (view-only).
| This is a Discord Activity - it runs directly inside Discord, no external website needed! |
Accessing the Roster Manager
Step 1: Open the Activity
Method 2: From Activities Menu
-
Open Discord
-
Click the activities button in any channel
-
Select "CAFE Roster Manager" from activities list
-
Choose your run from the list
Method 3: Direct Link (Not Implemented Yet)
-
Click the roster manager link shared by staff
-
Discord will prompt to launch the activity
-
Authorize the application when prompted
Step 2: Authenticate with Discord
First Time Setup:
When you first launch the activity, you’ll see an authentication screen:
π CAFE Roster Manager
Welcome to the CAFE Roster Manager!
This application requires Discord authentication to verify your permissions.
[Authenticate with Discord]
What Happens:
-
Click "Authenticate with Discord"
-
Discord OAuth2 popup appears
-
Review the requested permissions:
-
Identify you
-
Read your guild membership and roles
-
-
Click "Authorize"
-
Activity loads with your verified permissions
Security Notice:
-
Authentication tokens last for 1 hour at a time.
-
Only raid leads can manage their own rosters
-
Regular participants see a demo
-
You can revoke access anytime from Discord settings.
Step 3: Select Your Run
After authentication, you’ll see the Runs List screen:
π Active Forked Tower Runs
βββββββββββββββββββββββββββββββββββββββββββββββ
β May 5, 2026 @ 8:00 PM EDT β
β Raid Leader: @YourName β
β Signups: 35/48 | Reserves: 3 β
β Status: Open β
β [Manage Roster] β
βββββββββββββββββββββββββββββββββββββββββββββββ
βββββββββββββββββββββββββββββββββββββββββββββββ
β May 6, 2026 @ 7:00 PM EDT β
β Raid Leader: @OtherRL β
β Signups: 42/48 | Reserves: 7 β
β Status: Open β
β [View Only] β
βββββββββββββββββββββββββββββββββββββββββββββββ
Your Runs Show:
-
β "Manage Roster" button - Full access to your runs *
-
π Live signup counts update automatically
Click "Manage Roster" to enter the roster management interface.
Understanding the Roster Manager Interface
Main Layout
When you open a run, you’ll see:
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β CAFE Roster Manager π [Security] β
β May 5, 2026 @ 8:00 PM EDT | RL: @YourName β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ£
β β
β PARTY A (LEFT SIDE) β
β ββββββββββββββββββββββββββββββββββββββββββββββββ β
β β π‘οΈ Tank β @Player1 (WAR) β
β β
β β π‘οΈ Tank β @Player2 (GNB) β β
β β π Healer β @Player3 (WHM) β
β β
β β π Healer β @Player4 (SCH) β β
β β βοΈ Melee β @Player5 (DRG) β β
β β βοΈ PhysRng β @Player6 (MCH) β β
β β βοΈ Caster β @Player7 (BLM) β β
β β βοΈ Flex β [Empty Slot] β β
β ββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β PARTY B (LEFT SIDE) ... PARTY C (LEFT SIDE) ... β
β PARTY 1 (RIGHT SIDE) ... PARTY 2 (RIGHT SIDE) ... β
β PARTY 3 (RIGHT SIDE) β
β β
β RESERVES (Standby List) β
β ββββββββββββββββββββββββββββββββββββββββββββββββ β
β β π‘οΈ @Tank7 (PLD) - Roles: Tank β β
β β π @Healer7 (AST) - Roles: Healer β β
β β βοΈ @DPS13 (SAM) - Roles: Melee, Flex β β
β ββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Interface Elements
Party Cards:
-
Party Label - Party A/B/C (Left) or D/E/F (Right)
-
8 Fixed Slots - TankβTankβHealerβHealerβMeleeβPhysRngβCasterβFlex (Default)
-
Player Cards - Show Discord name, role preference
Player Card Information:
@PlayerName (DRG) β
ββ Discord Name: @PlayerName
ββ Current Job: DRG (from phantom preferences)
ββ Party Lead: β
(if assigned)
ββ Draggable: Yes (click and hold to drag)
Reserves Section:
-
Lists all players on waitlist
-
Shows their available roles
-
Displays phantom job preferences
-
Can be dragged into party slots
Security Panel (π):
-
Top-right corner
-
Shows token security status
-
Green = Authenticated and secure
-
Click to view detailed security info
Visual Feedback System
The roster manager provides real-time visual feedback:
When Dragging:
-
β Valid drop zones - Highlighted in green
-
β Invalid drop zones - Dimmed with gray overlay
-
π― Current position - Source card remains visible
-
π» Drag preview - Shows player card following cursor
Drop Zone States:
-
Compatible Role - Card glows green, shows "Drop here"
-
Incompatible Role - Card dims to grayscale
-
Same Position - Original slot highlights differently
-
Occupied Slot - Shows swap preview
Managing Party Composition
Drag and Drop Basics
How to Move a Player:
-
Click and Hold on a player card
-
Drag to desired position
-
Release to drop
What You Can Do:
-
β Move player from reserves to party slot
-
β Swap two players in different positions
-
β Move player back to reserves
-
β Rearrange players within same party
-
β Can’t drop outside valid zones
Example: Adding from Reserves
-
Find a Tank on reserves list
-
Click and hold their card
-
Drag to an empty Tank slot in Party A
-
Tank slots in all parties highlight green (valid drops)
-
Healer/DPS slots dim gray (invalid drops)
-
Release over Party A’s Tank slot
-
Player instantly moves to Party A
Role-Based Validation
The roster manager enforces strict role rules:
Tank Slots (π‘οΈ):
-
Only accept players with Tank role selected
-
Two slots per party (positions 0 and 1)
-
Can swap Tank β Tank only
Healer Slots (π):
-
Only accept players with Healer role selected
-
Two slots per party (positions 2 and 3)
-
Can swap Healer β Healer only
DPS Slots (βοΈ):
-
Melee - Only Melee DPS (position 4)
-
PhysRng - Only Physical Ranged DPS (position 5)
-
Caster - Only Caster DPS (position 6)
-
Flex - Any DPS role (position 7)
Multi-Role Players:
If a player selected multiple roles (e.g., Tank + DPS):
-
Can be placed in any matching slot
-
Visual feedback shows all compatible positions
-
Great for filling gaps in composition
What Happens on Invalid Drop:
-
Drop is rejected
-
Player card returns to original position
-
Error message briefly appears
-
No database changes made
Swapping Players
Direct Swap:
-
Drag Player A to occupied slot containing Player B
-
Both must be compatible with opposite roles
-
Release to perform swap
-
Players instantly exchange positions
Example: Tank Swap
-
Party A Position 0: @Tank1 (WAR)
-
Party B Position 1: @Tank2 (PLD)
Drag @Tank1 to Party B Position 1: β @Tank1 moves to Party B Position 1 β @Tank2 moves to Party A Position 0
Cross-Party Swaps:
-
Works between any two parties
-
Works between party and reserves
-
Syncs to database immediately
Managing Reserves (Standby List)
Reserve Section Features:
-
Shows all waitlisted players
-
Displays their available roles
-
Sorted by signup time (oldest first)
Adding Reserve to Party:
-
Find player in reserves list
-
Check their available roles
-
Drag to compatible party slot
-
Player removed from reserves
-
Status changes to "Active"
Moving Player to Reserves:
-
Drag player card from party slot
-
Drag to reserves section
-
Release anywhere in reserves area
-
Player added to end of reserve queue
-
Status changes to "Reserve"
Best Practices:
-
β Check player role preferences before placing
-
β Consider phantom job needs for composition
-
β Communicate with reserves about their status
-
β Promote reserves in signup order when possible
-
β Use multi-role players to fill difficult slots
Using Player Information
Smart Placement Tips
Use Preferences for Better Rosters:
-
Phantom Jobs - Optimize party DPS composition
-
Mix melee/ranged/caster appropriately
-
Consider buff composition (DRG, DNC, etc.)
-
Balance high-performing jobs across parties
-
-
Preferred Friends - Keep friends together when possible
-
Mutual preferences show as β
-
Happy players perform better
-
Helps with party cohesion
-
-
Preferred Parties - Respect left/right side preferences
-
Some players prefer specific sides
-
Veterans may have reasons for preferences
-
Balance preferences with composition needs
-
Example Smart Placement:
Player A wants Party 1, plays DRG, friends with Player B
Player B wants Party 1, plays MCH, friends with Player A
β Place both in Party 1: DRG in Melee slot, MCH in PhysRng slot
β Both get preferred party + play with friend
Roster Distribution Workflow
Pre-Run Roster Building
Recommended Timeline:
-
24 hours before: Review signups, plan composition
-
6 hours before: Build initial roster in manager
-
2 hours before: Finalize placements, assign party leads
-
1 hour before: Post roster preview in thread
-
30 minutes before: Final adjustments
-
Passcode drop: Roster is locked
Step-by-Step Process:
-
Open Roster Manager
-
Click "Manage Roster" in your run thread
-
Authenticate if needed
-
Wait for roster to load
-
-
Review Signups
-
Check total active signups vs reserves
-
Note role distribution
-
Identify multi-role players
-
-
Balance Parties by Role
-
Ensure each party has 2 tanks, 2 healers, 4 DPS
-
Use flex slots for overflow DPS
-
Fill from reserves if needed
-
-
Optimize Composition
-
Review phantom job preferences
-
Balance job types across parties
-
Consider raid buff coverage
-
Place friends together when possible
-
-
Assign Party Leads
-
Mark experienced players with β
-
Ensure all parties have a leader
-
Prefer players with voice communication
-
-
Balance Left vs Right
-
3 parties on Left Side (A, B, C)
-
3 parties on Right Side (1, 2, 3)
-
Respect player side preferences
-
-
Handle Reserves
-
Keep compatible reserves for no-shows
-
Communicate with reserves about chances
-
Promote early if spots open
-
Auto-Distribution
Coming Soon:
An automatic roster distribution system will:
-
β Balance roles across all parties
-
β Respect player preferences (jobs, parties, friends)
-
β Optimize raid buff composition
-
β Generate balanced left/right sides
Manual Override:
Even with auto-distribution, you’ll be able to:
-
Drag and drop to fine-tune
-
Swap players between parties
-
Adjust for special circumstances
-
Lock specific placements
Communicating Roster to Players
Method 1: /manage-run
-
Open the manage run interface in discord via:
-
/manage-run
-
Click "Scheduling" button in the schedule channel"
-
-
Post in run thread with caption:
π **ROSTER PREVIEW - May 5 FT Run**
Please review your assigned party and role.
Final roster will be posted with passcode.
If you have concerns, DM me ASAP!
Final Roster Lock
At Passcode Drop:
-
Make final adjustments for any no-shows
-
Promote reserves to fill gaps
-
Take final screenshot
-
Post roster with passcode:
π **FINAL ROSTER - PASSCODE: AB12**
[Roster Screenshot]
Join your assigned party in Party Finder!
Party Leads: Create your parties now!
See you in Forked Tower! πΌ
| Keep roster manager open during run for real-time adjustments! |
Handling Common Scenarios
Player No-Show
When Someone Doesn’t Show Up:
-
Open roster manager
-
Drag no-show player to reserves
-
Find compatible reserve player
-
Drag reserve to vacant slot
-
Announce change in Discord:
β οΈ ROSTER UPDATE
@ReservePlayer - You're IN!
Replace @NoShowPlayer in Party B, Tank slot.
Join Party B in PF now!
If No Compatible Reserves:
-
Ask in Discord for volunteers with that role
-
Shuffle players between parties if needed
-
Consider running with 47 players if close to start
Unbalanced Role Distribution
Too Many Tanks, Not Enough DPS:
-
Check if tanks selected multi-roles
-
Contact multi-role tanks:
Hey @TankPlayer, I see you selected Tank + DPS(Flex).
Can you come DPS for this run? We're short on DPS.
-
If yes, move them to DPS slot
-
Fill tank slot from reserves or volunteers
Too Many of One DPS Type:
-
Use Flex slots (position 7) for overflow
-
Melee can go in Flex
-
PhysRng can go in Flex
-
Caster can go in Flex
-
Optimize based on player skill/preference
Player Requests Specific Party
When Player Asks to Move:
-
Check their preferences first
-
Hover over their card
-
See if request matches preferences
-
Consider if they have friends in requested party
-
-
Evaluate impact
-
Will move break current party composition?
-
Is there compatible slot in requested party?
-
Are there other players affected?
-
-
Make decision
-
If easy swap, just drag and drop
-
If complex, explain why you can’t:
-
Hey @Player, I understand you want Party 1, but:
- You're Melee DPS and Party 1 Melee slots are full
- Moving you would require swapping 3 other players
- Can you give Party B a try? I paired you with friends there.
Best Practices
Communication Tips
Be Transparent:
-
Explain your placement decisions when asked
-
Share why you can’t accommodate all requests
-
Post roster previews early for feedback
-
Welcome constructive suggestions
Set Expectations:
π Roster Building Update
Working on roster now! Few reminders:
β
I'll try to honor preferences, but composition comes first
β
Roster preview in ~2 hours
β
Final roster with passcode at 30 min before
β
DM me NOW if you have must-have requests
Thanks for your patience!
Handle Conflicts Gracefully:
When players dispute placement:
-
Listen to their concerns
-
Explain your reasoning
-
Offer alternatives if possible
-
Stand firm if needed for run success
Troubleshooting
Can’t Access Roster Manager
"Permission Denied" Error:
-
β Verify you have Raid Lead role in Discord
-
β Check with staff if role is missing
-
β Try re-authenticating (π Security Panel β Clear Token)
-
β Ensure you’re trying to access YOUR run, not someone else’s
Activity Won’t Load:
-
β Refresh Discord (Ctrl+R on desktop)
-
β Check internet connection
-
β Try different Discord client (desktop vs browser)
-
β Clear Discord cache
-
β Report to staff if persists
Stuck on Authentication Screen:
-
β Allow popups for Discord domain
-
β Try incognito/private browsing mode
-
β Check Discord Developer Portal settings (staff)
-
β Try from Discord desktop app instead of browser
Drag and Drop Issues
Card Won’t Drag:
-
β Click and hold for 1 second before dragging
-
β Ensure you have permission (read-only mode can’t drag)
-
β Refresh activity and try again
-
β Try from desktop instead of mobile
Drop Not Working:
-
β Ensure drop zone is highlighted (green = valid)
-
β Check role compatibility (Tank can’t go in Healer slot)
-
β Verify slot isn’t locked or restricted
-
β Try dropping in different compatible slot first
Swap Not Happening:
-
β Both players must be compatible with opposite roles
-
β Tank can’t swap with Healer
-
β Try moving to empty slot instead of swapping
-
β Check console for error messages (F12)
Player Returns to Original Position:
This means the drop was invalid:
-
β Incompatible role for target slot
-
β Dropped outside valid drop zone
-
β Network error prevented save
-
β Database sync failed
Check the error message and try again.
Data Sync Issues
Changes Not Saving:
-
β Check internet connection
-
β Look for error messages in activity
-
β Try making smaller changes (one player at a time)
-
β Refresh and verify changes persisted
-
β Check π Security Panel for token issues
Roster Shows Old Data:
-
β Refresh the activity (click back to runs list and reopen)
-
β Check if someone else modified roster recently
-
β Verify you’re looking at correct run
-
β Contact staff if data seems corrupted
Player Missing from Roster:
-
β Check reserves section (may have been moved)
-
β Verify they’re still signed up (use
/my-signups) -
β Check if they withdrew recently
-
β Refresh activity to sync latest data
Security & Token Issues
Token Expired Error:
π Authentication Error
Your session has expired. Please re-authenticate.
[Authenticate Again]
What To Do:
-
Click "Authenticate Again"
-
Complete Discord OAuth2 flow
-
Resume roster management
Token Security Status (π):
Click security panel to see:
π Security Status
Token Status: β
Valid
Expires: May 5, 2026 @ 10:30 PM EDT
Encryption: β
AES-256-GCM
Last Validated: 2 minutes ago
[Clear Token] [Refresh Token]
Security Actions:
-
Clear Token - Logs you out, requires re-auth
-
Refresh Token - Gets new token from Discord
Performance Issues
Roster Manager Running Slow:
-
β Close other Discord activities
-
β Refresh Discord client
-
β Use desktop app instead of browser
-
β Clear browser/Discord cache
-
β Check system resources (RAM, CPU)
Drag Operations Laggy:
-
β Reduce other open applications
-
β Use wired mouse instead of wireless
-
β Disable browser extensions
-
β Try from different device
Database Timeouts:
If you see "Database connection timeout" errors:
-
β Wait 30 seconds and try again
-
β Check CAFE Discord for server status announcements
-
β Report to staff if persists
Advanced Features
Tips for New Raid Leads
Your First Roster
Don’t Panic:
-
Take your time learning the interface
-
Use drag-and-drop to experiment
-
Changes save automatically, but you can undo
-
Ask experienced RLs for advice
-
Check example rosters from past runs
Start Simple:
-
Just fill all 48 slots first - Don’t worry about optimization
-
Balance roles - Ensure each party has 2/2/4
-
Add preferences gradually - Learn one feature at a time
-
Ask for feedback - Post preview and get input
Frequently Asked Questions
Q: Can other raid leads see my roster while I’m building it?
A: Yes, but only in view-only mode. They can’t make changes to your run’s roster.
Q: What happens if I close the activity mid-editing?
A: All changes auto-save immediately. When you reopen, your roster will be exactly as you left it.
Q: Can I undo a move?
A: Currently, just drag the player back to original position. Undo/redo feature coming soon.
Q: How do I know if a player can play multiple roles?
A: Hover over their card to see all roles they selected during signup.
Q: Can players see the roster in real-time as I build it?
A: No, roster is only visible to raid leads until you post it in Discord thread.
Q: What if roster manager is down during my run?
A: Contact staff immediately. They can provide backup access or help you post roster manually.
Q: Can I copy a roster from a previous run?
A: Not yet, but roster templates are planned for future updates.
Q: How do I remove someone from the roster entirely?
A: Drag them to reserves section. To fully remove, they need to withdraw signup via bot.
Q: Can I lock specific players so they don’t get moved accidentally?
A: Not yet, but player locking is planned for future updates.
Q: Do I need to manually save my changes?
A: No! Every drag-and-drop operation auto-saves to database immediately.
Getting Help
For Roster Manager Issues:
-
Check this guide first
-
Ask in
#raid-leadschannel -
DM staff member for technical issues
-
Report bugs with screenshots to @docs-team
For Roster Strategy Advice:
-
Ask experienced RLs in
#forked-raid-leads -
Review past successful rosters
-
Shadow veteran RLs during their runs
For Permission Issues:
-
Verify your Discord roles with staff
-
Check if you’re trying to access correct run
-
Try re-authenticating via Security Panel
-
Contact staff via ModMail if unresolved
Emergency Support:
If roster manager is critical and not working:
-
Contact staff immediately in
#forked-raid-leads -
Mention it’s blocking your run
-
Staff can provide backup access or manual solutions
-
Have passcode and run details ready
Pro Tip: Bookmark this guide and keep it open in another tab while building your first few rosters. You’ll build muscle memory quickly!
Last updated: May 2, 2026