You are viewing a potentially older version of this package. View all versions.
DaXcess-LethalCompanyVR-1.1.0 icon

LethalCompanyVR

Collecting Scrap in VR

Date uploaded 10 months ago
Version 1.1.0
Download link DaXcess-LethalCompanyVR-1.1.0.zip
Downloads 24584
Dependency string DaXcess-LethalCompanyVR-1.1.0

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
Evaisa-FixPluginTypesSerialization-1.1.1 icon
Evaisa-FixPluginTypesSerialization

Fix custom Serializable structs and such not properly getting deserialized by Unity.

Preferred version: 1.1.1

README

Lethal Company VR Mod

Adding VR to Lethal Company

Thunderstore Version Thunderstore Downloads

This is the first mod that I have ever built, and also the first time using Unity so this mod might not be perfect.

Jumpscare

Ready to immersive yourself into the horrors of Lethal Company with Virtual Reality? Well wait no longer!

LCVR is a mod that adds full 6DOF VR support into Lethal Company, including hand movement and motion-based controls.

The mod is powered by Unity's OpenXR plugin and is thereby compatible with a wide range of headsets, controllers and runtimes, like Oculus, Virtual Desktop, SteamVR and many more!

LCVR is compatible with multiplayer and works seamlessly with VR players and Non-VR players in the same lobby. Running this mod without having a VR headset will allow you to see the arm and head movements of any VR players in the same lobby, all while still being compatible with vanilla clients (even if the host is using no mods at all).

Open Source

The source code for this mod is available on GitHub! Check it out: DaXcess/LCVR.

License

This mod is licensed under the GNU General Public License version 3 (GPL-3.0). For more info check LICENSE.

Verifying mod signature

If you don't care about this, skip this part.

LCVR comes pre-packaged with a digital signature. You can use tools like GPG to verify the LCVR.dll.sig signature with the LCVR.dll plugin file.

The public key which can be used to verify the file is 9422426F6125277B82CC477DCF78CC72F0FD5EAD (OpenPGP Key Server).

Bypassing integrity checks

To prevent completely destroying the game, this mod scans the game assembly and tries to detect whether it's using a supported version or not. If this check fails, the mod will assume that either the game was updated, or the game files have been corrupted, and will refuse to start the mod. You can disable this behaviour by passing --lcvr-skip-checksum to the game's launch options in Steam.

Discord Server

Facing issues, have some mod (in)compatibility to report or just want to hang out?

You can join the LCVR Discord Server!

Compatibility

Adding VR into a game will drastically change some of the gameplay elements. This is guaranteed to cause some incompatibilities with other Lethal Company mods. You can find a compatibility sheet here where you can find a list of mods that have been tested to see if they work well in conjunction with the VR mod.

In some rare cases, a mod will have "first class support", meaning that LCVR, the mod in question, or both mods have added official compatibility for both mods to work together seamlessly. At the time of writing, the only mod that currently has first class support is MoreCompany.

Configuring the mod

Before starting the game, it is recommended to check the configuration options to see if anything needs changing. Some of the settings will change how you interact with the game in VR. Another important tab to check is performance. Since this game is a Unity HDRP game the performance is less optimal than it should be.

If you are not using a mod manager, then you can find the configuration inside BepInEx/config/io.daxcess.lcvr.cfg.

Basic Controls

For a list of all controls, check out the controls wiki page

Once you are in game, you can move around by using the left joystick. You can use the right joystick (left/right) for snap/smooth turning (if enabled) and switching inventory slot (up/down).

To sprint, press the left joystick button.

To crouch, press the right joystick button.

Main Menu

The main menu is controlled by ray interactors. You can use any controller to point towards any UI element and click using the trigger button on the corresponding controller. The only thing that has been changed on the main menu by the mod is that the keybinds settings have been disabled, since these have been hijacked by the mod.

The Terminal

Since in VR you don't have access to a keyboard (under normal circumstances), the mod displays a virtual keyboard when you enter the terminal. You can use this keyboard to interact with the terminal like you would on PC.

This keyboard currently features two macros: A confirm and deny button. When pressed, these respectively send "CONFIRM" and "DENY" to the terminal. This makes it easier to switch moons and purchase items since you won't have to input this text every time.

You can exit the terminal by pressing the pause button or by clicking on the close button on the terminal keyboard.

VR additions

This mod, in addition to adding VR and motion controls, also adds a few special interactions that you can perform in VR. At the time of writing, these currently are:

  • Spray Paint Shaking
    • When holding the spray paint item, you can physically shake it to shake the can in the game. You can also still use the secondary interact button to shake the can.
  • Shovel/Sign Swinging
    • If you are holding a shovel or a sign, you'll notice that you are holding it in two hands. If you hold your controllers over your shoulder and bring them down with enough force, the mod will swing the shovel for you, dealing damage to players/entities in front of you.

CHANGELOG

1.3.6

Additions:

  • Added support for V67
  • Added startup functionality that fetches game versions from a remote resource, allowing easier LCVR compatibility updates with less downtime

1.3.5

Additions:

  • Added support for V66

Compatibility:

  • Fixed compatibility with MoreCompany 1.10.2
  • Removed Spin Drag functionality for MoreCompany in LCVR, as it was already broken for a long time

1.3.4

Changes:

  • Stick-turning will now instantly apply rotation to the player body
  • Improved tracking accuracy for remote VR players
  • Removed car ownership patches, which potentially fixes the car exploding at random times

Bug fixes:

  • Fixed player head rotation being applied in the wrong order
  • Fixed CullFactory breaking item rendering when traversing an entrance
  • Fixed a crash when leaving the game while on top of a car (?)
  • Fixed snap points not working for remote VR players
  • Fix item holding offset on the Zed Dog item

1.3.3

Additions:

  • Added support for V64 Patch 1

Changes:

  • The --lcvr-skip-checksum flag now requires the current LCVR version as a suffix (e.g. --lcvr-skip-checksum=1.3.3)

1.3.2

Additions:

  • Added support for V64 features
  • Added the XR Occlusion Mesh as a performance option. Will cause artifacts on low framerates.
  • Added XR Mirror View patches and options that allow moving the monitor view around a bit. Invalid values will cause the monitor view to break. (Has no effect when using custom camera, except for in the main and pause menus)
  • Added an option to change UI press sensitivity, which has also been made more sensitive by default
  • Added a toast notification for when VR fails informing the user to check the damn logs
  • Added an experiment that can be enabled by passing --lcvr-disable-car-ownership-patch to the start options, which might fix the car exploding randomly

Changes:

  • The face-locked UI position and rotation is now smoothed a bit
  • Moved some startup logic to a patcher plugin, which means restarting is no longer required when first using LCVR
  • Optimized the networking system a bit more
  • The main menu and pause menu resolutions have been increased by 20%
  • Moved the VR settings into the settings menu
  • Most settings can now be changed from within the game

Bug fixes:

  • Fixed error spam in Maneater baby and spray paint items
  • Fixed TZP steering the player towards the wrong direction
  • Fixed potential denial-of-service exploit in networking system
  • Fixed issues with positioning when standing on top of physics objects (car, elevator)
  • Fixed crash on death in V64 caused by stack corruption

1.3.1

V60! v62

V60 released barely a single week after me releasing v1.3.0. Very cool!

Anyways here's the update go boil the creatures or something.

Additions:

  • Added V62 support
  • Added VR support for the V60 cutscene
  • Added Pitch Locked Canvas (enabled by default) for a more pleasant UI experience
  • Added VR interactions to the elevator
  • Added VR interactions to the new door variant
  • Added VR interactions to the new enemy
  • Added the ability to remove keybinds completely
  • Added custom item offsets to a wide range of items, making holding them look more natural

Changes:

  • Reworked networking, might fix some things
  • Reworked IK, which now no longer needs to replace the player animator

Bug Fixes:

  • Fixed the spray paint and weed killer spraying offsets
  • Fixed an object leak in the networking system
  • Fixed lights from collected items bleeding into the world
  • Fixed collected items being scannable in the UI
  • Fixed hangar levers not being able to be disabled in settings
  • Fixed parenting issues with spectator ghosts due to ternary operation order mistakes

Removals:

  • Removed V56 support
  • Removed the car from the main menu

1.3.0

Car!

Lethal Company V56 introduces the latest and greatest in vehicular technology: The Company Cruiser!

Upon purchasing your Company Cruiser, you will receive:

  • A Company Cruiser
  • A Company Cruiser ignition key
  • A Company Cruiser service manual

While we certainly believe in the Company, we feel that this service manual may need some amendments. So here we go.

To get started, enter your Company Cruiser. Now don't be overwhelmed by the amount of buttons, handles and wheels, we'll take you through them all!

First of all, we will go around the buttons that are strewn about the dashboard. On the left side of the steering wheel, you will notice three buttons. These respectively control the windshield wipers, cabin window, and the headlights.

Next up, we have the radio. If you ever get lonely whilst traveling the treacherous landscapes, you can play some relaxing tunes to help you keep your performance at a maximum. The left button allows you to tune between different radio stations, while the right button toggles the radio on or off.

Now that we're over on the right side, you will see a button encased in glass. This button is for use in emergency situations only! So don't press it unless it's absolutely necessary!

Should you encounter a dangerous situation while driving, you can alert anyone in the vicinity by pressing the horn. The horn is located in the center of the steering wheel. Just press on it, and let the compressed air tanks do the rest!

Let's get to driving, shall we? On the right side of the steering wheel, left of the emergency button, you will find the ignition. You can make use of the Company Cruiser ignition key, which should have been provided to you upon purchase of your Company Cruiser, to start the vehicle.

Carefully insert the key and twist it until you hear the engine start revving. Keep in mind that this technology was not specifically designed for the atmospheres of other planets, so it might take a few twists until you successfully start your Company Cruiser.

Now that you have started your Company Cruiser, take a peek over on your right. There should be a gear stick, which allows you to drive, reverse, and park your Company Cruiser. It should be in park by default. Carefully reach over with your right hand, grab the stick, and move it between the gears that you want to use.

Last but not least, the steering wheel. You may take hold of the steering wheel using either your left, or your right hand, or both of them. To turn left, steer the steering wheel to your left. To turn right, steer the steering wheel to your right. It's not rocket science!

Now get ready to drive! Put your gear into drive, give the Company Cruiser some throttle, and take to the stars (or... well... the scrap, can't leave bossman hanging)!

Control rebinding

LCVR 1.3.0 replaces the old controller profile system with individual control rebinding. These are located in the settings menu, just like the keyboard and gamepad controls. Make sure both of your controllers are connected, as the game doesn't detect your controller profile until both the controllers are active.

Some bindings are blacklisted from being used, mostly the "touched" bindings on buttons, as they overrule any "pressed" bindings. Some of them still work though, as some "touched" bindings don't have any "pressed" bindings associated with the same button/touchpad (i.e. Quest 2 thumbrest).

Additions:

  • Added support for V56
  • Added VR interactions for the steering wheel in the Company Cruiser
  • Added VR interactions for the buttons in the Company Cruiser
  • Added VR interactions for the car honk in the Company Cruiser
  • Added VR interactions for the ignition in the Company Cruiser
  • Added VR interactions for the eject button in the Company Cruiser
  • Added VR interactions for the gear stick in the Company Cruiser
  • Added VR interactions for the car magnet lever on the ship
  • Added configuration options to disable special car interactions
  • Added controls rebinding in the settings menu
  • Added new logic to local and remote VR players to allow overriding hand position
  • Added welcome and PTT overlay UI to VR
  • Added VR support for the Weed Killer item
  • Added haptic feedback to the muffle interaction
  • Added haptic feedback to the monitor buttons in the ship
  • Added new option: SpectatorLightRemovesVolumetrics, which disables fog when using the spectator light (if enabled)

Bug Fixes:

  • Fixed issue where leaving a game while spectating and joining a new game will break spectating
  • Fixed finger curling not consistently forcing a fist when requested to
  • Fixed bug in controller interactor that prevented the use of "hold down" interactions
  • Fixed bug where the interactor could interact through walls of the Company Cruiser
  • Fixed bug where having the helmet enabled caused a large shadow to appear
  • Fixed bug where the controllers sometimes kept vibrating after the player already died
  • (Accidentally) fixed a bug where the keyboard on the terminal would be unusable if the ship was in motion
  • Fixed issue where players in an animation wouldn't sync their offset to their room center with other players
  • Fixed a vanilla bug where sometimes you could "ghost interact" with battery powered items by using grip buttons

Changes:

  • Reworked the input system to allow for manual control binding overriding
  • XR Origin now has the same parent as the local player
  • Reworked a small portion of the 6DOF system to allow 6DOF when parented to other objects
  • Resetting height now also resets your rotation if you are in a special interact animation (i.e. terminal, car, enemy kill animation)
  • Doubled the base rotation speed on the Smooth Rotation setting

Removals:

  • Removed the forced startup cutscene
  • Removed bracken from the main and pause menus
  • Removed the DLSS optimization setting
  • Removed support for V50

Dependencies:

1.2.5

Bug Fixes:

  • Fixed corrupt/unreadable OpenXR default runtimes preventing VR to launch properly

1.2.4

Bug Fixes:

  • Fixed some of the doors on Artiface not using the new VR interactions
  • Leaving the game while spectating will no longer prevent spectating to work in the next game
  • Fixed some issues on the main menu when certain mods are active

Additions:

  • Added VR motion controls to the knife (you can now stabby stab)
  • Added VR interactions to the big doors on Artiface

Changes:

  • Reworked the OpenXR loader, which will now attempt every runtime instead of only the default/preconfigured runtime
  • Moved startup logic to a prefix, fixing an issue where occasionally the camera would be black when loading in

Removals:

  • Removed detection for UnityExplorer
  • Removed ghost girl from the main/pause menus

1.2.3

Bug Fixes:

  • Fixed issues with enemy collision that was causing error spam and potential other issues
  • Changed the way VerifyGameVersion finds the game assembly, fixing some mod compatibility issues

Additions:

  • Added configuration option to disable the settings button on the main menu

Development Changes:

  • Added debug symbols in the assembly output if the mod is compiled in debug, which helps with tracking down errors

1.2.2

Game Version:

  • Added compatibility with V50 Patch 1

Bug Fixes:

  • Fixed visual glitch where VR players would not appear to be sinking in mud
  • Fixed visual glitch where VR players who died in water got the underwater filter applied sporadically

Mod Compatibility:

  • Fixed lighting culling issues when CullFactory is installed

1.2.1

V50 IS HERE

LCVR v1.2.1 brings the joys of V50 into VR.

Due to V50 having changed some important stuff behind the scenes, versions starting from v1.2.1 are no longer supported in V49.

Additions:

  • Added support for the cold open cinematic cutscene

Bug fixes:

  • Fixed corrupt/improper OpenXR setup causing the settings menu to not load
  • Fixed a benign warning when loading input bindings
  • Reduced impact of playerspace spoofing hacks
  • Fixed an issue where somehow getting the camera out of water would prevent drowning
  • Fixed Diversity custom pass warping rendering when DynRes is enabled
  • Fixed the rad mech trying to pick up dead players

API changes:

  • Made the arm HUD canvasses public in VRSession.Instance.HUD

Removals:

  • Removed april fools code & assets
  • Removed support for V49

1.2.0

Settings Menu

In the main menu screen, you will notice a new button being present: VR settings. This button is visible on both flat screen and in VR, and allows you to change the configuration of the mod without having to use your mod manager, or manually having to edit the configuration using a text editor.

Most of these settings were already configurable since 1.0.0, it has only been made easier to change them in this update.

You're also able to swap your OpenXR runtime using this settings menu, instead of annoyingly having to change your default OpenXR runtime within their dedicated apps.

Interactions

LCVR v1.2.0 features a bunch of new interactions that VR players can use to interact with the world around them!

All of the following interactions can be disabled individually inside the config.

  • Ship Lever

    You now must physically pull/push the ship lever to land the ship or take off from a planet. The lever, when held, will follow the position of your hand, and this even works for other players who have the mod!

  • Monitor Buttons

    You may notice that the monitor buttons have been moved next to the lever. This is because you can now physically press the buttons to turn on/off the monitor, or switch to another player on the radar!

  • Charging Station

    Hate being forced to stand in front of the charging station every time you charge an item? Well now you just hold any item that has a battery, and just hold it up to the charging station. Voila, your item has now been charged. If you pull the item out too quickly though, the charger will not charge your item! This interaction only works on the right hand, putting your left hand inside the charger will make you just look like an idiot.

  • Ship Door

    Have an angry dog chasing you around? Just smash the ship door buttons to close or open the ship door.

  • Teleporter

    Want to inverse into the facility with style? Just flick open the glass cover, and SMASH the teleporter button with your fist!

  • Company Bell

    Delicately place your finger on top of the bell to make it ring... Or just smash it, you do you.

  • Ship Horn

    Funny little horn with a funny little cord can now be pulled using your funny little hand.

  • Breaker Box

    Y'all ever had issues with trying to flip the switches on the breaker box in VR? It's so stupid because their hitboxes are gigantic! Anyways, just flick open the door with your hand, and use your finger to toggle the switches. This interaction only works when you are using your pointer finger, a fist or flat hand will not work

  • Doors

    Always had the issue where like a billion people tried to open the same door and it just keeps opening and closing and you can't get through? Well now you actually have to interact with the door handle to open and close the door. Is a door locked? Find out by trying to open the door and listen for the sound cue (or just notice that it doesn't open, whatever). To use a key on a door, interact with the door handle using your right hand while holding a key. Same thing for the lockpicker, however picking up the lockpicker when it is placed on a door also requires you to physically grab it. When the lockpicker is an item on the floor, it will behave normally, and can be picked up from a distance.

  • Face

    Just want to really scream right into that walkie, begging to be teleported because a Jester is right around the corner? Well, you can now do so without pressing any button! Just hold up any compatible item to your face to use them, but watch out what you all put near your face! This interaction only works on the right hand, for obvious reasons

Muffle

Hate it when you die to a dog because your frantic screaming caused you to lure the canines towards your location? Just hold your hand in front of your mouth, and none of the enemies will be able to hear you anymore! As a bonus, anyone with the VR mod will now hear your voice muffled, as if you got snatched by a snare flea. However be warned, the longer you hold your hand in front of your mouth, the less you will be able to see!

Fixed broken arms

Replaced the games IK constraints with ones that are properly able to determine the position of the elbow, meaning the arms should no longer bend inwards.

Fixed controller auto-detection

In versions before 1.2.0, the automatic detection of the type of controller being used happened too early in the loading process, causing a large amount of users to default to the default controller profile, which is only meant for Oculus/Meta (or similar ABXY) devices. In version 1.2.0 going forward, this auto-detection keeps running in the background until a match is found, even when already in a level (though the detection should complete once you start using the controllers in the main menu, but maybe some mods bypass the menu screen entirely).

Locomotion Update

You can now lean over fencing and smaller objects easier without getting pushed back immediately! Keep in mind that if you for some reason poke your head inside of a wall, or start moving using your controllers, you will be pushed out of any wall you might be intersecting with!

Free Roam Spectating

Free Roam Spectator provided by The Company™ Device©. "Experience death like nobody has ever before! It's amazing!"

Hate having to just watch a flat screen where your fellow employees die to the horrors of the facilities? Well fear no more! With the new Company™ Device© you retain the rights to wander the desolate planets even when your physical body is no longer showing signs compatible with life!

Since the company was a big fan of using Linux for the Device©, the colors look more gray when dead since they cheaped out on the HDR support.

You can teleport to other employees, like you would using the old spectator view, by using the Interact (Default: Right Controller Trigger) button. This will cycle through each employee in the lobby that has not yet met their maker. Use this to quickly see how a fellow employee is going about their day, or to get unstuck if you have fallen into a pit.

Since the Device© is making use of shared simulated consciousness, physical barriers like doors act like air, so you can walk right through them no problem!

Afraid of the dark? Use the Drop Item (Default: B) button to toggle night vision! When enabled, this light will illuminate the world and facilities around you, so that you can see what your still breathing fellow employees can't!

Another issue of the simulated consciousness is that you can no longer interact with the world around you. You are only able to use ladders and entrance doors, like fire exits and the main entrance. The Company™ has explained in a statement that they are not planning on fixing this issue.

Want to hide that pesky "you are dead lol" interface? Just press the Secondary Use (Default: Left Controller Grip) button to toggle the interface.

1.1.9

Bug fixes:

  • Fixed helmet (and volumetric plane) positioning after death

1.1.8

Bug fixes:

  • Fixed event handler leak in the Keyboard causing the game to hang
  • Fixed weird fog rendering issue in the left eye when the radar is active

Added configuration:

  • Added new configuration option EnableHelmetVisor (Default: false). When enabled, will show the first person visor model.

1.1.7

Adjustments:

  • Improved keyboard behavior. It now also properly works in the pause menu.
  • When sprint toggle is enabled, sprint will be disabled when in a special interaction animation

Bug fixes:

  • Fixed ray interactors not working when leaving a game

1.1.6

Adjustments:

  • Changed some of the locomotion code
  • Removed version checking on compatible mods
  • Made the Nutcracker less sensitive to head rotations
  • Don't turn around...

Bug fixes:

  • Fixed menu button not closing the terminal

1.1.5

Adjustments:

  • Added HP Reverb as autodetected controller profile
  • Added smooth rotation on the custom camera
  • Turn around...

Bug fixes:

  • Fixed local profile paths not working
  • Fixed jitter in SteamVR

1.1.4

Bug fixes:

  • Input not working (lol)
  • Expanded performance options a bit
  • Dynamic resolution filter is set to FSR by default

1.1.3

Adjustments:

  • Added support for loading local files as controller binding overrides
  • Added index as an official binding
  • Added wmr as an official binding
  • Fixed not being able to confirm builds
  • Removed Herobrine

1.1.2

Adjustments:

  • Removed the option Dynamic Resolution
  • Enabled motion vector support, making DLSS look much better
  • Added camera resolution scale option, defaulting to 0.75x normal (headset) resolution

1.1.1

Adjustments:

  • Removed HDRP XR occlusion mesh shader

Bug fixes:

  • Fixed charging items with secondary use not working
  • Fixed not being able to cast a vote to leave early

1.1.0

New Features:

  • Added basic finger tracking (By @Lakatrazz)
  • Added room-scale crouching (By @Lakatrazz)
  • Decoupled body from head rotation (By @Phil25)
  • Made finger tracking thumb movement smoother
  • Added thumbs up pose to finger tracking
  • Added Virtual Keyboard in main menu
  • Forced the game to be focused on startup
  • Added additional logging if the game was not able to be started in VR
  • Added support for building. With default bindings, hold both grip buttons to enter build mode and confirm builds. Press B to discard an item.

Adjustments:

  • Change battery charge indicator position (By @abazilla)
  • Increased shovel cooldown
  • Shovel can no longer be used in certain situations
  • Main menu/spectator/pause no longer have auto rotation, use the "Reset Height" button to move the screen in front of you
  • Disabled lens distortion on the fear effect
  • Adjusted input system, which can now autodetect the type of controller you are using. Still needs official bindings.
  • Reverted a bunch of IK code which was causing issues. An actuall full IK fix will come in a future update.

Bug fixes:

  • Made some changes to the Networking system, which should fix some desync issues
  • Fixed interaction with pause menu whilst in spectator mode
  • Fixed localization issue causing some users not to be able to launch the mod (shame on you Microsoft)
  • Fixed jitter on scan nodes
  • Fixed laser pointing not following hand movements for other players

Added Config options:

  • Added snap turn degrees option
  • Option to disable additional lens distortion effects to counter possible motion sickness

Mod Compatibility:

  • Adjusted UI position on mimic fire exits (By @NickDuijndam)
  • Added compatibility with TooManyEmotes without having to change configuration

What's Changed

New Contributors

Full Changelog: https://github.com/DaXcess/LCVR/compare/v1.0.1...v1.1.0

1.0.1

What's Changed

New Contributors

Full Changelog: https://github.com/DaXcess/LCVR/compare/v1.0.0...v1.0.1

1.0.0

The VR mod has finally released!!

Finally, after almost exactly two months (started Nov 19th 2023) of hard work the Lethal Company VR mod has it's first release!

No changelogs are necessary for this version, as it is the first version. Subsequent versions will contain a list of changes and new contributors.

Verifying mod signature

LCVR comes pre-packaged with a digital signature. You can use tools like GPG to verify the LCVR.dll.sig signature with the LCVR.dll plugin file.

The public key which can be used to verify the file is 9422426F6125277B82CC477DCF78CC72F0FD5EAD (OpenPGP Key Server).