You are viewing a potentially older version of this package. View all versions.
Khundian-More_Workers_Mono-0.2.0 icon

More Workers Mono

Schedule I mod that enables Add/Remove worker idle points to/from properties with authoring tools; hotkeys and helpful visuals.

Date uploaded 8 months ago
Version 0.2.0
Download link Khundian-More_Workers_Mono-0.2.0.zip
Downloads 164
Dependency string Khundian-More_Workers_Mono-0.2.0

This mod requires the following mods to function

LavaGang-MelonLoader-0.7.1 icon
LavaGang-MelonLoader

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

Preferred version: 0.7.1
ifBars-SteamNetworkLib_Mono-1.2.0 icon
ifBars-SteamNetworkLib_Mono

A streamlined, object-oriented Steam networking library designed specifically for Schedule 1 mods.

Preferred version: 1.2.0

README

More Workers

Schedule I mod that enables Add/Remove worker idle points to/from properties with authoring tools; hotkeys and helpful visuals.

Authenticity & Integrity

  • SHA256 Hash: Khundian.S1.MoreWorkers-IL2Cpp.dll
    • 2CD690985B88A0DBA80C11AD7BAF475E442401E386E5D2209F14BF678392A04C
  • SHA256 Hash: Khundian.S1.MoreWorkers-Mono.dll
    • 33C1CEA02EE770F79F0EC3D84B7A482E2B8AC464EF09749B9C6BEE70B705ABCC

Current Supported Properties

  • Barn
  • Bungalow
  • Docks Warehouse
  • Hyland Manor
  • Motel Room
  • RV
  • Sewer office
  • Storage Unit
  • Sweatshop

Features

  • Manual idle points via world-space JSON (appended after existing/default idle points)
  • Visualization idle points (blue = existing/default, green = manual)
  • Authoring Mode:
    • Capture new manual idle point (F9)
    • Force reload points.json (F10)
    • Remove last manual idle point from points.json for the nearest property (F11)
  • Property worker capacity expands to match the idle point count (never shrinks mid-session for safety and stability reasons)

Settings (*.cfg edit or ingame mod managers like ModsApp)

  • Skip RV: Hides the RV from fixer/hiring location dialogues. Turn this off only if another mod keeps the RV around as a persistent property.
  • Authoring Mode: Enables the in-game authoring overlay and markers.
  • Hotkeys:
    • Capture Key (default F9): Capture your current position/yaw as a manual idle point for the nearest property.
    • Reload Key (default F10): Force reload points.json and redraw markers.
    • Remove Key (default F11): Remove the last manual point for the nearest property.

Authoring Workflow

  1. Enable Authoring Mode in "More Workers.cfg" or ModsApp.
  2. Markers: blue = existing/default, green = manual. Numbers show per-property indices.
  3. Stand near the target property, press F9 to capture your position/yaw.
    • The mod adds a live idle slot immediately so hiring unlocks right away.
  4. Optional: Press F10 to force a reload of JSON and redraw markers.
  5. Press F11 to remove the last manual point for the nearest property.
    • The green marker disappears immediately; The actual idle point remains for this session for safety and stability reasons (possible bugs/crashes when removing idle points that are currently hosting a worker).
    • Actual idle point(s) will be removed from the game automatically on next load of game/save, if the removed idle point was hosting a worker in your save; the worker will not load without an idle point and when you save the game without the worker loaded, he will be lost.

Hot-Reload Behavior

  • Capture (F9): Writes to JSON and appends a live idle slot immediately; capacity expands to match the new idle count.
  • Remove (F11): Writes to JSON and hides the removed point visually; the corresponding live slot is pruned safely on next reload of game/save.
  • Reload (F10): Reloads JSON and redraws markers (visual only); full reconcile happens on game/save load/restart.

Cleaners, Bins, and Loading Docks

More Workers is intentionally scoped to idle points and worker capacity. It does not add or modify bins, disposal areas, or loading docks at any property.

  • For most jobs, adding idle points and capacity is enough: employees walk from their idle point to existing workstations and behave as expected.
  • Cleaners are special: they also need a valid disposal target (bin/disposal area) to drop trash bags.
  • Properties like Sewer office can hire workers once you author idle points, but vanilla does not give them a dedicated bin/disposal area.
  • For RV, vanilla gameplay does not keep it around past the prologue. More Workers does not prevent that event or resurrect the RV on its own. If another mod enables RV as a persistent property, More Workers mod can add idle points and allow hiring via dialogue, but that other mod is also responsible for providing a suitable bin/disposal area for cleaners.

With only this mod installed (no bin/disposal-area mods):

  • Cleaners you assign to Sewer office or an enabled RV will have nowhere to dispose of trash bags.
  • When a trash bag is full, they will tie it off and leave it on the ground near where it was filled, ignore that bag from then on, and return to their idle point.

To keep maximum compatibility, this mod does not spawn bins, disposal areas, or loading docks, and it does not rewire those systems. That work is left to dedicated content mods. If you want fully functional cleaners and trash/disposal flows at Sewer office, pair More Workers with mods that add those structures, for example:

File Locations

  • Config: UserData/More Workers/More Workers.cfg
  • Manual idle points: UserData/More Workers/points.json

Helpful Mods

These mods are not mandatory, but nice to have!

CHANGELOG

Changelog

[1.0.6] - 2026-01-05

  • Fixed snap-to-ground for manual idle point authoring in multi-floor interiors (e.g., Docks Warehouse) by probing 0.5m below the camera/player reference before snapping.

[1.0.5] - 2026-01-04

  • Documentation updates.

[1.0.4] - 2026-01-04

  • Fixed co-op layout sync reliability by chunking large layout payloads across multiple lobby SyncVar keys (avoids Steam lobby data truncation).
  • Clients now prime/rebuild layouts from existing lobby state on join (no missed snapshot if the host published before the client initialized SyncVars).
  • Replaced runtime-dependent GetHashCode() layout hashing with a deterministic hash to prevent false rebuild mismatches across machines/builds.
  • Added extra opt-in co-op/load diagnostics to help pinpoint client load replication exceptions (rate-limited; EnableCoopNetLogging).

[1.0.3] - 2026-01-01

  • Added opt-in co-op/network troubleshooting logs via EnableCoopNetLogging (disabled by default in release builds).
  • Standardized co-op log prefixes to [COOPNET][…] and masked SteamIDs in host/sender checks.
  • Expanded co-op diagnostics to include FishNet state transitions, layout sync request gating reasons, lobby host identity checks, and surfaced exceptions (rate-limited).

[1.0.2] - 2025-12-30

  • Fixed client join hangs and desync by syncing the host's idle layout/capacity to clients at runtime.
  • Switched layout sync transport to SteamNetworkLib for IL2CPP-safe mod networking.
  • Client authoring remains view-only, while the debug marker overlay mirrors host manual/existing points and updates when the host edits.

[1.0.1] - 2025-12-27

  • Improved robustness of points.json saves by using an atomic replace when updating the file.

[1.0.0] - 2025-11-23

  • Release.

[0.9.0] - 2025-11-23

  • Documentation updates.

[0.8.0] - 2025-11-23

  • Aligned manual JSON append deduplication on Mono with IL2CPP by using the same ~0.15m spacing threshold when appending manual idle points onto existing idle arrays, ensuring backend parity for how closely manual points can be placed.
  • Full backend parity check.

[0.7.0] - 2025-11-23

  • Added in-world SMS feedback from the Fixer NPC for authoring errors (too-close captures, attempts to remove an in-use idle point, and client-only edits in co-op), with a short cooldown so players get clear guidance without message spam.

[0.6.0] - 2025-11-21

  • Unified existing/manual idle point editing so Shift+F8 always selects the nearest idle point on the current property (manual vs existing decided by distance and the Override Existing toggle), and F8 moves exactly the selected point instead of whichever worker is closest at move time.
  • Fixed manual idle point movement to track a specific EmployeeIdlePoints transform backed by a matching JSON entry, so the yellow highlight, JSON update, and worker transform all refer to the same slot.
  • Improved authoring visuals: manual markers now highlight by the selected transform index (not by draw order), and the HUD clearly distinguishes between Editing manual #idx and Editing existing #idx for the active property.
  • Added DEBUG-only Motel Room instrumentation to log manual idle JSON counts and live idle array lengths before/after application, making it easier to diagnose property-specific layout issues without affecting release behavior.
  • Reduced the minimum spacing for authoring/moving idle points to 0.25m and tightened load-time deduplication to ~0.15m, so closely positioned points are still treated as distinct when intended while double-application of the same JSON data (e.g., for Motel Room or RV) no longer produces duplicate live slots.
  • Added name-based guards for Motel Room and RV in the worker adjustment pipeline (similar to the existing Sweatshop handling) to prevent cross-component double-processing when both base and derived property components run our postfix.
  • Reworked the F8 hotkey in ModsApp as a first-class "Move Key" entry above Capture, and made the advanced "Override Existing Idle Points" toggle default-on and hidden outside debug builds so overrides are always available in normal play without extra configuration.

[0.5.0] - 2025-11-20

  • Multiplayer safety: made the host/server authoritative over idle layouts and capacity in co-op by only applying manual points, existing overrides, and EmployeeCapacity recalculations on authoritative instances (FishNet / Il2CppFishNet), while pure clients stay read-only.
  • Authoring hotkeys are now host-only in multiplayer: on pure clients F9/F10/F11/F8 no longer mutate the world and instead log that authoring is host-only and should be performed by the host.
  • Improved 1.0m-spacing handling for manual idle points on properties that have no vanilla idle points by deduplicating clustered manual JSON entries when building the first EmployeeIdlePoints array, so live idle slots now always match the described 1.0m rule even for JSON-only properties.

[0.4.0] - 2025-11-19

  • Added safe live removal of manual (green) idle points: F11 now deletes the last manual idle point for the nearest property only when no employee is currently using that exact idle Transform (checked via each employee's IdleBehaviour / WaitOutside.IdlePoint).
  • Enforced a minimum spacing of 1.0m between idle points when capturing with F9 or loading manual points from JSON (including properties that previously had no idle points), preventing nearly overlapping idle slots that could confuse AI and live removal.
  • Updated capacity handling so EmployeeCapacity tracks the current idle-point count (with a floor at the current employee count) instead of being expand-only; this keeps fixer hiring limits aligned with actual available slots and avoids over-allocating workers after removing idle points.
  • Updated authoring visualization so green manual markers are now drawn from live EmployeeIdlePoints (MW_MANUAL transforms) rather than raw JSON only, ensuring the overlay matches the deduplicated runtime idle slots even when JSON contains near-duplicate points.
  • Added a 1.0m spacing check when moving existing/default idle points with F8 so that overrides cannot place a blue slot closer than 1m to any other idle point (blue or green); moves that would violate this are denied with a clear log message.

[0.3.0] - 2025-11-16

  • Added an advanced "Override Existing Idle Points" pipeline backed by JSON existing overrides, allowing baseline (blue) idle points to be repositioned per property while keeping indices and capacity behavior stable.
  • Introduced in-game authoring for existing idle points (when the advanced toggle is enabled): Shift+F8 selects the nearest existing point on the current property (highlighting it yellow), and F8 moves that point to the current player/camera position with ground snap and immediate marker refresh.
  • Made the existing-idle override key configurable via ModsApp (Existing Idle Override Key).

[0.2.1] - 2025-11-16

  • Improved authoring HUD overlay so the “Next idx (existing + manual)” counter reflects the future idle-point layout immediately after F11 (baseline existing points stay stable; manual JSON points update live).

[0.2.0] - 2025-11-14

  • Added Motel Room and RV support: manual idle points, capacity adjustments, and dialogue integration so both properties appear as hireable locations when owned (RV is gated by a Skip RV dialogue toggle).
  • Extended manual idle point flow to properties without default idle points by creating EmployeeIdlePoints arrays directly from JSON/F9 captures.
  • First-capture authoring now creates a live idle point when none exist, so capacity can expand in-session without requiring a restart.
  • Added built-in anchors for Motel Room and RV to improve nearest-property selection and authoring ergonomics.
  • Added Sewer office support via the same manual idle point + capacity flow; workers can be hired once idle points exist, while cleaners still require a bin/disposal-area mod (e.g., SewerEmployees) for full functionality.
  • Improved F11 behavior so Remove always targets the nearest property rather than the last selected one.

[0.1.1] - 2025-11-09

  • Image fixes in readme

[0.1.0] - 2025-11-09

  • Authoring Mode with in‑game visualization (blue = existing/default, green = manual) and index labels.
  • Hotkeys: Capture (F9), Reload (F10), Remove (F11).
    • Capture writes to JSON and appends a live idle slot immediately; capacity expands to match idle count.
    • Reload refreshes points.json and redraws markers (visual); full reconcile on next scene/load.
    • Remove pops the last manual point in JSON; visually hides the corresponding marker; the live slot is pruned safely on next reload.
  • Snap‑to‑ground enabled.
  • Capacity is expand‑only (max of baseline vs current idle count); never shrinks mid‑session.
  • JSON format (world-space) at UserData/More Workers/points.json.
  • Marker dedup and clarity: skip drawing MW_MANUAL transforms as "existing"; avoid duplicate blue/green at the same spot.
  • Added property anchor: Hyland Manor at (164.00, 11.76, -67.00).
  • Authoring HUD overlay improvements:
    • Lowered position to avoid new HUD icons (safe-area aware).
    • Semi-opaque black background for readability.
    • Larger font size and retained shadow for contrast.
    • Dynamic sizing via text measurement to prevent clipping; fixed degree symbol (°).