Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local Players = game:GetService("Players")
- local RunService = game:GetService("RunService")
- local UserInputService = game:GetService("UserInputService")
- local Stats = game:GetService("Stats")
- local CoreGui = game:GetService("CoreGui")
- local Player = Players.LocalPlayer
- local Mouse = Player:GetMouse()
- local Camera = workspace.CurrentCamera
- for _, old in ipairs(CoreGui:GetChildren()) do
- if old.Name == "F3_Final_Fixed" then old:Destroy() end
- end
- local sg = Instance.new("ScreenGui", CoreGui)
- sg.Name = "F3_Final_Fixed"
- sg.IgnoreGuiInset = true
- local function makeDraggable(obj)
- local dragging, dragInput, dragStart, startPos
- obj.InputBegan:Connect(function(input)
- if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
- dragging = true
- dragStart = input.Position
- startPos = obj.Position
- input.Changed:Connect(function()
- if input.UserInputState == Enum.UserInputState.End then
- dragging = false
- end
- end)
- end
- end)
- obj.InputChanged:Connect(function(input)
- if input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch then
- dragInput = input
- end
- end)
- UserInputService.InputChanged:Connect(function(input)
- if input == dragInput and dragging then
- local delta = input.Position - dragStart
- obj.Position = UDim2.new(
- startPos.X.Scale,
- startPos.X.Offset + delta.X,
- startPos.Y.Scale,
- startPos.Y.Offset + delta.Y
- )
- end
- end)
- end
- local btn = Instance.new("TextButton", sg)
- btn.Size = UDim2.new(0, 80, 0, 30)
- btn.Position = UDim2.new(0, 10, 0, 10)
- btn.Text = "F3 MENU"
- btn.BackgroundColor3 = Color3.fromRGB(45, 45, 45)
- btn.TextColor3 = Color3.new(1, 1, 1)
- btn.Font = Enum.Font.SourceSansBold
- btn.BorderSizePixel = 0
- makeDraggable(btn)
- local frame = Instance.new("Frame", sg)
- frame.Size = UDim2.new(0, 300, 0, 480)
- frame.Position = UDim2.new(0, 10, 0, 50)
- frame.BackgroundColor3 = Color3.new(0, 0, 0)
- frame.BackgroundTransparency = 0.4
- frame.BorderSizePixel = 0
- frame.Active = true
- makeDraggable(frame)
- local info = Instance.new("TextLabel", frame)
- info.Size = UDim2.new(1, -20, 0, 200)
- info.Position = UDim2.new(0, 10, 0, 10)
- info.BackgroundTransparency = 1
- info.TextColor3 = Color3.new(1, 1, 1)
- info.TextXAlignment = Enum.TextXAlignment.Left
- info.TextYAlignment = Enum.TextYAlignment.Top
- info.Font = Enum.Font.Code
- info.TextSize = 13
- info.RichText = true
- local function makeGraph(name, yPos, color)
- local label = Instance.new("TextLabel", frame)
- label.Text = name
- label.Size = UDim2.new(1, 0, 0, 15)
- label.Position = UDim2.new(0, 10, 0, yPos - 18)
- label.TextColor3 = color
- label.BackgroundTransparency = 1
- label.TextSize = 10
- label.Font = Enum.Font.Code
- label.TextXAlignment = Enum.TextXAlignment.Left
- local gFrame = Instance.new("Frame", frame)
- gFrame.Size = UDim2.new(1, -20, 0, 40)
- gFrame.Position = UDim2.new(0, 10, 0, yPos)
- gFrame.BackgroundColor3 = Color3.new(0, 0, 0)
- gFrame.BackgroundTransparency = 0.7
- local bars = {}
- for i = 1, 30 do
- local b = Instance.new("Frame", gFrame)
- b.Size = UDim2.new(1/30, -1, 0.1, 0)
- b.Position = UDim2.new((i-1)/30, 0, 1, 0)
- b.AnchorPoint = Vector2.new(0, 1)
- b.BackgroundColor3 = color
- b.BorderSizePixel = 0
- bars[i] = b
- end
- return bars
- end
- local fBars = makeGraph("FPS PERFORMANCE", 250, Color3.new(0, 1, 0))
- local tBars = makeGraph("TPS (PHYSICS)", 310, Color3.new(1, 1, 0))
- local pBars = makeGraph("NETWORK PING", 370, Color3.new(0, 0.8, 1))
- local gizmo = Instance.new("Frame", sg)
- gizmo.Size = UDim2.new(0, 80, 0, 80)
- gizmo.Position = UDim2.new(1, -100, 0, 20)
- gizmo.BackgroundTransparency = 1
- local function addAxis(color, name)
- local a = Instance.new("Frame", gizmo)
- a.Size = UDim2.new(0, 2, 0, 30)
- a.BackgroundColor3 = color
- a.AnchorPoint = Vector2.new(0.5, 0.5)
- local t = Instance.new("TextLabel", a)
- t.Text = name; t.TextColor3 = color; t.Size = UDim2.new(0,10,0,10); t.Position = UDim2.new(0,0,0,-12); t.BackgroundTransparency = 1
- return a
- end
- local axX, axY, axZ = addAxis(Color3.new(1,0,0),"X"), addAxis(Color3.new(0,1,0),"Y"), addAxis(Color3.new(0,0,1),"Z")
- local fpsH, tpsH, pngH = {}, {}, {}
- local lastT = tick()
- local fr = 0
- RunService.RenderStepped:Connect(function()
- if not frame.Visible then return end
- fr = fr + 1
- if tick() - lastT >= 1 then
- local fps = fr
- local tps = workspace:GetRealPhysicsFPS()
- local png = Stats.Network.ServerStatsItem["Data Ping"]:GetValue()
- local function updateH(tab, val, bars, max)
- table.insert(tab, val); if #tab > 30 then table.remove(tab, 1) end
- for i, v in ipairs(tab) do
- if bars[i] then bars[i].Size = UDim2.new(1/30, -1, math.clamp(v/max, 0.1, 1), 0) end
- end
- end
- updateH(fpsH, fps, fBars, 60)
- updateH(tpsH, tps, tBars, 60)
- updateH(pngH, png, pBars, 300)
- fr = 0; lastT = tick()
- end
- local root = Player.Character and Player.Character:FindFirstChild("HumanoidRootPart")
- local hum = Player.Character and Player.Character:FindFirstChild("Humanoid")
- local speed = root and (root.Velocity * Vector3.new(1,0,1)).Magnitude * 1.097 or 0
- info.Text = string.format(
- "<font color='#00FF00'>[ SYSTEM ]</font>\nFPS: %d | Ping: %s\nTPS: %.1f | Mem: %.1f MB\n\n" ..
- "<font color='#FFA500'>[ PLAYER ]</font>\nXYZ: %.1f, %.1f, %.1f\nSpeed: %.1f km/h\nState: %s\n\n" ..
- "<font color='#00AEEF'>[ CURSOR ]</font>\nTarget: %s\nDist: %.1f",
- fpsH[#fpsH] or 0, Stats.Network.ServerStatsItem["Data Ping"]:GetValueString(),
- workspace:GetRealPhysicsFPS(), Stats:GetTotalMemoryUsageMb(),
- root and root.Position.X or 0, root and root.Position.Y or 0, root and root.Position.Z or 0,
- speed, hum and tostring(hum:GetState()):gsub("Enum.HumanoidStateType.", "") or "N/A",
- Mouse.Target and Mouse.Target.Name:sub(1,15) or "None",
- (root and Mouse.Target) and (root.Position - Mouse.Target.Position).Magnitude or 0
- )
- local cf = Camera.CFrame
- local function rot(gui, vec)
- local loc = cf:VectorToObjectSpace(vec)
- gui.Position = UDim2.new(0.5 + (loc.X * 0.4), 0, 0.5 - (loc.Y * 0.4), 0)
- gui.Rotation = math.deg(math.atan2(loc.X, loc.Y))
- gui.BackgroundTransparency = loc.Z < 0 and 0 or 0.7
- end
- rot(axX, Vector3.new(1,0,0)); rot(axY, Vector3.new(0,1,0)); rot(axZ, Vector3.new(0,0,1))
- end)
- btn.MouseButton1Click:Connect(function()
- frame.Visible = not frame.Visible
- gizmo.Visible = frame.Visible
- end)
- UserInputService.InputBegan:Connect(function(i, p)
- if not p and i.KeyCode == Enum.KeyCode.F3 then
- frame.Visible = not frame.Visible
- gizmo.Visible = frame.Visible
- end
- end)
Advertisement
Add Comment
Please, Sign In to add comment