As a Roblox developer, detecting a Team Test server is impossible if your game uses reserved servers. Currently, the only method to identify a server as a team test is the following:
local isTeamTest = (#game.PrivateServerId > 0 and game.PrivateServerOwnerId == 0)
This works, but it also flags reserved servers (which the game I’m working on depends on), so it cannot be used in my use case.
Additionally, RunService:IsStudio() does not support team test servers and will return false.
If Roblox can address this issue, it would improve my development experience because my team
and I could utilise team test servers to move faster when developing. Right now, we have to test in live game servers, which slows down our iteration speed.
The game I’m working on depends on validating and using JoinData when a player teleports to a reserved server. That JoinData is unavailable in studio (team test or otherwise), so I mock it when IsStudio returns true. The closest workaround for this is hardcoding place IDs to identify testing servers, which is sloppy and prone to error (we often have multiple copies of the game to work off of).
I also ran into this issue on the team test servers. Why not implement custom logic to determine “isStudio” and “isReserved”? If I have correctly understood what you are trying to achieve… For example, something like this:
local isTeamTest = #game.PrivateServerId > 0 and game.PrivateServerOwnerId == 0
local isStudio = game:GetService('RunService'):IsStudio() or isTeamTest
local isReserved = game.PrivateServerId ~= '' and game.PrivateServerOwnerId == 0 and not isStudio