Skip to content

Alpha · No public build yet

Night City calls it in. You take the call.

Go on duty at the Watson precinct and the city stops treating you as a target. The radio hands you a call. The suspect is already out there in traffic, and when you close in, he runs. A police gameplay mod for Cyberpunk 2077, written in redscript and built on the game's own AI instead of against it.

The shift

Go on duty. Take the call the radio hands you. Run the suspect down, call in a unit if you need one, and take him into custody. That is where the shift ends today, because there is nowhere to write it up yet. What is marked confirmed was played end to end in game; what is missing is listed just the same.

Confirmed in game

05

Not built yet

01
NCPD DISPATCH · FIVE DEAD ENDS AND WHAT EACH ONE COST · FIVE ATTEMPTS · HALF A DAY · ONE REWRITE · FOUR DAYS · FIVE DAYS

From the devlog

Five times I wrote something the game already did.

All five started as my own code fighting the engine, and none of that code survived. Here is what each one cost before the job went back to the game.

  • What I wrote

    Zero the wanted level. Clear the threat entry. Flip the attitude group. Drain the heat on a timer. Four ways of suppressing heat from the outside. Every one looked correct in the log, and the stars kept coming back on their own.

    What was already there

    TogglePreventionSystem

    One call switches the whole prevention system off, instead of cleaning up after everything it produces.

  • What I wrote

    Search the script dump for the item ID of the uniform NCPD officers wear, assuming that anything you can see in game must have a handle you can reach.

    What was already there

    Cop_01_Set_*

    There is no item: it is a baked character appearance. Five ordinary garments already in the game give the right silhouette, equip the normal way and survive a save and reload.

  • What I wrote

    Spawn a cruiser next to the player. It worked, and getting in was a theft: forced entry, a stolen-vehicle prompt, and any officer nearby turning hostile.

    What was already there

    Vehicle.vehicle_list

    Registered as summonable, the car comes through the player's own summon: it is placed out of sight, drives itself to you, and is yours when it pulls up.

  • What I wrote

    The suspect spawned in front of the player, facing a wall, inside another car, or sat still until you got close. Each fix produced the next bug.

    What was already there

    RequestChaseVehicle

    The game's own chase spawner places the car off screen, on the road network, facing the right way and already driving. None of those bugs ever existed for it.

  • What I wrote

    Raise the top speed. Raise the minimum speed. Loosen the cornering limits one by one. Five days of numbers on a getaway car that still drove like it had somewhere boring to be.

    What was already there

    CancelOrInterruptCommand

    The order to flee was right all along. It sat in the queue behind the patrol order we never took away, waiting for a turn that was never coming.

Contact

Get in touch

Bug reports, callout proposals, support. Discord is the only channel — the repository is private, so there is no issue tracker — and the person who answers is the one writing the code.

One phase at a time

The whole plan is eight phases, not fifty, and only one of them is being worked on right now.

03 of 08 phases closed
  1. 00

    Research and groundwork — Closed

  2. 01

    Duty mode — Closed

  3. 02

    First dispatch, end to end — Closed

  4. 03

    Interactions — In progress

    In progress
  5. 04

    Real dispatch — Queued

  6. 05

    Pursuits and backup — Queued

  7. 06

    MDT and progression — Queued

  8. 07

    Polish and release — Queued

You cannot play it yet. You can read every wrong turn.

19 devlog entries so far, each written the week the work happened, corrections included. The GPU crash that was a driver fault and never the mod, the uniform that is not an item, five days spent tuning a getaway car that was still obeying a patrol order.

Open the devlog