Pick the method that suits you. All three write to the same config/permissions.json, and changes made in game apply instantly.
Admin panel
Management page
File
Server admins can edit every job, without needing a job themselves.
1
Open the admin panel
Run /mdtadmin in game and open Permissions.
2
Pick a job
Choose the job you want to edit. Only whitelisted jobs are listed.
3
Set the lowest grade
For each permission, choose the lowest grade that gets it. Higher grades inherit it automatically.
Editing a job's permissions in the admin panel
Department leaders can edit their own job from inside the MDT.
1
Open Management
Open the MDT and go to Management, then the Permissions tab. You need management.permissions.
2
Set the lowest grade
For each permission, choose the lowest grade that gets it.
The Permissions tab on the Management page
Officers with management.permissions.all can also edit other departments.
Edit config/permissions.json and restart the resource.To apply the change without a restart, call ReloadPermissions from the server console or another resource.
The file must stay valid JSON. A missing or trailing comma stops all permissions from loading.
When you whitelist a job in Access in the admin panel, you can copy the permissions of an existing job as a starting point. Then fine-tune them in Permissions.To do it by hand, add the job to Config.WhitelistedJobs, then copy the police block in config/permissions.json and rename it. The grade numbers must match the job’s grades in your framework.
Edit incident reports, charges, and involved parties.
incidents.delete
Permanently delete incident reports.
evidences.view
Browse evidence and its chain of custody.
evidences.create
Log new evidence items.
evidences.edit
Edit evidence details and transfer custody.
evidences.delete
Permanently delete evidence records.
evidences.lab
Request and complete lab analyses on evidence.
stash.edit
Manage stash contents linked to records.
officers.view
See the officer roster and profiles.
officers.manage
Edit officer details such as callsign and status.
bolos.view
See active BOLOs.
bolos.create
Issue new BOLOs.
bolos.edit
Edit existing BOLOs.
bolos.delete
Remove BOLOs.
dispatch.view
Open the dispatch board and live alerts.
dispatch.alert.delete
Dismiss dispatch alerts.
dispatch.assign
Assign officers to dispatch alerts.
dispatch.channel.create
Create dispatch radio channels.
dispatch.channel.connect
Connect officers to dispatch channels.
dispatch.channel.delete
Delete dispatch channels.
citizens.view
Search citizens and read their profiles.
citizens.register
Register new citizens.
citizens.edit
Edit citizen profiles.
citizens.license.grant
Grant licenses to citizens.
citizens.license.revoke
Revoke licenses from citizens.
citizens.license.points
Add or remove license points.
citizens.phone.records
Read a citizen’s phone records.
suspect.interact
Use suspect interactions such as cuff, search, and escort.
units.join
Join, leave, and start units, and set your unit’s zone.
units.supervise
Run every unit: move officers, set roles and statuses, merge units, page them, and send status checks.
gallery.edit
Add and remove gallery images.
notes.delete
Delete notes and HR notes written by others. Officers can always delete their own.
vehicles.view
Search vehicles and read their details.
vehicles.register
Register new vehicles.
vehicles.edit
Edit vehicle details and flags.
houses.view
Browse properties and owners.
houses.edit
Edit property details.
weapons.view
Browse registered weapons.
weapons.register
Register new weapons.
weapons.edit
Edit weapon details.
announcements.view
Read announcements.
announcements.create
Post new announcements.
announcements.update
Edit announcements.
announcements.delete
Delete announcements.
employees.view
See the employee roster.
employees.fire
Fire employees from the department.
employees.manage
Change employee ranks and details.
employees.leaderboard.all
See leaderboards across every department.
management.view
Open the Management page.
management.recruit
Recruit new employees.
management.permissions
Edit rank permissions of your own department.
management.permissions.all
Edit rank permissions of any department.
management.analytics.all
View analytics and finances of any department.
management.achievements
Create and edit achievements.
management.certifications
Create and edit certifications.
management.tags
Moderate and edit tags.
templates.view
Browse report templates.
templates.manage
Create, edit, and delete report templates.
logs.view
Read the audit logs.
penalcode.view
Read the penal code.
penalcode.create
Add penal code entries.
penalcode.update
Edit penal code entries.
penalcode.delete
Remove penal code entries.
prisoners.view
See who is in prison and how long they have left.
prisoners.release
Release prisoners before their sentence ends.
prisoners.edit
Change how long a prisoner still has to serve.
operationplans.view
Read operation plans.
operationplans.create
Draft new operation plans.
operationplans.update
Edit operation plans.
operationplans.delete
Delete operation plans.
warrants.view
Read warrants.
warrants.create
Issue new warrants.
warrants.edit
Edit warrants.
warrants.delete
Cancel and delete warrants.
radio.view
See radio channels and members.
radio.create
Create radio channels.
radio.update
Edit radio channels.
radio.delete
Delete radio channels.
radio.reassign
Move officers between radio channels.
radio.codes
Create, edit, and delete radio codes.
cameras.view
See the camera list.
cameras.create
Place new CCTV cameras.
cameras.delete
Remove cameras.
cameras.connect
Watch live camera feeds.
cameras.toggle
Switch cameras on and off.
props.use
Place officer props (cones, barriers…) and pick any of them back up.
k9.use
Command your own K9 from the interactions menu.
chat.pin
Pin chat messages.
chat.mention.everyone
Mention everyone in chat.
chat.command.post
Post announcements with chat commands.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Redutzu Docs","colors":{"primary":"#f91a9f","light":"#f91a9f","dark":"#f91a9f"},"logo":{"light":"https://mintcdn.com/redutzusscripts/jYySSRvwCjpWaAJk/logo/light.svg?fit=max\u0026auto=format\u0026n=jYySSRvwCjpWaAJk\u0026q=85\u0026s=ddbbce5b2bfa534e67a73a636802b681","dark":"https://mintcdn.com/redutzusscripts/jYySSRvwCjpWaAJk/logo/dark.svg?fit=max\u0026auto=format\u0026n=jYySSRvwCjpWaAJk\u0026q=85\u0026s=bb923cf837c75d7bd72289f4446b7e22"},"favicon":"https://mintcdn.com/redutzusscripts/jYySSRvwCjpWaAJk/icon.ico?fit=max\u0026auto=format\u0026n=jYySSRvwCjpWaAJk\u0026q=85\u0026s=3f5d61f44635749854ca81a7a2a43907","appearance":{"default":"system"},"background":{"color":{"light":"#ffffff","dark":"#0c0c0c"}},"navbar":{"links":[{"href":"https://redutzu.com","label":"Store"},{"href":"https://redutzu.com/support","label":"Support"}],"primary":{"type":"discord","label":"Join our Discord","href":"https://discord.gg/kJkNSYM9pt"}},"footer":{"socials":{"website":"https://redutzu.com/","discord":"https://discord.gg/kJkNSYM9pt","youtube":"https://www.youtube.com/@redutzu","github":"https://github.com/redutzu"}},"icons":{"library":"lucide"},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"redutzusscripts","hasAudioNarration":false,"actualSubdomain":"redutzusscripts","customDomains":["docs.redutzu.com"],"gitSource":{"type":"github","owner":"redutzu","repo":"docs.redutzu.com","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ae7e5eb66bac705926b50aa","collectionId":"159fe336-1e25-4fb6-8df4-abd150a5c14e","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae7e5eb66bac705926b50aa"},"entitlements":{"AI_CHAT":{"status":"DISABLED"}},"buildId":"6ae7e5eb66bac705926b50aa","clientVersion":"0.0.4045","searchFilterCounts":[{"language":"default","tag":"Redutzu-MDT","count":19},{"language":"default","tag":"Guides","count":10},{"language":"default","tag":"API Reference","count":5},{"language":"default","tag":"Exports","count":2},{"language":"default","tag":"Custom framework","count":2}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":".export-badge{display:inline-block;margin-left:8px;padding:1px 8px;border-radius:9999px;font-size:.75rem;font-weight:500;line-height:1.5;vertical-align:middle;white-space:nowrap}.export-hook{color:#fb923c;background:rgba(251,146,60,.1)}.export-server,.export-server-event{color:#818cf8;background:rgba(129,140,248,.1)}.export-client,.export-client-event{color:#2dd4bf;background:rgba(45,212,191,.1)}.export-server::after{content:\"Server\"}.export-client::after{content:\"Client\"}.export-server-event::after{content:\"Server event\"}.export-client-event::after{content:\"Client event\"}.export-hook::after{content:\"Hook\"}.pt{margin:1rem 0;border:1px solid rgba(127,127,127,.2);border-radius:12px;overflow-x:auto}.pt table{width:100%;margin:0;border-collapse:collapse;font-size:.875rem}.pt td,.pt th{padding:8px 14px}.pt th{text-align:left;font-weight:500;font-size:.8125rem;opacity:.6;background:rgba(127,127,127,.06);border-bottom:1px solid rgba(127,127,127,.2)}.pt td{vertical-align:top;border-bottom:1px solid rgba(127,127,127,.12)}.data-table tr:last-child td,.pt tr:last-child td{border-bottom:none}.data-table td:first-child,.data-table td:nth-child(2),.pt td:first-child,.pt td:nth-child(2){white-space:nowrap;width:1%}.pt-child td{background:rgba(127,127,127,.03)}.pt-name{display:inline-flex;align-items:center;gap:6px}.data-table code,.pt-name code{font-size:.8125rem}.pt-required{font-size:.6875rem;color:#f87171}.pt-toggle{display:inline-flex;align-items:center;gap:4px;padding:0;background:0 0;border:0;color:inherit;cursor:pointer}.pt-chevron{display:inline-block;width:10px;opacity:.6;transition:transform .15s}.pt-toggle[aria-expanded=true] .pt-chevron{transform:rotate(90deg)}.pt-branch,.pt-guide{position:relative;align-self:stretch;width:14px;flex:none;margin:-8px 0}.pt-branch::before,.pt-guide-line::before{content:\"\";position:absolute;left:6px;top:0;bottom:0;border-left:1px solid rgba(127,127,127,.35)}.pt-branch-last::before{bottom:50%}.pt-branch::after{content:\"\";position:absolute;left:6px;top:50%;width:8px;border-top:1px solid rgba(127,127,127,.35)}.pt-type{display:inline-block;padding:1px 6px;border-radius:6px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.75rem}.pt-string{color:#4ade80;background:rgba(74,222,128,.1)}.pt-number{color:#38bdf8;background:rgba(56,189,248,.1)}.pt-boolean{color:#c084fc;background:rgba(192,132,252,.1)}.pt-table{color:#fb7185;background:rgba(251,113,133,.1)}.pt-default{opacity:.7}.pt-link{text-decoration:none;border-bottom:1px dashed currentColor}.pt-link:hover{opacity:.8}.data-table{margin:1rem 0;border:1px solid rgba(127,127,127,.2);border-radius:10px;overflow:hidden}.data-table div{margin:0!important;padding:0!important;border:0!important;overflow:visible!important}.data-table table{width:100%!important;margin:0!important;border-collapse:collapse;font-size:.875rem}.data-table td,.data-table th{padding:10px 14px!important;text-align:left;vertical-align:top;border:0;border-bottom:1px solid rgba(127,127,127,.15)}.data-table td+td,.data-table th+th{border-left:1px solid rgba(127,127,127,.15)}.data-table th{font-weight:600;background:rgba(127,127,127,.08);border-bottom-color:rgba(127,127,127,.2)}"}],"page":{"pagePath":"redutzu-mdt/guides/permissions","slug":"/redutzu-mdt/guides/permissions","pageMetadata":{"title":"Permissions","description":"Control what each job and rank can do in the MDT.","icon":"shield-check","href":"/redutzu-mdt/guides/permissions"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Control what each job and rank can do in the MDT.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,li:`li`,ol:`ol`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{Accordion,CodeBlock,Frame,Heading,Note,OptimizedImage,Step,Steps,Tab,Table,Tabs,Tip,Warning}=_components;if(!Accordion)_missingMdxReference(`Accordion`,true);if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Frame)_missingMdxReference(`Frame`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Note)_missingMdxReference(`Note`,true);if(!OptimizedImage)_missingMdxReference(`OptimizedImage`,true);if(!Step)_missingMdxReference(`Step`,true);if(!Steps)_missingMdxReference(`Steps`,true);if(!Tab)_missingMdxReference(`Tab`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Tabs)_missingMdxReference(`Tabs`,true);if(!Tip)_missingMdxReference(`Tip`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[`Permissions decide what an officer can do once the MDT is open. They’re set per job and per grade, and saved in `,_jsx(_components.code,{children:`config/permissions.json`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`how-access-works`,children:`How access works`}),`\n`,_jsx(_components.p,{children:`Two checks decide what an officer can do. Both must pass.`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Whitelist:`}),` the officer’s job must be whitelisted. Without it, the MDT doesn’t open. See `,_jsx(_components.a,{href:`/redutzu-mdt/guides/departments`,children:`Departments`}),`.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Permission:`}),` the officer’s grade must have the permission for the action, such as `,_jsx(_components.code,{children:`incidents.create`}),` to file an incident.`]}),`\n`]}),`\n`,_jsx(_components.p,{children:`A whitelisted job with no permissions opens the MDT, but nothing in it unlocks.`}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[`Duty is a separate setting. With `,_jsx(_components.code,{children:`Config.RequireDuty`}),` on, officers must be on duty to open the MDT. It doesn’t change which permissions a grade has.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`grades-inherit-permissions`,children:`Grades inherit permissions`}),`\n`,_jsxs(_components.p,{children:[`A permission applies to its grade `,_jsx(_components.strong,{children:`and every grade above it`}),`. You never repeat a permission on higher grades.`]}),`\n`,_jsx(CodeBlock,{filename:`config/permissions.json`,numberOfLines:`7`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`7`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"police\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"0\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"dashboard.view\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"incidents.view\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"incidents.create\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`],`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"1\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"incidents.delete\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`],`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"4\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"management.view\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"management.permissions\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`]`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Grade`}),_jsx(_components.th,{children:`Create incidents`}),_jsx(_components.th,{children:`Delete incidents`}),_jsx(_components.th,{children:`Open Management`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:_jsx(_components.code,{children:`0`})}),_jsx(_components.td,{children:`Yes`}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{children:`No`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:_jsx(_components.code,{children:`1`})}),_jsx(_components.td,{children:`Yes`}),_jsx(_components.td,{children:`Yes`}),_jsx(_components.td,{children:`No`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:_jsx(_components.code,{children:`3`})}),_jsx(_components.td,{children:`Yes`}),_jsx(_components.td,{children:`Yes`}),_jsx(_components.td,{children:`No`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:_jsx(_components.code,{children:`4`})}),_jsx(_components.td,{children:`Yes`}),_jsx(_components.td,{children:`Yes`}),_jsx(_components.td,{children:`Yes`})]})]})]}),`\n`,_jsx(Tip,{children:_jsxs(_components.p,{children:[`Put each permission on the `,_jsx(_components.strong,{children:`lowest`}),` grade that should have it. Grade `,_jsx(_components.code,{children:`3`}),` above has no list of its own and still inherits everything below it.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`edit-permissions`,children:`Edit permissions`}),`\n`,_jsxs(_components.p,{children:[`Pick the method that suits you. All three write to the same `,_jsx(_components.code,{children:`config/permissions.json`}),`, and changes made in game apply instantly.`]}),`\n`,_jsxs(Tabs,{children:[_jsxs(Tab,{title:`Admin panel`,id:`admin-panel`,children:[_jsx(_components.p,{children:`Server admins can edit every job, without needing a job themselves.`}),_jsxs(Steps,{children:[_jsx(Step,{title:`Open the admin panel`,children:_jsxs(_components.p,{children:[`Run `,_jsx(_components.code,{children:`/mdtadmin`}),` in game and open `,_jsx(_components.strong,{children:`Permissions`}),`.`]})}),_jsx(Step,{title:`Pick a job`,children:_jsx(_components.p,{children:`Choose the job you want to edit. Only whitelisted jobs are listed.`})}),_jsx(Step,{title:`Set the lowest grade`,children:_jsx(_components.p,{children:`For each permission, choose the lowest grade that gets it. Higher grades inherit it automatically.`})})]}),_jsx(Frame,{caption:`Editing a job's permissions in the admin panel`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/redutzusscripts/jYySSRvwCjpWaAJk/images/guides/permissions-admin-panel.webp?fit=max\u0026auto=format\u0026n=jYySSRvwCjpWaAJk\u0026q=85\u0026s=0539268c9a74a45ef7cda3e06aa08892`,alt:`Permissions section of the admin panel with a job selected`,\"data-og-width\":`2560`,width:`2560`,\"data-og-height\":`1440`,height:`1440`,\"data-path\":`images/guides/permissions-admin-panel.webp`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/redutzusscripts/jYySSRvwCjpWaAJk/images/guides/permissions-admin-panel.webp?w=280\u0026fit=max\u0026auto=format\u0026n=jYySSRvwCjpWaAJk\u0026q=85\u0026s=e1d8b35bd4f6b21fd59842d4a40fc9ae 280w, https://mintcdn.com/redutzusscripts/jYySSRvwCjpWaAJk/images/guides/permissions-admin-panel.webp?w=560\u0026fit=max\u0026auto=format\u0026n=jYySSRvwCjpWaAJk\u0026q=85\u0026s=779ffcc45ce50acd9492d59eac4f0117 560w, https://mintcdn.com/redutzusscripts/jYySSRvwCjpWaAJk/images/guides/permissions-admin-panel.webp?w=840\u0026fit=max\u0026auto=format\u0026n=jYySSRvwCjpWaAJk\u0026q=85\u0026s=1c9b452bb83e9054e9d1a5bf9d4d00e4 840w, https://mintcdn.com/redutzusscripts/jYySSRvwCjpWaAJk/images/guides/permissions-admin-panel.webp?w=1100\u0026fit=max\u0026auto=format\u0026n=jYySSRvwCjpWaAJk\u0026q=85\u0026s=80f7f9ef25acef2f399b58d5e4317959 1100w, https://mintcdn.com/redutzusscripts/jYySSRvwCjpWaAJk/images/guides/permissions-admin-panel.webp?w=1650\u0026fit=max\u0026auto=format\u0026n=jYySSRvwCjpWaAJk\u0026q=85\u0026s=12fc3e381446d763c3cd7583c3a6c051 1650w, https://mintcdn.com/redutzusscripts/jYySSRvwCjpWaAJk/images/guides/permissions-admin-panel.webp?w=2500\u0026fit=max\u0026auto=format\u0026n=jYySSRvwCjpWaAJk\u0026q=85\u0026s=d18458c7537043321f049b5b2e9c1c3b 2500w`})})]}),_jsxs(Tab,{title:`Management page`,id:`management-page`,children:[_jsx(_components.p,{children:`Department leaders can edit their own job from inside the MDT.`}),_jsxs(Steps,{children:[_jsx(Step,{title:`Open Management`,children:_jsxs(_components.p,{children:[`Open the MDT and go to `,_jsx(_components.strong,{children:`Management`}),`, then the `,_jsx(_components.strong,{children:`Permissions`}),` tab. You need `,_jsx(_components.code,{children:`management.permissions`}),`.`]})}),_jsx(Step,{title:`Set the lowest grade`,children:_jsx(_components.p,{children:`For each permission, choose the lowest grade that gets it.`})})]}),_jsx(Frame,{caption:`The Permissions tab on the Management page`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/redutzusscripts/jYySSRvwCjpWaAJk/images/guides/permissions-management.webp?fit=max\u0026auto=format\u0026n=jYySSRvwCjpWaAJk\u0026q=85\u0026s=8352e9a468bfa0f1eb8189de052749a2`,alt:`Management page in the MDT with the Permissions tab open`,\"data-og-width\":`2560`,width:`2560`,\"data-og-height\":`1440`,height:`1440`,\"data-path\":`images/guides/permissions-management.webp`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/redutzusscripts/jYySSRvwCjpWaAJk/images/guides/permissions-management.webp?w=280\u0026fit=max\u0026auto=format\u0026n=jYySSRvwCjpWaAJk\u0026q=85\u0026s=72d8fce20fd424b3b7d5df64194a98c2 280w, https://mintcdn.com/redutzusscripts/jYySSRvwCjpWaAJk/images/guides/permissions-management.webp?w=560\u0026fit=max\u0026auto=format\u0026n=jYySSRvwCjpWaAJk\u0026q=85\u0026s=c88088d2d8c366e95516184fc52d143c 560w, https://mintcdn.com/redutzusscripts/jYySSRvwCjpWaAJk/images/guides/permissions-management.webp?w=840\u0026fit=max\u0026auto=format\u0026n=jYySSRvwCjpWaAJk\u0026q=85\u0026s=89415e96664ac70101d26729ee19134c 840w, https://mintcdn.com/redutzusscripts/jYySSRvwCjpWaAJk/images/guides/permissions-management.webp?w=1100\u0026fit=max\u0026auto=format\u0026n=jYySSRvwCjpWaAJk\u0026q=85\u0026s=f03cb7b803cbeac7262cf72c2524c038 1100w, https://mintcdn.com/redutzusscripts/jYySSRvwCjpWaAJk/images/guides/permissions-management.webp?w=1650\u0026fit=max\u0026auto=format\u0026n=jYySSRvwCjpWaAJk\u0026q=85\u0026s=57d70328ebb350717b8ed2980e2c4f4e 1650w, https://mintcdn.com/redutzusscripts/jYySSRvwCjpWaAJk/images/guides/permissions-management.webp?w=2500\u0026fit=max\u0026auto=format\u0026n=jYySSRvwCjpWaAJk\u0026q=85\u0026s=e5d50848177476f27b2c17b60086945b 2500w`})}),_jsxs(_components.p,{children:[`Officers with `,_jsx(_components.code,{children:`management.permissions.all`}),` can also edit other departments.`]})]}),_jsxs(Tab,{title:`File`,id:`file`,children:[_jsxs(_components.p,{children:[`Edit `,_jsx(_components.code,{children:`config/permissions.json`}),` and restart the resource.`]}),_jsxs(_components.p,{children:[`To apply the change without a restart, call `,_jsx(_components.a,{href:`/redutzu-mdt/api-reference/exports/server#reloadpermissions`,children:_jsx(_components.code,{children:`ReloadPermissions`})}),` from the server console or another resource.`]}),_jsx(Warning,{children:_jsx(_components.p,{children:`The file must stay valid JSON. A missing or trailing comma stops all permissions from loading.`})})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`add-a-new-job`,children:`Add a new job`}),`\n`,_jsxs(_components.p,{children:[`When you whitelist a job in `,_jsx(_components.strong,{children:`Access`}),` in the admin panel, you can copy the permissions of an existing job as a starting point. Then fine-tune them in `,_jsx(_components.strong,{children:`Permissions`}),`.`]}),`\n`,_jsxs(_components.p,{children:[`To do it by hand, add the job to `,_jsx(_components.code,{children:`Config.WhitelistedJobs`}),`, then copy the `,_jsx(_components.code,{children:`police`}),` block in `,_jsx(_components.code,{children:`config/permissions.json`}),` and rename it. The grade numbers must match the job’s grades in your framework.`]}),`\n`,_jsx(CodeBlock,{filename:`config/permissions.json`,numberOfLines:`4`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`4`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"police\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: { `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"0\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"dashboard.view\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"incidents.view\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`] },`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"sheriff\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: { `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"0\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"dashboard.view\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"incidents.view\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`] }`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsx(Heading,{level:`2`,id:`your-own-permissions`,children:`Your own permissions`}),`\n`,_jsxs(_components.p,{children:[`A permission is just a string. Your own pages and scripts can use new ones, such as `,_jsx(_components.code,{children:`wiki.view`}),`.`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`Add it to a grade in `,_jsx(_components.code,{children:`config/permissions.json`}),`, like any built-in permission. The in-game editors only list built-in permissions.`]}),`\n`,_jsxs(_components.li,{children:[`Use your own prefix, such as `,_jsx(_components.code,{children:`myplugin.view`}),`, so it never clashes with a built-in permission.`]}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`To check a permission from your own server script, use `,_jsx(_components.a,{href:`/redutzu-mdt/api-reference/exports/server#hasaccess`,children:_jsx(_components.code,{children:`HasAccess`})}),`. It checks the whitelist and the permission together.`]}),`\n`,_jsx(CodeBlock,{filename:`server.lua`,numberOfLines:`1`,language:`lua`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`lua`,children:_jsxs(_components.code,{language:`lua`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`local`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` allowed`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` exports`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`[`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'redutzu-mdt'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`]:`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:`HasAccess`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`source`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'myplugin.view'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, { `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`duty`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` true`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` })`})]}),`\n`]})})}),`\n`,_jsx(Heading,{level:`2`,id:`all-permissions`,children:`All permissions`}),`\n`,_jsx(Accordion,{title:`Built-in permissions`,icon:`list`,id:`built-in-permissions`,children:_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Permission`}),_jsx(_components.th,{children:`What it allows`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`dashboard.view`})}),_jsx(_components.td,{children:`See the dashboard overview and statistics.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`incidents.view`})}),_jsx(_components.td,{children:`Open the incident list and read incident reports.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`incidents.create`})}),_jsx(_components.td,{children:`File new incident reports.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`incidents.update`})}),_jsx(_components.td,{children:`Edit incident reports, charges, and involved parties.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`incidents.delete`})}),_jsx(_components.td,{children:`Permanently delete incident reports.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`evidences.view`})}),_jsx(_components.td,{children:`Browse evidence and its chain of custody.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`evidences.create`})}),_jsx(_components.td,{children:`Log new evidence items.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`evidences.edit`})}),_jsx(_components.td,{children:`Edit evidence details and transfer custody.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`evidences.delete`})}),_jsx(_components.td,{children:`Permanently delete evidence records.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`evidences.lab`})}),_jsx(_components.td,{children:`Request and complete lab analyses on evidence.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`stash.edit`})}),_jsx(_components.td,{children:`Manage stash contents linked to records.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`officers.view`})}),_jsx(_components.td,{children:`See the officer roster and profiles.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`officers.manage`})}),_jsx(_components.td,{children:`Edit officer details such as callsign and status.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`bolos.view`})}),_jsx(_components.td,{children:`See active BOLOs.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`bolos.create`})}),_jsx(_components.td,{children:`Issue new BOLOs.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`bolos.edit`})}),_jsx(_components.td,{children:`Edit existing BOLOs.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`bolos.delete`})}),_jsx(_components.td,{children:`Remove BOLOs.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`dispatch.view`})}),_jsx(_components.td,{children:`Open the dispatch board and live alerts.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`dispatch.alert.delete`})}),_jsx(_components.td,{children:`Dismiss dispatch alerts.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`dispatch.assign`})}),_jsx(_components.td,{children:`Assign officers to dispatch alerts.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`dispatch.channel.create`})}),_jsx(_components.td,{children:`Create dispatch radio channels.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`dispatch.channel.connect`})}),_jsx(_components.td,{children:`Connect officers to dispatch channels.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`dispatch.channel.delete`})}),_jsx(_components.td,{children:`Delete dispatch channels.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`citizens.view`})}),_jsx(_components.td,{children:`Search citizens and read their profiles.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`citizens.register`})}),_jsx(_components.td,{children:`Register new citizens.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`citizens.edit`})}),_jsx(_components.td,{children:`Edit citizen profiles.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`citizens.license.grant`})}),_jsx(_components.td,{children:`Grant licenses to citizens.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`citizens.license.revoke`})}),_jsx(_components.td,{children:`Revoke licenses from citizens.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`citizens.license.points`})}),_jsx(_components.td,{children:`Add or remove license points.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`citizens.phone.records`})}),_jsx(_components.td,{children:`Read a citizen’s phone records.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`suspect.interact`})}),_jsx(_components.td,{children:`Use suspect interactions such as cuff, search, and escort.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`units.join`})}),_jsx(_components.td,{children:`Join, leave, and start units, and set your unit’s zone.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`units.supervise`})}),_jsx(_components.td,{children:`Run every unit: move officers, set roles and statuses, merge units, page them, and send status checks.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`gallery.edit`})}),_jsx(_components.td,{children:`Add and remove gallery images.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`notes.delete`})}),_jsx(_components.td,{children:`Delete notes and HR notes written by others. Officers can always delete their own.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`vehicles.view`})}),_jsx(_components.td,{children:`Search vehicles and read their details.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`vehicles.register`})}),_jsx(_components.td,{children:`Register new vehicles.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`vehicles.edit`})}),_jsx(_components.td,{children:`Edit vehicle details and flags.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`houses.view`})}),_jsx(_components.td,{children:`Browse properties and owners.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`houses.edit`})}),_jsx(_components.td,{children:`Edit property details.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`weapons.view`})}),_jsx(_components.td,{children:`Browse registered weapons.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`weapons.register`})}),_jsx(_components.td,{children:`Register new weapons.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`weapons.edit`})}),_jsx(_components.td,{children:`Edit weapon details.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`announcements.view`})}),_jsx(_components.td,{children:`Read announcements.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`announcements.create`})}),_jsx(_components.td,{children:`Post new announcements.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`announcements.update`})}),_jsx(_components.td,{children:`Edit announcements.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`announcements.delete`})}),_jsx(_components.td,{children:`Delete announcements.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`employees.view`})}),_jsx(_components.td,{children:`See the employee roster.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`employees.fire`})}),_jsx(_components.td,{children:`Fire employees from the department.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`employees.manage`})}),_jsx(_components.td,{children:`Change employee ranks and details.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`employees.leaderboard.all`})}),_jsx(_components.td,{children:`See leaderboards across every department.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`management.view`})}),_jsx(_components.td,{children:`Open the Management page.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`management.recruit`})}),_jsx(_components.td,{children:`Recruit new employees.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`management.permissions`})}),_jsx(_components.td,{children:`Edit rank permissions of your own department.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`management.permissions.all`})}),_jsx(_components.td,{children:`Edit rank permissions of any department.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`management.analytics.all`})}),_jsx(_components.td,{children:`View analytics and finances of any department.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`management.achievements`})}),_jsx(_components.td,{children:`Create and edit achievements.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`management.certifications`})}),_jsx(_components.td,{children:`Create and edit certifications.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`management.tags`})}),_jsx(_components.td,{children:`Moderate and edit tags.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`templates.view`})}),_jsx(_components.td,{children:`Browse report templates.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`templates.manage`})}),_jsx(_components.td,{children:`Create, edit, and delete report templates.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`logs.view`})}),_jsx(_components.td,{children:`Read the audit logs.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`penalcode.view`})}),_jsx(_components.td,{children:`Read the penal code.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`penalcode.create`})}),_jsx(_components.td,{children:`Add penal code entries.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`penalcode.update`})}),_jsx(_components.td,{children:`Edit penal code entries.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`penalcode.delete`})}),_jsx(_components.td,{children:`Remove penal code entries.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`prisoners.view`})}),_jsx(_components.td,{children:`See who is in prison and how long they have left.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`prisoners.release`})}),_jsx(_components.td,{children:`Release prisoners before their sentence ends.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`prisoners.edit`})}),_jsx(_components.td,{children:`Change how long a prisoner still has to serve.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`operationplans.view`})}),_jsx(_components.td,{children:`Read operation plans.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`operationplans.create`})}),_jsx(_components.td,{children:`Draft new operation plans.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`operationplans.update`})}),_jsx(_components.td,{children:`Edit operation plans.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`operationplans.delete`})}),_jsx(_components.td,{children:`Delete operation plans.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`warrants.view`})}),_jsx(_components.td,{children:`Read warrants.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`warrants.create`})}),_jsx(_components.td,{children:`Issue new warrants.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`warrants.edit`})}),_jsx(_components.td,{children:`Edit warrants.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`warrants.delete`})}),_jsx(_components.td,{children:`Cancel and delete warrants.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`radio.view`})}),_jsx(_components.td,{children:`See radio channels and members.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`radio.create`})}),_jsx(_components.td,{children:`Create radio channels.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`radio.update`})}),_jsx(_components.td,{children:`Edit radio channels.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`radio.delete`})}),_jsx(_components.td,{children:`Delete radio channels.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`radio.reassign`})}),_jsx(_components.td,{children:`Move officers between radio channels.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`radio.codes`})}),_jsx(_components.td,{children:`Create, edit, and delete radio codes.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`cameras.view`})}),_jsx(_components.td,{children:`See the camera list.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`cameras.create`})}),_jsx(_components.td,{children:`Place new CCTV cameras.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`cameras.delete`})}),_jsx(_components.td,{children:`Remove cameras.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`cameras.connect`})}),_jsx(_components.td,{children:`Watch live camera feeds.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`cameras.toggle`})}),_jsx(_components.td,{children:`Switch cameras on and off.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`props.use`})}),_jsx(_components.td,{children:`Place officer props (cones, barriers…) and pick any of them back up.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`k9.use`})}),_jsx(_components.td,{children:`Command your own K9 from the interactions menu.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`chat.pin`})}),_jsx(_components.td,{children:`Pin chat messages.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`chat.mention.everyone`})}),_jsx(_components.td,{children:`Mention everyone in chat.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`chat.command.post`})}),_jsx(_components.td,{children:`Post announcements with chat commands.`})]})]})]})})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Permissions","description":"Control what each job and rank can do in the MDT.","icon":"shield-check","href":"/redutzu-mdt/guides/permissions"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"How access works","slug":"how-access-works","depth":2,"children":[]},{"title":"Grades inherit permissions","slug":"grades-inherit-permissions","depth":2,"children":[]},{"title":"Edit permissions","slug":"edit-permissions","depth":2,"children":[]},{"title":"Add a new job","slug":"add-a-new-job","depth":2,"children":[]},{"title":"Your own permissions","slug":"your-own-permissions","depth":2,"children":[]},{"title":"All permissions","slug":"all-permissions","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"redutzusscripts","siteName":"Redutzu Docs","title":"Permissions - Redutzu Docs","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-02T01:22:57.975Z","originalFileLocation":"redutzu-mdt/guides/permissions.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Control what each job and rank can do in the MDT.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Redutzu Docs\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/redutzusscripts/SKMW-9A5EQwn6y2V/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/redutzusscripts/SKMW-9A5EQwn6y2V/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/redutzusscripts/SKMW-9A5EQwn6y2V/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/redutzusscripts/SKMW-9A5EQwn6y2V/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/redutzusscripts/SKMW-9A5EQwn6y2V/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/redutzusscripts/SKMW-9A5EQwn6y2V/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/redutzusscripts/SKMW-9A5EQwn6y2V/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/redutzusscripts/SKMW-9A5EQwn6y2V/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/redutzusscripts/SKMW-9A5EQwn6y2V/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Permissions - Redutzu Docs\">\u003cmeta data-mint-head property=\"og:description\" content=\"Control what each job and rank can do in the MDT.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Redutzu Docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.redutzu.com/redutzu-mdt/guides/permissions\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://redutzusscripts.mintlify.app/_mintlify/api/og/v2?division=Guides\u0026amp;title=Permissions\u0026amp;description=Control+what+each+job+and+rank+can+do+in+the+MDT.\u0026amp;theme=7c4a6c7ecaaa71bf79311115\u0026amp;signature=cbff276a95f0422a1e092ac513412b2bd8d9a493223e15da2d6d5c6d5566cfa9\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Permissions - Redutzu Docs\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Control what each job and rank can do in the MDT.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://redutzusscripts.mintlify.app/_mintlify/api/og/v2?division=Guides\u0026amp;title=Permissions\u0026amp;description=Control+what+each+job+and+rank+can+do+in+the+MDT.\u0026amp;theme=7c4a6c7ecaaa71bf79311115\u0026amp;signature=cbff276a95f0422a1e092ac513412b2bd8d9a493223e15da2d6d5c6d5566cfa9\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/redutzusscripts/SKMW-9A5EQwn6y2V/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Redutzu Docs\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#f91a9f\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.redutzu.com/redutzu-mdt/guides/permissions\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/redutzu-mdt/guides/permissions.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.redutzu.com/#organization\",\"name\":\"Redutzu Docs\",\"url\":\"https://docs.redutzu.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/redutzusscripts/jYySSRvwCjpWaAJk/logo/light.svg?fit=max\u0026auto=format\u0026n=jYySSRvwCjpWaAJk\u0026q=85\u0026s=ddbbce5b2bfa534e67a73a636802b681\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.redutzu.com#website\",\"name\":\"Redutzu Docs\",\"url\":\"https://docs.redutzu.com\",\"publisher\":{\"@id\":\"https://docs.redutzu.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.redutzu.com/redutzu-mdt/guides/permissions#webpage\",\"url\":\"https://docs.redutzu.com/redutzu-mdt/guides/permissions\",\"name\":\"Permissions\",\"description\":\"Control what each job and rank can do in the MDT.\",\"dateModified\":\"2026-11-02T01:22:57.975Z\",\"isPartOf\":{\"@id\":\"https://docs.redutzu.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.redutzu.com/redutzu-mdt/guides/permissions#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.redutzu.com/redutzu-mdt/guides/permissions#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Redutzu-MDT\",\"item\":\"https://docs.redutzu.com/redutzu-mdt/index\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Permissions\",\"item\":\"https://docs.redutzu.com/redutzu-mdt/guides/permissions\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.redutzu.com/redutzu-mdt/guides/permissions#article\",\"headline\":\"Permissions\",\"name\":\"Permissions\",\"description\":\"Control what each job and rank can do in the MDT.\",\"url\":\"https://docs.redutzu.com/redutzu-mdt/guides/permissions\",\"mainEntityOfPage\":{\"@id\":\"https://docs.redutzu.com/redutzu-mdt/guides/permissions#webpage\"},\"dateModified\":\"2026-11-02T01:22:57.975Z\",\"publisher\":{\"@id\":\"https://docs.redutzu.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.redutzu.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Redutzu Docs\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Redutzu Docs","nav":{"global":null,"pages":[{"title":"Introduction","icon":"sparkles","href":"/index"},{"group":"Redutzu-MDT","pages":[{"title":"Redutzu-MDT","sidebarTitle":"Overview","icon":"monitor-smartphone","href":"/redutzu-mdt/index"},{"title":"Installation","icon":"download","href":"/redutzu-mdt/installation"},{"title":"Configuration","description":"Configure redutzu-mdt in-game with the admin panel.","icon":"settings","href":"/redutzu-mdt/configuration"},{"group":"Guides","icon":"map","pages":[{"title":"Permissions","icon":"shield-check","href":"/redutzu-mdt/guides/permissions"},{"title":"Departments","description":"Run several departments in one MDT, and decide which records each one can see.","icon":"building-2","href":"/redutzu-mdt/guides/departments"},{"title":"Media uploads","icon":"cloud-upload","href":"/redutzu-mdt/guides/media-uploads"},{"title":"Logs","icon":"scroll-text","href":"/redutzu-mdt/guides/logs"},{"title":"Localization","icon":"languages","href":"/redutzu-mdt/guides/localization"},{"title":"Pages","icon":"panels-top-left","href":"/redutzu-mdt/guides/custom-pages"},{"title":"Citizens and vehicles","icon":"id-card","href":"/redutzu-mdt/guides/citizen-registration"},{"title":"CCTV cameras","icon":"cctv","href":"/redutzu-mdt/guides/cctv-cameras"},{"group":"Custom framework","icon":"plug","pages":[{"title":"Client","icon":"monitor","href":"/redutzu-mdt/guides/custom-framework/client"},{"title":"Server","icon":"server","href":"/redutzu-mdt/guides/custom-framework/server"}]}]},{"group":"API Reference","icon":"book-open","pages":[{"group":"Exports","icon":"code","pages":[{"title":"Client exports","sidebarTitle":"Client","icon":"monitor","href":"/redutzu-mdt/api-reference/exports/client"},{"title":"Server exports","sidebarTitle":"Server","icon":"server","href":"/redutzu-mdt/api-reference/exports/server"}]},{"title":"Events","icon":"radio","href":"/redutzu-mdt/api-reference/events"},{"title":"Hooks","icon":"webhook","href":"/redutzu-mdt/api-reference/hooks"},{"title":"Statebags","icon":"database","href":"/redutzu-mdt/api-reference/statebags"}]},{"title":"Changelog","icon":"history","href":"/redutzu-mdt/changelog"}]}]},"basePath":"","title":"Permissions - Redutzu Docs","buildId":"dpl_36EDyZCDfRuoUD9af5CH4M1bqY2h","deploymentId":"dpl_36EDyZCDfRuoUD9af5CH4M1bqY2h","dynamics":["07c022d89b","a74be98ba7"],"chunks":["Frame-DW6UFrUy.js","DynamicMarkdown-B62XqCSI.js","zoom-image-lightbox-eHyQ0tlO.js","lightbox-handle-r17bVUz3.js"]}