Well, recently, I've been trying to script something that involves putting a custom Health GUI on top of player's heads, that, and a bit of practice to learn how other GUI's work. Unless there's a better idea how to do this, i'll just do it in this manner because once the other players distance from the GUI, the GUI becomes invisible to them.
function grabplayers(plr)
for i, player in ipairs (game.Players:GetPlayers()) do
local Playername = player.Name
if player.Character and plr.PlayerGui:FindFirstChild(Playername)== nil then
local Billboard = Instance.new("BillboardGui",plr.PlayerGui)
Billboard.Name = player.Name
Billboard.Adornee = player.Character.Head
local clonehpthing = player.PlayerGui.ScreenGui.HP:Clone()
clonehpthing.Parent = Billboard
clonehpthing.Position = UDim2.new(0,0,0,0)
clonehpthing.Size = UDim2.new(0,130,0,10)
clonehpthing.Health:Destroy()
clonehpthing.BorderSizePixel = 1
print ("It finally works")
end
end
end
function distanceAppear(player)
for i, plr in ipairs (game.Players:GetPlayers()) do
local plrname = plr.Name
if (plr.Character.Head.Position - player.Character.Torso.Position).magnitude > 30 then
local plrGUI = player.PlayerGui[plrname]
plrGUI.HP.Visible = false
else
local plrGUI = player.PlayerGui[plrname]
plrGUI.HP.Visible = true
end
end
end
game.Players.PlayerAdded:connect(grabplayers,distanceAppear)
There's no errors in the output, but i think i wrote the script a bit wrong. Also, if there's anything missing (Specifications, etc) i'll add more details (That is, if I can and it's relatable to the problem.)
Oh yeah, and the script is in Workspace
EDIT: The GUI is there (As demonstrated by typing game.Players.Username.PlayerGui.OtherUser.Name) And the HP object is there too. However, when i write: game.Players.Username.PlayerGui.OtherUser.HP.Visible = true , nothing happens, and HP is clearly there, showing no errors in the command.
