local screenGui = Instance.new("ScreenGui")
screenGui.IgnoreGuiInset = true
screenGui.Parent = game.Players.LocalPlayer.PlayerGui
local displayFrame = Instance.new("Frame")
displayFrame.Size = UDim2.new(0, 200, 0, 60)
displayFrame.Position = UDim2.new(0.5, -100, 0, 8)
displayFrame.BackgroundColor3 = Color3.fromRGB(30, 30, 30)
displayFrame.BorderSizePixel = 0
displayFrame.Visible = true
displayFrame.Parent = screenGui
local corner1 = Instance.new("UICorner")
corner1.CornerRadius = UDim.new(0, 8)
corner1.Parent = displayFrame
local pingLabel = Instance.new("TextLabel")
pingLabel.Size = UDim2.new(1, 0, 0.5, 0)
pingLabel.Position = UDim2.new(0, 0, 0, 0)
pingLabel.Font = Enum.Font.SourceSansBold
pingLabel.TextSize = 14
pingLabel.TextColor3 = Color3.fromRGB(255, 255, 255)
pingLabel.BackgroundTransparency = 1
pingLabel.Text = "Ping: Calculating..."
pingLabel.Parent = displayFrame
local fpsLabel = Instance.new("TextLabel")
fpsLabel.Size = UDim2.new(1, 0, 0.5, 0)
fpsLabel.Position = UDim2.new(0, 0, 0.5, 0)
fpsLabel.Font = Enum.Font.SourceSansBold
fpsLabel.TextSize = 14
fpsLabel.TextColor3 = Color3.fromRGB(255, 255, 255)
fpsLabel.BackgroundTransparency = 1
fpsLabel.Text = "FPS: Calculating..."
fpsLabel.Parent = displayFrame
local function calculateMetrics()
local pingTimeSec = game.Players.LocalPlayer:GetNetworkPing()
local pingTimeMs = pingTimeSec * 1000
pingLabel.Text = "Ping: " .. tostring(math.floor(pingTimeMs)) .. "ms"
local realFPS = workspace:GetRealPhysicsFPS()
fpsLabel.Text = "FPS: " .. tostring(math.floor(realFPS))
end
game:GetService("RunService").RenderStepped:Connect(function()
calculateMetrics()
end)
local dragStart, startPos
local function isTouchDevice()
return game:GetService("UserInputService").TouchEnabled
end
local function inputBegan(input)
if isTouchDevice() then
if input.UserInputType == Enum.UserInputType.Touch then
dragStart = input.Position
startPos = displayFrame.Position
end
else
if input.UserInputType == Enum.UserInputType.MouseButton1 then
dragStart = input.Position
startPos = displayFrame.Position
end
end
end
local function inputChanged(input)
if dragStart then
local dragDelta
if isTouchDevice() then
dragDelta = input.Position - dragStart
else
dragDelta = input.Position - dragStart
end
local newPosX = UDim2.new(startPos.X.Scale, startPos.X.Offset + dragDelta.X, startPos.Y.Scale, startPos.Y.Offset + dragDelta.Y)
displayFrame.Position = newPosX
end
end
if isTouchDevice() then
displayFrame.InputBegan:Connect(inputBegan)
displayFrame.InputChanged:Connect(inputChanged)
displayFrame.InputEnded:Connect(function(input)
if input.UserInputType == Enum.UserInputType.Touch then
dragStart = nil
end
end)
else
displayFrame.InputBegan:Connect(inputBegan)
displayFrame.InputChanged:Connect(inputChanged)
displayFrame.InputEnded:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 then
dragStart = nil
end
end)
end
local settingsFrame = Instance.new("Frame")
settingsFrame.Size = UDim2.new(0, 200, 0, 100)
settingsFrame.Position = UDim2.new(0.5, -100, 0, 80)
settingsFrame.BackgroundColor3 = Color3.fromRGB(50, 50, 50)
settingsFrame.BorderSizePixel = 0
settingsFrame.Visible = false
settingsFrame.Parent = screenGui
local corner2 = Instance.new("UICorner")
corner2.CornerRadius = UDim.new(0, 8)
corner2.Parent = settingsFrame
local transparencyLabel = Instance.new("TextLabel")
transparencyLabel.Size = UDim2.new(1, 0, 0.5, 0)
transparencyLabel.Position = UDim2.new(0, 0, 0, 0)
transparencyLabel.Font = Enum.Font.SourceSansBold
transparencyLabel.TextSize = 14
transparencyLabel.TextColor3 = Color3.fromRGB(255, 255, 255)
transparencyLabel.BackgroundTransparency = 1
transparencyLabel.Text = "Background Transparency"
transparencyLabel.Parent = settingsFrame
local transparencySlider = Instance.new("TextButton")
transparencySlider.Size = UDim2.new(1, -20, 0, 20)
transparencySlider.Position = UDim2.new(0, 10, 0.5, -10)
transparencySlider.AutoButtonColor = false
transparencySlider.Text = ""
transparencySlider.BackgroundColor3 = Color3.fromRGB(100, 100, 100)
transparencySlider.BorderSizePixel = 0
transparencySlider.Parent = settingsFrame
local transparencyValueLabel = Instance.new("TextLabel")
transparencyValueLabel.Size = UDim2.new(0, 40, 0, 20)
transparencyValueLabel.Position = UDim2.new(1, -50, 0.5, -10)
transparencyValueLabel.Font = Enum.Font.SourceSansBold
transparencyValueLabel.TextSize = 14
transparencyValueLabel.TextColor3 = Color3.fromRGB(255, 255, 255)
transparencyValueLabel.BackgroundTransparency = 1
transparencyValueLabel.Text = "50%"
transparencyValueLabel.Parent = settingsFrame
local function updateTransparency(value)
local transparency = math.clamp(value, 0, 1)
displayFrame.BackgroundTransparency = transparency
transparencyValueLabel.Text = tostring(math.floor(transparency * 100)) .. "%"
end
local function sliderMove()
local mouse = game.Players.LocalPlayer:GetMouse()
local initialValue = displayFrame.BackgroundTransparency
local dragStart = mouse.X
local sliderSize = transparencySlider.AbsoluteSize.X
local function updateSlider()
local delta = mouse.X - dragStart
local newValue = math.clamp(initialValue + (delta / sliderSize), 0, 1)
updateTransparency(newValue)
end
local function endSliderMove()
mouseMoveConnection:Disconnect()
mouseUpConnection:Disconnect()
end
local mouseMoveConnection
local mouseUpConnection
mouseMoveConnection = transparencySlider.MouseMoved:Connect(updateSlider)
mouseUpConnection = transparencySlider.MouseButton1Up:Connect(function()
mouseMoveConnection:Disconnect()
mouseUpConnection:Disconnect()
end)
end
transparencySlider.MouseButton1Down:Connect(sliderMove)
local colorLabel = Instance.new("TextLabel")
colorLabel.Size = UDim2.new(1, 0, 0.5, 0)
colorLabel.Position = UDim2.new(0, 0, 0.5, 0)
colorLabel.Font = Enum.Font.SourceSansBold
colorLabel.TextSize = 14
colorLabel.TextColor3 = Color3.fromRGB(255, 255, 255)
colorLabel.BackgroundTransparency = 1
colorLabel.Text = "Background Color"
colorLabel.Parent = settingsFrame
local colorPicker = Instance.new("TextButton")
colorPicker.Size = UDim2.new(1, -20, 0, 20)
colorPicker.Position = UDim2.new(0, 10, 1, -30)
colorPicker.AutoButtonColor = false
colorPicker.Text = ""
colorPicker.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
colorPicker.BorderSizePixel = 0
colorPicker.Parent = settingsFrame
local colorValueLabel = Instance.new("TextLabel")
colorValueLabel.Size = UDim2.new(0, 40, 0, 20)
colorValueLabel.Position = UDim2.new(1, -50, 1, -30)
colorValueLabel.Font = Enum.Font.SourceSansBold
colorValueLabel.TextSize = 14
colorValueLabel.TextColor3 = Color3.fromRGB(255, 255, 255)
colorValueLabel.BackgroundTransparency = 1
colorValueLabel.Text = "White"
colorValueLabel.Parent = settingsFrame
local function updateColor(color)
displayFrame.BackgroundColor3 = color
colorValueLabel.Text = string.format("RGB: (%d, %d, %d)", color.R * 255, color.G * 255, color.B * 255)
end
colorPicker.MouseButton1Down:Connect(function()
local color = Color3.new(math.random(), math.random(), math.random())
updateColor(color)
end)
local settingsButton = Instance.new("TextButton")
settingsButton.Size = UDim2.new(0, 50, 0, 30)
settingsButton.Position = UDim2.new(0.3, -50, 0, 10)
settingsButton.Font = Enum.Font.SourceSansBold
settingsButton.TextSize = 14
settingsButton.TextColor3 = Color3.fromRGB(255, 255, 255)
settingsButton.BackgroundTransparency = 0.5
settingsButton.BackgroundColor3 = Color3.fromRGB(0, 120, 255)
settingsButton.BorderSizePixel = 0
settingsButton.Text = "Settings"
settingsButton.Parent = displayFrame
settingsButton.MouseButton1Click:Connect(function()
settingsFrame.Visible = not settingsFrame.Visible
end)
local settingsDragger = settingsFrame
local dragInput, dragStart, startPos
local function updateInput(input)
local delta = input.Position - dragStart
settingsDragger.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y)
end
settingsDragger.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
dragStart = input.Position
startPos = settingsDragger.Position
input.Changed:Connect(function()
if input.UserInputState == Enum.UserInputState.End then
dragStart = nil
end
end)
end
end)
settingsDragger.InputChanged:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch then
dragInput = input
end
end)
game:GetService("UserInputService").InputChanged:Connect(function(input)
if input == dragInput and dragStart then
updateInput(input)
end
end)
Comments
looks like chatgpt
nice work