Some mods target the Mono version of the game, which is available by opting into the Steam beta branch "alternate"
Decompiled source of Automatic1911 v1.2.1
Automatic1911_IL2CPP.dll
Decompiled a month agousing System.Diagnostics; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.Versioning; using Automatic1911; using Il2CppInterop.Runtime.InteropTypes; using Il2CppScheduleOne.DevUtilities; using Il2CppScheduleOne.Equipping; using Il2CppScheduleOne.PlayerScripts; using MelonLoader; using MelonLoader.Preferences; using UnityEngine; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)] [assembly: MelonInfo(typeof(global::Automatic1911.Automatic1911), "Automatic1911", "1.0", "Jumble", null)] [assembly: MelonColor] [assembly: MelonGame("TVGS", "Schedule I")] [assembly: TargetFramework(".NETCoreApp,Version=v6.0", FrameworkDisplayName = ".NET 6.0")] [assembly: AssemblyCompany("Automatic1911")] [assembly: AssemblyConfiguration("Release")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0")] [assembly: AssemblyProduct("Automatic1911")] [assembly: AssemblyTitle("Automatic1911")] [assembly: AssemblyVersion("1.0.0.0")] namespace Automatic1911; public static class BuildInfo { public const string Name = "Automatic1911"; public const string Description = "Makes the 1911 fully automatic."; public const string Author = "Jumble"; public const string Company = null; public const string Version = "1.0"; public const string DownloadLink = null; } public static class Config { private static MelonPreferences_Category configCategory; private static MelonPreferences_Entry<float> firerateEntry; public static float FireRate => firerateEntry?.Value ?? 0.1f; public static void Load() { configCategory = MelonPreferences.CreateCategory("Automatic1911"); firerateEntry = configCategory.CreateEntry<float>("fireRate", 0.1f, (string)null, (string)null, false, false, (ValueValidator)null, (string)null); } } public class Automatic1911 : MelonMod { private Equippable_RangedWeapon stored1911; public override void OnInitializeMelon() { Config.Load(); } public override void OnUpdate() { if (Input.GetKey((KeyCode)323) && Input.GetKey((KeyCode)324)) { if (((Object)(object)stored1911 == (Object)null || !((Component)stored1911).gameObject.activeInHierarchy) && Object.op_Implicit((Object)(object)PlayerSingleton<PlayerInventory>.Instance.equippedSlot.Equippable) && ((Object)PlayerSingleton<PlayerInventory>.Instance.equippedSlot.Equippable).name == "M1911_Equippable(Clone)") { stored1911 = ((Il2CppObjectBase)PlayerSingleton<PlayerInventory>.Instance.equippedSlot.Equippable).Cast<Equippable_RangedWeapon>(); stored1911.FireCooldown = Config.FireRate; } if ((Object)(object)stored1911 != (Object)null && stored1911.TimeSinceFire >= Config.FireRate) { stored1911.shotQueued = true; } if ((Object)(object)stored1911 == (Object)null) { MelonLogger.Msg("1911 not found"); } } } }
Automatic1911_Mono.dll
Decompiled a month agousing System.Diagnostics; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.Versioning; using Automatic1911; using MelonLoader; using MelonLoader.Preferences; using ScheduleOne.DevUtilities; using ScheduleOne.Equipping; using ScheduleOne.PlayerScripts; using UnityEngine; [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::Automatic1911.Automatic1911), "Automatic1911", "1.1", "Jumble", null)] [assembly: MelonColor] [assembly: MelonGame("TVGS", "Schedule I")] [assembly: TargetFramework(".NETCoreApp,Version=v6.0", FrameworkDisplayName = ".NET 6.0")] [assembly: AssemblyCompany("Automatic1911_Mono")] [assembly: AssemblyConfiguration("Debug_Mono")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0")] [assembly: AssemblyProduct("Automatic1911_Mono")] [assembly: AssemblyTitle("Automatic1911_Mono")] [assembly: AssemblyVersion("1.0.0.0")] namespace Automatic1911; public static class BuildInfo { public const string Name = "Automatic1911"; public const string Description = "Makes the 1911 fully automatic."; public const string Author = "Jumble"; public const string Company = null; public const string Version = "1.1"; public const string DownloadLink = null; } public static class Config { private static MelonPreferences_Category configCategory; private static MelonPreferences_Entry<float> firerateEntry; public static float FireRate => firerateEntry?.Value ?? 0.1f; public static void Load() { configCategory = MelonPreferences.CreateCategory("Automatic1911"); firerateEntry = configCategory.CreateEntry<float>("fireRate", 0.1f, (string)null, (string)null, false, false, (ValueValidator)null, (string)null); } } public class Automatic1911 : MelonMod { private Equippable_RangedWeapon stored1911; public override void OnInitializeMelon() { Config.Load(); } public override void OnUpdate() { if (!Input.GetKey((KeyCode)323) || !Input.GetKey((KeyCode)324)) { return; } if (((Object)(object)stored1911 == (Object)null || !((Component)stored1911).gameObject.activeInHierarchy) && Object.op_Implicit((Object)(object)PlayerSingleton<PlayerInventory>.Instance.equippedSlot.Equippable) && ((Object)PlayerSingleton<PlayerInventory>.Instance.equippedSlot.Equippable).name == "M1911_Equippable(Clone)") { ref Equippable_RangedWeapon reference = ref stored1911; Equippable equippable = PlayerSingleton<PlayerInventory>.Instance.equippedSlot.Equippable; reference = (Equippable_RangedWeapon)(object)((equippable is Equippable_RangedWeapon) ? equippable : null); stored1911.FireCooldown = Config.FireRate; } if ((Object)(object)stored1911 != (Object)null && stored1911.TimeSinceFire >= Config.FireRate) { if (stored1911.Ammo < 1) { return; } stored1911.Fire(); } if ((Object)(object)stored1911 == (Object)null) { MelonLogger.Msg("1911 not found"); } } }