private static void Initialize() { CurrentGameAttribute = new MelonModGameAttribute(Imports.GetCompanyName(), Imports.GetProductName()); if (Imports.IsIl2CppGame()) { Directory.SetCurrentDirectory(AppDomain.CurrentDomain.BaseDirectory); IsVRChat = CurrentGameAttribute.IsGame("VRChat", "VRChat"); IsBoneworks = CurrentGameAttribute.IsGame("Stress Level Zero", "BONEWORKS"); } if (!Imports.IsDebugMode() #if !DEBUG && Environment.CommandLine.Contains("--melonloader.console") #endif ) { MelonModLogger.consoleEnabled = true; Console.Create(); } MelonModLogger.Log("------------------------------"); MelonModLogger.Log("Unity " + Imports.GetUnityVersion()); MelonModLogger.Log("Developer: " + CurrentGameAttribute.Developer); MelonModLogger.Log("GameName: " + CurrentGameAttribute.GameName); MelonModLogger.Log("------------------------------"); MelonModLogger.Log("Using v" + BuildInfo.Version + " Open-Beta"); MelonModLogger.Log("------------------------------"); if (Imports.IsIl2CppGame()) { MelonModLogger.Log("Initializing NET_SDK..."); NET_SDK.SDK.Initialize(); MelonModLogger.Log("------------------------------"); } bool no_mods = false; string modDirectory = Path.Combine(Environment.CurrentDirectory, "Mods"); if (!Directory.Exists(modDirectory)) { Directory.CreateDirectory(modDirectory); no_mods = true; } else { string[] files = Directory.GetFiles(modDirectory, "*.dll"); if (files.Length > 0) { foreach (string s in files) { if (!File.Exists(s) || !s.EndsWith(".dll", true, null)) { return; } try { byte[] data = File.ReadAllBytes(s); if (data.Length > 0) { Assembly a = Assembly.Load(data); if (a != null) { LoadModsFromAssembly(a); } else { MelonModLogger.LogError("Unable to load " + s); } } else { MelonModLogger.LogError("Unable to load " + s); } } catch (Exception e) { MelonModLogger.LogError("Unable to load " + s + ":\n" + e.ToString()); } MelonModLogger.Log("------------------------------"); } if (Mods.Count() <= 0) { no_mods = true; } } else { no_mods = true; } } if (no_mods) { MelonModLogger.Log("No Mods Loaded!"); MelonModLogger.Log("------------------------------"); } else { MelonModComponent.Create(); } }