All local plugins and built-ins use the same settings.json file, allowing for conflicts

Currently, when you save a local plugin that uses plugin:Set/GetSetting, it is saved to a specific settings.json file located at/Roblox/{UserId}/InstalledPlugins/0/settings.json. The problem with this is when we have two local plugins which use the same key, basically resulting in conflicts

Using some of the settings, lets use “ViewSelector_Active”, image in this case, which is used by the View Selector built-in, I could write a plugin that also uses the same key, however this would interfere with the view selector built-in, as both plugins use the same settings.json file.

If I made a local plugin that did this, you’d notice it’s interfering with the view selector, making it reappear every single time I start studio

plugin:SetSetting("ViewSelector_Active", true)

Therefore, even if I did have the view selector hidden (which I usually do), because I wrote a plugin to override it’s value in settings, it now appears even though I haven’t told it to
image

Basic Reproduction:

  1. Hide the view selector
  2. Sideload this Lua Script as a plugin
plugin:SetSetting("ViewSelector_Active", true)
  1. Restart Studio and open a file.
  2. The View Selector has been reopened even though you didn’t tell it to.
My settings.json file, might be irrelevant but it's here just incase
{ 
    "SnapToKeys":false, // ?
    "ShowAsSeconds":true, // AnimationEditor ?
    "Toolbox_SelectedSortIndex":1,  // Toolbox
    "Toolbox_SelectedCategoryIndex":1, // Toolbox
    "ecb-OutputColors":"{\"Unknown\":null,\"MessageWarning\":null,\"MessageOutput\":null,\"MessageInfo\":null,\"MessageError\":null}", // Custom Local Plugin
    "Toolbox_SelectedSearchTerm":"", // Toolbox
    "Toolbox_SelectedBackgroundIndex":2, // Toolbox
    "Toolbox_SelectTab":"Marketplace", // Toolbox
    "ViewSelector_Active":false, // ViewSelector
    "ToolboxAnalytics_Inserts":16 // Toolbox
}
5 Likes