I want to write a rank script in my game to have special locations and I also want it to function as a whitelist system.
I’m getting kicked from the game but I’m sure I’ve correctly set up everything.
My ‘RankDB’:
{
[3522406346] = 3
}
My code so far:
local Players = game:GetService("Players")
local DataStoreService = game:GetService("DataStoreService")
local Database = DataStoreService:GetDataStore("General")
local RankDB = Database:GetAsync("RankData")
local ConnectionData = {}
local GUI = script.HeadGUI
local RankData = {
[3] = {
Name = "Admin",
Color = Color3.new(1, 0.203922, 0.243137)
},
[2] = {
Name = "Sınıf Başkanı",
Color = Color3.new(0.831373, 1, 0.215686)
},
[1] = {
Name = "Müdür",
Color = Color3.new(0.729412, 0.0980392, 1)
},
[0] = {
Name = "Öğrenci",
Color = Color3.new(0, 0.6, 1)
}
}
Players.PlayerAdded:Connect(function(player)
local TempRankData = RankDB[player.UserId]
for _, v in pairs(RankDB) do
print(v)
end
if not TempRankData then player:Kick("Gökyüzü kolejinde kayıtlı değilsin") end
if not RankData[TempRankData] then player:Kick("Geçerli bir role sahip değilsin.") end
ConnectionData[player] = player.CharacterAdded:Connect(function(character)
print("char added")
local HeadGUI = GUI:Clone()
HeadGUI.PlayerName.Text = player.DisplayName or ("@" .. player.Name)
HeadGUI.Description.Text = RankData[TempRankData]["Name"]
HeadGUI.Description.TextColor = RankData[TempRankData]["Color"]
HeadGUI.Adornee = character.Head
HeadGUI.Parent = character
end)
end)
Players.PlayerRemoving:Connect(function(player)
if not ConnectionData[player] then return end
ConnectionData[player]:Disconnect()
ConnectionData[player] = nil
end)
while wait(60) do
RankDB = Database:GetAsync("RankData")
end