> For the complete documentation index, see [llms.txt](https://cylexdev.gitbook.io/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://cylexdev.gitbook.io/docs/cylex_mdt/features/officers-and-units.md).

# Officers & Units

Manage your department's officer roster, assign certifications, and organize on-duty officers into named units with live status tracking.

The Officers and Units pages give supervisors full visibility into who is on the roster, what certifications each officer holds, and how on-duty officers are organized into active units at any moment during a shift. Changes you make — rank edits, certifications, unit assignments — are reflected immediately across the MDT for all logged-in officers.

### Officers <a href="#id-8e01727c-c770-488f-bb5a-f265b93ec132" id="id-8e01727c-c770-488f-bb5a-f265b93ec132"></a>

#### Card and table views <a href="#id-1d5a351f-5624-4cc4-8240-391f4b57a951" id="id-1d5a351f-5624-4cc4-8240-391f4b57a951"></a>

The Officers page opens in card grid view by default. Each card shows the officer's profile photo, rank, badge number, employment status (**Active**, **Suspended**, or **On Leave**), and an **ACTIVE** or **INACTIVE** online indicator that reflects whether that officer is currently logged into the MDT.

Switch to table view to see all officers in a compact spreadsheet layout with columns for rank, badge number, full name, FTO flag, and assigned certifications. Click any row to open that officer's edit form.

{% hint style="success" %}
Use the department filter at the top of the page to narrow the list to a single department. If `Config.DepartmentScopedData` is `true`, you only see officers from your own department by default.
{% endhint %}

#### Searching and filtering <a href="#e7d5cce5-35db-4c9a-96cd-4e22f3fbae27" id="e7d5cce5-35db-4c9a-96cd-4e22f3fbae27"></a>

Type in the search bar to filter officers by name in real time. Combine search with the department selector to find a specific officer across a large multi-department roster.

#### Editing an officer profile <a href="#id-9a2dacd1-9b35-4809-a08d-386614cd3c97" id="id-9a2dacd1-9b35-4809-a08d-386614cd3c97"></a>

Click any officer card or table row to open the edit form. You can update the following fields:

* **First Name** and **Last Name**
* **Phone Number** and **Email**
* **Profile Photo URL** — paste a direct image link; the photo updates on the card immediately
* **Rank** — select from your department's configured ranks
* **Department** — reassign the officer to a different department

Click **Save Changes** to apply. All edits are logged to the MDT audit trail.

#### Certifications <a href="#id-59c71d76-39c2-4931-80ef-de5a4890d847" id="id-59c71d76-39c2-4931-80ef-de5a4890d847"></a>

The certifications panel lets you assign and remove specialty qualifications from an officer's profile. Each certification is defined in `internal_config.lua` and displays with its own icon:

```lua
Config.Certifications = {
    { id = 'swat',   label = 'SWAT',           icon = 'security',          image = ''    },
    { id = 'sniper', label = 'Keskin Nişancı',  icon = 'gps_fixed',         image = ''    },
    { id = 'pilot',  label = 'Hava Birimi',     icon = 'flight',            image = ''    },
    { id = 'motor',  label = 'Motor Birimi',    icon = 'two_wheeler',       image = 'motorunit.png' },
    { id = 'medic',  label = 'Taktik Sağlık',  icon = 'medical_services',  image = ''    },
    { id = 'nego',   label = 'Müzakereci',      icon = 'record_voice_over', image = ''    },
    { id = 'dive',   label = 'Sualtı Birimi',   icon = 'waves',             image = ''    },
    { id = 'cyber',  label = 'Siber Birim',     icon = 'computer',          image = ''    },
}
```

To add a certification, select it from the certifications dropdown on the officer's profile and save. To remove one, click the remove icon next to the badge. Certifications appear in the table view and on the officer's card so supervisors can see qualifications at a glance.

{% hint style="info" %}
Certification labels and icons are defined in `shared/internal_config.lua`. To rename a certification or swap its icon, edit the `label` and `icon` fields for the relevant entry. Labels shown in the UI are pulled from this file, not from the locale.
{% endhint %}

#### Incident history <a href="#id-4ab8d5d2-b6fb-4c9c-aaf0-b49d3a1f4a01" id="id-4ab8d5d2-b6fb-4c9c-aaf0-b49d3a1f4a01"></a>

An officer's profile includes an **Involved Incidents** section that lists every incident report they have been assigned to. Click any entry to open that report directly.

#### Firing an officer <a href="#df39f2c8-44f9-412d-9f0c-b2e87e5e455f" id="df39f2c8-44f9-412d-9f0c-b2e87e5e455f"></a>

To remove an officer from the roster entirely, open their profile and use the **Fire** action. A confirmation dialog appears before any change is made. Firing an officer removes them from the roster and revokes their MDT access. This action is logged.

***

### Units <a href="#efcc10fd-e9ad-4893-afda-ea87574f3a3c" id="efcc10fd-e9ad-4893-afda-ea87574f3a3c"></a>

The Units page lets you create named unit cards and populate them by dragging on-duty officers from the sidebar. Units are visible to all officers in the MDT so everyone can see how patrols are structured at any given time.

#### Online officers sidebar <a href="#eca21525-2f75-49d5-8b99-b086c9aef3b1" id="eca21525-2f75-49d5-8b99-b086c9aef3b1"></a>

The right sidebar shows every officer who is currently on duty and not yet assigned to a unit. Use the search bar to filter by name. Drag any officer from the sidebar to drop them into a unit card on the left.

{% hint style="info" %}
Only officers who are currently logged into the MDT appear in the online officers sidebar. Off-duty officers are not draggable.
{% endhint %}

#### Creating a unit <a href="#id-026659b1-0b15-414f-9bed-2a92d13d6932" id="id-026659b1-0b15-414f-9bed-2a92d13d6932"></a>

{% stepper %}
{% step %}

### Open Units

Navigate to **Units** in the MDT sidebar.
{% endstep %}

{% step %}

### Click Add Unit

Press the **Add Unit** button in the top-right corner.
{% endstep %}

{% step %}

### Name the unit

Enter a unit name in the **Create New Unit** modal — for example, `Adam-1` or `Bravo-2`. Click **Create**.
{% endstep %}

{% step %}

### Add officers

Drag officers from the online sidebar on the right into the new unit card. Each card shows a **Drag officer from the right** placeholder until the first officer is added.
{% endstep %}
{% endstepper %}

#### Unit statuses <a href="#id-97467fb9-5ec0-4a0d-b4e4-e2ed8addd433" id="id-97467fb9-5ec0-4a0d-b4e4-e2ed8addd433"></a>

Each unit card has a status that updates its color badge in real time. Set the status by clicking the status selector on the unit card:

| Status         | Meaning                            |
| -------------- | ---------------------------------- |
| **Patrol**     | Unit is on active patrol           |
| **On Scene**   | Unit is at an active incident      |
| **Traffic**    | Unit is conducting a traffic stop  |
| **Assistance** | Unit is providing backup           |
| **Resting**    | Unit is temporarily out of service |

#### Removing officers from a unit <a href="#id-454179b9-bfe7-4f6e-9a19-9cc3192b1e90" id="id-454179b9-bfe7-4f6e-9a19-9cc3192b1e90"></a>

Click the remove icon next to an officer's name inside a unit card to return them to the online officers sidebar. They can then be reassigned to a different unit.

#### Deleting a unit <a href="#id-33440a50-561d-4ed3-8015-d658ad388cf2" id="id-33440a50-561d-4ed3-8015-d658ad388cf2"></a>

Open the unit's options and select **Delete Unit**. A confirmation dialog lists the unit name before proceeding. Deleting a unit does not remove the officers from the roster — they return to the online sidebar.

#### Department scoping <a href="#id-9d963e15-5d73-455d-ad53-01e9f64120c7" id="id-9d963e15-5d73-455d-ad53-01e9f64120c7"></a>

When `Config.DepartmentScopedData` is set to `true`, units are scoped to each department. Officers in MRPD can only see and manage MRPD units; officers in BCSO see BCSO units. Set it to `false` if you want all departments to share a single units board.

```lua
-- editable/config.lua
Config.DepartmentScopedData = true
```

***

### Roster and chain of command <a href="#c652e098-5cbb-4a18-8aca-3944246b9c79" id="c652e098-5cbb-4a18-8aca-3944246b9c79"></a>

The **Roster** page displays your department's chain of command. It is accessible only to officers with the boss or admin role, controlled by the `Config.PermissionsPageAccess` setting:

```lua
-- editable/config.lua
-- 'boss'  → Only job bosses can view / use this page
-- 'admin' → Only server admins can view / use this page
Config.PermissionsPageAccess = 'admin'
```

Each rank level is displayed with an icon that reflects its seniority. The icon set can be customized in `shared/internal_config.lua` if you want to adjust how rank levels are represented visually.
