Documentation
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.
| Mod | Relationship | Note |
|---|---|---|
| NCPDFR by Im2Slothy | Explicitly not a code source | Licensed CC BY-NC 4.0, which makes it incompatible as a source. Its approach was described from the public README only. |
| NCPD Duty Expansion | Studied | Studied for how it treats going on duty as an activity, not a toggle. |
| Law Enforcement Overhaul | Mandatory compatibility target | Overlaps directly with police behaviour, so coexisting with it is not optional. Testing against it is Phase 7 work. |
| NCPD and MaxTac Spawn Tweak | Studied | Studied for where it hooks into the spawning side of the prevention system. |
| Immersive NCPD Hotline | Studied | Studied for how it presents a call to the player without breaking the HUD’s own language. |
| NCPD Prevention Police Enhancement | Studied | Studied for how it handles the prevention system, the same system duty mode has to suppress. |