This event will be called when a player with admin permissions runs the /link command to link a system to a new device. The event will include the position and entity id of the device as well as the request ID as parameters. When receiving this information you should send back the data about the object either near/at that location or with that entity ID. See examples below for details.
AddEventHandler("SonoranScripts::PowerGrid::RegisterNewDevice", function(coords, entityID, requestID) -- Get the correct system TriggerEvent("SonoranScripts::PowerGrid::NewDevice", "internal device identifier", "internal script identifier", requestID)end)
Below is an example of how registration is done within our Traffic Camera Script:
AddEventHandler("SonoranScripts::PowerGrid::RegisterNewDevice", function(coords, entityID, requestID) for _, v in pairs(cameraDatabase) do if v.entityObject == entityID then TriggerEvent("SonoranScripts::PowerGrid::NewDevice", v.ID, "trafficcams", requestID) end endend)
The entity ID field may be nil if the player does not aim directly at the device. You may want to run a check if you have a device in a small area surrounding the target if the entity ID is nil.
When a power system is disabled an event will be triggered that contains a table of internal script identifiers that map to a table of internal IDs of devices that are affected by the system that was disabled. An example from the Sonoran Traffic Camera script is available below:
RegisterNetEvent("SonoranScripts::PowerGrid::DeviceDisabled", function(affectedDevices) for _, v in pairs(affectedDevices["trafficcams"]) do cameraDatabase[tostring(v.ID)].disabled = true end TriggerClientEvent(GetCurrentResourceName() .. "::UpdateDB", -1, cameraDatabase)end)
The event above and the one below must use the RegisterNetEvent native, this is to avoid possible issues believed to be caused by resource load order in the server.cfg
When a power system is repaired a similar event will be triggered an example from the same script is below:
RegisterNetEvent("SonoranScripts::PowerGrid::DeviceRepaired", function(affectedDevices) for _, v in pairs(affectedDevices["trafficcams"]) do cameraDatabase[tostring(v.ID)].disabled = false end TriggerClientEvent(GetCurrentResourceName() .. "::UpdateDB", -1, cameraDatabase)end)
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Sonoran Software Documentation","colors":{"primary":"#1D7DCF","light":"#3297ED","dark":"#1465AA"},"logo":{"light":"https://docs-assets.sonoransoftware.com/sha256/a8/a8af14e6458cb682c1c8d33ca8b56d25dcd5999b2589e0de14b2be9f8dbe20a5.png","dark":"https://docs-assets.sonoransoftware.com/sha256/0b/0be9cc0ac8f90ee8aa8607653b830270c319a8ebe0c9051d1d2c7a79fb5453ab.png","href":"/"},"favicon":"https://docs-assets.sonoransoftware.com/sha256/1d/1d3aaa7393e84144f39bad7742c218a4f1db8e0ceb6f330d69f2e9bc92629df4.png","navbar":{"links":[{"href":"https://support.sonoransoftware.com","label":"Support"},{"href":"https://sonoransoftware.com","label":"Website"}]},"footer":{"socials":{"discord":"https://discord.sonoransoftware.com/","x":"https://x.com/Sonoran_SW","instagram":"https://www.instagram.com/sonoransoftware","youtube":"https://www.youtube.com/channel/UC-IfsakmGGmPrG8qcV3VVsA"},"links":[{"header":"Support","items":[{"label":"Customer Support","href":"https://support.sonoransoftware.com/"}]},{"header":"Policies","items":[{"label":"Refund and Purchase Policy","href":"/policy/policy/refund-and-purchase-policy"},{"label":"Terms of Service","href":"/policy/policy/terms-of-service"},{"label":"Privacy Policy","href":"/policy/policy/privacy-policy"}]}]},"seo":{"metatags":{"canonical":"https://docs.sonoransoftware.com"},"indexing":"all"},"styling":{"latex":true},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"sonoran-software-systems","hasAudioNarration":false,"actualSubdomain":"sonoran-software-systems","customDomains":["docs.sonoransoftware.com"],"gitSource":{"type":"github","owner":"sonoran-software","repo":"sonoran-documentation","deployBranch":"master","contentDirectory":"mintlify","isPrivate":false,"mountPath":"","label":""},"entitlements":{"AI_CHAT":{"status":"DISABLED"},"WEB_MCP":{"status":"DISABLED"},"NARRATION":{"status":"DISABLED"}},"buildId":"6aefca88ff56dc66d2b81dbb","clientVersion":"0.0.4094","searchFilterCounts":[{"language":"default","tag":"CAD","count":256},{"language":"default","tag":"Integration Capabilities","count":247},{"language":"default","tag":"📖 API Integration","count":193},{"language":"default","tag":"CMS","count":166},{"language":"default","tag":"Tutorials","count":136},{"language":"default","tag":"General","count":124},{"language":"default","tag":"Radio","count":104},{"language":"default","tag":"v2 API Endpoints","count":96},{"language":"default","tag":"Store","count":78},{"language":"default","tag":"Developer API Documentation","count":65}]},"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":"rbac-expansion","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":"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":"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":"editor-metadata","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},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"comment-mode","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":"#content-area img{max-width:100%;height:auto}iframe{border:0}footer a{white-space:normal;text-overflow:clip}#assistant-entry,#assistant-entry-mobile,#chat-assistant-sheet,#ask-assistant-code-block-button{display:none!important}"}],"page":{"pagePath":"store/power-grid/advanced-documentation","slug":"/store/power-grid/advanced-documentation","pageMetadata":{"title":"Advanced Documentation","description":null,"href":"/store/power-grid/advanced-documentation"},"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`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,..._provideComponents(),...props.components},{CodeBlock,Heading,Warning}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`In this documentation you’ll find information on integrating your scripts with the Power Grid system from Sonoran.`}),`\n`,_jsx(Warning,{children:_jsx(_components.p,{children:`All events listed here are server side.`})}),`\n`,_jsx(Heading,{level:`3`,id:`registration-event`,children:`Registration Event`}),`\n`,_jsxs(_components.p,{children:[`This event will be called when a player with admin permissions runs the `,_jsx(_components.code,{children:`/link`}),` command to link a system to a new device. The event will include the position and entity id of the device as well as the request ID as parameters. When receiving this information you should send back the data about the object either near/at that location or with that entity ID. See examples below for details.`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`4`,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:`4`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:`AddEventHandler`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"SonoranScripts::PowerGrid::RegisterNewDevice\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`function`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`coords`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`entityID`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`requestID`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`\t-- Get the correct system`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:` TriggerEvent`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"SonoranScripts::PowerGrid::NewDevice\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"internal device identifier\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"internal script identifier\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`requestID`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`end`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`Below is an example of how registration is done within our `,_jsx(_components.a,{href:`/store/speed-camera`,children:`Traffic Camera`}),` Script:`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`7`,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:`7`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:`AddEventHandler`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"SonoranScripts::PowerGrid::RegisterNewDevice\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`function`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`coords`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`entityID`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`requestID`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`\tfor`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` _`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`v`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` in`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:` pairs`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`cameraDatabase`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`) `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`do`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` \tif`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` v`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:`entityObject`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` ==`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` entityID`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` then`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:` \tTriggerEvent`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"SonoranScripts::PowerGrid::NewDevice\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`v`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:`ID`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"trafficcams\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`requestID`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` end`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` end`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`end`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`]})})}),`\n`,_jsx(Warning,{children:_jsx(_components.p,{children:`The entity ID field may be nil if the player does not aim directly at the device. You may want to run a check if you have a device in a small area surrounding the target if the entity ID is nil.`})}),`\n`,_jsx(_components.p,{children:`When a power system is disabled an event will be triggered that contains a table of internal script identifiers that map to a table of internal IDs of devices that are affected by the system that was disabled. An example from the Sonoran Traffic Camera script is available below:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`6`,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:`6`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:`RegisterNetEvent`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"SonoranScripts::PowerGrid::DeviceDisabled\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`function`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`affectedDevices`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`\tfor`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` _`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`v`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` in`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:` pairs`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`affectedDevices`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`[`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"trafficcams\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`]) `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`do`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` \tcameraDatabase`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`[`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:`tostring`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`v`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:`ID`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)].`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:`disabled`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` true`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` end`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:` TriggerClientEvent`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:`GetCurrentResourceName`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`() `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`..`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"::UpdateDB\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`-`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`1`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`cameraDatabase`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`end`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`]})})}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[`The event above and the one below `,_jsx(_components.strong,{children:`must`}),` use the `,_jsx(_components.code,{children:`RegisterNetEvent`}),` native, this is to avoid possible issues believed to be caused by resource load order in the server.cfg`]})}),`\n`,_jsx(_components.p,{children:`When a power system is repaired a similar event will be triggered an example from the same script is below:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`6`,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:`6`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:`RegisterNetEvent`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"SonoranScripts::PowerGrid::DeviceRepaired\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`function`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`affectedDevices`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`\tfor`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` _`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`v`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` in`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:` pairs`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`affectedDevices`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`[`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"trafficcams\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`]) `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`do`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` \tcameraDatabase`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`[`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:`tostring`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`v`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:`ID`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)].`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:`disabled`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` false`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` end`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:` TriggerClientEvent`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:`GetCurrentResourceName`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`() `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`..`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"::UpdateDB\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`-`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`1`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`cameraDatabase`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`end`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`]})})})]})}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":"Advanced Documentation","description":null,"href":"/store/power-grid/advanced-documentation"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Registration Event","slug":"registration-event","depth":3,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"sonoran-software-systems","siteName":"Sonoran Software Documentation","title":"Advanced Documentation - Sonoran Software Documentation","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-05T18:20:11.487Z","originalFileLocation":"store/power-grid/advanced-documentation.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=\"application-name\" content=\"Sonoran Software Documentation\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"https://docs-assets.sonoransoftware.com/sha256/1d/1d3aaa7393e84144f39bad7742c218a4f1db8e0ceb6f330d69f2e9bc92629df4.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"https://docs-assets.sonoransoftware.com/sha256/1d/1d3aaa7393e84144f39bad7742c218a4f1db8e0ceb6f330d69f2e9bc92629df4.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"https://docs-assets.sonoransoftware.com/sha256/1d/1d3aaa7393e84144f39bad7742c218a4f1db8e0ceb6f330d69f2e9bc92629df4.png\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/png\" href=\"https://docs-assets.sonoransoftware.com/sha256/1d/1d3aaa7393e84144f39bad7742c218a4f1db8e0ceb6f330d69f2e9bc92629df4.png\">\u003cmeta data-mint-head property=\"og:title\" content=\"Advanced Documentation - Sonoran Software Documentation\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Sonoran Software Documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.sonoransoftware.com/store/power-grid/advanced-documentation\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://sonoran-software-systems.mintlify.site/_mintlify/api/og/v2?division=%E2%9A%A1+Power+Grid\u0026amp;title=Advanced+Documentation\u0026amp;theme=1726bed78342e75c7aa90f1e\u0026amp;signature=4f5e71868fc92c269eb1167aeb8f5d845b38569bcf21ed6e61437e42c2d35299\">\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=\"Advanced Documentation - Sonoran Software Documentation\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://sonoran-software-systems.mintlify.site/_mintlify/api/og/v2?division=%E2%9A%A1+Power+Grid\u0026amp;title=Advanced+Documentation\u0026amp;theme=1726bed78342e75c7aa90f1e\u0026amp;signature=4f5e71868fc92c269eb1167aeb8f5d845b38569bcf21ed6e61437e42c2d35299\">\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=\"https://mintlify.s3.us-west-1.amazonaws.com/sonoran-software-systems/_generated/favicon/browserconfig.xml?v=3\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Sonoran Software Documentation\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#1D7DCF\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.sonoransoftware.com/store/power-grid/advanced-documentation\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/store/power-grid/advanced-documentation.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.sonoransoftware.com/#organization\",\"name\":\"Sonoran Software Documentation\",\"url\":\"https://docs.sonoransoftware.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://docs-assets.sonoransoftware.com/sha256/a8/a8af14e6458cb682c1c8d33ca8b56d25dcd5999b2589e0de14b2be9f8dbe20a5.png\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.sonoransoftware.com#website\",\"name\":\"Sonoran Software Documentation\",\"url\":\"https://docs.sonoransoftware.com\",\"publisher\":{\"@id\":\"https://docs.sonoransoftware.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.sonoransoftware.com/store/power-grid/advanced-documentation#webpage\",\"url\":\"https://docs.sonoransoftware.com/store/power-grid/advanced-documentation\",\"name\":\"Advanced Documentation\",\"dateModified\":\"2026-11-05T18:20:11.487Z\",\"isPartOf\":{\"@id\":\"https://docs.sonoransoftware.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.sonoransoftware.com/store/power-grid/advanced-documentation#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.sonoransoftware.com/store/power-grid/advanced-documentation#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"General\",\"item\":\"https://docs.sonoransoftware.com/store/general/information\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"⚡ Power Grid\",\"item\":\"https://docs.sonoransoftware.com/store/power-grid\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Advanced Documentation\",\"item\":\"https://docs.sonoransoftware.com/store/power-grid/advanced-documentation\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.sonoransoftware.com/store/power-grid/advanced-documentation#article\",\"headline\":\"Advanced Documentation\",\"name\":\"Advanced Documentation\",\"url\":\"https://docs.sonoransoftware.com/store/power-grid/advanced-documentation\",\"mainEntityOfPage\":{\"@id\":\"https://docs.sonoransoftware.com/store/power-grid/advanced-documentation#webpage\"},\"dateModified\":\"2026-11-05T18:20:11.487Z\",\"publisher\":{\"@id\":\"https://docs.sonoransoftware.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.sonoransoftware.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Sonoran Software Documentation\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Sonoran Software Documentation","nav":{"global":null,"products":[{"product":"Overview","icon":"house","pages":[{"title":"Overview","href":""}]},{"product":"CAD","icon":"car-side","pages":[{"title":"CAD","href":"/cad"}]},{"product":"CMS","icon":"building","pages":[{"title":"CMS","href":"/cms"}]},{"product":"Radio","icon":"walkie-talkie","pages":[{"title":"Radio","href":"/radio"}]},{"product":"Bot","icon":"robot","pages":[{"title":"Bot","href":"/bot"}]},{"product":"Store","icon":"bag-shopping","groups":[{"group":"Start here","pages":[{"title":"🏠 Home","href":"/store"}]},{"group":"General","pages":[{"title":"Information","href":"/store/general/information"},{"title":"Accessing Tebex Assets","href":"/store/general/tebex-assets"},{"title":"Gun Placement System Guide","href":"/store/general/gun-placement"},{"title":"Five Bundle","href":"/store/five-bundle"},{"group":"🏧 ATM Robbery","root":{"title":"ATM Robbery","href":"/store/atm-robbery"},"pages":[{"title":"Getting Started","href":"/store/atm-robbery/getting-started"},{"title":"Advanced Documentation","href":"/store/atm-robbery/advanced-docs"}]},{"group":"🧣 Bandanas","root":{"title":"Bandanas","href":"/store/bandanas"},"pages":[{"title":"Installation","href":"/store/bandanas/installation"}]},{"group":"🦺 Safety Vests","root":{"title":"Safety Vests","href":"/store/safety-vests"},"pages":[{"title":"Installation","href":"/store/safety-vests/installation"}]},{"group":"👗 Short Slip Dress","root":{"title":"Short Slip Dress","href":"/store/short-slip-dress"},"pages":[{"title":"Installation","href":"/store/short-slip-dress/installation"}]},{"group":"🧣 Scarf","root":{"title":"Scarf","href":"/store/scarf"},"pages":[{"title":"Installation","href":"/store/scarf/installation"}]},{"group":"📹 CCTV","root":{"title":"CCTV","href":"/store/cctv"},"pages":[{"title":"Installation","href":"/store/cctv/installation"},{"title":"Configuration","href":"/store/cctv/configuration"},{"title":"Camera Setup","href":"/store/cctv/camera-setup"},{"title":"Live View and Historic Playback","href":"/store/cctv/playback"},{"title":"Permissions","href":"/store/cctv/permissions"},{"title":"Developer API","href":"/store/cctv/developer-api"},{"title":"Troubleshooting","href":"/store/cctv/troubleshooting"}]},{"group":"🚓 Dashcam","root":{"title":"Dashcam","href":"/store/dashcam"},"pages":[{"title":"Installation","href":"/store/dashcam/installation"},{"title":"Configuration","href":"/store/dashcam/configuration"},{"title":"Vehicle Setup","href":"/store/dashcam/vehicle-setup"},{"title":"Recording","href":"/store/dashcam/recording"},{"title":"Playback and Evidence","href":"/store/dashcam/playback"},{"title":"Permissions","href":"/store/dashcam/permissions"},{"title":"Developer API","href":"/store/dashcam/developer-api"},{"title":"Troubleshooting","href":"/store/dashcam/troubleshooting"}]},{"group":"🎥 Bodycam","root":{"title":"Bodycam","href":"/store/bodycam"},"pages":[{"title":"Installation","href":"/store/bodycam/installation"},{"title":"Configuration","href":"/store/bodycam/configuration"},{"title":"Wearer Setup","href":"/store/bodycam/wearer-setup"},{"title":"Recording","href":"/store/bodycam/recording"},{"title":"Playback and Evidence","href":"/store/bodycam/playback"},{"title":"Permissions","href":"/store/bodycam/permissions"},{"title":"Developer API","href":"/store/bodycam/developer-api"},{"title":"Troubleshooting","href":"/store/bodycam/troubleshooting"}]},{"group":"📸 Evidence Camera","root":{"title":"Evidence Camera","href":"/store/evidence-camera"},"pages":[{"title":"Getting Started","href":"/store/evidence-camera/getting-started"},{"title":"Advanced Documentation","href":"/store/evidence-camera/advanced-docs"}]},{"group":"🚛 Mobile Command Center","root":{"title":"Mobile Command Center","href":"/store/mcc"},"pages":[{"title":"Getting Started","href":"/store/mcc/getting-started"},{"title":"Advanced Documentation","href":"/store/mcc/advanced-docs"}]},{"group":"🗒️ Sonoran Notepad","root":{"title":"Sonoran Notepad","href":"/store/sonoran-notepad"},"pages":[{"title":"Installation","href":"/store/sonoran-notepad/installation"},{"title":"Using and Syncing Notes","href":"/store/sonoran-notepad/usage-and-sync"},{"title":"Troubleshooting","href":"/store/sonoran-notepad/troubleshooting"}]},{"group":"⚡ Power Grid","root":{"title":"Power Grid","href":"/store/power-grid"},"pages":[{"title":"Getting Started","description":null,"href":"/store/power-grid/getting-started"},{"title":"Advanced Documentation","href":"/store/power-grid/advanced-documentation"}]},{"group":"📶 Radar Detector / Jammer","root":{"title":"Radar Detector / Jammer","description":"Detect and Jam Police Radar For A Smooth Getaway","href":"/store/radar-detector"},"pages":[{"title":"Getting Started","href":"/store/radar-detector/getting-started"}]},{"group":"📟 Radar Display","root":{"title":"Radar Display","href":"/store/radar-display"},"pages":[{"title":"Getting Started","href":"/store/radar-display/getting-started"}]},{"group":"🖥️ Sonoran Station Displays","root":{"title":"Sonoran Station Displays","href":"/store/sonoran-station-displays"},"pages":[{"title":"Installation","href":"/store/sonoran-station-displays/installation"},{"title":"Updating","href":"/store/sonoran-station-displays/updating"},{"title":"Configuration","href":"/store/sonoran-station-displays/configuration"},{"title":"Permissions","href":"/store/sonoran-station-displays/permissions"},{"title":"Display Management","href":"/store/sonoran-station-displays/display-management"},{"title":"Display Pages and Rotation","href":"/store/sonoran-station-displays/display-pages"},{"title":"Active Units","href":"/store/sonoran-station-displays/active-units"},{"title":"Calls","href":"/store/sonoran-station-displays/calls"},{"title":"Localized Live Map","href":"/store/sonoran-station-displays/live-map"},{"title":"Bodycams","href":"/store/sonoran-station-displays/bodycams"},{"title":"In-game Clock and Weather","href":"/store/sonoran-station-displays/in-game-clock"},{"title":"SonoranCADFiveM Integration","href":"/store/sonoran-station-displays/sonorancad-integration"},{"title":"Administrative Webhooks","href":"/store/sonoran-station-displays/administrative-webhooks"},{"title":"Persistence","href":"/store/sonoran-station-displays/persistence"},{"title":"Performance","href":"/store/sonoran-station-displays/performance"},{"title":"Diagnostics","href":"/store/sonoran-station-displays/diagnostics"},{"title":"Troubleshooting","href":"/store/sonoran-station-displays/troubleshooting"},{"title":"Developer API","href":"/store/sonoran-station-displays/developer-api"},{"title":"DUI Message Protocol","href":"/store/sonoran-station-displays/dui-message-protocol"},{"title":"Changelog","href":"/store/sonoran-station-displays/changelog"}]},{"group":"🛣️ Sonoran Street Signs","root":{"title":"Sonoran Street Signs","href":"/store/street-signs"},"pages":[{"title":"Installation","href":"/store/street-signs/getting-started"},{"title":"Configuration","href":"/store/street-signs/configuration-reference"},{"title":"Permissions","href":"/store/street-signs/permissions"},{"title":"Using Signs","href":"/store/street-signs/commands-and-usage"},{"title":"Integrations and Webhooks","href":"/store/street-signs/integrations-and-webhooks"},{"title":"Troubleshooting","href":"/store/street-signs/faq-and-troubleshooting"}]},{"group":"🔫 Shot Spotter","root":{"title":"Shot Spotter","href":"/store/shot-spotter"},"pages":[{"title":"Getting Started","href":"/store/shot-spotter/getting-started"},{"title":"Shot Spotter - Advanced Documentation","href":"/store/shot-spotter/advanced-docs"}]},{"group":"📹 Speed Cameras / ALPR","root":{"title":"Speed Cameras / ALPR","href":"/store/speed-camera"},"pages":[{"title":"Getting Started","href":"/store/speed-camera/getting-started"},{"title":"Advanced Documentation","href":"/store/speed-camera/advanced-docs"}]},{"group":"🚗 Traffic Engine","root":{"title":"Traffic Engine","href":"/store/traffic-engine"},"pages":[{"title":"Getting Started","href":"/store/traffic-engine/getting-started"},{"title":"Advanced Documentation","href":"/store/traffic-engine/advanced-documentation"}]}]},{"group":"Other","pages":[{"title":"Terms and Policies","href":"/store/other/policy"}]}]},{"product":"Studio","icon":"clapperboard","pages":[{"title":"Studio","href":"/studio"}]}]},"basePath":"","title":"Advanced Documentation - Sonoran Software Documentation","buildId":"dpl_42LwxxU1kGN114H4XzwGYXa9ZDah","deploymentId":"dpl_42LwxxU1kGN114H4XzwGYXa9ZDah","dynamics":[],"chunks":[]}