public static bool CreateMainPanelOverride(object __instance) { try { var panelType = KlyteUtils.RunPrivateMethod <Type>(__instance, "GetDefaultClassForMainPanel"); var textureAtlas = KlyteUtils.RunPrivateMethod <UITextureAtlas>(__instance, "GetTextureAtlasForIcon"); var iconName = KlyteUtils.RunPrivateMethod <string>(__instance, "GetIconName"); var tabWidth = KlyteUtils.RunPrivateMethod <int>(__instance, "GetTabWidth"); var tooltipText = KlyteUtils.RunPrivateMethod <string>(__instance, "GetTooltipText"); var enumValue = (ModTab)Enum.Parse(typeof(ModTab), KlyteUtils.RunPrivateMethod <string>(__instance, "GetEnumName")); KlyteModsPanel.instance.AddTab(enumValue, panelType, textureAtlas, iconName, tooltipText, (x, y) => { if (y) { KlyteUtils.ExecuteReflectionMethod(__instance, "ShowVersionInfoPopup"); } }, tabWidth); return(false); } catch (Exception e) { KlyteUtils.doErrorLog($"{e.GetType()} detouring {__instance}: {e.Message}\n{e.StackTrace}"); } return(true); }