Features
Read below for the full features available on Infracto!
🎯 Features
1. Real-Time Join/Leave Monitoring ✅
Automatic tracking of players joining and leaving ERLC server
Polls ERLC API every 30 seconds for new join/leave events
Sends Discord embeds with player name, Roblox ID, and timestamp
Configurable notification channel
Never misses events - tracks last processed timestamp
2. Automatic Shift Tracking ✅
Zero manual input required - completely automatic
Detects when linked users join on staff teams (Police, Fire, Sheriff, etc.)
Starts shift timer automatically
Ends shift when player leaves or switches to civilian
Shift timeout protection - auto-ends stale shifts after 60 seconds if player not detected
Calculates total shift time minus breaks
Stores all shift data in database
View shifts in
/lookupcommand and activity reports
3. Activity Tracking & Quotas ✅
/activity view- Check staff activity over custom time periodsSet minimum quota requirements with pass/fail status
/activity leaderboard- All-time top staff by shift hours/activity end- Management can manually end any shiftAutomatic shift time calculations
Supports filtering by time periods (24h, 7d, 14d, 30d)
CSV export with monthly limits (2 free / 4 premium)
4. Comprehensive Moderation System ✅
/moderate- Create moderation logsWarning, Kick, Server Ban, Discord Ban types
Quick moderation from
/lookupaction buttonsLinks to Roblox accounts
Automatic logging to moderation channel
/editmoderation- Edit or delete existing moderations/viewmoderation- View user's complete moderation history/modstats- View moderator statisticsTotal moderations
Breakdown by type (warnings, kicks, bans)
Total shift time
Performance metrics
5. Ban Request System ✅
/banrequest add- Staff can submit ban requests/banrequest lookup- Search ban requests by user/banrequest revoke- Remove ban requests/banrequest complete- Mark requests as completed/banrequest list- View all pending requestsStatus tracking (pending, completed, revoked)
Automatic notifications to ban request channel
6. Leave of Absence (LOA) System ✅
/leave request- Staff can request leaves with date ranges/leave user- View your own LOA history/leave active- View all currently active leaves/leave manage- End your LOA early/leave admin- Admins approve/deny/view LOAsAutomatic approval notifications via DM
Date range validation
LOA nickname prefix ⭐ Premium: Auto-add prefix during LOA
7. Roblox Integration ✅
/lookup- Complete Roblox user profilesUsername, Display Name, User ID
Account age and profile link
Avatar display
Linked Discord account (if available)
Current shift status (on duty or off duty)
Total shift time
Server badges ⭐ Premium
Global badges
In-game status (if online)
Moderation action buttons (Moderator+)
/roblox-link- Secure account linking with profile verificationGraceful handling of deleted accounts
8. Discord User Info ✅
/whois- Discord user informationUsername, ID, join date, account creation
Role list
Linked Roblox account (if available)
Total shift time (if linked)
9. Full ERLC API Integration ✅
All endpoints with pagination support for large datasets:
/erlc server
Server name, owner, co-owners, player counts, join key, team balance
/erlc players
Live player list with names, IDs, teams, permissions, callsigns
/erlc joinlogs
Complete join/leave history with timestamps
/erlc killlogs
Kill events with killer, victim, timestamps
/erlc commandlogs
In-game command history and audit trail
/erlc modcalls
Moderator call logs with response status
/erlc bans
Server ban list with player names and IDs
/erlc staff
Complete staff roster with hierarchy
/erlc queue
Players waiting to join with queue position
10. Remote Command System ✅
/remotecommand run- Execute ERLC commands from Discord/remotecommand schedule- Schedule recurring commands with intervals/remotecommand list- View all scheduled commands/remotecommand toggle- Enable/disable scheduled commands/remotecommand delete- Remove scheduled commands/remotecommand greeting- Set auto-welcome messages with{player}placeholderDangerous command protection - kick/ban/shutdown require Admin+
11. Session Management ⭐ Premium ✅
/session create- Create session templates/session vote- Staff vote for next session/session start- Manually start session/session stop- End current sessionSession channel announcements
Vote tracking and results
12. Custom Badge System ✅
Server badges ⭐ Premium - Custom badges for your server's staff
Global badges - Bot admin badges visible across all servers
/badge create- Create new badges with emoji and description/badge delete- Remove badges/badge add- Assign badges to users by Roblox ID/badge remove- Remove badges from users/badge list- View all available badgesBadges displayed in
/lookupwith separate sections
13. Configuration System ✅
/config- Interactive dropdown menu with modal formsChannel Settings:
Join/Leave Notifications
Moderation Logs
Activity Logs
Ban Request Channel
LOA Channel
Session Channel ⭐
Role Settings:
Admin Role
Moderator Role
Management Roles (multiple)
Verification Role
Active Duty Role ⭐
System Settings:
ERLC Server API Key
LOA Nickname Prefix ⭐
Enforce Discord Membership ⭐
VC Stat Channels ⭐
14. Premium Features ⭐ ✅
/embedcolor- Custom embed colors/serverfooter- Custom footer textSession management system
Custom server badges
LOA nickname prefix
Active duty role auto-assignment
VC stat channels (live voice channel names)
Enforce Discord membership
Higher CSV export limits (4/month vs 2/month)
15. Owner Admin Panel ✅
/admin guilds- List all guilds with premium status/admin guild- View/manage specific guildRemove bot (preserve data)
Permanently remove (delete data)
Toggle premium status
/admin stats- Bot-wide statistics/admin blacklist- Manage server blacklistGlobal badge management
Restricted to admin server with admin role
🔧 Technical Features
Rate Limiting System ✅
Intelligent queue system for all ERLC API requests
Automatic parsing of rate limit headers
Exponential backoff for 429 responses
Per-bucket rate limit tracking
Special handling for POST
/server/command(1 req/5 sec)Protects against IP bans
Database System ✅
SQLite database via sql.js (in-memory with persistence)
20+ comprehensive tables including:
server_config- Per-server settingsroblox_links- Discord ↔ Roblox account linksshifts- Complete shift historymoderations- Moderation logsban_requests- Ban request trackingleaves- Leave of absence recordsscheduled_commands- Remote command schedulessessions- Session templatessession_votes- Vote trackingbadges- Badge definitionsuser_badges- Badge assignmentsactivity_tracking- Monitoring statepremium_servers- Premium statusblacklisted_servers- Blacklistserver_logs- Command audit trail
Pagination System ✅
Interactive button navigation for all log viewers
10-25 items per page (varies by content)
Previous/Next/First/Last buttons
Page counter display
5-minute interaction timeout
Auto-cleanup after timeout
Prevents button hijacking (user-specific)
Scheduler System ✅
10-second base interval for all scheduled tasks
Join/leave monitoring
Shift timeout checks (60-second sync)
Scheduled command execution
VC stat updates
Session management
LOA expiration checks
Error Handling ✅
Comprehensive try-catch blocks
User-friendly error messages with codes
Console logging for debugging
Graceful degradation
Invalid server key detection
Roblox API error handling
Standard error code system (see ERROR_CODES_AND_COLORS.md)
Permission System ✅
PermissionContext class for role-based access
Levels: Everyone → Moderator → Management → Admin → Bot Admin → Owner
Per-guild role configuration
Discord permission integration
Owner override for all commands
📊 Data Tracking
Automatic Tracking:
Player joins
ERLC API polling
Player leaves
ERLC API polling
Staff team assignments
ERLC API polling
Shift start/end times
Automatic detection
Total shift durations
Calculated
Roblox ↔ Discord links
User verification
Moderation history
Manual entry
Command execution
Audit logging
Queryable Data:
Total shift time
/lookup, /activity user
Shift history
/activity user
Active shifts
/activity view
Leaderboards
/activity leaderboard
Quota compliance
/activity view
Moderator stats
/modstats
Ban request history
/banrequest lookup
LOA records
/leave user, /leave active
Server logs
/serverlogs
🎨 User Experience
Embeds ✅
Color-coded embeds (success=green, error=red, info=blue, warning=yellow)
Custom colors per server ⭐ Premium
Custom footers per server ⭐ Premium
Consistent formatting across all commands
Timestamps on all embeds
Inline fields for compact display
Links to Roblox profiles
Avatar displays
Notifications ✅
Join/leave events to configured channel
Shift start/end notifications
Moderation logs to configured channel
Ban request submissions
Leave approval/denial DMs
Session announcements ⭐
Interactive Elements ✅
Dropdown menus for configuration
Modal forms for data entry
Button navigation for pagination
Action buttons in
/lookupAutocomplete for badges and sessions
📝 Command Statistics
Utility
9
4 (roblox-link)
Activity
1
8 (view, leaderboard, user, add-time, remove-time, reset-user, reset-global, end)
Moderation
4
-
Ban Requests
1
5 (add, lookup, complete, revoke, list)
Leave System
1
5 (request, user, active, manage, admin)
ERLC Integration
2
15 (9 for /erlc, 6 for /remotecommand)
Sessions ⭐
1
4 (create, vote, start, stop)
Badges ⭐
1
5 (create, delete, add, remove, list)
Premium
2
6 (3 each for embedcolor, serverfooter)
Owner Admin
1
4 (guilds, guild, stats, blacklist)
Total
23 command categories
50+ subcommands
🚀 What Makes This Bot Special
Fully Automatic Shift Tracking - No manual clock-in needed, tracks from ERLC API
Shift Timeout Protection - Auto-ends stale shifts after 60 seconds
Rate Limit Protection - Never gets IP banned, respects all limits
Complete ERLC API Coverage - Every endpoint implemented with pagination
Smart Linking - Connects Discord users with Roblox accounts via verification
Zero Dependencies on Other Bots - Self-contained, works standalone
Rich User Experience - Interactive buttons, modals, autocomplete
Premium Features - Customization and advanced features for paying servers
Badge System - Server and global badge recognition
Comprehensive Admin Panel - Full bot management from Discord
Last updated