Hi, I’m making a cafe game and I would like some help with the custom group ranks/nametags. The nametags will display the group rank below their name, which will be bold.
I can’t get it to disappear behind parts like this:
https://gyazo.com/59fa17f05bf5bd6260841460504f039d
or disappear when zoomed out far:
https://gyazo.com/7d342542ca82bf7b03fe56388eedf7a2
GIFs were taken at Frappe V4. You can see for yourself if I was not detailed enough.
Any support would really be appreciated. Please leave a response if you know how I can fix this.
My cafe: Pronto V1 - Roblox
What I have so far:
local commands = {}
function Create(ClassName)
return function(Properties)
local Obj = Instance.new(ClassName)
for i,v in pairs(Properties) do
if type(i) == 'number' then
v.Parent = Obj
else
Obj[i] = v
end
end
return Obj
end
end
function HandleCharacter(Player, Character)
local Custom = Character:WaitForChild('Head'):clone()
Custom.Name = 'TastiesOverhead'
Custom.Parent = Character
Custom.face:Destroy()
Character.Head.Transparency = 1
Create'Weld'{
Name = 'CustomWeld';
Parent = Custom;
Part0 = Character.Head;
Part1 = Custom;
}
Create'BillboardGui'{
Name = 'Nametag';
Parent = Custom;
Size = UDim2.new(5, 0, 0.5, 0);
StudsOffset = Vector3.new(0, 2, 0);
Create'TextLabel'{
Name = 'NameLabel';
BackgroundTransparency = 1;
Size = UDim2.new(1, 0, 1, 0);
Position = UDim2.new(0, 0, -0.8, 0);
Font = 'ArialBold';
Text = Character.Name;
TextColor3 = Color3.new(1, 1, 1);
TextScaled = true;
TextStrokeTransparency = 1;
};
Create'TextLabel'{
Name = 'RankLabel';
BackgroundTransparency = 1;
Size = UDim2.new(1, 0, 0.92, 0);
Position = UDim2.new(0, 0, 0.2, 0);
TextTransparency = .1;
Font = 'SourceSansItalic';
FontSize = Enum.FontSize.Size14;
Text = Player:GetRoleInGroup(4915753);
TextColor3 = Color3.new(1, 1, 1);
TextScaled = true;
TextStrokeTransparency = 1;
};
}
Custom.BrickColor = Character.Head.BrickColor
Character.Head.Changed:connect(function()
Character.Head.Transparency = 1
Custom.BrickColor = Character.Head.BrickColor
end)
Character.Head.Mesh.Changed:connect(function()
Custom:WaitForChild('Mesh').MeshId = Character.Head:WaitForChild('Mesh').MeshId
end)
end
local rainbow = function(callback)
local frequency = 0.1
local i = 0
while true do wait()
local red = math.sin(frequency*i + 0)*127+128
local green = math.sin(frequency*i + 2*math.pi/3)*127+128
local blue = math.sin(frequency*i + 4*math.pi/3)*127+128
callback(Color3.new(red/255,green/255,blue/255)) i = i+1
end end
function HandlePlayer(Player)
if Player.Character then
HandleCharacter(Player, Player.Character)
end
Player.CharacterAdded:connect(function(Character) HandleCharacter(Player, Character) end)
if Player.UserId == 0 or Player.UserId == 0 or Player.UserId == 0 or Player.UserId == 0 then
Player.CharacterAdded:connect(function(char) local label = char:WaitForChild("TastiesOverhead")
coroutine.resume(coroutine.create(rainbow),function(color)label.Nametag.RankLabel.TextColor3 = Color3.new(color.r,color.g,color.b)end)
end)
end
end
game.Players.PlayerAdded:connect(function(b)
HandlePlayer(b)
end)
for i,v in pairs(game.Players:GetPlayers()) do
HandlePlayer(v)
end
Thanks!