Skip to content

Court / DOJ

The Court module turns PulseCAD into a full judicial system: warrants, criminal cases, a hearing docket, sentencing tied to your penal code, a custody roster, and even an AI judge you can talk to. It plugs into the tools your community already uses: arrest reports open cases, warrant reports become signable warrants, convictions build a defendant's rap sheet, and rulings notify the defendant in the portal, on Discord, and in game.

Court is optional and fully per-community. Every capability is an on/off toggle, and the whole thing can run in one of five modes, from a purely human bench to a hands-off AI courtroom. Open it from the Court tile on the community hub. The tile only appears when Court is enabled and your plan includes it.

This is a paid module (Pulse Pro and up)

Court is available on Pulse Pro and Pulse Max plans. The Off mode is always available at no cost; you only need the entitlement to run one of the active modes. During the beta, every community has every plan feature unlocked.


The five modes

The mode decides who makes the decisions: a human, a deterministic script, or the AI. Set it in Admin → Court.

Mode Who runs the court What it does
Off Nobody Court is completely hidden. No Court tile, no warrant/case actions anywhere. This is the default for a new community.
Human judge Human judges The classic bench. Staff sign/deny warrants, mark charge dispositions, run report reviews, and pronounce sentences by hand. No AI is ever called.
Automatic A deterministic script A transparent, repeatable "robot judge" with no AI. Sentences come straight from the penal code at a configured anchor (or a sentencing grid), and reports are graded against a checklist. Same result every time, fully auditable.
AI judge The AI judge The AI judge reviews reports, converses over warrants, presides over contested cases, and pronounces sentences. Everything stays inside your penal-code limits (see below).
AI drafts, you approve AI drafts, human confirms The AI does the work, but a human must confirm verdicts and sentences above a class threshold you set. Minor matters can be finalized by the AI; serious ones always wait for a person.

AI judge and AI drafts need AI Assist enabled

AI judge and AI drafts, you approve require AI Assist to be switched on in Admin → AI Assist (PulseCAD supplies the AI; there's no key to configure). If AI Assist is off or your monthly AI allowance is used up, the judge simply can't be reached: the court falls back to Automatic (sentencing straight from your penal code) and proceedings report the judge as unavailable rather than stalling.

Even in Off, one setting still applies: warrant approval (court / supervisor / auto) governs how warrant reports are handled, so a community that doesn't want a courthouse can still route warrants sensibly.


Capability toggles (modules)

Beyond the mode, a few parts of the court are their own switch, under Modules in Admin → Court. Turn one off and that part stops happening.

Module Default What it enables
Warrants On Search / arrest / bench warrants, the warrant queue, and signing. An arrest report files and clears them.
Cases On Criminal cases, the docket, and the case file. An arrest opens the case.
Hearings / Docket On Scheduled hearings and arraignments on the docket.
Report sufficiency review On Judicial legal-sufficiency review of the underlying report before a case proceeds.
Self-bail On Civilians post bail from the portal to clear a hold.
Civil cases (player v. player) Off Civil cases: one player suing another.

Everything else the court does is always on

This list used to run to eighteen switches. Twelve of them were wired to nothing, and four named features that were never built, so they were removed in BETA 1.30.1. The rest of the court is not separately switchable: the rap sheet, the custody roster, civilian pleas, court notifications, evidence, appeals, contested trials and the legal assistant are all available whenever Court is on. The AI parts of those run only in AI judge or AI drafts, you approve, and only while AI Assist is enabled.

Some advanced modules are ahead of their dedicated UI

The core modules plus civil court, appeals and the AI trial-style proceedings are live end-to-end today. The remaining advanced toggles (parole, bail bonds, bounty, pardons, evidence, legal assistant, roles) exist as server switches so they can light up incrementally; full dedicated screens for these are still being built out. Enabling them won't break anything; they simply don't all have a finished front end yet.


Choosing the judge

Under Admin → Court you configure the judge's identity and behavior. This colors every AI ruling and appears on the DOJ terminal, judgments, and notifications.

  • Name / title / jurisdiction: e.g. "The Honorable A. Vance," "Superior Court of San Andreas." The jurisdiction becomes the DOJ terminal header.
  • Temperament: a consistent judicial personality that shapes tone and sentencing severity (never lawfulness):
    • Lenient: merciful; favors warnings, fines, probation, and the low end of each range (or below the minimum) for minor or first-time offenders.
    • Balanced: even-handed; sentences around the middle, adjusting for aggravating/mitigating factors.
    • Strict: firm; leans to the high end and jails where the code allows, especially for repeat offenders.
  • Tone: rp (in-character, formal courtroom voice) or plain (procedural language).
  • Auto-bail: set a bail figure automatically so a number always exists.

The AI behind the judge

PulseCAD supplies and runs the AI judge: there is no key to bring, no provider account, and no model to pick. Turn on AI Assist in Admin → AI Assist and choose an AI court mode; usage counts against your community's monthly AI allowance, and when that runs out the court degrades gracefully to sentencing straight from your penal code instead of breaking a trial.

The AI never overrides your rules

Whatever the provider or temperament, the AI only chooses within the penal-code ranges you set. The server hard-clamps every number it produces, so the judge can never invent a charge, exceed your maximums, or contradict your configuration.


Sentencing and the penal code

Your penal code is the source of truth and the hard ceiling. Each offense carries a jail range in days (jailMin / jailMax), a fine, and a bail figure, edited in Admin → Penal Code. The base sentence is pure penal-code math; the judge (human or AI) only picks within the range, and the server re-clamps the result.

For every guilty charge:

  • Jail = a pick inside [jailMin, jailMax] × counts. Where the discretion lives.
  • Fine = the code fine × counts (a judge may reduce, never exceed).
  • Bail = the charge's bail figure.
  • License action = whatever the penal code prescribes (suspend / revoke), wired to the enforcement engine.

Then your sentencing rules apply (all in Admin → Court):

Setting Effect
Stacking consecutive (sum every charge), concurrent (longest charge only), or capped (sum, capped at a max).
Max jail days The overall ceiling when stacking is capped.
Priors rule none, percent (add a % per prior case), or strikes (three-strikes → the ceiling on a felony).
Include shared priors Count convictions from your data-sharing partners toward priors and strikes.
Time-served credit Subtract pretrial detention days from the jail term.
Minutes per day Optional in-game conversion for timed auto-release (see Custody).

jailMin == jailMax = zero AI wiggle room

Set an offense's min and max equal and the sentence for it is fully deterministic; even in AI mode, the judge has nothing to decide.

Automatic-mode mechanics

In Automatic mode (and as the backbone the AI judge and AI drafts, you approve modes clamp to) sentencing is scripted from these, which stack:

  • Where in the penal range to sentence: land at the low end, the middle, or the high end of each penal range.
  • Sentencing grid: an optional guidelines matrix (offense class × prior-count bucket → jail days / fine) that overrides the bare anchor.
  • Sufficiency checklist: a deterministic report gate (minimum narrative length, charge support, evidence-for-felony, signature) that can flag or kick back a weak report.
  • Weighted scoring and a jury-roll RNG (a seedable, reproducible dismissal chance) are optional extras for communities that want a tunable or unpredictable element.

How cases and warrants begin

Court hooks into the records workflow; officers rarely "open a case" by hand.

  • Arrest → case. When an arrest report is approved in Records, a criminal case opens automatically (numbered CR-YY-####), and in AI judge and Automatic mode the judge immediately begins reviewing it. A report naming several defendants opens a case for each.
  • Warrant report → warrant. When an officer files a Search / Arrest / Bench warrant report in Records, it becomes a linked Warrant in Requested status, with the report narrative auto-populated as the probable-cause affidavit. Records is the front door; there's no separate "request warrant" step.
  • Not-guilty plea → contested case. When a civilian pleads Not Guilty on a citation, a case opens so it can be argued.
  • Failure to appear → bench warrant. The Process overdue action sweeps unpaid citations past their court date into active bench warrants.

  • A lawyer files a suit → civil case. Everything above is criminal. A civil case is one player suing another, and it is the one kind of case that starts with somebody deliberately filing it; see Civil cases below.

You can also open a case manually from the Court terminal when you need to.

An active warrant makes someone WANTED automatically

Once a warrant is Signed/Active, the subject shows as WANTED in MDT person and plate lookups, BOLOs, and in-game ALPR, with no extra step. Signing is the trigger.


The DOJ Court terminal

The Court surface is styled as a Department of Justice judicial terminal. What you see depends on the hat you're wearing. The header has an "Act as" switcher because the same account can be the judge, a filing officer, or a civilian defendant:

  • Judge · Bench (owner / admin / court / judge role, or super-admin): full judicial powers.
  • Law Enforcement: the officer view of cases you filed.
  • Your civilian character: the defendant view of your own matters.

Bench

The judge's landing page: the nameplate, live stat tiles (pending warrants, open cases, hearings today, in custody), and a "Needs your ruling" queue that surfaces pending warrants, cases ready for sentencing, and reports flagged deficient.

Warrants & the Chambers

The Warrants queue lists every warrant with its subject, basis, requester, and status. Open one to see the application and the probable-cause affidavit.

Warrants move through: Requested → Signed → Active → Served, or Denied / Expunged. Signing, denying, and expunging are judicial acts (court staff only); serving and activating are field actions.

  • Human judge / AI drafts, you approve: the judge writes findings and clicks Sign or Deny.
  • AI judge / AI drafts, you approve: a Chambers · Judicial Inquiry panel opens: the officer converses with the AI judge, which reads the affidavit and the subject's rap sheet, asks clarifying questions, and rules with written reasoning. In AI judge mode a grant/deny applies immediately; in AI drafts, you approve it stays advisory for a human to confirm. A denied warrant can be re-argued (a motion to reconsider) until the court re-rules.

The court's decision (signed judge + date, or a declined stamp + reason) is stamped back onto the linked warrant report so the document always shows the real outcome.

Cases & the case file

The Cases list is row-scoped: staff see everything, supervisors see their department, officers see cases they filed, and defendants see their own. It carries a Waiting on column (the filing officer, the defendant, a judge, or nobody) so you can tell why a case hasn't moved without opening it. Opening a case gives you the file:

  • Charges & disposition: each charge with its penal-code range; judges set Guilty / Not Guilty / Dismissed / Reduced.
  • Case proceedings: a persistent, turn-based courtroom chat shared by the judge, officer, and defendant. In AI mode the judge drives it: staging openings, questioning parties, and (with the trial flow) voicing a prosecutor and public defender. Officers and defendants see a read-only timeline and only get a compose box when the court is waiting on them; they can speak out of turn, but they're warned it may prejudice the case. The lane you speak in follows your Act as hat, and each lane belongs to one party: only the officer who filed the case testifies for law enforcement on it, and only the defendant or their appointed counsel speaks for the defence. If you hold a hat but not on that matter — a chief in the Law Enforcement hat on a case another officer filed — the panel says so and points you at the hat you do hold, rather than letting you speak in someone else's name.
  • Report sufficiency: the review verdict (Strong / Adequate / Weak / Deficient) with deficiencies and reasoning, plus Proceed / Kick back / Dismiss actions.
  • Sentencing: a penal-code-driven panel where the judge sets per-charge jail days (bounded by the range), a time-served credit, and pronounces the sentence.
  • Rap sheet and Hearings panels alongside.

Who is the case waiting on?

Every case file opens its proceedings with a line saying exactly that, in all five modes: "Waiting on the filing officer", "Waiting on the defendant", "Waiting on a judge", with what that party has to do, how long it has been waiting, and, where a timeout applies, when the court stops waiting and what happens then. When the court is waiting on you, it says "Your turn" and tells you what to do.

Silence is normal here: Human judge and Automatic never rule on their own, AI drafts, you approve pauses after each turn for a judge, and even AI judge stops to put a question to a real person. The line tells you which of those you're looking at, so nobody is left wondering whether the court is thinking, stuck, or waiting on them.

The act as picker at the top of the terminal also badges each of your hats (the bench, law enforcement, and each of your civilian characters) with how many matters are waiting on that one, so you don't have to switch through them to find it.

Confirm gates in AI drafts, you approve

In AI drafts, you approve the AI drafts a verdict or sentence and parks it for a human. The judge sees a "The court has drafted a verdict/sentence for your confirmation" prompt with Confirm and Reject buttons. Anything above your auto-handle max class (infraction / misdemeanor / felony) always requires this confirmation; at or below it, the AI may finalize on its own.

Report sufficiency review

The judge grades whether the report's facts support the elements of each charge: substance, not grammar or length. A short but complete report passes; a long but baseless one fails. In AI judge / AI drafts, you approve the AI runs it; in Automatic / Human judge it's the deterministic checklist. A deficient report can be dismissed, reduced, or kicked back to the officer (tagged [COURT] so it's distinct from a supervisor kickback) to amend and refile.

Docket, Custody, Judgments

  • Docket: all scheduled hearings across cases, sorted by date.
  • Custody: the corrections roster.
  • Judgments: the permanent record of rulings and court documents (sentencing orders, dismissals, signed/served/denied warrants).

Notify

Rather than a passive board, a clerk or judge can push a court alert (warrant signed, verdict, court date) to a chosen audience: all on-duty officers, dispatch, need-to-know, or just me. It fans out over the live connection and, optionally, to Discord.


Licence suspension & reinstatement

A charge can suspend any licence type, not just the driver licence. In Admin → Penal Code, each charge has a "Suspends these licences on conviction" picker. Tick Firearm and CCW on a weapons offence, Pilot on an aviation one, and so on.

  • Driver and CDL also suspend automatically once the community's points threshold is reached.
  • Every other permit is suspended only by a charge like that, or by a court order.

Every suspension records why it happened and who ordered it, and an officer running that person reads it on the return under DL STATUS. A court suspension asks the judge for a reason and files it under their name; an automatic one records the charge or the points total that triggered it and is attributed to Automatic; a self-imposed one says so. The licence holder sees the same reason on their own card in the portal. Reinstating a licence clears it, so a valid licence never carries the last suspension's reason. - Court → Licences (Corrections): search a person by name or licence number and Suspend, Revoke or Reinstate any licence they hold. Set a duration and the suspension lifts itself; leave it at 0 for indefinite, which requires a manual reinstatement. A SELF-IMPOSED badge marks a suspension the player set themselves for roleplay rather than a real penalty. - A civilian cannot delete a suspended or revoked licence and re-add a clean one.

Petitioning the court

An officer doesn't suspend a licence themselves. They petition the court, the same way they apply for a warrant.

  1. In the MDT's Records Console, file a License Suspension Petition. Name the subject, choose Suspend or Revoke, pick the licence types, set the days (0 = indefinite), and write the grounds.
  2. Submit to Court. It lands in Warrants / Chambers as a pending petition, exactly like a warrant.
  3. A judge reviews it and signs or denies it. Nothing is suspended while it is pending.
  4. Signing carries the order out: the licences named in the petition are suspended immediately, and only those. A firearms petition leaves the driver licence alone.

Expungement

Court staff can seal a concluded case from its case file (Expungement panel).

Sealing removes those charges from:

  • every officer's records check, the CRIMINAL HISTORY block on a person return,
  • the conviction and dismissal lists,
  • and the priors used to weight a future sentence.

Nothing is deleted. The court keeps the file, along with who sealed it and why, and the seal can be lifted at any time, and the record comes straight back.

What's eligible: dismissals and acquittals always. Convictions only if your community enables it (off by default: erasing a real conviction from every records check is a deliberate choice, not a default). A still-pending charge has no outcome to seal.

If some charges on a case are sealed and others aren't, the case stays visible: a surviving conviction must not vanish from the docket while it still counts against the defendant everywhere else.


Civil cases (player v. player)

Everything else in this page is criminal: it starts with an officer, a charge, and a penal code. A civil case is different: one player sues another over money, and no officer is involved at any point. A player crashes into someone's parked car and drives off; a contractor takes a deposit and never does the work; a tenant stops paying rent. Those are civil, and until now they had nowhere to go in the CAD.

Turn it on with the Civil court module (Admin → Court → Modules). It is off by default.

Who can file

You choose, under Admin → Court → Civil cases:

Setting Who may open a suit
Court roles only (default) Members holding a role in your COURT department (your Lawyer, District Attorney or Public Defender roles) plus judges, owners and admins. They file on behalf of whichever two characters they name. A player who wants to sue instructs one of your lawyers in character, and the lawyer files it.
Anyone The above, plus any member suing on their own behalf. A self-represented player must name one of their own characters as the plaintiff, so nobody can start a case between two other people. Lawyers keep the power to file for a client.

Pick Anyone if you want civil court without staffing a DOJ. Pick Court roles only if suing should go through your in-character legal system.

To make somebody a lawyer, give them a role in a COURT department under Admin → Departments. Any rank in that department makes them counsel and puts them in the appoint-counsel dropdown; supervisor or command rank makes them a judge as well.

Civil cases live on their own Civil Docket in the Court terminal and are numbered CV-YY-####, so a civil matter is never mistaken for a criminal one.

If you can't find the Civil Docket

It appears once the Civil court module is on and you are someone who may file. Note it is not on the judge's bench only: switch the Act as picker at the top of the terminal to your law-enforcement hat or to one of your own characters and it is in the sidebar there too.

How a civil case runs

  1. The complaint. The filer picks the plaintiff (who is suing) and the respondent (who is being sued), both real civilian characters that must belong to two different players, then the type of claim, the damages sought, and a statement of what happened. A player filing for themselves does not choose the plaintiff: it is their own character, and the form says so.
  2. Service. The respondent is served the moment it is filed: a CAD notification, an in-game notification, and the case appears under their My Cases.
  3. The answer. The respondent files one of three answers:
    • Admit the claim, and it goes straight to a judge for the amount.
    • Deny it, with their account of what happened, which the judge rules on.
    • Offer a settlement: a figure they will pay. The plaintiff then accepts it (the matter closes by consent, no judge needed) or rejects it and goes before the bench.
  4. Judgment. A judge finds for the plaintiff, awarding an amount, or for the respondent, in which case the plaintiff takes nothing. The award can never exceed the amount claimed.

Either side can speak in the proceedings thread at any time, and the respondent can appoint one of your lawyers to act for them. The plaintiff's side can withdraw the complaint at any point before judgment.

If the respondent never answers

They go into default, and a judge may then enter judgment without them: the ordinary consequence of ignoring a suit. The window is the defendant reply timeout in your court settings (48 hours by default).

Nothing about this happens on its own. A civil case is never decided by the AI judge, never by a timeout, and never by the server: every judgment is entered by a person. The court will tell a judge a matter is ready and will note a default on the record, and then it waits.

What a civil case does not do

  • It is not a criminal record. A civil judgment never appears on a rap sheet or a records check, and it is not a prior at anyone's future sentencing. Nobody is charged with anything.
  • No jail, no licence action, no bail. The only outcome is money.
  • The CAD does not move the money. It records the judgment and tells both parties. Whether it gets paid is roleplay between the players. Settle it in character, the same as any other debt.

Custody & corrections

A jail sentence adds the defendant to the Custody Roster with an INCARCERATED flag. By default release is manual: a judge clicks Release when the sentence is served. If you set minutes per day, the roster shows a live countdown and the defendant becomes eligible for release when it hits zero.

The sentence is emitted to FiveM as well. PulseCAD is the source of truth for the sentence, but each community's own jail script decides how the in-game jail actually works (see below).


What civilians do

From the Civilian Portal, a defendant can:

  • Plead on a citation or charge: Guilty or No Contest turns the fine into a bill to pay; Not Guilty opens a case to contest it.
  • Post bail to clear a hold (deducts in-game money when your community charges for bail).
  • Argue their case in the proceedings chat when the court invites them, and appoint counsel: the AI public defender by default, or name a real player as their lawyer.
  • Appeal a closed case once, which stays the prior judgment and reopens the matter for reconsideration.
  • Answer a civil suit filed against them: admit it, deny it, or offer a settlement. See Civil cases. (Appeals are criminal only; a civil matter ends at judgment.)

What officers do (MDT)

From the Law Enforcement MDT:

  • Rap sheet on the person query: prior convictions, pending charges, past sentences, and outstanding warrants (including shared-partner priors when enabled).
  • Serve warrant: act on an active court warrant in the field.
  • File warrant reports and arrest reports that feed the court automatically.
  • Court kickbacks surface back to the filing officer (as a [COURT]-tagged returned report) to amend and refile.

Discord integration

When a court Discord channel is configured (Admin → Court), the Discord bot can post court activity and act on it:

  • Warrant requests post as embeds with Sign and Deny buttons, so a judge can rule straight from Discord (the bot verifies the Discord user maps to a court-staff member first).
  • Verdicts are posted to the court channel.
  • Court-date reminders can be sent.

FiveM integration

Court rulings reach the game through the FiveM resource:

  • Sentence: a sentence event (jail days + your minutes-per-day) is emitted so your community's own jail script puts the player away however it implements jail. PulseCAD does not force an in-game mechanic.
  • Notification: any ruling sends the defendant an in-game notice ("Court Ruling: …"), useful even for communities without a custom jail script.
  • Fines and bail: when the money economy is enabled for them, court fines and posted bail are deducted in game via the same mechanism used for citations; otherwise they're recorded in PulseCAD without touching in-game money. Court fines and bail are separate switches from citations, and all three live in Admin → FiveM → Money economy (auto-fines) - there is no longer an Economy setting on the Court page. If the player is offline or short of money the fine is kept and retried for up to 7 days, and every attempt and its outcome is listed on that same FiveM panel.

These are targeted to the specific player by their license, so on a multi-server community only the server the defendant is online on acts.


  • Admin: enable Court, pick the mode, configure the judge, sentencing rules, penal-code ranges, the AI key, and the Discord court channel.
  • Civilian Portal: pleas, self-bail, appeals, and appointing counsel.
  • Law Enforcement (MDT): rap sheets, serving warrants, and filing the reports that open cases.
  • Data Sharing: how shared-partner convictions count toward priors.
  • Discord and FiveM: where rulings are announced and enforced.