setInteractablePoint
Description
Triggered when an interactable point is set for a property. This occurs when players create interaction zones within their properties for various purposes.
Payload Structure
lua{ source = playerId, -- The player's server ID player = playerData, -- Player data object from framework propertyId = propertyId,-- Property identifier -- Additional data specific to the interactable point pointData = pointData -- { id: number, name: string, label: string, interactRange: number, coords: vector3 | vector4} }
Parameters
- source (number): The server ID of the player setting the interaction point
- player (table): Complete player data object provided by the framework (ESX/QBCore)
- propertyId (string/number): Unique identifier for the property where the point is being set
- pointData (table): { id: number, name: string, label: string, interactRange: number, coords: vector3 | vector4}
Usage Example
luaexports.nolag_properties:registerHook('setInteractablePoint', function(data) print(('Player %s is setting %s interaction point in property %s'):format( data.source, data.pointData.label, data.propertyId )) -- Limit interaction points per property local currentPoints = getInteractionPointCount(data.propertyId) if currentPoints >= MAX_INTERACTION_POINTS then TriggerClientEvent('chat:addMessage', data.source, { args = {'System', 'Maximum interaction points reached for this property'} }) return false -- Cancel the point creation end -- Validate point type permissions if not hasInteractionPermission(data.source, data.pointData.id) then return false -- Cancel if no permission end -- Log the interaction point creation logInteractionPoint(data) return true -- Allow the point to be created end)
Return Values
- true or nil: Allow the interaction point to be created
- false: Cancel the interaction point creation