Scripting Help; BillboardGui Positioning Offset

Ah, this is what I needed. I’m having one issue. When I zoom out, it changes the size of the badges. How do I fix this?

image

Can you send me screen of the properties of Frame and the badges?
(anchorpoint, position, size)

What specific part do you want the properties of?

Also, when I go closer to the block the badges are the correct size.

image

Please like I wrote above send me AnchorPoints, Positions and Sizes.

Of the BillboardGui? (30 ch.arsssss)

No of the Frame and each Badge.

1 Like

AnchorPoint for everything including Frame is 0,0.

Size and position for each badge:image

Size and position of Frame: image

The Frame Size is in OffSet instead of scale.

Okay, there! I’ve configued the UIGridLayout a bit more as well as changed the Offset to Scale, thank you so much for the help! How would I script it from a Script in ServerScriptService?

Sorry I dont get you what do you mean by “Script it” :smiley: can you please refer it more.

Hm, so should I just script this so it clones the BillboardGui on to the players’ head when they join the game, and then add a script under each ImageLabel in the BillboardGui under ServerStorage which’ll make it remove the specific badge if the player doesn’t meet the requirements to have it?

If so, would I do:

:Destroy()
OR
.Enabled = false
OR
.Visible = false
???

Sorry, I know this is confusing. If you still don’t understand just let me know!

You can just make single script inside ServerScriptService

game.Players.PlayerAdded:Connect(function(player) 
player.CharacterAdded:Connect(function(char) 
local head = char.Head
local guiclone = game.ServerStorage.BadgeGui:Clone()
guiclone.Parent = head
local BadgeFrame = Head:WaitForChild("BadgeGui").Frame --possibly change to guiclone:WaitForChild("Frame) 
local Badge1 = BadgeFrame.ManagementBadge
local Badge2 = BadgeFrame.PirateBadge
local Badge3 = BadgeFrame.VipBadge

if player.Pirate.Value == true then
       Badge2.Visible = true
end

if player.Vip.Value == true then
       Badge3.Visible = true
end

If player.Manager.Value == true then
       Badge1.Visible = true
end
        end) 
end) 

Note: edit the if statement requirements by urself btw there can be typos as I wrote it on mobile so check it inside your Studio.

Thank you soo much! I’ve configured it like this, I hope it works:

game.Players.PlayerAdded:Connect(function(player)
	player.CharacterAdded:Connect(function(char)
		local head = char.Head
		local guiclone = game.ServerStorage.BadgeGui:Clone()
		guiclone.Parent = head
		local BadgeFrame = guiclone:WaitForChild("Frame")
		local Badge1 = BadgeFrame.ManagementBadge
		local Badge2 = BadgeFrame.PirateBadge
		local Badge3 = BadgeFrame.VipBadge
		local BadgeService = game:GetService("BadgeService")
		local badgeID = 2124700789
		
		if BadgeService:UserHasBadgeAsync(player.UserId, badgeID) then
			Badge2.Visibe = true
		end

		if game:GetService("MarketplaceService"):PlayerOwnsAsset(player,15532025) then
			Badge3.Visible = true
		end
		
		if player:GetRankInGroup(7331168) >= then
			Badge1.Visible = true
		end
	end)
end)

Nice enjoy it!
Please if its solved consider mark my post as solved so other people can use it in futuere thanks!

Yep, I will! I’m still testing it, I’ll be done in a few minutes if it works as expected.

This worked! Thank you so much, I’m so happy. :heart:

1 Like

No problem glad that I helped you! :wink:

1 Like