public static void OnGUI(UnityModManager.ModEntry modEntry)
        {
            try
            {
                if (!enabled)
                {
                    return;
                }
                Asd();
                ///Main.logger.Log(classes.Count.ToString());

                /*foreach(CharInfo s in classes)
                 * {
                 *  Main.logger.Log(s.Name + s.GUID);
                 * }*/

                if (Game.Instance.Player.PartyCharacters != null)
                {
                    foreach (UnitEntityData unitEntityData in Game.Instance.Player.PartyCharacters)
                    {
                        Settings.CharacterSettings characterSettings = settings.GetCharacterSettings(unitEntityData);
                        if (characterSettings == null)
                        {
                            characterSettings = new CharacterSettings();
                            characterSettings.characterName = unitEntityData.CharacterName;
                            var chinf = new CharInfo();
                            chinf.Name = "Default";
                            chinf.GUID = unitEntityData.Descriptor.Progression.GetEquipmentClass().AssetGuid;
                            characterSettings.classOutfit = chinf;
                            settings.AddCharacterSettings(unitEntityData, characterSettings);
                        }
                        GUILayout.Space(4f);
                        GUILayout.BeginHorizontal();
                        GUILayout.Label(string.Format("{0}", unitEntityData.CharacterName), "box", GUILayout.Width(DefaultLabelWidth));
                        characterSettings.showClassSelection = GUILayout.Toggle(characterSettings.showClassSelection, "Select Outfit", GUILayout.ExpandWidth(false));
                        if (unitEntityData.Descriptor.Doll != null)
                        {
                            characterSettings.showDollSelection = GUILayout.Toggle(characterSettings.showDollSelection, "Select Doll", GUILayout.ExpandWidth(false));
                        }
                        else
                        {
                            characterSettings.showDollSelection = GUILayout.Toggle(characterSettings.showDollSelection, "Select Doll", GUILayout.ExpandWidth(false));
                        }
                        characterSettings.showEquipmentSelection = GUILayout.Toggle(characterSettings.showEquipmentSelection, "Select Equipment", GUILayout.ExpandWidth(false));
                        characterSettings.showOverrideSelection  = GUILayout.Toggle(characterSettings.showOverrideSelection, "Select Overrides", GUILayout.ExpandWidth(false));
                        ///characterSettings.ReloadStuff = GUILayout.Toggle(characterSettings.ReloadStuff, "Reload", GUILayout.ExpandWidth(false));
#if (DEBUG)
                        characterSettings.showInfo = GUILayout.Toggle(characterSettings.showInfo, "Show Info", GUILayout.ExpandWidth(false));
#endif
                        GUILayout.EndHorizontal();

                        /* if (characterSettings.ReloadStuff == true)
                         * {
                         *   CharacterManager.UpdateModel(unitEntityData.View);
                         * }*/
                        if (characterSettings.showClassSelection)
                        {
                            ChooseClassOutfit(characterSettings, unitEntityData);
                            GUILayout.Space(5f);
                        }
                        if (unitEntityData.Descriptor.Doll != null && characterSettings.showDollSelection)
                        {
                            ChooseDoll(unitEntityData);
                            GUILayout.Space(5f);
                        }
                        if (unitEntityData.Descriptor.Doll == null && characterSettings.showDollSelection)
                        {
                            ChooseCompanionColor(characterSettings, unitEntityData);
                            GUILayout.Space(5f);
                        }
                        if (characterSettings.showEquipmentSelection)
                        {
                            ChooseEquipment(unitEntityData, characterSettings);
                            GUILayout.Space(5f);
                        }
                        if (characterSettings.showOverrideSelection)
                        {
                            ChooseEquipmentOverride(unitEntityData, characterSettings);
                            GUILayout.Space(5f);
                        }
#if (DEBUG)
                        if (characterSettings.showInfo)
                        {
                            InfoManager.ShowInfo(unitEntityData);
                            GUILayout.Space(5f);
                        }
#endif
                    }
                }
            }
            catch (Exception e)
            {
                Log(e.ToString() + " " + e.StackTrace);
            }
        }
        static void OnGUI(UnityModManager.ModEntry modEntry)
        {
            try
            {
                if (!enabled)
                {
                    return;
                }
                if (Game.Instance.Player.ControllableCharacters == null)
                {
                    return;
                }
                foreach (UnitEntityData unitEntityData in Game.Instance.Player.ControllableCharacters)
                {
                    Settings.CharacterSettings characterSettings = settings.GetCharacterSettings(unitEntityData);
                    if (characterSettings == null)
                    {
                        characterSettings = new CharacterSettings();
                        characterSettings.characterName = unitEntityData.CharacterName;
                        settings.AddCharacterSettings(unitEntityData, characterSettings);
                    }
                    if (unitEntityData.Descriptor.IsPet)
                    {
                        GUILayout.BeginHorizontal();
                        GUILayout.Label(string.Format("{0}", unitEntityData.CharacterName), "box", GUILayout.Width(DefaultLabelWidth));
                        characterSettings.showOverrideSelection = GUILayout.Toggle(characterSettings.showOverrideSelection, "Show Override Selection", GUILayout.ExpandWidth(false));
                        GUILayout.EndHorizontal();
                        if (characterSettings.showOverrideSelection)
                        {
                            ChooseEquipmentOverride(unitEntityData, characterSettings);
                        }
                        continue;
                    }
                    GUILayout.BeginHorizontal();
                    GUILayout.Label(string.Format("{0}", unitEntityData.CharacterName), "box", GUILayout.Width(DefaultLabelWidth));
                    characterSettings.showClassSelection = GUILayout.Toggle(characterSettings.showClassSelection, "Select Outfit", GUILayout.ExpandWidth(false));
                    if (unitEntityData.Descriptor.Doll != null)
                    {
                        characterSettings.showDollSelection = GUILayout.Toggle(characterSettings.showDollSelection, "Select Doll", GUILayout.ExpandWidth(false));
                    }
                    else
                    {
                        characterSettings.showDollSelection = GUILayout.Toggle(characterSettings.showDollSelection, "Select Doll", GUILayout.ExpandWidth(false));
                    }
                    characterSettings.showEquipmentSelection = GUILayout.Toggle(characterSettings.showEquipmentSelection, "Select Equipment", GUILayout.ExpandWidth(false));
                    characterSettings.showOverrideSelection  = GUILayout.Toggle(characterSettings.showOverrideSelection, "Select Overrides", GUILayout.ExpandWidth(false));
#if (DEBUG)
                    characterSettings.showInfo = GUILayout.Toggle(characterSettings.showInfo, "Show Info", GUILayout.ExpandWidth(false));
#endif
                    GUILayout.EndHorizontal();
                    if (characterSettings.showClassSelection)
                    {
                        ChooseClassOutfit(characterSettings, unitEntityData);
                    }
                    if (unitEntityData.Descriptor.Doll != null && characterSettings.showDollSelection)
                    {
                        ChooseDoll(unitEntityData);
                    }
                    if (unitEntityData.Descriptor.Doll == null && characterSettings.showDollSelection)
                    {
                        ChooseCompanionColor(characterSettings, unitEntityData);
                    }
                    if (characterSettings.showEquipmentSelection)
                    {
                        ChooseEquipment(unitEntityData, characterSettings);
                    }
                    if (characterSettings.showOverrideSelection)
                    {
                        ChooseEquipmentOverride(unitEntityData, characterSettings);
                    }
#if (DEBUG)
                    if (characterSettings.showInfo)
                    {
                        InfoManager.ShowInfo(unitEntityData);
                    }
#endif
                }
                settings.rebuildCharacters = GUILayout.Toggle(settings.rebuildCharacters, "Rebuild character model on loadscreen (Fix visual gitches)");
            }
            catch (Exception e)
            {
                DebugLog(e.ToString() + " " + e.StackTrace);
            }
        }