Please disclose if any significant portion of your mod was created using AI tools by adding the 'AI Generated' category. Failing to do so may result in the mod being removed from Thunderstore.
Decompiled source of SilksongAdaptiveTriggers v1.0.1
SilksongAdaptiveTriggers.dll
Decompiled 3 months agousing System.Diagnostics; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using System.Runtime.Versioning; using BepInEx; using BepInEx.Configuration; using DSX_UDP_Example; using DualSenseBridge; using HarmonyLib; using InControl; using Silksong.ModMenu.Plugin; 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("SilksongAdaptiveTriggers")] [assembly: AssemblyDescription("")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] [assembly: AssemblyProduct("SilksongAdaptiveTriggers")] [assembly: AssemblyCopyright("Copyright © 2026")] [assembly: AssemblyTrademark("")] [assembly: ComVisible(false)] [assembly: Guid("9b299c30-d723-4319-a098-5468b36bfe83")] [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")] internal enum InternalTriggerMode { Normal, GameCube, VerySoft, Soft, Hard, VeryHard, Hardest, Rigid, VibrateTrigger, Choppy, Medium, VibrateTriggerPulse, CustomTriggerValue, Resistance, Bow, Galloping, SemiAutomaticGun, AutomaticGun, Machine, VIBRATE_TRIGGER_10Hz, OFF, FEEDBACK, WEAPON, VIBRATION, SLOPE_FEEDBACK, MULTIPLE_POSITION_FEEDBACK, MULTIPLE_POSITION_VIBRATION } public enum PlayerState { None, Dash, Sprint, Hook, ChargeSuperJump, SuperJump, Eject } [BepInPlugin("org.CheezyPants12.SilksongAT", "Silksong Adaptive Triggers", "1.0.0")] public class SilksongAdaptiveTriggers : BaseUnityPlugin { public static SilksongAdaptiveTriggers Instance; private ConfigEntry<int> SilkSoarTriggerStrength; private ConfigEntry<int> DashTriggerStrength; private ConfigEntry<int> SprintTriggerStrength; private ConfigEntry<int> ClawlineTriggerStrength; private void Awake() { //IL_002d: Unknown result type (might be due to invalid IL or missing references) //IL_0037: Expected O, but got Unknown //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_0072: Expected O, but got Unknown //IL_00a4: Unknown result type (might be due to invalid IL or missing references) //IL_00ae: Expected O, but got Unknown //IL_00df: Unknown result type (might be due to invalid IL or missing references) //IL_00e9: Expected O, but got Unknown SilkSoarTriggerStrength = ((BaseUnityPlugin)this).Config.Bind<int>("General", "Silk Soar Strength", 2, new ConfigDescription("The Vibration Strength of the AT During Silk Soar Charge.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 8), new object[1] { MenuElementGenerators.CreateIntSliderGenerator() })); DashTriggerStrength = ((BaseUnityPlugin)this).Config.Bind<int>("General", "Dash Resistance", 8, new ConfigDescription("The Resistance of the AT While Dashing.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 8), new object[1] { MenuElementGenerators.CreateIntSliderGenerator() })); SprintTriggerStrength = ((BaseUnityPlugin)this).Config.Bind<int>("General", "Sprint Frequency", 2, new ConfigDescription("The Vibration Frequency of the AT While Sprinting.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 40), new object[1] { MenuElementGenerators.CreateIntSliderGenerator() })); ClawlineTriggerStrength = ((BaseUnityPlugin)this).Config.Bind<int>("General", "Clawline Resistance", 4, new ConfigDescription("The Resistance of the AT When Activating Clawline.", (AcceptableValueBase)(object)new AcceptableValueRange<int>(1, 8), new object[1] { MenuElementGenerators.CreateIntSliderGenerator() })); ((BaseUnityPlugin)this).Logger.LogInfo((object)"Plugin loaded and initialized."); Bridge.Init(); Harmony.CreateAndPatchAll(typeof(SilksongAdaptiveTriggers), (string)null); Instance = this; } public static void SetTriggerStateRight(PlayerState State) { switch (State) { case PlayerState.None: Bridge.ResetRightTrigger(); break; case PlayerState.Dash: Bridge.SendSlope((Trigger)2, (TriggerMode)24, 1, 9, Instance.DashTriggerStrength.Value, 1); break; case PlayerState.Sprint: Bridge.SendGallop((Trigger)2, (TriggerMode)15, 1, 9, 3, 6, Instance.SprintTriggerStrength.Value); break; } } public static void SetTriggerStateLeft(PlayerState State) { switch (State) { case PlayerState.None: Bridge.ResetLeftTrigger(); break; case PlayerState.Hook: Bridge.SendBow((Trigger)1, (TriggerMode)14, 1, 8, Instance.ClawlineTriggerStrength.Value, 8); break; case PlayerState.ChargeSuperJump: Bridge.SendVibration((Trigger)1, (TriggerMode)23, 2, Instance.SilkSoarTriggerStrength.Value, 40); break; } } [HarmonyPrefix] [HarmonyPatch(typeof(HeroController), "Update")] private static void UpdatePostFix() { GetSprintFlags(); } public static void GetSprintFlags() { if (HeroController.instance.cState.isSprinting) { if (!HeroController.instance.cState.dashing) { SetTriggerStateRight(PlayerState.Sprint); } else { SetTriggerStateRight(PlayerState.Dash); } } else if (HeroController.instance.cState.dashing) { SetTriggerStateRight(PlayerState.Dash); } } [HarmonyPrefix] [HarmonyPatch(typeof(HeroController), "LookForInput")] private static void LookForInputPostFix() { //IL_0016: Unknown result type (might be due to invalid IL or missing references) //IL_001c: Invalid comparison between Unknown and I4 HeroController instance = HeroController.instance; GameManager instance2 = GameManager.instance; if (instance.IsInputBlocked() || (int)instance2.GameState != 4 || instance2.isPaused || !GameManager.instance.IsGameplayScene()) { return; } if (((OneAxisInputControl)instance2.inputHandler.inputActions.SuperDash).IsPressed && ((OneAxisInputControl)instance2.inputHandler.inputActions.Down).IsPressed && !((OneAxisInputControl)instance2.inputHandler.inputActions.Up).IsPressed && !((OneAxisInputControl)instance2.inputHandler.inputActions.Left).IsPressed && !((OneAxisInputControl)instance2.inputHandler.inputActions.Right).IsPressed && instance.CanSuperJump()) { if (instance.controlReqlinquished) { } SetTriggerStateLeft(PlayerState.ChargeSuperJump); } if (instance.acceptingInput) { } } [HarmonyPrefix] [HarmonyPatch(typeof(HeroController), "LookForQueueInput")] private static void LookForQueueInputPostFix() { HeroController instance = HeroController.instance; GameManager instance2 = GameManager.instance; if (!instance.IsInputBlocked() && !((Object)(object)InteractManager.BlockingInteractable != (Object)null) && !instance.IsPaused() && GameManager.instance.IsGameplayScene() && ((OneAxisInputControl)instance2.inputHandler.inputActions.SuperDash).IsPressed && (!((OneAxisInputControl)instance2.inputHandler.inputActions.Down).IsPressed || ((OneAxisInputControl)instance2.inputHandler.inputActions.Up).IsPressed || ((OneAxisInputControl)instance2.inputHandler.inputActions.Left).IsPressed || ((OneAxisInputControl)instance2.inputHandler.inputActions.Right).IsPressed || !instance.CanSuperJump()) && instance.CanHarpoonDash()) { SetTriggerStateLeft(PlayerState.Hook); } } }
DuelsenseBridge.dll
Decompiled 3 months agousing System.Diagnostics; using System.Net; using System.Net.Sockets; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using System.Runtime.Versioning; using System.Text; using DSX_UDP_Example; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)] [assembly: AssemblyTitle("DuelsenseBridge")] [assembly: AssemblyDescription("")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] [assembly: AssemblyProduct("DuelsenseBridge")] [assembly: AssemblyCopyright("Copyright © 2026")] [assembly: AssemblyTrademark("")] [assembly: ComVisible(false)] [assembly: Guid("9116e3b0-4a1e-4e6a-bddc-b5ba8e8e05f4")] [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 DualSenseBridge; public static class Bridge { private static UdpClient client; private static IPEndPoint endpoint; private static int controllerIndex; public static void Init() { client = new UdpClient(); endpoint = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 6969); } public static void RightTrigger(TriggerMode mode, int startPosition, int strength) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) SendTrigger((Trigger)2, mode, startPosition, strength); } public static void LeftTrigger(TriggerMode mode, int startPosition, int strength) { //IL_0002: Unknown result type (might be due to invalid IL or missing references) SendTrigger((Trigger)1, mode, startPosition, strength); } public static void ResetLeftTrigger() { SendTrigger((Trigger)1, (TriggerMode)20, 0, 0); } public static void ResetRightTrigger() { SendTrigger((Trigger)2, (TriggerMode)20, 0, 0); } private static void SendTrigger(Trigger trigger, TriggerMode mode, int startPosition, int strength) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Expected O, but got Unknown //IL_0012: Unknown result type (might be due to invalid IL or missing references) //IL_001b: Unknown result type (might be due to invalid IL or missing references) //IL_0037: Unknown result type (might be due to invalid IL or missing references) //IL_0040: 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_006e: Unknown result type (might be due to invalid IL or missing references) Packet val = new Packet(); val.instructions = (Instruction[])(object)new Instruction[1] { new Instruction { type = (InstructionType)1, parameters = new object[5] { controllerIndex, trigger, mode, Clamp(startPosition, 1, 9), Clamp(strength, 0, 8) } } }; Packet packet = val; Send(packet); } public static void SendSlope(Trigger trigger, TriggerMode mode, int startPosition, int endPosition, int startResist, int endResist) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Expected O, but got Unknown //IL_0012: Unknown result type (might be due to invalid IL or missing references) //IL_001b: Unknown result type (might be due to invalid IL or missing references) //IL_0037: Unknown result type (might be due to invalid IL or missing references) //IL_0040: Unknown result type (might be due to invalid IL or missing references) //IL_0090: Unknown result type (might be due to invalid IL or missing references) //IL_0091: Unknown result type (might be due to invalid IL or missing references) Packet val = new Packet(); val.instructions = (Instruction[])(object)new Instruction[1] { new Instruction { type = (InstructionType)1, parameters = new object[7] { controllerIndex, trigger, mode, Clamp(startPosition, 1, 9), Clamp(endPosition, 2, 9), Clamp(startResist, 1, 8), Clamp(endResist, 1, 8) } } }; Packet packet = val; Send(packet); } public static void SendGallop(Trigger trigger, TriggerMode mode, int startPosition, int endPosition, int firstFoot, int secondFoot, int freq) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Expected O, but got Unknown //IL_0012: Unknown result type (might be due to invalid IL or missing references) //IL_001b: Unknown result type (might be due to invalid IL or missing references) //IL_0037: Unknown result type (might be due to invalid IL or missing references) //IL_0040: Unknown result type (might be due to invalid IL or missing references) //IL_00a1: Unknown result type (might be due to invalid IL or missing references) //IL_00a2: Unknown result type (might be due to invalid IL or missing references) Packet val = new Packet(); val.instructions = (Instruction[])(object)new Instruction[1] { new Instruction { type = (InstructionType)1, parameters = new object[8] { controllerIndex, trigger, mode, Clamp(startPosition, 1, 8), Clamp(endPosition, 2, 9), Clamp(firstFoot, 1, 6), Clamp(secondFoot, 2, 7), Clamp(freq, 1, 40) } } }; Packet packet = val; Send(packet); } public static void SendBow(Trigger trigger, TriggerMode mode, int startPosition, int endPosition, int resistStrength, int snapForce) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Expected O, but got Unknown //IL_0012: Unknown result type (might be due to invalid IL or missing references) //IL_001b: Unknown result type (might be due to invalid IL or missing references) //IL_0037: Unknown result type (might be due to invalid IL or missing references) //IL_0040: Unknown result type (might be due to invalid IL or missing references) //IL_008e: Unknown result type (might be due to invalid IL or missing references) //IL_008f: Unknown result type (might be due to invalid IL or missing references) Packet val = new Packet(); val.instructions = (Instruction[])(object)new Instruction[1] { new Instruction { type = (InstructionType)1, parameters = new object[7] { controllerIndex, trigger, mode, Clamp(startPosition, 1, 8), Clamp(endPosition, 2, 8), Clamp(resistStrength, 1, 8), Clamp(snapForce, 1, 8) } } }; Packet packet = val; Send(packet); } public static void SendVibration(Trigger trigger, TriggerMode mode, int startPosition, int amp, int freq) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0007: Expected O, but got Unknown //IL_0012: Unknown result type (might be due to invalid IL or missing references) //IL_001b: Unknown result type (might be due to invalid IL or missing references) //IL_0037: Unknown result type (might be due to invalid IL or missing references) //IL_0040: Unknown result type (might be due to invalid IL or missing references) //IL_007f: Unknown result type (might be due to invalid IL or missing references) //IL_0080: Unknown result type (might be due to invalid IL or missing references) Packet val = new Packet(); val.instructions = (Instruction[])(object)new Instruction[1] { new Instruction { type = (InstructionType)1, parameters = new object[6] { controllerIndex, trigger, mode, Clamp(startPosition, 1, 9), Clamp(amp, 1, 8), Clamp(freq, 1, 40) } } }; Packet packet = val; Send(packet); } private static void Send(Packet packet) { if (client == null || endpoint == null) { return; } try { string s = Triggers.PacketToJson(packet); byte[] bytes = Encoding.UTF8.GetBytes(s); client.Send(bytes, bytes.Length, endpoint); } catch { } } private static int Clamp(int value, int min, int max) { if (value < min) { return min; } if (value > max) { return max; } return value; } }
Resources.dll
Decompiled 3 months agousing System; using System.Collections.Generic; using System.Diagnostics; using System.Net; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using System.Runtime.Versioning; using Newtonsoft.Json; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)] [assembly: AssemblyTitle("Resources")] [assembly: AssemblyDescription("")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] [assembly: AssemblyProduct("Resources")] [assembly: AssemblyCopyright("Copyright © 2026")] [assembly: AssemblyTrademark("")] [assembly: ComVisible(false)] [assembly: Guid("e3924842-97aa-4bd6-ab6d-c312f8957396")] [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 DSX_UDP_Example; internal class Resources { } public static class Triggers { public static IPAddress localhost = new IPAddress(new byte[4] { 127, 0, 0, 1 }); public static string PacketToJson(Packet packet) { //IL_000c: Expected O, but got Unknown try { return JsonConvert.SerializeObject((object)packet); } catch (JsonException val) { JsonException val2 = val; Console.WriteLine("Serialization error: " + ((Exception)(object)val2).Message); return string.Empty; } } public static Packet JsonToPacket(string json) { return JsonConvert.DeserializeObject<Packet>(json); } } public struct Instruction { public InstructionType type; public object[] parameters; } public class Packet { public Instruction[] instructions; } public class ServerResponse { public string Status; public string TimeReceived; public bool isControllerConnected; public int BatteryLevel; public List<Device> Devices; } public class Device { public int Index; public string MacAddress; public DeviceType DeviceType; public ConnectionType ConnectionType; public int BatteryLevel; public bool IsSupportAT; public bool IsSupportLightBar; public bool IsSupportPlayerLED; public bool IsSupportMicLED; } public enum TriggerMode { Normal, GameCube, VerySoft, Soft, Hard, VeryHard, Hardest, Rigid, VibrateTrigger, Choppy, Medium, VibrateTriggerPulse, CustomTriggerValue, Resistance, Bow, Galloping, SemiAutomaticGun, AutomaticGun, Machine, VIBRATE_TRIGGER_10Hz, OFF, FEEDBACK, WEAPON, VIBRATION, SLOPE_FEEDBACK, MULTIPLE_POSITION_FEEDBACK, MULTIPLE_POSITION_VIBRATION } public enum CustomTriggerValueMode { OFF, Rigid, RigidA, RigidB, RigidAB, Pulse, PulseA, PulseB, PulseAB, VibrateResistance, VibrateResistanceA, VibrateResistanceB, VibrateResistanceAB, VibratePulse, VibratePulseA, VibratePulsB, VibratePulseAB } public enum PlayerLEDNewRevision { One, Two, Three, Four, Five, AllOff } public enum MicLEDMode { On, Pulse, Off } public enum Trigger { Invalid, Left, Right } public enum InstructionType { GetDSXStatus, TriggerUpdate, RGBUpdate, PlayerLED, TriggerThreshold, MicLED, PlayerLEDNewRevision, ResetToUserSettings } public enum ConnectionType { USB, BLUETOOTH, DONGLE } public enum DeviceType { DUALSENSE, DUALSENSE_EDGE, DUALSHOCK_V1, DUALSHOCK_V2, DUALSHOCK_DONGLE, PS_VR2_LeftController, PS_VR2_RightController, ACCESS_CONTROLLER }