> For the complete documentation index, see [llms.txt](https://theobsidianstudio-1.gitbook.io/theobsidianstudio-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://theobsidianstudio-1.gitbook.io/theobsidianstudio-docs/assets/obs_adminmenu/permissions-and-staff.md).

# PERMISSIONS & STAFF

## 🔓 Permissions & Zero-Trust Security

### 🛡️ Security Clearance & Identity Verification

OBS Admin utilizes a rigid, Zero-Trust security model. No user is granted access by default. Before interacting with the interface, you must authorize specific digital identities. Open `shared/config.lua` and locate the `Config.Admins` table.

```lua
Config.IdentifierType = 'license' -- Options: 'license', 'discord'

Config.Admins = {
    ['license:YOUR_ROCKSTAR_LICENSE_HERE'] = { rank = 'superadmin', name = 'Your Name' },
}
```

{% hint style="info" %}
Your assigned rank here must perfectly match a group defined within the `Config.Groups` hierarchy (e.g., superadmin, admin, moderator, helper). This hierarchy dictates the mathematical weight of their authority.
{% endhint %}

***

### 🔐 Granular Access Control Matrices

OBS Admin provides enterprise-grade access control, allowing you to fine-tune your staff's capabilities. Every single action within the ecosystem can be restricted to specific staff tiers, preventing lower-level moderators from executing destructive commands.

Modify the `Config.Permissions` matrix to adjust your administrative power mapping:

```lua
Config.Permissions = {
    ban           = 'moderator', -- Only moderators and above can execute bans
    unban         = 'admin',     -- Only admins and above can reverse bans
    staffchat     = 'helper',    -- Helpers can communicate in staff chat
    viewscreen    = 'superadmin',-- Only superadmins can spectate raw framebuffers
}
```

***

### 👔 Dynamic Appearance Engine (On-Duty)

When staff trigger their On-Duty state (**F9**), the system can seamlessly mutate their physical avatar to immediately signal authority and presence to the player base.

* **Override Ped Model:** Set `Config.StaffPedModel = 's_m_y_cop_01'` to instantly transmorph the administrator into a specific, recognizable ped.
* **Dynamic Clothing Injection:** If `Config.StaffPedModel` remains `nil`, the system intelligently injects the premium clothing components defined in `Config.StaffClothing` directly onto their existing character model, preserving their face and genetics while overlaying an authoritative uniform.

***

### 💬 Encrypted Staff Communications

Administrators can establish secure, rapid-response communications using the `/sc` (Staff Chat) protocol. The visual branding of this private channel is highly customizable to ensure it stands out during chaotic server events:

```lua
Config.StaffChatPrefix = '[STAFF]'
Config.StaffChatColor  = { r = 59, g = 130, b = 246 } -- Hex #3b82f6 translation
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://theobsidianstudio-1.gitbook.io/theobsidianstudio-docs/assets/obs_adminmenu/permissions-and-staff.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
