SavagePack-ElevatorMod icon

ElevatorMod

Allows the elevator to move with just one player inside. Players not in the elevator stay on their current floor and can continue playing games independently.

Last updated 2 weeks ago
Total downloads 6162
Total rating 0 
Categories Mods
Dependency string SavagePack-ElevatorMod-1.5.0
Dependants 0 other packages depend on this package

This mod requires the following mods to function

BepInEx-BepInExPack-5.4.2100 icon
BepInEx-BepInExPack

BepInEx pack for Mono Unity games. Preconfigured and ready to use.

Preferred version: 5.4.2100

README

ElevatorMod

Allows the elevator to move with just one player inside. Players not in the elevator stay on their current floor and can continue playing games independently.

Features

  • Elevator travels with any number of players (minimum one)
  • Only players inside the elevator travel to the new floor
  • Players outside stay exactly where they are and can keep playing
  • Players on different floors are visually hidden from each other — machines, lighting, keypads, and player models are all per-floor
  • Audio is muted for floors you are not on
  • Colliders for hidden floors are disabled on clients so they don't block movement
  • READY / BUSY elevator status display when nearby
  • Fully compatible with host and client players
  • State resets cleanly on disconnect and reconnect

Installation

  1. Install BepInEx 5
  2. Drop ElevatorMod.dll into BepInEx/plugins/
  3. Launch the game — install on all players' machines

Configuration

Edit BepInEx/config/com.yourname.elevatormod.cfg:

  • Enabled — toggle the mod on/off (default: true)
  • ShowStatusDisplay — show the READY/BUSY HUD near the elevator (default: true)

Changelog

1.5.0

  • Replaced cached bool approach with dedicated Mirror network messages for reliable client floor resolution
  • Added ElevatorTravelMsg — host sends a targeted message to each client before the floor change RPC fires, telling them whether they travelled this trip
  • Added PlayerFloorMsg — host broadcasts a full floor map (netId → floor) to all clients after every trip so player models can be hidden/shown correctly
  • Manual Mirror serializer registration added to work around IL weaver not running in BepInEx mods
  • Network handlers re-register automatically each session and after disconnects
  • Full visual separation between floors: renderers, lights, audio sources, colliders, canvases, and player name tags are all toggled per-floor
  • Keypad render cameras and display canvases are disabled on hidden floors, preventing grey-box rendering artefacts
  • LightbakerManager light volume now switches to match the local player's current floor
  • Floors that have been visited are kept active for Mirror networking — only unvisited floors are deactivated
  • Client RPC buffering added: if the floor change RPC and travel message arrive out of order, resolution is deferred until both are received
  • ServerTryTeleportPlayers patched to capture the destination floor index before teleports occur
  • Full state reset on disconnect including floor maps, visited floor set, and pending message flags

1.4.2

  • Experimental fix for games becoming unplayable after a solo elevator trip
  • Non-travelling players now explicitly re-enable all floors via SetActive(true) when blocking the floor RPC
  • SetSfxTrigger set correctly for the floor the non-travelling player is on

1.4.1

  • Fixed all floors spawning simultaneously on session start
  • Init/group travel calls (no one in elevator when RPC fires) now run normally for all clients
  • Partial trip logic only applies when someone is detected inside the elevator

1.4.0

  • Reworked floor RPC patch — non-travelling players block the RPC without any SetActive manipulation
  • Games on the non-travelling player's floor remain fully networked and playable
  • Host and client players can play games on different floors simultaneously

1.3.1

  • Fixed floor re-activation using false→true toggle cycle to force Unity to re-enable game objects

1.3.0

  • Replaced static bool approach with real-time collider position check at RPC time
  • Fixed non-host player being permanently stuck on lobby floor

1.2.0

  • Attempted fix for non-host player floor tracking

1.1.0

  • Initial release with basic elevator solo travel support