As a Roblox developer, it is currently impossible to monitor or view servers that are in progress from a studio side of things without something along the lines of Online Studio, which is heavily outdated and doesn’t allow you to see outputs and scripts.
Currently in Studio, you can go to the Test section, and hit “Local Server” followed by an amount of players you want to test with and then hit the play button.
v
After doing so your monitors will look something like this:
So as you can see, on my two side monitors are the testing “player” views, and in the middle has something titled “Server”. Within the server window I’m able to view and execute scripts, view the game in action with live players, edit player’s statistics, and find problems within the game you’re unable to in normal play mode.
My proposition is to add this “Server” option to all live servers and not just studio LAN test servers.
For example if a player finds a major bug in my game, I’d have to join their game, find the player, and then attempt to understand what the bug is; I can instead find their server and edit it to both view the issue, and find a possible solution (for this server only) and then go to the main studio file and solve the problem for all the updated servers.
This could prove useful to fix player’s stats that were wiped after a datastore error or something along those lines.
Example of how you could access this feature
Why?
Bugs can be very hard to reproduce in a mockup environment such as studio, but then sometimes end up appearing in live servers are essentially impossible to debug without jumping through a lot of hurdles. The developer console only provides error logs for scripts that are actively running (and those that are archived are only logged if they error on the client side of the game); it really does not suffice for bug fixing.
For example:
Explorer
If there’s a memory leak in a certain game, it could potentially be caused by instances building up. In studio it would be easy to look at the explorer and see multiple instances that shouldn’t be running at the time. This information is not available within a server, so identifying the cause of the memory leak is much harder to identify. There may also be an edge case that can’t be reproduced in studio, yet in game something is set as a parent to the wrong instance and triggers an attempt to index nil value error. There’s no way to determine whether that object is bring destroyed, parented incorrectly, or any other issues without having direct access to view the explorer.
Properties
If an object is behaving oddly in game, it could be the result of a property being set to the wrong value. Occasionally these can be caught in studio, but if it’s an edge case, happens after a long period of time, or only occurs with a real player playing the game, it would be extremely difficult to track down with the developer console as there’s limited abilities within it. To use the console to find an issue like this you would be required to manually print every property for each and every object that could possibly be the problem; clearly this would be a problem if you’re skeptical if there’s a lot of objects in your studio file. The properties window would allow you to instantly see the object’s current state.
Script Performance
In studio, you’re able to view which scripts are using a lot of resources. If an in game issue is encountered that is impossible to reproduce in studio, it wouldn’t be possible to figure out which scripts are causing the problem. This wouldn’t be a problem if you could view the script performance tab.
Output
If an error is found in game, the developer would have to manually type each character of the error if they require assistance finding out what the problem is, whereas if the output window was accessible they could just copy it. The output also allows for you to jump to which line in a script is causing the error, whereas without it you would have to navigate to it in a separate studio instance if you’re debugging errors displayed in the developer console
Script Analysis
If you’d like to find general errors in a live version of your game, you would be quite out of luck doing so without access to the script analysis tab. You would be able to quickly identify errors and find other warnings within scripts that could potentially lead to other problems if not fixed.