## Features
- Dual framework adapter: `VORP` + `RSG` (`auto`/manual mode)
- Custom NUI panel (Doorlocks Ledger)
- Create/edit/delete doors with live sync
- `/addDoor` handgun door select flow
- `/delDoor` quick delete flow (unlocks first, then deletes)
- Access rules:
- jobs + grades
- groups
- gangs
- char IDs
- key item
- Double door sync
- Auto-relock timers
- Police alert hooks (probability + recipient filtering)
- Discord webhook logging
- Lockpick providers:
- `bcc-minigames`
- `lockpick`
- `gum_lockpick`
- `SS-Lockpick`
- `sh-lockpick` (integrated)
## sh-lockpick Integration
- Native provider support with profile mapping
- Configurable via `Config.Lockpick.sh`:
- `defaultProfile`
- `difficultyToProfile`
- `maxDistance`
- `includeMetadata`
- Provider dropdown in UI only shows running providers
## Requirements
- `oxmysql`
- `vorp_core` or `rsg-core`
- Optional lockpick resource(s) based on your setup (`sh-lockpick` recommended)
## Installation
1. Add `sh-doorlocks` to your resources.
2. Run fresh SQL: `sql/install.sql`
3. Configure `config.lua`.
4. Ensure resources:
- `ensure oxmysql`
- `ensure sh-lockpick` (if using this provider)
- `ensure sh-doorlocks`
## Admin Commands
- `/doorlocks` → open admin panel
- `/addDoor` → handgun select + open create form
- `/delDoor` → handgun select + quick delete
## Exports
- `CreateDoor(payload)`
- `UpdateDoor(doorId, patch)`
- `DeleteDoor(doorId)`
- `SetDoorState(doorId, locked, reason?)`
- `GetDoor(doorId)`
- `GetDoors(filter?)`
- `GetNearbyDoor(maxDistance?)`
- `RequestDoorState(doorId)`
CFX Post: https://forum.cfx.re/t/sh-doorlocks-doorlocks-ledger-sh-lockpick/5390167