{"id":17594682,"url":"https://github.com/overextended/ox_doorlock","last_synced_at":"2026-04-25T02:00:59.019Z","repository":{"id":37311499,"uuid":"476074439","full_name":"overextended/ox_doorlock","owner":"overextended","description":null,"archived":false,"fork":false,"pushed_at":"2026-04-24T06:16:08.000Z","size":817,"stargazers_count":176,"open_issues_count":5,"forks_count":218,"subscribers_count":12,"default_branch":"main","last_synced_at":"2026-04-24T08:19:26.520Z","etag":null,"topics":["fivem","ox-core"],"latest_commit_sha":null,"homepage":"https://overextended.dev/ox_doorlock","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/overextended.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2022-03-30T22:45:16.000Z","updated_at":"2026-04-24T06:16:15.000Z","dependencies_parsed_at":"2023-12-30T06:25:04.092Z","dependency_job_id":"07eeb0d5-4e21-4dc8-910f-fa245033edb3","html_url":"https://github.com/overextended/ox_doorlock","commit_stats":null,"previous_names":[],"tags_count":48,"template":false,"template_full_name":null,"purl":"pkg:github/overextended/ox_doorlock","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/overextended%2Fox_doorlock","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/overextended%2Fox_doorlock/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/overextended%2Fox_doorlock/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/overextended%2Fox_doorlock/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/overextended","download_url":"https://codeload.github.com/overextended/ox_doorlock/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/overextended%2Fox_doorlock/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32247508,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-24T13:21:15.438Z","status":"online","status_checked_at":"2026-04-25T02:00:06.260Z","response_time":59,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["fivem","ox-core"],"created_at":"2024-10-22T07:08:16.120Z","updated_at":"2026-04-25T02:00:59.013Z","avatar_url":"https://github.com/overextended.png","language":"TypeScript","funding_links":[],"categories":["Resources"],"sub_categories":["Door Management"],"readme":"# Ox Doorlock\n\nDoor management resource, with compatibility for [ox_core](https://github.com/overextended/ox_core), [es_extended](https://github.com/esx-framework/esx_core), [nd_core](https://github.com/ND-Framework/ND_Core), and [qbox](https://github.com/Qbox-project/qbx_core).  \nSuccessor to nui_doorlock with less scuff and more stuff.\n\n_The UI needs to be built - use the [latest release](https://github.com/overextended/ox_doorlock/releases/latest/download/ox_doorlock.zip) if you want to drag-n-drop._\n\n## Dependencies\n\n### [oxmysql](https://github.com/overextended/oxmysql)\n\nDoors are stored in a database for ease-of-use and to allow data to be easily cleared or shared.\n\nmysql-async is no longer supported.\n  - does not support error-catching (pcall)\n  - people use older versions which do not support parameters as arrays\n  - it isn't maintained and has issues that will never be resolved\n\n### [ox_lib](https://github.com/overextended/ox_lib) (v2.3.0 or higher)\n\nUsed for some UI elements (i.e. notifications, progress circle, input), and cache.\n\n### [ox_target](https://github.com/overextended/ox_target) (preferred) or [qtarget](https://github.com/overextended/qtarget) (deprecated)\n\n(Optional) Used for lockpicking.\n\n## Usage\n\nUse the `/doorlock` command to open the UI and enter the settings for your new door.  \nOnce you confirm the settings, activate your targeting resource (typically LALT) to select the entity (or entities) to use.\n\nAdding any arguments after the command will open the closest door to you, to easily modify it.\n\n## Conversion\n\nPlacing nui_doorlock config files into the `convert` folder will convert the data and insert it into the database.  \nSuccess is _not_ guaranteed if using a fork on nui_doorlock, like the qb version.\n\n## Client API\n\n- Use the closest door. Still performs server-side checks, so may fail.\n\n```lua\nexports.ox_doorlock:useClosestDoor()\n```\n\n- Pick the lock of the closest door. Still performs server-side checks, so may fail.\n\n```lua\nexports.ox_doorlock:pickClosestDoor()\n```\n\n## Server API\n\n- Get data for door\n\n```lua\nlocal mrpd_locker_rooms = exports.ox_doorlock:getDoor(1)\nlocal mrpd_locker_rooms = exports.ox_doorlock:getDoorFromName('mrpd locker rooms')\n```\n\n- Set door state (0: unlocked, 1: locked)\n\n```lua\nTriggerEvent('ox_doorlock:setState', mrpd_locker_rooms.id, state)\n```\n\n- Listen for event when door is toggled\n\n```lua\nAddEventHandler('ox_doorlock:stateChanged', function(source, doorId, state, usedItem)\n    if usedItem == 'trainticket' then\n        local xPlayer = ESX.GetPlayerFromId(source)\n        xPlayer.removeInventoryItem(usedItem, 1)\n    end\nend)\n```\n\n## Door Settings\n\n### General\n\n- Door name\n  - Used to easily identify the door.\n- Passcode\n  - Door can be unlocked by anybody by using the code or phrase.\n- Autolock interval\n  - Door will be locked after x seconds.\n- Interact distance\n  - Door can only be used when within x metres.\n- Door rate\n  - Door movement speed for sliding/garage/automatic doors, or swinging doors when locked.\n- Locked\n  - Sets the door as locked by default.\n- Double\n  - Door is a set of two doors, controlled together.\n- Automatic\n  - Sliding/garage/automatic door.\n- Lockpick\n  - Door can be lockpicked when interacting with a targeting resource.\n- Hide UI\n  - No indicators (i.e. icon, text) will display on the door.\n\n### Characters\n\n- Character Id\n  - Character identifier used by a framework (i.e. player.charid, xPlayer.identifier, Player.CitizenId).\n\n### Groups\n\n- Group\n  - Framework dependent, referring to jobs, gangs, etc.\n- Grade\n  - The minimum grade to allow access for the group (0 to allow all).\n\n### Items\n\n- Item\n  - Name of the item.\n- Metadata type\n  - Requires metadata support (i.e. ox_inventory) to check slot.metadata.type\n\n### Lockpick\n\n- Difficulty\n  - Sets the skillcheck difficulty (see [docs](https://coxdocs.dev/ox_lib/Modules/Interface/Client/skillcheck)).\n- Area size\n  - Custom difficulty area size.\n- Speed multiplier\n  - Custom difficulty idicator speed.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foverextended%2Fox_doorlock","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Foverextended%2Fox_doorlock","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foverextended%2Fox_doorlock/lists"}