Malcolm-Q / LC-LateGameUpgrades

Repo for the LateGameUpgrades Lethal Company Mod.
MIT License
13 stars 9 forks source link

Players load to black screen with UI and "press E" prompt #570

Open cm97878 opened 3 weeks ago

cm97878 commented 3 weeks ago

I'm a bit confused that nobody else is posting this issue, but everyone within my group is having it independent of me - whenever I or someone else joins a game with LGU installed, the screen looks like this: image

At first I assumed this was incompatibility with other mods, However, we've all disabled all of our other (non-essential) mods, verified integrity. We ran the preloader fix in r2modman, and I also confirmed that the FixPluginTypesSerialization error there happened regardless of whether LGU was the only mod installed, or we had all the others enabled EXCEPT LGU - didn't change that part. I scanned the log here but didn't really see anything that would indicate what was going on.

The log from the player seeing this screen is as follows:

[Message:   BepInEx] BepInEx 5.4.21.0 - Lethal Company (10/23/2024 8:37:46 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] Loaded 1 patcher method from [BepInEx.MonoMod.HookGenPatcher 1.2.1.0]
[Info   :   BepInEx] 3 patcher plugins loaded
[Info   :HookGenPatcher] Previous MMHOOK location found. Using that location to save instead.
[Info   :HookGenPatcher] Already ran for this version, reusing that file.
[Message:FixPluginTypesSerialization] Not using the config cache
[Info   :FixPluginTypesSerialization] Downloading : http://symbolserver.unity3d.com/UnityPlayer_Win64_player_mono_x64.pdb\8C09BC2213204B18A647FD90F53236701\UnityPlayer_Win64_player_mono_x64.pd_
This pdb file is needed for the plugin to work properly. This may take a while, relax, modding is coming.
[Error  :FixPluginTypesSerialization] Failed to initialize plugin types serialization fix: (System.Net.Http.HttpRequestException) An error occurred while sending the request. Some plugins may not work properly.
[Error  :FixPluginTypesSerialization] System.Net.Http.HttpRequestException: An error occurred while sending the request ---> System.Net.WebException: Invalid status code: 308 ---> System.Net.ProtocolViolationException: Invalid status code: 308
  at System.Net.HttpWebRequest.Redirect (System.Net.HttpStatusCode code, System.Net.WebResponse response) [0x000e2] in <d054a9182977441aa432503a474315ba>:0 
  at System.Net.HttpWebRequest.CheckFinalStatus (System.Net.HttpWebResponse response) [0x0016f] in <d054a9182977441aa432503a474315ba>:0 
  at System.Net.HttpWebRequest.GetResponseFromData (System.Net.WebResponseStream stream, System.Threading.CancellationToken cancellationToken) [0x0006f] in <d054a9182977441aa432503a474315ba>:0 
  at System.Net.HttpWebRequest.MyGetResponseAsync (System.Threading.CancellationToken cancellationToken) [0x00307] in <d054a9182977441aa432503a474315ba>:0 
   --- End of inner exception stack trace ---
  at System.Net.HttpWebRequest.RunWithTimeoutWorker[T] (System.Threading.Tasks.Task`1[TResult] workerTask, System.Int32 timeout, System.Action abort, System.Func`1[TResult] aborted, System.Threading.CancellationTokenSource cts) [0x000f8] in <d054a9182977441aa432503a474315ba>:0 
  at System.Net.HttpWebRequest.EndGetResponse (System.IAsyncResult asyncResult) [0x00020] in <d054a9182977441aa432503a474315ba>:0 
  at System.Threading.Tasks.TaskFactory`1[TResult].FromAsyncCoreLogic (System.IAsyncResult iar, System.Func`2[T,TResult] endFunction, System.Action`1[T] endAction, System.Threading.Tasks.Task`1[TResult] promise, System.Boolean requiresSynchronization) [0x0000f] in <787acc3c9a4c471ba7d971300105af24>:0 
--- End of stack trace from previous location where exception was thrown ---

  at System.Net.Http.MonoWebRequestHandler.SendAsync (System.Net.Http.HttpRequestMessage request, System.Threading.CancellationToken cancellationToken) [0x004ae] in <b73d7057dcc84219a589cdac327773ec>:0 
   --- End of inner exception stack trace ---
  at System.Net.Http.MonoWebRequestHandler.SendAsync (System.Net.Http.HttpRequestMessage request, System.Threading.CancellationToken cancellationToken) [0x00509] in <b73d7057dcc84219a589cdac327773ec>:0 
  at System.Net.Http.HttpClient.SendAsyncWorker (System.Net.Http.HttpRequestMessage request, System.Net.Http.HttpCompletionOption completionOption, System.Threading.CancellationToken cancellationToken) [0x000e8] in <b73d7057dcc84219a589cdac327773ec>:0 
  at FixPluginTypesSerialization.Util.MiniPdbReader.DownloadFromWeb (System.String url) [0x00026] in <7e35fed9c5b3448891388d58e908306c>:0 
  at FixPluginTypesSerialization.Util.MiniPdbReader.DownloadUnityPdb (FixPluginTypesSerialization.Util.PeReader peReader) [0x0002f] in <7e35fed9c5b3448891388d58e908306c>:0 
  at FixPluginTypesSerialization.Util.MiniPdbReader..ctor (System.String targetFilePath) [0x00075] in <7e35fed9c5b3448891388d58e908306c>:0 
  at FixPluginTypesSerialization.FixPluginTypesSerializationPatcher.DetourUnityPlayer () [0x0001e] in <7e35fed9c5b3448891388d58e908306c>:0 
  at FixPluginTypesSerialization.FixPluginTypesSerializationPatcher.InitializeInternal () [0x00000] in <7e35fed9c5b3448891388d58e908306c>:0 
  at FixPluginTypesSerialization.FixPluginTypesSerializationPatcher.Initialize () [0x00005] in <7e35fed9c5b3448891388d58e908306c>:0 
[Info   :   BepInEx] Patching [UnityEngine.CoreModule] with [BepInEx.Chainloader]
[Message:   BepInEx] Preloader finished
[Message:   BepInEx] Chainloader ready
[Message:   BepInEx] Chainloader started
[Info   :   BepInEx] 5 plugins to load
[Info   :   BepInEx] Loading [LethalLib 0.16.1]
[Info   : LethalLib] LethalLib loaded!!
[Info   :   BepInEx] Loading [CSync 5.0.1]
[Info   :     CSync] CSync successfully applied patches.
[Info   :   BepInEx] Loading [Lethal Company Input Utils 0.7.7]
[Info   :Lethal Company Input Utils] Registered InputUtilsExtendedMouse Layout Override!
[Info   :Lethal Company Input Utils] InputUtils 0.7.7 has finished loading!
[Info   :   BepInEx] Loading [Interactive Terminal API 1.2.0]
[Info   :Interactive Terminal API] Game managers have been patched
[Info   :Interactive Terminal API] Interactive Terminal API 1.2.0 has been loaded successfully.
[Info   :   BepInEx] Loading [More Ship Upgrades 3.10.11]
[Info   :More Ship Upgrades] Registed sample for the enemy "centipede"...
[Info   :More Ship Upgrades] Registed sample for the enemy "bunker spider"...
[Info   :More Ship Upgrades] Registed sample for the enemy "hoarding bug"...
[Info   :More Ship Upgrades] Registed sample for the enemy "flowerman"...
[Info   :More Ship Upgrades] Registed sample for the enemy "mouthdog"...
[Info   :More Ship Upgrades] Registed sample for the enemy "baboon hawk"...
[Info   :More Ship Upgrades] Registed sample for the enemy "crawler"...
[Info   :More Ship Upgrades] Registed sample for the enemy "forestgiant"...
[Info   :More Ship Upgrades] Registed sample for the enemy "manticoil"...
[Info   :More Ship Upgrades] Registed sample for the enemy "tulip snake"...
[Info   :More Ship Upgrades] Registed sample for the enemy "bush wolf"...
[Info   :More Ship Upgrades] Registed sample for the enemy "puffer"...
[Info   :More Ship Upgrades] Registed sample for the enemy "maneater"...
[Info   :More Ship Upgrades] Items have been setup
[Info   :More Ship Upgrades] Commands have been setup
[Info   :More Ship Upgrades] Upgrades have been setup
[Info   :More Ship Upgrades] Enemies have been patched
[Info   :More Ship Upgrades] HUD has been patched
[Info   :More Ship Upgrades] Interactables have been patched
[Info   :More Ship Upgrades] Items have been patched
[Info   :More Ship Upgrades] Game managers have been patched
[Info   :More Ship Upgrades] Weathers have been patched
[Info   :More Ship Upgrades] More Ship Upgrades 3.10.11 has been loaded successfully.
[Message:   BepInEx] Chainloader startup complete
[Info   : LethalLib] Adding 0 unlockables to unlockables list
[Info   : LethalLib] Adding 2 items to terminal
[Info   : LethalLib] Found 13 prefabs to fix

This is happening to all of us, in any combination, whoever hosts and whoever joins and whatever order. Saw the other open issue, but backdating to 3.10.4. One issue I did notice the last time we played, some months ago - even on a full reinstall of LC and r2modman, when a friend and I would load into LGU, the upgrades we had on a previous save would still load in. As far as I could tell I'd deleted everything, but it seemed like there might've been some file it was still pulling from? Is there some outside location that files were saved to to keep track of upgrades and stuff in a prior version? I didn't see anything like that this time, just a thought I had of an odd issue last time.

cm97878 commented 3 weeks ago

Currently deleting R2Modman and fully reinstalling again, will update and/or close this if it fixes the issue, but it did not last time. Edit: I happened to find a LGU.json file alongside my saves. Wondering if that might be it, lol. Edit2: A full wipe and reinstall of every file associated with LC (and in r2modman) resulted in the same issue. It looks like this is caused by conflicts with other mods, but honest to god we just clicked disable all and then enabled LGU and its required dependencies.

WhiteSpike commented 3 weeks ago

FixPluginTypeSerialization seems to be having a problem downloading the required data to execute correctly according to the logs you posted.

cm97878 commented 3 weeks ago

Thought that might be the case, but that error occurred identically regardless of if LGU was enabled or not - it also seemed to stop after the entire wipe and reinstall of both LC, the saves/data folder, and r2modman + cache itself, but the issue persisted, even with solely LGU + dependencies installed.

WhiteSpike commented 3 weeks ago

I need the new (whole) logs if the relevant error is no longer appearing.

cm97878 commented 3 weeks ago

Aye, will do - didn't save that at the time, we'd eventually given up trying different things. Won't be able to send it until likely around 12h from now, but I'll post it as soon as I am able.

PureStream commented 3 weeks ago

Also found the same issue while enabling only the mod and its dependencies. With the following logs here.

hosting.txt joining.txt joining2.txt (after host disconnected)

WhiteSpike commented 3 weeks ago

Also found the same issue while enabling only the mod and its dependencies. With the following logs here. hosting.txt joining.txt joining2.txt (after host disconnected)

FixPluginTypeSerialization seems to be having a problem downloading the required data to execute correctly according to the logs you posted.

PureStream commented 3 weeks ago

Also found the same issue while enabling only the mod and its dependencies. With the following logs here. hosting.txt joining.txt joining2.txt (after host disconnected)

FixPluginTypeSerialization seems to be having a problem downloading the required data to execute correctly according to the logs you posted.

Other mods using FixPluginTypeSerialization as dependency doesn't cause this issue. The logs also includes the problem with downloading the required data too but it might be differrent case with late game upgrade mod? I don't know. hosting-with-other-mods.txt Example Mods:

IAmBatby-LethalLevelLoader
Alice-ScarletDevilMansion
skidz-PoolRooms
Boniato-Ganimedes
Badham_Mods-SCPFoundationDungeon
Alice-DungeonGenerationPlus
Piggy-LC_Office
Magic_Wesley-WesleysInteriors
Zehs-WesleysInteriorsAddon
DiFFoZ-CompanyCruiserFix
WhiteSpike commented 3 weeks ago

Other mods using FixPluginTypeSerialization as dependency doesn't cause this issue.

Right but CSync (which is a dependency of LGU) is not executing correct behaviour (shown from the errors it throws in the provided logs) probably due to FixPluginTypeSerialization not correctly downloading the required data. Others may not use the same functionalities as CSync uses thus not showing errors.

Just a side note of the HTTP error code, 308 supposedly means "Permanent Redirect" so it could be failing to use the new URL due to it being code rather than browser (as browsers automatically change to the new URL when provided this error code)

PureStream commented 2 weeks ago

Just for more information. The game is working correctly enabling only dependency modes while disabling the LGU mod itself. The only difference is probably CSync error logging? So it might have to do with LGU tried to use CSync that failed to download the required data? What could be the way to handle this issue though? hosting-with-dependency-mods.txt joining-with-dependency-mods.txt

PureStream commented 2 weeks ago

I have also tried mods using CSync as dependency and it seems that the issue occurs as well. Example mods:

LethalInternship
ShipInventory
WhiteSpike commented 2 weeks ago

So it might have to do with LGU tried to use CSync that failed to download the required data? What could be the way to handle this issue though?

CSync is used for LGU's Config Synchronization, yes. Not sure, it's the first time seeing people being unable to download something for a mod. Could be either being blocked from accessing the solicited URL or it doesn't exist, there are many things. One thing for sure is that it's a FixPluginTypeSerialization problem and not a LGU problem since it's just a dependency problem.

Edit: I have been told that using Gale mod manager makes the download issue appear and if using other mod manager like r2modman will make the issue go away. I don't know if that will solve this exact issue since this just what I heard and not what I tested.

PureStream commented 2 weeks ago

Edit: I have been told that using Gale mod manager makes the download issue appear and if using other mod manager like r2modman will make the issue go away. I don't know if that will solve this exact issue since this just what I heard and not what I tested.

Unfortunately, my friends and I used r2modman and still found this issue.

WhiteSpike commented 2 weeks ago

I have no idea then. A thing being last updated ten months ago suddenly not working sounds unlikely to be the fault of such errors.

PureStream commented 2 weeks ago

I somehow fix it. I have the old config when the mod still working. So I copy the old FixPluginTypesSerialization config to replace to current config (newly generated) and the problem is solved.

Current Config

[Cache]

## Unity version is Major.Minor.Patch format i.e. 2017.2.1. If specified, this version will be used instead of auto-detection from executable info. Specify only if the patcher doesn't work otherwise.
# Setting type: String
# Default value: 
UnityVersionOverride = 

## The GUID of the last downloaded UnityPlayer pdb file.
## If this GUID matches with the current one,
## the offsets for the functions below will be used
## instead of generating them at runtime.
# Setting type: String
# Default value: 000000000000000000000000000000000
LastDownloadedGUID = 000000000000000000000000000000000

## The in-memory offset of the MonoManager::AwakeFromLoad function.
# Setting type: String
# Default value: 00
MonoManagerAwakeFromLoadOffset = 00

## The in-memory offset of the MonoManager::IsAssemblyCreated function.
# Setting type: String
# Default value: 00
MonoManagerIsAssemblyCreatedOffset = 00

## The in-memory offset of the IsFileCreated function.
# Setting type: String
# Default value: 00
IsFileCreatedOffset = 00

## The in-memory offset of the ScriptingManagerDeconstructor function.
# Setting type: String
# Default value: 00
ScriptingManagerDeconstructorOffset = 00

## The in-memory offset of the ConvertSeparatorsToPlatform function.
# Setting type: String
# Default value: 00
ConvertSeparatorsToPlatformOffset = 00

## The in-memory offset of the free_alloc_internal function.
# Setting type: String
# Default value: 00
FreeAllocInternalOffset = 00

## The in-memory offset of the malloc_internal function.
# Setting type: String
# Default value: 00
MallocInternalOffset = 00

## The in-memory offset of the m_ScriptingAssemblies global field.
# Setting type: String
# Default value: 00
ScriptingAssembliesOffset = 00

Old Config (Working)

[Cache]

## Unity version is Major.Minor.Patch format i.e. 2017.2.1. If specified, this version will be used instead of auto-detection from executable info. Specify only if the patcher doesn't work otherwise.
# Setting type: String
# Default value: 
UnityVersionOverride = 

## The GUID of the last downloaded UnityPlayer pdb file.
## If this GUID matches with the current one,
## the offsets for the functions below will be used
## instead of generating them at runtime.
# Setting type: String
# Default value: 000000000000000000000000000000000
LastDownloadedGUID = 8C09BC2213204B18A647FD90F53236701

## The in-memory offset of the MonoManager::AwakeFromLoad function.
# Setting type: String
# Default value: 00
MonoManagerAwakeFromLoadOffset = 76C0C0

## The in-memory offset of the MonoManager::IsAssemblyCreated function.
# Setting type: String
# Default value: 00
MonoManagerIsAssemblyCreatedOffset = 76BBF0

## The in-memory offset of the IsFileCreated function.
# Setting type: String
# Default value: 00
IsFileCreatedOffset = 00

## The in-memory offset of the ScriptingManagerDeconstructor function.
# Setting type: String
# Default value: 00
ScriptingManagerDeconstructorOffset = 781360

## The in-memory offset of the ConvertSeparatorsToPlatform function.
# Setting type: String
# Default value: 00
ConvertSeparatorsToPlatformOffset = 683330

## The in-memory offset of the free_alloc_internal function.
# Setting type: String
# Default value: 00
FreeAllocInternalOffset = 648220

## The in-memory offset of the malloc_internal function.
# Setting type: String
# Default value: 00
MallocInternalOffset = 3556D0

## The in-memory offset of the m_ScriptingAssemblies global field.
# Setting type: String
# Default value: 00
ScriptingAssembliesOffset = 1BFBA40