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 All Mythic v1.1.0
BepInEx/plugins/All_Mythic.dll
Decompiled a month agousing System; using System.Diagnostics; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.Versioning; using System.Security; using System.Security.Permissions; using BepInEx; using BepInEx.Configuration; using BepInEx.Logging; using HarmonyLib; using Microsoft.CodeAnalysis; using UnityEngine; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)] [assembly: IgnoresAccessChecksTo("Assembly-CSharp")] [assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")] [assembly: AssemblyCompany("All_Mythic")] [assembly: AssemblyConfiguration("Debug")] [assembly: AssemblyFileVersion("1.1.0.0")] [assembly: AssemblyInformationalVersion("1.1.0")] [assembly: AssemblyProduct("All_Mythic")] [assembly: AssemblyTitle("All Mythic")] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: AssemblyVersion("1.1.0.0")] [module: UnverifiableCode] [module: RefSafetyRules(11)] namespace Microsoft.CodeAnalysis { [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] internal sealed class EmbeddedAttribute : Attribute { } } namespace System.Runtime.CompilerServices { [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] [AttributeUsage(AttributeTargets.Class | AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Event | AttributeTargets.Parameter | AttributeTargets.ReturnValue | AttributeTargets.GenericParameter, AllowMultiple = false, Inherited = false)] internal sealed class NullableAttribute : Attribute { public readonly byte[] NullableFlags; public NullableAttribute(byte P_0) { NullableFlags = new byte[1] { P_0 }; } public NullableAttribute(byte[] P_0) { NullableFlags = P_0; } } [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] [AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Method | AttributeTargets.Interface | AttributeTargets.Delegate, AllowMultiple = false, Inherited = false)] internal sealed class NullableContextAttribute : Attribute { public readonly byte Flag; public NullableContextAttribute(byte P_0) { Flag = P_0; } } [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] [AttributeUsage(AttributeTargets.Module, AllowMultiple = false, Inherited = false)] internal sealed class RefSafetyRulesAttribute : Attribute { public readonly int Version; public RefSafetyRulesAttribute(int P_0) { Version = P_0; } } } namespace allmythic { [HarmonyPatch(typeof(Spawner), "GetObjectsToSpawn")] internal static class allMythic { public static float willItMythic; internal static void Prefix(Spawner __instance, int spawnCount, bool canRepeat = false) { //IL_0068: Unknown result type (might be due to invalid IL or missing references) //IL_003e: Unknown result type (might be due to invalid IL or missing references) if (!(Plugin.chanceOfMythicValue >= willItMythic)) { return; } if (__instance.isHeightBasedSpawnPool) { foreach (HeightBasedSpawnListEntry heightBasedSpawnPool in __instance.heightBasedSpawnPools) { heightBasedSpawnPool.spawnPool = (SpawnPool)131072; } return; } __instance.spawnPool = (SpawnPool)131072; } } [HarmonyPatch(typeof(Spawner), "GetSpawnSpots")] internal static class allMythic2ndFunc { internal static void Prefix(Spawner __instance) { //IL_003a: Unknown result type (might be due to invalid IL or missing references) allMythic.willItMythic = Random.Range(0f, 1f); if (Plugin.chanceOfMythicValue >= allMythic.willItMythic && Plugin.changeCountValue) { __instance.canRepeatSpawns = true; __instance.spawnPointMode = (SpawnPointMode)0; while (__instance.spawnSpots.Count > Plugin.changeCountToValue) { Transform item = __instance.spawnSpots[0]; __instance.spawnSpots.Remove(item); } while (__instance.spawnSpots.Count < Plugin.changeCountToValue) { Transform item2 = __instance.spawnSpots[Random.Range(0, __instance.spawnSpots.Count)]; __instance.spawnSpots.Add(item2); } } } } [BepInPlugin("helloitsmeallmythic", "all_mythic", "1.1.0")] public class Plugin : BaseUnityPlugin { public ConfigEntry<float> chanceOfMythic; public ConfigEntry<int> changeCountTo; public static float chanceOfMythicValue; public static int changeCountToValue; public static bool changeCountValue; public ConfigEntry<bool> changeCount; internal static ManualLogSource Log { get; private set; } private void Awake() { //IL_00b9: Unknown result type (might be due to invalid IL or missing references) //IL_00bf: Expected O, but got Unknown chanceOfMythic = ((BaseUnityPlugin)this).Config.Bind<float>("Chance", "Chance of mythic luggage", 0.02f, "This is the chance of a luggage to contain mythic items, keep the values inbetween 1 and 0, 1 is 100% and 0 is nearly 0%."); changeCount = ((BaseUnityPlugin)this).Config.Bind<bool>("Change", "Change item count when mythic", true, "This determines whether or not the count of items in a luggage will change when its mythic."); changeCountTo = ((BaseUnityPlugin)this).Config.Bind<int>("Count", "Count of mythic items", 1, "Because of the way peak is coded, i have to replace every item in a luggage with a mythic item, so im just giving the option to set the count to whatever you think is best."); Log = ((BaseUnityPlugin)this).Logger; changeCountValue = changeCount.Value; chanceOfMythicValue = chanceOfMythic.Value; changeCountToValue = changeCountTo.Value; Log.LogInfo((object)"Plugin All mythic is loaded!"); Harmony val = new Harmony("allmythic"); val.PatchAll(); } } } namespace System.Runtime.CompilerServices { [AttributeUsage(AttributeTargets.Assembly, AllowMultiple = true)] internal sealed class IgnoresAccessChecksToAttribute : Attribute { public IgnoresAccessChecksToAttribute(string assemblyName) { } } }