Script docs

Pause Menu

A full replacement for the ESC menu that players can arrange and theme themselves.

Version
v2.1.2
Frameworks
ESX · QBCore · Qbox
Source
Escrow
resmon
0.01 ms idle · 0.01 ms menu open
Updated
10 Oct 2026

Overview

XeX Pause Menu replaces the native ESC menu with a configurable dashboard for ESX, QBCore and Qbox. Server owners choose the defaults; every player can rearrange the cards and pick a theme that is saved to their profile.

Supported Frameworks

Framework Version Status
ESX Legacy 1.6.0+ ✅ Full Support
QBCore Latest ✅ Full Support
QBox Latest ✅ Full Support

Features Summary

Core Features

Category Feature Description
UI Adjustable transparency Players choose card and background opacity
UI 10 base themes + 12 color presets Themes: Dark, Light, Glass, Midnight, Emerald, Sunset, Rose, Ocean, Gold, Neon
UI Responsive Supports 1080p to 4K resolutions
Customizer Drag & Drop Reposition cards freely
Customizer Color Pickers Full color customization
Customizer UI Scale 70% - 130% scaling
Customizer Presets Save/Load/Export/Import custom presets
Customizer Per-Player Settings saved per player
Info Player Stats HP, Armor, Hunger, Thirst, Stress
Info Vehicle Info Model, Plate, Fuel, Speed, Engine
Info Location Street, Zone, Heading, Coords (admin)
Info Weather Weather icon and name (in DateTime card)
Info Time Real time + In-game time
Info Server Online players, Job counts
Info Money Cash, Bank, Crypto, Dirty Money
Social Custom Links Website, Discord, Rules, Guides
Social Social Media Twitter, Instagram, YouTube, TikTok, Twitch
Reports Categories Bug, Player, Support, Suggestion
Reports Discord Webhook Automatic Discord integration
Reports Admin Notifications In-game alerts to admins
Framework Multi-Framework ESX, QBCore, QBox with auto-detection
I18n 12 Languages EN, ES, PT, FR, DE, IT, PL, NL, TR, ZH, RU, AR
Performance Optimized 0.00ms when closed
Updater Auto-Update Check Notifies of new versions

Installation

Requirements

  • FiveM Server Build 5181+
  • OneSync Enabled
  • Framework: ESX Legacy, QBCore, or QBox
  • Optional: ox_lib (for enhanced notifications)

Quick Start

1. Extract to your resources folder
2. Rename folder to 'xex_pausemenu' if needed
3. Add to server.cfg:
   ensure xex_pausemenu
4. Configure config.lua
5. Configure svconfig.lua (webhooks, tracked jobs)
6. Restart server
# server.cfg
ensure oxmysql
ensure ox_lib          # Optional but recommended
ensure es_extended     # or qb-core / qbox
ensure xex_pausemenu

Configuration

Framework Settings

-- config.lua
Config.Framework = 'auto' -- 'auto' | 'esx' | 'qb' | 'qbox'
Config.AutoDetectOrder = {'qbox', 'qb', 'esx'}
Value Behavior
'auto' Detects framework automatically (recommended)
'esx' Force ESX Legacy
'qb' Force QBCore
'qbox' Force QBox

Keybind Settings

Config.Keybind = 'ESC'         -- 'ESC' | 'F1'-'F10' | 'NONE'
Config.OpenCommand = 'pausemenu' -- Command to open (nil to disable)
Keybind Behavior
'ESC' Replaces native pause menu completely
'F1'-'F3', 'F5'-'F10' Opens with F-key, ESC still opens native
'NONE' Only command works

Server Information

Config.ServerName = 'Your Server Name'
Config.ServerLogo = 'img/logo.svg' -- Path relative to web/ folder, or nil
Config.ServerSlogan = 'The best roleplay experience'

Display Options

Player Information

Config.ShowPlayerInfo = {
    name = true,         -- Character name
    id = true,           -- Server ID
    job = true,          -- Current job + grade
    gang = true,         -- Gang (QB/QBox only)
    phoneNumber = true,  -- Phone number (auto-detected)
    money = true,        -- Cash, Bank, Crypto, Dirty Money
    playTime = true,     -- Session time
}

Phone Number Auto-Detection:

  • qs-smartphone
  • lb-phone
  • npwd
  • gcphone
  • gksphone
  • roadphone
  • high-phone
  • yflip-phone
  • d-phone
  • renewed-phone
  • QB/QBox charinfo.phone (fallback)

Note: high-phone, yflip-phone, and d-phone are detected as running phone resources but their phone number retrieval exports are not yet implemented — the phone number may show as unavailable for these resources.

Server Information

Config.ShowServerInfo = {
    onlinePlayers = true,  -- Current/Max players
    maxPlayers = true,
    policeCount = true,    -- Jobs are configured in svconfig.lua
    emsCount = true,
    mechanicCount = true,
}

Player Stats

Config.ShowPlayerStats = {
    enabled = true,
    health = true,
    armor = true,
    hunger = true,    -- Requires esx_status (ESX) or built-in (QB)
    thirst = true,
    stress = true,    -- QB/QBox only
}

Vehicle Information

Config.ShowVehicleInfo = {
    enabled = true,
    model = true,
    plate = true,
    fuel = true,      -- Auto-detects fuel resource
    speed = true,
    engine = true,
}

Fuel Resource Auto-Detection:

  • ox_fuel
  • LegacyFuel
  • ps-fuel
  • cdn-fuel
  • okokGasStation
  • lj-fuel
  • Native fallback

Location

Config.ShowLocation = {
    enabled = true,
    streetName = true,
    zoneName = true,
    heading = true,        -- N, NE, E, SE, S, SW, W, NW
    coords = false,        -- X, Y, Z (always visible for admins)
}

Date/Time

Config.ShowDateTime = {
    enabled = true,
    realTime = true,
    inGameTime = true,
    weather = true,
}
Config.Buttons = {
    map = true,       -- Opens GTA map
    settings = true,  -- Opens customizer
    report = true,    -- Opens report modal
}
Config.SocialLinks = {
    enabled = true,
    
    -- Main action buttons
    mainLinks = {
        {
            id = 'website',
            label = 'WEBSITE',
            icon = 'globe',       -- FontAwesome icon name
            url = 'https://your-server.com',
            enabled = true,
            color = '#3B82F6'
        },
        {
            id = 'discord',
            label = 'DISCORD',
            icon = 'discord',
            url = 'https://discord.gg/your-server',
            enabled = true,
            color = '#5865F2'
        },
        {
            id = 'rules',
            label = 'RULES',
            icon = 'scroll',
            url = 'https://your-server.com/rules',
            enabled = true,
            color = '#EF4444'
        },
        {
            id = 'guides',
            label = 'GUIDES',
            icon = 'book-open',
            url = 'https://your-server.com/guides',
            enabled = true,
            color = '#10B981'
        },
    },
    
    -- Social media icons (bottom row)
    socialMedia = {
        {id = 'twitter', icon = 'twitter', url = 'https://twitter.com/...', enabled = true, color = '#FFFFFF'},
        {id = 'instagram', icon = 'instagram', url = 'https://instagram.com/...', enabled = true, color = '#E4405F'},
        {id = 'youtube', icon = 'youtube', url = 'https://youtube.com/...', enabled = true, color = '#FF0000'},
        {id = 'tiktok', icon = 'tiktok', url = 'https://tiktok.com/...', enabled = false, color = '#FFFFFF'},
        {id = 'twitch', icon = 'twitch', url = 'https://twitch.tv/...', enabled = false, color = '#9146FF'},
    }
}

Available Icons:

  • Main: globe, discord, scroll, book-open, link, gamepad, headset, store
  • Social: twitter, instagram, youtube, tiktok, twitch, facebook

Report System

Config.ReportSystem = {
    enabled = true,
    categories = {
        {id = 'bug', label = '🐛 Bug Report', color = '#F59E0B'},
        {id = 'player', label = '👤 Player Report', color = '#EF4444'},
        {id = 'support', label = '❓ Support Request', color = '#3B82F6'},
        {id = 'suggestion', label = '💡 Suggestion', color = '#10B981'},
    },
    minMessageLength = 20,    -- Minimum characters
    maxSubjectLength = 100,   -- Maximum subject length (checked on the server)
    maxMessageLength = 1000,  -- Maximum message length (checked on the server)
    cooldown = 60,            -- Seconds between reports
    notifyAdmins = true,      -- In-game notification to admins
    sendToDiscord = true,     -- Send to webhook
}

Disconnect Options

Config.Disconnect = {
    showConfirmation = true,
    leaveMessage = 'Thanks for playing! See you soon! 👋',
    options = {
        disconnect = true,      -- Disconnect from server
        quitGame = true,        -- Close FiveM
        characterSelect = true, -- Return to character selection
    }
}

UI Customization

Config.UI = {
    accentColor = '#C5F24A',  -- Brand color: accent of the Default preset
    buttonImages = {          -- Faint background of these buttons: path relative to web/, URL, or false
        map = 'img/buttons/map.webp',
        settings = false,
        report = false,
    },
    sounds = {
        enabled = true,
        open = true,
        close = true,
        hover = true,
        click = true,
    },
    hideRadar = true,         -- Hide minimap when open
    showOverlay = true,       -- Dark overlay behind menu
    overlayOpacity = 0.7,     -- 0.0 - 1.0
    enableCustomizer = true,  -- Allow player customization
}

Customizer Options

Control what players can customize:

Config.CustomizerOptions = {
    -- Enable/disable entire tabs
    tabs = {
        theme = true,    -- Theme, background, animations
        colors = true,   -- Color customization
        layout = true,   -- Drag & drop, visibility
        cards = true,    -- Card styles
        presets = true,  -- Save/load presets
    },
    
    -- Theme tab
    theme = {
        baseTheme = true,         -- Theme selection
        backgroundOpacity = true, -- Overlay opacity
        backgroundImage = true,   -- Custom background
        cardOpacity = true,       -- Card transparency
        animations = true,        -- Enable/disable
        displayMode = true,       -- Fullscreen/Boxed
        uiScale = true,           -- Scale slider
    },
    
    -- Colors tab
    colors = {
        mainColors = true,        -- Primary, Secondary, Accent
        backgroundColors = true,  -- Background colors
        textColors = true,        -- Text colors
        statusBarColors = true,   -- HP, Armor, etc.
        jobColors = true,         -- Police, EMS, Mechanic
    },
    
    -- Layout tab
    layout = {
        editMode = true,          -- Drag & drop
        cardVisibility = true,    -- Show/hide cards
        columnLayout = true,      -- Column count
        resetPositions = true,    -- Reset button
    },
    
    -- Cards tab
    cards = {
        cardStyle = true,         -- Glass, Solid, Minimal, Neon
        borderRadius = true,      -- Corner rounding
        cardSpacing = true,       -- Gap between cards
    },
    
    -- Presets tab
    presets = {
        themePresets = true,      -- Built-in presets
        savePreset = true,        -- Save custom
        importExport = true,      -- Import/Export JSON
    },
}

Admin Features

Config.Admin = {
    showAdminBadge = true,       -- Badge next to admin names
    showCoordsForAdmins = true,  -- Coordinates visible
}

Who counts as admin is configured in svconfig.lua (see Admin Detection).

Performance Options

Config.Performance = {
    updateInterval = 1000,         -- Update frequency (ms)
    cachePlayerData = true,        -- Enable caching
    cacheDuration = 5000,          -- Cache duration (ms)
}

Server Configuration

svconfig.lua

Notifications use ox_lib automatically when it is running, otherwise the framework’s own notifications.

Discord Webhooks

ConfigSv.ReportWebhook = 'https://discord.com/api/webhooks/...'

ConfigSv.WebhookColors = {
    bug = 16753920,        -- Orange
    player = 15548997,     -- Red
    support = 3447003,     -- Blue
    suggestion = 5763719,  -- Green
}

ConfigSv.WebhookName = 'XeX Reports'
ConfigSv.WebhookAvatar = nil -- URL to avatar

Admin Detection

-- ESX groups
ConfigSv.ESXAdminGroups = {'admin', 'superadmin', 'mod', 'owner', 'god'}

-- QB/QBox permissions
ConfigSv.QBPermissions = {'admin', 'god', 'mod'}

-- Custom check (optional)
ConfigSv.CustomAdminCheck = function(source)
    return IsPlayerAceAllowed(source, 'command.admin')
end

Job Tracking

ConfigSv.TrackedJobs = {
    {
        id = 'police',
        label = 'Police',
        icon = 'fas fa-shield',
        color = '#3B82F6',
        jobs = {'police', 'sheriff', 'fbi', 'lspd', 'bcso'}
    },
    {
        id = 'ems',
        label = 'EMS',
        icon = 'fas fa-truck-medical',
        color = '#EF4444',
        jobs = {'ambulance', 'ems', 'doctor', 'hospital'}
    },
    {
        id = 'mechanic',
        label = 'Mechanics',
        icon = 'fas fa-wrench',
        color = '#F59E0B',
        jobs = {'mechanic', 'bennys', 'lscustoms'}
    },
    -- Add unlimited jobs!
}

ConfigSv.OnlyCountOnDuty = true -- QB/QBox, and ESX Legacy 1.10+ (job.onDuty)

Phone Number

Detected automatically for lb-phone, npwd, qs-smartphone, gksphone, roadphone, renewed-phone and gcphone, with charinfo.phone as fallback on QB/QBox. For any other phone:

ConfigSv.GetPhoneNumber = function(source)
    return exports['my-phone']:GetNumber(source)
end

Limits

ConfigSv.MaxRequestsPerMinute = 30 -- Menu data requests per player (0 = no limit)
ConfigSv.MaxLayoutSize = 32768     -- Max bytes of a saved player layout

The report cooldown is Config.ReportSystem.cooldown in config.lua.

Logging

ConfigSv.LogToConsole = false -- Set to true for debugging

Updates

ConfigSv.CheckForUpdates = true -- Checks xexstudio.com on start

Localization

Supported Languages

Code Language Code Language
en English it Italiano
es Español pl Polski
pt Português nl Nederlands
fr Français tr Türkçe
de Deutsch zh 中文
ru Русский ar العربية

Setting Language

Config.Locale = 'en' -- Change to your language code

Adding Custom Languages

Config.Locales['custom'] = {
    pause_menu = 'CUSTOM MENU',
    close = 'Close',
    back = 'Back',
    -- ... all keys (see existing locales for reference)
}

Visual Customizer

Theme Presets

Theme Style
Dark Dark backgrounds, subtle accents
Light Light backgrounds, dark text
Glass Maximum transparency
Midnight Deep blue tones
Emerald Green nature vibes
Sunset Warm orange/red tones
Rose Pink romantic style
Ocean Blue aquatic feel
Gold Luxury golden tones
Neon Vibrant cyberpunk

Color Presets

One click applies a full palette (accent, backgrounds, text, status bars and job colors):

Preset Accent
Default Your Config.UI.accentColor (lime by default) on graphite
Midnight Soft blue on navy
Forest Green on deep green
Ember Orange on warm brown
Amethyst Violet on deep purple
Sunset Coral and pink on plum
Arctic Ice blue on dark teal
Rosé Pink on dark berry
Mono White on black, no color accent
Synthwave Magenta and cyan on purple
Cyberpunk Yellow and cyan, neon cards
Light Indigo on white

Card Styles

Style Description
Glass Card background with a thin border (default)
Solid Opaque background
Minimal Subtle, flat design
Neon Glowing borders

Layout Options

Layout Description
3-Column Default, cards in 3 columns
2-Column Cards in 2 wider columns
Centered Single column, centered

Display Modes

Mode Description
Fullscreen Menu covers entire screen
Boxed Menu in center with custom background

Notification System

Priority Order

  1. ox_lib - If installed and started
  2. Framework - ESX/QB/QBox native
  3. Native - GTA V notifications

To use another notification resource, edit Bridge.Notify in bridge/client.lua.


Integrations (open files)

Everything that talks to your framework or to other resources is in two files that are not encrypted:

File Function What it does
bridge/client.lua Bridge.GetFuel(vehicle) Fuel level (ox_fuel, LegacyFuel, ps-fuel, cdn-fuel, okokGasStation, lj-fuel, native)
Bridge.GetNeeds() Hunger, thirst and stress (esx_status, QB/QBox metadata)
Bridge.IsDead() Death check; death events fire the local event xex_pausemenu:deathChanged
Bridge.OpenCharacterSelect() “Change character” button (esx_multicharacter, qb-multicharacter)
Bridge.Notify(title, message, type) Notifications
bridge/server.lua Bridge.GetOnlineJobs() Jobs and duty of online players (tracked jobs counter)
Bridge.IsAdmin(source) Admin check (also ConfigSv.CustomAdminCheck)
Bridge.GetPhoneNumber(source) Phone number (also ConfigSv.GetPhoneNumber)
Bridge.GetCharacter(source, data) Name, job, grade, gang and accounts

Exports & Events

Client Exports

-- Check if menu is open
local isOpen = exports['xex_pausemenu']:IsMenuOpen()

-- Open menu programmatically
exports['xex_pausemenu']:OpenPauseMenu()

-- Close menu
exports['xex_pausemenu']:ClosePauseMenu()

Shared Exports

-- Get the framework bridge object (useful for integrations)
local bridge = exports['xex_pausemenu']:GetBridge()

Server Callbacks

Callback Returns Description
xex_pausemenu:getData table Main data fetch — returns player info, server stats, admin status, tracked jobs

Server Events

Event Parameters Description
xex_pausemenu:submitReport reportData Receives report submission, sends to Discord webhook and notifies admins
xex_pausemenu:disconnect — Drops the player with configured leave message
xex_pausemenu:checkAdmin — Checks player admin status and sends result to client
xex_pausemenu:saveLayout layoutData Saves player’s customizer layout to KVP storage
xex_pausemenu:requestLayout — Loads and sends saved layout to the requesting client

Client Events

Event Parameters Description
xex_pausemenu:reportNotification reportData Notifies online admins of a new report
xex_pausemenu:setAdmin isAdmin Sets the admin flag on the client
xex_pausemenu:loadLayout layoutData Receives and applies saved layout from server
xex_pausemenu:resetLayout — Resets player layout to defaults
xex_pausemenu:notify message, type Server feedback (e.g. report rejected)

Local Client Events (for other resources)

Use them to hide your own HUD while the menu is open:

AddEventHandler('xex_pausemenu:opened', function() --[[ hide HUD ]] end)
AddEventHandler('xex_pausemenu:closed', function() --[[ show HUD ]] end)

NUI Callbacks

Callback Data Description
close — Closes the menu and releases NUI focus
modalOpened type Tracks when report/quit modal is opened
modalClosed — Tracks when modal is closed
playSound sound Plays GTA frontend sounds (CONTINUE, BACK, SELECT, NAV_UP_DOWN)
openMap — Opens the native GTA map
openSettings — Opens the native GTA settings menu
openLink url Opens a URL in the player’s browser
submitReport reportData Submits a report to the server
disconnect — Disconnects the player from the server
quitGame — Forces FiveM to close via ForceSocialClubUpdate()
characterSelect — Returns to character selection screen
saveLayout layoutData Saves player’s customizer layout to server

Commands

Command Context Description
/{OpenCommand} Client Opens the pause menu (default: /pausemenu)
resetlayout Admin / Console /resetlayout <player_id> — Resets a player’s saved layout to defaults

File Structure

xex_pausemenu/
├── bridge/
│   ├── client.lua         # Fuel, needs, death, character select, notifications (open)
│   └── server.lua         # Jobs, admin, phone, character data (open)
├── client/
│   └── main.lua           # Client-side logic
├── server/
│   └── main.lua           # Server-side logic and version check
├── shared/
│   ├── bridge.lua         # Framework abstraction
│   └── lib_loader.lua     # ox_lib loader
├── web/
│   ├── index.html         # UI structure
│   ├── style.css          # Styles
│   ├── app.js             # Main app logic
│   ├── customizer.js      # Customizer panel
│   ├── customizer.css     # Customizer styles
│   └── img/               # Images folder
│       └── logo.svg       # Server logo (placeholder, replace it)
├── config.lua             # Client configuration
├── svconfig.lua           # Server configuration
├── fxmanifest.lua         # Resource manifest
├── LICENSE                # Commercial license
└── DOCS.md                # This documentation

Troubleshooting

  1. Verify resource is started: ensure xex_pausemenu
  2. Check console for errors
  3. Verify framework is detected
  4. Check keybind conflicts

Framework Not Detected

-- Force framework
Config.Framework = 'esx' -- instead of 'auto'

Stats Not Showing

  • ESX: Requires esx_status for hunger/thirst
  • QB/QBox: Uses built-in metadata

Fuel Not Showing

  • Ensure fuel resource is started before xex_pausemenu
  • Check if fuel resource exports are available

Customizer Not Saving

  • Check server console for save/load errors
  • Verify player has valid identifier
  • Layout data is stored server-side using KVP (SetResourceKvp/GetResourceKvpString)
  • Use /resetlayout <player_id> to reset a player’s layout if corrupted

Character Select

  • ESX: Requires esx_multicharacter to be running. If not found, the player will be disconnected instead.
  • QB/QBox: Triggers qb-multicharacter:client:chooseChar.
  • The menu automatically closes when the player dies and cannot be reopened until respawn.
  • Backspace (control 177) can also be used to close the menu as an alternative to ESC/close button.
  • Sound effects use the HUD_FRONTEND_DEFAULT_SOUNDSET with sounds: CONTINUE (open), BACK (close), SELECT (click), NAV_UP_DOWN (hover).

Changelog

v2.1.2

  • Calmer home: the Quit button is now a neutral row like the link buttons, red only on its icon and on hover
  • Map, Settings and Report buttons use the same neutral surface and opacity as the cards; their color is on the icon and on hover, and follows the active preset (the Report icon no longer takes the accent color)
  • The Map button has a faint city map in the background. Config.UI.buttonImages sets the background of the Map, Settings and Report buttons (a path or URL, such as a screenshot of your server, or false)
  • Fixed: button tints did not show in game, because FiveM’s browser does not support color-mix()
  • showOverlay and overlayOpacity now set the default background darkness for players who have not changed it in the customizer
  • Removed config options that had no effect: Config.Buttons.inventory and phone; Config.UI.theme, blurIntensity, glassmorphism, animationSpeed and layout; customizer options autoTheme, animationSpeed and cardShadow

v2.1.1

  • Lighter while the menu is open (0.01 ms in resmon): hunger, thirst and stress are read from the framework’s own update event instead of copying all player data every second, street and zone are only looked up after the player moves, and only changed data is sent to the menu
  • The vehicle card hides when the player gets out with the menu open
  • The static config is sent when the menu page loads, not on the first open

v2.1.0

  • All framework and third-party integrations (fuel, needs, death, character select, notifications, admin check, phones, job counts, character data) moved to the open files bridge/client.lua and bridge/server.lua, so they can be adapted without touching encrypted code

v2.0.2

  • Update check prints the same one-line message as the other XeX scripts and stays silent if xexstudio.com cannot be reached
  • Removed the CheckForUpdates export and the pausemenu_update console command

v2.0.1

  • Fix: the menu could be opened while dead (death handlers were never registered)
  • Fix: website/Discord/social buttons now open the link in the browser
  • Fix: ESX/QBCore menu data could fail to load when ox_lib was started without its lib global
  • Security: reports are validated on the server (category, lengths, cooldown) and players are told when one is rejected
  • Security: saved layouts are size-limited on the server
  • /resetlayout also clears the layout stored in the player’s NUI
  • cachePlayerData, cacheDuration and MaxRequestsPerMinute now work; removed options that did nothing
  • Update check now uses xexstudio.com
  • Minimap stays hidden while the menu is open even if a HUD keeps re-enabling it
  • New local events xex_pausemenu:opened / xex_pausemenu:closed for HUD integrations
  • Crypto account only shown when it has a balance (QB/QBox)
  • New placeholder logo (SVG)
  • Job shows its grade (e.g. LSPD · Officer)
  • Phone number and session playtime rows in the player card (they were in the config but never displayed); lb-phone and npwd exports fixed, ConfigSv.GetPhoneNumber hook
  • Weather shows its name instead of an invented temperature
  • ESX: OnlyCountOnDuty respected on ESX Legacy 1.10+
  • Font Awesome and Inter bundled in web/vendor/ (no CDN needed)
  • New default palette (graphite and lime) and 12 redesigned presets: Default, Midnight, Forest, Ember, Amethyst, Sunset, Arctic, Rosé, Mono, Synthwave, Cyberpunk and Light
  • Preset cards show a live miniature in the preset’s own colors
  • Config.UI.accentColor now sets the accent of the Default preset
  • Text on accent-colored badges and buttons switches between dark and white for contrast
  • The menu slides left while the customizer is open, so the panel no longer covers the right column
  • Spacing between customizer sections

v2.0.0

  • Complete rewrite with modern architecture
  • Multi-framework support (ESX, QBCore, QBox)
  • Advanced visual customizer
  • 10 theme presets
  • Weather display (icon + temperature)
  • 12 language support
  • ox_lib integration
  • Enhanced report system
  • Performance optimizations

License

This is commercial software. See LICENSE for terms.

Restrictions:

  • Single server use only
  • No redistribution
  • No resale
  • No source sharing

© 2024-2026 XeX Development. All rights reserved.