public static void Save()
        {
            if (BackupOptions != null && BackupOptions.Enabled &&
                DateTime.Now - BackupOptions.LastBackup >= TimeSpan.FromDays(BackupOptions.Days))
            {
                BackupProfiles();
            }

            JObject json = new JObject
            {
                { "LanguageOverride", LanguageOverride.ToString() },
                { "LastProfile", LastProfile },
                { "UpdateGumpVersion", UpdateGumpVersion?.ToString() ?? "0.0.0.0" },
                { "SavePasswords", SavePasswords },
                { "SavePasswordsOnlyBlank", SavePasswordsOnlyBlank },
                { "UserId", UserId },
                { "UseCUOClilocLanguage", UseCUOClilocLanguage },
#if !DEVELOP
                { "WindowWidth", WindowWidth },
                { "WindowHeight", WindowHeight },
#endif
            };

            BackupOptions?.Serialize(json);

            JArray linkedProfilesArray = new JArray();

            foreach (JObject linkedObj in _linkedProfiles.Select(profile =>
                                                                 new JObject {
                { "Serial", profile.Key }, { "Profile", profile.Value }
            }))
            {
                linkedProfilesArray.Add(linkedObj);
            }

            json.Add("Profiles", linkedProfilesArray);

            JArray savedPasswordsArray = new JArray();

            foreach (KeyValuePair <string, string> kvp in SavedPasswords)
            {
                savedPasswordsArray.Add(new JObject
                {
                    { "Username", kvp.Key }, { "Password", Crypter.Encrypt(kvp.Value) }
                });
            }

            json.Add("SavedPasswords", savedPasswordsArray);

            JArray assembliesArray = new JArray();

            foreach (string assembly in Assemblies ?? new string[0])
            {
                assembliesArray.Add(assembly);
            }

            json.Add("Assemblies", assembliesArray);

            File.WriteAllText(Path.Combine(Engine.StartupPath ?? Environment.CurrentDirectory, "Assistant.json"),
                              json.ToString(Formatting.Indented));
        }