Created
May 18, 2026 14:33
-
-
Save DuyNgao2306/32b5763ed44c803abdecdcb286907657 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| --// CROW UI PRO FINAL (STABLE + ANTI AFK + FULL REDUCE) | |
| local Players = game:GetService("Players") | |
| local RunService = game:GetService("RunService") | |
| local Lighting = game:GetService("Lighting") | |
| local Stats = game:GetService("Stats") | |
| local VirtualUser = game:GetService("VirtualUser") | |
| local player = Players.LocalPlayer | |
| -- WAIT GUI | |
| local function getGui() | |
| local g = player:FindFirstChildOfClass("PlayerGui") | |
| while not g do task.wait() g = player:FindFirstChildOfClass("PlayerGui") end | |
| return g | |
| end | |
| local playerGui = getGui() | |
| if playerGui:FindFirstChild("CrowUI") then return end | |
| -- ROOT | |
| local gui = Instance.new("ScreenGui") | |
| gui.Name = "CrowUI" | |
| gui.ResetOnSpawn = false | |
| gui.IgnoreGuiInset = true | |
| gui.Parent = playerGui | |
| -- ================= BUTTON ================= | |
| local openBtn = Instance.new("TextButton", gui) | |
| openBtn.Size = UDim2.new(0,50,0,50) | |
| openBtn.Position = UDim2.new(0,15,0.5,-25) | |
| openBtn.Text = "≡" | |
| openBtn.TextScaled = true | |
| openBtn.BackgroundColor3 = Color3.fromRGB(255,255,255) | |
| Instance.new("UICorner", openBtn) | |
| -- ================= MENU ================= | |
| local menu = Instance.new("Frame", gui) | |
| menu.Size = UDim2.new(0,270,0,360) | |
| menu.Position = UDim2.new(0.5,-135,0.5,-180) | |
| menu.BackgroundColor3 = Color3.fromRGB(235,235,235) | |
| menu.Visible = false | |
| Instance.new("UICorner", menu) | |
| local scroll = Instance.new("ScrollingFrame", menu) | |
| scroll.Size = UDim2.new(1,0,1,0) | |
| scroll.BackgroundTransparency = 1 | |
| scroll.AutomaticCanvasSize = Enum.AutomaticSize.Y | |
| Instance.new("UIListLayout", scroll) | |
| -- ================= DRAG ================= | |
| local function drag(f) | |
| local d=false | |
| local s,p | |
| f.InputBegan:Connect(function(i) | |
| if i.UserInputType == Enum.UserInputType.MouseButton1 then | |
| d=true | |
| s=i.Position | |
| p=f.Position | |
| end | |
| end) | |
| f.InputEnded:Connect(function() | |
| d=false | |
| end) | |
| f.InputChanged:Connect(function(i) | |
| if d then | |
| local delta=i.Position - s | |
| f.Position=UDim2.new(p.X.Scale,p.X.Offset+delta.X,p.Y.Scale,p.Y.Offset+delta.Y) | |
| end | |
| end) | |
| end | |
| drag(menu) | |
| drag(openBtn) | |
| -- ================= SWITCH ================= | |
| local function createSwitch(text,order) | |
| local b=Instance.new("TextButton",scroll) | |
| b.Size=UDim2.new(1,0,0,40) | |
| b.Text=text | |
| b.LayoutOrder=order | |
| b.BackgroundColor3=Color3.fromRGB(200,200,200) | |
| local state=false | |
| b:SetAttribute("State",false) | |
| b.MouseButton1Click:Connect(function() | |
| state=not state | |
| b:SetAttribute("State",state) | |
| b.BackgroundColor3=state and Color3.fromRGB(0,200,100) or Color3.fromRGB(200,200,200) | |
| end) | |
| return b | |
| end | |
| -- SWITCHES | |
| local fpsSw=createSwitch("FPS",1) | |
| local pingSw=createSwitch("Ping",2) | |
| local gfxSw=createSwitch("Graphics",3) | |
| local partSw=createSwitch("Part Reduce",4) | |
| local hideSw=createSwitch("Hide UI",5) | |
| local flySw=createSwitch("Fly",6) | |
| local afkSw=createSwitch("Anti AFK VIP",7) | |
| -- ================= FPS/PING ================= | |
| local fpsBox=Instance.new("TextLabel",gui) | |
| fpsBox.Position=UDim2.new(0,10,0,10) | |
| fpsBox.Size=UDim2.new(0,120,0,30) | |
| fpsBox.BackgroundTransparency=1 | |
| local pingBox=fpsBox:Clone() | |
| pingBox.Position=UDim2.new(0,10,0,45) | |
| pingBox.Parent=gui | |
| fpsBox.Parent=gui | |
| RunService.RenderStepped:Connect(function(dt) | |
| if fpsSw:GetAttribute("State") then | |
| fpsBox.Text="FPS: "..math.floor(1/dt) | |
| else | |
| fpsBox.Text="" | |
| end | |
| if pingSw:GetAttribute("State") then | |
| local p=0 | |
| pcall(function() | |
| p=Stats.PerformanceStats.Ping:GetValue() | |
| end) | |
| pingBox.Text="Ping: "..math.floor(p) | |
| else | |
| pingBox.Text="" | |
| end | |
| end) | |
| -- ================= GRAPHICS FIX ================= | |
| local lightingBackup = {} | |
| gfxSw:GetAttributeChangedSignal("State"):Connect(function() | |
| local state = gfxSw:GetAttribute("State") | |
| if state then | |
| lightingBackup = { | |
| Brightness = Lighting.Brightness, | |
| GlobalShadows = Lighting.GlobalShadows, | |
| FogEnd = Lighting.FogEnd | |
| } | |
| Lighting.Brightness = 1 | |
| Lighting.GlobalShadows = false | |
| Lighting.FogEnd = 100 | |
| -- Disable all effects safely | |
| for _,v in ipairs(Lighting:GetDescendants()) do | |
| if v:IsA("PostEffect") or v:IsA("Atmosphere") then | |
| pcall(function() v.Enabled = false end) | |
| end | |
| end | |
| else | |
| for k,v in pairs(lightingBackup) do | |
| Lighting[k] = v | |
| end | |
| for _,v in ipairs(Lighting:GetDescendants()) do | |
| if v:IsA("PostEffect") or v:IsA("Atmosphere") then | |
| pcall(function() v.Enabled = true end) | |
| end | |
| end | |
| end | |
| end) | |
| -- ================= PART REDUCE FIX ================= | |
| local reducedParts={} | |
| local reduceConnection | |
| local function reducePart(v) | |
| if v:IsA("BasePart") and not reducedParts[v] then | |
| reducedParts[v]={Material=v.Material,Color=v.Color} | |
| v.Material=Enum.Material.SmoothPlastic | |
| v.Color=Color3.fromRGB(120,120,120) | |
| v.CastShadow=false | |
| end | |
| if v:IsA("MeshPart") then | |
| pcall(function() v.TextureID="" end) | |
| end | |
| if v:IsA("UnionOperation") then | |
| pcall(function() v.UsePartColor=true end) | |
| end | |
| if v:IsA("Decal") or v:IsA("Texture") then | |
| v.Transparency=1 | |
| end | |
| end | |
| local function restoreParts() | |
| for v,data in pairs(reducedParts) do | |
| if v and v.Parent then | |
| v.Material=data.Material | |
| v.Color=data.Color | |
| end | |
| end | |
| reducedParts={} | |
| end | |
| partSw:GetAttributeChangedSignal("State"):Connect(function() | |
| if partSw:GetAttribute("State") then | |
| for _,v in ipairs(workspace:GetDescendants()) do | |
| reducePart(v) | |
| end | |
| reduceConnection=workspace.DescendantAdded:Connect(function(v) | |
| reducePart(v) | |
| end) | |
| else | |
| restoreParts() | |
| if reduceConnection then | |
| reduceConnection:Disconnect() | |
| reduceConnection=nil | |
| end | |
| end | |
| end) | |
| -- ================= FLY ================= | |
| flySw:GetAttributeChangedSignal("State"):Connect(function() | |
| if flySw:GetAttribute("State") then | |
| pcall(function() | |
| loadstring(game:HttpGet("https://rawscripts.net/raw/Universal-Script-Fly-V3-X-132770"))() | |
| end) | |
| end | |
| end) | |
| -- ================= HIDE UI ================= | |
| local hidden={} | |
| hideSw:GetAttributeChangedSignal("State"):Connect(function() | |
| if hideSw:GetAttribute("State") then | |
| for _,v in ipairs(playerGui:GetChildren()) do | |
| if v:IsA("ScreenGui") and v~=gui then | |
| hidden[v]=true | |
| v.Enabled=false | |
| end | |
| end | |
| else | |
| for v in pairs(hidden) do | |
| if v then v.Enabled=true end | |
| end | |
| hidden={} | |
| end | |
| end) | |
| -- ================= ANTI AFK ================= | |
| local antiAFK=false | |
| afkSw:GetAttributeChangedSignal("State"):Connect(function() | |
| antiAFK=afkSw:GetAttribute("State") | |
| end) | |
| player.Idled:Connect(function() | |
| if antiAFK then | |
| VirtualUser:CaptureController() | |
| VirtualUser:Button2Down(Vector2.new(),workspace.CurrentCamera.CFrame) | |
| task.wait(1) | |
| VirtualUser:Button2Up(Vector2.new(),workspace.CurrentCamera.CFrame) | |
| end | |
| end) | |
| task.spawn(function() | |
| while true do | |
| task.wait(math.random(180,420)) | |
| if antiAFK then | |
| local char=player.Character | |
| if char then | |
| local hum=char:FindFirstChildOfClass("Humanoid") | |
| if hum then | |
| local r=math.random(1,3) | |
| if r==1 then | |
| hum.Jump=true | |
| elseif r==2 then | |
| hum:Move(Vector3.new(math.random(-1,1),0,math.random(-1,1)),true) | |
| else | |
| workspace.CurrentCamera.CFrame *= CFrame.Angles(0,math.rad(math.random(-10,10)),0) | |
| end | |
| end | |
| end | |
| end | |
| end | |
| end) | |
| -- ================= MENU ================= | |
| openBtn.MouseButton1Click:Connect(function() | |
| menu.Visible = not menu.Visible | |
| end) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment