HomeDocumentationScriptsFlake Scoreboard

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.

FiveMESX · QBCoreoxmysqlLua 5.4
Purchase Script
flakedev.com

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 InterfaceClean HTML/JS/CSS overlay with smooth animations and responsive grid layout.
  • Job CountersLive counters for Police, Medics, Mechanics, Civilians, and Staff.
  • Player HistoryTracks and displays previously connected players with timestamps.
  • Context MenuRight-click any player to copy their ID, character name, FiveM name, Discord, or all identifiers.
  • Search & SortInstantly search players by name or ID; click counters to filter by job.
  • Staff BadgesCrown icon for staff members with configurable rank lists.
  • Framework SupportWorks with ESX and QBCore out of the box.
  • Configurable UIServer name, icon, colors, icons, and visibility toggles are all adjustable.

Requirements

DependencyPurposeRequired
oxmysqlDatabase queries for player historyYes
ESX or QBCoreFramework for players, jobs, and permissionsYes

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:

server.cfg
ensure flake-scoreboard

Step 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

Run the ALTER TABLE users query. Make sure the last_seen column type is INT(11), not TIMESTAMP.

QBCore Users

QBCore usually already has a 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

Restart your server and press F10 (or type /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.lua
Config.Framework = "esx"          -- "esx" or "qbcore"
Config.UseCharacterNames = true     -- Use character names instead of FiveM names

Server Information

config.lua
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 counter

Controls

SettingDefaultDescription
Config.OpenKeyF10Key to open the scoreboard
Config.Command"scoreboard"Chat command to open the scoreboard
Config.CloseOnEsctrueAllow closing with ESC key
Config.RefreshRate5000Player list update interval in ms

Display Settings

config.lua
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.lua
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.lua
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.lua
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.lua
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.lua
Config.JobColors.taxi       = "#f1c40f"
Config.JobIcons.taxi        = "fas fa-taxi"
Config.CounterIcons.taxi    = "fas fa-taxi"
Config.CounterColors.taxi   = "#f1c40f"

Counter UI Limitation

The NUI 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.lua
Config.TestMode = {
    enabled     = false,
    playerCount = 21,
    staffChance = 5   -- percent chance a fake player is staff
}

Troubleshooting

IssueFix
Scoreboard does not openVerify ensure flake-scoreboard is in server.cfg and that your framework is running before it.
History shows "Never" for everyoneRun the installation.sql queries and ensure the last_seen column exists as INT(11).
Staff badges not showingCheck that Config.StaffRanks matches the group/permission names your framework uses exactly.
Job colors are wrongVerify the job key in Config.JobColors matches the job name returned by your framework.
Player list duplicates or flickersMake 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.