π‘οΈ Xrisma Ban System | Advanced Ban & Moderation System
Welcome to the Xrisma Ban System, the ultimate and most optimized ban & moderation solution for your FiveM server.
Designed specifically for high performance enterprise level servers with HWID tracking, ban evasion detection, and a beautiful admin panel.
β¨ Key Features :
π’ Enterprise-Grade Admin Panel
- Dynamic Dashboard: Live statistics with active ban counts, total bans, today's bans, permanent ban counts, and recent activity β all updating in real-time.
π¨ Comprehensive Ban System
- Online & Offline Banning: Ban players instantly by server ID while in-game, or ban offline players by identifier (Steam ID, License, Discord ID, etc.).
- Permanent & Temporary Bans: Full support for both permanent bans and temporary bans with configurable durations.
- Duration Presets: Quick-select buttons in the UI (1h, 6h, 12h, 1d, 3d, 7d, 14d, 30d, 90d, 365d, Permanent).
- Flexible Duration Parsing: Supports short form (`7d`), long form (`7 days`), full keywords, numeric seconds, and permanent shortcuts.
- Max Duration Enforcement: Restrict non-owner admins to maximum ban lengths while console/owners get unlimited access.
- Auto-Expiration: Automatically deactivate expired bans on player connection.
π HWID Ban Evasion Detection
- Hardware Token Tracking: Captures and stores hardware tokens using FiveM's native GetPlayerTokens() system.
- Automatic Linked Account Detection: System automatically links and tracks identifiers across accounts for comprehensive ban coverage.
- Configurable Match Threshold: Strict mode (ANY hardware match = flagged) or lenient mode (2+ matches = flagged).
- HWID-Only Bans: Ability to ban by hardware ID alone without needing specific identifiers.
- Automatic HWID Merging: Link and merge hardware IDs across related accounts to catch sophisticated evaders.
π Multi-Identifier Tracking
- 8 Identifier Types Supported: Steam ID, Rockstar License, Secondary License, Discord ID, FiveM ID, Xbox Live, Microsoft Live, IP Address.
- Per-Identifier Toggle: Enable or disable each identifier type individually per server configuration.
- Automatic Validation: Format validation before storing any identifier.
- Privacy Controls: Granular toggles to hide IPs, identifiers, and HWIDs in the admin UI based on server policy.
π₯οΈ Beautiful Ban Screen
- Fully Customizable HTML Ban Screen: Complete design control over the appearance shown to banned players β gradients, fonts, colors, spacing, badges, and more.
- Visual Ban Countdown: Real-time counter showing exact time remaining for temporary bans.
- Detailed Ban Info Display: Ban date, expiration, ban ID, reason, and administering admin all shown clearly.
- Custom Appeal Message: Server-configurable appeal/support contact information.
- Accent Color Bar & Badge Support: Prominent colored border and optional custom badge text (e.g., "OFFICIAL SERVER").
π Ban Management & Editing
- Extend & Reduce Bans: Modify ban duration without full unban/reban cycle.
- Edit Reason & Player Name: Change ban reason or display name after creation.
- Timestamped Notes System: Add author-attributed notes to ban records for tracking history.
- Searchable Ban List: Search across player names, reasons, admins, identifiers, and ban IDs with full pagination.
- One-Click Unban: Unban directly from the ban list or detailed ban view.
π Advanced Permission System
- Dual Authentication: ACE permissions (primary) + Framework admin groups (fallback).
- Granular Permission Mapping: `xrisma.ban`, `xrisma.unban`, `xrisma.viewbans`, `xrisma.offlineban` β assign specific permissions to specific groups.
- Admin Protection: Prevent lower-level admins from banning other admins.
- Bypass/Whitelist System: Protect specified identifiers (server owners) from ever being banned.
- Console Override: Console (source 0) always has full access regardless of permissions.
π¬ Chat Commands
- `/bans` β Open the admin ban management panel.
- `/ban [id] [duration] [reason]` β Ban online player.
- `/banoffline [identifier] [duration] [reason]` β Ban offline player by identifier.
- `/unban [ban_id]` β Unban by ban ID number.
- `/checkban [id or identifier]` β Check current ban status.
- Optional Keybind: Configurable F-key binding (F7 default) to open the panel instantly.
- All command names are fully customizable in config.
πͺ Discord Webhook Integration
- Event-Based Logging: Automatic Discord notifications for bans, unbans, ban modifications, and banned player connection attempts.
- Rich Embeds: Formatted Discord embeds with color coding per event type (red=ban, green=unban, yellow=modify, blue=info).
- Per-Event Toggles: Enable/disable specific event types independently.
- Custom Bot Name & Avatar: Configurable webhook display settings.
π Optimization & Security
- 0.00ms Resmon: Highly optimized with in-memory player caching, indexed database queries, and efficient pagination.
- Rate Limiting: Configurable requests-per-second limit (default 5) per player to prevent spam.
- Action Cooldown: Minimum delay between ban actions (default 2 seconds) to prevent rapid-fire exploitation.
- Event Source Validation: All server events verified from legitimate authenticated sources β exploiters are automatically kicked.
- No Client-Side Bypasses: Every permission and authorization check occurs server-side only.
- Comprehensive Audit Trail: Full logging of all ban actions with admin names, timestamps, and target information.
π Server-Side Export API
- `BanPlayer(source, duration, reason)` β Ban an online player from any resource.
- `BanIdentifier(identifiers, duration, reason, playerName)` β Ban by identifier(s).
- `BanHWID(hwid, duration, reason, playerName)` β Ban by hardware token.
- `UnbanById(banId)` / `UnbanByIdentifier(identifier)` β Remove bans programmatically.
- `IsPlayerBanned(source)` / `IsIdentifierBanned(identifier)` β Check ban status.
- `GetBanInfo(banId)` / `GetBanHistory(identifier)` β Retrieve full ban details and history.
- `AddBanNote(banId, note, author)` / `ExtendBan(banId, duration)` / `ReduceBan(banId, duration)` β Full management from external scripts.
π οΈ Developer Friendly
- `config.lua`: Extensive configuration β framework settings, permission mapping, ban settings, identifier toggles, UI customization, webhook options, security settings, ban screen styling, and more.
- `bridge/*.lua`: Fully open-source bridge system with framework auto-detection and manual override.
- `shared/utils.lua`: Open-source utility functions for duration parsing, formatting, and validation.
- Server Events: `xrisma_bansystem:playerBanned` and `xrisma_bansystem:playerUnbanned` for hooking into ban actions.
- Automatic Database Schema: Self-creating tables with proper indexes on first startup β zero manual SQL required.
π¨ Full UI Customization
- Dark Mode Toggle: Persistent dark/light theme with client-side settings.
- Accent Color Picker: Personalize accent color with persistent storage.
- Notification Positioning: 9 available toast notification positions.
- Panel Title & Subtitle: Fully customizable header text.
Framework Support:
- ESX
- QBCore
- QBOX
- Standalone (ACE Permissions Only)
Discord Support: Join our Discord
