Skip to main content

Contextmenu Usage

Types


Button Data

FieldTypeDescriptionRequired
headerstringtrue
textstringfalse
onClickstringEvent to triggerfalse
leftIconstringFont Awesome Icon Namefalse
rightIconstringFont Awesome Icon Namefalse
dataanyData to pass when triggering onClick eventfalse
iconColorstringColor hexfalse
subMenuMenu DataCreates sub menu on clickfalse
confirmConfirm Menu DataCreates confirm menu on clickfalse
disabledbooleanDisables buttonfalse
FieldTypeDescriptionRequired
itemsButton Data[]true
onClosestringEvent to trigger if menu is closedfalse

Confirm Menu Data

FieldTypeDescriptionRequired
headerstringtrue
textstringfalse
onCancelstringEvent to trigger on cancel button clickedfalse
onConfirmstringEvent to trigger on confirm button clickedfalse
rightIconstringFont Awesome Icon Namefalse
leftIconstringFont Awesome Icon Namefalse
dataanyData to pass when triggering on cancel or on confirm events (if undefined it will take parents data)false

Examples


Creating Contextmenu

local menu = {
items = {
{
header = "User Info",
leftIcon = "user"
},
{
header = "Location",
text = "x = 0.0, y = 0.0, z = 0.0",
leftIcon = "location-dot",
onClick = "print",
data = "coords"
},
{
header = "Heading",
text = "180.0",
leftIcon = "compass",
onClick = "print",
data = "heading"
}
}
}

exports["no-contextmenu"]:CreateMenu(menu)

Handling Onclick Events

AddEventHandler("print", function(data)
if data == "heading" then
return print(GetEntityHeading(PlayerPedId()))
end

if data == "coords" then
return print(GetEntityCoords(PlayerPedId()))
end
end)

Dynamic Submenus

local users = {"Kyle", "Alice"}

AddEventHandler("users:menu", function()
local menu = {
items = {}
}

for _, user in pairs(users) do
menu.items[#menu.items + 1] = {
header = user,
leftIcon = "user",
rightIcon = "chevron-right",
onClick = "user:menu",
data = user
}
end

-- Creates new menu based on users
-- Sorts menu by usernames
exports["no-contextmenu"]:CreateMenu(menu, true)
end)

AddEventHandler("user:menu", function(userName)
local userData = fetchUser(userName) -- fetchs user based on passed data
local menu = {
items = {
{
header = userName,
leftIcon = "user"
},
{
header = "Age",
text = userData.age
},
{
header = "Phone",
text = userData.phoneNumber
}
}
}

-- creates sub menu based on last opened menu
exports["no-contextmenu"]:CreateSubMenu(menu)
end)