What is this service used for?

Hello scripters!

I have been going over services and checking them out for a while now but there is one service that I just couldn’t understand it’s use, it goes by the name of “PermissionsService” I need someone to explain to me what this service does please so me and other people know what it’s about.

Because this service isn’t mentioned literally anywhere I couldn’t find it on youtube, google and I couldn’t even find anything about it in the devforum and if you try to mention it in ROBLOX Studio with a colon or a dot to see what it does it won’t bring up anything new, I’m seriously extremely confused as to what this service does exactly.

you can check it’s Roblox API Reference here but it’s empty it doesn’t have any explanation as to what this service does: PermissionsService

It doesn’t really look like it does anything, because it has no special properties, functions, or events.

So why do we have it in ROBLOX Studio if it’s completely useless?

That makes no sense to me, maybe it has some kind of use that we don’t know about?

That’s why I decided to ask here in the devforum, hopefully a ROBLOX Staff or someone very experienced explain to us what this service does.

You can’t use it so there is no reason for their to be documentation for it. It requires CoreScript access to use its members such as :SetPermissions.

Now in my opinion PermissionsService’s looks like its meant for the upcoming HTTP permissions.

Where the Roblox CoreScripts can toggle the permission of a specific plugin to send HTTP requests.

2 Likes

That looks interesting maybe that’s what it’s used for but we still can’t know for sure.

It would be awesome if a ROBLOX Staff or someone who works at ROBLOX tell us what this service is exactly used for thought.

That’s what it’s used for. It’s used for Roblox Scripts.

1 Like

That’s probably what it’s used for but like I said it would be awesome if we all can get confirmation from ROBLOX Staff or people who work at ROBLOX about this, it’s almost like if they are hiding this service from us for some reason by giving us absolutely no information about this service.

I think you’re being unreasonably speculative about this. You can infer just from the name what it’s for, staff don’t have to respond.

There are many pages (services, objects, methods and more) which are missing documentation, have vague documentation or intentionally have none. You don’t need to know about a service you can’t use in the first place. There are many topics actually relevant to us that IX can write about with input - see the Developer Hub category here for more information.

Some Roblox CoreScripts operate within the game environment as well and use internal services to run or store relevant engine code. PermissionsService is one of them.

There are many other examples of internal services with likewise little to no documentation and cannot be used by developers: CorePackages, FlyweightService, Visit, so on.

5 Likes

Why doesn’t it say that we can’t use PermissionsService on the ROBLOX API Reference website like it does with FlyweightService thought?
DeveloperThing

As you can see it says “Internal service with no functionality available to developers.” for the FlyweightService now my question is why doesn’t it say the same for PermissionsService?

They didn’t say that it was an “Internal service with no functionality available to developers.” so I think that means that we can use in some way or it won’t make sense this way.

There is often oversights with documentation. This is one of them. I would not assume that the permissions service does have a use for developers. Otherwise all of its members would be documented

1 Like

The page simply exists to note that it’s there in the engine at all. I wouldn’t be surprised if their creation was automated either, though don’t quote me on that. Pages are seeing more automation now with the Developer Hub: in 2014, the Wiki still existed, meaning maintaining pages was mostly manual.

Some of these services are old so it could just simply be that they created the page but didn’t leave a note in that it’s internal. PermissionsService was only added as of build 420, February 19th of this year. FlyweightService was added in build 162, August 6th of 2014.

You likely won’t ever have a need to use PermissionsService because all the developer-facing interactions with it will be from modals (for example, plugin permissions that are rolling out). Not intuitive to handle permissions from a service and integration in your own systems, no, just write your own system if you need permission-locked features in your game.

2 Likes

The announcement he linked to is from the Roblox staff. It is the official release announcement from two weeks ago. The service is new, which is why documentation may be missing.

1 Like

Correct. I was the one who documented this page back when I was an editor on the Roblox wiki.

Many low-priority APIs like this one have been left untended to, hence why this description lingers to this day. If it were introduced in say, 2018, then it would probably have no documentation at all.

At the time I set a milestone goal to have everything on the wiki documented in some shape or form, even if it’s to sway interest away from pages like these due to their internal backend nature.

Sometimes Roblox introduces C++ only services like these because they need threaded access to the DataModel to do something. It’s all very fuzzy and complicated, I don’t remember many of the details at this point, but I know the DataModel can be a hassle to interact with outside the context of an Instance.

7 Likes

As to the question of what this specific service does, I believe it’s related to granting permissions to plugins to do things like HttpService requests, with prompted permissions from the user. It’s used by Roblox’s built-in Plugin Management plugin.

Here’s a full list of files that reference it in my Client Tracker:

Here’s a dump of the API for this class:

Class PermissionsService : Instance [NotCreatable] [Service]
		Function Array PermissionsService:GetPermissions(string assetId) {RobloxScriptSecurity}
		Function void PermissionsService:SetPermissions(string assetId, Array permissions) {RobloxScriptSecurity}
5 Likes