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.

25 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.

4 Likes

This is still very much needed, if not more so with the increase in the number of developers who use VSCode / Rojo (or similar toolsets) for their Roblox development.

Having Plugins able to enhance the Debugger would really benefit the platform, both in terms of external tooling (imagine being able to set breakpoints in VSCode and it being instantly mirrored in Studio!) and also for people writing their own enhancements. A win win.

1 Like

Please reduce this object’s security level. The Command Bar hack I use is clunky when you add accurate play-solo in there since bindables don’t persist through DataModels

Having integration into the debugger would allow developers to write a Code extension that could sync breakpoints across two editors.

(cc. @Kampfkarren BuiltInPlugins have LocalUserSecurity now)

Bumping because this is needed still, even my funny way of getting into the command bar with plugins doesn’t work when the game is played because its a different state

Would like to have this supported