DetectiveRoutine
Join an Enforcer Division as a staff detective: shifts, reports, pay, search warrants, a badge, and enforcers who brief you at the scene.
By ekem
| Date uploaded | 3 weeks ago |
| Version | 1.0.0 |
| Download link | ekem-DetectiveRoutine-1.0.0.zip |
| Downloads | 95 |
| Dependency string | ekem-DetectiveRoutine-1.0.0 |
This mod requires the following mods to function
BepInEx-BepInExPack_IL2CPP
BepInEx pack for IL2CPP x64 Unity games. Preconfigured and ready to use.
Preferred version: 6.0.755ekem-CruncherListFix
Fixes lists on your own cruncher being cut down to one entry: every vmail in your inbox and every resident at the login screen.
Preferred version: 1.0.0README
Detective Routine
Be a detective on the city's payroll, not just a stranger with a lockpick. Join an Enforcer Division, keep your shifts, write your reports, collect your pay, and get the paperwork that lets you go where a private eye can't.
Joining the force
Apply at the front desk in the City Hall lobby. A few hours later you are assigned to one of the city's Enforcer Divisions that has a free desk. A welcome letter from your captain tells you where to report and when your shifts are. You can resign at the same desk.
Until you join, the game plays as usual.
Once you're in:
- You can go anywhere in your division's premises, like any other employee.
- You have your own account on the division's crunchers, so you can read your mail there even if you have no home.
- You get your own desk, with its cruncher and drawers, and a name placard on it. Your photo goes up on the employee board.
- You are listed in the Gov Database and in your division's Employee Database.
Shifts
Day shifts, Monday to Friday, 9 to 5 (configurable). Sign in at a cruncher in your division when your shift starts; you get a reminder an hour before. Up to an hour late counts as late. After that, the shift is missed.
Reports
The Reports app on Enforcer office crunchers lists what you owe:
- a shift report, near the end of every shift you signed in for;
- an explanation, when you were late or missed a shift;
- a crime scene write-up, for every murder scene you visit; the more evidence on your board is linked to the scene or the victim, the longer it takes;
- a case report, when you hand in a case;
- your search warrant applications (see below).
Pick a report and press Write: time runs fast while you type. You can stop and come back any time. Being Focused makes you write faster. Each report is due in 3 days.
Pay
At the end of your captain's working day, every shift you have filed a report for is paid at once: your yearly salary over 260 working days. A week of at least 4 shifts with no late arrivals, missed shifts or overdue reports earns a bonus of two shifts' pay.
Discipline
Late arrivals, missed shifts and overdue reports are strikes, and each one gets you a letter from your captain:
- a warning;
- docked pay;
- a week of probation: warrants are slower and rarer, enforcers keep you at arm's length, and you get a stack of paperwork to write;
- dismissal.
A week without a new strike forgives one.
At the crime scene
Ask an enforcer at a crime scene "What have we got?". They tell you only what they could have seen:
- right away: who the victim is, who found the body, and when;
- after an hour on the scene: the coroner's window for the time of death;
- after two hours: what the victim was killed with.
They never tell you who did it.
Tell the enforcer guarding an indoor crime scene "I need to take a look inside." and you get a pass for a couple of hours, so you're not trespassing.
Search warrants
Pin a place to your case board from the map. Open the Warrants app on an Enforcer office cruncher, pick the place, look over your grounds and press Submit. Your grounds are every piece of evidence on the board linked to that place, links you draw yourself included. This starts an application in Reports. Write it up and it goes to your captain, who only reviews applications during working hours.
More grounds take longer to write, but the review is faster and the warrant is granted more often. A granted warrant arrives as a vmail: print it and pin it to your board, or carry it around. For 24 hours you can be at that place legally. The lock is still your problem, but picking it or kicking the door in is no longer breaking and entering.
The badge
Tell someone "Enforcer Division. I need your cooperation." and for the next hour they can't refuse your questions. If you use it to get into their home or get their door code without a warrant, they complain, and that's a strike.
You can also ask any enforcer which division they are with. Your own colleagues will tease you for asking.
Also
Printouts (vmails, database records) can be picked up and carried, not just pinned.
Config
Everything is in BepInEx/config/ekem.detectiveroutine.cfg, grouped by topic: Employment, Shifts, Reports, Pay, Discipline, Badge, Briefing, Access, Warrants, Printouts. Some highlights:
Employment.OnTheForce: turn the mod's features off and play the plain game.Shifts.ShiftStart,Shifts.ShiftEnd,Shifts.ShiftDays: your schedule.Reports.ReportDays: how long you have for each report.Warrants.ReviewHours,Warrants.WarrantHours: how long the review takes and how long a warrant lasts.
Requirements
- SOD.Common
- Cruncher List Fix (installed automatically): without it, your home cruncher shows only one letter.
Works alongside DialogUIRework: the new lines go into its tabs.
CHANGELOG
Changelog
1.4.0
- Duty Roster has a new look: its own blue window with a title bar (your division and how many are on shift) and Exit, your shifts and your division's people as tiles on the left (name and a short coloured status), and the selected entry on the right in framed panels: your shifts grouped by day with hours and a coloured status, or what the officer is doing with their shift hours and days. Page buttons appear only when there's more than one page. The old look is kept: set
Cruncher.RetroLook = false. - Warrant Requests, Reports Due and Forensics get their own retro looks, each made for its job. Everything works as before.
Cruncher.RetroLook = falsekeeps the old look for all four apps.- Warrant Requests: the application is a paper form with Subject, Grounds, Armed (a tick box you click), Team, Review and Status, and the captain's decision is stamped on it: GRANTED, REFUSED, UNDER REVIEW, WITHDRAWN or NOT FILED. An arrest operation is listed under the form, and the stamp follows it: IN CUSTODY, CONVICTED, RELEASED or CALLED OFF. On the left, filter the list (All, Grounds, Active, Arrest) or type to search it by name.
- Reports Due: a stack of paperwork. Each report to write shows its due time and a thin bar of how much is written (blue, amber when urgent, red when overdue); filed reports are below in grey with what became of them. The selected report shows a large "Written" bar and whether you're writing or focused. For a transfer request the target division is on the paper and "Change division" picks the next one.
- Forensics: a lab terminal. Type the print into a large dark code field, click a pinned print to fill it in, and follow the lab queue as a table (writing up, at the lab with time left, answered).
- While you type a print code in Forensics, or search in Warrant Requests, the game no longer reacts to the same keys: an F in a print code doesn't open your case board any more. The rest of the time, the case board and other keys work at the cruncher as usual. To search in Warrant Requests, click the search box first; Enter or Esc (on an empty search) leaves it. Esc in Forensics closes the app.
1.3.2
- Your captain's personal vmails now sound like your captain. Depending on their character, a captain writes in one of six voices: stern, few words but not indifferent; warm and worried about you; anxious and rattled; by the book; cheeky and sarcastic; or the plain voice from before. The same captain always writes the same way. This covers reprimands, the unmarked gun and failed arrest notes, releases, hospital bills and doctor's orders, call-outs, the "while you're out" note, extra shifts, the killer warnings and the impatience line, and the transfer letters. Facts, links, times and amounts don't change; warrants and City Hall letters stay formal.
- More variety in the captain's vmails when you keep ending up in hospital.
- The doctor's orders vmail no longer calls all your cancelled shifts "extra": "the extra shift on Wednesday at 5:00PM and your shift on Thursday at 9:00AM".
1.3.1
- The hospital bedside choice and the notification after it name your division: "Bill it to Gamma Enforcer Division.", "Gamma Enforcer Division covered your hospital bill."
1.3.0
New
Arrest warrants
- The arrest warrant is made out for the person you name as the killer on the active murder case's Resolution Form ("What is the full name of the killer?"); they appear in Warrant Requests below the places. With no name filled in, a hint line tells you to fill it in. Your grounds are the evidence on your board linked to that person. Apply the same way as for a search warrant: write it up in Reports Due, and your captain reviews it during working hours with the same odds. One arrest request at a time, separate from search warrants. Change the name before the application is written and the application is dropped; a request already with the captain, or a team already sent, keeps its target.
- Mark the suspect as armed: a second button in Warrant Requests switches between "Unarmed" and "Armed" before you submit (and while the application is still unwritten). The app shows the team size before you submit.
- A granted warrant sends a team of 2 to 6 officers, depending on your assessment and the victims the captain knows about, led by your captain, who goes on every arrest on top of that number. Your division's officers on shift go first, then officers called in off shift, then help from one other division, whose captain joins after two of their officers. You don't take part: like officers answering a call, the team drops what it's doing (sleeping officers get woken up) and hurries to wherever the suspect is, and once the whole team is there (or after
Arrests.TimeoutHours, 2 by default, when the stragglers are brought along) the suspect is handcuffed where they are, as when you cuff someone yourself. This counts for the Resolution Form's "Arrest the identified killer" question just like your own handcuffs. Letters tell you who was sent and when the suspect is in custody. While your captain is out with the team, warrant reviews and report reading are paused, and the switchboard tells you the captain is out on an arrest. Your captain is never among the wounded. - Leave an armed killer unmarked and the team walks into gunfire: an officer may be shot (
Arrests.InjuryChance, 0.6), sometimes a second (Arrests.SecondInjuryChance, 0.25), and the arrest may fail (Arrests.FailChance, 0.5). After a failure the captain sends an angry vmail and, afterArrests.RetryHours(2), a bigger team that treats the suspect as armed, with no new application. An enforcer suspect is always treated as armed: they carry a service weapon. Even when the arrest goes fine, your captain lets you know you missed the gun. Marking an unarmed suspect as armed only sends a bigger team. Your assessment and the outcome are kept with the operation for a future rating. - Officers shot in an arrest go on sick leave for
Arrests.LeaveDays(7) and really stay home: their work days are cleared and restored when the leave ends, including on load if it ended meanwhile. They're left out of arrest teams, and Duty Roster shows when they're back. Don't remove the mod while someone is on sick leave. - Arrest operations are followed in Warrant Requests, on the line of the person they're against: status (team en route, regrouping with the retry time, in custody until the hold ends, released, convicted, called off), the team with your captain leading, officers called in off shift, the injured with the day they're back, and your armed assessment. Finished operations stay listed for a day. While regrouping, the app says the next team is still being picked instead of showing an empty team.
- Changed the name on the Resolution Form after filing? The earlier person keeps their own line in Warrant Requests while their request is under review (Withdraw works there) or while their operation is running.
- If the suspect is an enforcer, the captain's letters say so, and say it differently when it's one of your own division's officers.
- An arrest comes with a search warrant for the suspect's home, sent to your vmail like any other (no application, doesn't count toward the daily limit; not if you already hold one for that address, and not for someone with no home).
- An arrested suspect is held for
Arrests.HoldDays(1 day). Hand the case in and the game convicts the real killer as usual; anyone else is released when the case is closed or the hold runs out, and your captain lets you know.
Transfers between divisions
- Ask your captain, in person or on the phone: "I'd like a transfer to another division." The answer is "put it in writing", and a transfer request appears in Reports Due. A To button picks the target among the other divisions with a free desk, and the request shows where their office is and how many desks are free. Write it up (
Transfer.WriteHours, 1 hour) or discard it. - It's decided after
Transfer.ReviewDays(2 days, all hours count): approved if the division still has a free desk, otherwise your captain explains in a vmail. On approval you move desk, name placard, photo, office access and your place on the roster; your shifts, pay, reports, strikes and pending warrant requests stay as they are. You keep access to your old office for 2 hours to finish up. Your old captain sends a goodbye vmail, the new one a welcome letter, and their numbers go into your notebook. - One request at a time, none while you're on probation (
Transfer.Enabledto turn it off).
Enforcer Divisions (newly generated cities only; cities you already have keep their staff and names)
- Divisions are staffed by population and by desks. A bigger city gets more rank-and-file enforcers per division, but never more than the office has desks for: one cubicle always stays free for you, so you can join or transfer to any division. An ordinary office with four cubicles keeps the game's 2 enforcers besides the captain; a large one can take more. Positions left empty are removed, so rosters show no vacancies. The generation log has
[staff]lines with the numbers. - No two divisions share a name: a would-be second "Gamma" gets an unused Greek letter (
Divisions.UniqueNames).
Duty Roster (new Enforcer office cruncher app)
- Who in your division is on shift and what they're doing (arrest team, guarding a scene, on patrol, off duty, on sick leave). Only your own division is listed, and only people: arrest operations are in Warrant Requests.
- An officer who is the target of your arrest warrant shows as "Suspended, wanted" until arrested, then "In custody"; released, they're back to normal. Wanted officers are never picked for an arrest team.
- A "Your shifts" calendar at the top: the past three days and the next seven, one line per shift grouped by day, with hours, extra shifts and each shift's status in colour (scheduled, on time, late, missed, cancelled, reported, paid). Today's shift counts towards "Last 7 days".
Reports and warrants
- Reports Due keeps the reports you filed in the past week below the ones still due. Your captain reads them during working hours (
Reports.CaptainReadHours, 2 hours of the captain's time; faster when the captain is impatient), so each shows "Filed, unread" or "Read by the captain". Select one to see what it was, when you filed it and when it was read. Warrant applications show the request's fate instead: under review, granted, refused or withdrawn. - Each entry's status is coloured, with the key word in bold (to write, urgent, overdue, filed, read, under review, granted, refused...).
- Withdraw a warrant request: select it in Warrant Requests and press Withdraw, then Confirm. The review stops and no warrant comes. A withdrawn request still counts toward the daily limit.
- A warrant application you haven't written yet can be dropped from Reports Due (Discard, then Confirm), or from Warrant Requests. It isn't an obligation, so nothing is held against you.
- Handing in a case withdraws the warrant requests filed while it was your active case, and drops its unwritten applications. Requests filed before this version aren't linked to a case and stay as they are.
Hospital
- Waking up in hospital after a knock-out: your captain cancels your shifts in the next 24 hours, extra shifts included ("Doctor's orders"). Cancelled shifts carry no strike and no pay, aren't missed, need no report, and don't cost you the weekly bonus.
- No call-outs while you're on the doctor's orders. Instead, once the coroner has something (
Briefing.HoursToWeaponafter the body is found, orHoursToTimeOfDeathif that is longer), your captain sends a "While you're out" vmail: where the body is, who it is, the time-of-death window and the weapon. No call-out, no pay, no report expected. - "Bill it to the Enforcer Division." at your bedside, next to the game's "Pay medical fees" and "Attempt escape". You recover exactly as if you had paid, and the division pays the fee (
Hospital.DivisionPays, on by default). The division's patience is counted over 14 days: belowHospital.GrumbleAfter(2) paid stays you just get a notification; from then on your captain writes, more irritated each time. No strikes for it.
Call-outs and crime scenes
- Early call-in: a call-out that comes before your shift, when the shift starts before you're due at the scene, is your shift starting early. Turning up at the scene signs you in (never late, even if you get there after the shift has begun), the crime scene write-up counts as the shift report, and the shift ends as scheduled. You get the usual shift pay plus the early hours (up to
CallOutHours) atCallOutPayMultipliertimes the hourly rate, shown as "Early call-in" on the payslip. - Report in at a street crime scene: the enforcer guarding a scene that needs no pass (a street or a lobby) offers "Detective <your surname>, reporting in." If you were called out to that scene, this counts as turning up, and the crime scene report is added. Indoor scenes keep "I need to take a look inside."; a guard never offers both. "What have we got?" works at street scenes too.
Cruncher
- Enforcer office crunchers now have 9 apps, so the desktop switches to smaller icons in 5 columns when there are more than 8, and Log Off no longer falls off the bottom (
Cruncher.CompactDesktop). Other crunchers are unchanged. - The game's Employee Database and Gov Database apps get their own icons, an ID badge and a filing drawer, instead of the same sheet of paper (
Cruncher.RestyleVanillaIcons).
Changed
- Sent to a murder scene during your shift, you no longer owe both a crime scene write-up and a shift report: the write-up counts as the shift report, and a shift report already queued is dropped once the write-up is filed.
- Street crime scenes are links in call-out letters too, and the captain tells you to report to the officer at the cordon rather than "on the door".
- The captain's letter when the killer strikes again reads like a person wrote it, not a list of rule changes.
- Names of people and divisions in the mod's letters are links you can open as evidence, like in the game's own mail: the captain and division in signatures, arrest teams, injured officers, the place where a suspect was taken, the issuing division on search warrants, and the divisions in transfer letters.
- When you're hired, you're assigned to the division with the fewest free desks (as long as it has one), so you don't sit in an office full of empty desks.
- The Fingerprint Lab app is now called Forensics, so its name doesn't break mid-word on the desktop.
Fixed
- When the captain gave up ringing you and sent the call-out vmail instead, the phone kept ringing, and picking it up later got you "Never mind, it's sorted".
- A crime scene write-up for a street murder always counted 0 pieces of evidence, so it was always the shortest. Evidence linked to the street or the victim now counts, as it does indoors.
- An enforcer who has cordoned off a street crime scene with barriers (not just taped a door) should talk to you again without a reload. A game bug can leave them on alert with nothing to react to, which hides "Talk To"; when you look at them, that leftover alert is cleared (
Briefing.FixTapeTalk).
Testing
Debug.ArrestGrantKey(unbound): grants the arrest warrant request under review right away.Debug.KillerNameKey(unbound): a cheat that shows the current killer's name and address, to try arrests without solving the case.- Shift +
Debug.GrantKey: decides your transfer request right away. Debug.ArrestTestArmed(off; needsDebug.DebugKeys): every arrest target counts as an armed killer, to try the injury and failure rolls.- With
DebugLogging: every division's roster, vacancies and desks after a new game and after loading ([staff]), and looking at an enforcer or a tape/barrier going up ([tape]).
1.2.2
New
- Introduce yourself to enforcers: "Detective <your surname>, <your division>. And you are?" They give a fellow officer their name, and you learn it as you would from the game's own introduction. Other divisions answer professionally (or curtly, if that's their nature). Your own colleagues may tease you, joke, shrug or be friendly about it, depending on their personality. Your captain has a word or two as well. While this line is offered, the game's own name questions, which enforcers can refuse, are hidden for them (
Badge.HideVanillaNameLines). - Calling the division works. Division offices have no telephones of their own, so the division's number is now the City Hall switchboard. A clerk on shift answers after a short ring (
Phone.SwitchboardAnswerSeconds). Ask "Can you put me through to Captain ...?": if the captain is anywhere in City Hall, you're put through; if not, you get the home number. Already on the force? The switchboard number is added to your notebook once when you load. - Ask your captain "Any extra shifts going?" and "Can you hurry the lab on my print search?" face to face too, not just on the phone.
- Ask your own captain "Which division are you with?" and get the answer you deserve.
- Phone numbers in letters are links, as in the game's own notes: click one to open the phone's evidence, or, with a keypad open, to dial it.
- With DialogUIRework, the job lines have their own Work tab. The crime scene briefing and access stay in Investigation, the badge in Confrontation.
Fixed
- After a week or so of play you could get two shifts a day (say 9 and 11 AM). The game's clock and its running time drift apart a little, and the mod mistook a drifted shift for a missing one. Shifts are now matched by day, and duplicates already in your save are removed when you load.
- Dialog lines could stop working after loading a save: empty reply boxes, and SOD.Common errors when talking to people. Lines made through SOD.Common could be thrown away by the game while it loaded a save, and one lost line broke every line registered after it, from any mod. They're now kept, and a line already lost is dropped so the rest still work.
- "Which division are you with?" could get an empty reply box.
- The first words of whoever answers the switchboard (and of the captain once put through) were an empty box.
- Lines added by mods (this one or any other using SOD.Common) could show up below "Goodbye". Goodbye now always comes last, with or without DialogUIRework.
- Enforcers could stop talking to you after putting up crime scene tape, until you reloaded (
Briefing.FixTapeTalk). If this isn't enough,[tape]lines in the log help track it down.
1.2.1
- The testing keys in the Debug section (
GrantKey,ReportKey,CallOutKey,PhoneTestKey) are now unbound by default. F12 is Steam's screenshot key, so withDebugKeyson, a screenshot could call you out to a murder scene. Already have a config file? BepInEx keeps your old values: set these four toNoneyourself, or delete the config to regenerate it.
1.2.0
The phone update.
- Your job title is now Detective, not Enforcer: in the Gov and Employee databases, on printed records, on your desk's name placard and anywhere else the game names your job. You still serve in an Enforcer Division.
- Warrant reviews take at least 2 hours of your captain's working time, however many grounds you have (new config entry
Warrants.MinReviewHours). A murder scene used to collect enough grounds by itself to get a warrant almost at once. - Urgent reports: crime scene write-ups are due in a day (new config entry
Reports.UrgentReportDays) and show as "Urgent" in Reports Due. Overdue, they are strikes like any other report. - Call-outs: when a murder victim is found outside your shift, your captain calls you out by vmail and notification. Get to the scene within 3 hours (walk in, or ask the enforcer on the door for access) and it's an emergency shift, paid at 1.5 times a normal shift once the crime scene write-up is filed. Missing one costs you nothing but the money. Emergency shifts count towards the weekly bonus. New config entries
Shifts.CallOutHoursandPay.CallOutPayMultiplier. - The impatient captain: the more victims the current killer has, the faster your warrants are reviewed (never under the minimum) and the less often they're refused, the sooner normal reports are due, and the sharper the captain's letters. The captain writes when patience runs short; handing the case in resets it. New config section Captain, and new entries
Warrants.ImpatienceReviewFactor,Warrants.ImpatienceRefusalFactor,Reports.ImpatienceDaysPerLevel. - Debug key F12 (with
Debug.DebugKeyson): get called out to the latest murder scene right away. - The phone. Your captain phones you with a call-out: they ring your home, your rented hotel room or the division office if you are there, otherwise your home. Pick up and the captain tells you where and by when; let it ring out, or with no phone around, you get the memo as before. New config section Phone:
CallOutByPhone,RingHours. - Your welcome letter gives your captain's home number, and the division office number if the office has a phone (not every office does). They go into your notebook. Already on the force? They're added to your notebook once when you load.
- Ask a colleague in person "What's the captain's home number?".
- Phone the division office (if it has a phone) and whoever picks up can put the captain on, if the captain is in. If not, they give you the captain's home number.
- A body found during your shift: the captain sends you there too. Getting to the scene counts as signing in for the shift. If less than 3 hours of the shift are left, it's a paid emergency call-out instead.
- On the phone with your captain: "Any extra shifts going?" books an extra shift at least a day ahead (new config entry
Shifts.ExtraShiftMinLeadHours), at most one a day: the evening after your regular shift, or your usual hours on a day off. It works like any shift: sign in, report, pay, and strikes if you're late or miss it. The captain confirms with a memo. - On the phone with your captain, with a fingerprint search at the lab: "Can you hurry the lab on my print search?" halves the time left, once per search.
- The captain's tone on the phone follows the captain's impatience.
- Debug key Shift+F12 (with
Debug.DebugKeyson): your captain phones you right away.
1.1.0
The fingerprint lab update.
- Fingerprint search, if PartialPrints is installed: a new Fingerprint Lab app on Enforcer office crunchers. Type a print with
-for smudged letters, or copy one from your case board, and submit. The request is written up in Reports Due, then the lab answers by vmail with everyone on file whose print matches. The more letters are smudged, the longer the lab takes. New config section: Prints. - The lab's letter links each match's name and home address to their evidence, like names in the game's own vmail, and spells the address out (apartment and building). Warrant letters link and spell out the address the same way.
- Clearer cruncher app names (Warrant Requests, Reports Due, Fingerprint Lab) and an icon of their own for each.
- Fixed: pressing the arrow keys in an app's list wiped the second line of each entry (grounds, due time, where a print was found).
- The README now recommends SOD Life and Living (economy rebalance) and DialogUIRework (dialog tabs) to play alongside.
1.0.0
First release.
- Join an Enforcer Division at the City Hall front desk, and resign there. You get access to the division's premises, your own cruncher account, a desk with a name placard, a photo on the employee board, and entries in the Gov and Employee databases.
- Shifts, Monday to Friday, 9 to 5 by default: sign in at a division cruncher.
- The Reports app: shift reports, explanations for late and missed shifts, crime scene write-ups, case reports and warrant applications. Time runs fast while you write. Being Focused makes you write faster.
- Pay for every reported shift at the end of your captain's day, plus a weekly bonus for a clean week.
- Discipline for late arrivals, missed shifts and overdue reports: a warning, docked pay, probation, dismissal.
- Crime scene briefings from enforcers, and a pass to look inside an indoor scene.
- Search warrants from the Warrants app, built on the evidence linked on your case board. A granted warrant arrives by vmail and makes picking the lock or kicking the door in legal.
- The badge: people can't refuse your questions for an hour, but using it to get into their home without a warrant earns a complaint.
- Printouts can be picked up and carried.