RUMBLE does not support other mod managers. If you want to use a manager, you must use the RUMBLE Mod Manager, a manager specifically designed for this game.
Decompiled source of OptimizedGraphicsFix v1.0.0
Mods/OptimizedGraphicsFix.dll
Decompiled a day agousing System.Collections.Generic; using System.Diagnostics; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.Versioning; using Il2CppInterop.Runtime.InteropTypes.Arrays; using MelonLoader; using OptimizedGraphicsFix; using OptimizedGraphicsFix.API; using OptimizedGraphicsFix.Util; using UnityEngine; using UnityEngine.Rendering; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)] [assembly: MelonInfo(typeof(global::OptimizedGraphicsFix.OptimizedGraphicsFix), "Optimized Graphics Fix", "1.0.0", "Cxntrxl", null)] [assembly: MelonGame("Buckethead Entertainment", "RUMBLE")] [assembly: MelonColor(255, 210, 180, 145)] [assembly: MelonAuthorColor(255, 5, 210, 240)] [assembly: TargetFramework(".NETCoreApp,Version=v6.0", FrameworkDisplayName = "")] [assembly: AssemblyCompany("OptimizedGraphicsFix")] [assembly: AssemblyConfiguration("Debug")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0")] [assembly: AssemblyProduct("OptimizedGraphicsFix")] [assembly: AssemblyTitle("OptimizedGraphicsFix")] [assembly: AssemblyVersion("1.0.0.0")] namespace OptimizedGraphicsFix { public static class ModInfo { public const string ModName = "Optimized Graphics Fix"; public const string ModVersion = "1.0.0"; public const string ModAuthor = "Cxntrxl"; public const string Description = "API for fixing various base game optimization related bugs in mods"; } public class OptimizedGraphicsFix : MelonMod { public static bool VerboseLogging; public override void OnSceneWasLoaded(int buildIndex, string sceneName) { ((MelonMod)this).OnSceneWasLoaded(buildIndex, sceneName); Lighting.OnSceneWasLoaded(); OcclusionCulling.OnSceneWasLoaded(); } public static void Log(object msg) { MelonLogger.Msg(msg); } public static void Warn(object msg) { MelonLogger.Warning(msg); } public static void Error(object msg) { MelonLogger.Error(msg); } public static void LogVerbose(object msg) { if (VerboseLogging) { Log(msg); } } public static void WarnVerbose(object msg) { if (VerboseLogging) { Warn(msg); } } public static void ErrorVerbose(object msg) { if (VerboseLogging) { Error(msg); } } } } namespace OptimizedGraphicsFix.Util { public static class APIUtils { public static string GetCallingModName() { Assembly executingAssembly = Assembly.GetExecutingAssembly(); StackTrace stackTrace = new StackTrace(); for (int i = 0; i < stackTrace.FrameCount; i++) { MethodBase method = stackTrace.GetFrame(i).GetMethod(); if (method?.DeclaringType == null) { continue; } Assembly assembly = method.DeclaringType.Assembly; if (assembly == executingAssembly) { continue; } foreach (MelonMod registeredMelon in MelonTypeBase<MelonMod>.RegisteredMelons) { if (((MelonBase)registeredMelon).MelonAssembly.Assembly == assembly) { return ((MelonBase)registeredMelon).Info.Name; } } } return "Unknown Caller"; } } } namespace OptimizedGraphicsFix.API { public static class Lighting { private static bool _locked = false; private static int _lockPriority = 0; private static string _lockedBy = "Not Locked, lol? You shouldn't see this."; private static AmbientMode _ambientMode = (AmbientMode)0; private static Color _skyColor = new Color(0.35f, 0.428f, 0.584f); private static Color _horizonColor = new Color(0.114f, 0.125f, 0.133f); private static Color _groundColor = new Color(0.047f, 0.043f, 0.035f); public static void Lock(int lockPriority = 1) { OptimizedGraphicsFix.LogVerbose("[Lighting] " + APIUtils.GetCallingModName() + " Locked with priority " + lockPriority); _locked = true; _lockPriority = lockPriority; _lockedBy = APIUtils.GetCallingModName(); } public static void Unlock(int lockPriority = 1) { if (_lockPriority > lockPriority && _lockedBy != APIUtils.GetCallingModName()) { OptimizedGraphicsFix.LogVerbose("[Lighting] " + APIUtils.GetCallingModName() + " could not unlock lighting. Requires " + _lockPriority + ", Locked by " + _lockedBy); } else { OptimizedGraphicsFix.LogVerbose("[Lighting] " + APIUtils.GetCallingModName() + " unlocked lighting successfully."); _locked = false; _lockPriority = 0; } } internal static void OnSceneWasLoaded() { //IL_000c: Unknown result type (might be due to invalid IL or missing references) //IL_0017: Unknown result type (might be due to invalid IL or missing references) //IL_0022: Unknown result type (might be due to invalid IL or missing references) //IL_002d: Unknown result type (might be due to invalid IL or missing references) OptimizedGraphicsFix.LogVerbose("[Lighting] Reloaded lighting settings from previous scene."); RenderSettings.ambientMode = _ambientMode; RenderSettings.ambientLight = _skyColor; RenderSettings.ambientEquatorColor = _horizonColor; RenderSettings.ambientGroundColor = _groundColor; } public static void UseBounceLighting(bool useBounce) { //IL_0067: Unknown result type (might be due to invalid IL or missing references) if (_locked) { OptimizedGraphicsFix.LogVerbose("[Lighting] " + APIUtils.GetCallingModName() + " tried to set bounce lighting, but lighting is currently locked by " + _lockedBy + " with a priority of " + _lockPriority); } else { RenderSettings.ambientMode = (AmbientMode)(useBounce ? 1 : 0); _ambientMode = (AmbientMode)(useBounce ? 1 : 0); } } public static void SetSkyLightColor(Color? color = null) { //IL_0076: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_0095: Unknown result type (might be due to invalid IL or missing references) //IL_008c: Unknown result type (might be due to invalid IL or missing references) //IL_009a: Unknown result type (might be due to invalid IL or missing references) if (_locked) { OptimizedGraphicsFix.LogVerbose("[Lighting] " + APIUtils.GetCallingModName() + " tried to set Sky Light Color, but lighting is currently locked by " + _lockedBy + " with a priority of " + _lockPriority); } else { RenderSettings.ambientSkyColor = (Color)(((??)color) ?? new Color(0.35f, 0.428f, 0.584f)); _skyColor = (Color)(((??)color) ?? _skyColor); } } public static void SetHorizonLightColor(Color? color = null) { //IL_0076: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_0095: Unknown result type (might be due to invalid IL or missing references) //IL_008c: Unknown result type (might be due to invalid IL or missing references) //IL_009a: Unknown result type (might be due to invalid IL or missing references) if (_locked) { OptimizedGraphicsFix.LogVerbose("[Lighting] " + APIUtils.GetCallingModName() + " tried to set Horizon Light Color, but lighting is currently locked by " + _lockedBy + " with a priority of " + _lockPriority); } else { RenderSettings.ambientEquatorColor = (Color)(((??)color) ?? new Color(0.114f, 0.125f, 0.133f)); _horizonColor = (Color)(((??)color) ?? _horizonColor); } } public static void SetGroundLightColor(Color? color = null) { //IL_0076: Unknown result type (might be due to invalid IL or missing references) //IL_006d: Unknown result type (might be due to invalid IL or missing references) //IL_0095: Unknown result type (might be due to invalid IL or missing references) //IL_008c: Unknown result type (might be due to invalid IL or missing references) //IL_009a: Unknown result type (might be due to invalid IL or missing references) if (_locked) { OptimizedGraphicsFix.LogVerbose("[Lighting] " + APIUtils.GetCallingModName() + " tried to set Ground Light Color, but lighting is currently locked by " + _lockedBy + " with a priority of " + _lockPriority); } else { RenderSettings.ambientGroundColor = (Color)(((??)color) ?? new Color(0.047f, 0.043f, 0.035f)); _groundColor = (Color)(((??)color) ?? _groundColor); } } } public static class OcclusionCulling { private static Dictionary<Camera, bool> _cullingMap = new Dictionary<Camera, bool>(); private static bool _culling = true; public static void DisableCulling() { foreach (Camera item in (Il2CppArrayBase<Camera>)(object)Camera.allCameras) { _cullingMap.Add(item, item.useOcclusionCulling); item.useOcclusionCulling = false; } _culling = false; } public static void EnableCulling() { if (_culling) { return; } foreach (Camera item in (Il2CppArrayBase<Camera>)(object)Camera.allCameras) { if (_cullingMap.TryGetValue(item, out var value)) { item.useOcclusionCulling = value; } } _cullingMap.Clear(); _culling = true; } internal static void OnSceneWasLoaded() { _cullingMap.Clear(); if (!_culling) { DisableCulling(); } } } }