Flake Scoreboard
An advanced player scoreboard for FiveM with job counters, player history, staff badges, and a modern NUI interface. Supports ESX and QBCore with full search and context menu functionality.
Overview
Flake Scoreboard replaces the default FiveM player list with a rich, interactive scoreboard. Players press F10 (or type /scoreboard) to open a sleek interface showing all online players, grouped job counters, staff badges, ping indicators, and a searchable player history log.
Features
- •Modern NUI Interface — Clean HTML/JS/CSS overlay with smooth animations and responsive grid layout.
- •Job Counters — Live counters for Police, Medics, Mechanics, Civilians, and Staff.
- •Player History — Tracks and displays previously connected players with timestamps.
- •Context Menu — Right-click any player to copy their ID, character name, FiveM name, Discord, or all identifiers.
- •Search & Sort — Instantly search players by name or ID; click counters to filter by job.
- •Staff Badges — Crown icon for staff members with configurable rank lists.
- •Framework Support — Works with ESX and QBCore out of the box.
- •Configurable UI — Server name, icon, colors, icons, and visibility toggles are all adjustable.
Requirements
| Dependency | Purpose | Required |
|---|---|---|
oxmysql | Database queries for player history | Yes |
| ESX or QBCore | Framework for players, jobs, and permissions | Yes |
Installation
Step 1 — Drop the Resource
Place the flake-scoreboard folder into your server's resources directory and add the following to your server.cfg:
ensure flake-scoreboardStep 2 — Import Database
Open installation.sql in your database tool (HeidiSQL, phpMyAdmin, etc.) and run the appropriate section for your framework. This adds the last_seen column used by the history feature.
ESX Users
ALTER TABLE users query. Make sure the last_seen column type is INT(11), not TIMESTAMP.QBCore Users
last_updated column. If it does not exist, uncomment and run the provided ALTER TABLE players query.Step 3 — Configure
Edit config.lua to match your framework, server name, job categories, and staff ranks. See the Configuration section below.
Done
/scoreboard) to open the scoreboard.File Structure
flake-scoreboard/ ├── client/ │ └── main.lua -- Client-side logic (escrowed) ├── server/ │ └── main.lua -- Server-side logic, callbacks, DB queries (escrowed) ├── ui/ │ ├── index.html -- NUI interface markup │ ├── style.css -- NUI styles │ └── script.js -- NUI JavaScript ├── config.lua -- All editable settings (escrow-ignored) ├── installation.sql -- Database setup script └── fxmanifest.lua -- Resource manifest
Configuration
All settings live in config.lua, which is escrow-ignored and safe to edit. Client and server files are escrow-protected.
Framework
Config.Framework = "esx" -- "esx" or "qbcore"
Config.UseCharacterNames = true -- Use character names instead of FiveM namesServer Information
Config.ServerName = "YOURSERVERNAME"
Config.ServerIcon = "YOUR_ICON_URL_HERE" -- Paste a direct image link (PNG/JPG, 42x42px)
Config.MaxPlayers = 250 -- Max shown in the player counterControls
| Setting | Default | Description |
|---|---|---|
Config.OpenKey | F10 | Key to open the scoreboard |
Config.Command | "scoreboard" | Chat command to open the scoreboard |
Config.CloseOnEsc | true | Allow closing with ESC key |
Config.RefreshRate | 5000 | Player list update interval in ms |
Display Settings
Config.Display = {
showIds = true, -- Show player IDs
showPing = true, -- Show player ping
showStaffBadge = true, -- Show crown icon for staff
showStaffCounter = true, -- Show staff member counter (ESX only)
maxListHeight = 600, -- Max height of player list in pixels
}Job Categories
Jobs are grouped into categories for counters and filtering. Add or remove job names in each list to match your server:
Config.JobCategories = {
police = { "police", "sheriff", "fbi", "swat", "statepolice" },
ambulance = { "ambulance", "doctor", "emergency", "paramedic", "nurse" },
mechanic = { "mechanic", "repair", "auto", "technician" },
}Staff Ranks
Players with these ranks are flagged as staff and shown the crown badge. Define separate lists for each framework:
Config.StaffRanks = {
esx = { "owner", "admin", "superadmin", "mod", "support" },
qbcore = { "admin", "god", "mod", "moderator" },
}Icons & Colors
All icons use Font Awesome classes. Colors accept any valid CSS color value.
Config.CounterIcons = {
police = "fas fa-shield-alt",
medic = "fas fa-notes-medical",
civilian = "fas fa-user",
staff = "fas fa-user-shield",
history = "fas fa-user-clock"
}
Config.CounterColors = {
police = "#4a8cff",
medic = "#ff4a4a",
civilian = "#585e57",
staff = "#ffd700",
history = "#8b8d91"
}
Config.JobColors = {
police = "#5c77ff",
ambulance = "#ff5c5c",
mechanic = "#f1c40f",
staff = "#ffd700",
civilian = "#585e57"
}
Config.JobIcons = {
police = "fas fa-shield-alt",
ambulance = "fas fa-kit-medical",
mechanic = "fas fa-wrench",
staff = "fas fa-user-shield",
civilian = "fas fa-user"
}Customization
Adding a New Job Category
To add a new category (e.g. Taxi), follow these steps:
Step 1 — Add the job list
Config.JobCategories = {
police = { "police", "sheriff", "fbi", "swat", "statepolice" },
ambulance = { "ambulance", "doctor", "emergency", "paramedic", "nurse" },
mechanic = { "mechanic", "repair", "auto", "technician" },
taxi = { "taxi", "cab", "uber" }, -- new
}Step 2 — Add colors & icons
Config.JobColors.taxi = "#f1c40f"
Config.JobIcons.taxi = "fas fa-taxi"
Config.CounterIcons.taxi = "fas fa-taxi"
Config.CounterColors.taxi = "#f1c40f"Counter UI Limitation
index.html defines the visible counter buttons. Adding a new category to the config will not automatically add a new button in the UI — the built-in counters are Police, Medic, Mechanic, Civilian, Staff, and History. Job grouping still works for sorting and color-coding in the player list.Changing Server Icon
Replace the Config.ServerIcon URL with a direct image link (PNG or JPG). Recommended size: 42×42 px.
Test Mode
Enable fake players to test the UI without real players online:
Config.TestMode = {
enabled = false,
playerCount = 21,
staffChance = 5 -- percent chance a fake player is staff
}Troubleshooting
| Issue | Fix |
|---|---|
| Scoreboard does not open | Verify ensure flake-scoreboard is in server.cfg and that your framework is running before it. |
| History shows "Never" for everyone | Run the installation.sql queries and ensure the last_seen column exists as INT(11). |
| Staff badges not showing | Check that Config.StaffRanks matches the group/permission names your framework uses exactly. |
| Job colors are wrong | Verify the job key in Config.JobColors matches the job name returned by your framework. |
| Player list duplicates or flickers | Make sure oxmysql is installed and started before flake-scoreboard. |
| Server uptime stuck at "0m" | Uptime is pushed by the server script. If the resource recently restarted, uptime resets — this is normal. |
Developed by Flake Development. For support, open a ticket in our Discord.
