void GameEvents_FirstUpdateTick(object sender, System.EventArgs e)
        {
            Settings = Helper.ModRegistry.GetApi <IConfigMenu>("Juice805.StardewConfigMenu");
            Package  = new TabbedOptionsPackage(this);
            var config = Helper.ReadConfig <ModConfig>();

            GenerateOptions(Package, config);
            Settings.AddOptionsPackage(Package);
        }
        private void GenerateOptions(TabbedOptionsPackage options, ModConfig config)
        {
            var firstTab = new OptionsTab("main", "Main");

            options.Tabs.Add(firstTab);

            var enableDrop = new ConfigToggle("enableDrop", "Enable Dropdown", config.enableDropdown);

            firstTab.Options.Add(enableDrop);

            var choices = new List <ISelectionChoice> {
                new SelectionChoice("none", "None"),
                new SelectionChoice("5", "Checkbox 5", "Hover text for Checkbox 5"),
                new SelectionChoice("6", "Checkbox 6", "Hover text for Checkbox 6"),
                new SelectionChoice("7", "Checkbox 7", "Hover text for Checkbox 7")
            };

            var dropdown = new ConfigSelection("drop", "Disable Another Option", choices, config.dropdownChoice, config.enableDropdown);

            dropdown.SelectionDidChange += Dropdown_SelectionDidChange;;
            firstTab.Options.Add(dropdown);

            enableDrop.StateDidChange += (toggle) => {
                dropdown.Enabled = toggle.IsOn;
            };

            var checkbox2 = new ConfigToggle("toggle2", "Add checkbox 9", config.checkbox2);

            firstTab.Options.Add(checkbox2);
            checkbox2.StateDidChange += AddDynamicOption;

            firstTab.Options.Add(new ConfigToggle("toggle3", "Checkbox 3", false));

            var slider = new ConfigRange("range", "Slider", 10, 25, 1, config.rangeValue, true);

            var stepper = new ConfigStepper("stepper", "Plus/Minus Controls", (decimal)5.0, (decimal)105.0, (decimal)1.5, config.stepperValue, RangeDisplayType.PERCENT);

            firstTab.Options.Add(slider);
            firstTab.Options.Add(stepper);

            firstTab.Options.Add(new ConfigToggle("stepperCheck", "Show Stepper Value", false));

            firstTab.Options.Add(new ConfigToggle("toggle5", "Checkbox 5"));
            firstTab.Options.Add(new ConfigToggle("toggle6", "Checkbox 6"));
            firstTab.Options.Add(new ConfigToggle("toggle7", "Checkbox 7"));
            firstTab.Options.Add(new ConfigToggle("toggle8", "Checkbox 8"));

            var saveButton = new ConfigAction("okButton", "OK Button", ButtonType.OK);

            firstTab.Options.Add(saveButton);

            saveButton.ActionWasTriggered += SaveButton_ActionWasTriggered;

            GraphicsEvents.OnPostRenderEvent += (sender, e) => {
                if (firstTab.GetOption <IConfigToggle>("toggle3").IsOn)
                {
                    Game1.spriteBatch.DrawString(Game1.dialogueFont, "Cool!", new Vector2(Game1.getMouseX(), Game1.getMouseY()), Color.Black);
                }

                if (firstTab.GetOption <IConfigToggle>("stepperCheck").IsOn)
                {
                    Game1.spriteBatch.DrawString(Game1.dialogueFont, stepper.Value.ToString(), new Vector2(Game1.getMouseX(), Game1.getMouseY() + 12 * Game1.pixelZoom), Color.Black);
                }
            };

            var secondTab = new OptionsTab("second", "Second");

            secondTab.Options.Add(new ConfigHeader("secondTabHeader", "Second Tab!"));
            options.Tabs.Add(secondTab);
        }