The BepInEx console will not appear when launching like it does for other games on Thunderstore (you can turn it back on in your BepInEx.cfg file). If your PEAK crashes on startup, add -dx12 to your launch parameters.
Decompiled source of Stronger Auto Scout Cannons v1.0.2
tony4twentys-Stronger Auto Scout Cannons.dll
Decompiled 2 weeks agousing System.Diagnostics; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using System.Runtime.Versioning; using BepInEx; using BepInEx.Configuration; using HarmonyLib; using Photon.Pun; using UnityEngine; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)] [assembly: AssemblyTitle("Stronger Cannons")] [assembly: AssemblyDescription("")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] [assembly: AssemblyProduct("Stronger Cannons")] [assembly: AssemblyCopyright("Copyright © 2025")] [assembly: AssemblyTrademark("")] [assembly: ComVisible(false)] [assembly: Guid("b38956bf-5712-4c59-8790-826a989b6b46")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: TargetFramework(".NETFramework,Version=v4.7.2", FrameworkDisplayName = ".NET Framework 4.7.2")] [assembly: AssemblyVersion("1.0.0.0")] namespace StrongerAutoScoutCannons; [BepInPlugin("tony4twentys.Stronger_Auto_Scout_Cannons", "Stronger Auto Scout Cannons", "1.0.0")] public class StrongerAutoScoutCannonsPlugin : BaseUnityPlugin { private static ConfigEntry<float> LaunchForceMultiplier; private static ConfigEntry<float> ItemLaunchForceMultiplier; private static ConfigEntry<float> PullForceMultiplier; private static ConfigEntry<float> PushForceMultiplier; private static ConfigEntry<bool> EnableMultipliers; private static ConfigEntry<bool> EnableAutoFire; private static ConfigEntry<float> FuseTimeOverride; private void Awake() { EnableMultipliers = ((BaseUnityPlugin)this).Config.Bind<bool>("General", "EnableMultipliers", true, "Enable to apply multipliers to cannon forces."); LaunchForceMultiplier = ((BaseUnityPlugin)this).Config.Bind<float>("General", "LaunchForceMultiplier", 2f, "Multiplier for launch force applied to players."); ItemLaunchForceMultiplier = ((BaseUnityPlugin)this).Config.Bind<float>("General", "ItemLaunchForceMultiplier", 2f, "Multiplier for launch force applied to items."); PullForceMultiplier = ((BaseUnityPlugin)this).Config.Bind<float>("General", "PullForceMultiplier", 2f, "Multiplier for pull force."); PushForceMultiplier = ((BaseUnityPlugin)this).Config.Bind<float>("General", "PushForceMultiplier", 2f, "Multiplier for push force."); EnableAutoFire = ((BaseUnityPlugin)this).Config.Bind<bool>("General", "EnableAutoFire", true, "If true, the cannon will automatically light when a player enters."); FuseTimeOverride = ((BaseUnityPlugin)this).Config.Bind<float>("General", "FuseTimeOverride", -1f, "Override for fuse burn duration before firing. Set to -1 to leave unchanged."); Harmony.CreateAndPatchAll(typeof(StrongerAutoScoutCannonsPlugin), (string)null); } [HarmonyPatch(typeof(ScoutCannon), "Awake")] [HarmonyPostfix] private static void AdjustCannonForces(ref ScoutCannon __instance) { if (EnableMultipliers.Value) { ScoutCannon obj = __instance; obj.launchForce *= LaunchForceMultiplier.Value; ScoutCannon obj2 = __instance; obj2.itemLaunchForce *= ItemLaunchForceMultiplier.Value; ScoutCannon obj3 = __instance; obj3.pullForce *= PullForceMultiplier.Value; ScoutCannon obj4 = __instance; obj4.pushForce *= PushForceMultiplier.Value; } } [HarmonyPatch(typeof(ScoutCannon), "FixedUpdate")] [HarmonyPostfix] private static void AutoLightWhenPlayerIsInside(ScoutCannon __instance) { //IL_0063: Unknown result type (might be due to invalid IL or missing references) //IL_0069: Unknown result type (might be due to invalid IL or missing references) if (!EnableAutoFire.Value || !PhotonNetwork.IsMasterClient || __instance.lit) { return; } Transform value = Traverse.Create((object)__instance).Field("entry").GetValue<Transform>(); if ((Object)(object)value == (Object)null) { return; } foreach (Character allCharacter in Character.AllCharacters) { if (Vector3.Distance(allCharacter.Center, value.position) <= 0.75f) { __instance.Light(); break; } } } [HarmonyPatch(typeof(ScoutCannon), "Awake")] [HarmonyPostfix] private static void AdjustFuseTime(ref ScoutCannon __instance) { if (FuseTimeOverride.Value >= 0f) { __instance.fireTime = FuseTimeOverride.Value; } } }