ManlyMarco / RuntimeUnityEditor

In-game inspector and debugging tools for applications made with Unity3D game engine
GNU General Public License v3.0
793 stars 98 forks source link

Menu Not Showing - Life is Strange: Before the Storm (Unity 5.5.3f1) #2

Closed ghost closed 5 years ago

ghost commented 5 years ago

Hello there, how do I make this plugin work with the game in the title, I think Bepin loads it but when pressing f12 no menu shows, what can I do to make it show? I'm using steam version and I've changed the screenshot keybind still no luck.

"[Message: BepInEx] Chainloader ready [Message: BepInEx] Chainloader started [Info : BepInEx] 1 / 1 plugins to load [Info : BepInEx] Loading [Runtime Unity Editor 1.5] [Message: BepInEx] Chainloader startup complete"

ManlyMarco commented 5 years ago

Can you send the output_log.txt file after trying to open the editor with F12? The name and location of this log file depends on what unity version the game uses, check https://docs.unity3d.com/Manual/LogFiles.html for the locations. It might be inside the game directory in the _Data folder as well.

ghost commented 5 years ago

I can't find it, like at all. There's no trace of it anywhere. Actually, I need to force the debug mode of the exe so that the output log gets created.

ManlyMarco commented 5 years ago

Can you check if this build works? bin.zip

ghost commented 5 years ago

Still doesn't work.

ghost commented 5 years ago

output_log.txt The latest output_log with the build u just gave.

ManlyMarco commented 5 years ago

Are you sure you replaced both of the files? I recompiled the project, here's a second try bin.zip

ghost commented 5 years ago

Yes, I am sure because I deleted the old ones and placed in the new ones from bin.zip, also the second try it must be the same thing again.

Here are both output logs with the plugin and clean BepInEx only, I made sure I use the one you just sent. output_log_BepInExOnly.txt output_log_BepInEx_With_The_Plugin.txt

ManlyMarco commented 5 years ago

To quote a bepinex dev I'm talking with about this, "this is some weird stuff." Basically, it's breaking in a way that shouldn't ever happen. There might be some obfuscation in that game that is causing it. The dev said he'll look into it.

ghost commented 5 years ago

It's just weird, I admit I tried "Pose Mod" made by KGFTBZ with this game and it gives the same error, maybe it is indeed from the game. I should try a pirated version of the game to be exact first-day release, see how that works.

EDIT: Forgot to mention, it was using the Hooking method too with the mono cecill or how's called.

ghost commented 5 years ago

Minor update: turns out BTS was developed on a hardcore customized unity engine version but, LINUX and MAC's ports aren't obfuscated.

wh0am15533 commented 5 years ago

Tried on 4 different mono backed games DreamWorks Dragons Dawn of New Riders, Project Highrise, Railroad Corporation, and Train Valley 2. all failed to load menu. they cant get past chainloading in BepInEx. nothing in game logs that it was even loaded. tried all versions of BepInEx and this, the only one that got close to loading was Dragons Dawn. Doorstop and BepInEx seem to be working fine. Also tried setting a different hotkey for menu, that didnt work either.

wh0am15533 commented 5 years ago

After reversing this library and the hidden ILpacked dependencies, I found that things are failing in UnityfeaturesHelper getting the types. Everything comes back as Cannot load assembly/type. Believe it has to do with you packing those dependies, Unity doesn't like that.

ManlyMarco commented 5 years ago

Are you using nightly builds of bepinex or the RC? RC1 is known to have some issues that were fixed in nightlies (including failing to load some types). Here's a build that should work https://discordapp.com/channels/416224907924340738/416229308106014720/603200027812298764

The dev working on this tried using runtime editor in Life is Strange and it worked perfectly.

ghost commented 5 years ago

https://discordapp.com/channels/416224907924340738/416229308106014720/603200027812298764

You linked this very wrongly, please give the invite to the server or proper download link. For me it redirects me to main discord default page, for you it might give u the correct channel, but not for me,

ManlyMarco commented 5 years ago

Sorry, wrong link. Try this one https://cdn.discordapp.com/attachments/416229308106014720/603200027812298762/BepInEx5.7z

ghost commented 5 years ago

Where does the plugin go now, I tried both creating plugins folder and just dropping them at the core folder, no errors this time, but pressing f12 still shows nothing.

ManlyMarco commented 5 years ago

The plugin goes into BepInEx\plugins like before.

ghost commented 5 years ago

Then it's either the debug menu mode causing it not to load again, or I am using the wrong plugin version.

ManlyMarco commented 5 years ago

Check the console/log if it's loading.

ghost commented 5 years ago

image EDIT: Gonna do a clean install, see how it goes with a fresh copy.

ManlyMarco commented 5 years ago

It's not seeing runtime editor. Make sure you've got the bepin5 version and placed it in the plugins folder.

ghost commented 5 years ago

I did verify it, I got the version you just gave me and placed the runtime editor bepin5 in the plugins folder.

ManlyMarco commented 5 years ago

Try a different Preloader.Entrypoint, it looks like it doesn't even get to loading plugins. It depends on the game what the entry point should be. https://github.com/BepInEx/BepInEx/wiki/Porting-BepInEx#3-different-games-may-require-different-entrypoints

ghost commented 5 years ago

It had no EntryPoint, I added entrypoint-assembly=UnityEngine.dll, but no difference, even with a fresh build, it doesn't load it either. Changed the "Assembly = UnityEngine.CoreModule.dll" to "Assembly = UnityEngine.dll" but still no luck. (Changed it because there's no core module)

ManlyMarco commented 5 years ago

In that case it might be best to wait a little for the BepInEx RC2 release that's coming soon.

ghost commented 5 years ago

I can wait, no worries.

ManlyMarco commented 5 years ago

Here is a known-working setup, someone was using this with Life is Strange: Before the Storm and it worked fine thonq.zip

ghost commented 5 years ago

image This does indeed appear. But pressing F12 still makes no menu appear, lol.

The output log gives now a funny message: image

Maybe it's my end too, but I don't see how this time anything's different if it loads. It's just that it doesn't open the menu and now the output says the game might've auto-remove it? As I said, BTS is developed on a very customized version of unity, they broke engine pointers on BTS and made sure to never need them.

ghost commented 5 years ago

I think I got it, that version only works for cracked version, when I open the exe, it tells me it's loading, but another exe gets open (steam version) and like that the "BepinEx Patched" exe, has been closed down. Hence why it still doesn't work.

EDIT: In short, I don't think BepinEx works on BTS (Steam Ver. Not Cracked) due to steam's stupid DRM.

wh0am15533 commented 5 years ago

I tried the new nightlies for BepInEx and the thonq.zip posted here earlier with Train Valley 2. The menu now shows. Thnx for the updates. Mind this version of TV2 is Stream cracked. Think it was due to the updates to BepInEx nightlies, since this was previously failing on ChainLoader.

Note: DON'T place any duplicate assemblies in MANAGED_DATA, like copies or backups. The preloader will pick them up and give warnings, but it also stops the menu from showing. I removed them and the 'warnings' stopped and the menu loaded. So these aren't 'warnings', their 'FATAL'.

wh0am15533 commented 5 years ago

Whats so different between msc.dll and msc_custom.dll? What version of Vectrosity.dll are you using. I am trying to build the solution and having problems with the dependencies. Also what build environment are you using? Can you provide a build/branch without ILRepack?

Reference Files: mcs.zip mcs_custom.zip Vectrosity.zip

ManlyMarco commented 5 years ago

mcs_custom has some classes removed that were causing type loads. It's no longer necessary with the latest bepinex builds and normal mcs can be used instead. The environment is vanilla Visual Studio 2017, just restore nuget packages and it should work. You can get UnityEngine.dll and friends from pretty much any game made in Unity (it's best to use an older version before the dlls were split into a million pieces). Not sure about Vectrosity, there is no version specified in the dll, I compiled against what was in one of the games since I don't have a license for it. If you don't want to use ILRepack then just remove the .targets file and copy all of the dlls manually.

ManlyMarco commented 5 years ago

@bc15kle Try this version. Run the .exe after copying into game directory to patch bepinex directly into one of the game assemblies. A backup will be save d to .bak in the managed folder so you can restore it if necessary. hecc.zip

ghost commented 5 years ago

EDIT: In short, I don't think BepinEx works on BTS (Steam Ver. Not Cracked) due to steam's stupid DRM.

Right after I said this, I installed cracked version and it did work with the older method, not the recent exe you just gave @ManlyMarco , don't think there's a way around steam's DRM, but thanks for all of the help.