{
  "service": "IFRP Server Utilities",
  "worker": "ifrp-server1",
  "utilities": [
    "weapons",
    "FOID/CCL",
    "civilian creation",
    "DMV licenses",
    "vehicle registration"
  ],
  "status": "online",
  "build": "2026-10-03-ifrp-stable-webhook-sonoran-rate-limit-fix-253",
  "command": ";regw <model>",
  "commands": {
    "weaponRegistration": ";regw <model>",
    "stolenWeaponRegistration": ";stolenw <model>",
    "characterCreation": ";newciv <m|f> MM/DD/YYYY [First Last [Middle]]",
    "inGameCommandGuide": ";cmds or /commands",
    "professionalDiscordCommandGuideEmbed": true,
    "commandGuideIncludesPersonInventory": true,
    "commandGuideIncludesPersonSearch": true,
    "commandGuideLiteralNewlineEscapeBugFixed": true,
    "userNotificationDelivery": "DISCORD ONLY",
    "erlcPrivateMessageNotificationsEnabled": false,
    "erlcServerCommandNotificationCalls": 0,
    "commandAuditLoggingEnabled": true,
    "commandAuditChannelId": "1541163574204956804",
    "centralizedDiscordLogChannelId": "1541163574204956804",
    "priorityResetRequestChannelId": "1541353607331323944",
    "commandAuditSources": [
      "ER:LC",
      "DISCORD"
    ],
    "commandAuditSensitiveArgumentsRedacted": true,
    "commandAuditLinkCodesRedacted": true,
    "commandAuditSearchIdentifiersMasked": true,
    "commandAuditNewCivilianDobRedacted": true,
    "personInventorySystemEnabled": true,
    "personInventoryCommand": ";person",
    "personInventoryClearCommand": ";clearperson",
    "personSearchCommand": ";searchp <LIC/ID or SSN>",
    "personInventoryTtlHours": 168,
    "personInventoryTtlDays": 7,
    "personInventoryDeletedOnCivilianCharacterRemoval": true,
    "personInventoryStorage": "DISCORD_LINKS KV",
    "personInventoryShownOnNormalLookup": false,
    "personSearchRequiresLawEnforcementTeam": false,
    "personSearchAccessControl": "DISCORD ROLE ONLY",
    "personSearchLeoRoleName": "LEO",
    "personSearchLeoRoleIdConfigured": true,
    "personSearchLeoRoleAutoDiscovery": "Exact Discord role name: LEO",
    "personSearchLeoRoleIdVariableRequired": false,
    "personSearchUsesErlcTeamForAuthorization": false,
    "personSearchDiscordMemberLookup": "GET GUILD MEMBER",
    "personSearchDiscordRoleLookup": "GET GUILD ROLES",
    "personSearchRoleCacheSeconds": 30,
    "personSearchUsesSonoranCustomLookupEndpoint": false,
    "personSearchRequiresSonoranCustomLookupType": false,
    "personSearchIndexStorage": "DISCORD_LINKS KV",
    "personSearchIndexLookupFields": [
      "ssn",
      "lic_no"
    ],
    "personSearchIndexRefresh": "Selected civilian + Sonoran record events + existing minute DMV audit",
    "personSearchSensitiveLookupKeysHashed": true,
    "personSearchRepeatMessageSuppressionSeconds": 8,
    "personInventoryCadFirearmAutofill": true,
    "personInventoryRegisteredFirearmsRequireCharacterIdentityMatch": true,
    "personInventoryStolenFirearmsRequireRobloxAndCharacterIdMatch": true,
    "personInventoryDisplaysSsn": true,
    "vehicleInventorySystemEnabled": true,
    "vehicleInventoryCommand": ";vehinv",
    "vehicleInventoryClearCommand": ";clrveh",
    "vehicleSearchCommand": ";searchv <plate or VIN>",
    "vehiclePlainViewSetCommand": ";setpv",
    "vehiclePlainViewCommand": ";pv <plate or VIN>",
    "vehicleInventoryTtlHours": 168,
    "vehicleInventoryTtlDays": 7,
    "vehicleInventoryStorage": "DISCORD_LINKS KV",
    "vehicleInventoryShownOnNormalLookup": false,
    "vehicleInventoryDeletedOnVehicleRecordRemoval": true,
    "vehicleInventoryRegisteredVehiclesRequireCivilianIdentityMatch": true,
    "vehicleInventoryFirearmsUseCivilianEligibleWeapons": true,
    "vehicleSearchAccessControl": "DISCORD ROLE ID",
    "vehicleSearchAuthorizedDiscordRoleId": "1398237676464902194",
    "vehicleSearchUsesLeoDiscordRole": true,
    "vehicleSearchUsesErlcTeamForAuthorization": false,
    "vehicleSearchIndexStorage": "DISCORD_LINKS KV",
    "vehicleSearchIndexFields": [
      "plate",
      "veh_vin"
    ],
    "vehicleSearchSensitiveLookupKeysHashed": true,
    "vehicleSearchIndexRefresh": "vehicleinv + existing five-minute vehicle generator",
    "vehicleSearchRepeatMessageSuppressionSeconds": 8,
    "commandGuideIncludesVehicleInventory": true,
    "commandGuideIncludesVehicleSearch": true,
    "injuryReportCommand": ";injury",
    "injuryReportFlow": "Discord DM — CAD character, body areas, injuries, severity",
    "injuryReportActiveHours": 6,
    "emsAssessmentCommand": ";assess",
    "emsAssessmentRadiusStuds": 6,
    "emsAssessmentAccess": "Either authorized Discord role",
    "emsAssessmentDefaultAuthorizedDiscordRoleIds": [
      "1398243425828212846",
      "1398237676464902194"
    ],
    "injuryBasedVitalsCommand": ";vitals",
    "injuryBasedVitalsCooldownSeconds": 30,
    "injuryBasedVitalsAreFictional": true,
    "portableBreathTestSetCommand": ";setbal <reading>",
    "portableBreathTestOfficerCommand": ";pbt",
    "portableBreathTestRadiusStuds": 6,
    "portableBreathTestConsentRequired": true,
    "portableBreathTestActiveReadingHours": 6,
    "portableBreathTestPoliceRoleId": "1398237676464902194",
    "cadAccess": ";cad",
    "foidApplication": ";foid",
    "cclApplication": ";ccl",
    "discordLinkVerification": ";linkdiscord <one-time-code>",
    "discordSelfService": "/linkroblox",
    "discordCommandGuide": "/commands",
    "currentErlcCommands": [
      ";newciv m MM/DD/YYYY",
      ";newciv f MM/DD/YYYY",
      ";newciv m MM/DD/YYYY First Last [Middle]",
      ";newciv f MM/DD/YYYY First Last [Middle]",
      ";regw <weapon>",
      ";stolenw <weapon>",
      ";foid",
      ";ccl",
      ";showid",
      ";showdl",
      ";showfoid",
      ";showins",
      ";showreg",
      ";reqdocs",
      ";injury",
      ";assess",
      ";vitals",
      ";setbal <reading>",
      ";setbac <reading>",
      ";pbt",
      ";person",
      ";clearperson",
      ";searchp <LIC/ID or SSN>",
      ";vehinv",
      ";clrveh",
      ";setpv",
      ";searchv <plate or VIN>",
      ";pv <plate or VIN>",
      ";cad",
      ";linkdiscord <one-time-code>",
      ";s1 <message> through ;s10 <message> — interact with an already-active scene",
      "Discord #scene-open — create S1-S10 scenes with /s1 through /s10",
      ";scenes",
      ";closes1 through ;closes10",
      ";cmds",
      "/commands"
    ]
  },
  "example": ";regw AK47",
  "recordType": "Custom Police Record",
  "recordCategory": 8,
  "weaponTemplateId": 3056,
  "foidTemplateId": 8339,
  "cclTemplateId": 8339,
  "foidApplicationPath": "Discord DM character selection and certification buttons",
  "characterGenerator": {
    "enabled": true,
    "civilianTemplateId": 7,
    "command": ";newciv <m|f> MM/DD/YYYY [First Last [Middle]]",
    "defaults": {
      "occupation": "UNEMPLOYED",
      "postal": "blank",
      "residence": "blank",
      "state": "IL",
      "robloxAvatarField": "img"
    }
  },
  "foidPolicy": {
    "autoApproveFoidIfNoActiveFelonyOrWarrant": true,
    "denyFoidIfCadFelonyFound": true,
    "foidPriorRevocationGoesPending": true,
    "autoRevokeActiveFoidOrCclOnNewArrestCharge": true,
    "autoRevokeActiveFoidOrCclOnActiveWarrant": true,
    "scheduledSonoranAuditSupported": true,
    "scheduledCriminalHistoryAuditCron": "* * * * *",
    "scheduledCriminalHistoryAuditInterval": "1 minute",
    "newCivilianDiscordSetupRequired": true,
    "newCivilianCustomNameSupported": true,
    "newCivilianMiddleInitialSupported": true,
    "newCivilianMiddleInitialExamples": [
      ";newciv m MM/DD/YYYY John Smith M",
      ";newciv f MM/DD/YYYY Sarah Jones A."
    ],
    "newCivilianCustomNameSyntax": ";newciv <m|f> MM/DD/YYYY First Last [Middle]",
    "newCivilianRandomNameSyntax": ";newciv <m|f> MM/DD/YYYY",
    "newCivilianCreatedOnlyAfterDiscordSetup": true,
    "newCivilianGeneratedSsnMapping": "ssn",
    "newCivilianSsnIncludedInDiscordSuccess": true,
    "newCivilianDiscordSetupTimeLimitMinutes": 5,
    "newCivilianSetupVoidedAfterTimeout": true,
    "newCivilianCreationIdempotent": true,
    "newCivilianDiscordRetryProtection": true,
    "newCivilianPostCreateWorkRunsInBackground": true,
    "newCivilianDiscordSetupMappings": [
      "zip",
      "residence",
      "occupation",
      "skin",
      "hair",
      "eyes"
    ],
    "newCivilianLiveDropdownMappings": {
      "occupation": "occupation",
      "hairColor": "hair",
      "eyeColor": "eyes"
    },
    "newCivilianAutomaticIdentificationCard": true,
    "automaticIdentificationCardTemplateId": 4,
    "automaticIdentificationCardType": "IDENTIFICATION CARD",
    "automaticIdentificationCardNumberMapping": "dmv_lic_no",
    "automaticIdentificationCardDmvStatusMapping": "252c4256da9421cbd",
    "automaticIdentificationCardStatusMapping": "lic_status",
    "automaticIdentificationCardTypeMapping": "7eddab31daf4a0182",
    "automaticIdentificationCardIssueDateMapping": "dmv_iss_date",
    "automaticIdentificationCardExpirationMapping": "dmv_exp_date",
    "automaticIdentificationCardIssueMonthsBack": "2-4",
    "automaticIdentificationCardValidityMonths": 6,
    "unifiedLicenseAndIdentificationNumberPerCivilian": true,
    "originalIdentificationNumberPermanentlyLocked": true,
    "manualCadCivilianAutoIdentificationCard": true,
    "manualCadIdentificationCardCreateMode": "RAW LIVE TEMPLATE / useDictionary=false",
    "manualCadIdCoreFieldsResolvedByMappingOrLabel": true,
    "manualCadDmvStatusTarget": "APPROVED",
    "manualCadLicenseStatusTarget": "VALID",
    "manualCadCredentialTypeTarget": "IDENTIFICATION CARD",
    "manualCadNumberWrittenBeforeIdCreation": true,
    "manualCadPermanentNumberLockedAfterIdCreation": true,
    "manualDriverLicenseReusesPermanentIdentificationNumber": true,
    "manualCadIdentificationCardSendsNullRecord": false,
    "manualCadIdentificationCardAvoidsBrokenDictionaryNewRecord": true,
    "manualCadCivilianSurnameInitialValidatedBeforeLock": true,
    "manualCadCivilianWrongPrefixRepairPreservesDigits": true,
    "permanentLicenseLockOccursAfterSurnameInitialCorrection": true,
    "manualCadCivilianAutoIdImmediatePushAttempt": true,
    "manualCadCivilianAutoIdMinuteAuditFallback": true,
    "manualCadCivilianAutoIdNumberFormat": "Last-name initial + 11 digits",
    "manualCadCivilianAutoIdCivilianMapping": "lic_no",
    "originalIdentificationNumberLockStore": "DISCORD_LINKS KV",
    "minuteAuditMayGenerateReplacementForLockedCivilian": false,
    "newDriverLicenseImmediatelyReusesPermanentIdNumber": true,
    "unifiedLicenseNumberPriority": [
      "Identification Card",
      "Civilian page lic_no",
      "Oldest License record",
      "Generate if none exists"
    ],
    "automaticIdentificationCardCivilianPageSync": true,
    "automaticIdentificationCardCivilianMapping": "lic_no",
    "automaticIdentificationCardDirectSyncRetries": 5,
    "driverLicenseStillManual": true,
    "combinedFoidCclTemplateId": 8339,
    "combinedApplicationNumberField": "application_number",
    "combinedApplicationNumberFormat": "ISPFSB-########",
    "applicationDateField": "application_date",
    "applicationTimeField": "application_time",
    "approvedRecordStatus": "ACTIVE",
    "oneCombinedFoidCclRecordPerCharacter": true,
    "newApplicationAllowedAfterPriorRecordDeleted": true,
    "cclAutoApprovalDelayMinutes": 5,
    "cclAutoApprovalRequiresClearCriminalHistory": true,
    "supervisorReviewMethod": "automatic five-minute review; staff review only for prior revocation/suspension",
    "discordReviewButtonsEnabled": false,
    "cclRequiresActiveFoidOrCombinedFoidSelection": true,
    "sharedFoidCclNumber": true,
    "credentialValidityMonths": 6,
    "weaponRegistrationRequiresActiveApprovedFoidOrCcl": true,
    "sonoranRecordEventPaths": [
      "/sonorancad/event",
      "/sonoran-events"
    ],
    "sonoranRecordEvents": [
      "EVENT_RECORD_ADD",
      "EVENT_RECORD_EDIT",
      "EVENT_RECORD_REMOVE"
    ],
    "manualCadApprovalAutoDates": true,
    "pendingStatusAuditMinutes": 5,
    "pendingApprovalAutoIssuance": true,
    "pendingDecisionDiscordDm": true,
    "foidCclLookupAlertField": "foid_ccl_flags",
    "foidCclLookupAlertAuditMinutes": 5,
    "foidCclAuditBatchSize": 2,
    "foidCclAuditUsesRotatingCursor": true,
    "foidCclAuditUsesCharacterCache": true,
    "sonoranRateLimitCooldownSeconds": 60,
    "sonoranSafeRequestRetryCount": 2,
    "foidCclLookupAlertPreserveUnmanagedFlags": true,
    "reportedStolenWeaponAuditMinutes": 5,
    "reportedStolenWeaponBackdateMonths": "2-5",
    "reportedStolenWeaponStatus": "REPORTED STOLEN",
    "reportedStolenWeaponPreserveExistingNotes": true,
    "reportedStolenWeaponLiveStatusUidDiscovery": true,
    "reportedStolenWeaponLookupAlertFlag": "REPORTED STOLEN WEAPON",
    "stolenWeaponCommandAutoRemovalHours": 24,
    "stolenWeaponCommandRemovalDiscordNotice": true,
    "stolenWeaponCommandRemovalScope": ";stolenw records only",
    "stolenWeaponNotesIncludeRobloxUsername": true,
    "stolenWeaponNotesIncludeRobloxUserId": true,
    "stolenWeaponNotesIncludeDiscordUsername": true,
    "stolenWeaponNotesIncludeDiscordUserId": true,
    "professionalWeaponEligibilityDiscordUi": true,
    "stolenWeaponDiscordUiAgencyNeutral": true,
    "stolenWeaponDiscordUiSuppressesRedundantContentLine": true,
    "sonoranBadCallGuardEnabled": true,
    "sonoranBlacklistCooldownMinutes": 5,
    "sonoranRepeatedBadRequestSuppressionMinutes": 10
  },
  "notificationMethods": [
    "Discord DM"
  ],
  "configuration": {
    "ready": true,
    "foidReady": true,
    "cclReviewReady": true,
    "cclReviewMethod": "automatic five-minute criminal-history review",
    "foidCclLookupAlertField": "foid_ccl_flags",
    "foidCclLookupAlertMinuteSync": true,
    "foidCclLookupAlertOptions": [
      "ACTIVE FOID CARD",
      "ACTIVE CCL",
      "CCL PENDING REVIEW",
      "FOID REVOKED",
      "CCL REVOKED",
      "FOID SUSPENDED",
      "CCL SUSPENDED"
    ],
    "discordReviewButtonsEnabled": false,
    "characterCreationReady": true,
    "characterCreationCommand": ";newciv <m|f> MM/DD/YYYY [First Last [Middle]]",
    "characterOwnerResolution": "ER:LC/Sonoran webhook identity; verified Roblox -> Discord link; Discord -> Sonoran CAD UUID verified with GET_ACCOUNT; existing civilian metadata; Sonoran account metadata",
    "characterIdentityDiagnosticLog": "IFRP ;newciv webhook identity",
    "discordCadLinkMethod": "/linkroblox -> Link Sonoran CAD button -> private Discord modal -> Sonoran GET_ACCOUNT UUID verification",
    "discordCadUuidStored": true,
    "characterCivilianTemplateId": 7,
    "characterSsnField": "ssn",
    "characterSsnMask": "###-##-####",
    "characterDefaults": {
      "occupation": "UNEMPLOYED",
      "postal": "blank",
      "residence": "blank",
      "state": "IL",
      "avatarField": "img"
    },
    "weaponRegistrationRequiresActiveFoidOrCcl": true,
    "stolenWeaponCommand": ";stolenw <model>",
    "stolenWeaponCivilianIdentityLinkedInRecord": false,
    "stolenWeaponMinuteAudit": true,
    "stolenWeaponAutoRemovalHours": 24,
    "stolenWeaponAutoRemovalScope": ";stolenw only",
    "stolenWeaponAutoRemovalDiscordNotice": true,
    "stolenWeaponAuditStatus": "REPORTED STOLEN",
    "stolenWeaponAuditBackdateMonths": "2-5",
    "stolenWeaponLookupAlertFieldRecommended": "weapon_alert_flags",
    "stolenWeaponLookupAlertOptionRecommended": "REPORTED STOLEN WEAPON",
    "liveWeaponTemplateFieldDiscovery": true,
    "foidAutoApproval": true,
    "combinedFoidCclTemplateId": 8339,
    "legacyFoidTemplateId": 3592,
    "legacyCclTemplateId": 436,
    "foidValidityMonths": 6,
    "discordNotifications": true,
    "discordGatewayBridgeReady": true,
    "discordGatewayBridgeEndpoints": [
      "/bot/health",
      "/bot/event",
      "/bot/refresh",
      "/bot/priority/status",
      "/bot/priority/action"
    ],
    "discordGatewayMemberTracking": true,
    "discordGatewayTrackedMemberEvents": [
      "guild_member_add",
      "guild_member_remove",
      "guild_member_update"
    ],
    "discordRecoveryMemberStorage": "DISCORD_LINKS KV",
    "discordRecoveryMemberSnapshotsPersistent": true,
    "discordRecoveryFullExistingMemberSyncAutomatic": false,
    "discordSelfLinking": true,
    "prioritySystem": {
      "enabled": true,
      "controlChannelId": "1541339184411844629",
      "resetRequestChannelId": "1541353607331323944",
      "logChannelId": "1541163574204956804",
      "maxPriorityMinutes": 60,
      "peaceTimeMinutes": 30,
      "claimWindowMinutes": 5,
      "queueMode": "FIFO",
      "stateStore": "DISCORD_LINKS KV",
      "nextTurnNotification": "Persistent Priority Control reservation with five-minute claim countdown",
      "instantDiscordPanelRefresh": true,
      "directErlcPriorityCommands": "DISABLED",
      "sonoranGamePanelPolicy": "Use the Sonoran CMS ER:LC Game Panel for Peacetime commands; Priority Worker makes zero direct Peace Timer /v1/server/command requests"
    },
    "inGameNotifications": false,
    "notificationMethods": [
      "Discord ephemeral interaction replies",
      "Priority Reset approval/decline Discord DM",
      "Persistent Priority Control panel"
    ],
    "discordIdentitySource": "Verified /linkroblox KV mapping; selected civilian field discord_id; DISCORD_USER_MAP fallback",
    "bindings": {
      "DISCORD_BOT_TOKEN": "present",
      "DISCORD_PUBLIC_KEY": "present",
      "DISCORD_GUILD_ID": "present",
      "DISCORD_LINKS": "present",
      "DISCORD_USER_MAP": "empty",
      "IFRP_BRIDGE_SECRET": "present",
      "ERLC_SERVER_KEY": "present (ERLC_SERVER_KEY)",
      "SONORAN_COMMUNITY_ID": "present",
      "SONORAN_CIVILIAN_TEMPLATE_ID": "present",
      "SONORAN_API_KEY": "present",
      "SONORAN_ERLC_RELAY_URL": "empty",
      "SONORAN_COMBINED_FOID_CCL_TEMPLATE_ID": "using-built-in-8339",
      "SONORAN_FOID_TEMPLATE_ID": "present-legacy-lookup-only",
      "SONORAN_CCL_TEMPLATE_ID": "not-set",
      "SONORAN_FOID_CCL_TEMPLATE_ID": "present-legacy-lookup-only",
      "FOID_APP_SECRET": "present",
      "PUBLIC_WORKER_URL": "present",
      "SONORAN_WEAPON_POLICE_TEMPLATE_ID": "present"
    }
  },
  "supportedWeaponModels": [
    "Beretta M9",
    "Colt M1911",
    "LeMat Revolver",
    "Colt Python",
    "TEC-9",
    "Desert Eagle",
    "Remington 870",
    "M14",
    "AK47",
    "Remington MSR",
    "LMT L129A1",
    "Remington 700",
    "PPSH 41",
    "Skorpion",
    "M249",
    "KRISS Vector SMG"
  ]
}