# Requirements & Compatibility

Nord Doorlock can run without a framework or database.

## Required

- FiveM server
- GTA V game build supported by your FiveM server
- The resource folder must be named `nord_doorlock` if you use the examples exactly as shown

## Optional Integrations

| Category | Supported Providers |
| --- | --- |
| Framework | Standalone, ESX, QB-Core, QBX, nord-core |
| Storage | KVP/JSON, oxmysql |
| Notifications | Standalone fallback, ox_lib, QB-Core, ESX, nord_notify |
| Text UI | Built-in NUI, ox_lib, nord_textui |
| Target | ox_target, qb-target, nord_target |
| Inventory | nord_inventory, ox_inventory, qb-inventory/QB-Core, ESX |

## Automatic Detection

Most integration settings support:

```lua
Config.Framework = 'auto'
Config.Notify = 'auto'
Config.TextUI = 'auto'
Config.Target = 'auto'
Config.Inventory = 'auto'
```

The resource checks running providers and selects the first compatible integration.

For production servers, explicitly setting the provider can make the configuration easier to understand and prevent an unintended provider from being selected after resource changes.

## ox_lib

ox_lib is optional. Nord Doorlock only uses it when the relevant global functions exist.

If ox_lib is used for lockpicking, `lib.skillCheck` is used. Without it, the configured fallback success chance is used.

## oxmysql

oxmysql is only required when:

```lua
Config.Storage = 'mysql'
```

If `Config.Storage = 'auto'`, MySQL is selected when oxmysql is started; otherwise Nord Doorlock uses its KVP/JSON persistence mode.
