Oxide StudiosOxide Studios

Installation Guide

Complete installation instructions for Oxide Menu.

Table of Contents


Prerequisites

RequirementVersionNotes
FiveM ServerLatestRecommended: Latest artifacts
QBCore FrameworkLatestRequired dependency
qb-inventoryAnyOptional: For item icon resolution

Fresh Installation

Step 1: Download

Download the oxide-menu resource and extract it to your resources folder.

resources/
└── [nulldev]/
    └── oxide-menu/
        ├── fxmanifest.lua
        ├── config.lua
        ├── client/
        │   └── main.lua
        └── html/
            ├── index.html
            └── css/
                ├── variables.css
                ├── animations.css
                └── main.css

Step 2: Server Configuration

Add the resource to your server.cfg:

# After qb-core
ensure qb-core

# Oxide Menu
ensure oxide-menu

Step 3: Remove qb-menu

If you're replacing qb-menu, disable or remove it:

# Comment out or remove
# ensure qb-menu

Important: Oxide Menu supports the qb-menu data format. You must update export names from 'qb-menu' to 'oxide-menu' in your scripts, but the menu data structure stays the same.

Step 4: Configure

Edit config.lua to customize the menu behavior:

Config.Theme = 'oxide'      -- Visual theme
Config.Position = 'right'   -- Default position
Config.Debug = false        -- Set true to enable demo commands

See Configuration for all options.

Step 5: Restart

Restart your server or use:

refresh
ensure oxide-menu

Migration from qb-menu

Oxide Menu supports the qb-menu data format with a simple export name change.

Step 1: Backup

Always backup before making changes:

  • Export your current resource folder
  • Note any custom modifications to qb-menu

Step 2: Replace Resource

  1. Remove or rename your existing qb-menu folder
  2. Add oxide-menu to your resources
  3. Update server.cfg:
# Replace this:
# ensure qb-menu

# With this:
ensure oxide-menu

Step 3: Update Export Names

Find and replace in your scripts:

-- Change this:
exports['qb-menu']:openMenu(...)
exports['qb-menu']:closeMenu()
exports['qb-menu']:showHeader(...)

-- To this:
exports['oxide-menu']:openMenu(...)
exports['oxide-menu']:closeMenu()
exports['oxide-menu']:showHeader(...)

The menu data you pass to these functions stays the same.

The legacy event still fires for compatibility:

AddEventHandler('qb-menu:client:menuClosed', function()
    -- Still triggers
end)

Step 4: Verify

Test your existing menus to ensure they display correctly. See Verification below.


Verification

Check Resource Started

In server console or F8:

ensure oxide-menu

If debug mode is enabled (Config.Debug = true), you'll see:

[oxide-menu] Debug mode enabled - Demo commands: /oxidemenu through /oxidemenu11

If no message appears, the resource is running in production mode (normal).

Test Demo Commands

Enable debug mode temporarily:

Config.Debug = true

Then test in-game:

/oxidemenu    -- Should show character options menu
/oxidemenu3   -- Should show interactive elements

Test Existing Scripts

After updating the export names, open any menu from your scripts. They should display with the new Oxide Menu styling.


Troubleshooting Installation

IssueSolution
Menu doesn't appearCheck F8 console for errors. Ensure resource started.
NUI errorsClear FiveM cache: %localappdata%/FiveM/FiveM.app/data/cache
Exports not foundEnsure oxide-menu starts after qb-core in server.cfg
Styling brokenVerify all CSS files exist in html/css/ folder

See Troubleshooting for more solutions.


Next Steps