# Admin Panel & Wizard

The administrator UI is designed to keep the main screen focused on saved door cards. Creation and editing are handled through a modal wizard.

## Opening the Panel

Default command:

```text
/doors
```

Configured with:

```lua
Config.AdminCommand = 'doors'
```

Access is validated on the server through the configured ACE and framework administrator groups.

## Door Cards

Each saved door is displayed as a card. A card can show information such as:

- ID
- Name
- Locked/unlocked state
- Single or double door
- Object count
- Interaction distance
- Public or restricted access
- Auto-lock
- Lockpick availability

Click a door card to edit it.

## Wizard — General

The General step controls the basic door definition.

### Name

Friendly identifier used by administrators and developer exports.

Example:

```text
Mission Row Front Entrance
```

### Interaction Distance

Defines how close a player must be for normal interaction.

Server-side distance validation adds the configured tolerance:

```lua
Config.ServerDistanceTolerance = 2.0
```

### Auto Lock

Number of seconds before an unlocked door automatically locks again.

Use:

```text
0
```

to disable automatic relocking.

### Default Locked

Determines the default state stored in the door definition.

### Lockpick Enabled

Allows that door to participate in the lockpick workflow when global lockpicking is enabled.

## Wizard — Door Objects

A door can contain one or two physical objects.

**Door 1** is required.

**Door 2** is optional and is intended for double doors.

The capture system uses multiple object-detection methods so solid doors, barred gates and some MLO door objects can be captured.

## Wizard — Access

Access can be defined by jobs, identifiers and ACE permissions.

The access types are additive alternatives: a player only needs one valid access route.

An administrator is also allowed through the configured admin permission system.

## Editing Existing Doors

Open a saved card, change the required values and save.

The server checks whether the new definition overlaps a physical door already owned by another entry. Conflicting definitions are rejected.

## Deleting Doors

Deleting a door removes the persistent definition, broadcasts a full synchronization and retires its old DoorSystem hashes on clients.
