DaXcess / LCVR

Collecting Scrap in VR
https://lcvr.daxcess.io
GNU General Public License v3.0
327 stars 35 forks source link

Menu Button doesn't work on HTC Vive #256

Open cheekiiboom opened 1 month ago

cheekiiboom commented 1 month ago

Changing Menu binding doesn't work on HTC Vive.

Description: Remapping my controls works except for the menu button. No matter what I change my menu button to, the game won't open the menu in game. For example, changing the menu button to be right/left trigger or right/left grip doesn't allow me to open the menu with these buttons. Is it possible that the menu button is hard-coded for the HTC Vive and so the controller re-bindings ignore the changes? Is there anything else I can do to get my menu to open? Regardless, I am ecstatic that the update is finally out and can't wait to continue to playing with it! The car is a lot of fun to drive in VR.

Other: Version: LCVR 1.3.0 Mods: Only the mods from the LCVR 1.3.0 Beta sessions + LethalPerformance HMD: HTC Vive 2016 Controllers: HTC Vive wands (functional) Runtime: SteamVR

DaXcess commented 1 month ago

I can't seem to reproduce it. I changed the bindings to also make the Oculus (headset I use) controls to work the same as the HTC Vive like this: image

(Oculus normally uses the primaryButton)

I'm still able to use the pause button (now Menu), still works, I can still rebind. Wondering what's going on here then.

DaXcess commented 1 month ago

If I had to guess, this is not a rebinding issue, but a "I try to open pause menu but an exception is thrown and it doesn't want to open the pause menu now" type issue. I haven't seen anybody else experience this, so more info is needed to hunt down the issue (whether it be the VR mod or some mod incompatibility).

cheekiiboom commented 1 month ago

Would I be able to see anything in the logs regarding controller input? I run modded without the debug console, but i can re-enable it to see it.

DaXcess commented 1 month ago

If there's something wrong with the bindings then there's probably nothing to see in the logs. If, however, the issue is caused by errors, those will definitely show up in the console, and look something like this:

image (This is an example error)

cheekiiboom commented 1 month ago

Here is a picture of my current bindings. I will send a second picture of the game logs after

20240812085428_1

DaXcess commented 1 month ago

Here is a picture of my current bindings. I will send a second picture of the game logs after

Something that might also help: Send the custom binding string that is stored inside the io.daxcess.lcvr.cfg file. You should be able to grab that info from your mod launcher, or manually from the config file if you know where that is stored.

cheekiiboom commented 1 month ago

Binding string:

{
    "bindings": [
        {
            "action": "Movement/Jump",
            "id": "02335134-8fda-4646-a367-657d7cf55f40",
            "path": "<ViveController>{LeftHand}/triggerpressed",
            "interactions": "null",
            "processors": "null"
        },
        {
            "action": "Movement/ActivateItem",
            "id": "c3528706-c91a-4d2f-b6fc-3bbf866172a1",
            "path": "<ViveController>{LeftHand}/triggerpressed",
            "interactions": "null",
            "processors": "null"
        },
        {
            "action": "Movement/OpenMenu",
            "id": "f9aa1e00-01e7-478a-8237-f84c40ca0448",
            "path": "<ViveController>{RightHand}/triggerpressed",
            "interactions": "null",
            "processors": "null"
        }
    ]
}

(edit: wrapped in block since github tried to escape HTML + beautified JSON)

cheekiiboom commented 1 month ago

BepInEx Logs for a functional menu button.

  1. Start Lethal Company with only the LethalCompanyVR mod and its dependencies.
  2. This session assumes the bindings were changed in a previous Lethal session.
  3. Open a save
  4. Press Menu works as intended.
[Message:   BepInEx] BepInEx 5.4.21.0 - Lethal Company (4/19/2024 10:23:13 PM)
[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.21.0]
[Info   :   BepInEx] Loaded 1 patcher method from [FixPluginTypesSerialization 1.0.0.0]
[Info   :   BepInEx] 2 patcher plugins loaded
[Message:FixPluginTypesSerialization] Using the config cache
[Info   :FixPluginTypesSerialization] Running under Unity v2022.3.9
[Info   :   BepInEx] Patching [UnityEngine.CoreModule] with [BepInEx.Chainloader]
[Message:   BepInEx] Preloader finished
[Message:   BepInEx] Chainloader ready
[Message:   BepInEx] Chainloader started
[Info   :   BepInEx] 1 plugins to load
[Info   :   BepInEx] Loading [LCVR 1.3.0]
[Info   :      LCVR] Plugin LCVR is starting...
[Info   :      LCVR] Loading VR...
[Info   : Unity Log] XRGeneral Settings awakening...
[Warning:      LCVR] Failed to parse C:\Program Files\Oculus\Support\oculus-runtime\oculus_openxr_64.json: Could not find a part of the path "C:\Program Files\Oculus\Support\oculus-runtime\oculus_openxr_64.json".. Runtime will not be used.
[Info   :OpenXR Loader] Attempting to initialize OpenXR on SteamVR
[Info   :      LCVR] OpenXR runtime being used: SteamVR/OpenXR (2.7.4)
[Info   :  HarmonyX] Patching void GameNetcodeStuff.PlayerControllerB::DiscardHeldObject(bool placeObject, Unity.Netcode.NetworkObject parentObjectTo, UnityEngine.Vector3 placePosition, bool matchRotationOfParent) with 0 prefixes, 0 postfixes, 1 transpilers, 0 finalizers
1 transpilers:
* static System.Collections.Generic.IEnumerable<HarmonyLib.CodeInstruction> LCVR.Patches.PlayerControllerPatches::DropItemWithHandRotation(System.Collections.Generic.IEnumerable<HarmonyLib.CodeInstruction> instructions, System.Reflection.MethodBase original)

[Info   :  HarmonyX] Running ILHook manipulator on void GameNetcodeStuff.PlayerControllerB::DiscardHeldObject(bool placeObject, Unity.Netcode.NetworkObject parentObjectTo, UnityEngine.Vector3 placePosition, bool matchRotationOfParent)
[Info   :  HarmonyX] Transpiling void GameNetcodeStuff.PlayerControllerB::DiscardHeldObject(bool placeObject, Unity.Netcode.NetworkObject parentObjectTo, UnityEngine.Vector3 placePosition, bool matchRotationOfParent)
[Info   :  HarmonyX] Running transpiler static System.Collections.Generic.IEnumerable<HarmonyLib.CodeInstruction> LCVR.Patches.PlayerControllerPatches::DropItemWithHandRotation(System.Collections.Generic.IEnumerable<HarmonyLib.CodeInstruction> instructions, System.Reflection.MethodBase original)
[Message:   BepInEx] Chainloader startup complete
[Info   : Unity Log] Reference frame of the curve not set and XROrigin is not found, using global up as default.
[Info   : Unity Log] Reference frame of the curve not set and XROrigin is not found, using global up as default.
[Info   : Unity Log] Saving changed settings
[Info   : Unity Log] subcribing to steam callbacks
Setting breakpad minidump AppID = 1966720
SteamInternal_SetMinidumpSteamID:  Caching Steam ID:  76561198256880395 [API loaded no]
[Info   : Unity Log] Reference frame of the curve not set and XROrigin is not found, using global up as default.
[Info   : Unity Log] Reference frame of the curve not set and XROrigin is not found, using global up as default.
[Info   : Unity Log] Reference frame of the curve not set and XROrigin is not found, using global up as default.
[Info   : Unity Log] Reference frame of the curve not set and XROrigin is not found, using global up as default.
[Info   : Unity Log] Returning week num: 35
[Info   : Unity Log] week num: 35
[Info   : Unity Log] host button pressed
[Info   : Unity Log] Returning week num: 35
[Info   : Unity Log] Displaying menu message
[Info   : Unity Log] Connection approval callback! Game version of client request:
[Info   : Unity Log] Joining client id: 0; Local/host client id: 0
[Info   : Unity Log] Stopped connection approval callback, as the client in question was the host!
[Warning: Unity Log] [Netcode] You cannot decline the host connection. The connection was automatically approved.
[Info   : Unity Log] started host!
[Info   : Unity Log] are we in a server?: True
[Info   : Unity Log] Lobby has been created
[Info   : Unity Log] Enabling connection callbacks in StartOfRound
[Info   : Unity Log] Began listening to SceneManager_OnLoadComplete1 on this client
[Warning: Unity Log] damageTrigger is disabled! Netcode for GameObjects does not support spawning disabled NetworkBehaviours! The InteractTrigger component was skipped during spawn!
[Info   :      LCVR] Hello game, I am going to initialize now!
[Info   : Unity Log] 1107298560
[Info   : Unity Log] 1107298560
[Info   : Unity Log] level id: 3
[Info   : Unity Log] Changing level
[Info   : Unity Log] Loading from data: for 41 Experimentation: iterations at 2, starting at node #-1
[Info   : Unity Log] Loading from data: for 220 Assurance: iterations at 14, starting at node #47
[Info   : Unity Log] Loading from data: for 56 Vow: iterations at 2, starting at node #-1
[Info   : Unity Log] Loading from data: for 71 Gordion: iterations at 0, starting at node #-1
[Info   : Unity Log] Loading from data: for 61 March: iterations at 0, starting at node #-1
[Info   : Unity Log] Loading from data: for 20 Adamance: iterations at 0, starting at node #-1
[Info   : Unity Log] Loading from data: for 85 Rend: iterations at 6, starting at node #36
[Info   : Unity Log] Loading from data: for 7 Dine: iterations at 0, starting at node #-1
[Info   : Unity Log] Loading from data: for 21 Offense: iterations at 7, starting at node #-1
[Info   : Unity Log] Loading from data: for 8 Titan: iterations at 16, starting at node #-1
[Info   : Unity Log] Loading from data: for 68 Artifice: iterations at 0, starting at node #-1
[Info   : Unity Log] Loading from data: for 44 Liquidation: iterations at 10, starting at node #-1
[Info   : Unity Log] Loading from data: for 5 Embrion: iterations at 0, starting at node #-1
[Info   : Unity Log] Item sales percentages #0: 0
[Info   : Unity Log] Item sales percentages #1: 0
[Info   : Unity Log] Item sales percentages #2: 0
[Info   : Unity Log] Item sales percentages #3: 0
[Info   : Unity Log] Item sales percentages #4: 0
[Info   : Unity Log] Item sales percentages #5: 0
[Info   : Unity Log] Item sales percentages #6: 0
[Info   : Unity Log] Item sales percentages #7: 0
[Info   : Unity Log] Item sales percentages #8: 0
[Info   : Unity Log] Item sales percentages #9: 0
[Info   : Unity Log] Item sales percentages #10: 0
[Info   : Unity Log] Item sales percentages #11: 0
[Info   : Unity Log] Item sales percentages #12: 0
[Info   : Unity Log] Item sales percentages #13: 0
[Info   : Unity Log] Item sales percentages #14: 0
[Info   : Unity Log] Placing scene object at saved position: Terminal
[Info   : Unity Log] Loading placed object position as: (8.45, 1.93, -16.67)
[Info   : Unity Log] Saving placed position as: (8.45, 1.93, -16.67)
[Info   : Unity Log] DISABLE OBJECT A
[Warning: Unity Log] NetworkVariable is written to, but doesn't know its NetworkBehaviour yet. Are you modifying a NetworkVariable before the NetworkObject is spawned?
[Info   : Unity Log] Suits: 1
[Info   : Unity Log] Suit #0: 0
[Info   : Unity Log] pos: (-2.45, 2.75, -8.41); rot: (0.00, 90.00, 0.00)
[Info   : Unity Log] Ship grabbable items list loaded. Count: 52
[Info   : Unity Log] Setting scrap value for item: CookieMoldPan(Clone): 38
[Info   : Unity Log] Setting scrap value for item: Flask(Clone): 32
[Info   : Unity Log] Setting scrap value for item: BigBolt(Clone): 24
[Info   : Unity Log] Setting scrap value for item: BinFullOfBottles(Clone): 49
[Info   : Unity Log] Setting scrap value for item: Remote(Clone): 36
[Info   : Unity Log] Setting scrap value for item: BigBolt(Clone): 24
[Info   : Unity Log] Setting scrap value for item: FancyRing(Clone): 61
[Info   : Unity Log] Setting scrap value for item: Hairbrush(Clone): 38
[Info   : Unity Log] Setting scrap value for item: ComedyMask(Clone): 38
[Info   : Unity Log] Setting scrap value for item: StopSign(Clone): 26
[Info   : Unity Log] Setting scrap value for item: RedLocustHive(Clone): 67
[Info   : Unity Log] Setting scrap value for item: BinFullOfBottles(Clone): 48
[Info   : Unity Log] Setting scrap value for item: FishTestProp(Clone): 31
[Info   : Unity Log] Setting scrap value for item: BigBolt(Clone): 20
[Info   : Unity Log] Setting scrap value for item: Remote(Clone): 26
[Info   : Unity Log] Setting scrap value for item: DiyFlashbang(Clone): 23
[Info   : Unity Log] Setting scrap value for item: EnginePart(Clone): 32
[Info   : Unity Log] Setting scrap value for item: TeaKettle(Clone): 46
[Info   : Unity Log] Setting scrap value for item: BinFullOfBottles(Clone): 50
[Info   : Unity Log] Setting scrap value for item: Toothpaste(Clone): 37
[Info   : Unity Log] Setting scrap value for item: FishTestProp(Clone): 36
[Info   : Unity Log] Setting scrap value for item: Cog(Clone): 50
[Info   : Unity Log] Setting scrap value for item: Painting(Clone): 104
[Info   : Unity Log] Setting scrap value for item: Flask(Clone): 33
[Info   : Unity Log] Setting scrap value for item: StopSign(Clone): 42
[Info   : Unity Log] Setting scrap value for item: RedLocustHive(Clone): 104
[Info   : Unity Log] Setting scrap value for item: TeaKettle(Clone): 41
[Info   : Unity Log] Setting scrap value for item: BigBolt(Clone): 28
[Info   : Unity Log] Setting scrap value for item: FishTestProp(Clone): 38
[Info   : Unity Log] Setting scrap value for item: BinFullOfBottles(Clone): 55
[Info   : Unity Log] Setting scrap value for item: BigBolt(Clone): 28
[Info   : Unity Log] Setting scrap value for item: EasterEgg(Clone): 29
[Info   : Unity Log] Setting scrap value for item: Airhorn(Clone): 54
[Info   : Unity Log] Setting scrap value for item: RedSodaCan(Clone): 34
[Info   : Unity Log] Setting scrap value for item: LaserPointer(Clone): 80
[Info   : Unity Log] Setting scrap value for item: RubberDucky(Clone): 86
[Info   : Unity Log] Setting scrap value for item: MagnifyingGlass(Clone): 57
[Info   : Unity Log] Setting scrap value for item: EnginePart(Clone): 31
[Info   : Unity Log] Setting scrap value for item: FishTestProp(Clone): 31
[Info   : Unity Log] Setting scrap value for item: LaserPointer(Clone): 91
[Info   : Unity Log] Setting scrap value for item: RubberDucky(Clone): 39
[Info   : Unity Log] Setting scrap value for item: PickleJar(Clone): 32
[Info   : Unity Log] Setting scrap value for item: BigBolt(Clone): 32
[Info   : Unity Log] Setting scrap value for item: RedLocustHive(Clone): 65
[Info   : Unity Log] Setting scrap value for item: RubberDucky(Clone): 90
[Info   : Unity Log] Setting scrap value for item: BigBolt(Clone): 24
[Info   : Unity Log] Setting scrap value for item: ComedyMask(Clone): 34
[Info   : Unity Log] Setting scrap value for item: FishTestProp(Clone): 38
[Info   : Unity Log] Setting scrap value for item: RedLocustHive(Clone): 67
[Info   : Unity Log] Setting scrap value for item: Clownhorn(Clone): 61
[Info   : Unity Log] Setting scrap value for item: CookieMoldPan(Clone): 32
[Info   : Unity Log] Loaded vehicle ID: -1
[Info   : Unity Log] Item sales percentages #0: 0
[Info   : Unity Log] Item sales percentages #1: 0
[Info   : Unity Log] Item sales percentages #2: 0
[Info   : Unity Log] Item sales percentages #3: 0
[Info   : Unity Log] Item sales percentages #4: 0
[Info   : Unity Log] Item sales percentages #5: 0
[Info   : Unity Log] Item sales percentages #6: 0
[Info   : Unity Log] Item sales percentages #7: 0
[Info   : Unity Log] Item sales percentages #8: 0
[Info   : Unity Log] Item sales percentages #9: 0
[Info   : Unity Log] Item sales percentages #10: 0
[Info   : Unity Log] Item sales percentages #11: 0
[Info   : Unity Log] Item sales percentages #12: 0
[Info   : Unity Log] Item sales percentages #13: 0
[Info   : Unity Log] Item sales percentages #14: 0
[Info   : Unity Log] Group credits: 594
[Info   : Unity Log] planet mold states length: $13
[Warning: Unity Log] BoxColliders does not support negative scale or size.
The effective box size has been forced positive and is likely to give unexpected collision geometry.
If you absolutely need to use negative scaling you can use the convex MeshCollider. Scene hierarchy path "Environment/HangarShip/LightSwitchContainer/PlacementCollider"
[Warning: Unity Log] BoxColliders does not support negative scale or size.
The effective box size has been forced positive and is likely to give unexpected collision geometry.
If you absolutely need to use negative scaling you can use the convex MeshCollider. Scene hierarchy path "Environment/HangarShip/Cube"
[Warning: Unity Log] BoxColliders does not support negative scale or size.
The effective box size has been forced positive and is likely to give unexpected collision geometry.
If you absolutely need to use negative scaling you can use the convex MeshCollider. Scene hierarchy path "Environment/HangarShip/AnimatedShipDoor/HangarDoorLeft (1)"
[Warning: Unity Log] BoxColliders does not support negative scale or size.
The effective box size has been forced positive and is likely to give unexpected collision geometry.
If you absolutely need to use negative scaling you can use the convex MeshCollider. Scene hierarchy path "Environment/HangarShip/ShipBottomColliders/Cube (1)"
[Warning: Unity Log] BoxColliders does not support negative scale or size.
The effective box size has been forced positive and is likely to give unexpected collision geometry.
If you absolutely need to use negative scaling you can use the convex MeshCollider. Scene hierarchy path "Environment/HangarShip/ControlDesk.001"
[Warning: Unity Log] BoxColliders does not support negative scale or size.
The effective box size has been forced positive and is likely to give unexpected collision geometry.
If you absolutely need to use negative scaling you can use the convex MeshCollider. Scene hierarchy path "Environment/HangarShip/ShipBottomColliders/Cube (3)"
[Warning: Unity Log] BoxColliders does not support negative scale or size.
The effective box size has been forced positive and is likely to give unexpected collision geometry.
If you absolutely need to use negative scaling you can use the convex MeshCollider. Scene hierarchy path "Environment/HangarShip/ShipBottomColliders/Cube (7)"
[Warning: Unity Log] BoxColliders does not support negative scale or size.
The effective box size has been forced positive and is likely to give unexpected collision geometry.
If you absolutely need to use negative scaling you can use the convex MeshCollider. Scene hierarchy path "Environment/HangarShip/StorageCloset/Cube.000/Cube"
[Warning: Unity Log] BoxColliders does not support negative scale or size.
The effective box size has been forced positive and is likely to give unexpected collision geometry.
If you absolutely need to use negative scaling you can use the convex MeshCollider. Scene hierarchy path "Environment/HangarShip/ShipBottomColliders/Cube (6)"
[Warning: Unity Log] BoxColliders does not support negative scale or size.
The effective box size has been forced positive and is likely to give unexpected collision geometry.
If you absolutely need to use negative scaling you can use the convex MeshCollider. Scene hierarchy path "Environment/HangarShip/ShipBottomColliders/Cube (8)"
[Warning: Unity Log] BoxColliders does not support negative scale or size.
The effective box size has been forced positive and is likely to give unexpected collision geometry.
If you absolutely need to use negative scaling you can use the convex MeshCollider. Scene hierarchy path "Environment/HangarShip/ShipBottomColliders/Cube (5)"
[Warning: Unity Log] BoxColliders does not support negative scale or size.
The effective box size has been forced positive and is likely to give unexpected collision geometry.
If you absolutely need to use negative scaling you can use the convex MeshCollider. Scene hierarchy path "Environment/HangarShip/ShipBottomColliders/Cube (4)"
[Warning: Unity Log] BoxColliders does not support negative scale or size.
The effective box size has been forced positive and is likely to give unexpected collision geometry.
If you absolutely need to use negative scaling you can use the convex MeshCollider. Scene hierarchy path "Environment/HangarShip/EnginePart(Clone)/ScanNode"
[Warning: Unity Log] BoxColliders does not support negative scale or size.
The effective box size has been forced positive and is likely to give unexpected collision geometry.
If you absolutely need to use negative scaling you can use the convex MeshCollider. Scene hierarchy path "Environment/HangarShip/EnginePart(Clone)"
[Warning: Unity Log] BoxColliders does not support negative scale or size.
The effective box size has been forced positive and is likely to give unexpected collision geometry.
If you absolutely need to use negative scaling you can use the convex MeshCollider. Scene hierarchy path "Environment/HangarShip/EnginePart(Clone)/ScanNode"
[Warning: Unity Log] BoxColliders does not support negative scale or size.
The effective box size has been forced positive and is likely to give unexpected collision geometry.
If you absolutely need to use negative scaling you can use the convex MeshCollider. Scene hierarchy path "Environment/HangarShip/EnginePart(Clone)"
[Info   : Unity Log] dropping item did not get raycast : Remote(Clone)
[Info   : Unity Log] dropping item did not get raycast : Remote(Clone)
[Info   : Unity Log] dropping item did not get raycast : TeaKettle(Clone)
[Info   : Unity Log] dropping item did not get raycast : Painting(Clone)
[Info   : Unity Log] dropping item did not get raycast : TeaKettle(Clone)
[Info   : Unity Log] dropping item did not get raycast : RubberDucky(Clone)
[Info   : Unity Log] dropping item did not get raycast : RubberDucky(Clone)
[Info   : Unity Log] dropping item did not get raycast : RubberDucky(Clone)
[Info   : Unity Log] Called teleport function on Player
[Info   : Unity Log] Taking control of player Player and enabling camera!
[Info   : Unity Log] Called teleport function on Player (1)
[Info   : Unity Log] Called teleport function on Player (2)
[Info   : Unity Log] Called teleport function on Player (3)
[Info   : Unity Log] Starting voice tracking for player: CheekiiBoom
[Info   : Unity Log] !!!! ENABLING CAMERA FOR PLAYER: Player
[Info   : Unity Log] !!!! connectedPlayersAmount: 0
[Info   : Unity Log] Has beta?: {hasBeta}
[Info   : Unity Log] Has beta save data: True
[Info   : Unity Log] Reference frame of the curve not set and XROrigin is not found, using global up as default.
[Info   : Unity Log] Reference frame of the curve not set and XROrigin is not found, using global up as default.
[Info   : Unity Log] Reference frame of the curve not set and XROrigin is not found, using global up as default.
[Info   : Unity Log] Reference frame of the curve not set and XROrigin is not found, using global up as default.
[Info   : Unity Log] Reference frame of the curve not set and XROrigin is not found, using global up as default.
[Warning: Unity Log] Parent of RectTransform is being set with parent property. Consider using the SetParent method instead, with the worldPositionStays argument set to false. This will retain local orientation and scale rather than world orientation and scale, which can prevent common UI scaling issues.
[Warning: Unity Log] [Dissonance:Recording] (12:58:37.055) CapturePipelineManager: Detected a frame skip, forcing capture pipeline reset (Delta Time:0.204354)