Some mods target the Mono version of the game, which is available by opting into the Steam beta branch "alternate"
Decompiled source of WalletEverySecond v1.0.0
Mods/moneyeverysecond.dll
Decompiled a month agousing System; using System.Diagnostics; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.Versioning; using Il2CppScheduleOne.DevUtilities; using Il2CppScheduleOne.GameTime; using Il2CppScheduleOne.Money; using Il2CppScheduleOne.PlayerScripts; using Il2CppSystem; using MelonLoader; using UnityEngine; using UnityEngine.Events; using moneyeverysecond; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)] [assembly: MelonInfo(typeof(ModMain), "LoseMoneyPerSecond", "1.0.0", "joeswanson, Pranjal, k0, Bars, archieWIZARD", null)] [assembly: TargetFramework(".NETCoreApp,Version=v6.0", FrameworkDisplayName = ".NET 6.0")] [assembly: AssemblyCompany("moneyeverysecond")] [assembly: AssemblyConfiguration("Debug")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0")] [assembly: AssemblyProduct("moneyeverysecond")] [assembly: AssemblyTitle("moneyeverysecond")] [assembly: AssemblyVersion("1.0.0.0")] namespace moneyeverysecond; public class ModMain : MelonMod { private bool assignedListener = false; private bool modEnabled = true; public static int Deaths; public override void OnUpdate() { if (Input.GetKeyDown((KeyCode)282)) { modEnabled = !modEnabled; } if (!NetworkSingleton<TimeManager>.InstanceExists) { assignedListener = false; } if (assignedListener || !NetworkSingleton<TimeManager>.InstanceExists) { return; } modEnabled = true; assignedListener = true; bool has30Bucks = false; int change = NetworkSingleton<TimeManager>.Instance.DayIndex + 1; NetworkSingleton<TimeManager>.Instance._onSleepEnd.AddListener(UnityAction.op_Implicit((Action)delegate { change = NetworkSingleton<TimeManager>.Instance.DayIndex + 1; })); TimeManager instance = NetworkSingleton<TimeManager>.Instance; instance.onTick += Action.op_Implicit((Action)delegate { //IL_00a7: Unknown result type (might be due to invalid IL or missing references) change = NetworkSingleton<TimeManager>.Instance.DayIndex + 1; if (modEnabled) { if (!has30Bucks && NetworkSingleton<MoneyManager>.Instance.cashBalance >= 30f) { has30Bucks = true; } if (has30Bucks && ((Object)(object)Player.Local.CurrentProperty == (Object)null || Player.Local.CurrentProperty.propertyName != "RV" || !Player.Local.CurrentProperty.DoBoundsContainPoint(Player.Local.Avatar.CenterPoint))) { if (NetworkSingleton<MoneyManager>.Instance.cashBalance != 0f) { NetworkSingleton<MoneyManager>.Instance.ChangeCashBalance((float)(-change), true, false); } else if (Player.Local.Health.IsAlive) { Player.Local.Health.SetHealth(0f); has30Bucks = false; Deaths++; } } } }); } }
Mods/moneyeverysecond.mono.dll
Decompiled a month agousing System; using System.Diagnostics; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.Versioning; using MelonLoader; using ScheduleOne.DevUtilities; using ScheduleOne.GameTime; using ScheduleOne.Money; using ScheduleOne.PlayerScripts; using UnityEngine; using UnityEngine.Events; using moneyeverysecond; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)] [assembly: MelonInfo(typeof(ModMain), "LoseMoneyPerSecond", "1.0.0", "joeswanson, Pranjal, k0, Bars, archieWIZARD", null)] [assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")] [assembly: AssemblyCompany("moneyeverysecond.mono")] [assembly: AssemblyConfiguration("Debug")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0")] [assembly: AssemblyProduct("moneyeverysecond.mono")] [assembly: AssemblyTitle("moneyeverysecond.mono")] [assembly: AssemblyVersion("1.0.0.0")] namespace moneyeverysecond; public class ModMain : MelonMod { private bool assignedListener = false; private bool modEnabled = true; public static int Deaths; public override void OnUpdate() { //IL_008b: Unknown result type (might be due to invalid IL or missing references) //IL_0095: Expected O, but got Unknown if (Input.GetKeyDown((KeyCode)282)) { modEnabled = !modEnabled; } if (!NetworkSingleton<TimeManager>.InstanceExists) { assignedListener = false; } if (assignedListener || !NetworkSingleton<TimeManager>.InstanceExists) { return; } modEnabled = true; assignedListener = true; bool has30Bucks = false; int change = NetworkSingleton<TimeManager>.Instance.DayIndex + 1; NetworkSingleton<TimeManager>.Instance._onSleepEnd.AddListener((UnityAction)delegate { change = NetworkSingleton<TimeManager>.Instance.DayIndex + 1; }); TimeManager instance = NetworkSingleton<TimeManager>.Instance; instance.onTick = (Action)Delegate.Combine(instance.onTick, (Action)delegate { //IL_00a7: Unknown result type (might be due to invalid IL or missing references) change = NetworkSingleton<TimeManager>.Instance.DayIndex + 1; if (modEnabled) { if (!has30Bucks && NetworkSingleton<MoneyManager>.Instance.cashBalance >= 30f) { has30Bucks = true; } if (has30Bucks && ((Object)(object)Player.Local.CurrentProperty == (Object)null || Player.Local.CurrentProperty.PropertyName != "RV" || !Player.Local.CurrentProperty.DoBoundsContainPoint(Player.Local.Avatar.CenterPoint))) { if (NetworkSingleton<MoneyManager>.Instance.cashBalance != 0f) { NetworkSingleton<MoneyManager>.Instance.ChangeCashBalance((float)(-change), true, false); } else if (Player.Local.Health.IsAlive) { Player.Local.Health.SetHealth(0f); has30Bucks = false; Deaths++; } } } }); } }