Client Debugging: AMA!

Summary

With the introduction of Accurate Play Solo, we have two data models while running Play Solo: a Server and a Client.

Until now, the debugger could only attach to the server data model while emulating.

As of today, you can instead attach the debugger to the Client data model.

Go to File -> Setttings -> Studio -> Advanced, you will see a dropdown called “Attach Debugger To”. Select “Client”, close the settings dialog, and restart Studio.

Now the debugger will attach to the Client instead of the Server.

We are currently working on a solution where we have two simultaneous debuggers, one for Client and one for Server. But we decided to release this as an interim solution.

Flavor Text

Hey, it’s my first AMA! I am so excited to talk with our fans about the Client Debugger! At last you can debug your Client-side code in Accurate Play Solo! How cool is that!?!? Let’s get to your questions!

Q: “Why can’t I debug on both Server and Client at the same time? Why should I have to choose one or the other?” - GroovyTimesClamBake

Great question! Our debugger code was kind of beast to tame, and it made sense to do an either/or solution as a stepping stone towards the optimal solution, simultaneous Client/Server debugging. We hope to have that to you soon!

Q: “Um, what did I say that sounded like “tell me how hard your job is”? Cry me a river, man. Just get cracking and make things work like they should!!” - GroovyTimesClamBake

OK, wow, kinda rude… Next question?

Q: “Why are you acting like this is a big deal? Aren’t you just un-breaking something you broke when you released Accurate Play Solo?” - MissThang123

Um…

Q: “Also, who really uses the debugger anyway? Aren’t the usage numbers for debugger like abysmally low?” - MissThang123

Well, sure, they aren’t as high as they could be! That’s why I’ve been spending so much time trying to get the debugger whipped into shape so it will be a real asset to our develo…

Q: “They have a point, babe. Why spend so much time on a feature that isn’t that popular? It kind of reminds me of when you’re trying to fix the garbage disposal and I need you walk the dog: you seem to have focus issues.” - MrsCycloneUprising

Linda? Is that you? What are you doing here?

Q: “Do you have any good chicken recipes?” - HungryBoi2012

What does that have to do with Client Debugger?

Q: “You said it’s “Ask Me Anything”…” - HungryBoi2012

OK fine. Mix 2 tsp chili powder; 1/2 tsp each coriander, black pepper, and cumin; 1/4 tsp cinnamon; 1.5 tsp salt; 3 Tbs olive oil to make a paste. Pat on boneless skinless chicken thighs. Bake at 350 for ~45 min.

AMA IS OVER!! :weary::sob::scream:

120 Likes

This sounds good, thanks for the update!

Why can’t the announcements category just redirect to your posts?

9 Likes

Oh sweet flavored text. How I’ve missed you so.

Also very happy to have debugging back for client issues

11 Likes

Is this enabled now? I was not able to break a LocalScript in APS added to StarterPlayer/StarterPlayerScripts with the default source, print(“Hello world”).

Edit: Nevermind, I was not aware the default setting for the debugger was set to Server and needed to restart studio as you mentioned. Disregard me.

Leaving this here for emphasis that the debugger is only attached to Server by default

1 Like

wish more announcements were like this, anyways thanks for the update!

Someone needs to test out that chicken recipe; I would but I’d freeze to death in the polar vortex driving to the grocery store. :chicken:

10/10 AMA

1 Like

If the debugger is being worked on right now, can Let plugins access DebuggerManager be looked at or have some status given to it?

6 Likes

This AMA was humorous and informative. Thank you!

4 Likes

Glad to see progress is being made on the debugger.

1 Like

Thank you!!! :heart: I wasted so much time printing stuff to output & serializing data to inspect it in order to deal with a lack of a client-side debugger

Great update! This solves one of the biggest annoyances with APS

375gigs of olive oil? Something sounds fishy here, that’s way too much!

Great update and awesome flavor text as well. =)

2 Likes

Oh my God, I entered the DevForum to see how I could debug client scripts and was about to make a topic about it… Turns out it didn’t exist!

Thanks for the update!

Being a software dev outside of roblox, I use debuggers and unit testing paradigms constantly, and Im glad more focus has been put on improving these tools.

Currently my gripe really is just how laggy the debugger becomes if my game’s engine is slightly complex. I remember having the debugger freeze my playtest for about 30 seconds trying to reach a simple print statement breakpoint.

Thanks again for trying to improve this feature, and hopefully unit testing is also coming soon!

You can make client debugging recipes

and chicken recipes?

Man, you are too great!! :pray:

3 Likes

Make flavoured text a mandatory part of all announcements

  • Yes
  • Yes but on a different line

0 voters


This is great. I always wondered why I couldn’t debug client scripts. Must have missed the memo :smile:

1 Like

I will definitely try the chicken recipe :yum:, but first thanks for this update , you made our lives easier!

5 Likes

Thank you! This is a huge step forward for studio. I’m one of those last few stragglers who has yet to switch over to APS because of breakpoints. If client+server breakpoints were available in a single studio session, I would move over immediately

But wait, its not over yet! You didn’t answer my question!!1!

Why is the enum for Studio.Attach Debugger To named DEPRECATED_DebuggerDataModelPreference thonk??

If an Enum is supposed to be deprecated, you can mark it as such in ReflectionMetadata.xml, but I’m not sure why it’d be deprecated in the first place?

5 Likes

Thanks a lot for this - I use the debugger a ton, and it’s a great tool. I even filed a Feature Request about this. This will really improve my workflow.

I really hope that the crashes get fixed though, it’s hard to reproduce but the debugger crashes Studio quite often. That would also be a major improvement.