Create door

Export

exports["doors_creator"]:createDoor(doorData)

Parameters

Name
Data Type
Description

doorData

table

The door data to be added

doorData Format

Field
Data Type
Description
Required

label

string

Name of the door

Yes

defaultState

integer

Default state: 1 = locked, 0 = unlocked

Yes

doors

table

Array of door objects with model and coordinates

Yes

maxDistance

number

Maximum distance for interaction

Yes

iconCoords

table

Coordinates where to show the interaction icon

Yes

allowedJobs

table

Table of jobs allowed to access, with grades

No

allowedGangs

table

Table of gangs allowed to access, with grades

No

requiredItem

string

Item required to access

No

requiresJobAndItem

boolean

If true, both job and item are required

No

requiredCode

string

Code required to access

No

autoClosureSeconds

integer

Seconds after which doors auto-close

No

parentBuilding

integer

Building ID this door belongs to

No

isSliding

boolean

If true, door is sliding rather than hinged

No

displayIcon

boolean

Whether to display interaction icon

No

requiresIdentifier

boolean

If true, specific identifiers are allowed

No

allowedIdentifiers

table

Table of identifiers allowed to access

No

vault

table

Vault door configuration

No

canBeLockpicked

boolean

If true, door can be lockpicked

No

alertPoliceOnLockpick

boolean

If true, police is alerted when door is lockpicked

No

soundsData

table

Custom sounds configuration

No

requiredItemRemoveOnUse

boolean

If true, the required item will be removed on use

No

Returns

Data Type
Description

boolean

True if the door was added, false otherwise

Example

Citizen.CreateThread(function() 
    local doorData = {
        label = "Police Front Door",
        defaultState = 1, -- 1 = locked, 0 = unlocked
        
        -- Array of physical doors objects
        doors = {
            {
                model = 747286790, -- Hash of the door model
                coords = {
                    x = 152.7808,
                    y = -1000.5450,
                    z = 29.3962
                }
            },
            -- You can add a second door for double doors
            {
                model = 747286791,
                coords = {
                    x = 154.8200,
                    y = -1000.5450,
                    z = 29.3962
                }
            }
        },
        
        -- Maximum distance for interaction
        maxDistance = 2.0,
        
        -- Where to show the interaction icon
        iconCoords = {
            x = 153.7808,
            y = -1000.5450,
            z = 29.3962
        },
        
        -- Jobs that can access this door
        allowedJobs = {
            ["police"] = {
                ["0"] = true, -- Recruit
                ["1"] = true, -- Officer
                ["2"] = true  -- Sergeant
            },

            ["ambulance"] = true
        },
        
        -- Gangs that can access (QB-Core only)
        allowedGangs = {
            ["ballas"] = {
                ["2"] = true, -- Only higher ranks
                ["3"] = true
            }
        },
        
        -- Item required to access
        requiredItem = "police_keycard",
        
        -- If true, player needs both the job AND the item
        requiresJobAndItem = false,
        
        -- Building this door belongs to
        parentBuilding = 1,
        
        -- If it's a sliding door
        isSliding = false,
        
        -- Whether to display interaction icon
        displayIcon = true,
        
        -- Door can be lockpicked
        canBeLockpicked = true,
        
        -- Alert police when lockpicked
        alertPoliceOnLockpick = true,
        
        -- Custom sounds
        soundsData = {
            lockSound = "fence",
            unlockSound = "fence"
        }
    }
    
    local success = exports["doors_creator"]:createDoor(doorData)
    
    if success then
        print("Door created successfully")
    else
        print("Failed to create door")
    end
end)

Last updated

Was this helpful?