# Changelog

> **Files Changed**
>
> Not every update requires replacing the entire folder, as we understand it’s a hassle to redo configs for each update.

* **All Files:** Delete the old `cd_doorlock` folder, download the latest version, reconfigure the configs folder, and restart your server.
* **All Files Except config.lua:** Follow the steps above, but first back up your existing `config.lua` file. After downloading, replace the new `config.lua` with your backup.
* **Specific Files:** Simply copy and paste the specific updated files over the old ones, then restart your server.

{% hint style="danger" %}

#### **Skipping Updates**

If you’ve skipped previous updates, it’s best to update all files to ensure compatibility. For example, if you're on v4.0.1, skipped v4.0.2, and now want to update to v4.0.3, use the "All Files" method for safety.
{% endhint %}

***

{% hint style="danger" %}

#### Important Notice (cd\_bridge dependency)

Starting from v2.1.1, `cd_doorlock` now requires `cd_bridge` to function, ensuring better compatibility and easier future updates.
{% endhint %}

***

#### v2.1.16

20/3/2026 *(dd/mm/yyyy)*

**Files Changed:**&#x20;

* [ ] All Files
* [ ] All Files Except config.lua
* [x] Specific Files

```
fxmanifest.lua
server/error_handling.lua
client/client.lua
client/door_perms.lua
```

**Changelog:**

{% hint style="info" %}

#### Changes

* Improved compatibility with custom frameworks.
* Changed `debugdoorlock` to print in client and server consoles.
* Other minor various improvments.
  {% endhint %}

***

#### v2.1.15

27/2/2026 *(dd/mm/yyyy)*

**Files Changed:**&#x20;

* [ ] All Files
* [ ] All Files Except config.lua
* [x] Specific Files

```
fxmanifest.lua
client/error_handling.lua
server/error_handling.lua
html (full folder)
```

**Changelog:**

{% hint style="info" %}
**Changes**

* Improved debug prints for discord perms users.
  {% endhint %}

{% hint style="warning" %}
**Fixes**

* Fixed issue allowing doors to be imported/migrated without a location group.
  {% endhint %}

***

#### v2.1.14

29/1/2026 *(dd/mm/yyyy)*

**Files Changed:**&#x20;

* [ ] All Files
* [ ] All Files Except config.lua
* [x] Specific Files

```
fxmanifest.lua
client/lockpicking.lua
server/door_perms.lua
```

**Changelog:**

{% hint style="warning" %}
**Fixes**

* Fixed dispatch classic throwing 3777 errors when triggered from doorlock.
* Fixed framework admin permissions overwriting other permission checks.
  {% endhint %}

***

#### v2.1.13

12/1/2026 *(dd/mm/yyyy)*

**Files Changed:**&#x20;

* [ ] All Files
* [ ] All Files Except config.lua
* [x] Specific Files

```
fxmanifest.lua
server/error_handling.lua
```

**Changelog:**

{% hint style="info" %}
**Changes**

* Added further debug prints to `debugdoorlock`.
  {% endhint %}

{% hint style="warning" %}
**Fix**

* Fix for UI not selecting the proper door when search is active.
  {% endhint %}

***

#### v2.1.12

5/1/2026 *(dd/mm/yyyy)*

**Files Changed:**&#x20;

* [ ] All Files
* [ ] All Files Except config.lua
* [x] Specific Files

```
fxmanifest.lua
client/client.lua
server/server.lua
server/auto_insert_sql.lua
server/error_handling.lua
html (full folder)
```

**Changelog:**

{% hint style="info" %}
**Changes**

* Added player identifier printing to `/debugdoorlock` logs to aid debugging.
* Position and scale now save correctly.
  {% endhint %}

{% hint style="warning" %}
Fixes

* Fixed an issue where gates set the usable radius while fully open instead of fully closed, ensuring players can interact with the gate from the correct position when it is closed.
* Fixed indexing issues when searching for doors.
* Automatically fixed MariaDB issues by setting the `auto_lock` default to `0` instead of `NULL`. <br>
  {% endhint %}

***

#### v2.1.11

3/1/2026 *(dd/mm/yyyy)*

**Files Changed:**&#x20;

* [ ] All Files
* [ ] All Files Except config.lua
* [x] Specific Files

```
fxmanifest.lua
configs/config_ui.js
configs/config.lua (added Config.DoorDetection)
client/client.lua
```

**Changelog:**

{% hint style="info" %}
**Changes**

* Added `Config.DoorDetection` to fully control door dimension checks, allowing them to be enabled or disabled and optionally highlight all detected doors in a building when `OutlineAllDoorsInBuildingInBuilding` is enabled.
  {% endhint %}

{% hint style="warning" %}
**Fixes**

* Fixed `door_name_max_length` error.
  {% endhint %}

***

#### v2.1.10

2/1/2026 *(dd/mm/yyyy)*

**Files Changed:**&#x20;

* [ ] All Files
* [ ] All Files Except config.lua
* [x] Specific Files

```
fxmanifest.lua
client/client.lua
server/server.lua
server/auto_insert_sql.lua
html (full folder)

(added K4MBI and Kiiya's doors to JSON Files/import_locations)
```

**Changelog:**

{% hint style="success" %}
**Added**

* Added preconfigured doors for all K4MBI and Kiiya's MLOs, ready to import with a single click.
  {% endhint %}

{% hint style="info" %}
**Changes**

* Doors are now sorted by location group to ensure display consistency.
* Modified auto-insert SQL to automatically fix database issues even when auto-insert is disabled.
  {% endhint %}

{% hint style="warning" %}
**Fix**

* Fixed a bug where using “Edit Selected” via the target door selection, then closing the UI without making changes, caused the door to be walkable despite showing as locked.
  {% endhint %}

***

#### v2.1.9

23/12/2025 *(dd/mm/yyyy)*

**Files Changed:**&#x20;

* [ ] All Files
* [ ] All Files Except config.lua
* [x] Specific Files

```
fxmanifest.lua
client/client.lua
server/server.lua
server/functions.lua
server/error_handling.lua
```

**Changelog:**

{% hint style="info" %}
**Changes**

* Doors now load immediately in-game after migrating from JSON files to the SQL database.
* Improved and updated the door hash allow/deny list logic. Will now accept multiple formats  ``{ "model", `model`, -12345678`` }.
* Changed cd\_doorlock\_locationgroups.name collation from utf8mb4\_unicode\_ci to utf8mb4\_bin to fix duplicate entry errors.
* Added a timeout if a door is not fully closed when selecting it.
  {% endhint %}

{% hint style="warning" %}
**Fixes**

* Added validation to ensure keymapping commands are not empty when enabled.
* Fixed an issue where larger or wider doors could not be locked or unlocked after being created.
* Fixed the JSON-to-SQL prompt not showing when automatic SQL insertion was disabled.
* Automatically insert location groups from door data when none are found during JSON-to-SQL migration.
  {% endhint %}

***

#### v2.1.7

17/12/2025 *(dd/mm/yyyy)*

**Files Changed:**&#x20;

* [ ] All Files
* [ ] All Files Except config.lua
* [x] Specific Files

```
fxmanifest.lua
client/error_handling.lua
server/server.lua
server/error_handling.lua
server/functions.lua
```

**Changelog:**

{% hint style="info" %}
**Fixes**

* json\_2\_sql conversion no longer fails due to missing unique\_id values.
* Player-loaded cache events now function more reliably.
  {% endhint %}

***

#### v2.1.7

15/12/2025 *(dd/mm/yyyy)*

**Files Changed:**&#x20;

* [ ] All Files
* [ ] All Files Except config.lua
* [x] Specific Files

```
fxmanifest.lua
client/error_handling.lua
```

**Changelog:**

{% hint style="info" %}
**Changes**

* Relaxed the default Config.DoorValidationDimensions values.
  {% endhint %}

***

#### v2.1.6

14/12/2025 *(dd/mm/yyyy)*

**Files Changed:**&#x20;

* [ ] All Files
* [ ] All Files Except config.lua
* [x] Specific Files

```
fxmanifest.lua
server/door_perms.lua
```

**Changelog:**

{% hint style="warning" %}
**Fixes**

* Fixed issues with the identifier perms throwing errors.
  {% endhint %}

***

#### v2.1.5

12/12/2025 *(dd/mm/yyyy)*

**Files Changed:**&#x20;

* [ ] All Files
* [ ] All Files Except config.lua
* [x] Specific Files

```
fxmanifest.lua
client/client.lua
```

**Changelog:**

{% hint style="warning" %}
**Fixes**

* Fixed the "remove\_lockpick\_item" callback not registered error.
  {% endhint %}

***

#### v2.1.4

10/12/2025 *(dd/mm/yyyy)*

**Files Changed:**&#x20;

* [ ] All Files
* [ ] All Files Except config.lua
* [x] Specific Files

<pre><code>fxmanifest.lua
client/client.lua
configs/config.lua 

<strong>added: Config.IconSize = 0.5
</strong>
<strong>(line 146) changed from:
</strong>if Config.Framework == 'esx' or Config.Framework == 'qbcore' or Config.Framework == 'qbox' then
<strong>changed to:
</strong>if Config.Framework == 'esx' or Config.Framework == 'qbcore' or Config.Framework == 'qbox' or Config.Framework == 'other' then
</code></pre>

**Changelog:**

{% hint style="success" %}
**Added**

* Added clearer debug prints when interacting with a door and you dont have perms.
* Added Config.IconSize for you to change the size of the door icon.
  {% endhint %}

{% hint style="warning" %}
**Fixes**

* Fixed passcode not saving after creating/editing a door.
* Fix for "other" framework's framework door access perms being auto disabled on script start.
  {% endhint %}

***

#### v2.1.3

09/12/2025 *(dd/mm/yyyy)*

**Files Changed:**&#x20;

* [ ] All Files
* [ ] All Files Except config.lua
* [x] Specific Files

```
fxmanifest.lua
configs/locales.lua
server/error_handling.lua
server/version_check.lua
server/auto_insert_sql.lua

JSON Files/import_locations (Added Prompt Studios)
```

**Changelog:**

{% hint style="success" %}
**Added**

* Added Prompt Studios Door Locks
  {% endhint %}

{% hint style="warning" %}
**Fixes**

* Fixed one of the enums in th server sql, changed from gate to gates.
* Fixed the "title" locale error.
* Fixed the wonky prints in the version check.
  {% endhint %}

***

#### v2.1.2

08/12/2025 *(dd/mm/yyyy)*

**Files Changed:**&#x20;

* [ ] All Files
* [ ] All Files Except config.lua
* [x] Specific Files

```
fxmanifest.lua
configs/server_webhooks.lua
configs/locales.lua
server/auto_insert_sql.lua
server/server.lua
server/error_handling.lua
```

**Changelog:**&#x200B;

{% hint style="warning" %}
**Fixes**

* Fixed the GetLocales error in server\_webhooks.
* Fixed auto\_lock not saving when using SQL database method.
  {% endhint %}

***

#### v2.1.1

04/12/2025 *(dd/mm/yyyy)*

**Files Changed:**&#x20;

* [x] All Files
* [ ] All Files Except config.lua
* [ ] Specific Files

**Changelog:**

{% hint style="success" %}
**Added**

* **cd\_bridge** — a new utility resource that acts as the core dependency for all Codesign scripts. This bridge streamlines framework integration, database handling, error management, and compatibility with other resources. Future updates and new integrations will now be significantly easier to implement.
* **SQL Database** — Support for saving door data to an SQL database. Door information can now be stored and managed through SQL instead of relying solely on JSON files.
* If database option is enabled, the SQL will auto insert into your database. Run the **`json_2_sql`** command to migrate to the SQL database.
* Added animation when locking/unlocking doors.
* Added many new locales (EN | ES | FR | DE | IT | PT | PT-BR | NL | PL | RU | TR | ZH | JA | AR | UA | CZ | DK | SE | NO | KR | HI).
  {% endhint %}

{% hint style="info" %}
**Changes**

* Improved the debug prints.
  {% endhint %}

{% hint style="warning" %}
**Fixes**

* Minor fixes
* Fixed issues with all doors not highlighting correctly when `Config.OutlineAvailableDoors` is enabled.
  {% endhint %}

***

#### v2.0.2

26/11/2025 *(dd/mm/yyyy)*

**Files Changed:**&#x20;

* [x] All Files
* [ ] All Files Except config.lua
* [ ] Specific Files

**Changelog:**

{% hint style="success" %}
**Added**

* Converter tab
  * Options
    * OX Doorlock SQL, JSON or Database
    * QB Doorlock JSON or Database
* Export tab
  * Option to export doors by location group
* Door data backup
  * Door data will now be saved every script restart. Saves 7 copies
* Imports
  * Created imports for G\&N Studios, TStudio by TurboSaif, Prompt, Kiiya (Partial)
* Full Rewrite of nearly every file.
* Major optimisations all around.
* Added qbox compatibility
* We now support dozens of resources:
  * **Framework:** 'esx', 'qbcore', 'qbox', 'vrp', 'standalone'
  * **Database:** 'mysql-async', 'ghmattimysql', 'oxmysql'
  * **Inventory:** 'codem-inventory', 'ox\_inventory', 'qb-inventory', 'qs-inventory', 'esx', 'qbcore', 'other', 'none'
  * **Notification:** 'cd\_notifications', 'mythic\_notify', 'okokNotify', 'origen\_notify', 'ox\_lib', 'pNotify', 'ps-ui', 'rtx\_notify', 'vms\_notifyv2', 'esx', 'qbcore', 'chat'
  * **Draw Text UI**: 'cd\_doorlock', 'cd\_drawtextui', 'jg-textui', 'okokTextUI', 'ps-ui', 'qbcore', 'vms\_notifyv2'
  * **Locales:** 'EN', 'ES', 'FR', 'DE', 'IT', 'PT', 'NL', 'PL', 'RU'
    {% endhint %}

{% hint style="info" %}
**Changes**

* UI Design refresh and update
* Added more options to door creation
  * Sound unlock and lock sounds
  * More sound files
  * Keep open option
  * Item permissions now have a required amount option and an option to remove on use
* Optimized door data and load times
* Redesigned the import tab
  * Imports now have a category option as well as search option
    {% endhint %}
