Simple Rank Transfer System

Introduction

Hey there! Have you switched your old group with a new group and you don’t want to rank everyone from the old group to new group? Well, this is a solution for you!

Part 1 (Backend Setup)

You can setup your backend either on Glitch or replit.
I’ll be showing you how to setup both in the tutorial.

Glitch

  • Remix this project
  • Go to src/data/keys.json
    image
  • Edit “key” to your key; random keys - CodeIgniter Encryption Keys
  • Edit “cookie” to your cookie; _ROBLOSECURITY
  • Edit “group” to your group ID; https://roblox.com/groups/GROUPID
    Your edited file should look like this;
    image

Replit

Part 2 (Configuration)

Open ROBLOX Studio to the desired game for this ranking system.

Go into game settings, and make sure HTTPS requests are enabled or else this will not work.

In ServerStorage, insert a ModuleScript. Name this script ‘Configuration’.

Open this script, and delete its contents so that is blank.

In ServerScriptService, insert a Script. Name this script ‘Server’.
Under ‘Server’, create a ModuleScript and name it ‘API’ and delete any code inside it.

In ReplicatedStorage, insert a RemoteEvent and name it ‘ChangeRank’

Inside Configuration, paste the following code;

'Configuration' Code
local Configuration = {
	
	["Settings"] = {
		["OldGroup"] = 000000;
		["NewGroup"] = 000000;
		["Server"] = "string";
		["Key"] = "string";
	}
	
}

return Configuration

Inside Server, paste the following code;

'Server' Code
local API = require(script:WaitForChild("API"))
local Configuration = game:GetService("ServerStorage"):WaitForChild("Configuration")
local OldGroup = Configuration.Settings.OldGroup
local NewGroup = Configuration.Settings.NewGroup

game.ReplicatedStorage.ChangeRank.OnServerEvent:Connect(function(Player, Rank)
	if (not Rank) then
		Player:Kick("\nRemote Tampering")
	elseif (Rank < 255 and typeof(Rank) == 'number') then
		if Player:GetRankInGroup(OldGroup) == Rank then
			API.setRank(NewGroup, Player.UserId, Rank)
		else
			Player:Kick("\nRanks don't match.\nIf you think this is a mistake contact a High Rank in the group.")
		end
 	end
end)

Edit ‘Configuration’ and set OldGroup to your old group ID and NewGroup to your new group ID, change Server to your server URL (i.e https://this-is-your-site-name.glitch.me/ or https://this-is-your-site-name.yourname.repl.co/ )

Extra Sources

If you found this helpful or useful by any meaning, leave a like!
Tell me if you would use this or not!

2 Likes

Your code has vulnerabillity, so I can just fire Remote with any rank id, and get this rank in group, you need to implement more checks

Thanks! I’ve implemented a simple check to check their rank in the old group before ranking them. :slight_smile:

1 Like

This tutorial is now DEPRACTED due to Roblox API changes