nike4613 / beatsaber-ipa-reloaded Goto Github PK
View Code? Open in Web Editor NEWA Unity mod injector built for Beat Saber.
Home Page: https://nike4613.github.io/BeatSaber-IPA-Reloaded/
License: Other
A Unity mod injector built for Beat Saber.
Home Page: https://nike4613.github.io/BeatSaber-IPA-Reloaded/
License: Other
We have had several users in the #support channel report that when they launch the game they briefly see a console window, then the game closes. Here is an example https://cdn.discordapp.com/attachments/442696229508612096/564336479833292810/bandicam_2019-04-06_23-26-34-710.jpg
Here is the output log of the user above
output_log.txt
Workaround
Currently the solution is to perform a clean reinstall of Beat Saber with the following steps
I got this error when trying to build this project. I have followed the instructions in the guide.
I also cannot find Hive.Versioning.Standalone
NuGet package anywhere on web.
Thanks in advance!
references missing BeatSaberCustomUI Assembly-CSharp Mono.Cecil newtonsoft json and probably more which this all leads to 290 errors during compiling
I once had mods working when Beat Saber was on version 0.12.2. Then it updated and they stopped working.
I've tried to reinstall the mods onto the new version, but no matter what I try IPA doesn't even seem to get recognised. The --verbose
argument does nothing when I add it to the game in Steam. The --launch
argument run against IPA and the game exe directly doesn't work as the game seems to crash immediately on load. I've installed .NET 4.7.2 via winetricks/protontricks. I don't know how IPA is meant to hook into the game on load, as it doesn't look like it changes any files (only adding them), and I'm at a loss as to why it doesn't work. I've even copied the files over from a separate Windows machine that is working, and it still won't work for me.
What's worse, even rolling back to 0.12.2 in Steam doesn't work. I can't even get old versions of the mods to install and be recognised, the same problem happens with them now too. I can't understand what has changed, when it worked so perfectly before when I first installed it a couple months ago. If I could even get that working I would just stick to the old version.
I know Beat Saber is a Windows game and this isn't made with the idea of running under Wine/Linux being supported, but seeing as it USED to work I had hope of being at least pointed in the right direction or given some advice on how to debug this.
I haven't had time to dig into this until recently, but an update a few weeks ago completely broke this in Wine whereas prior it worked perfectly. Anyway, I worked with a wine dev digging through logs and it turns out this was caused by the way the newer IPA hotloads winhttp.dll.
It can be fixed by adding a DLL override in winecfg for 'winhttp' to 'native,builtin'. I've made a .REG file that can just be run through regedit that does this automatically: https://github.com/Vash63/bsmodinstaller.py/blob/master/winhttp.reg
Also on that repo I'm hoping to get my mod installer working again (it relied heavily on modsaber) to make this a bit more automated.
tldr: Could you notate somewhere in the Readme or any FAQ that this winhttp override is necessary? It wasn't required with the old IPA and was an unexpected regression.
Whenever I launch IPA it says System.UnauthorizedAccessException: Access to the path 'common\Beat Saber\Beat Saber_Data\Managed\UnityEngine.CoreModule.dll' is denied.
Why are the tagged versions not corresponding with the versions beatmods or even missing?
It would be very convenient if there were some interface to allow for libraries to register a log interface from within a bare manifest file.
I have done 3 fresh installs only with BSIPA each time i load any window that has a scroll bar, scrolls to the top and won't let you scroll down.
This is merely a report for notification, just in case it is helpful.
git clone repo && cd repo
git checkout 4.0.0-beta
git submodule init && git submodule update
bsinstalldir.txt
directory with the appropriate path"$"Invalid PathMuseDash_Data/Managed/UnityEngine.CoreModule.dll?alias=UnityEngine.CoreModule.Net3.dll" System.ArgumentException: Invalid character in path (refs.txt:45 or refs.txt:46)
refs.txt
.System.IO.FileNotFoundException: 'C:\Program Files (x86)\Steam\steamapps\common\Beat Saber\Beat Saber_Data/Managed/MainAssembly.dll' File not found. (refs.txt:34)
"""Main.dll?virt
at the last Beat Saber option in refs.txt
Pretty sure it's a known issue, pinging just in case it needs to be taken care of.
Thank you for reading.
See title.
ERROR: Oops! This should not have happened.
System.UnauthorizedAccessException: Access to the path 'C:\Program Files (x86)\Steam\steamapps\common\Beat Saber\Beat Saber_Data\Managed\System.Runtime.Serialization.dll' is denied.
at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.File.InternalCopy(String sourceFileName, String destFileName, Boolean overwrite, Boolean checkHost)
at System.IO.FileInfo.CopyTo(String destFileName, Boolean overwrite)
at IPA.Patcher.BackupUnit.Restore()
at IPA.Patcher.BackupManager.Restore(PatchContext context)
at IPA.Program.Install(PatchContext context)
[Press any key to continue]
So after many tries I figured out the problem was one space on my path.
It works with projects\Beat_Saber\BeatSaber-IPA-Reloaded
It didn't work with projects\Beat Saber\BeatSaber-IPA-Reloaded
tested on 9cb44d8
Log makes it seem like I have closed the game quickly. But I assure you that isn't the issue. It seems to be hanging for a while at the point saying "[DEBUG @ 21:43:38 | IPA/Updater] To Download "
To clarify, I haven't done anything to the base game, but install BSIPA. No Custom Songs or anything. I"m using the latest ModAssistant 1.0.25 to install and my Steam install has no non-default config.
I'm unsure of what it is exactly trying to do here, but if the dev can assist me in understanding how this normally works, I can try to figure out what might be going on.
Any chance to run a debug version or enable debug logging?
If IPA fails to delete the IPA/pending
directory, the pending mods will always stay and the mods will always be downgraded to that pending version. This was originally discovered in Goobwabber/MultiplayerExtensions#114. You can find the log and other info there.
Error looks like this:
[ERROR @ 15:26:31 | IPA/Updater] Something went wrong performing an operation that should never fail!
[ERROR @ 15:26:31 | IPA/Updater] System.UnauthorizedAccessException: Access to the path "D:\Steam\steamapps\common\Beat Saber\IPA\Pending\CustomSabers" is denied.
[ERROR @ 15:26:31 | IPA/Updater] at System.IO.Directory.Delete (System.String path) [0x0006f] in <9577ac7a62ef43179789031239ba8798>:0
[ERROR @ 15:26:31 | IPA/Updater] at System.IO.Directory.RecursiveDelete (System.String path) [0x00051] in <9577ac7a62ef43179789031239ba8798>:0
[ERROR @ 15:26:31 | IPA/Updater] at System.IO.Directory.RecursiveDelete (System.String path) [0x00024] in <9577ac7a62ef43179789031239ba8798>:0
[ERROR @ 15:26:31 | IPA/Updater] at System.IO.Directory.Delete (System.String path, System.Boolean recursive) [0x00009] in <9577ac7a62ef43179789031239ba8798>:0
[ERROR @ 15:26:31 | IPA/Updater] at IPA.Injector.Updates.InstallPendingModUpdates () [0x0024c] in <4bdc24c1a08744338464a7a790d69395>:0
I took a look at the code but I'm not really sure how it could be fixed, since this specific case comes down to a permissions issue. It's probably best to just notify support and if someone says their "mods are downgrading" then just tell them to delete IPA/Pending
I'm in Beat Saber 1.7.0, which is newly installed and has been run once,
BSIPA 3.13.7 was installed using ModAssistant, but the Mod option cannot be loaded anyway.
When I opened Beat Saber\Plugins
, I couldn't find any mods.
After running the Beat Saber with the --verbose parameter, BSIPA outputs the following:
System.ArgumentException: Value does not fall within the expected range.
at IPA.Loader.LibLoader+d__13.MoveNext () [0x00061] in <561f7537f11b496bb2465f41d54f54b0>:0
at IPA.Loader.LibLoader.SetupAssemblyFilenames (System.Boolean force) [0x0009d] in <561f7537f11b496bb2465f41d54f54b0>:0
at IPA.Loader.LibLoader.Configure () [0x0002c] in <561f7537f11b496bb2465f41d54f54b0>:0
at IPA.Injector.Injector.SetupLibraryLoading () [0x0000e] in :0
at IPA.Injector.Injector.Main (System.String[] args) [0x00017] in :0
Setting breakpad minidump AppID = 620980
Steam_SetMinidumpSteamID: Caching Steam ID: 76561198430065093 [API loaded no]
This is the game's log folder:
https://wgzeyu.gtxcn.com/img/Logs.zip
See this CustomJSONData example.
its very common for applications to be able to show their isntalled version using a commandline flag
i suggest IPA.exe -v
and/or IPA.exe --version
So over in the linux world we're having some issues with Wine, making it a pain to install .net 4.6.x.
The only reason we need that is to run ipa.exe for the initial patching process, once running the game it's all under proton.
So before I go diving into the code does anyone have ideas on whether ipa could be built with .net core, or otherwise provide a wine-independent executable for Linux use?
Strictly it would only be needed for the initial setup process, when loading/hooked through winhttp.dll that should all be under steam's proton install, no issues there once things are installed.
And if no ideas thanks anyway, keep up the awesome work here <3
I wanted to patch beatsaber 1.3 but the ipa.exe installer refuse ton Install due to an System.UnauthorizeAccessExecption while backuping the System.Runtime.Serialization. It can't seems to works even after a reboot and throws out the same error even in while lainchin in administrator. i've try to patch in a cm to test but non luck. So it isn't a permission issue. If you need the full log
Hello,
when i start the game after mod installed (IPA), i have en issue. The game crashes instantly. Looking at the logs, I have the following message :
[DEBUG @ 20:47:25 | IPA/LibraryLoader] Found file Newtonsoft.Json.dll as C:\Program Files (x86)\Steam\steamapps\common\Beat Saber\Libs\Newtonsoft.Json.dll
[ERROR @ 20:47:25 | IPA] Error installing harmony patches to intercept Console color properties:
[ERROR @ 20:47:25 | IPA] System.NullReferenceException: Object reference not set to an instance of an object
[ERROR @ 20:47:25 | IPA] at System.Guid.NewGuid () [0x00029] in <9577ac7a62ef43179789031239ba8798>:0
[ERROR @ 20:47:25 | IPA] at Mono.Cecil.ModuleDefinition.CreateModule (System.String name, Mono.Cecil.ModuleParameters parameters) [0x0005b] in <28a34da201e449be81fe5efb7481a26c>:0
[ERROR @ 20:47:25 | IPA] at HarmonyLib.HarmonySharedState.CreateModule () [0x00018] in <28a34da201e449be81fe5efb7481a26c>:0
[ERROR @ 20:47:25 | IPA] at HarmonyLib.HarmonySharedState.GetState () [0x0001f] in <28a34da201e449be81fe5efb7481a26c>:0
[ERROR @ 20:47:25 | IPA] at HarmonyLib.HarmonySharedState.GetPatchInfo (System.Reflection.MethodBase method) [0x00000] in <28a34da201e449be81fe5efb7481a26c>:0
[ERROR @ 20:47:25 | IPA] at HarmonyLib.PatchProcessor.Patch () [0x0006d] in <28a34da201e449be81fe5efb7481a26c>:0
[ERROR @ 20:47:25 | IPA] at HarmonyLib.Harmony.Patch (System.Reflection.MethodBase original, HarmonyLib.HarmonyMethod prefix, HarmonyLib.HarmonyMethod postfix, HarmonyLib.HarmonyMethod transpiler, HarmonyLib.HarmonyMethod finalizer) [0x00028] in <28a34da201e449be81fe5efb7481a26c>:0
[ERROR @ 20:47:25 | IPA] at IPA.Logging.StdoutInterceptor+ConsoleHarmonyPatches.Patch (HarmonyLib.Harmony harmony) [0x0005d] in <8e98fd56b0d143f6ba8e9ca7b94817e7>:0
[INFO @ 20:47:25 | _] System.Security.Cryptography.CryptographicException: Couldn't access random source.
[INFO @ 20:47:25 | _] at System.Security.Cryptography.RNGCryptoServiceProvider.Check () [0x0001c] in <9577ac7a62ef43179789031239ba8798>:0
[INFO @ 20:47:25 | _] at System.Security.Cryptography.RNGCryptoServiceProvider..ctor () [0x00012] in <9577ac7a62ef43179789031239ba8798>:0
[INFO @ 20:47:25 | _] at System.Guid.FastNewGuidArray () [0x00030] in <9577ac7a62ef43179789031239ba8798>:0
[INFO @ 20:47:25 | _] at System.Reflection.Emit.ModuleBuilder..ctor (System.Reflection.Emit.AssemblyBuilder assb, System.String name, System.String fullyqname, System.Boolean emitSymbolInfo, System.Boolean transient) [0x00035] in <9577ac7a62ef43179789031239ba8798>:0
[INFO @ 20:47:25 | _] at System.Reflection.Emit.AssemblyBuilder.DefineDynamicModule (System.String name, System.String fileName, System.Boolean emitSymbolInfo, System.Boolean transient) [0x0005b] in <9577ac7a62ef43179789031239ba8798>:0
[INFO @ 20:47:25 | _] at System.Reflection.Emit.AssemblyBuilder.DefineDynamicModule (System.String name, System.String fileName) [0x00000] in <9577ac7a62ef43179789031239ba8798>:0
[INFO @ 20:47:25 | _] at IPA.Config.Stores.GeneratedStoreImpl.get_Module () [0x0003a] in <8e98fd56b0d143f6ba8e9ca7b94817e7>:0
[INFO @ 20:47:25 | _] at IPA.Config.Stores.GeneratedStoreImpl.CreateAndInitializeConvertersFor (System.Type type, System.Collections.Generic.IEnumerable`1[T] structure) [0x00012] in <8e98fd5
Hi all, got some problems while running a fresh install.
With fresh install I mean I downloaded the game from steam, ran it once, then proceeded to follow the steps shown in the documentation.
Version: BSIPA 4.1.6
Error log: _latest.log
Did some digging around, found out the exception is occurring here.
Commit 078ff43 seems to address some related issue here, but I have no idea how to fix that.
Any help would be appreciated.
With BS IPA version 3.13.x which gets installed via Mod Assisstant for Beat Saber version 1.3.0 the mods aren't loaded on Linux with wine/proton anymore.
It seems to get loaded, but stops with this message in the log file:
[INFO @ 22:16:01 | _] System.EntryPointNotFoundException: SetPeekMessageHook
[INFO @ 22:16:01 | _] at (wrapper managed-to-native) IPA.Utilities.CriticalSection+WinHttp.SetPeekMessageHook(IPA.Utilities.CriticalSection/WinHttp/PeekMessageHook)
[INFO @ 22:16:01 | _] at IPA.Utilities.CriticalSection.ResetExitHandlers () [0x00018] in <5d740ba0e5eb41aba55dc7889c3ff942>:0
[INFO @ 22:16:01 | _] at IPA.Utilities.CriticalSection.Configure () [0x0000f] in <5d740ba0e5eb41aba55dc7889c3ff942>:0
[INFO @ 22:16:01 | _] at IPA.Injector.Injector.Main (System.String[] args) [0x00067] in <48d88cb1b3d24e2cac71318bd6c46df6>:0
It was working perfectly with the override winhttp=n,b
before this version.
when i run IPA(even as administrator) it gives this:
Restoring old version...
Restoring Beat Saber_Data\Managed\System.Runtime.Serialization.dll
C:\Users\Денис\Downloads\Beat Saber\IPA\Backups\Beat Saber\2019-11-30_10-18-14\Beat Saber_Data\Managed\System.Runtime.Serialization.dll => C:\Users\Денис\Downloads\Beat Saber\Beat Saber_Data\Managed\System.Runtime.Serialization.dll
ERROR: Oops! This should not have happened.
System.UnauthorizedAccessException: Отказано в доступе по пути "C:\Users\Денис\Downloads\Beat Saber\Beat Saber_Data\Managed\System.Runtime.Serialization.dll".
в System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
в System.IO.File.InternalCopy(String sourceFileName, String destFileName, Boolean overwrite, Boolean checkHost)
в System.IO.FileInfo.CopyTo(String destFileName, Boolean overwrite)
в IPA.Patcher.BackupUnit.Restore()
в IPA.Patcher.BackupManager.Restore(PatchContext context)
в IPA.Program.Install(PatchContext context)
[Press any key to continue]
it's not problem with runned game or premissions
While using Mod Assistant to install mods, always failed to update BSIPA.
I can update BSIPA via Mod Assistant each time but find it still 3.13.2 version the next time I run Mod Assistant.
Mods don't effect in games.
The other mods are successfully updated.
Game version 1.9.0
Mod assistant version 1.1.502
Hello,
I've been trying to use BSIPA on Hearthstone (another Unity game), and after running IPA.exe and launching the game I have this issue:
[DEBUG @ 15:52:18 | IPA/LibraryLoader] Resolving library System.Numerics, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
[DEBUG @ 15:52:18 | IPA/LibraryLoader] Looking for file System.Numerics.dll
[DEBUG @ 15:52:18 | IPA/LibraryLoader] Found file System.Numerics.dll as D:\Games\Hearthstone\Libs\System.Numerics.dll
[DEBUG @ 15:52:18 | IPA/LibraryLoader] Resolving library System.Numerics, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
[DEBUG @ 15:52:18 | IPA/LibraryLoader] Looking for file System.Numerics.dll
[DEBUG @ 15:52:18 | IPA/LibraryLoader] Found file System.Numerics.dll as D:\Games\Hearthstone\Libs\System.Numerics.dll
[ERROR @ 15:52:18 | IPA/Config] Error serializing value for D:\Games\Hearthstone\UserData\Beat Saber IPA.json
[ERROR @ 15:52:18 | IPA/Config] System.TypeInitializationException: The type initializer for 'Newtonsoft.Json.JsonWriter' threw an exception. ---> System.TypeInitializationException: The type initializer for 'Newtonsoft.Json.Utilities.ConvertUtils' threw an exception. ---> System.IO.FileNotFoundException: Could not load file or assembly 'System.Numerics, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' or one of its dependencies.
[ERROR @ 15:52:18 | IPA/Config] --- End of inner exception stack trace ---
[ERROR @ 15:52:18 | IPA/Config] at Newtonsoft.Json.Utilities.EnumUtils.ToUInt64 (System.Object value) [0x00006] in <836484b0267d488c8d30f28b57efebd9>:0
[ERROR @ 15:52:18 | IPA/Config] at Newtonsoft.Json.Utilities.EnumUtils.InitializeValuesAndNames (Newtonsoft.Json.Utilities.StructMultiKey`2[T1,T2] key) [0x00045] in <836484b0267d488c8d30f28b57efebd9>:0
[ERROR @ 15:52:18 | IPA/Config] at (wrapper delegate-invoke) System.Func`2[Newtonsoft.Json.Utilities.StructMultiKey`2[System.Type,Newtonsoft.Json.Serialization.NamingStrategy],Newtonsoft.Json.Utilities.EnumInfo].invoke_TResult_T(Newtonsoft.Json.Utilities.StructMultiKey`2<System.Type, Newtonsoft.Json.Serialization.NamingStrategy>)
[ERROR @ 15:52:18 | IPA/Config] at System.Collections.Concurrent.ConcurrentDictionary`2[TKey,TValue].GetOrAdd (TKey key, System.Func`2[T,TResult] valueFactory) [0x00034] in <7ba07f088431485bb722f3b3373e87ee>:0
[ERROR @ 15:52:18 | IPA/Config] at Newtonsoft.Json.Utilities.ThreadSafeStore`2[TKey,TValue].Get (TKey key) [0x00000] in <836484b0267d488c8d30f28b57efebd9>:0
[ERROR @ 15:52:18 | IPA/Config] at Newtonsoft.Json.Utilities.EnumUtils.GetEnumValuesAndNames (System.Type enumType) [0x0000c] in <836484b0267d488c8d30f28b57efebd9>:0
[ERROR @ 15:52:18 | IPA/Config] at Newtonsoft.Json.JsonWriter.BuildStateArray () [0x0001b] in <836484b0267d488c8d30f28b57efebd9>:0
[ERROR @ 15:52:18 | IPA/Config] at Newtonsoft.Json.JsonWriter..cctor () [0x000b3] in <836484b0267d488c8d30f28b57efebd9>:0
[ERROR @ 15:52:18 | IPA/Config] --- End of inner exception stack trace ---
[ERROR @ 15:52:18 | IPA/Config] at Newtonsoft.Json.JsonTextWriter..ctor (System.IO.TextWriter textWriter) [0x00000] in <836484b0267d488c8d30f28b57efebd9>:0
[ERROR @ 15:52:18 | IPA/Config] at IPA.Config.Providers.JsonConfigProvider.Store (IPA.Config.Data.Value value, System.IO.FileInfo file) [0x0002f] in <a83e389c035f440ca90c6c2639d8fa6c>:0
[DEBUG @ 15:52:18 | IPA/Config] Generated impl WriteTo IPA.Loader.DisabledConfig<Generated>
where Newtonsoft can't find the System.Numerics DLL.
I have added it to the Libs folder, which is why it is found by IPA/LibraryLoader.
Do you have any idea what should be done to solve this?
Thanks!
Seb
In the current implementation of the BSIPA logger, stdout messages have a different color than their [INFO] prefix. This results in a nice contrast between the message and the prefix, making it extremely easy to spot the actual message very quickly.
Here's an example to show what I'm describing:
Changing the white console color results in the entire [INFO] prefix also changing to that color, so what I'm suggesting is a change in the BSIPA logger system to allow for log messages to have a different color prefix/message.
In the in-development beta of BSIPA 4, all BSIPA plugins have been made to be, by default, enableable at runtime, however not disableable at runtime. This is a strange inconsistency and has several ways of being fixed:
My preference is, in order, 1, then 5, then 2.
For number 1: I believe that having the default allow runtime enabling and disabling would encourage mod authors to write more robust code, as it would need to be capable of withstanding multiple disable/enable cycles. It would also give users that wish to exercise the control that this system provides the ability to with more mods out-of-the-box.
Number 2 should be fairly self-explanatory, as its basically what already exists in BSIPA 3.
Number 5 is the most interesting one, and possibly the most promising.
The way I currently envision such a change going would be such that the resulting plugin classes would look something like this:
For a non-enableable non-disableable plugin:
[BSIPAPlugin(PluginOptions.RuntimeStateStatic)]
public class Plugin
{
private PluginConfig config;
[Init]
public void Init(Config cfg)
{
config = cfg.Generated<PluginConfig>();
}
[OnEnable]
public void OnEnable()
{
// do your stuff for the enable event
}
[OnDisable]
public void OnExit()
{
// do your stuff for game exit
}
}
For an enableable and disableable plugin:
[BSIPAPlugin(PluginOptions.RuntimeStateChanging)]
public class Plugin
{
private PluginConfig config;
[Init]
public void Init(Config cfg)
{
config = cfg.Generated<PluginConfig>();
}
[OnEnable]
public void OnEnable()
{
// do your stuff for the enable event
}
[OnDisable]
public void OnDisable()
{
// do your stuff for the disable event
}
}
None of this is final, and any suggestions for it are welcome.
BUT when i delete winhttp.dll game starts... but without mods
Restoring old version...
Restoring Beat Saber_Data\Managed\I18N.dll
x C:\Users\Денис\Downloads\Beat Saber\Beat Saber_Data\Managed\I18N.dll
Restoring Beat Saber_Data\Managed\I18N.West.dll
x C:\Users\Денис\Downloads\Beat Saber\Beat Saber_Data\Managed\I18N.West.dll
Restoring Beat Saber_Data\Managed\IPA.Injector.dll
x C:\Users\Денис\Downloads\Beat Saber\Beat Saber_Data\Managed\IPA.Injector.dll
Restoring Beat Saber_Data\Managed\IPA.Injector.pdb
x C:\Users\Денис\Downloads\Beat Saber\Beat Saber_Data\Managed\IPA.Injector.pdb
Restoring Beat Saber_Data\Managed\IPA.Loader.dll
x C:\Users\Денис\Downloads\Beat Saber\Beat Saber_Data\Managed\IPA.Loader.dll
Restoring Beat Saber_Data\Managed\IPA.Loader.pdb
x C:\Users\Денис\Downloads\Beat Saber\Beat Saber_Data\Managed\IPA.Loader.pdb
Restoring Beat Saber_Data\Managed\IPA.Loader.xml
x C:\Users\Денис\Downloads\Beat Saber\Beat Saber_Data\Managed\IPA.Loader.xml
Restoring Beat Saber_Data\Managed\Microsoft.CSharp.dll
x C:\Users\Денис\Downloads\Beat Saber\Beat Saber_Data\Managed\Microsoft.CSharp.dll
Restoring Beat Saber_Data\Managed\System.Runtime.Serialization.dll
C:\Users\Денис\Downloads\Beat Saber\IPA\Backups\Beat Saber\2019-12-13_6-52-01\Beat Saber_Data\Managed\System.Runtime.Serialization.dll => C:\Users\Денис\Downloads\Beat Saber\Beat Saber_Data\Managed\System.Runtime.Serialization.dll
Restoring Libs\0Harmony.1.2.0.1.dll
x C:\Users\Денис\Downloads\Beat Saber\Libs\0Harmony.1.2.0.1.dll
Restoring Libs\Ionic.Zip.1.9.1.8.dll
x C:\Users\Денис\Downloads\Beat Saber\Libs\Ionic.Zip.1.9.1.8.dll
Restoring Libs\Mono.Cecil.0.10.4.0.dll
x C:\Users\Денис\Downloads\Beat Saber\Libs\Mono.Cecil.0.10.4.0.dll
Restoring Libs\Mono.Cecil.Mdb.0.10.4.0.dll
x C:\Users\Денис\Downloads\Beat Saber\Libs\Mono.Cecil.Mdb.0.10.4.0.dll
Restoring Libs\Mono.Cecil.Pdb.0.10.4.0.dll
x C:\Users\Денис\Downloads\Beat Saber\Libs\Mono.Cecil.Pdb.0.10.4.0.dll
Restoring Libs\Mono.Cecil.Rocks.0.10.4.0.dll
x C:\Users\Денис\Downloads\Beat Saber\Libs\Mono.Cecil.Rocks.0.10.4.0.dll
Restoring Libs\Newtonsoft.Json.12.0.0.0.dll
x C:\Users\Денис\Downloads\Beat Saber\Libs\Newtonsoft.Json.12.0.0.0.dll
Restoring Libs\SemVer.1.2.0.0.dll
x C:\Users\Денис\Downloads\Beat Saber\Libs\SemVer.1.2.0.0.dll
Restoring winhttp.dll
x C:\Users\Денис\Downloads\Beat Saber\winhttp.dll
Copying C:\Users\Денис\Downloads\Beat Saber\winhttp.dll
[Press any key to continue] <
Both Trace and Notice shares the same LogLevel. This might not have been the intention.
Try to add some format to allow plugins to modify types, more than with Harmony, by defining changed methods and fields with some metadata for location searching
It would be nice for the mods that need some time to clean up before they're disabled to have a way of signalling when they're finished. Mostly to make the Enable button in ModList inactive until the mod is finished.
WTH i get this from beatsaver and i click it and everything is gone off of my computer and will not open it saying major files are corrupted. Frick This!!!
Add additional launch arguments for Beat Saber that BSIPA can read to do various things.
Here are some I would find useful:
Flag | Type | Description | Example |
---|---|---|---|
--disable-autoupdate |
boolean |
Does not check for mod updates, only loads them | n/a |
--log-rotate |
string |
Enables log rotation, deletes logs older than argument value | --log-rotate 7d |
--combine-logs |
boolean |
Disables per-mod logging | n/a |
--no-yeet |
boolean |
Disables mod yeeter | n/a |
Beat Saber version 1.1.0p1 breaks SemVer.Version
used in IPA.Loader.PluginManager.Load
Stacktrace:
[CRITICAL @ 17:40:13 | UnityEngine] ArgumentException: Invalid version string: 1.1.0p1
[CRITICAL @ 17:40:13 | UnityEngine] SemVer.Version..ctor (System.String input, System.Boolean loose) (at <dc65dd8f03a84bbea3e4d134615b1a4d>:0)
[CRITICAL @ 17:40:13 | UnityEngine] IPA.Loader.PluginManager.Load () (at <34a700a0d3854de2963fe8845db23cee>:0)
[CRITICAL @ 17:40:13 | UnityEngine] IPA.Loader.PluginComponent.Awake () (at <34a700a0d3854de2963fe8845db23cee>:0)
[CRITICAL @ 17:40:13 | UnityEngine] UnityEngine.GameObject:AddComponent()
[CRITICAL @ 17:40:13 | UnityEngine] IPA.Loader.PluginComponent:Create()
[CRITICAL @ 17:40:13 | UnityEngine] IPA.Loader.PluginComponent:OnDestroy()
As a fix, one can use new SemVer.Version(lastVerS.Split('p').First())
instead of new SemVer.Version(lastVerS)
, and maybe wrap this in a try/catch which defaults to the last known version if this fails too - for futureproofing.
Hi, sadly I didn't dodge the new Beat Saber update well enough.
So after updating I have no vibration - only a tiny bit when clicking with the trigger.
My testing led me to believe, that its BSIPA.
My Setup:
HTC Vive + Valve Index Controllers
Windows 10 x64 1903 (German)
When I do a clean install without any mods, my vibration works.
Then I only install BSIPA through mod assistant - no other mods at all.
I start the game and vibration is gone.
anyone help me? when run bs out log is :
Doorstop started!
DLL Path: C:\Program Files (x86)\Steam\steamapps\common\Beat Saber\WINHTTP.dll
Doorstop DLL Name: WINHTTP
Looking for original DLL from C:\Program Files (x86)\Steam\steamapps\common\Beat Saber\WINHTTP_alt.dll
Looking for original DLL from C:\WINDOWS\system32\WINHTTP.dll
Doorstop enabled!
Installing IAT hook
Hook installed!
Attempting to install GetMessageA and GetMessageW hooks
Could not hook GetMessageW! (not an error)
Attempting to install PeekMessageA and PeekMessageW hooks
Got mono.dll at 00007FFBD9A30000
Loading assembly: Beat Saber_Data/Managed/IPA.Injector.dll
Invoking method!
An error occurred invoking the injector: System.IO.FileNotFoundException: Could not load file or assembly '0Harmony, Version=1.2.0.1, Culture=neutral, PublicKeyToken=null' or one of its dependencies.
File name: '0Harmony, Version=1.2.0.1, Culture=neutral, PublicKeyToken=null'
Split it so that OnUpdate
/OnFixedUpdate
and the level events are separate interfaces, that don't need to be implemented.
BSIPA is the basic tool for developing mod, why include BeatsaberCustomUI? In addition, where is musedasha_data in resfs.txt? According to the document git clone, I can't build it. Who can help me?
(This is a reopening of #70, addressing the original comment)
When launching the game through its executable (Beat Saber.exe) or through a shortcut (e.g. in an Oculus library) with BSIPA installed, the game crashes with the following "Sharing violation on path" error. The game launches through these shortcuts correctly without BSIPA. The error occurs regardless of number of launch attempts, and can be recreated as follows:
This procedure has been tested multiple times, with a consistent crash message result.
The ModPrefs.HasKey() function always returns true, even if the checked key is not present.
The HasKey() function is querying for a key and checks for NULL as a return value:
However, IniReadValue never returns NULL - for non-existing keys, it'll return an empty string (third parameter):
The new IPA has been causing me and "many" others some problems upon launching the game. Some say the problem was FaceIT Anti cheat and upon deleting it, it worked for them. But I still have the same issue(s) even though I uninstalled FaceIT.
What I tried to fix the issue:
-Uninstall FaceIT
-Reinstalling the game
-Manually downloading ALL of the mods, including IPA (it worked like this, but when I tried launching the game second time, I got the same error(s) again
-Verifying game files
This is the first part I get:
This is the second part:
For mods that are defined as only being a library, be able to load the raw manifest from the Plugins directory for dependency resolution. The file would be named <mod name>.json
.
As noted in the title, a mod with an invalid id/name will be updated properly (I assume based on hash or something), however any new dependencies associated with it will not be downloaded.
Example:
The old YUR.fit mod had an invalid manifest. The id/name said "YUR" when the name on BeatMods is "YUR Fit Calorie Tracker". The BSIPA mod list properly identifies that the mod has an update, and updates it accordingly, however it does not download the new dependencies (BeatSaberMarkupLanguage and SkiaSharp).
I've been told this might be happening due to the invalid name/id in the manifest, but if that is the case then BSIPA should not be downloading an update for this mod in the first place, or it should correctly identify the new dependencies and download them accordingly. Therefore, I assume this is a bug in the updater logic.
Let me know if you need me to provide any more details.
When I run bsipa 3.12.14 in a fresh install of beat saber, and then run beat saber with the --verbose parameter, this stacktrace is generated every time I launch the game:
System.ComponentModel.Win32Exception (0x80004005): The parameter is incorrect.
at IPA.Logging.WinConsole.InitializeOutStream () [0x00061] in <42e6b957870f49a
8b15c6a9cec75005b>:0
at IPA.Logging.WinConsole.InitializeStreams () [0x00000] in <42e6b957870f49a8b
15c6a9cec75005b>:0
at IPA.Logging.WinConsole.Initialize (System.Boolean alwaysCreateNewConsole) [
0x00023] in <42e6b957870f49a8b15c6a9cec75005b>:0
at IPA.Injector.Injector.Main (System.String[] args) [0x00011] in <442e552a97d
843ada80a94daad31e07b>:0
When I then put dlls in plugins/, they don't get loaded. The game itself still runs properly, just without mods.
When I stop using --verbose, everything works as expected and mods get loaded.
If I then turn --verbose back on, the exception returns and the game is just a black screen. verbose is nice for mod development so I would like to be able to use it
--verbose worked fine for me back on beatsaber 0.12.2 (before bsipa had forked ipa?)
(windows 8.1, steam)
I keep getting this error after installing BSIPA and it's only with BSIPA, the instillation goes fine and then when I run it it makes that error.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.