Creating a saving rank system without datastore or https service?

Basically, I’ve been using HD admin in all my games for quite a while, but never really questioned how their ranks system worked, but recently they have done something I very much dont like, they have started to put in chat “Type /commands to view chat commands”, and when you do, it shows you a bunch of emotes and stuff but when you try one, it asks you to buy a gamepass to do it. I do not like this and wish to replace hd admin, but I dont want to use any alternatives, I know adonis is quite good but I have a private server admin system in my game which includes hd admin, and I do not know how to do that with adonis, nor wish to do that, because adonis has way too many op commands which can pose a safety risk (cheating in rocket parts, etc) to my game. my solution well, its to make my own admin! but how does hd admin and adonis achieve their saved ranks without datastore service or https service enabled? thats what I am wondering.

It could be because of the function

require(...)

but how would you use require to store admins, like how you could say “;permrank username admin” and then they are an admin in all servers forever? isnt require for loading models?

1 Like

The admin systems achieve their saved ranks by using datastore service. They don’t have some magic way to get around it.

If you want, I can try and help you modify HD Admin to remove the gamepass garbage?

1 Like

The answer is that they don’t. I recommend looking into Cmdr if you want the most control over your admin commands

you’re quite the ambitious thinker, i must say

as far as i am aware, doing this without datastores or https service is literally impossible

the rank needs to be STORED somewhere and then ACCESSED, and i don’t think you can shuffle data between servers actively like that

I will say it is impossible unless you are sure that there is a server active all the time keeping track of the rank . Lets say a new server is created , that server can ping another server to send the rank data over .

Huh, well I just looked at one of my old games and it doesnt have datastores enabled but hd admin has saved users…? does datastore service still work when the setting is disabled?


I am a bit confused, also, about your offer to help remove the gamepass garbage from hd admin, is that even allowed?

How were they set as admin? Was it via commands or an alternative mean (such as editing a setting)


Well the code that we’re removing is honestly malicious, so removing it is absolutely allowed!

well, at the time I made that old game I checked, I had little to no coding knowledge and in the settings of hd admin in the game I checked, theyre nowhere to be seen, so it was through the “;permrank [username] headadmin” chat command.

I am not sure of the inner workings, but it could be that they’re apart of a group

It’s definitely being done via a datastore. I’ve looked through the hellish landscape of the code (there’s way too much stuff lol), and identified a couple of places relevant to ranking the players, and can confirm that it is datastores, specifically one called “HDAdminPlayerData”, with the version added after:

The screenshot of the game settings you showed earlier has “Enable Studio Access to API Services” switched off. This has no impact on in game access to API services though.

it doesnt? so whats the purpose of the toggle then?

So that API services can’t be used in studio, I guess so you don’t accidently overwrite datastores and stuff in the main game that you didn’t mean to.

1 Like

I guess that makes sense, thats good to know. well what do you think would be a better idea, to create a new admin command thing, or to remove the chat popup code from hd admin to continue using it?

If you already have HD admin integrated, then you may as well stick with it and just remove the chat popup. If you were to start a new place, probably change.

Do you want me to try and guide you through the process of modifying the HD admin to remove this, or should I just do it myself and send you the updated file?

well I have SOME hd admin integration to my game but it could be easily removed and nothing would break, I dont have the main module in my game, just the loader with a modification and some changed settings, so a guide would probably be a bit better

all you need for that is a table

this is an example

local Players = game:GetService("Players")

local authorized = {
	["User..."] = "Owner", 
	["User...."] = "Admin",
	["User....."] = "Admin",
}


--later in code

if authorized[player.Name] then
	if authorized[player.Name] == "Owner" then
		-- owner code
	elseif authorized[player.Name] == "Admin" then
		 -- admin code
	end
end