Giter VIP home page Giter VIP logo

lcvr's Introduction

Lethal Company VR Mod

Thunderstore Version GitHub Version Thunderstore Downloads GitHub Downloads
Release Build Debug Build

LCVR is a BepInEx 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).

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

Due to the amount of changes LCVR makes to the game and gameplay features, some mods might not be compatible with LCVR. For a list of compatible mods, you can refer to the compatibility sheet here. A small handful of mods have been made fully compatible with LCVR, either by custom code inside LCVR, or (preferably) changes within those mods to work properly with the VR mod.

Installing and using the mod

It is recommended to use a mod launcher like r2modman to easily download and install the mod. You can download r2modman here. This mod can be found on thunderstore under the name LethalCompanyVR. You can also install the mod by manually downloading it in combination with BepInEx.

Running the mod using r2modman can be done simply by clicking "Launch Modded", which will automagically launch the game with the installed mods.

For more documentation on using the mod, check out the LethalCompanyVR Thunderstore page

For developers

If you want to make your mod compatible with LCVR, make sure to check out the API documentation. While at the time of writing it doesn't contain much, this might be expanded more in the future.

Also make sure you know how to use BepInEx Dependencies and assembly referencing properly to make sure that your mod keeps working even when LCVR is not installed (unless your mod requires LCVR to work).

Install from source

The easiest way to install the mod is by downloading it from Thunderstore. You only need to follow these steps if you are planning on installing the mod by building the source code and without a mod manager.

To install the mod from the source code, you will first have to compile the mod. Instructions for this are available in COMPILING.md.

Next up you'll need to grab a copy of some Runtime Dependencies. You can either grab these from one of the releases, or if you truly want the no hand holding experience, you can retrieve them from a Unity project.

Retrieving Runtime Dependencies from a Unity Project

You can skip this part if you have taken the runtime dependencies from the releases page.

First of all start by installing Unity 2022.3.9f1, which is the Unity version that Lethal Company uses. Once you have installed the editor, create a new Unity project. If you are planning on adding prefabs to the mod, use the HDRP template and add the XR modules via the HDRP helper or by manually installing the Unity OpenXR plugins (Google is your friend). Otherwise you can just use the VR template.

Make sure you set the scripting backend to Mono, and not to Il2Cpp (Unity will warn you when you try to compile a VR game with Il2Cpp enabled). You can now build your dummy game. Once the game is built you can navigate to it's <Project Name>_Data/Managed directory. There you will need to extract the following files:

  • UnityEngine.SpatialTracking.dll
  • Unity.XR.CoreUtils.dll
  • Unity.XR.Interaction.Toolkit.dll
  • Unity.XR.Management.dll
  • Unity.XR.OpenXR.dll

And from the <Project Name>_Data/Plugins/x86_64 directory:

  • openxr_loader.dll
  • UnityOpenXR.dll

Install BepInEx

BepInEx is the modloader that LCVR uses to mod the game. You can download BepInEx from their GitHub Releases (LCVR currently targets BepInEx 5.4.22).

To install BepInEx, you can follow their Installation Gude.

Installing the mod

Once BepInEx has been installed and run at least once, you can start installing the mod.

First of all, in the BepInEx/plugins folder, create a new folder called LCVR (doesn't have to be named that specifically, but makes identification easier). Inside this folder, place the LCVR.dll file that was generated during the COMPILING.md steps.

After this has been completed, create a new directory called RuntimeDeps (has to be named exactly that) inside of the LCVR folder. Inside this folder you will need to put the DLLs that you have retrieved during the Retrieving Runtime Depenencies step. You can now run the game with LCVR installed.

lcvr's People

Contributors

abazilla avatar ayohee avatar bontebok avatar daxcess avatar j-emil-p avatar lakatrazz avatar louis1706 avatar michaeldavisking avatar nickduijndam avatar olliepugh avatar phil25 avatar stupidrepo avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

lcvr's Issues

VR Controls

  • A good VR control scheme is pretty important for the game to be playable. The KEYBINDS.md contains all the keybinds which are currently being used. Even though this task is completed, the list will remain subject to change.
  • The V45 update has broken the controller input so that'll need to be fixed.
  • All items must be aligned somewhat properly in the hands

Note: this is only for the remapping of the gamepad controls, actual VR interactions will come at a later time, with its own GitHub issue

UnityOpenXR Unknown Assembly

I've successfully made a build following instructions from COMPILING.md. Visual Studio compiled with no errors, however when I try to open the game the BeepInEX console outputs the following error:

[Info   :      LCVR] Plugin LCVR is starting...
[Warning: Unity Log] The referenced script (LmaoScript) on this Behaviour is missing!
[Warning: Unity Log] The referenced script on this Behaviour (Game Object 'ALiteralCube') is missing!
[Warning: Unity Log] The referenced script (AnimateHandOnInput) on this Behaviour is missing!
[Warning: Unity Log] The referenced script on this Behaviour (Game Object '') is missing!
[Warning: Unity Log] The referenced script (AnimateHandOnInput) on this Behaviour is missing!
[Warning: Unity Log] The referenced script on this Behaviour (Game Object '') is missing!
[Info   :      LCVR] Loading VR...
[Info   : Unity Log] XRGeneral Settings awakening...
[Error  : Unity Log] DllNotFoundException: UnityOpenXR assembly:<unknown assembly> type:<unknown type> member:(null)
Stack trace:
UnityEngine.XR.OpenXR.OpenXRLoaderBase.Initialize () (at <6d442ad8e5f741e3bf162b65a9e5972b>:0)
UnityEngine.XR.Management.XRManagerSettings.InitializeLoaderSync () (at <b6cb980159cd47e39b81ef7848f9423a>:0)
UnityEngine.XR.Management.XRGeneralSettings.InitXRSDK () (at <b6cb980159cd47e39b81ef7848f9423a>:0)
System.Reflection.RuntimeMethodInfo.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) (at <787acc3c9a4c471ba7d971300105af24>:0)
Rethrow as TargetInvocationException: Exception has been thrown by the target of an invocation.
System.Reflection.RuntimeMethodInfo.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) (at <787acc3c9a4c471ba7d971300105af24>:0)
System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters) (at <787acc3c9a4c471ba7d971300105af24>:0)
LethalCompanyVR.Plugin.InitializeXRRuntime () (at C:/Users/Gustavo/Desktop/LCVR/Plugin.cs:138)
LethalCompanyVR.Plugin.InitVRLoader () (at C:/Users/Gustavo/Desktop/LCVR/Plugin.cs:66)
LethalCompanyVR.Plugin.Awake () (at C:/Users/Gustavo/Desktop/LCVR/Plugin.cs:60)
UnityEngine.GameObject:AddComponent(Type)
BepInEx.Bootstrap.Chainloader:Start()
UnityEngine.Rendering.HighDefinition.HDRenderPipelineAsset:OnEnable()

While the error mentions of a DLL not found, all the necessary dlls are in the folder of the plugin, including Unity.XR.OpenXR.dll. Does the plugin folder needs a specific structure?

My guess is that Harmony is not being able to patch the game for some reason, but I'm not sure if it's a problem with my build or I'm missing something else.

I also tested with Virtual Desktop, SteamLink and AirLink and all OpenXR runtimes I have available, being SteamVR, Oculus and VDXR, the error didn't change.

I also believe I have all necessary dependencies, my game version is 45, BeepinEX 5.4.2 for Mono, and the .NET desktop target in Visual Studio and .NET SDK 8.0 since it was specified in the docs.

I apologize if it's a rookie mistake, I'm starting out with Unity modding development and I'm interested what could be the cause of this error.

Thank you for your time,

Have a nice day

Cannot navigate UI on Quest 2, no errors in console.

I was able to get the mod to fully load without any noticeable errors using the instructions listed here #19.

The game seems to load fine but I don't see the controllers appear on screen and I am unable to navigate the UI. I am using an oculus quest 2. I've tried it over Steam Link, Air Link and wired to my pc.

Here is my log:
LogOutput.log

VR HUD

Since the entire hierarchy of the HUD rendering has changed, there is a need for some changes to allow the HUD to be viewed correctly. I have a few ideas of how to implement some parts of this:

  • Have the battery meter show on and track the right arm when a battery powered object is being held
  • Have the sprint/character icon show on and track the left arm
  • Display interact icons on the objects themselves instead of in front of the camera
  • Object scanner
  • Misc camera tracked HUD
  • Configuration option to track arm based HUD on camera instead of arms
  • Inventory?

Interaction loss when picking stuff up

I'm using the binaries compiled by Zeleny on Discord posted here, I believe it's up to date with the current main at time of writing.

I was on the Index and around 2h into the session my ability to interact with anything was completely gone, the GUI didn't appear at all. However, my controllers worked and I could move around without any issues. I didn't experience any problems up until this point.

Dying didn't help and I made sure the game is focused on my monitor. The only thing that fixed it is going to main menu and creating a game again.

Excerpt from the logs that seems important:

[Info   : Unity Log] grabInvalidated: False
[Info   : Unity Log] grabInvalidated: False
[Info   : Unity Log] grabInvalidated: False
[Info   : Unity Log] Despawning props and enemies #2
[Info   : Unity Log] Despawning props and enemies #3
[Info   : Unity Log] Enemies on map: 13
[Info   : Unity Log] Despawning enemy: Centipede(Clone)
[Info   : Unity Log] Despawning enemy: HoarderBug(Clone)
[Info   : Unity Log] Despawning enemy: Flowerman(Clone)
[Info   : Unity Log] Despawning enemy: DoublewingedBird(Clone)
[Info   : Unity Log] Despawning enemy: DoublewingedBird(Clone)
[Info   : Unity Log] Despawning enemy: DocileLocustBees(Clone)
[Info   : Unity Log] Despawning enemy: DoublewingedBird(Clone)
[Info   : Unity Log] Despawning enemy: DocileLocustBees(Clone)
[Info   : Unity Log] Despawning enemy: RedLocustBees(Clone)
[Info   : Unity Log] Despawning enemy: DocileLocustBees(Clone)
[Info   : Unity Log] Despawning enemy: DocileLocustBees(Clone)
[Info   : Unity Log] Despawning enemy: RedLocustBees(Clone)
[Info   : Unity Log] Despawning enemy: RedLocustBees(Clone)
[Info   : Unity Log] grabInvalidated: False
[Info   : Unity Log] grabInvalidated: False
(same message spammed)
[Info   : Unity Log] grabInvalidated: False
[Info   : Unity Log] grabInvalidated: False
[Warning: Unity Log] [Netcode] NetworkObject #746 moved to the root because its parent NetworkObject #747 is destroyed
[Warning: Unity Log] [Netcode] NetworkObject #743 moved to the root because its parent NetworkObject #747 is destroyed
[Info   : Unity Log] grabInvalidated: False
[Info   : Unity Log] grabInvalidated: False
(same message spammed hundreds of times)
[Info   : Unity Log] grabInvalidated: False
[Info   : Unity Log] grabInvalidated: False
[Error  : Unity Log] NullReferenceException: Object reference not set to an instance of an object
Stack trace:
GameNetcodeStuff.PlayerControllerB+<GrabObject>d__350.MoveNext () (at <44743d9474784365a095189c76175301>:0)
UnityEngine.SetupCoroutine.InvokeMoveNext (System.Collections.IEnumerator enumerator, System.IntPtr returnValueAddress) (at <e27997765c1848b09d8073e5d642717a>:0)

[Info   : Unity Log] Level up timer: 0
[Info   : Unity Log] Reviving players A
[Info   : Unity Log] Reviving players B
[Info   : Unity Log] Reviving players C

I think these logs roughly happened when I tried to pick up a beehive and died at the same time, resetting the round:

lethal.pickup720.mp4

After respawning, I couldn't interact with anything.

Attaching full logs below:
LogOutput - Iteraction broke.log

This also could be a base game bug and unrelated to LCVR.

SteamVR causes extreme shakiness

Installed mod and it works fine using Oculus as the OpenXR runtime, but when trying to use SteamVR the screen is very shaky and doesn't seem to follow the headsets movements. I'm using a Quest 3 connected via link cable. Does it make a difference if it's launched via executable or from the steamvr menu? Would like to launch via steam to invite friends.

Black screen

I get an error every time I try to play and the game just shows a black screen in my headset and on pc (I'm using a valve index)
Log:
LogOutput.log

Failed to start in VR mode

Whenever I start the game, in the game console it always has the error message and vr does not work, and I am on version 45

Screenshot 2024-01-11 182701

Game runs bad in VR but looks fine on recording and on my monitor

I use and oculus quest 2 and a KIWI cord to connect to my PC I also use a 3.0 USB slot. When I'm playing in VR and move my head, Walk, Or lean the screen shakes like crazy, I'm not sure what's causing the problem cause I'm pretty sure my PC can run it when I check my task manager while the game was open and I was playing nothing was at 100% usage I don't know if that means anything but yea.

PC Specs:
Screenshot 2024-01-12 220004

Release v1.0.0

Tracking everything that has to be done before I will publish the first release.

  • #4 (Checked because I think its good enough for release, but requires some QoL improvements)
  • #6
  • #9

List is subject to change

Current target game version: V49

Can't Select Network Mode

After running the game with the LCVR and BepInEx, the game boots in VR! However there is a purple square on the ground that moves weirdly and I am unable to select the network mode. I play on Valve Index.

Lack of Thumbstick Deadzones in WMR OpenXR, lack of proper WMR Controller bindings

Running the mod natively in a Mixed Reality environment (No SteamVR input) causes sliding movements due to the thumbstick values not being exactly 0.

The game is also unplayable in LCVR with the Samsung Odyssey controllers because of improper and missing bindings, seems to be because nearly half of the WMR inputs under UnityXR are unique or not lining up properly with the UnityXR input nodes used by LCVR.

There aren't anything like A or B buttons on these controllers, so discarding, jumping, recalibration, and possibly a few more are impossible as they aren't bound to anything the controllers can do.

If running the mod in SteamVR, the crouch and sprint bindings become unusable because of SteamVR taking up the thumbstick presses to display the SteamVR UI (even disabling this part of SteamVR just makes the thumbstick presses do nothing, but this is a problem of SteamVR)

multiplayer is broken

only 1 person in a lobby can see, everyone else is black. could it be because of a mod installed?

Animations being broken for PC players

Being on VR and friends being on PC the default animations are broken. they just stand still. and same for people who dont have a VR player in the lobby the animations just dont work

Inventory scrolling very hard.

Scrolling through your inventory 1 by 1 does not work. We should be able to simply point our right thumbstick up once and it will go once. Currently keeping it up will scroll through very fast. Instead, we should have it where if you keep it up it should stop.

Player hand is offset to myself (idk if is offset to others too)

so. i downloaded the mod from a tutorial by zappier. Everything seems to work fine. expect for my hands. i dont know why but my hands spawn so high its offset. and when i try to look at my computer the screen is offset too.

photo:
Ekran gรถrรผntรผsรผ 2024-01-13 172045

please help me fix this i just downoaded it and want to test the mod out. ฤฐ dont know if its my computer's problem or is it a bug?

UPDATE: ok so i downloaded the released one but it fix.

Keybinds do not work for Cosmos Elite.

My buddy is using a Cosmos Elite and is unable to jump in game. There are also some other buggy issues with the remotes not working properly.

Is there any fix for this?
Thanks.

Unable to open in vr mode

I tried to set it all up, the set up worked however launching the game, it says failed to start in vr mode and launches as if im playing on pc. Quest 3 using steam vr

Fog Only Appears in One Eye

Self explanatory, fog and lights and such only appear in the left eye, causing me to need to turn off Volumetrics.

LCVR Thunderstore/NexusMods Malware

Running the mod version 1.0.1 from thunderstore (which is no longer available now) caused the entirety of the game to no longer launch, and it forces steamVR into throwing errors for all other applications. Fresh installs of all the above don't seem to matter, leading me to believe something else was changed by this. Verified with another user who also had identical problems to me in the group.

EDIT:

Upon further digging, it seems to have corrupted some windows .net files. Here is a screenshot of the steamvr error code
image

Double visiion during lobby select and broken when in game?

might just be an compatibility issue bc of v47

During the select screen between online and lan the vision is normal, after that I get doubled vision until I enter a game.
If I host the game myself everything is fine, but if I try to join others the screen gets zoomed in, and i cant move after
Schermafbeelding 2024-01-09 195253

Reset Height puts me further in the floor

I'm pretty short so I need my height guaranteed, Pressing Y to reset my height puts me down further in the floor. and I feel like there might be a delay on the keyboard. On the Keybind.md you say that grabbing objects as in like a table or a TV won't work because there aren't enough buttons. What about pressing 2 buttons? Or maybe an action menu when pointing at it?

Those are some suggestions and some issues.
Sorry for playing early.

error when I start the game

Hey,

When I start the game, whennever in v47 ou v45, in VR or not I have an error that spawn and the game donesn't launch in vr mode

`[Warning: LCVR] ==== OpenXR Init Info ====

Stage 1 Missing Entry Points: (1)
xrInitializeLoaderKHR

==== OpenXR Provider Info ====

Spec Version: 1.0.27
Provider Version: 1.8.2
App: Lethal Company #3159629941
Engine: 2022.3.9f1 #53515265

==== OpenXR Runtime Info ====

Features requested to be enabled: (7)
: Version=, Company=""
: Version=, Company=""
: Version=, Company=""
: Version=, Company=""
: Version=, Company=""
: Version=, Company=""
: Version=, Company=""

Requested feature extensions not supported by runtime: (0)

Available Runtime Extensions: (29)
XR_KHR_D3D11_enable: Version=9
XR_KHR_D3D12_enable: Version=9
XR_KHR_opengl_enable: Version=10
XR_KHR_vulkan_enable: Version=8
XR_KHR_vulkan_enable2: Version=2
XR_KHR_composition_layer_depth: Version=6
XR_KHR_win32_convert_performance_counter_time: Version=1
XR_KHR_convert_timespec_time: Version=1
XR_KHR_composition_layer_cube: Version=8
XR_KHR_composition_layer_cylinder: Version=4
XR_KHR_composition_layer_equirect: Version=3
XR_KHR_visibility_mask: Version=2
XR_KHR_composition_layer_color_scale_bias: Version=5
XR_EXT_win32_appcontainer_compatible: Version=1
XR_EXT_debug_utils: Version=5
XR_OCULUS_recenter_event: Version=1
XR_OCULUS_audio_device_guid: Version=1
XR_FB_color_space: Version=3
XR_FB_display_refresh_rate: Version=1
XR_META_performance_metrics: Version=2
XR_META_headset_id: Version=1
XR_OCULUS_ovrsession_handle: Version=1
XR_EXT_local_floor: Version=1
XR_FB_haptic_amplitude_envelope: Version=1
XR_FB_haptic_pcm: Version=1
XR_FB_touch_controller_pro: Version=1
XR_META_touch_controller_plus: Version=1
XR_FB_touch_controller_proximity: Version=1
XR_OCULUS_external_camera: Version=1

Available Layers: (0)

Runtime Name: Oculus
Runtime Version: 1.92.0

==== OpenXR Exception Thrown ====

Error: XrResult failure [XR_ERROR_FORM_FACTOR_UNAVAILABLE]
Origin: result
Source: C:\build\output\unity\xr.sdk.openxr\NativePlugin\Source\unity_session.cpp:260

==== Std Exception Thrown ====

Function: Display_Initialize
Message: XrResult failure [XR_ERROR_FORM_FACTOR_UNAVAILABLE]
Origin: result
Source: C:\build\output\unity\xr.sdk.openxr\NativePlugin\Source\unity_session.cpp:260

==== Last 20 non-XR_SUCCESS returns ====
[FAILURE] xrGetSystem: XR_ERROR_FORM_FACTOR_UNAVAILABLE (1x)

==== Last 20 Events ====

[Error : LCVR] Failed to start in VR Mode! Only Non-VR features are available!
[Error : LCVR] An OpenXR log dump is displayed above to help with troubleshooting.`

Did I forget to do something when I build in visual studio or get the files in unity ?

Unable to use Items on Index

Most controls seem to work fine using Valve Knuckles (Index) controllers, but I am unable to use items (e.g. flashlight. right trigger click) or scan (left trigger click).

This seems to be an issue with trigger click detection, as SteamVR bindings report that it should be triggering, and my controllers work fine in other games (and, naturally, the SteamVR interface).

I don't know what could be causing that at present, I'll make a dummy project in Unity tomorrow and see if maybe the XR input system just doesn't like Valve Knuckles controllers. (Shouldn't be the case?)

VR Interactions

This is an initial draft for implementing VR interactions within the mod. VR Interactions will not be added in the first release of the mod, but will be added at a later date.

  • Third person hand movement
  • Correctly holding large items
  • Swinging the shovel/signs using motion instead of buttons
  • Throwing items (this would be so cool) Incompatible with vanilla clients
  • Spray paint? I'm not sure if this could be implemented easily inside the #9, in which case this point isn't needed

As always, list is subject to change

Found 1 visual and 1 critical bug with mods

While testing compatability with friend's modpack I ran into problems with 2 mods in the modpack. By trial and error I found which mods were causing the issue.

The less serious issue is menu screen view duplication where each eye recieves it's own screen instead of blending into eachother. This was caused by MoreCompany mod. Upon loading the save the issue disappears. Probably because the changes mod does to UI.

The more serious issue is causing TooManyEmotes mod. Upon loading the save the screen freezes after few moments. The game runs normally otherwise. You hear the speaker, run, interact with stuff. The screen is stuck shaking like if you lagged in VRChat. There seems to be problem with either character's skeleton or the camera. Are the two mods fighting eachother?

Black Screen Index

When launching the game I either get a black screen or the unity logo, steamVR often also crashes

Am using a Valve Index, no other mods. BepInEx is ofcourse installed

this is using the release version of LCVR, 1.0.0

remove morecompany code because it no longer is open source

because of this playing with people that have the morecompany mod seperately will result in incompatabilities because the morecompany code that is in lcvr no longer can be updated since the source is no longer available
so its good to have morecompany mod being seperate so anyone that has morecompany has the same morecompany and will not be limited to lcvr mod only specifically so people can play lcvr with people that dont have lcvr but do got morecompany mod seperately

Unable to find package HarmonyX

As of downloading the latest source code and attempting to compile the following error is sent to the console.

error NU1101: Unable to find package HarmonyX. No packages exist with this id in s ource(s): BepInEx, Microsoft Visual Studio Offline Packages

Upscaling settings breaks rendering

When changed settings related to upscaling to true causes right eye display frozen portion of UI on black background. Left eye displays correct view.

[Performance]
EnableUpscaling = true
EnableDLLS = true

Working spectator/death camera

The spectator camera will require some thinking about how to go about implementing it. In the base game, the spectator camera can revolve around the spectated player, which could be really awkward in VR. Furthermore headset movement may cause some issues with the rendering. Maybe add a freecam for VR players, so that once they die they can just float through the world and phase through walls, with teleporting to players?

Then we have the "everyone-is-dead" camera, which spectates the outside and inside of the ship before respawning the player with a correct camera setup. I think this one is a tad bit easier: just allow the position to be updated by the cinematic but allow for free rotation. It is a short scene anyways, so I don't think it's worth it going all out on this specific use case.

Arms "flying" above the head

Greetings! Found this mod as an interesting thing to try out, but I met an issue - I couldn't see my arms. And I thought that it was a normal thing to deal with, but when I looked up - boom! I saw my arms.
I thought of deleting a few mods that could interfere with the player's model bones, but that didn't work. I tried deleting every single mod except LCVR, and unfortunately, that wouldn't work as well. I've noticed that whenever I move, my arms are teleported back to my shoulders, yet I still cannot see them. However, whenever I try opening a door, pick up an object, etc. - the hitboxes are fine, it's just about the bones in the model.

Issues with Helmet Cameras mod

Due to a recent update with this mod (as of writing, I tried it with commits 3781be6 and e567d4d), it is no longer compatible with the Helmet_Cameras mod. However, a version of the mod that I compiled on 1/2/2024 9:06PM EST (pretty sure it uses commit b87472d) does work fine with the Helmet_Cameras mod.

The following error is logged in the console constantly:

Stack trace:
LCVR.Player.IKRigFollowVRRig.LateUpdate () (at <00b3b0a3037f4038be1ec4dba9f7ff61>:IL_002F)

[Info   : Unity Log] [HELMET_CAMERAS] ERROR NULL REFERENCE
[Error  : Unity Log] NullReferenceException: Object reference not set to an instance of an object

Here is my LogOutput file as well: LogOutput.log

Player hand locations appears significantly offset to other players

Using the latest version of LRVC, the adjusted IK system seemed to fix the first person arm issue, but may have introduced a significant offset to the hand locations.

image
image

In the above two screenshots, this is a photo of two different players using Valve Index headsets and controllers holding their hands straight out in front with their arms parallel to the ground. In first person, their arms were shown in the correct position.

image
image

In the above photo, both players are holding their controllers as far left as possible, but in the photo they appear to still have their hands mostly on the left side. In first person, their arms were shown in the correct position.

The only Mods enabled during this test was BepinEx, LC_API, and LCVR compiled after the most recent commits were merged.

Unplayable lag for the Quest

Quest player, when I boot up the mod, even with all my mods that are compatible and vanilla Lethal. The game is very laggy that its unplayable. I've noticed when taking off the headset ingame FPS normalizes to 144.

Unity Log Error

Does anyone know why I keep getting this error?

[Error : Unity Log] Exception: Blitter is already initialized. Please only initialize the blitter once or you will leak engine resources. If you need to re-initialize the blitter with different shaders destroy & recreate it.
Stack trace:
UnityEngine.Rendering.Blitter.Initialize (UnityEngine.Shader blitPS, UnityEngine.Shader blitColorAndDepthPS) (at <3e4d5d98dfc34520bf7c624af5a98275>:0)
UnityEngine.Rendering.HighDefinition.HDRenderPipeline..ctor (UnityEngine.Rendering.HighDefinition.HDRenderPipelineAsset asset) (at <6214bbc46efe4329a4e9806065941bb4>:0)
UnityEngine.Rendering.HighDefinition.HDRenderPipelineAsset.CreatePipeline () (at <6214bbc46efe4329a4e9806065941bb4>:0)
UnityEngine.Rendering.RenderPipelineAsset.InternalCreatePipeline () (at :0)
UnityEngine.Rendering.RenderPipelineManager:DoRenderLoop_Internal(RenderPipelineAsset, IntPtr, Object)

Stuck on start

image

In BepInEx no errors or something, just game was freezed after 1.5 seconds after unity logo appeared.

skips loading openxr_loader.dll and UnityOpenXR.dll

im on v45 and it just keeps saying this, it was working fine yesterday, i even disabled all mods but this and recompiled with the new version but issue still occured, and whenever i join people can hear my voice but cant see me and vice versa, even if they dont have the vr mod, and all i see is the UI and a black screen when in another person's lobby, and also the main menu looks weird in my left lens, I have also tried uninstalling and re installing already but no luck
Screenshot 2024-01-08 211653

Getting stuck on multiplayer selection.

I got a friend who is using an Oculus rift CV1. He can launch into the game just fine, but the game doesn't seem to load the UI in world-space and still tries to run screen-space (The same as normal desktop). Breaking the ability to navigate anything. He does have the OpenXR runtime set correctly, he also tried to use Oculus and SteamVR separately but had the same outcome on both. Below is what the logs spit out:
image

We both are using the same LCVR files and I'm having no issues.

Not launchable in VR

Hey guys, just tried a shitload to make it run.
After getting the missing unity deps (didn't see a release where I can download it)
The game now boots in VR, but I get the same error every second and I don't see any in game Stuff (Neither in VR nor Desktop, but I can hear sounds)

STACK:
[Message: BepInEx] BepInEx 5.4.22.0 - Lethal Company (06.01.2024 13:52:47) [Info : BepInEx] Running under Unity v2022.3.9.15351836 [Info : BepInEx] CLR runtime version: 4.0.30319.42000 [Info : BepInEx] Supports SRE: True [Info : BepInEx] System platform: Bits64, Windows [Message: BepInEx] Preloader started [Info : BepInEx] Loaded 1 patcher method from [BepInEx.Preloader 5.4.22.0] [Info : BepInEx] 1 patcher plugin loaded [Info : BepInEx] Patching [UnityEngine.CoreModule] with [BepInEx.Chainloader] [Message: BepInEx] Preloader finished [Message: BepInEx] Chainloader ready [Message: BepInEx] Chainloader started [Info : BepInEx] 4 plugins to load [Warning: BepInEx] Skipping [LCVR 0.0.1] because a newer version exists (LCVR 0.0.1) [Info : BepInEx] Loading [MoreCompany 1.7.2] [Info :MoreCompany] Loading MoreCompany... [Info :MoreCompany] Checking: C:\Program Files (x86)\Steam\steamapps\common\Lethal Company\BepInEx\plugins/MoreCompanyCosmetics [Info :MoreCompany] Read settings and cosmetics [Info :MoreCompany] Loaded cosmetic: builtin.3dglasses from bundle [Info :MoreCompany] Loaded cosmetic: builtin.bunnyears from bundle [Info :MoreCompany] Loaded cosmetic: builtin.denimhat from bundle [Info :MoreCompany] Loaded cosmetic: builtin.fancyglasses from bundle [Info :MoreCompany] Loaded cosmetic: builtin.partyglasses from bundle [Info :MoreCompany] Loaded cosmetic: builtin.gunholster from bundle [Info :MoreCompany] Loaded cosmetic: builtin.hardhat from bundle [Info :MoreCompany] Loaded cosmetic: builtin.jesterhat from bundle [Info :MoreCompany] Loaded cosmetic: builtin.kittyears from bundle [Info :MoreCompany] Loaded cosmetic: builtin.mimemask from bundle [Info :MoreCompany] Loaded cosmetic: builtin.fancypants from bundle [Info :MoreCompany] Loaded cosmetic: builtin.outoforder from bundle [Info :MoreCompany] Loaded cosmetic: builtin.partyhat from bundle [Info :MoreCompany] Loaded cosmetic: builtin.plaguemask from bundle [Info :MoreCompany] Loaded cosmetic: builtin.propellerhat from bundle [Info :MoreCompany] Loaded cosmetic: builtin.eyeballs from bundle [Info :MoreCompany] Loaded cosmetic: builtin.rudolph from bundle [Info :MoreCompany] Loaded cosmetic: builtin.santahat from bundle [Info :MoreCompany] Loaded cosmetic: builtin.slimething from bundle [Info :MoreCompany] Loaded cosmetic: builtin.tophat from bundle [Info :MoreCompany] Loaded cosmetic: builtin.watch from bundle [Info :MoreCompany] Loading USER COSMETICS... [Info :MoreCompany] Loaded MoreCompany FULLY [Info : BepInEx] Loading [LCVR 0.0.1] [Info : LCVR] Found compatible mod MoreCompany [Info : LCVR] Plugin LCVR is starting... [Info : LCVR] Loading VR... [Info : Unity Log] XRGeneral Settings awakening... Error [GENERAL | xrCreateInstance | OpenXR-Loader] : LoaderInstance::CreateInstance chained CreateInstance call failed Error [GENERAL | xrCreateInstance | OpenXR-Loader] : xrCreateInstance failed [Info : LCVR] Initialized OpenXR Runtime [Error : LCVR] Failed to start in VR Mode! Only Non-VR features are available! [Info : BepInEx] Loading [Lethal Company GameMaster 1.0.0.0] [Info :GameMaster] Loaded GameMaster. Patching. [Info :Lethal Company GameMaster] GUILoader loaded. [Message: BepInEx] Chainloader startup complete [Error : Unity Log] ArgumentException: An item with the same key has already been added. Key: UnityEngine.Rendering.ProbeVolumesOptions Stack trace: System.Collections.Generic.Dictionary2[TKey,TValue].TryInsert (TKey key, TValue value, System.Collections.Generic.InsertionBehavior behavior) (at <787acc3c9a4c471ba7d971300105af24>:0)
System.Collections.Generic.Dictionary2[TKey,TValue].Add (TKey key, TValue value) (at <787acc3c9a4c471ba7d971300105af24>:0) UnityEngine.Rendering.VolumeStack.Reload (System.Collections.Generic.List1[T] componentDefaultStates) (at <3e4d5d98dfc34520bf7c624af5a98275>:0)
UnityEngine.Rendering.VolumeManager.CreateStack () (at <3e4d5d98dfc34520bf7c624af5a98275>:0)
UnityEngine.Rendering.VolumeManager..ctor () (at <3e4d5d98dfc34520bf7c624af5a98275>:0)
UnityEngine.Rendering.VolumeManager+<>c.<.cctor>b__46_0 () (at <3e4d5d98dfc34520bf7c624af5a98275>:0)
System.Lazy1[T].ViaFactory (System.Threading.LazyThreadSafetyMode mode) (at <787acc3c9a4c471ba7d971300105af24>:0) System.Lazy1[T].ExecutionAndPublication (System.LazyHelper executionAndPublication, System.Boolean useDefaultConstructor) (at <787acc3c9a4c471ba7d971300105af24>:0)
System.Lazy1[T].CreateValue () (at <787acc3c9a4c471ba7d971300105af24>:0) System.Lazy1[T].get_Value () (at <787acc3c9a4c471ba7d971300105af24>:0)
UnityEngine.Rendering.VolumeManager.get_instance () (at <3e4d5d98dfc34520bf7c624af5a98275>:0)
UnityEngine.Rendering.Volume.OnEnable () (at <3e4d5d98dfc34520bf7c624af5a98275>:0)

[Info : Unity Log] Changing gamma
[Info : Unity Log] override float value: 0
[Info : Unity Log] Overriding float
[Info : Unity Log] Gamma changed
[Info : Unity Log] Set gamma to new value: 0; (0.00, 0.00, 0.00, 0.00) (True)
[Error : Unity Log] ArgumentException: An item with the same key has already been added. Key: UnityEngine.Rendering.ProbeVolumesOptions
Stack trace:
System.Collections.Generic.Dictionary2[TKey,TValue].TryInsert (TKey key, TValue value, System.Collections.Generic.InsertionBehavior behavior) (at <787acc3c9a4c471ba7d971300105af24>:0) System.Collections.Generic.Dictionary2[TKey,TValue].Add (TKey key, TValue value) (at <787acc3c9a4c471ba7d971300105af24>:0)
UnityEngine.Rendering.VolumeStack.Reload (System.Collections.Generic.List1[T] componentDefaultStates) (at <3e4d5d98dfc34520bf7c624af5a98275>:0) UnityEngine.Rendering.VolumeManager.CreateStack () (at <3e4d5d98dfc34520bf7c624af5a98275>:0) UnityEngine.Rendering.VolumeManager..ctor () (at <3e4d5d98dfc34520bf7c624af5a98275>:0) UnityEngine.Rendering.VolumeManager+<>c.<.cctor>b__46_0 () (at <3e4d5d98dfc34520bf7c624af5a98275>:0) System.Lazy1[T].ViaFactory (System.Threading.LazyThreadSafetyMode mode) (at <787acc3c9a4c471ba7d971300105af24>:0)
--- End of stack trace from previous location where exception was thrown ---
System.LazyHelper.ThrowException () (at <787acc3c9a4c471ba7d971300105af24>:0)
System.Lazy1[T].CreateValue () (at <787acc3c9a4c471ba7d971300105af24>:0) System.Lazy1[T].get_Value () (at <787acc3c9a4c471ba7d971300105af24>:0)
UnityEngine.Rendering.VolumeManager.get_instance () (at <3e4d5d98dfc34520bf7c624af5a98275>:0)
UnityEngine.Rendering.Volume.OnEnable () (at <3e4d5d98dfc34520bf7c624af5a98275>:0)

[Error : Unity Log] ArgumentException: An item with the same key has already been added. Key: UnityEngine.Rendering.ProbeVolumesOptions
Stack trace:
System.Collections.Generic.Dictionary2[TKey,TValue].TryInsert (TKey key, TValue value, System.Collections.Generic.InsertionBehavior behavior) (at <787acc3c9a4c471ba7d971300105af24>:0) System.Collections.Generic.Dictionary2[TKey,TValue].Add (TKey key, TValue value) (at <787acc3c9a4c471ba7d971300105af24>:0)
UnityEngine.Rendering.VolumeStack.Reload (System.Collections.Generic.List1[T] componentDefaultStates) (at <3e4d5d98dfc34520bf7c624af5a98275>:0) UnityEngine.Rendering.VolumeManager.CreateStack () (at <3e4d5d98dfc34520bf7c624af5a98275>:0) UnityEngine.Rendering.VolumeManager..ctor () (at <3e4d5d98dfc34520bf7c624af5a98275>:0) UnityEngine.Rendering.VolumeManager+<>c.<.cctor>b__46_0 () (at <3e4d5d98dfc34520bf7c624af5a98275>:0) System.Lazy1[T].ViaFactory (System.Threading.LazyThreadSafetyMode mode) (at <787acc3c9a4c471ba7d971300105af24>:0)
--- End of stack trace from previous location where exception was thrown ---
System.LazyHelper.ThrowException () (at <787acc3c9a4c471ba7d971300105af24>:0)
System.Lazy1[T].CreateValue () (at <787acc3c9a4c471ba7d971300105af24>:0) System.Lazy1[T].get_Value () (at <787acc3c9a4c471ba7d971300105af24>:0)
UnityEngine.Rendering.VolumeManager.get_instance () (at <3e4d5d98dfc34520bf7c624af5a98275>:0)
UnityEngine.Rendering.HighDefinition.SkyManager.Build (UnityEngine.Rendering.HighDefinition.HDRenderPipelineAsset hdAsset, UnityEngine.Rendering.HighDefinition.HDRenderPipelineRuntimeResources defaultResources, UnityEngine.Rendering.HighDefinition.IBLFilterBSDF[] iblFilterBSDFArray) (at <6214bbc46efe4329a4e9806065941bb4>:0)
UnityEngine.Rendering.HighDefinition.HDRenderPipeline..ctor (UnityEngine.Rendering.HighDefinition.HDRenderPipelineAsset asset) (at <6214bbc46efe4329a4e9806065941bb4>:0)
UnityEngine.Rendering.HighDefinition.HDRenderPipelineAsset.CreatePipeline () (at <6214bbc46efe4329a4e9806065941bb4>:0)
UnityEngine.Rendering.RenderPipelineAsset.InternalCreatePipeline () (at :0)
UnityEngine.Rendering.RenderPipelineManager:DoRenderLoop_Internal(RenderPipelineAsset, IntPtr, Object)

[Error : Unity Log] Exception: Blitter is already initialized. Please only initialize the blitter once or you will leak engine resources. If you need to re-initialize the blitter with different shaders destroy & recreate it.
Stack trace:
UnityEngine.Rendering.Blitter.Initialize (UnityEngine.Shader blitPS, UnityEngine.Shader blitColorAndDepthPS) (at <3e4d5d98dfc34520bf7c624af5a98275>:0)
UnityEngine.Rendering.HighDefinition.HDRenderPipeline..ctor (UnityEngine.Rendering.HighDefinition.HDRenderPipelineAsset asset) (at <6214bbc46efe4329a4e9806065941bb4>:0)
UnityEngine.Rendering.HighDefinition.HDRenderPipelineAsset.CreatePipeline () (at <6214bbc46efe4329a4e9806065941bb4>:0)
UnityEngine.Rendering.RenderPipelineAsset.InternalCreatePipeline () (at :0)
UnityEngine.Rendering.RenderPipelineManager:DoRenderLoop_Internal(RenderPipelineAsset, IntPtr, Object)`

Broken on patch 47

Got working just hours before the new patch, fresh reinstall of LC and LCVR and no luck. During recompiling, getting the following error "string" (not used to reporting or propper terminology, please forgive):

"
[...]
C:\Users\jdomi\Desktop\LCVR-main\Patches\PlayerControllerPatches.cs(219,29): error CS0111: Type 'PlayerControllerPatche
s' already defines a member called 'ClickHoldInteractionPrefix' with the same parameter types [C:\Users\jdomi\Desktop\L
CVR-main\LCVR.csproj]
C:\Users\jdomi\Desktop\LCVR-main\Patches\PlayerControllerPatches.cs(226,29): error CS0111: Type 'PlayerControllerPatche
s' already defines a member called 'OnPlayerDeath' with the same parameter types [C:\Users\jdomi\Desktop\LCVR-main\LCVR
.csproj]
C:\Users\jdomi\Desktop\LCVR-main\Patches\PlayerControllerPatches.cs(241,29): error CS0111: Type 'PlayerControllerPatche
s' already defines a member called 'OnPlayerRevived' with the same parameter types [C:\Users\jdomi\Desktop\LCVR-main\LC
VR.csproj]
C:\Users\jdomi\Desktop\LCVR-main\Patches\PlayerControllerPatches.cs(255,29): error CS0111: Type 'PlayerControllerPatche
s' already defines a member called 'SwitchedToItemSlot' with the same parameter types [C:\Users\jdomi\Desktop\LCVR-main
\LCVR.csproj]
C:\Users\jdomi\Desktop\LCVR-main\Patches\PlayerControllerPatches.cs(277,29): error CS0111: Type 'PlayerControllerPatche
s' already defines a member called 'IsInactivePlayer' with the same parameter types [C:\Users\jdomi\Desktop\LCVR-main\L
CVR.csproj]
0 Warning(s)
428 Error(s)
"

Bugs we found during last playtest

I'll quickly make a list here of what issues we found (at least the ones I remember):

  • Flashlight beam doesn't follow flashlight
  • Player height reset can glitch the game Rework height "system"
  • Spray paint shaking broken
  • Shovel-like items are not synchronized
  • No usernames visible
  • Spectator cam can sometimes be third person instead of FPV (REQUIRES MORE LOGS) (NOFIX)
  • Valve Index and HTC Vive controller issues (Wontfix, SteamVR override required)
  • VR Players are detected less often by the Nutcracker AI since VR players don't update their look magnitude every frame
  • Items collected UI needs to be a bit more to the left
  • Not sinking in quicksand (May be fixed by height system rework)
  • LODs go to lower quality much quicker with the VR cameras

Extra addition
Keyboard now has two macros: Confirm and deny (Denoted by an X and a checkmark), they have taken the place of the Left and Right button on the keyboard since they didn't function anyways.

Valve Index Controls

Valve Index controls appear to half work, I can drop things and interact with things but I cannot use the scanner or activate flashlights/items

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.