You are viewing a potentially older version of this package. View all versions.
XO_WithSauce-NACops_IL2CPP-2.1.1 icon

NACops IL2CPP

NACops adds property raids, investigators and extends the configurability of the police in the Hyland Point.

Date uploaded a week ago
Version 2.1.1
Download link XO_WithSauce-NACops_IL2CPP-2.1.1.zip
Downloads 150
Dependency string XO_WithSauce-NACops_IL2CPP-2.1.1

This mod requires the following mods to function

LavaGang-MelonLoader-0.7.3 icon
LavaGang-MelonLoader

The World's First Universal Mod Loader for Unity Games compatible with both Il2Cpp and Mono

Preferred version: 0.7.3

README

NACops

SHA256 File Hash: 68EF7100CD273280165D5A78CB0A5FBF9E2BFDB37202E52E1A4C55EDFEB5AA2E

Game version: 0.4.6f12 default

Requires Melon Loader

NACops adds property raids, investigators and extends the configurability of the police in the Hyland Point.

Table of Contents



Features

  • Adds Property Raids and Property Heat system
  • Cops will occasionally appoint a disguised Private Investigator to monitor you
  • Adds functionality to security cameras, allowing police to track your crimes with them
  • Adds configuration support for officers weapons, health, damage and movement
  • Adds new Foot Patrols & Officer Sentries & Vehicle Patrols and allows for configuration of these activities
  • Cops will now try to search for players smoking illegal product and also apprehend the suspect
  • New customers will try to snitch on you resulting in Car Dispatches and Investigation
  • When dealing to unlocked customers, they have a chance to be a part of a Buy Bust!
  • Cops will give you more crime charges if arrested when the Corrupt Cops is enabled
  • Cops difficulty can be set to extreme with Lethal Cops or impossible with Racist Cops
  • Overall Cops events frequency is tied to Game Progression
  • Adds console commands to manually trigger police activities and configure the mod

Installation

If you are using Thunderstore Mod Manager you can skip these steps and just install the mod through the manager and it will work.

  • "alternate" or "alternate-beta" users: Download the NACops-MONO version.
  • "default" or "beta" users: Download the NACops-IL2CPP version.

Manual installation

  1. Install Melon Loader from a trusted source like the official MelonWiki and follow their setup instructions.
  2. With Melon Loader install version 0.7.3 for Schedule I
  3. Download the correct version and unzip the downloaded folder, here you will find the Mods folder containing the mod .dll file and UserData folder containing the mod data folder
  4. Copy the contents Mods folder into the Steam/steamapps/common/Schedule I/Mods folder
  5. Copy the contents of UserData folder into the Steam/steamapps/common/Schedule I/UserData folder

Config Files Locations

If you install the mod manually you will find all the config files from the following directory:

UserData/XO_WithSauce-NACops/

If you installed with Thunderstore Mod manager the config files will be in the following directory:

UserData/XO_WithSauce-NACops_MONO/XO_WithSauce-NACops/

OR

UserData/XO_WithSauce-NACops_IL2CPP/XO_WithSauce-NACops/

Property Raids

Property raids are configurable events where a group of raid police enter your property, steal your illegal products, destroy your growing gear and disrupt your drug producing operations.

Property Raids Info

  • Property raids can begin in the morning when the player wakes up
  • Properties are only valid for a raid if there are enough items built inside
  • If the property has high enough heat and it has not been raided recently, a group of 3 officers will spawn to partake in the raid
  • When arriving at the property the raid officers will scare any hired employees

Raid officers can have 3 different roles based on what the property has built inside:

  1. Destroy Growing Gear: Take out any pots, drying racks or mushroom beds in the property
  2. Destroy Lab Gear: Take out any advanced mixing stations, lab ovens, chemistry stations or cauldrons
  3. Search Containers: Search the containers in the property for illegal products! Only safes and beds can be used to hide items from these officers.
  • By default each raid officer can destroy only 4 built items or search 4 containers.

  • After the raid officer is done with their task, they leave the property and despawn.

Property Raids Configuration

Property Raids frequency, required heat and raid officers can be configured from the raid.json file.

  1. Open the Mods/NACops/raid.json file
  2. This file can be modified to change raid related logic and its contents by default are:
{
  "TraverseToPropertySpeed": 0.47,
  "ClearPropertySpeed": 0.38,
  "MaxDestroyIters": 4,
  "RaidCopsCount": 3,
  "DaysUntilCanRaid": 8,
  "PropertyHeatThreshold": 14
}
  • TraverseToPropertySpeed:
    • How fast the raid officers move while traveling to property
    • Range: 0.1 - 1.0
  • ClearPropertySpeed:
    • How fast the officers move while performing their task at the property
    • Range: 0.1 - 1.0
  • MaxDestroyIters:
    • Maximum amount of built items destroyed OR containers cleared
    • Range: 1-10
  • RaidCopsCount:
    • How many raid officers get spawned to raid a property
    • Range: 1-10
  • DaysUntilCanRaid:
    • How many days have to be waited for a raid to begin again
    • Range: 1-20
  • PropertyHeatThreshold:
    • How high the property heat must be for a raid to begin
    • Range: 1-100

Increasing the RaidCopsCount and MaxDestroyIters values will require more built items in your property to be valid for a raid. The default values are just low enough to allow Bungalow and Sweatshop to be raided if fully built!


Private Investigator

The private investigator spawns randomly with increasing frequency based on your total Networth! They spawn with a random name, clothing and appearance.


During the investigation the officer follows you around and tries to maintain a line of sight or stand nearby. While doing this they list all the properties you have entered, how many times you've been spotted and how many times you've been nearby. At the end of their 4 (ingame) hour shift, based on their investigation the property heats increase or decrease.


Property Heat Data

Any property with property heat higher than 12 will have the heat decrease by 1 each passing day. Each time a raid occurs the property heat is reset to 0.

The Property Heat data is saved to Mods/NACops/HeatData/(organisation).json automatically when saving the game.

You can modify the content of this file and change the days passed or the current property heat. The content is by default:

{
  "loadedPropertyHeats": [
    {
      "propertyCode": "sweatshop",
      "propertyHeat": 0,
      "daysSinceLastRaid": 0
    },
    {
      "propertyCode": "bungalow",
      "propertyHeat": 0,
      "daysSinceLastRaid": 0
    },
    {
      "propertyCode": "storageunit",
      "propertyHeat": 0,
      "daysSinceLastRaid": 0
    },
    {
      "propertyCode": "dockswarehouse",
      "propertyHeat": 0,
      "daysSinceLastRaid": 0
    },
    {
      "propertyCode": "barn",
      "propertyHeat": 0,
      "daysSinceLastRaid": 0
    },
    {
      "propertyCode": "manor",
      "propertyHeat": 0,
      "daysSinceLastRaid": 0
    }
  ]
}
  • propertyCode: Exact property code game uses to identify the property.

  • propertyHeat: Accumulated property heat. Must be higher than raid.json->PropertyHeatThreshold for a raid to begin.

  • daysSinceLastRaid: Days passed since the last raid. Any owned properties will increase this by 1 each time player wakes up. Must be higher than raid.json->DaysUntilCanRaid for a raid to begin.

Mass Surveillance

Cameras across the Hyland Point can now track the Players location and notice crimes, potentially alerting nearby officers or dispatching officers from station. Mass surveillance settings can be modified from the surveillance.json file.

  • Active security cameras change each day
  • Active security cameras can be broken by hitting them or shooting them, in order to disable them.
  • Active security cameras have a blue light on them and they render a blue beam whenever they notice a player

Unidirectional Cameras

Unidirectional cameras are wall mounted cameras with limited frustrum.

Omnidirectional Cameras

Omnidirectional cameras are half-sphere cameras with 360-degree coverage.

In-Game Console Support

The NACops mod supports using the in-game console to run events, list all of the added sentries and patrols, visualizing positions of sentries or routes of foot / vehicle patrols and building your own vehicle patrol routes, foot patrol routes or new sentries.

Use: nacops help to see all the supported commands in Melon Loader Console

Use: nacops enable logs to enable all debug logging



List

You need to specify an index when spawning or visualizing. The List command allows you to easily see and list all of the indexes.

Example usage: nacops list footpatrol

Print into the console a list with "Index: Name" structure of all the mod added foot patrols

Example usage: nacops list raid

Print into the console a list with "Index: Property Code, Days Since Last Raid, Property Heat"



Spawn

You need to specify an index when spawning a raid, foot patrol, vehicle patrol or a sentry. The private investigator does not need a spawn index.

Example usage: nacops spawn footpatrol 0

Spawn the first index (0) of the mod added foot patrols instantly.

Example usage: nacops spawn sentry 2

Spawn the third index (2) of the mod added sentries instantly.

Example usage: nacops spawn raid 1

Start a raid instantly at the second index (1) (by default Bungalow in HeatData)

Example usage: nacops spawn investigator

Spawn an investigator instantly. No index needed.

Example usage: nacops spawn surveillance

Instantly enable nearest security camera to the player. No index needed.



Visualize

You need to specify an index when visualizing a foot patrol, vehicle patrol or sentry.

Example usage: nacops visualize footpatrol 0

Visualize the first index (0) of the mod added foot patrols route.

Example usage: nacops visualize sentry 2

Visualize the third index (2) of the mod added sentries standing positions.

Example usage: nacops visualize vehiclepatrol 1

Visualize the second index (1) of the mod added vehicle patrols route.


You can also visualize the Mass Surveillance active camera positions.

Example usage: nacops visualize surveillance

Visualize the active camera positions, no index needed.


You can also visualize specific police related analytics to aid in mod configuring.

Example usage: nacops visualize analytics

Display as text alot of information related to the police officers behaviours and amounts, no index needed.


Build

You can build new foot patrol routes, vehicle patrol routes or sentries easily with a few commands. These get automatically saved to Mods/NACops/Spawn/ with a random identifier. You can find your own generated builds by scrolling to the end of the file. The random identifier is printed into the Melon Loader Console when saving.

To apply any new builds you must go back to main menu and reload the save or exit the game and re-launch.


Build a new foot patrol route:

Example usage: nacops build footpatrol start -> Walk -> nacops build footpatrol stop

Start drawing a path for a new foot patrol from your current position. Walk around to make the path. Then use the stop command to stop it. This will automatically save the path to the end of patrols.json file.


Build a new foot patrol route:

Example usage: nacops build vehiclepatrol start -> Walk -> nacops build vehiclepatrol stop

Remember to build path only on a road. Start drawing a path for a new vehicle patrol from your current position. Walk on the road to make the path. Then use the stop command to stop it. This will automatically save the path to the end of vehiclepatrols.json file.


Build a new sentry position:

Example usage: 1st position: nacops build sentry start -> 2nd position: nacops build sentry stop

Each sentry needs 2 positions. Walk into the first position then use the start command. Walk to another nearby position and then use the stop command. This sets the positions and automatically saves the sentry to the end of sentrys.json file.



Configuration

(Optional) Mod Configuration Steps:

  1. Open the XO_WithSauce-NACops folder and locate the file called config.json.
  2. The default contents of the config.json file are as follows:

You can alternatively change these settings with the UserData/MelonPreferences.cfg file OR the Schedule I mod manager phone app.

{
  "DebugMode": false,
  "RaidsEnabled": true,
  "ExtraOfficerPatrols": true,
  "ExtraVehiclePatrols": true,
  "ExtraOfficerSentries": true,
  "CheckpointsEnabled": true,
  "NoOpenCarryWeapons": true,
  "PrivateInvestigator": true,
  "WeedInvestigator": true,
  "CorruptCops": true,
  "SnitchingSamples": true,
  "BuyBusts": true,
  "MassSurveillance": true,
  "NearbyCrazyCops": true,
  "LethalCops": false,
  "RacistCops": false
}
  • DebugMode:

    • true: Makes Buy busts and Snitching Samples always trigger regardless of chance
    • false: Disabled
  • RaidsEnabled: true

    • true: Use the raid.json file to run raids and save property heat data
    • false: Disabled
  • ExtraOfficerPatrols:

    • true: Use the Spawn/patrols.json file to create more Foot Patrols
    • false: Disabled
  • ExtraVehiclePatrols:

    • true: Use the Spawn/vehiclepatrols.json file to create more Vehicle Patrols
    • false: Disabled
  • ExtraOfficerSentries:

    • true: Use the Spawn/sentrys.json file to create more Officer Sentries
    • false: Disabled
  • CheckpointsEnabled:

    • true: Enable the usage of Road Checkpoints
    • false: Disable all the Road Checkpoints
  • NoOpenCarryWeapons:

    • true: Makes holding weapons or having them in inventory illegal
    • false: Disabled
  • PrivateInvestigator:

    • true: Spawns a disguised officer to monitor you and build up property heat
    • false: Disabled
  • WeedInvestigator:

    • true: Forces nearby cops to find you and body search when consuming any drug nearby
    • false: Disabled
  • CorruptCops:

    • true: Cops will give you false charges when the events run
    • false: Disabled
  • SnitchingSamples:

    • true: When you give Potential Customers samples they have a chance to Snitch on you -> Vehicle patrol + Investigation status
    • false: Disabled
  • BuyBusts:

    • true: When you deal customers product, based on the customer relationship this might trigger a Buy Bust, spawning a Cop behind you!
    • false: Disabled
  • MassSurveillance:

    • true: Enable usage of security cameras across Hyland point
    • false: Disabled
  • NearbyCrazyCops:

    • true: Forces nearby cops to actively find you and initiate body search. If inside a vehicle this can trigger a vehicle pursuit.
    • false: Disabled
  • LethalCops:

    • true: Forces a nearby cop to actively target you and lethally hunt you
    • false: Disabled
  • RacistCops:

    • true: While playing as a black character, forces all nearby officers within 80 units to hunt you lethally on sight
    • false: Disabled

(Optional) Officer Configuration Steps:

  1. Open the XO_WithSauce-NACops folder and locate the file called officer.json.
  2. The default contents of the officer.json file are as follows:
{
  "ModAddedOfficersCount": 8,
  "CanEnterBuildings": true,
  "ShowNoticeIcons": true,
  "OverrideArresting": true,
  "ArrestTime": 1.25,
  "ArrestRange": 3.50,
  "OverrideMovement": true,
  "MovementSpeedMultiplier": 1.45,
  "OverrideWeapon": true,
  "RangedWeapon": "m1911",
  "WeaponDamage": 46.0,
  "WeaponAimTimeMax": 1.0,
  "WeaponAimTimeMin": 0.5,
  "WeaponMagSize": 20,
  "WeaponFireRate": 0.33,
  "WeaponMaxRange": 25.0,
  "WeaponReloadTime": 0.5,
  "WeaponRaiseTime": 0.2,
  "WeaponHitChanceMax": 0.3,
  "WeaponHitChanceMin": 0.8,
  "OverrideTaser": true,
  "TaserDamage": 5.0,
  "TaserAimTimeMax": 1.0,
  "TaserAimTimeMin": 0.5,
  "TaserFireRate": 3.0,
  "TaserMaxRange": 15.0,
  "TaserReloadTime": 1.0,
  "TaserRaiseTime": 0.7,
  "TaserHitChanceMax": 0.3,
  "TaserHitChanceMin": 0.8,
  "OverrideMaxHealth": true,
  "OfficerMaxHealth": 175.0,
  "OverrideBodySearch": true,
  "BodySearchDuration": 6.0,
  "BodySearchChance": 1.0,
  "OverrideCombatBeh": true,
  "CombatGiveUpRange": 9999.0,
  "CombatSearchTime": 9999.0,
  "CombatMoveSpeed": 1.3,
  "CombatEndAfterHits": 0,
  "OverrideVision": true,
  "VisionRangeMultiplier": 2.0,
  "VisionSpeed": {
    "Suspicious": 0.3,
    "DisobeyingCurfew": 0.3,
    "Vandalizing": 0.3,
    "PettyCrime": 0.2,
    "DrugDealing": 0.4,
    "Wanted": 0.1,
    "Pickpocketing": 0.3,
    "DischargingWeapon": 0.1,
    "Brandishing": 0.1,
  } 
}
  • ModAddedOfficersCount:

    • How many additional officers to spawn into the world.
    • Range: 0 - 20
  • CanEnterBuildings:

    • true: Officers can enter players properties. Player can enter their own properties while wanted.
    • false: Disabled
  • ShowNoticeIcons:

    • true: Officers will display the "?" and "!" Icons when seeing player committing crimes
    • false: Disabled
  • OverrideArresting:

    • true: Use the ArrestTime and ArrestRange values to override arresting behaviour
    • false: Uses the game default settings on the officers or other mods settings.
  • OverrideMovement:

    • true: Apply the MovementSpeedMultiplier
    • false: Uses the game default settings on the officers or other mods settings.
  • OverrideWeapon:

    • true: Apply the Weapon stats to the selected Ranged Weapon
    • false: Uses the game default settings on the officers weapon or other mods settings.
  • RangedWeapon:

    • Can be used to change police officers default weapon. Supported values are: "m1911", "goldenm1911", "revolver" and "shotgun"
  • OverrideTaser:

    • true: Apply the Taser stats to the taser
    • false: Uses the game default settings on the officers taser or other mods settings.
  • OverrideMaxHealth:

    • true: Apply the OfficerMaxHealth
    • false: Uses the game default settings on the officers or other mods settings.
  • OverrideBodySearch:

    • true: Apply the BodySearchDuration and BodySearchChance values to Body Searching behaviour
    • false: Uses the game default settings on the officers or other mods settings.
  • OverrideCombatBeh:

    • true: Apply the CombatGiveUpRange, CombatSearchTime, CombatMoveSpeed and CombatEndAfterHits
    • false: Uses the game default settings on the officers or other mods settings.
  • OverrideVision:

    • true: Apply the VisionRangeMultiplier and all of the VisionSpeed vision state settings to all officers
    • false: Uses the game default settings on the officers vision or other mods settings.
  • VisionSpeed:

    • Contains a list of all possible vision states and their respective times that it takes for officers to notice them. (Example, pickpocketing takes 0.3 seconds to notice)
    • The vision speed values are all at default values, but you can change them if you want.

(Optional) Foot Patrol Configuration Steps:

  1. Open the XO_WithSauce-NACops folder and then Spawn folder and locate the file called patrols.json.

  2. The patrols.json file contains multiple preset patrols. This file can be modified by removing, changing values or adding new patrols templates.

  3. The ModAddedOfficerCount in officers.json file should be increased when:

    • Adding new templates
    • Increasing officer counts
    • Increasing Activity length or weekdays
  4. Each added patrol contains following example config values:

{
    "startTime": 730,
    "endTime": 1050,
    "members": 2,
    "intensityRequirement": 0,
    "onlyIfCurfew": false,
    "name": "Northtown Canal Loop",
    "days": [ "tue", "thu", "sat" ],
    "waypoints": [
        {
            "x": -71.256,
            "y": 0.0,
            "z": 41.394
        },
        ...
        {
          "x": -67.629,
          "y": 0.0,
          "z": 41.367
        }
    ]
},
  • startTime:

    • When the activity should start
    • Example: 07:30 is 730
  • endTime:

    • When the activity should end
    • Example: 10:50 is 1050
  • members:

    • How many officers partake in the activity
    • Range 1-4
  • intensityRequirement

    • Law intensity required for the activity to be enabled
    • Range (min) 0-10 (max)
  • onlyIfCurfew:

    • true: Only run the activity during curfew
    • false: Run the activity before and during curfew
  • name:

    • Custom name for the activity
  • days:

    • Contains a list of abbreviated weekdays which indicate what weekdays use this activity
    • Supported Values: "mon", "tue", "wed", "thu", "fri", "sat", "sun"
  • waypoints:

    • Contains a list of waypoints which the officers traverse during patrol
    • Each waypoint needs X and Z values. The Y value can be 0.0

(Optional) Vehicle Patrol Configuration Steps:

  1. Open the XO_WithSauce-NACops folder and then Spawn folder and locate the file called vehiclepatrols.json.
  2. The vehiclepatrols.json file contains multiple preset patrols. This file can be modified by removing, changing values or adding new patrols templates.
  3. The ModAddedOfficerCount in officers.json file should be increased when:
  • Adding new templates
  • Increasing officer counts
  • Activity length or weekdays
  1. Each added patrol contains following example config values:
{
    "startTime": 730,
    "intensityRequirement": 0,
    "onlyIfCurfew": false,
    "name": "Full Map Loop",
    "days": [ "tue", "thu", "sat" ],
    "waypoints": [
        {
            "x": 17.76604,
            "y": 1.36655593,
            "z": 50.36123
        },
        ...
        {
          "x": 64.61583,
          "y": 1.37344146,
          "z": 52.04244
        }
    ]
},
  • startTime:

    • When the activity should start
    • Example: 07:30 is 730
  • intensityRequirement

    • Law intensity required for the activity to be enabled
    • Range (min) 0-10 (max)
  • onlyIfCurfew:

    • true: Only run the activity during curfew
    • false: Run the activity before and during curfew
  • name:

    • Custom name for the activity
  • days:

    • Contains a list of abbreviated weekdays which indicate what weekdays use this activity
    • Supported Values: "mon", "tue", "wed", "thu", "fri", "sat", "sun"
  • waypoints:

    • Contains a list of waypoints which the officers traverse during patrol
    • Each waypoint needs X and Z values. The Y value can be 0.0

(Optional) Officer Sentry Configuration Steps:

  1. Open the XO_WithSauce-NACops folder and locate the file called sentrys.json.
  2. The sentrys.json file contains multiple preset sentry positions. This file can be modified by removing, changing values or adding new patrols templates.
  3. The ModAddedOfficerCount in officers.json file should be increased when:
  • Adding new templates
  • Increasing officer counts
  • Activity length or weekdays
  1. Each added patrol contains following example config values:
{
    "startTime": 2230,
    "endTime": 330,
    "members": 1,
    "minutesPerPoint": 60,
    "intensityRequirement": 0,
    "onlyIfCurfew": false,
    "name": "Northtown Pharmacy Sentry",
    "days": [ "thu", "fri", "sat", "sun" ],
    "standPosition1": {
        "x": -55.705,
        "y": 0.0,
        "z": 122.622
    },
    "pos1Rotation": {
        "x": 0.0,
        "y": 297.0,
        "z": 0.0
    },
    "standPosition2": {
        "x": -64.092,
        "y": 0.0,
        "z": 119.330
    },
    "pos2Rotation": {
        "x": 0.0,
        "y": 15.0,
        "z": 0.0
    }
},
  • startTime:

    • When the activity should start
    • Example: 07:30 is 730
  • endTime:

    • When the activity should end
    • Example: 10:50 is 1050
  • members:

    • How many officers partake in the activity
    • Range 1 (limit)
  • minutesPerPoint:

    • How long officer stands still before changing to the next standing position
  • intensityRequirement

    • Law intensity required for the activity to be enabled
    • Range (min) 0-10 (max)
  • onlyIfCurfew:

    • true: Only run the activity during curfew
    • false: Run the activity before and during curfew
  • name:

    • Custom name for the activity
  • days:

    • Contains a list of abbreviated weekdays which indicate what weekdays use this activity
    • Supported Values: "mon", "tue", "wed", "thu", "fri", "sat", "sun"
  • standPosition (1 and 2):

    • Requires stand positions with X and Z values
  • posRotation (1 and 2):

    • Requires officer rotation Y value

(Optional) Progression difficulty configuration:

  1. Open the XO_WithSauce-NACops folder and locate the file called progression.json.
  2. The progression.json file contains progression related thresholds and their respective random ranges. Each one is explained after the json file representation.
  3. You can modify these or add new ones based on your liking. The default configuration increases the difficulty and frequency of mod added events with progression.
{
  "LethalCopFrequency": [
    { "MinOf": 0, "Min": 30.0, "Max": 60.0 },
    { "MinOf": 5, "Min": 20.0, "Max": 60.0 },
    { "MinOf": 10, "Min": 20.0, "Max": 50.0 },
    { "MinOf": 20, "Min": 15.0, "Max": 40.0 },
    { "MinOf": 30, "Min": 10.0, "Max": 30.0 },
    { "MinOf": 40, "Min": 10.0, "Max": 20.0 },
    { "MinOf": 50, "Min": 8.0, "Max": 18.0 }
  ],
  "LethalCopRange": [
    { "MinOf": 0, "Min": 1.0, "Max": 3.0 },
    { "MinOf": 8000, "Min": 1.0, "Max": 5.0 },
    { "MinOf": 30000, "Min": 2.0, "Max": 6.0 },
    { "MinOf": 100000, "Min": 3.0, "Max": 8.0 },
    { "MinOf": 300000, "Min": 4.0, "Max": 10.0 },
    { "MinOf": 600000, "Min": 9.0, "Max": 14.0 },
    { "MinOf": 1000000, "Min": 10.0, "Max": 15.0 }
  ],
  "NearbyCrazyFrequency": [
    { "MinOf": 0, "Min": 120.0, "Max": 400.0 },
    { "MinOf": 5, "Min": 120.0, "Max": 350.0 },
    { "MinOf": 10, "Min": 100.0, "Max": 200.0 },
    { "MinOf": 20, "Min": 80.0, "Max": 100.0 },
    { "MinOf": 30, "Min": 60.0, "Max": 100.0 },
    { "MinOf": 40, "Min": 50.0, "Max": 80.0 },
    { "MinOf": 50, "Min": 30.0, "Max": 80.0 }
  ],
  "NearbyCrazyRange": [
    { "MinOf": 0, "Min": 10.0, "Max": 20.0 },
    { "MinOf": 8000, "Min": 10.0, "Max": 25.0 },
    { "MinOf": 30000, "Min": 10.0, "Max": 30.0 },
    { "MinOf": 100000, "Min": 20.0, "Max": 35.0 },
    { "MinOf": 300000, "Min": 20.0, "Max": 40.0 },
    { "MinOf": 500000, "Min": 25.0, "Max": 40.0 }
  ],
  "PIFrequency": [
    { "MinOf": 0, "Min": 600.0, "Max": 1200.0 },
    { "MinOf": 9000, "Min": 500.0, "Max": 1000.0 },
    { "MinOf": 30000, "Min": 450.0, "Max": 800.0 },
    { "MinOf": 50000, "Min": 400.0, "Max": 800.0 },
    { "MinOf": 80000, "Min": 300.0, "Max": 600.0 },
    { "MinOf": 300000, "Min": 300.0, "Max": 550.0 },
    { "MinOf": 500000, "Min": 300.0, "Max": 550.0 },
    { "MinOf": 900000, "Min": 300.0, "Max": 500.0 },
    { "MinOf": 1500000, "Min": 300.0, "Max": 500.0 },
    { "MinOf": 8000000, "Min": 300.0, "Max": 400.0 }
  ],
  "SnitchProbability": [
    { "MinOf": 0, "Min": 0.0, "Max": 0.53 },
    { "MinOf": 5, "Min": 0.0, "Max": 0.65 },
    { "MinOf": 10, "Min": 0.0, "Max": 0.7 },
    { "MinOf": 20, "Min": 0.0, "Max": 0.75 },
    { "MinOf": 30, "Min": 0.0, "Max": 0.85 },
    { "MinOf": 40, "Min": 0.0, "Max": 0.9 },
    { "MinOf": 50, "Min": 0.05, "Max": 0.95 },
    { "MinOf": 60, "Min": 0.1, "Max": 1.0 },
    { "MinOf": 70, "Min": 0.15, "Max": 1.0 },
    { "MinOf": 80, "Min": 0.2, "Max": 1.0 },
    { "MinOf": 90, "Min": 0.25, "Max": 1.0 }
  ],
  "BuyBustProbability": [
    { "MinOf": 0, "Min": 0.0, "Max": 1.0 },
    { "MinOf": 5, "Min": 0.0, "Max": 0.9 },
    { "MinOf": 10, "Min": 0.0, "Max": 0.8 },
    { "MinOf": 15, "Min": 0.0, "Max": 0.75 },
    { "MinOf": 20, "Min": 0.0, "Max": 0.65 },
    { "MinOf": 25, "Min": 0.0, "Max": 0.75 },
    { "MinOf": 30, "Min": 0.0, "Max": 0.6 },
    { "MinOf": 40, "Min": 0.0, "Max": 0.55 },
    { "MinOf": 50, "Min": 0.0, "Max": 0.49 }
  ]
}
  • MinOf value indicates the minimum required value for the observed threshold.

  • Min and Max are the random value boundaries that get selected when that threshold is met.

  • LethalCopFrequency:

    • MinOf: Days played in the save
    • Min & Max: Random amount of seconds that is waited before Lethal Cops can trigger
  • LethalCopRange:

    • MinOf: Total Networth in the save
    • Min & Max: Random range how nearby player has to be to an officer for Lethal Cops to trigger
  • NearbyCrazyFrequency:

    • MinOf: Days played in the save
    • Min & Max: Random amount of seconds that is waited before Nearby Crazy Cops can trigger
  • NearbyCrazyRange:

    • MinOf: Total Networth in the save
    • Min & Max: Random range how nearby player has to be to an officer for Nearby Crazy Cops to trigger
  • PIFrequency:

    • MinOf: Total Networth in the save
    • Min & Max: Random amount of seconds that is waited before an investigator can spawn again
  • SnitchProbability:

    • MinOf: Days played in the save
    • Min & Max: Random range of the chance to trigger Snitching Samples. When the random value goes above 0.5 the event triggers.
  • BuyBustProbability:

    • MinOf: Customer Relationship (0 worst relations to 50 best relations)
    • Min & Max: Random range of the chance to trigger a Buy Bust. When the random value goes above 0.5 the event triggers.

(Optional) Mass Surveillance configuration:

  1. Open the XO_WithSauce-NACops folder and locate the file called surveillance.json.
  2. The surveillance.json file contains the mass surveillance camera related config values and allows for changing crime fine payments. Each config value is explained after the json file representation.
  3. The default contents of the surveillance.json file are as follows:
{
  "UseUnidirectionalCameras": true,
  "UseOmnidirectionalCameras": true,
  "SurveilCrimeStatus": true,
  "SurveilBaseCrimes": true,
  "ActiveCamerasPerDay": 5,
  "CameraActivationRange": 20,
  "CameraNoticeSpeed": 2,
  "CameraNoticeCooldown": 30,
  "PayFinesFromBank": true,
  "GrowPaymentsWithProgression": true,
  "CrimePaymentMultiplier": 1,
}
  • UseUnidirectionalCameras:

    • true: Enable usage of unidirectional cameras as mass surveillance cameras
    • false: Disabled
  • UseOmnidirectionalCameras:

    • true: Enable usage of omnidirectional cameras as mass surveillance cameras
    • false: Disabled
  • SurveilCrimeStatus:

    • true: While the player has any crime status (e.g. Wanted or Under Arrest) the security cameras will notify police officers of the players location and reset the crime status progression back to start when seen
    • false: Disabled
  • SurveilBaseCrimes:

    • true: If player commits crimes, while the security camera is evaluating players presence, it stores info about crimes committed while in sight and potentially alerts nearby officers or dispatches units to location based on severity and accumulated evidence.
    • false: Disabled
  • ActiveCamerasPerDay:

    • Integer number that determines how many cameras are active each day
    • Range: 1-10
  • CameraActivationRange:

    • Integer number that determines how close player must be to an active camera, before the camera starts checking for players crimes and visibility
    • Range: 1-50
  • CameraNoticeSpeed:

    • Integer number that determines how many seconds player must be visible in total within the cameras line of sight before the camera can run its functionality
    • Range: 1-10
  • CameraNoticeCooldown:

    • Integer number that determines how long the camera will ignore player after it has finished noticing a player
    • Range: 1-60
  • PayFinesFromBank:

    • true: Enables the crime fine payment system to use bank balance, if the cash balance is not sufficient to pay for the fine
    • false: Disabled
  • GrowPaymentsWithProgression:

    • true: Increases the crime fine payments automatically based on players wealth and progression.
    • false: Disabled
  • CrimePaymentMultiplier:

    • Integer number that gets applies to each crime fine separately to increase the paid fine amount
    • Note: GrowPaymentsWithProgression must be false for this to work!

Note: The configuration files and directory structure described in this document will be created automatically in the UserData directory if they are missing.


Contribute, Build from Source or Verify Integrity -> GitHub

CHANGELOG

Version 2.1.3

  • Ensured that current mod version works in latest 0.4.6f13 update
  • Fixed Issues #8 where at Vector3.Zero invisible cop would have its awareness enabled unintendedly
  • Cleaned up the usings directives section in multiple files, removing redundant ones, removing useless newlines and organizing

Version 2.1.2

  • Fixed Issues #7 IL2CPP backend was using the Mono GetType reference for Crime types, causing the committed crimes to not count after arrest
  • Fixed Mass Surveillance Cameras having all their rendered lines visible after initiation towards Vector3 Zero, when they should be invisible until activated
  • Changed the config.json file to have the "NoOpenCarryWeapons" as true, because I forgot to change it back after testing and it was set to false in 2.1.0 and 2.1.1

Version 2.1.1

  • Fixed Issues #6 Bleuballs Boutique door being bugged and spamming errors due to a bug fix in the version 2.1.0 update

Version 2.1.0

  • Ensured that mod works in the latest 0.4.6f11 update, requiring alot of refactoring and bugfixing
  • Changed MelonLoader dependency to be 0.7.2 or Higher (prefer 0.7.3)
  • Added new feature Mass Surveillance, where cameras across the Hyland Point track player, potentially alerting cops if crimes are noticed
    • Additionally this feature allows for changing the Fine payment amounts for crimes (with mod default being that crime fines increase with progression)
    • Additionally this feature allows for paying crime charges from Bank balance instead of deducting fines from cash
  • Added support for using MelonPreferences alongside the json config system
    • Creates the main mod config.json equivalent options for preferences
    • Melon Preferences settings will always take precedence over config.json file settings, and if config.json doesnt match the Melon Preferences, then the config.json will be updated to match Melon Preferences
    • Tried to make most of the features support changing at runtime, but it still requires extensive testing and might have issues if changed at runtime
  • Added support for installing the mod through Thunderstore Mod Manager
  • Added 3-hour (ingame) cooldown to Buy Bust event so that it doesnt happen back to back in a short timeframe
  • Added support for changing the officers ranged weapons from officer.json file at "RangedWeapon", with supported values as "m1911", "goldenm1911", "revolver" and "shotgun". This will instantiate the desired weapon and show it in the officers holsters.
  • Added support for changing the officers Taser settings in officer.json file
    • Subsequently changed the Taser to be a bit better than it is by default and also it now deals small amount of damage
  • Added support for changing the officers Ranged weapons aim time settings in officer.json file and mod default set to slightly increase the speed at which officers aim with weapons
  • Added support for changing the officers Vision settings in officer.json file (controls how fast they notice crimes and at what range)
  • Added support for disabling the officers notice icons (the ? and !) that appear when they are seeing the player in officer.json file at "ShowNoticeIcons" (default true)
  • Added support for disabling Road Checkpoints in the main config.json file at "CheckpointsEnabled"
  • Added console support for visualizing the new Mass Surveillance camera locations with nacops visualize surveillance
  • Added logic to Private Investigator to allow them to rarely make phone calls during investigation and if player is inside a property, the investigator can rarely come close to the building and take photos of players property with the phone camera
  • Changed the "CombatGiveUpRange" and "CombatSearchTime" in officer.json file to be the game default values (9999.0)
  • Changed the mod default Officer movement speed from 1.75 down to 1.45 in officer.json file
  • Changed all mod related data to load from and save to UserData folder instead of the Mods folder
  • Changed the mod name to not have the "V1" suffix anymore
  • Changed officers spawning logic to instantiate a clone from a runtime officer object and re-initializing it due to spawnable prefabs not having an officer template prefab anymore
  • Changed Buy Bust officer to not spawn a new officer each time, instead now it uses a single officer object that is instantiated at startup
  • Changed Private Investigator officer to not spawn a new officer each time, instead also now uses a single officer object that is instantiated at startup
  • Changed the Private Investigator movement logic and behaviour to avoid player vision more and to keep distance to the player
  • Changed the Private Investigator movement logic to calculate distance to nearest road nodes closest point on the line segment to avoid pausing movement while the officer is on a road and to avoid pathfinding to a position that is on a road (might not work perfectly at all locations)
  • Changed the Private Investigator movement logic and behaviour to evaluate faster or slower based on the current state
  • Changed the Private Investigator Movement speed to be relative to distance to the player, with distance increasing the movement speed. Simultaneously decreased the default movement speed drastically.
  • Adjusted Private Investigator investigation result calculation to account for faster evaluation speed
  • Rotated the Private Investigator names to new ones
  • Changed Foot patrol and Sentry config logic to use the Min and Max members amount, with the config value "member" being assigned now to MaxMembers amount, and the Min members value defaulting always to 1.
  • Changed Buy Bust officer to not instantly despawn upon dying, instead now has 30-second wait before despawning
  • Changed the Property Heat data to save to a json file with (slot number)_(organisation name).json formatting instead of just the organisation name
  • Changed the Avatar randomization logic to track all created ScriptableObject instances so that upon save exit or save reload the previous ScriptableObject instances are destroyed
  • Fixed a bug where if the CanEnterBuildings is true in officer.json, player could enter unowned businesses and properties
  • Fixed a bug where the mod added vehicle patrol routes didnt have the class field for the route name assigned
  • Fixed a bug where the main mod config had the LethalCops set to true in the config loader module, when it was supposed to be default false
  • Removed Mod added vehicle count from officer.json file
  • Added to DEBUG configuration builds support for generating .csv files for analyzing police officer related behaviour weekdays, lengths, total availability, etc. to help with future development. This is old code which was removed in version 2.0.0, but now brought back lol. 2 different modes are available for this: static and runtime analysis, with static being a fast quick check and runtime analysis taking longer but being more precise.
    • Static analysis nacops list analytics -> Reads all the police scheduled events and behaviours for each weekday and outputs a .csv file to the mod UserData folder
    • Runtime analysis nacops build analytics start -> Starts recording all officer behaviours at runtime to output a precise amount of ran police events and behaviours for each weekday, outputting a .csv file when sending nacops build analytics stop command.

Version 2.0.2

  • Ensured that mod works in the 0.4.5f2 update
  • Fixed a bug in the feature Notice Open Carry weapons where brandishing state was being removed incorrectly when player was holding a weapon
  • Removed redundant code from the Notice Open Carry weapons feature

Version 2.0.1

  • Ensured that mod works in the 0.4.3f3 update
  • Added 2 new config values to the officer.json file "WeaponPath" and "WeaponDamage", the weapon path is work in progress and will not do anything in this update.
  • Changed the raid officer maximum waiting time inside the property while traveling to be 15 seconds up from 10 seconds so they will get interrupted by another search routine if they fail to path to the next object under 15 seconds.
  • Changed Investigator office to change property heat using a multiplier based on the players last crime status when the investigation concludes. This means that higher crime level at the end will also decrease property heat more. Having Dead or Alive crime status at the end causes the investigation resulted heat to be multiplied by 1.75, Wanted 1.45 and Under Arrest 1.2.
  • Changed Buy Bust officer to wait 8 seconds before enabling their arresting to avoid instant arrests
  • Simplified Buy Bust officer code
  • Fixed a bug in IL2CPP version of the mod where buy bust officer would not work due to incorrect harmony function input parameters
  • Fixed a bug in the mod spawned officers where the equipped belt would be unassigned causing errors in game logs
  • FIxed a bug in the Investigator and Raid Officers where they would cause excessive error messages in game logs
  • Fixed a bug in the Investigator where they would stay standing after investigation concludes
  • Fixed a bug in the Property Raid feature where the raiders are unable to travel to NPC Spawn Point in the Barn
  • Fixed a bug in the Property Raid feature where occasionally the raiders are unable to travel to Manor after traveling to Manor NPC Spawn Point
  • Fixed a bug in the Property Raid feature where rarely if 1 officer is alive and refuses to walk forward for some reason the raid would never start and officers would never despawn
  • Fixed a bug in the Property Raid feature where the same container could be searched twice
  • Fixed a bug where while using the CanEnterBuildings: true value in officer.json and while being under curfew the officers can arrest player inside or near their own property multiple times in a row locking them into infinite arrest loop

Version 2.0.0

  • Added Property Raids feature that allows cops to destroy your properties and steal illegal products. Raids can be configured in raid.json.

    • Raids start after sleeping through the night, in the morning if investigator has built up enough property heat and property hasnt been raided recently
  • Added Property Heat system that allows the Property Raids to happen. Private Investigator builds up heat. Heat data is saved in NACops/HeatData/(organisation name).json

  • Added new Racist Cops feature where cops really just dont like black people

  • Added new No Open Carry Weapons feature that makes guns illegal to carry in hand and in containers

  • Added Configuration support for Vehicle Patrols in vehiclepatrols.json file

  • Added Configuration support for allowing Officers to enter inside buildings in the officers.json file (CanEnterBuildings : true)

    • While this is enabled (by default in the mod) the player can enter their buildings while wanted
  • Added Configuration support for changing arrest speed and range in the officers.json file

  • Added Configuration support for changing the max amount of police vehicles in the game in the officers.json file

  • Added Configuration support for the Frequencies, Ranges and Probabilities of certain events (now in progression.json)

    • Configuration scales difficulty against Days Played, Networth & Customer relationships (more in readme)
  • Added support for Random Avatar generation for officers.

    • Now Private Investigator uses Custom random avatar, clothing and name
    • Cops added by the mod config (officers.json ModAddedOfficersCount) get also custom random avatar
  • Added support for using Console commands for NACops features, spawning visuals for the police patrols and building new routes using commands

  • Added Shrooms to the WeedInvestigator feature so now cops will try to search for player consuming it

  • Refactored the Private Investigator logic to be better for its movement and location selection and also to build up property heat

  • Moved the default location of spawnable sentrys, vehicle patrols and foot patrols .json files from NACops/file.json to NACops/Spawn/file.json

  • Moved the Vehicle Pursuit related script from CrazyCops (now removed feature) to NearbyCrazyCops feature

  • Changed the LethalCops and NearbyCrazyCops to only evaluate the nearest officer always

  • Changed the default mod builds to contain all debug logging which can be enabled in runtime by using console command "nacops enable logs", console feedback is enabled by default

  • Changed the config officers.json values for WalkSpeed and RunSpeed to be a single value: MovementSpeedMultiplier

  • Changed the config system to be more robust and generate the necessary .json configuration templates to Mods/NACops/ directory if missing

  • Changed the default order of officers.json related values to be better ordered

  • Changed the mod config and startup to start loading after game indicates succesful game load state

  • Changed the base probability for customers snitching samples from 0.8 to 0.5 and changed the progression related values in progression.json to compensate

  • Changed default body search speed to be faster

  • Changed Lethal Cops to be disabled by default in the mod config

  • Fixed a bug in the Private Investigator where the warping script would crash the game

  • Fixed a bug in the Private Investigator where after exiting a save the mod state would not reset properly and never spawn again

  • Fixed a bug in the coroutines that use progression where the progression would not update frequently enough

  • Cleaned up avatar related code to prevent errors in the game logs

  • Removed random boosting logic for the bodysearch since it didnt really work

  • Removed statistics analysis related code from repo

  • Removed CrazyCops feature as it felt excessive / unnecessary

Version v1.9.1

  • Compiled mod against latest default and alternate game versions to make it work

Version v1.9.0

  • Added configuration support for adding custom Foot Patrols and Sentry positions for officers for weekdays independently
  • Added support for changing total officers count into the officer.json file
  • Moved Officer Override configuration booleans from config.json to officer.json
  • Increased the Private Investigator minimum and maximum random cooldown time
  • Changed Lethal Cops to use random player instead of using player.local for evaluation
  • Changed Body Search random speed boosts to be less frequent
  • Changed default officer.json values to be more balanced
  • Changed WeedInvestigator feature to now also include Meth and Cocaine consumption to trigger it
  • Changed WeedInvestigator to search for player for a shorter duration
  • Removed Docks Raids feature since its not scalable and dont want to maintain that part of code
  • Removed IncludeSpawned feature since its now redundant after adding Foot Patrols and Sentries config support
  • Cleaned up code and tweaks to improve performance
  • Fixed to support latest 0.4.0f8 source code
  • Fixed bug in crazy cops, lethal cops, nearby crazy cops and drug apprehender being able to pick the same officer for simultaneous evaluation
  • Fixed a bug in WeedInvestigator where it could have overlapping evaluations for selecting an officer to search for player
  • Fixed bugs where Foot Patrol or Body search would not be initiated
  • Debug builds now provide statistics for officer usage to help with balancing generated patrols and sentries with officer count; see DebugModule for more

Version v1.8.0

  • Increased smallest distance at which drug apprehender can be selected from nearby officers to search for player on foot.

  • Officers field-of-view is now checked after player drug consumption and if at 50 units distance. If player is in field-of-view they get immediate bodysearch. Old behaviour but added a cap of 50 units distance to prevent useless vision cone calls lagging the run.

  • Decreased the time drug apprehender needs to wait before starting to search for player to 4 seconds instead of time relative to distance

  • Drug apprehender function now evaluates officers at a slower pace to fix a bug where player encounters lag during this evaluation

  • Drug apprehender can now end foot search early if 5% chance is triggered during consecutive attempts after 6 seconds into search

  • Drug apprehender total time slightly increased to 22.5 seconds in max total search length

  • Changed drug apprehender foot search to have more consistent behaviour and attempts to traverse for full max length instead of breaking search if target location is unreachable.

  • Increased cooldown time for officers to become drug apprehenders again to 30 seconds. During cooldown officer wont respond to nearby drug consumption.

  • Body search behaviour has now randomized search speed each time between 8 and 20 seconds, and has 3% chance every frame to randomly toggle speed up during the search. This feature can be disabled by setting OverrideBodySearch to false.

  • Added defensive programming measures to prevent type cast errors from breaking a coroutine in WeedInvestigator feature in IL2Cpp version (no reprod bug)

  • Added full configuration support for the default values of NACops Officers via officer.json, this includes movement, combat, gun and health variables. See README.md or Description or wiki for info.

  • Fixed miscellanious class and variable namings to match the latest available patch

  • Fixed a null reference error that was caused by player dying and loading last save in singleplayer

  • Fixed a bug that caused duplicate OnLoadComplete callbacks after loading last save in singleplayer.

  • Fixed a bug that caused duplicate OnLoadComplete callbacks after quitting to main menu and reloading any save

  • Fixed a bug where quitting the game to main menu would cause coroutines to keep running

  • Removed a RemoveListener callback function from the save load completion due to being redundant after above fixes

  • known bugs:

  • While changing costumes of officers during Buy Bust, Private Investigator and Docks Raids, the original object for police officer (which is cloned for the events) retains the costume that was set for the clone. A Random officer in the world has a red cap or a PI costume, but they are NOT a Buy Bust Officer or a PI.

Version v1.7.3

  • Reworked the Private Investigator system to spawn its own cop instead of randomly selecting existing -> Fixes a bunch of miscellanious bugs
  • Private investigator now tracks the times seen during investigation, times in proximity and times player spent in docks warehouse, evaluated every 5 sec
  • Fixed Private Investigator not adding Session Heat properly after the investigation concludes
  • Session Heat can now also be gained even if the player is not in the Docks Warehouse after the investigation concludes
  • Private Investigator spawns less often since now the spawning and following process is more consistent and reliable
  • Private Investigator eyes start glowing Yellow when halfway, Red when reaching close to triggering a Docks Raid -> Good indicator of Session Heat
  • Adjusted the Game Progression values and added new caps for Private investigator spawning threshold
  • Adjusted the Game Progression values and added new caps for Private investigator Curfew attention probability
  • Adjusted the Game Progression values and added new caps for New Customers Snitch Probability
  • Patched the Exit To Menu function to stop coroutines and clear the mod state to prevent errors when exiting the save.
  • Slightly decreased the threshold at which raids are evaluated
  • Docks Raids now spawns armed cops in the building and attack the player if they misbehave
  • Enhanced the cinematic visuals in Docks Raids
  • Fixed Bugs with Docks Raids starting and also event run
  • Removed the 30% chance requirement to trigger Docks Raids
  • Divided BuyBust, PI and Raid cops Avatar settings to their own functions
  • Fixed miscellanious bugs that would set officer travel destinations to Vector3.zero

Version v1.7.2

  • Modified WeedInvestigator function to account for the police officer vision -> Consuming in their vision will trigger bodysearch
  • Private Investigator now stores FootPatrolBehaviour groups and re-assigns them after state ends
  • Fixed Private Investigator Vision during curfew. Now disables Vision Cone totally (or enables it if rolls random chance)
  • Added a new Config value DocksRaids
  • Modified the Private Investigator to add Session Heat when the investigator sees player enter the Docks Warehouse and reduce Session Heat when the investigation ends.
  • Session Heat is cleared to 0 every time save is exited.
  • Added a new event that triggers a Raid in the Docks Warehouse (Triggered by Heat reaching 20 and player being in the warehouse and also having dispatch officers available)
    • First the screen will show a red warning
    • Police car is dispatched to the Warehouse
    • Cinematic view of the police arriving will play and the event begins
    • During the Event:
      • 2 Cops will spawn in the warehouse next to Pots and the officers will begin destroying them.
      • You must kill the cops to stop them from doing this (or if they reach max pots destroyed limit)

Version v1.7.1

  • Added a new Config value Include Spawned
  • Added a new coroutine to refresh currently active officers and conditionally apply the mod preferred settings (override settings)
  • Changed every coroutine and patch that used to reference the officers static array to use a new point-in-time copy of either recently refreshed officers on scene or officers evaluated at scene start.
  • Tied the Crazy Cops coroutine range to game progression total earnings -> More earnings larger evaluation range
  • Wrapped the Investigation + Car Dispatch logic into its own coroutine and added safety checks to prevent dispatching from Police Station with 0 occupants
  • Fixed IL2Cpp version JSON config loading, now using correct Newtonsoft assembly and reverted back to previous config loading logic.
  • Added safety checks to prevent game objects or PoliceOfficer variables being null in evaluations
  • Removed safety check in Private investigator where the officer is forced to exit vehicle -> condition will never be met since active behaviour and assigned vehicle are caught earlier
  • Removed safety check in Crazy cops that would not take into evaluation cops with Vehicle behaviour -> Was previously needed but is now correctly handled by the function so removed.
  • Added fast sleeps into the SetOfficers function it was causing lag when ran periodically through Include Spawned feature
  • Fixed a bug in the DrugConsumed coro where the function would keep executing even if no officers nearby were picked for apprehending

Version v1.7.0

  • Added Customer Buy Busts -> When dealing based on customer relation rolls a chance to spawn a cop behind you that attempts to apprehend you with taser
  • Adjusted the game progression based thresholds and frequencies for Crazy cops and Nearby crazy cops to be harder
  • Added more levels to check against in Lethal Cop Range -> Bigger lifetime earning results in larger lethal cop range and caps at 1mil
  • IL2Cpp version has a temporary fix for json config loading until next update

Version v1.6.2

  • Adjusted difficulty curve for game progression slightly to be less harder for all events
  • Added a new patch for Sample consumption on new customers to call the police and snitch on you -> Dispatch a vehicle patrol to your location and start investigation.
  • Snitch Probability tied to game progression
  • Added checks for Lethal cops to not allow player being lethally targeted if officer is currently in a Checkpoint Behaviour.
  • Added support for all coroutines and patches to be disabled / enabled accordingly from config.json
  • Changed function logic that gives more crime charges to player
  • PI Evaluates attention at curfew time based on game progression -> Random roll chance might enable the attention during curfew and allow it to see player.
  • Adjusted Nearby Crazy Cop movement speed when traveling to player previous location from 7 -> 5

Version v1.6.1

  • Caches previous behaviours and parameters accordingly to allow other mods compatibilities
  • Added support for config.json settings to allow other mods compatibilities
  • Added checks to prevent Vehicle Patrols from glitching
  • Added fixes for other miscellanious bugs
  • PI vision changed to not "notice" player during curfew time

Version v1.6.0

  • PI Evaluates Crime status on player -> Undisquises and stops state
  • Fixed previously broken logic with on load complete
  • Added vision checks for alot of functions to make the cops more "forgiving" on pursuits
  • Further tied the game into progression to increment Random Range upper and lower boundaries -> Increase evaluation range the more money player makes
  • Fixed Player dying in Police Station -> Distance to Object must be atleast 25f (might be lowered on future updates)
  • Added Investigating behaviour to be evaluated in Crazy cops with 30% of occuring.

Version v1.5.2

  • Fixing melon loader logic and fixing bugs

Version v1.5.1

  • Fixing startup logic and fixing bugs

Version v1.5.0

  • Fixed Crazy cop movement not resetting after state ends
  • Fixed Nearby Crazy cop not Turning towards player before evaluating player visibility
  • PI Evaluation forces officer to end behaviour, exit buildings and cars -> warp random nearby mesh position on player location
  • Removed the PI Eye light glowing
  • Adjusted PI Threshold upper random range to be lower -> PI appointed atleast 3 times a day