WSP Ticket payoff Log a shift
Member hub

On duty

Citations & Records.

Every command is a slash (/) command. Read carefully before issuing any citations.

Handbook and quick actions

Citation system

Citation and warrant numbers are now automatic. The bot assigns every record its own ID when you run the command. Do not type a number anywhere; the field is gone.

/cite Issuing a citation

The /cite command handles all tickets (1-8) in one unified command. It contains 10 required fields and 2 optional fields.

Required fields

issuing-officer
Yourself. The officer issuing the citation.
suspect
The civilian being cited. Find and tag them.
penal-code
The charge(s). For multiple charges use a separator: | ║ ┆ 〣 ﹢
fine-amount
The total fine amount being issued. Numbers only.
jail-time
Total jail time. Selected from a menu: 0 to 600 seconds in 30-second steps.
vehicle-impound
Select Yes or No from the menu.
signature
Your ROBLOX username.
current-ticket
The ticket role the suspect currently has. If they have no tickets, select @Ticket Default. If they have Ticket I, select @Ticket I, and so on.
receiving-ticket
The ticket role they will receive from this citation. Example: if they currently have Ticket III, select @Ticket IV.
citation-immunity
Select Yes ONLY if the civilian has a Citation Immunity Card and opts to use it. If Yes, set current-ticket to @Citation Immunity Card and receiving-ticket to @Ticket Default.

Optional fields

other-officers
Ping any other officers involved in the scene.
mugshot
Required if the suspect is arrested. Photo taken at the height board in the WSP station, or against a plain wall if not transporting.

The bot files the citation as CIT-#####, posts the full record to #leo-records, a one-line summary to #citation-logs, and DMs the driver.

/leo-written Written warning

The written warning command is simple and similar to /cite. It is four fields now; the number field is gone.

issuing-officer
Yourself.
suspect
The civilian being warned.
penal-code
The charge(s) being warned. For multiple charges use a separator: | ║ ┆ 〣 ﹢
signature
Your ROBLOX username.

Files as WRN-#####.

/suspend-license License suspension

This command changed. No citation number, no signature. You now set a length, and the bot restores the license by itself when it expires.

Use it when a civilian receives Ticket V OR is charged with something that requires an automatic license suspension.

issuing-officer
Yourself.
suspect
The driver being suspended.
reason
Menu: Automatic License Suspension or Reaching Ticket V.
length
Menu: 7, 14, 30 or 60 days.
citation-link
Discord message link to the citation. Must be a real link; the command will refuse N/A.

Files as LIC-#####. Removes the licensed role, adds the suspended role, and puts both back automatically on the expiry date. You do not need to un-suspend anyone by hand.

/warrant Issuing a warrant

Warrants must be manually issued upon issuance of Ticket VIII or when a suspect fails to serve their jail time.

issuing-officer
Yourself.
suspect
The civilian being warranted.
reason
Menu: Reaching Ticket VIII, (1)1.15 Failure to Pay Fine, Failure to Serve Jail Time, Other.
citation-link
Link to the citation that prompted the warrant, or N/A.
jail-time
The jail time the suspect is required to serve.
signature
Your ROBLOX username.

Files as WAR-##### and adds the Wanted role.

/clear-warrant Clearing a warrant

This replaces the old process. No more checkmark reaction and no more #role-request post. One command does all of it.
issuing-officer
Yourself.
suspect
The civilian whose warrant is being cleared.
warrant-id
The exact ID, for example WAR-16302. Get it from /lookup.
reason
Menu: Jail Time Served, Fine Paid, Warrant Expired, Issued in Error, Other.
signature
Your ROBLOX username.

Marks the original record cleared, removes the Wanted role, and DMs the driver.

If you make a mistake on any command, do NOT resend. Contact an administrative staff member to have it corrected.
Abusing the system will result in a permanent blacklist from all GVRPJ departments.

Still having trouble? Watch the tutorial video for a full visual walkthrough.

Driver records

Every citation, warning, warrant and suspension is now stored on the driver's permanent file. You can pull anyone's history in seconds.

Reading a record ID: all four types share one running number, so IDs never repeat.

  • CIT-Citation
  • WRN-Written warning
  • WAR-Warrant
  • LIC-License suspension

/lookup Full driver record

Officers and staff only. The reply is private to you. Shows their profile, license status, active warrants, and totals for records, vehicles and payoffs.

Use the dropdown to page through their full history, or the quick-action buttons to go straight into Cite, Written Warning, Warrant or Suspend License without retyping who they are.

/record-lookup Find a record by ID

Type any record ID (CIT-16310, WAR-16303…) and it tells you which driver it belongs to and shows the record. Useful when someone gives you a citation number and nothing else.

/delete-record Removal

Command staff only. Permanently removes one record from a driver's file. Officers cannot run this.

reason
Why the record is being removed. This is recorded, so write something real.
Every removal is logged to #citation-logs: the record ID, the driver, who deleted it, and the reason given.

Vehicle registration commands

/registration-add
Register a vehicle: year, make, model, color, license-plate. Duplicate plates are rejected.
/registration-list
Private list of your own registered vehicles.
/registration-remove
Remove one of your vehicles by plate.
Driver Services panel: civilians can register, view, remove and check their own driver history from the pinned buttons, without running any commands.

Registration limits per membership are on the Patrolling page.

Citation immunity card tracking

GVRPJ One Members and Economy Shop Holders have citation exemptions. It is your job to track their usage.

Limits per month

Executive 1

Economy Shop 1

Immunity cards reset for all members on the 1st of every month.

Checking history: head to #leo-records, use the search bar, filter In: #leo-records then mentions: [user], and search through that month.

Logging usage: in /cite, set citation-immunity to Yes ONLY if the civilian has a Citation Immunity Card and opts to use it. If Yes, set current-ticket to @Citation Immunity Card and receiving-ticket to @Ticket Default.

If they've used all their cards, simply decline the request.

Ticket payoff

The payoff system is now fully automated. Civilians submit through a button, and the bot handles the citation status, the ticket role, and the DM. You only approve or deny.

How a request reaches you

Civilians press Submit Payoff on the pinned panel and fill in three fields: payoff amount, citation record ID, and evidence of payment. The request posts to #payoff-incoming-requests with the exact commands to copy.

The bot refuses a request automatically if the ID is not formatted CIT-#####, the citation is not on that driver's record, it is already marked Paid, a request for it is already pending, the driver is outside the hours of operation, or the driver is over their weekly limit. You no longer check any of that by hand.

/payoffaccept Accepting a payoff

Example: /payoffaccept citation-id: CIT-16310

citation-id
The record ID shown on the request. This is the only field.

What the bot does for you

  • Marks the citation Paid on the driver's record
  • Steps their ticket role down one level (Ticket IV to Ticket III, Ticket I to Ticket Default)
  • DMs the driver with the outcome
Do not add or remove ticket roles yourself. The bot handles it.

/payoffdeny Denying a payoff

Example: /payoffdeny citation-id: CIT-16310 reason-for-denial: Evidence screenshot unreadable

citation-id
The record ID shown on the request.
reason-for-denial
Why the payoff was denied. The driver is shown this, so write something real.

What the bot does for you

  • Returns the citation to Unpaid
  • Gives the driver their weekly payoff slot back
  • Leaves ticket roles alone
  • DMs the driver with your reason

Hours and limits (now enforced by the bot)

  • Opens Friday at 3 PM Eastern, closes Sunday at 9 PM Eastern.
  • Requests submitted outside that window are refused automatically.
  • Weekly limits: Civilian 2, Booster & Convenience 3, Premium & Executive unlimited.
  • Premium and Executive members may submit at any time, inside or outside the window.
  • Deadline to process is every Monday after Ticket Payoff closes.
Accept if the evidence supports the payoff amount for that citation.
Deny if the evidence is missing, unreadable, or does not match the citation.

Once completed, log them using the Payoff Request Logging Form. Payoffs aren't mandatory, but they count as activity for monthly promotions and demotions. To see how many you've completed, open the Law Enforcement Database, find the payoff column, then your name.

Still having trouble? Watch this video tutorial.