createDoor

Description

Triggered when a door is created for a property. This includes both physical doors and virtual access points that control entry to property areas.

Payload Structure

{
    source = playerId,      -- The player's server ID
    player = playerData,    -- Player data object from framework
    propertyId = propertyId,-- Property identifier
}

Parameters

  • source (number): The server ID of the player creating the door

  • player (table): Complete player data object provided by the framework (ESX/QBCore)

  • propertyId (string/number): Unique identifier for the property where the door is being created

Usage Example

Example: Registering a Hook in nolag_properties

In this example, we modify the registerHook function for door creation to utilize only the player's source and the property ID.

exports.nolag_properties:registerHook('createDoor', function(source, propertyId)
    print(('Player %s is creating a door for property %s'):format(source, propertyId))
    
    -- Limit doors per property
    local currentDoors = getDoorCount(propertyId)
    if currentDoors >= MAX_DOORS_PER_PROPERTY then
        TriggerClientEvent('chat:addMessage', source, {
            args = {'System', 'Maximum doors reached for this property'}
        })
        return false -- Cancel door creation
    end
    
    -- Assume a default valid door placement
    if not isValidDoorPlacement(propertyId) then
        TriggerClientEvent('chat:addMessage', source, {
            args = {'System', 'Invalid door placement location'}
        })
        return false -- Cancel if placement is invalid
    end
    
    -- Log door creation
    logDoorCreation(source, propertyId)
    
    -- Set up door permissions
    setupDoorPermissions(propertyId, source)
    
    return true -- Allow door creation
end)

Return Values

  • true or nil: Allow the door to be created

  • false: Cancel the door creation

Last updated