/// <summary>
 /// Defines the configuration items to create.
 /// </summary>
 /// <param name="configFolder">Folder storing the configuration.</param>
 public virtual IUpdatableConfigurable[] MakeConfigurations(string configFolder)
 {
     // You can add any Configurable here.
     return(new IUpdatableConfigurable[]
     {
         Configurable <Config> .FromFile(Path.Combine(configFolder, "Config.json"), "Default Config")
     });
 }
        private IUpdatableConfigurable[] MakeConfigurations()
        {
            _configurations = new IUpdatableConfigurable[]
            {
                // Add more configurations here if needed.
                Configurable <Config> .FromFile(Path.Combine(ModFolder, "Controller-0.json"), "Controller Port 0"),
                Configurable <Config> .FromFile(Path.Combine(ModFolder, "Controller-1.json"), "Controller Port 1"),
                Configurable <Config> .FromFile(Path.Combine(ModFolder, "Controller-2.json"), "Controller Port 2"),
                Configurable <Config> .FromFile(Path.Combine(ModFolder, "Controller-3.json"), "Controller Port 3")
            };

            // Add self-updating to configurations.
            for (int x = 0; x < Configurations.Length; x++)
            {
                var xCopy = x;
                Configurations[x].ConfigurationUpdated += configurable =>
                {
                    Configurations[xCopy] = configurable;
                };
            }

            return(_configurations);
        }