beatleader / beatleader-mod Goto Github PK
View Code? Open in Web Editor NEWBeatLeader mod for PC Beat Saber
License: MIT License
BeatLeader mod for PC Beat Saber
License: MIT License
The BeatLeader Replay camera settings dont save, which means after every game restart they reset.
Beat saber: 1.25.1
BeatLeader: v0.5.0
with above setup I replaced the beat saber with debug build.
Plain leaderboard
[DEBUG @ 21:02:41 | Harmony] ### Exception from user "com.github.rithik-b.LeaderboardCore", Harmony v2.7.0.0
[DEBUG @ 21:02:41 | Harmony] ### Original: static System.Reflection.MethodBase LeaderboardCore.HarmonyPatches.PanelView_SetIsLoaded::TargetMethod()
[DEBUG @ 21:02:41 | Harmony] ### Patch class: LeaderboardCore.HarmonyPatches.PanelView_SetIsLoaded
[DEBUG @ 21:02:41 | Harmony] ### System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.NullReferenceException: Object reference not set to an instance of an object
[DEBUG @ 21:02:41 | Harmony] ### at LeaderboardCore.HarmonyPatches.PanelView_SetIsLoaded.TargetMethod () [0x00019] in <a3f7ca23706d4baa8ae968c081a3d2ff>:0
[DEBUG @ 21:02:41 | Harmony] ### at (wrapper managed-to-native) System.Reflection.MonoMethod.InternalInvoke(System.Reflection.MonoMethod,object,object[],System.Exception&)
[DEBUG @ 21:02:41 | Harmony] ### at System.Reflection.MonoMethod.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00032] in <eae584ce26bc40229c1b1aa476bfa589>:0
[DEBUG @ 21:02:41 | Harmony] ### --- End of inner exception stack trace ---
[DEBUG @ 21:02:41 | Harmony] ### at System.Reflection.MonoMethod.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00048] in <eae584ce26bc40229c1b1aa476bfa589>:0
[DEBUG @ 21:02:41 | Harmony] ### at System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters) [0x00000] in <eae584ce26bc40229c1b1aa476bfa589>:0
[DEBUG @ 21:02:41 | Harmony] ### at HarmonyLib.PatchClassProcessor.RunMethod[S,T] (T defaultIfNotExisting, T defaultIfFailing, System.Func`2[T,TResult] failOnResult, System.Object[] parameters) [0x000e2] in <5933b4983adb4a5fb7bcaf1e4ea35e61>:0
[DEBUG @ 21:02:41 | Harmony] ### Exception from user "com.github.rithik-b.LeaderboardCore", Harmony v2.7.0.0
[DEBUG @ 21:02:41 | Harmony] ### Original: NULL
[DEBUG @ 21:02:41 | Harmony] ### Patch class: LeaderboardCore.HarmonyPatches.PanelView_SetIsLoaded
[DEBUG @ 21:02:41 | Harmony] ### System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.NullReferenceException: Object reference not set to an instance of an object
[DEBUG @ 21:02:41 | Harmony] ### at LeaderboardCore.HarmonyPatches.PanelView_SetIsLoaded.TargetMethod () [0x00019] in <a3f7ca23706d4baa8ae968c081a3d2ff>:0
[DEBUG @ 21:02:41 | Harmony] ### at (wrapper managed-to-native) System.Reflection.MonoMethod.InternalInvoke(System.Reflection.MonoMethod,object,object[],System.Exception&)
[DEBUG @ 21:02:41 | Harmony] ### at System.Reflection.MonoMethod.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00032] in <eae584ce26bc40229c1b1aa476bfa589>:0
[DEBUG @ 21:02:41 | Harmony] ### --- End of inner exception stack trace ---
[DEBUG @ 21:02:41 | Harmony] ### at System.Reflection.MonoMethod.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00048] in <eae584ce26bc40229c1b1aa476bfa589>:0
[DEBUG @ 21:02:41 | Harmony] ### at System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters) [0x00000] in <eae584ce26bc40229c1b1aa476bfa589>:0
[DEBUG @ 21:02:41 | Harmony] ### at HarmonyLib.PatchClassProcessor.RunMethod[S,T] (T defaultIfNotExisting, T defaultIfFailing, System.Func`2[T,TResult] failOnResult, System.Object[] parameters) [0x000e2] in <5933b4983adb4a5fb7bcaf1e4ea35e61>:0
[ERROR @ 21:02:41 | LeaderboardCore] Error applying Harmony patches: Patching exception in method static System.Reflection.MethodBase LeaderboardCore.HarmonyPatches.PanelView_SetIsLoaded::TargetMethod()
[DEBUG @ 21:02:41 | LeaderboardCore] HarmonyLib.HarmonyException: Patching exception in method static System.Reflection.MethodBase LeaderboardCore.HarmonyPatches.PanelView_SetIsLoaded::TargetMethod() ---> System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.NullReferenceException: Object reference not set to an instance of an object
[DEBUG @ 21:02:41 | LeaderboardCore] at LeaderboardCore.HarmonyPatches.PanelView_SetIsLoaded.TargetMethod () [0x00019] in <a3f7ca23706d4baa8ae968c081a3d2ff>:0
[DEBUG @ 21:02:41 | LeaderboardCore] at (wrapper managed-to-native) System.Reflection.MonoMethod.InternalInvoke(System.Reflection.MonoMethod,object,object[],System.Exception&)
[DEBUG @ 21:02:41 | LeaderboardCore] at System.Reflection.MonoMethod.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00032] in <eae584ce26bc40229c1b1aa476bfa589>:0
[DEBUG @ 21:02:41 | LeaderboardCore] --- End of inner exception stack trace ---
[DEBUG @ 21:02:41 | LeaderboardCore] at System.Reflection.MonoMethod.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00048] in <eae584ce26bc40229c1b1aa476bfa589>:0
[DEBUG @ 21:02:41 | LeaderboardCore] at System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters) [0x00000] in <eae584ce26bc40229c1b1aa476bfa589>:0
[DEBUG @ 21:02:41 | LeaderboardCore] at HarmonyLib.PatchClassProcessor.RunMethod[S,T] (T defaultIfNotExisting, T defaultIfFailing, System.Func`2[T,TResult] failOnResult, System.Object[] parameters) [0x000e2] in <5933b4983adb4a5fb7bcaf1e4ea35e61>:0
[DEBUG @ 21:02:41 | LeaderboardCore] --- End of inner exception stack trace ---
[DEBUG @ 21:02:41 | LeaderboardCore] at HarmonyLib.PatchClassProcessor.ReportException (System.Exception exception, System.Reflection.MethodBase original) [0x00045] in <5933b4983adb4a5fb7bcaf1e4ea35e61>:0
[DEBUG @ 21:02:41 | LeaderboardCore] at HarmonyLib.PatchClassProcessor.Patch () [0x00095] in <5933b4983adb4a5fb7bcaf1e4ea35e61>:0
[DEBUG @ 21:02:41 | LeaderboardCore] at HarmonyLib.Harmony.<PatchAll>b__11_0 (System.Type type) [0x00007] in <5933b4983adb4a5fb7bcaf1e4ea35e61>:0
[DEBUG @ 21:02:41 | LeaderboardCore] at HarmonyLib.CollectionExtensions.Do[T] (System.Collections.Generic.IEnumerable`1[T] sequence, System.Action`1[T] action) [0x00014] in <5933b4983adb4a5fb7bcaf1e4ea35e61>:0
[DEBUG @ 21:02:41 | LeaderboardCore] at HarmonyLib.Harmony.PatchAll (System.Reflection.Assembly assembly) [0x00006] in <5933b4983adb4a5fb7bcaf1e4ea35e61>:0
[DEBUG @ 21:02:41 | LeaderboardCore] at LeaderboardCore.Plugin.ApplyHarmonyPatches () [0x0001f] in <a3f7ca23706d4baa8ae968c081a3d2ff>:0
So BeatLeader now has a difficulty algorithm that looks for the speed, acc, and tech difficulty of a map, each of which seems to react differently to speed modifiers (like speed difficulty increasing more). At the same time in-game, the speed modifiers still show +22%/+50% as the default for FS/SF modifiers, or nerfed modifier values from the previous difficulty system for specific songs like Black Rover. Is BeatLeader still applying the percentages shown in-game, or is it now applying the increases calculated by the difficulty algorithm?
If you are using the algorithm-calculated values for speed modifiers, can you update the mod show to what the percentages are in-game, or change the star rating above the leaderboard from "Rating" to "Rating (Rating with modifiers)"?
And don't forget the SS modifier exists.
For some time my game struggles to upload a score+replay to the BeatLeader.
Usually it takes a minute and maybe a retry to upload.
But sometimes I'm forgetting about it and start a new play or exit the game, only to realize that I failed to upload a score.
It's frustrating to make a new best score on a difficult map and not get it uploaded to get those sweet PPs.
Can we have a way to upload a score+replay to the leaderboard after we had played other map or after game restart?
When I watch a beatleader replay, I can only see it in my headset. It's just black on the desktop.
There's no license document on this repository unlike beatleader-website and beatleader-qmod, this means legally no one can use or modify the source code, if this is a mistake maybe add MIT license as well?
I just tested the new replay feature and its pretty awesome, but I find some inconsistencies between the replay handling.
BeatLeader replays do not smooth at all, whereas the same map with the ScoreSaber replay does get smoothed by Camera2.
I can provide examples if necessary.
Edit: I'm reporting it here, since you bundle Camera2 in the release - and therefore think it's part of your responsibility to fix
Upon opening a replay with PM modifier following stacktrace is being thrown:
[CRITICAL @ 05:32:24 | UnityEngine] FieldAccessException: Field `GameplayModifiers:_proMode' is inaccessible from method `BeatLeader.Utils.ReplayDataHelper/EditableModifiers:set_proMode (bool)'
[CRITICAL @ 05:32:24 | UnityEngine] BeatLeader.Utils.ReplayDataHelper.GetModifiersFromReplay (BeatLeader.Models.Replay replay) (at <076921e7a4104b9dba226bbec2a1c9a4>:0)
[CRITICAL @ 05:32:24 | UnityEngine] BeatLeader.Utils.ReplayDataHelper.CreateTransitionData (BeatLeader.Models.ReplayLaunchData launchData, PlayerDataModel playerModel) (at <076921e7a4104b9dba226bbec2a1c9a4>:0)
[CRITICAL @ 05:32:24 | UnityEngine] BeatLeader.Replayer.ReplayerLauncher+<StartReplayAsync>d__18.MoveNext () (at <076921e7a4104b9dba226bbec2a1c9a4>:0)
[CRITICAL @ 05:32:24 | UnityEngine] --- End of stack trace from previous location where exception was thrown ---
[CRITICAL @ 05:32:24 | UnityEngine] System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () (at <eae584ce26bc40229c1b1aa476bfa589>:0)
[CRITICAL @ 05:32:24 | UnityEngine] System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (System.Threading.Tasks.Task task) (at <eae584ce26bc40229c1b1aa476bfa589>:0)
[CRITICAL @ 05:32:24 | UnityEngine] System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (System.Threading.Tasks.Task task) (at <eae584ce26bc40229c1b1aa476bfa589>:0)
[CRITICAL @ 05:32:24 | UnityEngine] System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd (System.Threading.Tasks.Task task) (at <eae584ce26bc40229c1b1aa476bfa589>:0)
[CRITICAL @ 05:32:24 | UnityEngine] System.Runtime.CompilerServices.TaskAwaiter`1[TResult].GetResult () (at <eae584ce26bc40229c1b1aa476bfa589>:0)
[CRITICAL @ 05:32:24 | UnityEngine] BeatLeader.Replayer.ReplayerLauncher+<StartReplayAsync>d__17.MoveNext () (at <076921e7a4104b9dba226bbec2a1c9a4>:0)
[CRITICAL @ 05:32:24 | UnityEngine] --- End of stack trace from previous location where exception was thrown ---
[CRITICAL @ 05:32:24 | UnityEngine] System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () (at <eae584ce26bc40229c1b1aa476bfa589>:0)
[CRITICAL @ 05:32:24 | UnityEngine] System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (System.Threading.Tasks.Task task) (at <eae584ce26bc40229c1b1aa476bfa589>:0)
[CRITICAL @ 05:32:24 | UnityEngine] System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (System.Threading.Tasks.Task task) (at <eae584ce26bc40229c1b1aa476bfa589>:0)
[CRITICAL @ 05:32:24 | UnityEngine] System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd (System.Threading.Tasks.Task task) (at <eae584ce26bc40229c1b1aa476bfa589>:0)
[CRITICAL @ 05:32:24 | UnityEngine] System.Runtime.CompilerServices.TaskAwaiter`1[TResult].GetResult () (at <eae584ce26bc40229c1b1aa476bfa589>:0)
[CRITICAL @ 05:32:24 | UnityEngine] BeatLeader.Replayer.ReplayerMenuLoader+<StartReplayAsync>d__44.MoveNext () (at <076921e7a4104b9dba226bbec2a1c9a4>:0)
[CRITICAL @ 05:32:24 | UnityEngine] --- End of stack trace from previous location where exception was thrown ---
[CRITICAL @ 05:32:24 | UnityEngine] System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () (at <eae584ce26bc40229c1b1aa476bfa589>:0)
[CRITICAL @ 05:32:24 | UnityEngine] System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (System.Threading.Tasks.Task task) (at <eae584ce26bc40229c1b1aa476bfa589>:0)
[CRITICAL @ 05:32:24 | UnityEngine] System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (System.Threading.Tasks.Task task) (at <eae584ce26bc40229c1b1aa476bfa589>:0)
[CRITICAL @ 05:32:24 | UnityEngine] System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd (System.Threading.Tasks.Task task) (at <eae584ce26bc40229c1b1aa476bfa589>:0)
[CRITICAL @ 05:32:24 | UnityEngine] System.Runtime.CompilerServices.TaskAwaiter.GetResult () (at <eae584ce26bc40229c1b1aa476bfa589>:0)
[CRITICAL @ 05:32:24 | UnityEngine] BeatLeader.Replayer.ReplayerMenuLoader+<StartReplayAsync>d__43.MoveNext () (at <076921e7a4104b9dba226bbec2a1c9a4>:0)
[CRITICAL @ 05:32:24 | UnityEngine] --- End of stack trace from previous location where exception was thrown ---
[CRITICAL @ 05:32:24 | UnityEngine] System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () (at <eae584ce26bc40229c1b1aa476bfa589>:0)
[CRITICAL @ 05:32:24 | UnityEngine] System.Runtime.CompilerServices.AsyncMethodBuilderCore+<>c.<ThrowAsync>b__6_0 (System.Object state) (at <eae584ce26bc40229c1b1aa476bfa589>:0)
[CRITICAL @ 05:32:24 | UnityEngine] UnityEngine.UnitySynchronizationContext+WorkRequest.Invoke () (at <451019b49f1347529b43a32c5de769af>:0)
[CRITICAL @ 05:32:24 | UnityEngine] UnityEngine.UnitySynchronizationContext:ExecuteTasks()
This is both on latest ci build and latest release, game version 1.27.
When starting Beat Saber 1.37.1 with BeatLeader v0.9.19 the mod fails to materialise in game. If I replace BeatLeader.dll with v0.9.18 it works as normal.
Deleting the UserData folder didn't fix it.
Checked for mod incompatibility, It failed with only required mods installed.
v0.9.19 works in 1.37.0.
If you'd like me to run more tests or supply more data please ask.
The title of this is pretty much self explanatory. I feel like each negative modifier should increase your accuracy in some way depending on what modifier is used.
I'm not too keen with NA getting this treatment as it's very easy to cheese and get a bad note cut score by slightly moving your saber. If it does then it should have a huge deduction from your score like +20% or +18%
Steps to reproduce:
1: Install BeatLeader and JDFixer.
2: Use JDFixer to change song NJS. (This option should disable score submission!)
3: Play song.
Expected behavior:
Song score is not recorded by BeatLeader.
Song score is not recorded by in-game high score.
Actual behavior:
Song score is submitted to BeatLeader (wrong behavior).
Score does not appear in in-game high score (right behavior).
Issue:
JDFixer lets the player change the JD and NJS but only the JD is supposed to be editable without disabling score submissions. Editing NJS normally disables submissions from being made.
basically every block is counted as a miss, score doesnt change and health bar doesnt change, your sabers just go through the blocks
When viewing a replay with fpfc in the launch arguments for Beat Saber and ignore
for fpfc enabled in SiraUtil's config, replays should start playing in the VR view. However, when starting a replay, it kicks the viewer over to the desktop view, and when exiting with Esc, the game is put into fpfc until you press G
to toggle back.
For reference, the ignore
setting in SiraUtil allows for fpfc to be in the launch args, but the game won't start fpfc. This lets fpfc still be toggleable however by pressing the G
key. However, when viewing a replay, it gets kicked to fpfc even when currently in VR. Maybe this might be because of a check of the launch args and not if the game is actually in fpfc or not?
BeatLeader 0.9.17 and Better Song List 0.40.
Under the "Sort" dropdown there used to be BeatLeader Plugins listed, but they seem to be broken now.
The version available on BeatMods is outdated. It is still on version v0.5.4.
I don't know if this is the right place to report this but could not find any contact details for the uploader on BeatMods.
In a replay, a map without mapping extensions, notes obviously are hit, but in a map with mapping extensions, notes aren't hit at all.
https://youtu.be/1iOVj-ek2kk here's a video of watching a map with mapping extensions, a map without, and another map with
As the title states, I'm running Beat Saber 1.34.2 and every time I try to watch a replay (either from the leaderboard on the right side when selecting a song, or from the BeatLeader saved replays menu on the left side of the main menu), the in-game UI appears to do nothing and the console says:
[INFO @ 18:12:51 | BeatLeader] Attempting to load replay:
[INFO @ 18:12:51 | BeatLeader] ModVersion: 0.9.4
[INFO @ 18:12:51 | BeatLeader] GameVersion: 1.34.2_7115288407
[INFO @ 18:12:51 | BeatLeader] Platform: steam
[INFO @ 18:12:51 | BeatLeader] PlayerID: 76561198963882706
[INFO @ 18:12:51 | BeatLeader] SongHash: E774B798DA2258D2FE017E84B79B9AD3A86162B9
[INFO @ 18:12:51 | BeatLeader] Mode: Standard
[INFO @ 18:12:51 | BeatLeader] Modifiers: SS
[INFO @ 18:12:51 | BeatLeader] TotalScore: 416611
[NOTICE @ 18:12:51 | BeatLeader] [Loader] Applied specified environment: Big Mirror
[NOTICE @ 18:12:51 | BeatLeader] [Launcher] Loading replay data...
The last line comes from line 23 of Source/2_Core/Replayer/ReplayerLauncher.cs
and, based on the fact that there is another message on line 29 that is never printed, I'm guessing it's getting hung up on line 24, when calling data.CreateTransitionData(_playerDataModel)
.
When I click to watch a replay the headset goes black and the replay loads up on the beat saber desktop window.
If I exit the replay on the desktop the headset stays black until I restart beat saber again.
States mod is outdated when 0.4.4 is installed and sends you link with version 0.4.3 instead of latest 0.4.4
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.