Let plugins access DebuggerManager

As a Roblox developer, it is currently impossible to manipulate the debugger through a plugin.

I wanted to write a plugin to integrate Visual Studio Code breakpoints with Roblox Studio’s default debugger (I do all my scripting in VSC, and wanted to have my breakpoints localized there as well). Roblox has a fantastic API in the form of the ScriptDebugger and DebuggerManager APIs but the only way to get the DebuggerManager object is through a DebuggerManager() global. The command bar has access to this, but plugins do not, killing my entire idea.

I’d like for plugins to be able to access the DebuggerManager just like the command prompt.

19 Likes

If the command bar has access to this, I definitely think the plugin level should have this

4 Likes

As a temporary workaround, you might be able to develop this sort of plugin by sticking it in BuiltInPlugins, which has access to more features than normal plugins due to a higher security identity. You can use this until Roblox makes this feature accessible to normal plugins.

4 Likes

This doesn’t work sadly, BuiltInPlugins don’t have LocalUserSecurity access.

As another temporary workaround, setup bindables via command bar to interface with? Ugly and inefficient, but it should work until then

Not worth the effort at all, and I don’t think they’d even persist when clicking Play.

This PSA was posted, showing Roblox is actively working on the debugger: Client Debugging: AMA!

Any chance that plugins can access DebuggerManager?

Update: It seems that this is fixed, but I need to take a better look later.

It was not solved.

local DebuggerManager = DebuggerManager()

local debugger = DebuggerManager:AddDebugger(workspace.Script)

The second line errors with:

10:37:33.112 - The current identity (5) cannot Class security check (lacking permission 3)

1 Like

And it doesn’t work with BuiltInPlugin CoreScripts?

No.

Support.

This, along with being able to create a ScriptDebugger for a ModuleScript using AddDebugger would enable plugins to do some cool stuff like evaluate unit test coverage programatically.

3 Likes