Overhead Gui "Top Donator" Role / "Owner" Role

So recently I’ve been working on a vibe game and have been getting frequent questions asking to add things and i’ve come upon of course adding the easy “TOP DONATOR” humanoid/donation board.

I’ve been wondering how can I achieve the way of changing “VIP” or as you can call it (role name) to “Top Donator” as in the picture. Now yes this may seem crazy weird and possibly super confusing.

Is their a simple way of achieving this?

Below will be all the scripts and models of what i’m using.

I’m also having a problem with changing my VIP to “CREATOR” since it keeps detecting that I own VIP gamepass.

--[[
	@author TwinPlayzDev_YT
	@credit Neutron_Flow for the help
	@since 1/28/2021
	This script will give anyone who owns gamepasses or is in groups, a special overhead tag
	that is displayed over peoples heads. Please watch my tutorial on youtube on how to use.
--]]


--[ SERVICES ]--

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MarketplaceService = game:GetService("MarketplaceService")
local Players = game:GetService("Players")

--[ LOCALS ]--

local VIPOverheadGui = ReplicatedStorage:WaitForChild("VIPOverheadGui") -- GRABBING THE OVERHEAD GUI's
local OverheadGui = ReplicatedStorage:WaitForChild("OverheadGui")
local GamepassId = 13913938 -- GAMEPASS ID GOES HERE
local GroupId = 8428801 -- GROUP ID GOES HERE

--[ FUNCTIONS ]--

Players.PlayerAdded:Connect(function(Player)
	Player.CharacterAdded:Connect(function(Character)
		-- These variables are used regardless of whether the user owns the gamepass or not
		-- so we can define them outside the if statement
		local Humanoid = Character:WaitForChild("Humanoid")
		local Head = Character:WaitForChild("Head")
		
		-- Again, this happens regardless of the if statement
		Humanoid.DisplayDistanceType = Enum.HumanoidDisplayDistanceType.None
		
		-- VIP / MORE RANKS
		if MarketplaceService:UserOwnsGamePassAsync(Player.UserId, GamepassId) then
			local Role = "VIP"
			local CloneGui = VIPOverheadGui:Clone()
			CloneGui.Username.Text = Player.Name
			CloneGui.Rank.Text = Role
			CloneGui.Name = "OverheadGui"
			CloneGui.Parent = Head
			local character = game.Workspace:WaitForChild(Player.Name)
			-- Owner Name
		elseif Player.Name == "TwinPlayzDev_YT" then
			local CloneGui = OverheadGui:Clone()
			CloneGui.Rank.Text = "VIBE CREATOR"
			CloneGui.Rank.TextColor3 = Color3.new(0.117647, 0.513725, 1)
		else -- Different Ranks
			local leaderstats =Player:WaitForChild("leaderstats") -- getting there leaderstats
			local Minutes = leaderstats.Minutes.Value -- getting there minutes
			local CloneGui = OverheadGui:Clone()
			CloneGui.Username.Text = Player.Name
			CloneGui.Name = "OverheadGui"
			CloneGui.Parent = Head
			if Player.leaderstats.Minutes.Value >= 10000 then -- Over 10000 Minute Rank
				CloneGui.Rank.Text = "Vibe Insanity"
				CloneGui.Rank.TextColor3 = Color3.new(1, 0.917647, 0.00784314)
			elseif Player.leaderstats.Minutes.Value >= 5000 then -- Over 5000 Minute Rank
				CloneGui.Rank.Text = "Vibe Maniac"
				CloneGui.Rank.TextColor3 = Color3.new(1, 0, 0)
			elseif Player.leaderstats.Minutes.Value >= 1000 then -- Over 1000 Minute Rank
				CloneGui.Rank.Text = "Vibe God"
				CloneGui.Rank.TextColor3 = Color3.new(1, 0.666667, 0.133333)
			else  -- DEFAULT RANK
				CloneGui.Rank.Text = "Vibe Newbie"
			end
		end
	end)
end)

So if you can help maybe let me know what wrong with the “OWNER” and how to maybe possibly add a “TOP DONATOR” that uses the leaderboard config. Ill put a link to the model’s below.

LINK TO MY GUI’S

CLICK HERE

LINK TO DONATIONBOARD

CLICK HERE

Thankyou so much for reading this.

2 Likes

For the creator role, you just have to put that check first (before checking the gamepass). elseif conditions are only checked if the if condition was false. So you just have to order your roles in the precedence you want them to take.
Adding “Top Donator” you’ll probably want to check after creator but before VIP. How you do the check depends on how you’re storing the top donator. If you have the name somewhere, just check that against the player’s name like you do for creator.

3 Likes