rentProperty

Description

Triggered when a player attempts to rent a property.

Payload Structure

{
    source = playerId,      -- The player's server ID
    player = playerData,    -- Player data object from framework
    propertyId = propertyId,-- Property identifier
    rentAs = rentAs,       -- Rental type (e.g., 'society', 'user')
    rentDays = rentDays,   -- Number of days to rent
    autoRenew = autoRenew 
}

Parameters

  • source (number): The server ID of the player attempting the rental

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

  • propertyId (string/number): Unique identifier for the property being rented

  • rentAs (string): The rental context - typically 'player' for personal rental or 'gang' for organization rental

  • rentDays (number): The duration of the rental period in days

Usage Example

exports.nolag_properties:registerHook('rentProperty', function(data)
    print(('Player %s is renting property %s for %d days as %s'):format(
        data.source, 
        data.propertyId, 
        data.rentDays, 
        data.rentAs
    ))
    
    -- Check if player has rental limit
    if getRentalCount(data.source) >= MAX_RENTALS then
        TriggerClientEvent('chat:addMessage', data.source, {
            args = {'System', 'You have reached the maximum rental limit'}
        })
        return false -- Cancel the rental
    end
    
    -- Apply rental discount for VIP players
    if isVIPPlayer(data.source) then
        applyRentalDiscount(data.source, 0.1) -- 10% discount
    end
    
    return true -- Allow the rental to proceed
end)

Return Values

  • true or nil: Allow the property rental to continue

  • false: Cancel the property rental and prevent the transaction

Last updated