On Hold supports community content through Steam Workshop and portable ZIP packs. Mods can add calls, knowledge articles, CRM actions, lead packs, mail, languages, recordings, office appearances, challenges, Night Shift runs and standalone campaigns. They contain bounded data and assets. A mod does not install a script into the game.

This chapter is the player guide to using that content. To make your own pack, continue to Your first mod. Creators should also read this chapter: source selection, compatibility and save requirements affect everyone who installs a published pack.

The Workshop hub

Open Workshop from the title menu or the corresponding Workshop entry in Settings/Options. The hub separates browsing, installed content and creation:

  • Browse discovers Steam Workshop items. Search by name or description, choose popular or new sorting, and filter by content, supported mode or language.
  • Installed shows local packs and installed Workshop content, download status, validation problems and profiles.
  • Create opens Mod Studio for editable local packs. A subscription is read-only; clone it if you want to author a separate version.

The content filters are Calls, Stories, Challenges, Night Shift, Office, Audio and Translations. Mode tags identify career, nightshift, challenge, campaign or multiplayer. Language tags use a locale such as language:de. Tags help discovery; the actual manifest and validator decide compatibility. An item having a Multiplayer tag does not override missing multiplayer support in its manifest.

Steam browsing, subscriptions and publication require an available Steam connection. Local ZIP import, export, validation and authoring can work without Steam. If Steam is unavailable, use Installed/Create and the offline workflow rather than repeatedly retrying a network operation.

Install a Workshop pack

  1. Read the description, required game version, dependencies, supported modes and any instructions from its creator. A call expansion and a standalone campaign may be launched differently.
  2. Subscribe to the item. Wait for its download to complete; a subscription is a request for installation, not proof that every file is already available.
  3. Open Installed. Refresh/recheck if the item is still shown as downloading.
  4. Select or create the profile that should use it.
  5. Enable the pack in that profile, choose its source if there are multiple copies, and inspect reported errors or dependency warnings.
  6. Return to the title menu and start a new session in the intended mode. Profile changes take effect when a session starts.

After migration of an existing library, newly discovered packs start disabled in profiles. This is deliberate: subscribing to new content should not silently change an established career. Enable the desired item explicitly. The initial migration preserves existing enable/disable preferences.

For a challenge or standalone campaign, open Community Experiences on the title screen after enabling its pack. The catalog displays its authored title, description and preview information. A call expansion instead joins compatible call pools; an office pack changes the scene when its profile is activated.

Install a ZIP pack

Use the in-game Import ZIP action, select the author's archive, then check Installed. A portable pack puts mod.json directly at the archive root. content.json, achievements.json, voice/ and art/ accompany it as needed. An extra wrapper directory such as my-pack/mod.json is not the expected portable format; ask the creator for an export from Studio if an archive fails.

Import validates the archive and content before accepting it. It rejects unsupported entries, duplicate names, unsafe paths, links and malformed/oversized files. An archive needing an external executable or a manual DLL replacement is outside this mod system. Use the normal importer instead of copying files into the game's installed application.

A local pack and a Workshop pack can share the same mod ID. That is useful for development or an archived version, but Installed may show several copies. Select the intended copy in the profile. Do not assume that the newest displayed name is the copy the session will use.

Profiles: keep each playthrough predictable

A profile stores enabled pack IDs, load order and source choices. Examples are Career additions, Mira campaign, Friday co-op, and Office only. The Default profile always exists. Create additional named profiles for different playthroughs or groups, switch the active profile before starting, and use the order controls where packs overlap.

Each mod ID identifies one pack family. Several installed copies of that ID represent alternative sources or versions; only one is selected for the profile. Source choices identify the specific local authoring/import folder or Workshop item. If that source disappears, choose another valid copy instead of expecting the loader to substitute an arbitrary version.

Dependencies load before the content that needs them. Remaining profile order determines replacement precedence for shared presentation entries and stock-day overrides. Later content can replace the same UI translation, recording override or office surface defined earlier. Normal added calls and knowledge articles are namespaced, so unrelated packs do not overwrite each other merely because both have a local ID called ROUTER_HELP.

The loader may add an installed dependency needed by an enabled pack and show a warning. It does not invent a missing dependency or bypass a required version. A cycle, declared conflict, unsupported mode, incompatible API or unresolved reference prevents that selection from activating. Resolve the error in Installed: install the dependency, choose a compatible copy, or disable one conflicting pack.

Activation is transactional. The game validates and prepares the chosen set before replacing the live registries. A failed selection is not intended to leave half of a new profile active. If the hub reports an error, correct it before launching; do not treat partial-looking UI changes as a successful activation.

Compatibility in plain language

There are three different versions:

Version What it describes
Game version The installed On Hold release. A pack can require a particular release or comparison range.
Content API The data contract understood by the loader. This manual describes API 1.0.0 and manifest format 2.
Pack version The creator's own release number, such as 1.2.0. It distinguishes revisions of that mod family.

A pack also declares supported modes. Multiplayer is explicit opt-in; it is not implied by ordinary career compatibility. A campaign pack may be usable in the campaign catalog while being unsuitable for a normal career or co-op lobby. Validation explains the mismatch rather than attempting to execute it in the wrong mode.

When reporting an issue, give all three versions if available, the profile and selected source. A pack version alone cannot identify its contents because an author might have edited files without changing that number. Saves and modded lobbies therefore check content hashes too.

Frozen session content

Before a session uses a selected pack, the game prepares a frozen local copy of its content. The session uses that copy rather than following a changing Workshop folder. A Workshop download, local edit or unsubscribe during play should not change the calls or files already agreed for that run.

A saved game records ordered pack identities, versions and full content hashes. Historical frozen copies live in the game's user-data mod-snapshots folder. They can keep a saved campaign usable on the same computer after its subscribed item changes or is removed, provided the required cached content remains available.

Those historical files are local. Steam Cloud does not deliver the snapshot directory to another computer. A save arriving through Cloud still needs its exact required content. Keep an exported ZIP of a long campaign's version if you plan to move computers, and install/import that version on the destination. Current Workshop content may differ from the version the save expects.

This release does not promise automatic eviction of old snapshots or automatic downloading of historical Workshop revisions. Avoid deleting that directory while reclaiming space unless you have preserved the versions required by your saves. Unsubscribing and disabling are different from deleting historical cache files.

What happens when a saved pack changes?

Required campaign content must match before resume. A different version or full content hash blocks the campaign from loading its authored state into a different story definition. Renaming a pack or changing only a version field does not restore the missing data.

Optional additive career content can be removed with a visible warning. Its owned saved state remains dormant rather than being reassigned to a different mod. Re-enabling a compatible pack can make that state relevant again. However, missing calls, articles or other additions can still change future play; inspect the warning and keep a backup/version archive if the career matters to you.

Presentation assets count toward a full single-player snapshot. A campaign with revised recordings or art is therefore not necessarily byte-equivalent to its saved version, even if its plot is unchanged. Modded multiplayer uses a separate gameplay agreement so each player can retain local presentation preferences; see Private modded co-op.

Progress, trophies and safe experiments

Custom campaign progress uses a separate authored experience identity and normal campaign save slots. A new campaign starts in an empty slot. Challenges and custom Night Shift runs record results separately; they do not save an in-progress run. Their local results retain a run count, best score and recent history.

Community trophies are local trophies. They do not create or unlock Steam achievements. Custom challenges, campaigns, scratch tests and private modded multiplayer suppress stock Steam awards. Ordinary additive career content follows the game's existing stock career award policy; adding one extra call is different from entering a custom challenge.

Mod Studio's Test Call/Test Shift actions are scratch sessions. They create no career/Cloud progress, stock awards, community trophies or custom result records. This makes them the right place to inspect a pack before committing to a playthrough. See Sharing, testing and troubleshooting for a repeatable test checklist.

Disable, unsubscribe or clone

Disable a pack in the relevant profile to exclude it from future sessions. Switch to a clean profile to compare an issue with stock content. Unsubscribe through Workshop when you no longer want its installed updates. Existing frozen sessions and required saved snapshots have their own lifetime.

To edit another creator's installed pack, choose Clone to a local mod, give the clone a new unique ID and work in that local copy. The clone clears its original publishing item/settings, preventing an accidental update of the original item. Cloning is a technical editing action; follow the source pack's reuse terms before distributing a derivative. Keep credits and the included license where applicable.

If the game cannot find a pack, check download completion, selected source, supported mode and the active profile first. If a campaign refuses to resume, compare its required version/hash instead of disabling its required story content. If a lobby refuses Ready, follow its displayed requirements and recheck the exact matching packs.