Give local plugins access to API that is locked to the command bar

As a Roblox developer, it is currently massively inconvenient that there is some functionality that cannot be used by plugins that would be useful. Things like Script::GetHash and DebuggerManager’s functionality are locked to only be usable by the command bar, which impedes their use. My assumption is that these things are locked to the Command Bar because they pose a risk to people if general plugins were allowed to access them. Whatever the reason, the end result is that these API members are of little use.

My proposed solution to this would be to allow local plugins (those stored in %localappdata%/Roblox/Plugins) access to LocalUserSecurity locked API members. This is a more permanent solution to these issues than unlocking individual members of the API to plugins, and poses less of a risk because local plugins have to be manually installed.

If this were done, Roblox Studio breakpoints could be integrated with Visual Studio Code (as @Kampfkarren wanted to do here) or other editors. Plugins could also be made to validate individual script sources via GetHash; or read if HttpEnabled was on (or even set it, to streamline other plugins needing access to it); along with anything else people wanted to do.

Needless to say, having this sort of freedom would improve the flow of development for plugins and let people do more with plugins. I specifically wanted to sync breakpoints from an outside editor (similiar to Kampfkarren, I do the majority of my work outside of Roblox Studio because it lets me have version control), and ran into an issue where I couldn’t do that automatically. I could run a plugin from command bar (or via Run Script, which can access the same things), but that would have to be repeated every time I launched a new game, which is just tedious.

Given this is technically already possible (although tedious) to do with Run Script, I feel like this would be a great alternative to allowing all plugins access to DebuggerManager, since Kampf’s feature request has seen no staff response.

8 Likes