Some mods target the Mono version of the game, which is available by opting into the Steam beta branch "alternate"
Decompiled source of DebitEverySecond v1.0.0
Mods/cardeverysecond.dll
Decompiled a month agousing System; using System.Diagnostics; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.Versioning; using Il2CppFishNet.Object; using Il2CppScheduleOne.DevUtilities; using Il2CppScheduleOne.GameTime; using Il2CppScheduleOne.Money; using Il2CppScheduleOne.PlayerScripts; using Il2CppSystem; using MelonLoader; using UnityEngine; using UnityEngine.Events; using cardeverysecond; [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), "LoseDebitPerSecond", "1.0.0", "joeswanson.", null)] [assembly: TargetFramework(".NETCoreApp,Version=v6.0", FrameworkDisplayName = ".NET 6.0")] [assembly: AssemblyCompany("cardeverysecond")] [assembly: AssemblyConfiguration("Debug")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0")] [assembly: AssemblyProduct("cardeverysecond")] [assembly: AssemblyTitle("cardeverysecond")] [assembly: AssemblyVersion("1.0.0.0")] namespace cardeverysecond; 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 { change = NetworkSingleton<TimeManager>.Instance.DayIndex + 1; if (modEnabled) { if (!has30Bucks && NetworkSingleton<MoneyManager>.Instance.onlineBalance >= 30f) { has30Bucks = true; } if (has30Bucks && ((NetworkBehaviour)Player.Local).IsHost) { string text = ((-change < 0) ? "Removed" : "Added"); if (NetworkSingleton<MoneyManager>.Instance.onlineBalance >= 0f) { NetworkSingleton<MoneyManager>.Instance.CreateOnlineTransaction(text + " online balance", (float)(-change), 1f, text + " by challenge mod."); } else if (Player.Local.Health.IsAlive) { Player.Local.Health.SetHealth(0f); has30Bucks = false; Deaths++; } } } }); } }
Mods/cardeverysecond.mono.dll
Decompiled a month agousing System; using System.Diagnostics; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.Versioning; using FishNet.Object; using MelonLoader; using ScheduleOne.DevUtilities; using ScheduleOne.GameTime; using ScheduleOne.Money; using ScheduleOne.PlayerScripts; using UnityEngine; using UnityEngine.Events; using cardeverysecond; [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), "LoseDebitPerSecond", "1.0.0", "joeswanson.", null)] [assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")] [assembly: AssemblyCompany("cardeverysecond.mono")] [assembly: AssemblyConfiguration("Debug")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0")] [assembly: AssemblyProduct("cardeverysecond.mono")] [assembly: AssemblyTitle("cardeverysecond.mono")] [assembly: AssemblyVersion("1.0.0.0")] namespace cardeverysecond; 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 { change = NetworkSingleton<TimeManager>.Instance.DayIndex + 1; if (modEnabled) { if (!has30Bucks && NetworkSingleton<MoneyManager>.Instance.onlineBalance >= 30f) { has30Bucks = true; } if (has30Bucks && ((NetworkBehaviour)Player.Local).IsHost) { string text = ((-change < 0) ? "Removed" : "Added"); if (NetworkSingleton<MoneyManager>.Instance.onlineBalance >= 0f) { NetworkSingleton<MoneyManager>.Instance.CreateOnlineTransaction(text + " online balance", (float)(-change), 1f, text + " by challenge mod."); } else if (Player.Local.Health.IsAlive) { Player.Local.Health.SetHealth(0f); has30Bucks = false; Deaths++; } } } }); } }