Interact (Target)
You can override interact actions from
no-base/configure/client/interact.lua
Types
Entry
Field
Type
Description
id
string
Unique id for entry
label
string
Label for entry
icon
string?
Font awesome icon name
event
string
Client event to trigger
parameters
any?
Parameters to pass with event
Distance
Field
Type
Description
radius
number?
Distance between entity and player
Options
Field
Type
Description
isEnabled
function(entity: number)?
Function to check is entity interactable
Examples
Make sure to trigger the given event as in the example.
AddEventHandler("no-base:interact:qb", function(response)
TriggerEvent(response.data.event, response.data.parameters, response.entity)
end)
Config.Interact = {
AddEntryByModel = function(models, entries, options)
local function canInteract(entity)
return not options.isEnabled or options.isEnabled(entity)
end
local _entries = {}
for _, entry in pairs(entries) do
_entries[#_entries + 1] = {
icon = "fas fa-" .. entry.icon,
label = entry.label,
event = "no-base:interact:qb",
data = {event = entry.event, parameters = entry.parameters},
distance = options.distance?.radius,
bones = options.bone and {options.bone} or options.bones,
canInteract = canInteract
}
end
local resource = GetInvokingResource()
local handler
handler = AddEventHandler("onResourceStop", function(resName)
if resName ~= resource then return end
RemoveEventHandler(handler)
local labels = {}
for _, entry in pairs(_entries) do
labels[#labels + 1] = entry.label
end
exports["qb-target"]:RemoveTargetModel(models, labels)
end)
return exports["qb-target"]:AddTargetModel(models, {
options = _entries,
distance = options.distance?.radius
})
end,
AddEntryBySphereZone = function(coords, radius, entries, options)
local zoneId = entries[1] and entries[1].id
if not zoneId then return end
local function canInteract(entity)
return not options.isEnabled or options.isEnabled(entity)
end
local _entries = {}
for _, entry in pairs(entries) do
_entries[#_entries + 1] = {
icon = "fas fa-" .. entry.icon,
label = entry.label,
event = "no-base:interact:qb",
data = {event = entry.event, parameters = entry.parameters},
distance = options.distance?.radius,
bones = options.bone and {options.bone} or options.bones,
canInteract = canInteract
}
end
exports["qb-target"]:AddCircleZone(zoneId, coords, radius, {
name = zoneId,
useZ = true
}, {
options = _entries,
distance = options.distance?.radius
})
local resource = GetInvokingResource()
local handler
handler = AddEventHandler("onResourceStop", function(resName)
if resName ~= resource then return end
RemoveEventHandler(handler)
exports["qb-target"]:RemoveZone(zoneId)
end)
end
}
Last updated