Skip to content

DOC-06 · Compatibility

Staying out of the way

A police mod touches the same systems as every other police mod. The only real defence is a hooking policy strict enough to be boring, applied without exception.

The guarantee: wrap, never replace

Vanilla methods are extended with @wrapMethod. It keeps the original call in the chain, so every other mod hooking the same method keeps working. @replaceMethod breaks that chain: the last mod to load wins, and the others stop working without any warning. It is the single largest cause of incompatibility between Cyberpunk mods.

So it is forbidden here, with one narrow exception: a written justification in a comment above the function, explaining why wrapping genuinely cannot do the job. Vanilla classes are extended with @addField and @addMethod instead of being replaced.

The mod also never modifies vanilla .archive files. It cannot conflict with another mod at the archive level, because it does not touch that level at all.

Prior art

Studied to learn what has already been tried and where the collisions will be. Studying is not transcribing: no code from any of these mods has been copied into this project.

Police mods studied during development, and how each one relates to this project
ModRelationshipNote
NCPDFR by Im2SlothyExplicitly not a code sourceLicensed CC BY-NC 4.0, which makes it incompatible as a source. Its approach was described from the public README only.
NCPD Duty ExpansionStudiedStudied for how it treats going on duty as an activity, not a toggle.
Law Enforcement OverhaulMandatory compatibility targetOverlaps directly with police behaviour, so coexisting with it is not optional. Testing against it is Phase 7 work.
NCPD and MaxTac Spawn TweakStudiedStudied for where it hooks into the spawning side of the prevention system.
Immersive NCPD HotlineStudiedStudied for how it presents a call to the player without breaking the HUD’s own language.
NCPD Prevention Police EnhancementStudiedStudied for how it handles the prevention system, the same system duty mode has to suppress.