You are viewing a potentially older version of this package. View all versions.
DooDesch-LooseEnds-1.1.1 icon

LooseEnds

NPCs who see a corpse react (citizens call the police, police investigate) and carried bodies are heavier. Hide your bodies.

Date uploaded a week ago
Version 1.1.1
Download link DooDesch-LooseEnds-1.1.1.zip
Downloads 190
Dependency string DooDesch-LooseEnds-1.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
ifBars-S1API_Forked-3.1.1 icon
ifBars-S1API_Forked

S1API is an open source collaboration project to help standardize Schedule One modding processes. The goal is to provide a standard place for common functionalities so you can focus on making content versus reverse engineering the game.

Preferred version: 3.1.1

README

Loose Ends - Bodies That Matter for Schedule I

🛟 Need help or found a bug? Get support at support.doodesch.de/looseends.

Hide your bodies, or face the heat. In vanilla, police and citizens walk over a corpse like it isn't there. Loose Ends makes living NPCs who actually see a dead body react - citizens call the police, police enter the game's real "Investigating" pursuit - and makes carried corpses heavier, so hauling a body to its hiding spot has real weight and stress.

Version Game MelonLoader S1API

What it does

  1. Witnesses react. A living NPC (citizen or police) who actually sees a dead NPC reports it: citizens get the police called, police enter the game's real "Investigating" pursuit state. A body that is hidden from sight - in a dumpster, behind a wall, indoors, underwater, in bushes - is never seen, so nothing happens. That is the whole point: hide your bodies.
  2. Corpses are heavier. While you carry a body you move noticeably slower (and the body drags more sluggishly), scaled by a configurable multiplier - adding weight and stress to hauling a corpse to its hiding spot.

Features

  • Real line of sight. Detection uses each nearby NPC's own vision cone (VisionCone.IsPointWithinSight), so it honors field of view and the game's occlusion layers. A hidden body is genuinely unseen.
  • Killer attribution. The heat goes to whoever actually did it, captured at attack time. Unknown (environmental / NPC-vs-NPC) deaths fall back sensibly (single-player blames the local player; co-op uses a scene response).
  • Configurable realism. Hunt the killer / Scene investigation / Escalating, line-of-sight on/off, which NPC types react, pursuit level, reaction delay, cooldowns, weight, and more.
  • Cheap when idle. With no corpses in the world the mod does effectively nothing; the witness scan is throttled and only runs while a body exists.
  • Host-authoritative. Detection and every police/pursuit write run only on the server/host through the game's own networked calls, so they replicate to clients.

Requirements

  • Schedule I (IL2CPP) with MelonLoader 0.7.3+.
  • S1API (pulled in as a dependency).

Settings

Editable in UserData/MelonPreferences.cfg (category LooseEnds_01_Main):

Setting Default Meaning
Enabled on Master switch. Off = fully vanilla.
EnableInMultiplayer off Force the witness system on in co-op (experimental, host-authoritative).
RequireLineOfSight on Use the NPC vision cone so hidden bodies are unseen. Off = pure radius.
ResponseMode 0 (Hunt) 0 Hunt the killer (reliable), 1 Scene investigation (experimental), 2 Escalating.
PursuitLevel 1 1 Investigating, 2 Arresting, 3 NonLethal, 4 Lethal.
ReactionDelaySeconds 3 Delay after the first sighting before the response fires.
OncePerCorpse on Respond at most once per body.
CorpseWeightMultiplier 5 How heavy a carried corpse feels (1 = vanilla, up to 20).

Plus ReactCitizens, ReactPolice, ReactEmployees, DetectionRange, ScanIntervalSeconds, ResponseCooldownSeconds, WeightMode and more - see the in-game settings for the full list.

Multiplayer

The witness system is host-authoritative and off by default in a real co-op lobby (EnableInMultiplayer) until it has been tested with two players. Set EnableInMultiplayer = on to opt in.

License

MIT. See the included LICENSE.md.

CHANGELOG

Changelog

All notable changes to Loose Ends are documented here. This project adheres to Semantic Versioning.

[1.1.1] - 2026-08-01

Changed

  • Runs on Schedule I 0.4.6f11.
  • Needs S1API 3.1.1, up from 3.0.5. Update it along with the mod.

[1.1.0] - 2026-06-21

A reworked, more believable witness-to-police flow.

Changed

  • Civilians now phone the police for real. Instead of an instant, invisible dispatch, a civilian witness pulls out their phone and calls over the game's own ~4 second call window (native CallPoliceBehaviour, with a progress icon over their head). The call is interruptible: knock the witness out or kill them before it connects and no police are called - silence the only witness. A police officer who finds a body still reports it instantly.
  • Officers are redirected to the scene. When the call connects, the suspect's last-known position is set to the body, so the game's Investigating behaviour sends officers to search the scene rather than chasing your live position. They escalate to arresting only if they actually spot you; otherwise the case times out and is dropped.
  • Tighter, more believable detection. A body lying flat is now only noticed within a new BodySightRange (capped well below an NPC's normal sight range, since a corpse on the ground is far less conspicuous than a standing person), and close-range line of sight is resolved by the game's own visibility solver (EntityVisibility) - so partial cover (bushes, props) and dumpsters genuinely hide a body.
  • Corpse weight is in the body, not your legs. Dragging a body now makes the body resist being pulled (it lags behind the carry point, drags sluggishly, and is heavier to throw) instead of slowing the player down.

Added

  • New settings WitnessCallsPolice, BodySightRange, and NoticeRadius.

Fixed

  • The reaction is no longer globally throttled - every body a witness sees gets its own response, so a body left in front of someone is never silently ignored.
  • A witness in active combat with the player is held at "seen" and calls once the fight ends (a panicking witness still calls, exactly like vanilla); killing the witness mid-call now genuinely stops the call.
  • The corpse-weight physics are restored when an NPC is un-tracked (e.g. respawns on a new day), so the heavy-body modifier never leaks onto a living NPC.
  • Getting arrested now clears killer attribution for all outstanding bodies, so a single arrest settles the whole spree instead of re-arresting you for each corpse.

Removed

  • The old ResponseMode (Hunt / Scene / Escalating), WeightMode, and the UseSetPursuitLevel, UsePoliceCalled, RaiseLawIntensity, and UseCitizenCallAnimation levers - folded into the single native call-and-scene flow.

[1.0.0] - 2026-06-20

Initial release.

Added

  • Witnesses react. Living NPCs (citizens and police) who actually see a dead NPC report it: citizens get the police called, police enter the game's real "Investigating" pursuit. Bodies hidden from sight (dumpster, indoors, underwater, behind cover) are not seen, so the gameplay is "hide your bodies".
  • Real line of sight via each NPC's own vision cone (VisionCone.IsPointWithinSight), honoring field of view and the game's occlusion layers.
  • Killer attribution captured at attack time, so the heat goes to whoever did it; unknown (environmental / NPC-vs-NPC) deaths fall back sensibly (single-player blames the local player, co-op uses a scene response).
  • Heavier corpses. A carried corpse is made heavier (configurable, default ~5x) so disposal has weight and stress - it slows the carrier down and the body drags more sluggishly.
  • Configurable realism. Hunt the killer / Scene investigation / Escalating, line-of-sight on/off, which NPC types react, pursuit level, reaction delay, cooldowns, weight, and more - in the in-game Mod Manager / Phone App or MelonPreferences.cfg.
  • Cheap when idle - the throttled witness scan only runs while a corpse exists.
  • Host-authoritative; multiplayer is off by default (EnableInMultiplayer) until tested with two players.