void ReadPreferences()
        {
            _overrideCustomSabers   = Config.GetBool("Core", "OverrideCustomSabers", true, true);
            useArrowColorsForSabers = Config.GetBool("Core", "useArrowColorsForSabers", false, true);
            allowEnvironmentColors  = Config.GetBool("Core", "allowEnvironmentColors", true, true);
            disablePlugin           = Config.GetBool("Core", "disablePlugin", false, true) || ctInstalled;
            if (disablePlugin)
            {
                queuedDisable = true;
            }

            if (queuedDisable)
            {
                ColorLeft = new Color(
                    1f,
                    4f / 255f,
                    4f / 255f
                    );
                ColorRight = new Color(
                    0,
                    192f / 255f,
                    1f
                    );
                ColorLeftLight       = new Color(1, 4 / 255f, 4 / 255f);
                ColorRightLight      = new Color(0, 192 / 255f, 1);
                wallColorPreset      = 0;
                wallFrameColorPreset = 0;
            }

            if (disablePlugin == false)
            {
                leftColorPreset      = Config.GetInt("Presets", "leftNoteColorPreset", 0, true);
                rightColorPreset     = Config.GetInt("Presets", "rightNoteColorPreset", 0, true);
                wallColorPreset      = Config.GetInt("Presets", "wallColorPreset", 0, true);
                wallFrameColorPreset = Config.GetInt("Presets", "wallFrameColorPreset", 0, true);
                leftLightPreset      = Config.GetInt("Presets", "leftLightPreset", 1, true);
                rightLightPreset     = Config.GetInt("Presets", "rightLightPreset", 2, true);
                bombColorPreset      = Config.GetInt("Presets", "bombColorPreset", 0, true);

                leftArrowPreset      = Config.GetInt("Presets", "leftArrowPreset", 0, true);
                rightArrowPreset     = Config.GetInt("Presets", "rightArrowPreset", 0, true);
                leftArrowGlowPreset  = Config.GetInt("Presets", "leftArrowGlowPreset", 0, true);
                rightArrowGlowPreset = Config.GetInt("Presets", "rightArrowGlowPreset", 0, true);
                dotArrowFix          = Config.GetBool("Core", "dotArrowFix", false, true);
                disableArrowChanges  = Config.GetBool("Core", "disableArrowChanges", false, true);

                brightness  = Config.GetFloat("Core", "Brightness", 1, true);
                rainbowWall = Config.GetBool("Presets", "rainbowWalls", false, true);
                //Make sure preset exists, else default to user
                if (leftColorPreset > ColorsUI.ColorPresets.Count)
                {
                    leftColorPreset = 0;
                }
                if (rightColorPreset > ColorsUI.ColorPresets.Count)
                {
                    rightColorPreset = 0;
                }
                if (leftLightPreset > ColorsUI.OtherPresets.Count)
                {
                    leftLightPreset = 0;
                }
                if (rightLightPreset > ColorsUI.OtherPresets.Count)
                {
                    rightLightPreset = 0;
                }
                if (wallColorPreset > ColorsUI.OtherPresets.Count)
                {
                    wallColorPreset = 0;
                }
                if (wallFrameColorPreset > ColorsUI.OtherPresets.Count)
                {
                    wallFrameColorPreset = 0;
                }
                if (leftArrowGlowPreset > ColorsUI.OtherPresets.Count)
                {
                    leftArrowGlowPreset = 0;
                }
                if (rightArrowGlowPreset > ColorsUI.OtherPresets.Count)
                {
                    rightArrowGlowPreset = 0;
                }
                if (rightArrowPreset > ColorsUI.OtherPresets.Count)
                {
                    rightArrowPreset = 0;
                }
                if (leftArrowPreset > ColorsUI.OtherPresets.Count)
                {
                    leftArrowPreset = 0;
                }
                if (bombColorPreset > ColorsUI.OtherPresets.Count)
                {
                    bombColorPreset = 0;
                }
                //If preset is user get config values for colors, otherwise use preset
                LeftUserColor = new Color(
                    Config.GetFloat("User Preset Colors", "Left User Preset R", 255, true) / 255f,
                    Config.GetFloat("User Preset Colors", "Left User Preset G", 4, true) / 255f,
                    Config.GetFloat("User Preset Colors", "Left User Preset B", 4, true) / 255f
                    );
                RightUserColor = new Color(
                    Config.GetFloat("User Preset Colors", "Right User Preset R", 0, true) / 255f,
                    Config.GetFloat("User Preset Colors", "Right User Preset G", 192, true) / 255f,
                    Config.GetFloat("User Preset Colors", "Right User Preset B", 255, true) / 255f
                    );
                if (leftColorPreset == 0)
                {
                    ColorLeft = LeftUserColor;
                }
                else
                {
                    ColorLeft = ColorsUI.ColorPresets[leftColorPreset].Item1;
                }

                if (rightColorPreset == 0)
                {
                    ColorRight = RightUserColor;
                }
                else
                {
                    ColorRight = ColorsUI.ColorPresets[rightColorPreset].Item1;
                }

                //Set Light colors
                switch (leftLightPreset)
                {
                case 0:
                    ColorLeftLight = new Color(1, 4 / 255f, 4 / 255f);
                    break;

                case 1:
                    ColorLeftLight = ColorLeft;
                    if (leftColorPreset != 1 && leftColorPreset != 2)
                    {
                        ColorLeftLight *= .8f;
                    }
                    break;

                case 2:
                    ColorLeftLight = ColorRight;
                    if (rightColorPreset != 1 && rightColorPreset != 2)
                    {
                        ColorLeftLight *= .8f;
                    }
                    break;

                case 3:
                    ColorLeftLight  = LeftUserColor;
                    ColorLeftLight *= .8f;
                    break;

                case 4:
                    ColorLeftLight  = RightUserColor;
                    ColorLeftLight *= .8f;
                    break;

                default:
                    ColorLeftLight  = ColorsUI.OtherPresets[leftLightPreset].Item1;
                    ColorLeftLight *= .8f;
                    break;
                }
                switch (rightLightPreset)
                {
                case 0:
                    ColorRightLight = new Color(0, 192 / 255f, 1);
                    break;

                case 1:
                    ColorRightLight = ColorLeft;
                    if (leftColorPreset != 1 && leftColorPreset != 2)
                    {
                        ColorRightLight *= .8f;
                    }
                    break;

                case 2:
                    ColorRightLight = ColorRight;
                    if (rightColorPreset != 1 && rightColorPreset != 2)
                    {
                        ColorRightLight *= .8f;
                    }
                    break;

                case 3:
                    ColorRightLight  = LeftUserColor;
                    ColorRightLight *= .8f;
                    break;

                case 4:
                    ColorRightLight  = RightUserColor;
                    ColorRightLight *= .8f;
                    break;

                default:
                    ColorRightLight  = ColorsUI.OtherPresets[rightLightPreset].Item1;
                    ColorRightLight *= .8f;
                    break;
                }
                switch (bombColorPreset)
                {
                case 0:
                    bombColor = new Color(0, 0, 0);
                    break;

                case 1:
                    bombColor = ColorLeft;
                    break;

                case 2:
                    bombColor = ColorRight;
                    break;

                case 3:
                    bombColor = LeftUserColor;
                    break;

                case 4:
                    bombColor = RightUserColor;
                    break;

                default:
                    bombColor = ColorsUI.OtherPresets[bombColorPreset].Item1;
                    break;
                }

                SetArrowColors();

                ColorLeftLight  *= brightness;
                ColorRightLight *= brightness;
            }
            CCSettingsChanged?.Invoke();
        }
        void ReadPreferences()
        {
            _overrideCustomSabers  = ModPrefs.GetBool(Name, "OverrideCustomSabers", true, true);
            allowEnvironmentColors = ModPrefs.GetBool(Plugin.Name, "allowEnvironmentColors", true, true);
            if (disablePlugin == false)
            {
                disablePlugin = ModPrefs.GetBool(Name, "disablePlugin", false, true);
                if (disablePlugin)
                {
                    queuedDisable = true;
                }
            }

            if (queuedDisable)
            {
                ColorLeft = new Color(
                    ModPrefs.GetInt(Name, "LeftRed", 255, true) / 255f,
                    ModPrefs.GetInt(Name, "LeftGreen", 4, true) / 255f,
                    ModPrefs.GetInt(Name, "LeftBlue", 4, true) / 255f
                    );
                ColorRight = new Color(
                    ModPrefs.GetInt(Name, "RightRed", 0, true) / 255f,
                    ModPrefs.GetInt(Name, "RightGreen", 192, true) / 255f,
                    ModPrefs.GetInt(Name, "RightBlue", 255, true) / 255f
                    );
                ColorLeftLight  = new Color(1, 4 / 255f, 4 / 255f);
                ColorRightLight = new Color(0, 192 / 255f, 1);
                wallColorPreset = 0;
            }

            if (disablePlugin == false)
            {
                userIncrement    = ModPrefs.GetInt(Name, "userIncrement", 10, true);
                leftColorPreset  = ModPrefs.GetInt(Name, "leftColorPreset", 0, true);
                rightColorPreset = ModPrefs.GetInt(Name, "rightColorPreset", 0, true);
                wallColorPreset  = ModPrefs.GetInt(Name, "wallColorPreset", 0, true);
                leftLightPreset  = ModPrefs.GetInt(Name, "leftLightPreset", 1, true);
                rightLightPreset = ModPrefs.GetInt(Name, "rightLightPreset", 2, true);

                brightness  = ModPrefs.GetFloat(Name, "Brightness", 1, true);
                rainbowWall = ModPrefs.GetBool(Name, "rainbowWalls", false, true);
                //Make sure preset exists, else default to user
                if (leftColorPreset > ColorsUI.ColorPresets.Count)
                {
                    leftColorPreset = 0;
                }
                if (rightColorPreset > ColorsUI.ColorPresets.Count)
                {
                    rightColorPreset = 0;
                }
                if (leftLightPreset > ColorsUI.OtherPresets.Count)
                {
                    leftLightPreset = 0;
                }
                if (rightLightPreset > ColorsUI.OtherPresets.Count)
                {
                    rightLightPreset = 0;
                }
                if (wallColorPreset > ColorsUI.OtherPresets.Count)
                {
                    wallColorPreset = 0;
                }

                //If preset is user get modprefs for colors, otherwise use preset
                if (leftColorPreset == 0)
                {
                    ColorLeft = new Color(
                        ModPrefs.GetInt(Name, "LeftRed", 255, true) / 255f,
                        ModPrefs.GetInt(Name, "LeftGreen", 4, true) / 255f,
                        ModPrefs.GetInt(Name, "LeftBlue", 4, true) / 255f
                        );
                }
                else
                {
                    ColorLeft = ColorsUI.ColorPresets[leftColorPreset].Item1;
                }

                if (rightColorPreset == 0)
                {
                    ColorRight = new Color(
                        ModPrefs.GetInt(Name, "RightRed", 0, true) / 255f,
                        ModPrefs.GetInt(Name, "RightGreen", 192, true) / 255f,
                        ModPrefs.GetInt(Name, "RightBlue", 255, true) / 255f
                        );
                }
                else
                {
                    ColorRight = ColorsUI.ColorPresets[rightColorPreset].Item1;
                }

                //Set Light colors
                switch (leftLightPreset)
                {
                case 0:
                    ColorLeftLight = new Color(1, 4 / 255f, 4 / 255f);
                    break;

                case 1:
                    ColorLeftLight = ColorLeft;
                    if (leftColorPreset != 1 && leftColorPreset != 2)
                    {
                        ColorLeftLight *= .8f;
                    }
                    break;

                case 2:
                    ColorLeftLight = ColorRight;
                    if (rightColorPreset != 1 && rightColorPreset != 2)
                    {
                        ColorLeftLight *= .8f;
                    }
                    break;

                case 3:
                    ColorLeftLight = new Color(
                        ModPrefs.GetInt(Name, "LeftRed", 255, true) / 255f,
                        ModPrefs.GetInt(Name, "LeftGreen", 4, true) / 255f,
                        ModPrefs.GetInt(Name, "LeftBlue", 4, true) / 255f
                        );
                    ColorLeftLight *= .8f;
                    break;

                case 4:
                    ColorLeftLight = new Color(
                        ModPrefs.GetInt(Name, "RightRed", 0, true) / 255f,
                        ModPrefs.GetInt(Name, "RightGreen", 192, true) / 255f,
                        ModPrefs.GetInt(Name, "RightBlue", 255, true) / 255f
                        );
                    ColorLeftLight *= .8f;
                    break;

                default:
                    ColorLeftLight  = ColorsUI.OtherPresets[leftLightPreset].Item1;
                    ColorLeftLight *= .8f;
                    break;
                }
                switch (rightLightPreset)
                {
                case 0:
                    ColorRightLight = new Color(0, 192 / 255f, 1);
                    break;

                case 1:
                    ColorRightLight = ColorLeft;
                    if (leftColorPreset != 1 && leftColorPreset != 2)
                    {
                        ColorRightLight *= .8f;
                    }
                    break;

                case 2:
                    ColorRightLight = ColorRight;
                    if (rightColorPreset != 1 && rightColorPreset != 2)
                    {
                        ColorRightLight *= .8f;
                    }
                    break;

                case 3:
                    ColorRightLight = new Color(
                        ModPrefs.GetInt(Name, "LeftRed", 255, true) / 255f,
                        ModPrefs.GetInt(Name, "LeftGreen", 4, true) / 255f,
                        ModPrefs.GetInt(Name, "LeftBlue", 4, true) / 255f
                        );
                    ColorRightLight *= .8f;
                    break;

                case 4:
                    ColorRightLight = new Color(
                        ModPrefs.GetInt(Name, "RightRed", 0, true) / 255f,
                        ModPrefs.GetInt(Name, "RightGreen", 192, true) / 255f,
                        ModPrefs.GetInt(Name, "RightBlue", 255, true) / 255f
                        );
                    ColorRightLight *= .8f;
                    break;

                default:
                    ColorRightLight  = ColorsUI.OtherPresets[rightLightPreset].Item1;
                    ColorRightLight *= .8f;
                    break;
                }
                ColorLeftLight  *= brightness;
                ColorRightLight *= brightness;
                GetWallColor();
            }
            CCSettingsChanged?.Invoke();
        }