Kartik Scripts

Penal Code

An interactive, search-enabled Penal Code catalog.

Features

  • Quick Search: Categorize violations by felony, misdemeanor, traffic, or infraction.
  • Auto Calculations: Selecting violations immediately updates jail time, fines, and license points.
  • Interactive Tooltips: Offers detailed descriptions and legal definitions for each charge.

⚠️ Troubleshooting: Penal Codes Not Syncing / Visible

If players on the PD side cannot see or access penal codes, this is almost always a department ID mismatch.

How it works

Every penal code row in the mdt_penal_code table is tied to a department through its department column. A player only sees the penal codes whose department value matches the internal ID of the department they are currently viewing in /mdt.

The Penal Codes.sql file I provide inserts every penal code with the internal ID police in the department column. police here is just the default/example the file happens to use, it is not a value you are forced to keep. The only real rule is:

The department's internal ID (set in /mdt-admin) must match the department column of your penal code rows.

Note, Label vs. internal ID: A department has a Label (the display name shown in the UI, e.g. Law Enforcement) and an internal ID (the identifier used behind the scenes, e.g. police). The penal codes match against the internal ID, not the Label. You can name the Label anything you want.

Ways to fix the mismatch

Pick whichever fits your setup:

  • Option A, Use police as the internal ID (easiest, works out of the box). Create a department with any Label you like (e.g. Law Enforcement) and set its internal ID to police. The provided SQL already targets police, so the penal codes appear with no further changes.
  • Option B, Use your own internal ID and edit the SQL. If you'd rather keep a different internal ID (e.g. lspd, bcso, sasp), open the Penal Codes.sql file, replace the department value police with your ID, and import it again.
  • Option C, Add penal codes per department. If you run several separate departments that each need their own penal codes, duplicate the rows in the mdt_penal_code table so there is a matching set for each department's internal ID.

⚠️ Troubleshooting: Jail or Fine/Billing Not Working

If officers cannot issue fines or jail suspects through the penal code database:

  1. Check the Bridge Folder: Ensure that the jail and billing scripts you use are present and supported in the bridge folder of kartik-mdt. If they are not supported, you can add custom support inside the bridge folder, or share the script integrations with the developer so they can be included in the next official update.
  2. Check Startup Order: Ensure kartik-mdt is started after your jail and billing/invoice scripts in your server's startup configuration (e.g., server.cfg). If started before them, the MDT will not be able to detect the scripts.

On this page