Some services are by default not named their service name, but instead are kept to the default name of “Instance”, and for all services that this affects, it has been the case since their inception. This means developers have to use game:GetService("ServiceName")
instead of game.ServiceName
in order to get the service, and that may conflict with their usual programming patterns.
For a quick example, type this into your command bar:
print(game:GetService("UserInputService").Name)
You will see “Instance”, instead of the expected “UserInputService”.
Running this in the command line will show you all the services that have this bug (that the command line has the appropriate security context to use):
local function test(service)
if service.Name == "Instance" then
print(service.ClassName)
end
end
for _,service in pairs(game:GetChildren()) do
pcall(test, service)
end
KeyframeSequenceProvider
TimerService
UserInputService
KeyboardService
MouseService
ScriptService
LuaWebService
RuntimeScriptService
ControllerService
While most of these are internal, it’s still unexpected behavior.