qb-menu

April 10, 2025 ยท View on GitHub

Menu System for the QBCore Framework

This is a modified version of NH Context by NeroHiro

ParamDescriptionTypeDefault value
headerThe item titlestringNo default
txt?The item descriptionstring""
isMenuHeader?Whether the item is the header of the menubooleanfalse
disabled?Whether the item is clickablebooleanfalse
paramsThe options of the menutableNo default
params.eventEvent name, command or functionstring | function""
params.isAction?Whether the event is a functionbooleanfalse
params.isServer?Whether the event is the name of a server eventbooleanfalse
params.isCommand?Whether the event is the name of commandbooleanfalse
params.isQBCommand?Whether the event is the name of a qbcore commandbooleanfalse
params.args?Arguments for the events/commans/functiontablenil

Examples

RegisterCommand("qbmenutest", function(source, args, raw)
    exports["qb-menu"]:openMenu({
        {
            header = "Main Title",
            isMenuHeader = true, -- Set to true to make a nonclickable title
        },
        {
            header = "Sub Menu Button",
            txt = "This goes to a sub menu",
            params = {
                event = "qb-menu:client:testMenu2",
                args = {
                    number = 1,
                }
            }
        },
        {
            header = "Sub Menu Button",
            txt = "This goes to a sub menu",
            disabled = true,
            -- hidden = true, -- doesnt create this at all if set to true
            params = {
                event = "qb-menu:client:testMenu2",
                args = {
                    number = 1,
                }
            }
        },
    })
end)
RegisterNetEvent('qb-menu:client:testMenu2', function(data)
    local number = data.number
    exports["qb-menu"]:openMenu({
        {
            header = "< Go Back",
        },
        {
            header = "Number: "..number,
            txt = "Other",
            params = {
                event = "qb-menu:client:testButton",
                args = {
                    message = "This was called by clicking this button"
                }
            }
        },
    })
end)
RegisterNetEvent('qb-menu:client:testButton', function(data)
    TriggerEvent('QBCore:Notify', data.message)
end)

License

QBCore Framework
Copyright (C) 2021 Joshua Eger

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program.  If not, see <https://www.gnu.org/licenses/>