Hi! I have a script that calculates how close you are until you can rank up, but I do not like how many decimals there are.
This is the picture, I want to be like 0.4%
Code:
local groupid = 7048567 -- Change this to your group ID, your group ID can be found by going to the group and copying the numbers after "https://www.roblox.com/My/Groups.aspx?gid=".
game.Players.PlayerAdded:connect(onPlayerRespawned)
function onPlayerRespawned(newPlayer)
wait(1)
if newPlayer then
local gui=Instance.new("BillboardGui")
gui.Parent=newPlayer.Character.Head
gui.Adornee=newPlayer.Character.Head
gui.Size=UDim2.new(4,0,2,0)
gui.StudsOffset=Vector3.new(0,3,0)
local texta=Instance.new("TextBox")
texta.Size=UDim2.new(1,0,1,0)
texta.BackgroundTransparency = 1
texta.Font = Enum.Font.Legacy
texta.TextScaled = true -- Set this to false if you want your tags to look like this http://prntscr.com/hrsqxw. It is highly recommended you change this to false if you have large group names.
texta.Text = (newPlayer.Name .. " - " .. newPlayer:GetRoleInGroup(7048567)) .. "(loading%)" -- This is the format of what your tags will look like. This format currently will show "PLAYERNAME - GROUP RANK".
texta.TextColor3 = Color3.new(255,0,0) -- When someone who is not in a group joins, this is the colour tag they will have.
texta.Parent=gui
if newPlayer:IsInGroup(4589206) then
texta.TextColor3 = Color3.new(255,0,0) -- If a user IS in a group, this is the colour name tag that they will have.
end
while wait(0.5) do
if newPlayer:GetRankInGroup(groupid) == 3 then
texta.Text = (newPlayer.Name.. " - ".. newPlayer:GetRoleInGroup(7048567) .. "("..30*100/newPlayer.leaderstats.XP.Value.."%)")
if newPlayer.leaderstats.XP.Value >= 30*100 then
texta.Text = (newPlayer.Name.." - ".. newPlayer:GetRoleInGroup(groupid) .. "(100% ELIGIBLE TO RANK UP!)")
end
elseif newPlayer:GetRankInGroup(groupid) == 4 then
texta.Text = (newPlayer.Name.." - ".. newPlayer:GetRoleInGroup(groupid) .. "("..80*100/newPlayer.leaderstats.XP.Value.."%)")
if newPlayer.leaderstats.XP.Value >= 80*100 then
texta.Text = (newPlayer.Name.." - ".. newPlayer:GetRoleInGroup(groupid) .. "(100% ELIGIBLE TO RANK UP!)")
end
elseif newPlayer:GetRankInGroup(groupid) == 5 then
texta.Text = (newPlayer.Name.." - ".. newPlayer:GetRoleInGroup(groupid) .. "("..140*100/newPlayer.leaderstats.XP.Value.."%)")
if newPlayer.leaderstats.XP.Value >= 140*100 then
texta.Text = (newPlayer.Name.." - ".. newPlayer:GetRoleInGroup(groupid) .. "(100% ELIGIBLE TO RANK UP!)")
end
elseif newPlayer:GetRankInGroup(groupid) == 7 then
texta.Text = (newPlayer.Name.." - ".. newPlayer:GetRoleInGroup(groupid) .. "("..200*100/newPlayer.leaderstats.XP.Value.."%)")
if newPlayer.leaderstats.XP.Value >= 200*100 then
texta.Text = (newPlayer.Name.." - ".. newPlayer:GetRoleInGroup(groupid) .. "(100% ELIGIBLE TO RANK UP!)")
end
elseif newPlayer:GetRankInGroup(groupid) == 8 then
texta.Text = (newPlayer.Name.." - ".. newPlayer:GetRoleInGroup(groupid) .. "("..300*100/newPlayer.leaderstats.XP.Value.."%)")
if newPlayer.leaderstats.XP.Value >= 300*100 then
texta.Text = (newPlayer.Name.." - ".. newPlayer:GetRoleInGroup(groupid) .. "(100% ELIGIBLE TO RANK UP!)")
end
elseif newPlayer:GetRankInGroup(groupid) == 9 then
texta.Text = (newPlayer.Name.." - ".. newPlayer:GetRoleInGroup(groupid) .. "("..410*100/newPlayer.leaderstats.XP.Value.."%)")
if newPlayer.leaderstats.XP.Value >= 410*100 then
texta.Text = (newPlayer.Name.." - ".. newPlayer:GetRoleInGroup(groupid) .. "(100% ELIGIBLE TO RANK UP!)")
end
elseif newPlayer:GetRankInGroup(groupid) == 10 then
texta.Text = (newPlayer.Name.." - ".. newPlayer:GetRoleInGroup(groupid) .. "("..520*100/newPlayer.leaderstats.XP.Value.."%)")
if newPlayer.leaderstats.XP.Value >= 520*100 then
texta.Text = (newPlayer.Name.." - ".. newPlayer:GetRoleInGroup(groupid) .. "(100% ELIGIBLE TO RANK UP!)")
end
elseif newPlayer:GetRankInGroup(groupid) == 11 then
texta.Text = (newPlayer.Name.." - ".. newPlayer:GetRoleInGroup(groupid) .. "("..650*100/newPlayer.leaderstats.XP.Value.."%)")
if newPlayer.leaderstats.XP.Value >= 650*100 then
texta.Text = (newPlayer.Name.." - ".. newPlayer:GetRoleInGroup(groupid) .. "(100% ELIGIBLE TO RANK UP!)")
end
elseif newPlayer:GetRankInGroup(groupid) == 12 then
texta.Text = (newPlayer.Name.." - ".. newPlayer:GetRoleInGroup(groupid) .. "("..800*100/newPlayer.leaderstats.XP.Value.."%)")
if newPlayer.leaderstats.XP.Value >= 800*100 then
texta.Text = (newPlayer.Name.." - ".. newPlayer:GetRoleInGroup(groupid) .. "(100% ELIGIBLE TO RANK UP!)")
end
elseif newPlayer:GetRankInGroup(groupid) == 13 then
texta.Text = (newPlayer.Name.." - ".. newPlayer:GetRoleInGroup(groupid) .. "("..1000*100/newPlayer.leaderstats.XP.Value.."%)")
if newPlayer.leaderstats.XP.Value >= 1000*100 then
texta.Text = (newPlayer.Name.." - ".. newPlayer:GetRoleInGroup(groupid) .. "(100% ELIGIBLE TO RANK UP!)")
end
elseif newPlayer:GetRankInGroup(groupid) == 14 then
texta.Text = (newPlayer.Name.." - ".. newPlayer:GetRoleInGroup(groupid) .. "("..1300*100/newPlayer.leaderstats.XP.Value.."%)")
if newPlayer.leaderstats.XP.Value >= 1300*100 then
texta.Text = (newPlayer.Name.." - ".. newPlayer:GetRoleInGroup(groupid) .. "(100% ELIGIBLE TO RANK UP!)")
end
elseif newPlayer:GetRankInGroup(groupid) == 255 then
texta.Text = (newPlayer.Name.." - ".. newPlayer:GetRoleInGroup(groupid) .. "("..1000*100/newPlayer.leaderstats.XP.Value.."%)")
end
end
end
end
function onPlayerEntered(newPlayer)
newPlayer.Changed:connect(function (property)
if (property == "Character") then
onPlayerRespawned(newPlayer)
end
end)
end
game.Players.PlayerAdded:connect(onPlayerEntered)
-- If you want to change the overhead name format so it only shows the players rank and not their
-- name too, at line 17 change the line to this;
-- texta.Text = ("- " .. newPlayer:GetRoleInGroup(groupid)" -")
-- Or if you only want to show the players name, change line 17 to;
-- texta.Text = ("- " .. newPlayer.Name .. " -")
-- Alternatively, you can use your own format, but make sure you know what you're doing!
-- Do not hesitate to message me if you need!