Screen coordinates grabber open source universal
Key RequiredUniversal

Screen coordinates grabber open source universal

Universal Scriptskeeplskeepl 458 views 47 executesUpdated Mar 29, 2026
Unrated
00
Lua Script•164 lines (4727 chars)
local UIS = game:GetService("UserInputService")
local PLRS = game:GetService("Players")
local WSP = game:GetService("Workspace")

local lp = PLRS.LocalPlayer
local parent = (gethui and gethui()) or lp:WaitForChild("PlayerGui")

local cam = WSP.CurrentCamera
local sw, sh = math.floor(cam.ViewportSize.X), math.floor(cam.ViewportSize.Y)

local sg = Instance.new("ScreenGui")
sg.Name = "CoordGrabber_Pro"
sg.ResetOnSpawn = false
sg.IgnoreGuiInset = true
sg.DisplayOrder = 999
sg.Parent = parent

local shield = Instance.new("TextButton")
shield.Size = UDim2.new(1, 0, 1, 0)
shield.BackgroundTransparency = 1
shield.Text = ""
shield.Visible = false
shield.Active = true
shield.ZIndex = 5
shield.Parent = sg

local mf = Instance.new("Frame")
mf.Size = UDim2.new(0, 240, 0, 110)
mf.Position = UDim2.new(0.5, -120, 0, 50)
mf.BackgroundColor3 = Color3.fromRGB(15, 15, 15)
mf.BorderSizePixel = 0
mf.ZIndex = 10
mf.Active = true
mf.Parent = sg

local mfC = Instance.new("UICorner")
mfC.CornerRadius = UDim.new(0, 12)
mfC.Parent = mf

local close = Instance.new("TextButton")
close.Size = UDim2.new(0, 28, 0, 28)
close.Position = UDim2.new(1, -33, 0, 5)
close.BackgroundColor3 = Color3.fromRGB(200, 40, 40)
close.TextColor3 = Color3.fromRGB(255, 255, 255)
close.Font = Enum.Font.SourceSansBold
close.TextSize = 16
close.Text = "×"
close.ZIndex = 12
close.Parent = mf
Instance.new("UICorner", close).CornerRadius = UDim.new(0, 8)

local resL = Instance.new("TextLabel")
resL.Size = UDim2.new(1, 0, 0, 20)
resL.Position = UDim2.new(0, 0, 0, 8)
resL.BackgroundTransparency = 1
resL.TextColor3 = Color3.fromRGB(100, 100, 100)
resL.Font = Enum.Font.Code
resL.TextSize = 12
resL.Text = "RES: " .. sw .. "x" .. sh
resL.ZIndex = 11
resL.Parent = mf

local disp = Instance.new("TextLabel")
disp.Size = UDim2.new(1, 0, 0, 30)
disp.Position = UDim2.new(0, 0, 0, 28)
disp.BackgroundTransparency = 1
disp.TextColor3 = Color3.fromRGB(255, 255, 255)
disp.Font = Enum.Font.GothamBold
disp.TextSize = 18
disp.Text = "X: -- | Y: --"
disp.ZIndex = 11
disp.Parent = mf

local btn1 = Instance.new("TextButton")
btn1.Size = UDim2.new(0, 105, 0, 38)
btn1.Position = UDim2.new(0, 10, 0, 65)
btn1.BackgroundColor3 = Color3.fromRGB(220, 60, 60)
btn1.TextColor3 = Color3.fromRGB(255, 255, 255)
btn1.Font = Enum.Font.GothamBold
btn1.TextSize = 12
btn1.Text = "START GRAB"
btn1.ZIndex = 11
btn1.Parent = mf
Instance.new("UICorner", btn1)

local btn2 = Instance.new("TextButton")
btn2.Size = UDim2.new(0, 105, 0, 38)
btn2.Position = UDim2.new(1, -115, 0, 65)
btn2.BackgroundColor3 = Color3.fromRGB(30, 30, 30)
btn2.TextColor3 = Color3.fromRGB(200, 200, 200)
btn2.Font = Enum.Font.GothamBold
btn2.TextSize = 12
btn2.Text = "COPY"
btn2.ZIndex = 11
btn2.Parent = mf
Instance.new("UICorner", btn2)

local dot = Instance.new("Frame")
dot.Size = UDim2.new(0, 14, 0, 14)
dot.AnchorPoint = Vector2.new(0.5, 0.5)
dot.BackgroundColor3 = Color3.fromRGB(0, 255, 255)
dot.BackgroundTransparency = 1
dot.Visible = false
dot.ZIndex = 100
dot.Parent = sg
Instance.new("UICorner", dot).CornerRadius = UDim.new(1, 0)

local cur = ""

local function toggle(s)
	shield.Visible = s
	btn1.Text = s and "TAP SCREEN" or "START GRAB"
	btn1.BackgroundColor3 = s and Color3.fromRGB(60, 220, 60) or Color3.fromRGB(220, 60, 60)
end

btn1.MouseButton1Click:Connect(function() toggle(true) end)

shield.InputBegan:Connect(function(input)
	if input.UserInputType == Enum.UserInputType.Touch or input.UserInputType == Enum.UserInputType.MouseButton1 then
		local p = UIS:GetMouseLocation()
		local x, y = math.floor(p.X), math.floor(p.Y)
		disp.Text = "X: " .. x .. " | Y: " .. y
		cur = x .. ", " .. y
		dot.Position = UDim2.new(0, x, 0, y)
		dot.Visible = true
		dot.BackgroundTransparency = 0
		btn2.BackgroundColor3 = Color3.fromRGB(0, 120, 255)
		btn2.TextColor3 = Color3.fromRGB(255, 255, 255)
		task.spawn(function()
			task.wait(1.5)
			for i = 0, 1, 0.1 do
				dot.BackgroundTransparency = i
				task.wait(0.05)
			end
			dot.Visible = false
		end)
		toggle(false)
	end
end)

btn2.MouseButton1Click:Connect(function()
	if setclipboard and cur ~= "" then
		setclipboard(cur)
		btn2.Text = "COPIED!"
		task.wait(1)
		btn2.Text = "COPY"
	end
end)

close.MouseButton1Click:Connect(function() sg:Destroy() end)

local d, ds, sp
mf.InputBegan:Connect(function(i)
	if i.UserInputType == Enum.UserInputType.Touch then 
		d = true ds = i.Position sp = mf.Position
		i.Changed:Connect(function() if i.UserInputState == Enum.UserInputState.End then d = false end end)
	end
end)
UIS.InputChanged:Connect(function(i)
	if d and i.UserInputType == Enum.UserInputType.Touch then
		local dl = i.Position - ds
		mf.Position = UDim2.new(sp.X.Scale, sp.X.Offset + dl.X, sp.Y.Scale, sp.Y.Offset + dl.Y)
	end
end)

Features & Information

Use this when you need to grab the coordinates of your screen in a Roblox game. Useful for making auto tappers.

Community Comments (0)

No comments yet for this script.

More Scripts for Universal Scripts