-- Roblox Coordinates Display Script -- Place this in StarterPlayerScripts (LocalScript) local Players = game:GetService("Players") local UserInputService = game:GetService("UserInputService") local RunService = game:GetService("RunService") local player = Players.LocalPlayer local playerGui = player:WaitForChild("PlayerGui") -- Create ScreenGui local screenGui = Instance.new("ScreenGui") screenGui.Name = "CoordinatesGui" screenGui.Parent = playerGui -- Create main frame local mainFrame = Instance.new("Frame") mainFrame.Name = "CoordinatesFrame" mainFrame.Size = UDim2.new(0, 300, 0, 160) mainFrame.Position = UDim2.new(0, 10, 0, 10) mainFrame.BackgroundColor3 = Color3.fromRGB(45, 45, 45) mainFrame.BorderSizePixel = 0 mainFrame.Parent = screenGui -- Add corner rounding local corner = Instance.new("UICorner") corner.CornerRadius = UDim.new(0, 8) corner.Parent = mainFrame -- Create title label local titleLabel = Instance.new("TextLabel") titleLabel.Name = "Title" titleLabel.Size = UDim2.new(1, 0, 0, 25) titleLabel.Position = UDim2.new(0, 0, 0, 0) titleLabel.BackgroundColor3 = Color3.fromRGB(35, 35, 35) titleLabel.BorderSizePixel = 0 titleLabel.Text = "Coordinates" titleLabel.TextColor3 = Color3.fromRGB(255, 255, 255) titleLabel.TextScaled = true titleLabel.Font = Enum.Font.GothamBold titleLabel.Parent = mainFrame -- Add corner rounding to title local titleCorner = Instance.new("UICorner") titleCorner.CornerRadius = UDim.new(0, 8) titleCorner.Parent = titleLabel -- Create X coordinate label local xLabel = Instance.new("TextLabel") xLabel.Name = "XLabel" xLabel.Size = UDim2.new(0, 200, 0, 25) xLabel.Position = UDim2.new(0, 5, 0, 30) xLabel.BackgroundTransparency = 1 xLabel.Text = "X: 0" xLabel.TextColor3 = Color3.fromRGB(255, 100, 100) xLabel.TextScaled = true xLabel.Font = Enum.Font.Gotham xLabel.TextXAlignment = Enum.TextXAlignment.Left xLabel.Parent = mainFrame -- Create X copy button local xCopyButton = Instance.new("TextButton") xCopyButton.Name = "XCopyButton" xCopyButton.Size = UDim2.new(0, 60, 0, 20) xCopyButton.Position = UDim2.new(0, 210, 0, 32) xCopyButton.BackgroundColor3 = Color3.fromRGB(200, 80, 80) xCopyButton.BorderSizePixel = 0 xCopyButton.Text = "Copy" xCopyButton.TextColor3 = Color3.fromRGB(255, 255, 255) xCopyButton.TextScaled = true xCopyButton.Font = Enum.Font.GothamBold xCopyButton.Parent = mainFrame local xCopyCorner = Instance.new("UICorner") xCopyCorner.CornerRadius = UDim.new(0, 3) xCopyCorner.Parent = xCopyButton -- Create Y coordinate label local yLabel = Instance.new("TextLabel") yLabel.Name = "YLabel" yLabel.Size = UDim2.new(0, 200, 0, 25) yLabel.Position = UDim2.new(0, 5, 0, 55) yLabel.BackgroundTransparency = 1 yLabel.Text = "Y: 0" yLabel.TextColor3 = Color3.fromRGB(100, 255, 100) yLabel.TextScaled = true yLabel.Font = Enum.Font.Gotham yLabel.TextXAlignment = Enum.TextXAlignment.Left yLabel.Parent = mainFrame -- Create Y copy button local yCopyButton = Instance.new("TextButton") yCopyButton.Name = "YCopyButton" yCopyButton.Size = UDim2.new(0, 60, 0, 20) yCopyButton.Position = UDim2.new(0, 210, 0, 57) yCopyButton.BackgroundColor3 = Color3.fromRGB(80, 200, 80) yCopyButton.BorderSizePixel = 0 yCopyButton.Text = "Copy" yCopyButton.TextColor3 = Color3.fromRGB(255, 255, 255) yCopyButton.TextScaled = true yCopyButton.Font = Enum.Font.GothamBold yCopyButton.Parent = mainFrame local yCopyCorner = Instance.new("UICorner") yCopyCorner.CornerRadius = UDim.new(0, 3) yCopyCorner.Parent = yCopyButton -- Create Z coordinate label local zLabel = Instance.new("TextLabel") zLabel.Name = "ZLabel" zLabel.Size = UDim2.new(0, 200, 0, 25) zLabel.Position = UDim2.new(0, 5, 0, 80) zLabel.BackgroundTransparency = 1 zLabel.Text = "Z: 0" zLabel.TextColor3 = Color3.fromRGB(100, 100, 255) zLabel.TextScaled = true zLabel.Font = Enum.Font.Gotham zLabel.TextXAlignment = Enum.TextXAlignment.Left zLabel.Parent = mainFrame -- Create Z copy button local zCopyButton = Instance.new("TextButton") zCopyButton.Name = "ZCopyButton" zCopyButton.Size = UDim2.new(0, 60, 0, 20) zCopyButton.Position = UDim2.new(0, 210, 0, 82) zCopyButton.BackgroundColor3 = Color3.fromRGB(80, 80, 200) zCopyButton.BorderSizePixel = 0 zCopyButton.Text = "Copy" zCopyButton.TextColor3 = Color3.fromRGB(255, 255, 255) zCopyButton.TextScaled = true zCopyButton.Font = Enum.Font.GothamBold zCopyButton.Parent = mainFrame local zCopyCorner = Instance.new("UICorner") zCopyCorner.CornerRadius = UDim.new(0, 3) zCopyCorner.Parent = zCopyButton -- Create copy all button local copyAllButton = Instance.new("TextButton") copyAllButton.Name = "CopyAllButton" copyAllButton.Size = UDim2.new(0, 130, 0, 25) copyAllButton.Position = UDim2.new(0, 5, 0, 110) copyAllButton.BackgroundColor3 = Color3.fromRGB(60, 140, 60) copyAllButton.BorderSizePixel = 0 copyAllButton.Text = "Copy All" copyAllButton.TextColor3 = Color3.fromRGB(255, 255, 255) copyAllButton.TextScaled = true copyAllButton.Font = Enum.Font.GothamBold copyAllButton.Parent = mainFrame -- Add corner rounding to copy all button local copyAllCorner = Instance.new("UICorner") copyAllCorner.CornerRadius = UDim.new(0, 4) copyAllCorner.Parent = copyAllButton -- Create copy position button local copyPosButton = Instance.new("TextButton") copyPosButton.Name = "CopyPosButton" copyPosButton.Size = UDim2.new(0, 130, 0, 25) copyPosButton.Position = UDim2.new(0, 140, 0, 110) copyPosButton.BackgroundColor3 = Color3.fromRGB(60, 100, 140) copyPosButton.BorderSizePixel = 0 copyPosButton.Text = "Copy Vector3" copyPosButton.TextColor3 = Color3.fromRGB(255, 255, 255) copyPosButton.TextScaled = true copyPosButton.Font = Enum.Font.GothamBold copyPosButton.Parent = mainFrame -- Add corner rounding to copy position button local copyPosCorner = Instance.new("UICorner") copyPosCorner.CornerRadius = UDim.new(0, 4) copyPosCorner.Parent = copyPosButton -- Create feedback label for copy confirmations local feedbackLabel = Instance.new("TextLabel") feedbackLabel.Name = "FeedbackLabel" feedbackLabel.Size = UDim2.new(1, -10, 0, 15) feedbackLabel.Position = UDim2.new(0, 5, 0, 140) feedbackLabel.BackgroundTransparency = 1 feedbackLabel.Text = "" feedbackLabel.TextColor3 = Color3.fromRGB(100, 255, 100) feedbackLabel.TextScaled = true feedbackLabel.Font = Enum.Font.Gotham feedbackLabel.TextXAlignment = Enum.TextXAlignment.Center feedbackLabel.Parent = mainFrame -- Variables for toggle functionality local isVisible = true local connection local currentPosition = Vector3.new(0, 0, 0) -- Function to show feedback message local function showFeedback(message) feedbackLabel.Text = message feedbackLabel.TextColor3 = Color3.fromRGB(100, 255, 100) -- Fade out the feedback message spawn(function() wait(0.1) for i = 1, 0, -0.1 do feedbackLabel.TextTransparency = 1 - i wait(0.05) end feedbackLabel.Text = "" feedbackLabel.TextTransparency = 0 end) end -- Function to copy text to clipboard local function copyToClipboard(text) if setclipboard then setclipboard(text) return true else -- Fallback: print to console if setclipboard is not available print("Coordinates copied: " .. text) return false end end -- Function to update coordinates local function updateCoordinates() if player.Character and player.Character:FindFirstChild("HumanoidRootPart") then local position = player.Character.HumanoidRootPart.Position currentPosition = position xLabel.Text = string.format("X: %.2f", position.X) yLabel.Text = string.format("Y: %.2f", position.Y) zLabel.Text = string.format("Z: %.2f", position.Z) else currentPosition = Vector3.new(0, 0, 0) xLabel.Text = "X: --" yLabel.Text = "Y: --" zLabel.Text = "Z: --" end end -- Function to toggle GUI visibility local function toggleGui() isVisible = not isVisible screenGui.Enabled = isVisible end -- Start updating coordinates connection = RunService.Heartbeat:Connect(updateCoordinates) -- Copy button functionality copyAllButton.MouseButton1Click:Connect(function() local coordsText = string.format("X: %.2f, Y: %.2f, Z: %.2f", currentPosition.X, currentPosition.Y, currentPosition.Z) if copyToClipboard(coordsText) then showFeedback("Copied coordinates!") else showFeedback("Printed to console") end end) copyPosButton.MouseButton1Click:Connect(function() local vectorText = string.format("Vector3.new(%.2f, %.2f, %.2f)", currentPosition.X, currentPosition.Y, currentPosition.Z) if copyToClipboard(vectorText) then showFeedback("Copied Vector3!") else showFeedback("Printed to console") end end) -- Individual coordinate copy functionality xCopyButton.MouseButton1Click:Connect(function() local xValue = string.format("%.2f", currentPosition.X) if copyToClipboard(xValue) then showFeedback("Copied X: " .. xValue) else showFeedback("Printed X to console") end end) yCopyButton.MouseButton1Click:Connect(function() local yValue = string.format("%.2f", currentPosition.Y) if copyToClipboard(yValue) then showFeedback("Copied Y: " .. yValue) else showFeedback("Printed Y to console") end end) zCopyButton.MouseButton1Click:Connect(function() local zValue = string.format("%.2f", currentPosition.Z) if copyToClipboard(zValue) then showFeedback("Copied Z: " .. zValue) else showFeedback("Printed Z to console") end end) -- Toggle with F3 key (like Minecraft) UserInputService.InputBegan:Connect(function(input, gameProcessed) if gameProcessed then return end if input.KeyCode == Enum.KeyCode.F3 then toggleGui() end end) -- Add hover effects to buttons local function addHoverEffect(button, normalColor, hoverColor) button.MouseEnter:Connect(function() button.BackgroundColor3 = hoverColor end) button.MouseLeave:Connect(function() button.BackgroundColor3 = normalColor end) end addHoverEffect(copyAllButton, Color3.fromRGB(60, 140, 60), Color3.fromRGB(70, 160, 70)) addHoverEffect(copyPosButton, Color3.fromRGB(60, 100, 140), Color3.fromRGB(70, 120, 160)) addHoverEffect(xCopyButton, Color3.fromRGB(200, 80, 80), Color3.fromRGB(220, 100, 100)) addHoverEffect(yCopyButton, Color3.fromRGB(80, 200, 80), Color3.fromRGB(100, 220, 100)) addHoverEffect(zCopyButton, Color3.fromRGB(80, 80, 200), Color3.fromRGB(100, 100, 220)) -- Make the frame draggable local dragging = false local dragStart = nil local startPos = nil mainFrame.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then dragging = true dragStart = input.Position startPos = mainFrame.Position end end) mainFrame.InputChanged:Connect(function(input) if dragging and input.UserInputType == Enum.UserInputType.MouseMovement then local delta = input.Position - dragStart mainFrame.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y) end end) mainFrame.InputEnded:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then dragging = false end end) -- Clean up when player leaves Players.PlayerRemoving:Connect(function(leavingPlayer) if leavingPlayer == player then if connection then connection:Disconnect() end end end)