Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- Create a ScreenGui for the GUI
- local player = game.Players.LocalPlayer
- local gui = Instance.new("ScreenGui")
- gui.Parent = player.PlayerGui
- -- Function to create and update frames for all players
- local function UpdateFrames()
- local camera = game.Workspace.CurrentCamera
- for _, otherPlayer in pairs(game.Players:GetPlayers()) do
- if otherPlayer ~= player then
- local character = otherPlayer.Character
- if character and character:FindFirstChild("Head") then
- local head = character.Head
- local headPosition = head.Position
- if headPosition and camera then
- local screenPos, onScreen = camera:WorldToViewportPoint(headPosition)
- if onScreen then
- local frame = gui:FindFirstChild(otherPlayer.Name)
- if not frame then
- frame = Instance.new("Frame")
- frame.Name = otherPlayer.Name
- frame.Size = UDim2.new(0, 150, 0, 70) -- Set the size of the frame (smaller size)
- frame.BackgroundColor3 = Color3.new(1, 1, 1)
- frame.BackgroundTransparency = 0.5
- frame.Parent = gui
- local nameLabel = Instance.new("TextLabel")
- nameLabel.Size = UDim2.new(1, 0, 0, 20)
- nameLabel.Position = UDim2.new(0, 0, 0, 0)
- nameLabel.Text = otherPlayer.Name
- nameLabel.TextColor3 = Color3.new(0, 0, 0)
- nameLabel.Parent = frame
- end
- frame.Position = UDim2.new(0, screenPos.X - frame.Size.X.Offset / 2, 0, screenPos.Y - frame.Size.Y.Offset / 2)
- else
- local frame = gui:FindFirstChild(otherPlayer.Name)
- if frame then
- frame:Destroy()
- end
- end
- end
- end
- end
- end
- end
- -- Connect the function to the camera's viewport size change event
- game:GetService("RunService").RenderStepped:Connect(UpdateFrames)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement