A complete support ticket system for FiveM QBX Framework with multi-language support.
- Name: dafem_ticketsystem
- Version: 1.0.0
- Author: _dafemboy
- GitHub: https://github.com/rxbyydev/dafem_ticketsystem
- Framework: QBX Core
- โ Fully QBX-based
- โ Modern responsive UI design
- โ Multi-language support (EN, DE, FR, ES, PT, CZ)
- โ Categories and priorities
- โ Staff panel for administrators
- โ Real-time notifications with sound
- โ Auto-refresh (polling every 5 seconds)
- โ Overhead text when player is in ticket system
- โ Ticket history and activity logs
- โ Multiple open tickets per player
- โ Claimed ticket system (exclusive handling)
- โ User information panel for staff
- โ MySQL database integration
- โ /support quick command
- โ Fully configurable
- Download
dafem_ticketsystemto yourresourcesfolder - Import
qbx_ticketsystem.sqlinto your database - Add
ensure dafem_ticketsystemto yourserver.cfg - (Optional) Place your
notify.mp3file indafem_ticketsystem/html/ - Restart your server
Edit shared/config.lua to customize the system:
Config.Locale = 'en' -- Available: en, de, fr, es, pt, czConfig.TicketCategories = {
{ id = 1, name = 'General Question', icon = 'question-circle', color = '#3b82f6' },
{ id = 2, name = 'Technical Issue', icon = 'wrench', color = '#ef4444' },
-- Add your own categories
}Config.TicketPriorities = {
{ id = 1, name = 'Low', level = 1, color = '#10b981' },
{ id = 2, name = 'Normal', level = 2, color = '#3b82f6' },
-- Add your own priorities
}Config.StaffPermission = 'admin' -- Permission for staff panelConfig.MaxOpenTicketsPerPlayer = 3 -- Max open tickets per player
Config.TicketCooldown = 300 -- Cooldown in seconds (5 minutes)Config.NotifySound = true -- Enable notification sound
Config.NotifySoundVolume = 0.5 -- Volume (0.0 to 1.0)Config.ShowOverheadText = true -- Show text above player
Config.OverheadText = 'In Ticket System' -- Text to display
Config.OverheadTextScale = 0.35 -- Text size
Config.OverheadTextFont = 4 -- Font type
Config.OverheadTextColor = { r = 164, g = 208, b = 55, a = 215 } -- RGBA colorConfig.AutoRefreshInterval = 5000 -- Interval in milliseconds (5 seconds)Config.Commands = {
OpenTickets = 'tickets', -- Open user panel
OpenStaffPanel = 'ticketsadmin', -- Open staff panel
QuickSupport = 'support' -- Quick ticket creation
}Config.UITheme = {
PrimaryColor = '#a4d037', -- Main accent color
BackgroundDark = '#0a0a0a', -- Dark background
BackgroundLight = '#1a1a1a', -- Light background
TextPrimary = '#e0e0e0', -- Primary text color
TextSecondary = '#9ca3af', -- Secondary text color
BorderColor = 'rgba(164, 208, 55, 0.2)' -- Border color
}/tickets- Open ticket system (user view)/ticketsadmin- Open staff panel (requires permission)/support <message>- Create quick support ticket
- Create new tickets with categories
- View your own tickets only
- Reply to your tickets
- Close your tickets
- Filter by status
- Toggle closed tickets visibility
- View all tickets from all users
- Claim tickets for exclusive handling
- Unclaim tickets to release them
- Change ticket priorities
- Close any ticket
- View user information (online status, job, money, etc.)
- Access user data (vehicles, properties, inventory, licenses)
- When a staff member claims a ticket, only they can reply
- Ticket creator can always reply (even if claimed)
- Other staff members see a locked message
- Staff can unclaim tickets to release them
- Plays when new tickets arrive (staff view)
- Plays when new messages arrive in open ticket
- Configurable volume
- Place
notify.mp3inhtml/folder
- Automatically checks for new content every 5 seconds
- Smart scroll management (maintains position or auto-scrolls)
- Only refreshes active view (list OR detail)
- Configurable interval
The system uses 4 main tables:
tickets- Main ticket storageticket_messages- All messagesticket_categories- Categories with icons and colorsticket_priorities- Priority levelsticket_activity_log- Audit trail
- ๐ฌ๐ง English (en)
- ๐ฉ๐ช German (de)
- ๐ซ๐ท French (fr)
- ๐ช๐ธ Spanish (es)
- ๐ต๐น Portuguese (pt)
- ๐จ๐ฟ Czech (cz)
To add a new language, create a file in locales/ folder following the existing structure.
- Check database connection
- Verify tables are created
- Check server console for errors
- Ensure
notify.mp3is inhtml/folder - Check file name is exactly
notify.mp3 - Restart the resource
- Verify
Config.StaffPermissionmatches your permission system - Check QBX Core permissions
- Check for JavaScript errors in F8 console
- Verify all dependencies are installed
- Restart the resource
See LICENSE file for details.
- GitHub Issues: https://github.com/rxbyydev/dafem_ticketsystem/issues
Created by _dafemboy for the FiveM community.
Enjoy the ticket system! If you like it, consider leaving a star on GitHub! โญ