private void mButton2_Click(object sender, EventArgs e)
        {
            var tags = checkBox13.Checked ? new string[0] : GetTags();

            if (tags.Count() == 0 && !checkBox13.Checked)
            {
                GUI.MessageBox.Show("You should choose at least one tag!\n(or check the \"Upload without tags\" option)");
                return;
            }

            if (string.IsNullOrWhiteSpace(textBox1.Text))
            {
                GUI.MessageBox.Show("Please, enter the changelog!");
                return;
            }

            store.UploadUnCookedContent = checkBox1.Checked;
            store.UploadScripts         = checkBox2.Checked;
            store.Tags        = tags;
            store.Visibility  = comboBox3.SelectedIndex;
            store.Changelog   = textBox1.Text;
            store.ForceNoTags = checkBox13.Checked;
            store.SaveForMod(mod);

            Program.Uploader.UploadModAsync(mod, textBox1.Text, store.Tags, checkBox1.Checked, checkBox2.Checked, comboBox3.SelectedIndex, store.UseSeparateDescriptionForSteam ? store.GetDescription() : mod.GetDescription());
            this.Close();
        }
        public void SaveMod()
        {
            try
            {
                Mod.AssetReplacements = arList1.Collect();
                Mod.Name = modName.Text;
                Mod.SetDescription(ModDescriptionEdit.Text);
                Mod.ChapterInfoName = chapterInfoInput.Text;
                Mod.IsOnlineParty   = cbOnlineParty.Checked;
                Mod.Coop            = cbCoOp.Checked ? "CoopOnly" : "";
                Mod.Version         = label5.Text;
                Mod.Author          = lblAuthor.Text;
                if (Mod.GetDirectoryName() != modFolderName.Text)
                {
                    Mod.RenameDirectory(modFolderName.Text);
                }
                if (levelType.SelectedIndex >= 0 && levelType.SelectedIndex < Mod.AllowedMapTypes.Count())
                {
                    Mod.MapType = Mod.AllowedMapTypes[levelType.SelectedIndex];
                }
                else
                {
                    Mod.MapType = "";
                }

                if (_newIcon != null)
                {
                    var iconE   = _newIcon.Split('.');
                    var iconExt = iconE[iconE.Length - 1].ToLower();

                    var allowedExts = new[] { "png", "jpg", "jpeg" };
                    if (!allowedExts.Contains(iconExt))
                    {
                        throw new Exception("Illegal icon extension: " + iconExt);
                    }

                    var icon = Path.Combine(Mod.RootPath, "icon." + iconExt);

                    if (File.Exists(icon))
                    {
                        File.Delete(icon);
                    }
                    File.Copy(_newIcon, icon);
                    _newIcon = null;
                    Mod.Icon = "icon." + iconExt;
                }

                Mod.Save();

                Store.SetDescription(SteamDescription.Text);
                Store.UseSeparateDescriptionForSteam = checkBox1.Checked;
                Store.SaveForMod(Mod);

                HasUnsavedChanges = false;

                Reload();
            }
            catch (Exception e)
            {
                GUI.MessageBox.Show(this, e.Message + "\n\n" + e.ToString(), "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }