> ## Documentation Index
> Fetch the complete documentation index at: https://pure.saauf.xyz/llms.txt
> Use this file to discover all available pages before exploring further.

# Trace Roles and Permissions: Hierarchy and Access Control

> Manage staff access in Trace with a numeric role hierarchy, granular permission groups, and optional Roblox Group integration for automatic assignment.

Trace uses a role-based permission system to control which staff members can access which features. Roles form a numeric hierarchy - higher levels outrank lower ones - and every permission check runs server-side so client-side workarounds have no effect.

<Warning>
  Disabling the **Admin Panel** via Global Systems removes access for **all** staff, including the Experience Owner. If you lock yourself out, edit `TraceConfig` in `ServerScriptService` to re-enable the admin panel, then republish.
</Warning>

## Built-In Roles

Two roles are permanent and cannot be removed or modified:

| Role                 | Level | Description                                                                                                       |
| -------------------- | ----- | ----------------------------------------------------------------------------------------------------------------- |
| **Experience Owner** | 1000  | Full access to every feature and setting. Only the Experience Owner can create, edit, or delete role definitions. |
| **Player**           | 0     | All authenticated users start here. Access is limited to the Help System and Report System only.                  |

## Default Staff Hierarchy

Trace ships with a ready-to-use staff hierarchy. You can rename, reorder, or remove any of these default roles - only the two built-in roles above are permanent.

| Role             | Level |
| ---------------- | ----- |
| Admin            | 400   |
| Manager          | 300   |
| Senior Moderator | 200   |
| Moderator        | 100   |
| Reviewer         | 50    |

**Rule:** staff can only manage players and assign roles that sit at a level strictly below their own. A Moderator (100) cannot edit the Senior Moderator role (200) or act on another Moderator (100).

Only the **Experience Owner** (level 1000) can create new role definitions, edit existing ones, or delete roles from the system.

## Roblox Group Integration

Any role can optionally inherit membership from a Roblox Group. When group integration is configured, any player who is a member of the specified group at or above the configured minimum rank is automatically granted that role in Trace.

<Steps>
  <Step title="Open Settings → Roles">
    Navigate to **Settings** in the admin panel, then open the **Roles** tab.
  </Step>

  <Step title="Edit the target role">
    Select the role you want to link to a Roblox Group.
  </Step>

  <Step title="Enable Group Integration">
    Toggle **Roblox Group Integration** and enter your Group ID.
  </Step>

  <Step title="Set the minimum rank">
    Enter the minimum Roblox Group rank required. Members at or above this rank receive the Trace role automatically.
  </Step>
</Steps>

This means you can manage your entire moderation team through Roblox Group ranks and have Trace stay in sync automatically.

## Permission Groups

Permissions are organized into groups. The **Experience Owner** assigns a set of enabled permission groups to each role. Staff with that role gain access to all features covered by those groups.

<Accordion title="Panel Access">
  Controls whether a staff member can open the Trace admin panel at all. Disabling this hides the launcher entirely.
</Accordion>

<Accordion title="Review">
  Access to the Detections and Replays sections. Staff with this permission can review anticheat evidence but may not have permission to take moderation action.
</Accordion>

<Accordion title="Audit & Records">
  Access to the Logs section and full audit trail. Required for compliance reviews or internal investigations.
</Accordion>

<Accordion title="Communication">
  Access to Trace Chat (cross-server staff messaging) and the ability to send server-wide announcements.
</Accordion>

<Accordion title="Reports">
  Access to the Reports section for handling player-submitted help requests. Includes the in-panel Teleport button to reach reporting players.
</Accordion>

<Accordion title="Servers">
  Access to the Servers section for cross-server presence and server management tools.
</Accordion>

<Accordion title="Player Systems">
  Access to player profiles, player notes, and the ability to view player history. **Manage Player** is a single toggle under this group with granular disclosure controls - you can allow a role to view player history without granting the ability to issue warns, kicks, or bans.
</Accordion>

<Accordion title="Administration">
  Access to the Settings section, role management, and system-level configuration. Restrict this to your most trusted staff.
</Accordion>

## Global Systems

Global Systems let you switch entire features on or off for **everyone** in the experience - regardless of individual role permissions. These toggles override role-level access.

| System                | When disabled                                                    |
| --------------------- | ---------------------------------------------------------------- |
| **Help**              | Players cannot submit `/help` or `!help` requests                |
| **Reports**           | The Reports section is hidden and submissions are blocked        |
| **Trace Chat**        | Cross-server staff chat is disabled                              |
| **Inspect Mode**      | Clicking players in-world no longer opens Trace profiles         |
| **Replays**           | Replay recording and viewing are fully disabled                  |
| **Detections**        | Anticheat monitoring stops; no new detection events are recorded |
| **Announcements**     | Server-wide announcements cannot be sent                         |
| **Server Management** | The Servers section and server control tools are hidden          |
| **Moderation**        | All warn, kick, and ban actions are blocked regardless of role   |

<Note>
  Navigation items that a staff member's role cannot access are hidden from the sidebar automatically. The server also re-validates every submitted action - hidden navigation is a UX convenience, not the security boundary.
</Note>

## How Permissions Are Evaluated

When a staff member performs any action, Trace evaluates:

1. **Global Systems** - is the relevant system enabled?
2. **Role level** - does the staff member outrank the target player?
3. **Permission group** - does the staff member's role include the required permission?

All three checks must pass for an action to proceed. If any check fails, the action is rejected server-side regardless of how the request was submitted.
