# Door Interaction & Visuals

Nord Doorlock can provide interaction through its built-in NUI, supported target systems or supported Text UI providers.

## Interaction Key

Default:

```lua
Config.ToggleKey = 38 -- E
```

## Interaction Distances

```lua
Config.InteractionDistance = 2.0
Config.DoorUIShowDistance = 6.0
Config.DoorUIInteractDistance = 2.0
```

`DoorUIShowDistance` controls how far away the interaction UI may become visible.

`DoorUIInteractDistance` controls the custom NUI interaction range.

Each door also stores its own `distance`.

## Custom Door NUI

Enable:

```lua
Config.CustomDoorNUI = true
```

The custom NUI displays the current door action and state near the door.

## Native Door State Icon

Enable:

```lua
Config.ShowDoorStateIcon = true
```

Default icon visibility distance:

```lua
Config.DoorStateIconDistance = 6.0
```

The resource uses GTA streamed textures:

```lua
'mpsafecracking', 'lock_open'
'mpsafecracking', 'lock_closed'
```

The icon is drawn in world space and disappears outside the configured distance.

## Duplicate Icon Protection

```lua
Config.DoorStateIconMergeDistance = 0.35
```

Nearby icon centers are merged so the same physical location does not display multiple lock icons.

## Door Closing Behaviour

```lua
Config.DoorCloseRate = 10.0
Config.DoorCloseTimeoutMs = 2500
Config.DoorCloseSnapFallback = true
Config.DoorPhysicalFallback = true
```

When locking, Nord Doorlock attempts to close the door before applying the final physical lock fallback. This avoids freezing a door while it is still open.

`DoorCloseSnapFallback` may use the captured heading after the normal close timeout for doors that do not correctly report their DoorSystem close state.

`DoorPhysicalFallback` adds an entity freeze only after the door is considered closed.
