diff --git a/Plugins/Plugin.cs b/Plugins/Plugin.cs
index 401eede0..2fb711ab 100644
--- a/Plugins/Plugin.cs
+++ b/Plugins/Plugin.cs
@@ -27,13 +27,13 @@ public bool CanRun{
 
         public bool HasConfig{
             get{
-                return ConfigFile.Length > 0 && GetFullPathIfSafe(PluginFolder.Root, ConfigFile).Length > 0;
+                return ConfigFile.Length > 0 && GetFullPathIfSafe(PluginFolder.Data, ConfigFile).Length > 0;
             }
         }
 
         public string ConfigPath{
             get{
-                return HasConfig ? Path.Combine(GetPluginFolder(PluginFolder.Root), ConfigFile) : string.Empty;
+                return HasConfig ? Path.Combine(GetPluginFolder(PluginFolder.Data), ConfigFile) : string.Empty;
             }
         }
 
@@ -82,6 +82,7 @@ private void OnMetadataLoaded(){
 
             if (configPath.Length > 0 && defaultConfigPath.Length > 0 && !File.Exists(configPath) && File.Exists(defaultConfigPath)){
                 try{
+                    Directory.CreateDirectory(GetPluginFolder(PluginFolder.Data));
                     File.Copy(defaultConfigPath, configPath, false);
                 }catch(Exception e){
                     Program.Reporter.HandleException("Plugin Loading Error", "Could not generate a configuration file for '"+identifier+"' plugin.", true, e);
diff --git a/Resources/Scripts/plugins.js b/Resources/Scripts/plugins.js
index 7266fbab..38103d61 100644
--- a/Resources/Scripts/plugins.js
+++ b/Resources/Scripts/plugins.js
@@ -8,8 +8,8 @@
 
     $TDP.checkFileExists(token, fileNameUser).then(exists => {
       var fileName = exists ? fileNameUser : fileNameDefault;
-
-      $TDP.readFile(token, fileName, true).then(contents => {
+      
+      (exists ? $TDP.readFile(token, fileName, true) : $TDP.readFileRoot(token, fileName)).then(contents => {
         var obj;
 
         try{