--======================================================== -- UNEPIC IDENTITY FRAUD TROLLING GUI -- ONE LOCALSCRIPT ONLY -- -- • Fast loading animation -- • Smooth slide-in -- • Draggable / minimizable -- • X button + close confirmation -- • Floor-safe Noclip -- • Player ESP -- • Green look-direction lines -- • Hidden / Spotted detector -- • Third-person shift-lock style camera -- • 2X Walk Speed -- -- Put in: -- StarterPlayer > StarterPlayerScripts > LocalScript --======================================================== local Players = game:GetService("Players") local RunService = game:GetService("RunService") local UIS = game:GetService("UserInputService") local TweenService = game:GetService("TweenService") local LocalPlayer = Players.LocalPlayer local PlayerGui = LocalPlayer:WaitForChild("PlayerGui") local Camera = workspace.CurrentCamera ---------------------------------------------------------- -- STATE ---------------------------------------------------------- local Closed = false local NoclipEnabled = false local ESPEnabled = false local LookLinesEnabled = false local ThirdPersonEnabled = false local SpeedEnabled = false local Minimized = false local LOOK_DISTANCE = 60 local DETECTOR_DISTANCE = 150 local OriginalCollisions = {} local Connections = {} local LastGroundTime = 0 local LastGroundY = nil local JumpLockUntil = 0 local NormalWalkSpeed = 16 local OriginalAutoRotate = true ---------------------------------------------------------- -- ORIGINAL CAMERA ---------------------------------------------------------- local OriginalCameraMode = LocalPlayer.CameraMode local OriginalMinZoom = LocalPlayer.CameraMinZoomDistance local OriginalMaxZoom = LocalPlayer.CameraMaxZoomDistance ---------------------------------------------------------- -- CONNECTION HELPER ---------------------------------------------------------- local function Connect(Signal, Function) local Connection = Signal:Connect(Function) table.insert( Connections, Connection ) return Connection end ---------------------------------------------------------- -- REMOVE OLD VERSION ---------------------------------------------------------- local Old = PlayerGui:FindFirstChild( "UnepicIdentityFraudTrollingGUI" ) if Old then Old:Destroy() end local OldLines = workspace:FindFirstChild( "UnepicIdentityLookLines" ) if OldLines then OldLines:Destroy() end ---------------------------------------------------------- -- GUI ---------------------------------------------------------- local ScreenGui = Instance.new("ScreenGui") ScreenGui.Name = "UnepicIdentityFraudTrollingGUI" ScreenGui.ResetOnSpawn = false ScreenGui.IgnoreGuiInset = false ScreenGui.Parent = PlayerGui ---------------------------------------------------------- -- LOADING SCREEN ---------------------------------------------------------- local Loading = Instance.new("Frame") Loading.Size = UDim2.fromScale(1,1) Loading.BackgroundColor3 = Color3.fromRGB(8,8,11) Loading.BackgroundTransparency = 0.12 Loading.BorderSizePixel = 0 Loading.Active = false Loading.ZIndex = 100 Loading.Parent = ScreenGui local LoadCard = Instance.new("Frame") LoadCard.AnchorPoint = Vector2.new(0.5,0.5) LoadCard.Position = UDim2.fromScale(0.5,0.5) LoadCard.Size = UDim2.fromOffset(290,115) LoadCard.BackgroundColor3 = Color3.fromRGB(18,18,23) LoadCard.BorderSizePixel = 0 LoadCard.ZIndex = 101 LoadCard.Parent = Loading local LoadCorner = Instance.new("UICorner") LoadCorner.CornerRadius = UDim.new(0,14) LoadCorner.Parent = LoadCard local LoadStroke = Instance.new("UIStroke") LoadStroke.Color = Color3.fromRGB(75,75,85) LoadStroke.Transparency = 0.35 LoadStroke.Parent = LoadCard local LoadTitle = Instance.new("TextLabel") LoadTitle.Size = UDim2.new(1,-24,0,30) LoadTitle.Position = UDim2.fromOffset(12,13) LoadTitle.BackgroundTransparency = 1 LoadTitle.Text = "UNEPIC IDENTITY FRAUD" LoadTitle.TextColor3 = Color3.fromRGB(245,245,250) LoadTitle.Font = Enum.Font.GothamBold LoadTitle.TextSize = 15 LoadTitle.TextXAlignment = Enum.TextXAlignment.Left LoadTitle.ZIndex = 102 LoadTitle.Parent = LoadCard local LoadStatus = Instance.new("TextLabel") LoadStatus.Size = UDim2.new(1,-24,0,20) LoadStatus.Position = UDim2.fromOffset(12,43) LoadStatus.BackgroundTransparency = 1 LoadStatus.Text = "Initializing..." LoadStatus.TextColor3 = Color3.fromRGB(150,150,160) LoadStatus.Font = Enum.Font.Gotham LoadStatus.TextSize = 11 LoadStatus.TextXAlignment = Enum.TextXAlignment.Left LoadStatus.ZIndex = 102 LoadStatus.Parent = LoadCard local BarBG = Instance.new("Frame") BarBG.Size = UDim2.new(1,-24,0,7) BarBG.Position = UDim2.new(0,12,1,-27) BarBG.BackgroundColor3 = Color3.fromRGB(40,40,48) BarBG.BorderSizePixel = 0 BarBG.ZIndex = 102 BarBG.Parent = LoadCard local BarBGCorner = Instance.new("UICorner") BarBGCorner.CornerRadius = UDim.new(1,0) BarBGCorner.Parent = BarBG local Bar = Instance.new("Frame") Bar.Size = UDim2.fromScale(0,1) Bar.BackgroundColor3 = Color3.fromRGB(235,235,240) Bar.BorderSizePixel = 0 Bar.ZIndex = 103 Bar.Parent = BarBG local BarCorner = Instance.new("UICorner") BarCorner.CornerRadius = UDim.new(1,0) BarCorner.Parent = Bar ---------------------------------------------------------- -- MAIN WINDOW ---------------------------------------------------------- local Main = Instance.new("Frame") Main.Name = "Main" Main.Size = UDim2.fromOffset(300,266) Main.Position = UDim2.new( 0, -330, 0.5, -133 ) Main.BackgroundColor3 = Color3.fromRGB(18,18,22) Main.BorderSizePixel = 0 Main.Visible = false Main.Parent = ScreenGui local MainCorner = Instance.new("UICorner") MainCorner.CornerRadius = UDim.new(0,13) MainCorner.Parent = Main local MainStroke = Instance.new("UIStroke") MainStroke.Color = Color3.fromRGB(68,68,78) MainStroke.Transparency = 0.25 MainStroke.Parent = Main ---------------------------------------------------------- -- TOP BAR ---------------------------------------------------------- local TopBar = Instance.new("Frame") TopBar.Size = UDim2.new(1,0,0,39) TopBar.BackgroundTransparency = 1 TopBar.Parent = Main local Title = Instance.new("TextLabel") Title.Size = UDim2.new(1,-85,1,0) Title.Position = UDim2.fromOffset(12,0) Title.BackgroundTransparency = 1 Title.Text = "UNEPIC IDENTITY FRAUD TROLLING GUI" Title.TextColor3 = Color3.fromRGB(245,245,250) Title.Font = Enum.Font.GothamBold Title.TextSize = 10 Title.TextXAlignment = Enum.TextXAlignment.Left Title.Parent = TopBar ---------------------------------------------------------- -- MINIMIZE BUTTON ---------------------------------------------------------- local Minimize = Instance.new("TextButton") Minimize.Size = UDim2.fromOffset(29,26) Minimize.Position = UDim2.new(1,-70,0,6) Minimize.BackgroundColor3 = Color3.fromRGB(35,35,42) Minimize.BorderSizePixel = 0 Minimize.Text = "—" Minimize.TextColor3 = Color3.fromRGB(255,255,255) Minimize.Font = Enum.Font.GothamBold Minimize.TextSize = 17 Minimize.Parent = TopBar local MinCorner = Instance.new("UICorner") MinCorner.CornerRadius = UDim.new(0,8) MinCorner.Parent = Minimize ---------------------------------------------------------- -- CLOSE X ---------------------------------------------------------- local CloseButton = Instance.new("TextButton") CloseButton.Size = UDim2.fromOffset(29,26) CloseButton.Position = UDim2.new(1,-37,0,6) CloseButton.BackgroundColor3 = Color3.fromRGB(45,32,35) CloseButton.BorderSizePixel = 0 CloseButton.Text = "×" CloseButton.TextColor3 = Color3.fromRGB(255,150,150) CloseButton.Font = Enum.Font.GothamBold CloseButton.TextSize = 19 CloseButton.Parent = TopBar local CloseCorner = Instance.new("UICorner") CloseCorner.CornerRadius = UDim.new(0,8) CloseCorner.Parent = CloseButton ---------------------------------------------------------- -- BODY ---------------------------------------------------------- local Body = Instance.new("Frame") Body.Size = UDim2.new(1,-20,1,-49) Body.Position = UDim2.fromOffset(10,41) Body.BackgroundTransparency = 1 Body.ClipsDescendants = true Body.Parent = Main ---------------------------------------------------------- -- BUTTON CREATOR ---------------------------------------------------------- local ButtonAnimations = {} local function CreateButton(Text,X,Y) local Button = Instance.new("TextButton") Button.Size = UDim2.fromOffset(135,40) -- Starts offscreen for intro Button.Position = UDim2.fromOffset(330,Y) Button.BackgroundColor3 = Color3.fromRGB(32,32,39) Button.BorderSizePixel = 0 Button.Text = Text Button.TextColor3 = Color3.fromRGB(230,230,235) Button.Font = Enum.Font.GothamSemibold Button.TextSize = 11 Button.AutoButtonColor = false Button.Parent = Body local Corner = Instance.new("UICorner") Corner.CornerRadius = UDim.new(0,9) Corner.Parent = Button local Stroke = Instance.new("UIStroke") Stroke.Color = Color3.fromRGB(70,70,80) Stroke.Transparency = 0.6 Stroke.Parent = Button table.insert( ButtonAnimations, { Button = Button, Target = UDim2.fromOffset(X,Y) } ) return Button end ---------------------------------------------------------- -- BUTTONS ---------------------------------------------------------- local NoclipButton = CreateButton( "NOCLIP OFF", 0, 0 ) local ESPButton = CreateButton( "PLAYER ESP OFF", 145, 0 ) local LookButton = CreateButton( "LOOK LINES OFF", 0, 48 ) local ThirdButton = CreateButton( "3RD PERSON OFF", 145, 48 ) local SpeedButton = CreateButton( "2X SPEED OFF", 0, 96 ) ---------------------------------------------------------- -- DETECTOR ---------------------------------------------------------- local Detector = Instance.new("Frame") Detector.Size = UDim2.new(1,0,0,59) Detector.Position = UDim2.fromOffset(0,146) Detector.BackgroundColor3 = Color3.fromRGB(27,27,33) Detector.BorderSizePixel = 0 Detector.Parent = Body local DetectorCorner = Instance.new("UICorner") DetectorCorner.CornerRadius = UDim.new(0,10) DetectorCorner.Parent = Detector local DetectorTitle = Instance.new("TextLabel") DetectorTitle.Size = UDim2.new(1,-20,0,20) DetectorTitle.Position = UDim2.fromOffset(10,7) DetectorTitle.BackgroundTransparency = 1 DetectorTitle.Text = "NEAREST PLAYER" DetectorTitle.TextColor3 = Color3.fromRGB(145,145,155) DetectorTitle.Font = Enum.Font.GothamBold DetectorTitle.TextSize = 10 DetectorTitle.TextXAlignment = Enum.TextXAlignment.Left DetectorTitle.Parent = Detector local DetectorStatus = Instance.new("TextLabel") DetectorStatus.Size = UDim2.new(1,-20,0,25) DetectorStatus.Position = UDim2.fromOffset(10,26) DetectorStatus.BackgroundTransparency = 1 DetectorStatus.Text = "SEARCHING..." DetectorStatus.TextColor3 = Color3.fromRGB(235,235,240) DetectorStatus.Font = Enum.Font.GothamBold DetectorStatus.TextSize = 12 DetectorStatus.TextXAlignment = Enum.TextXAlignment.Left DetectorStatus.Parent = Detector ---------------------------------------------------------- -- CONFIRM CLOSE SCREEN ---------------------------------------------------------- local Confirm = Instance.new("Frame") Confirm.Size = UDim2.fromScale(1,1) Confirm.BackgroundColor3 = Color3.fromRGB(12,12,16) Confirm.BackgroundTransparency = 0.06 Confirm.BorderSizePixel = 0 Confirm.Visible = false Confirm.ZIndex = 50 Confirm.Parent = Main local ConfirmCorner = Instance.new("UICorner") ConfirmCorner.CornerRadius = UDim.new(0,13) ConfirmCorner.Parent = Confirm local ConfirmTitle = Instance.new("TextLabel") ConfirmTitle.Size = UDim2.new(1,-30,0,38) ConfirmTitle.Position = UDim2.fromOffset(15,48) ConfirmTitle.BackgroundTransparency = 1 ConfirmTitle.Text = "ARE YOU SURE?" ConfirmTitle.TextColor3 = Color3.fromRGB(250,250,255) ConfirmTitle.Font = Enum.Font.GothamBold ConfirmTitle.TextSize = 18 ConfirmTitle.ZIndex = 51 ConfirmTitle.Parent = Confirm local ConfirmText = Instance.new("TextLabel") ConfirmText.Size = UDim2.new(1,-40,0,52) ConfirmText.Position = UDim2.fromOffset(20,88) ConfirmText.BackgroundTransparency = 1 ConfirmText.Text = "Closing will turn off every modification\nand remove this GUI." ConfirmText.TextWrapped = true ConfirmText.TextColor3 = Color3.fromRGB(175,175,185) ConfirmText.Font = Enum.Font.Gotham ConfirmText.TextSize = 12 ConfirmText.ZIndex = 51 ConfirmText.Parent = Confirm ---------------------------------------------------------- -- CANCEL ---------------------------------------------------------- local CancelClose = Instance.new("TextButton") CancelClose.Size = UDim2.fromOffset(125,42) CancelClose.Position = UDim2.new( 0.5, -132, 1, -65 ) CancelClose.BackgroundColor3 = Color3.fromRGB(40,40,47) CancelClose.BorderSizePixel = 0 CancelClose.Text = "CANCEL" CancelClose.TextColor3 = Color3.fromRGB(235,235,240) CancelClose.Font = Enum.Font.GothamBold CancelClose.TextSize = 12 CancelClose.ZIndex = 52 CancelClose.Parent = Confirm local CancelCorner = Instance.new("UICorner") CancelCorner.CornerRadius = UDim.new(0,9) CancelCorner.Parent = CancelClose ---------------------------------------------------------- -- CONFIRM CLOSE ---------------------------------------------------------- local ConfirmClose = Instance.new("TextButton") ConfirmClose.Size = UDim2.fromOffset(125,42) ConfirmClose.Position = UDim2.new( 0.5, 7, 1, -65 ) ConfirmClose.BackgroundColor3 = Color3.fromRGB(75,35,40) ConfirmClose.BorderSizePixel = 0 ConfirmClose.Text = "CLOSE SCRIPT" ConfirmClose.TextColor3 = Color3.fromRGB(255,170,170) ConfirmClose.Font = Enum.Font.GothamBold ConfirmClose.TextSize = 11 ConfirmClose.ZIndex = 52 ConfirmClose.Parent = Confirm local ConfirmCloseCorner = Instance.new("UICorner") ConfirmCloseCorner.CornerRadius = UDim.new(0,9) ConfirmCloseCorner.Parent = ConfirmClose ---------------------------------------------------------- -- BUTTON STYLE ---------------------------------------------------------- local function SetButton( Button, Name, Enabled ) Button.Text = Name .. " " .. ( Enabled and "ON" or "OFF" ) TweenService:Create( Button, TweenInfo.new( 0.18, Enum.EasingStyle.Quad, Enum.EasingDirection.Out ), { BackgroundColor3 = Enabled and Color3.fromRGB( 49,49,59 ) or Color3.fromRGB( 32,32,39 ) } ):Play() end ---------------------------------------------------------- -- CHARACTER ---------------------------------------------------------- local function GetCharacter() local Character = LocalPlayer.Character if not Character then return end local Humanoid = Character:FindFirstChildOfClass( "Humanoid" ) local Root = Character:FindFirstChild( "HumanoidRootPart" ) if not Humanoid or not Root then return end return Character,Humanoid,Root end ---------------------------------------------------------- -- COLLISION ---------------------------------------------------------- local function SaveCollisions() table.clear( OriginalCollisions ) local Character = LocalPlayer.Character if not Character then return end for _,Object in ipairs( Character:GetDescendants() ) do if Object:IsA("BasePart") then OriginalCollisions[Object] = Object.CanCollide end end end local function RestoreCollisions() for Part,Value in pairs( OriginalCollisions ) do if Part and Part.Parent then Part.CanCollide = Value end end table.clear( OriginalCollisions ) end ---------------------------------------------------------- -- FLOOR FINDER ---------------------------------------------------------- local function FindGround( Character, Humanoid, Root ) local StandHeight = Humanoid.HipHeight + Root.Size.Y / 2 local FeetY = Root.Position.Y - StandHeight local Params = RaycastParams.new() Params.FilterType = Enum.RaycastFilterType.Exclude Params.FilterDescendantsInstances = { Character } local Offsets = { Vector3.new(0,0,0), Vector3.new(0.7,0,0), Vector3.new(-0.7,0,0), Vector3.new(0,0,0.7), Vector3.new(0,0,-0.7) } local Best for _,Offset in ipairs(Offsets) do local Origin = Vector3.new( Root.Position.X + Offset.X, FeetY + 1.3, Root.Position.Z + Offset.Z ) local Result = workspace:Raycast( Origin, Vector3.new(0,-5,0), Params ) if Result and Result.Normal.Y > 0.65 then if not Best or Result.Position.Y > Best.Position.Y then Best = Result end end end return Best,StandHeight end ---------------------------------------------------------- -- NOCLIP ---------------------------------------------------------- Connect( RunService.Stepped, function() if Closed or not NoclipEnabled then return end local Character = LocalPlayer.Character if not Character then return end for _,Object in ipairs( Character:GetDescendants() ) do if Object:IsA("BasePart") then Object.CanCollide = false end end end ) ---------------------------------------------------------- -- FLOOR SAFE ---------------------------------------------------------- Connect( RunService.Heartbeat, function() if Closed or not NoclipEnabled then return end local Character,Humanoid,Root = GetCharacter() if not Character or not Humanoid or not Root then return end local Ground,StandHeight = FindGround( Character, Humanoid, Root ) if Ground then LastGroundTime = time() local TargetY = Ground.Position.Y + StandHeight LastGroundY = TargetY local Velocity = Root.AssemblyLinearVelocity local Distance = Root.Position.Y - TargetY if time() < JumpLockUntil then return end if Velocity.Y > 1 then return end if Distance <= 0.22 and Distance > -1.5 then local Rotation = Root.CFrame - Root.Position Root.CFrame = CFrame.new( Root.Position.X, TargetY, Root.Position.Z ) * Rotation Root.AssemblyLinearVelocity = Vector3.new( Velocity.X, 0, Velocity.Z ) end elseif LastGroundY and time() - LastGroundTime < 0.12 then local Velocity = Root.AssemblyLinearVelocity if Velocity.Y <= 0 and Root.Position.Y < LastGroundY - 0.15 then local Rotation = Root.CFrame - Root.Position Root.CFrame = CFrame.new( Root.Position.X, LastGroundY, Root.Position.Z ) * Rotation Root.AssemblyLinearVelocity = Vector3.new( Velocity.X, 0, Velocity.Z ) end end end ) ---------------------------------------------------------- -- NOCLIP JUMP ---------------------------------------------------------- Connect( UIS.JumpRequest, function() if Closed or not NoclipEnabled then return end local Character,Humanoid,Root = GetCharacter() if not Character or not Humanoid or not Root then return end if time() - LastGroundTime > 0.18 then return end local JumpVelocity if Humanoid.UseJumpPower then JumpVelocity = Humanoid.JumpPower else JumpVelocity = math.sqrt( 2 * workspace.Gravity * Humanoid.JumpHeight ) end local Velocity = Root.AssemblyLinearVelocity Root.AssemblyLinearVelocity = Vector3.new( Velocity.X, JumpVelocity, Velocity.Z ) JumpLockUntil = time() + 0.18 end ) ---------------------------------------------------------- -- ESP ---------------------------------------------------------- local ESPFolder = Instance.new("Folder") ESPFolder.Name = "ESP" ESPFolder.Parent = ScreenGui local function RemoveESP(Target) local Existing = ESPFolder:FindFirstChild( tostring(Target.UserId) ) if Existing then Existing:Destroy() end end local function CreateESP(Target) if Closed or not ESPEnabled or Target == LocalPlayer then return end RemoveESP(Target) local Character = Target.Character if not Character then return end local Root = Character:FindFirstChild( "HumanoidRootPart" ) local Head = Character:FindFirstChild( "Head" ) if not Root then return end local Folder = Instance.new("Folder") Folder.Name = tostring(Target.UserId) Folder.Parent = ESPFolder local Highlight = Instance.new("Highlight") Highlight.Adornee = Character Highlight.DepthMode = Enum.HighlightDepthMode.AlwaysOnTop Highlight.FillColor = Color3.fromRGB(255,70,70) Highlight.FillTransparency = 0.65 Highlight.OutlineColor = Color3.fromRGB(255,255,255) Highlight.OutlineTransparency = 0 Highlight.Parent = Folder local Billboard = Instance.new("BillboardGui") Billboard.Adornee = Head or Root Billboard.Size = UDim2.fromOffset(180,36) Billboard.StudsOffset = Vector3.new(0,3,0) Billboard.AlwaysOnTop = true Billboard.Parent = Folder local Label = Instance.new("TextLabel") Label.Size = UDim2.fromScale(1,1) Label.BackgroundTransparency = 1 Label.Text = Target.DisplayName .. "\n@" .. Target.Name Label.Font = Enum.Font.GothamBold Label.TextSize = 12 Label.TextColor3 = Color3.fromRGB(255,255,255) Label.TextStrokeTransparency = 0.15 Label.Parent = Billboard end local function RefreshESP() ESPFolder:ClearAllChildren() if not ESPEnabled then return end for _,Target in ipairs( Players:GetPlayers() ) do CreateESP(Target) end end ---------------------------------------------------------- -- LOOK LINES ---------------------------------------------------------- local LookWorldFolder = Instance.new("Folder") LookWorldFolder.Name = "UnepicIdentityLookLines" LookWorldFolder.Parent = workspace local LookAdornmentFolder = Instance.new("Folder") LookAdornmentFolder.Name = "LookLineAdornments" LookAdornmentFolder.Parent = ScreenGui local LookData = {} local function RemoveLookLine(Target) local Data = LookData[Target] if Data then if Data.Part then Data.Part:Destroy() end if Data.Adornment then Data.Adornment:Destroy() end end LookData[Target] = nil end local function ClearLookLines() for Target,_ in pairs( LookData ) do RemoveLookLine(Target) end if LookWorldFolder.Parent then LookWorldFolder:ClearAllChildren() end if LookAdornmentFolder.Parent then LookAdornmentFolder: ClearAllChildren() end end local function CreateLookLine(Target) if Closed or not LookLinesEnabled or Target == LocalPlayer then return end RemoveLookLine(Target) local Character = Target.Character if not Character then return end local Head = Character:FindFirstChild("Head") local Root = Character:FindFirstChild( "HumanoidRootPart" ) if not Head and not Root then return end local Part = Instance.new("Part") Part.Name = "LookLine_" .. Target.Name Part.Size = Vector3.new( 0.1, 0.1, LOOK_DISTANCE ) Part.Anchored = true Part.CanCollide = false Part.CanTouch = false Part.CanQuery = false Part.Transparency = 1 Part.Parent = LookWorldFolder local Line = Instance.new( "BoxHandleAdornment" ) Line.Adornee = Part Line.Size = Part.Size Line.Color3 = Color3.fromRGB(0,255,70) Line.Transparency = 0 Line.AlwaysOnTop = true Line.ZIndex = 10 Line.Parent = LookAdornmentFolder LookData[Target] = { Part = Part, Adornment = Line } end local function RefreshLookLines() ClearLookLines() if not LookLinesEnabled then return end for _,Target in ipairs( Players:GetPlayers() ) do CreateLookLine(Target) end end ---------------------------------------------------------- -- THIRD PERSON ---------------------------------------------------------- local function ApplyThirdPerson() local _,Humanoid = GetCharacter() if ThirdPersonEnabled then LocalPlayer.CameraMode = Enum.CameraMode.Classic LocalPlayer.CameraMinZoomDistance = 7 LocalPlayer.CameraMaxZoomDistance = 7 if Humanoid then OriginalAutoRotate = Humanoid.AutoRotate Humanoid.AutoRotate = false Humanoid.CameraOffset = Vector3.new( 1.7, 0.4, 0 ) end else LocalPlayer.CameraMode = OriginalCameraMode LocalPlayer.CameraMinZoomDistance = OriginalMinZoom LocalPlayer.CameraMaxZoomDistance = OriginalMaxZoom UIS.MouseBehavior = Enum.MouseBehavior.Default if Humanoid then Humanoid.AutoRotate = OriginalAutoRotate Humanoid.CameraOffset = Vector3.zero end end end ---------------------------------------------------------- -- RENDER UPDATE ---------------------------------------------------------- Connect( RunService.RenderStepped, function() if Closed then return end -------------------------------------------------- -- LOOK LINES -------------------------------------------------- if LookLinesEnabled then for Target,Data in pairs( LookData ) do local Character = Target.Character local Head = Character and Character: FindFirstChild("Head") local Root = Character and Character: FindFirstChild( "HumanoidRootPart" ) local LookPart = Head or Root if LookPart and Data.Part and Data.Part.Parent then local Start = LookPart.Position local Finish = Start + LookPart.CFrame.LookVector * LOOK_DISTANCE local Middle = (Start + Finish) / 2 Data.Part.CFrame = CFrame.lookAt( Middle, Finish ) end end end -------------------------------------------------- -- THIRD PERSON / SHIFT LOCK -------------------------------------------------- if ThirdPersonEnabled then if UIS.MouseEnabled then UIS.MouseBehavior = Enum.MouseBehavior.LockCenter end local _,Humanoid,Root = GetCharacter() if Humanoid and Root and Camera then Humanoid.AutoRotate = false local Look = Camera.CFrame.LookVector local Flat = Vector3.new( Look.X, 0, Look.Z ) if Flat.Magnitude > 0.01 then Root.CFrame = CFrame.new( Root.Position, Root.Position + Flat.Unit ) end end end end ) ---------------------------------------------------------- -- NEAREST PLAYER ---------------------------------------------------------- local function GetNearestPlayer() local _,_,MyRoot = GetCharacter() if not MyRoot then return end local BestPlayer local BestDistance = DETECTOR_DISTANCE for _,Target in ipairs( Players:GetPlayers() ) do if Target ~= LocalPlayer then local Character = Target.Character local Root = Character and Character: FindFirstChild( "HumanoidRootPart" ) local Humanoid = Character and Character: FindFirstChildOfClass( "Humanoid" ) if Root and Humanoid and Humanoid.Health > 0 then local Distance = ( Root.Position - MyRoot.Position ).Magnitude if Distance < BestDistance then BestDistance = Distance BestPlayer = Target end end end end return BestPlayer,BestDistance end ---------------------------------------------------------- -- SPOTTED CHECK ---------------------------------------------------------- local function IsLookingAtMe(Target) local MyCharacter,_,MyRoot = GetCharacter() if not MyCharacter or not MyRoot then return false end local Character = Target.Character if not Character then return false end local Head = Character:FindFirstChild("Head") local Root = Character:FindFirstChild( "HumanoidRootPart" ) local LookPart = Head or Root if not LookPart then return false end local ToMe = MyRoot.Position - LookPart.Position if ToMe.Magnitude <= 0 then return true end local Facing = LookPart.CFrame.LookVector: Dot(ToMe.Unit) -- They must be facing fairly directly toward you if Facing < 0.72 then return false end local Params = RaycastParams.new() Params.FilterType = Enum.RaycastFilterType.Exclude Params.FilterDescendantsInstances = { Character, LookWorldFolder } local Result = workspace:Raycast( LookPart.Position, ToMe, Params ) if not Result then return true end return Result.Instance and Result.Instance: IsDescendantOf(MyCharacter) end ---------------------------------------------------------- -- DETECTOR LOOP ---------------------------------------------------------- task.spawn(function() while not Closed do local Target,Distance = GetNearestPlayer() if not Target then DetectorTitle.Text = "NEAREST PLAYER" DetectorStatus.Text = "NO PLAYER NEARBY" DetectorStatus.TextColor3 = Color3.fromRGB( 180,180,190 ) else DetectorTitle.Text = Target.DisplayName .. " • " .. math.floor(Distance) .. " STUDS" if IsLookingAtMe(Target) then DetectorStatus.Text = "● SPOTTED" DetectorStatus.TextColor3 = Color3.fromRGB( 255,85,85 ) else DetectorStatus.Text = "● HIDDEN" DetectorStatus.TextColor3 = Color3.fromRGB( 80,255,125 ) end end task.wait(0.12) end end) ---------------------------------------------------------- -- FEATURE BUTTONS ---------------------------------------------------------- Connect( NoclipButton.MouseButton1Click, function() if Closed then return end NoclipEnabled = not NoclipEnabled if NoclipEnabled then SaveCollisions() else RestoreCollisions() end SetButton( NoclipButton, "NOCLIP", NoclipEnabled ) end ) Connect( ESPButton.MouseButton1Click, function() if Closed then return end ESPEnabled = not ESPEnabled SetButton( ESPButton, "PLAYER ESP", ESPEnabled ) RefreshESP() end ) Connect( LookButton.MouseButton1Click, function() if Closed then return end LookLinesEnabled = not LookLinesEnabled SetButton( LookButton, "LOOK LINES", LookLinesEnabled ) RefreshLookLines() end ) Connect( ThirdButton.MouseButton1Click, function() if Closed then return end ThirdPersonEnabled = not ThirdPersonEnabled SetButton( ThirdButton, "3RD PERSON", ThirdPersonEnabled ) ApplyThirdPerson() end ) Connect( SpeedButton.MouseButton1Click, function() if Closed then return end SpeedEnabled = not SpeedEnabled local _,Humanoid = GetCharacter() if Humanoid then if SpeedEnabled then NormalWalkSpeed = Humanoid.WalkSpeed Humanoid.WalkSpeed = NormalWalkSpeed * 2 else Humanoid.WalkSpeed = NormalWalkSpeed end end SetButton( SpeedButton, "2X SPEED", SpeedEnabled ) end ) ---------------------------------------------------------- -- DRAGGING ---------------------------------------------------------- local Dragging = false local DragStart local StartPosition local DragInput Connect( TopBar.InputBegan, function(Input) if Closed or Confirm.Visible then return end if Input.UserInputType == Enum.UserInputType.MouseButton1 or Input.UserInputType == Enum.UserInputType.Touch then Dragging = true DragStart = Input.Position StartPosition = Main.Position Input.Changed:Connect(function() if Input.UserInputState == Enum.UserInputState.End then Dragging = false end end) end end ) Connect( TopBar.InputChanged, function(Input) if Input.UserInputType == Enum.UserInputType.MouseMovement or Input.UserInputType == Enum.UserInputType.Touch then DragInput = Input end end ) Connect( UIS.InputChanged, function(Input) if Closed then return end if Dragging and Input == DragInput then local Delta = Input.Position - DragStart Main.Position = UDim2.new( StartPosition.X.Scale, StartPosition.X.Offset + Delta.X, StartPosition.Y.Scale, StartPosition.Y.Offset + Delta.Y ) end end ) ---------------------------------------------------------- -- MINIMIZE ---------------------------------------------------------- Connect( Minimize.MouseButton1Click, function() if Closed or Confirm.Visible then return end Minimized = not Minimized if Minimized then Body.Visible = false Minimize.Text = "+" TweenService:Create( Main, TweenInfo.new( 0.22, Enum.EasingStyle.Quint, Enum.EasingDirection.Out ), { Size = UDim2.fromOffset( 300, 39 ) } ):Play() else Minimize.Text = "—" TweenService:Create( Main, TweenInfo.new( 0.22, Enum.EasingStyle.Quint, Enum.EasingDirection.Out ), { Size = UDim2.fromOffset( 300, 266 ) } ):Play() task.delay( 0.08, function() if not Minimized and not Closed then Body.Visible = true end end ) end end ) ---------------------------------------------------------- -- OPEN CLOSE CONFIRMATION ---------------------------------------------------------- Connect( CloseButton.MouseButton1Click, function() if Closed then return end -- Expand first if minimized if Minimized then Minimized = false Minimize.Text = "—" Main.Size = UDim2.fromOffset( 300, 266 ) Body.Visible = true end Confirm.Visible = true Confirm.BackgroundTransparency = 1 TweenService:Create( Confirm, TweenInfo.new(0.15), { BackgroundTransparency = 0.06 } ):Play() end ) ---------------------------------------------------------- -- CANCEL CLOSE ---------------------------------------------------------- Connect( CancelClose.MouseButton1Click, function() if Closed then return end Confirm.Visible = false end ) ---------------------------------------------------------- -- CLEANUP EVERYTHING ---------------------------------------------------------- local function DisableEverything() -------------------------------------------------- -- NOCLIP OFF -------------------------------------------------- NoclipEnabled = false RestoreCollisions() -------------------------------------------------- -- ESP OFF -------------------------------------------------- ESPEnabled = false if ESPFolder.Parent then ESPFolder:ClearAllChildren() end -------------------------------------------------- -- LOOK LINES OFF -------------------------------------------------- LookLinesEnabled = false ClearLookLines() -------------------------------------------------- -- SPEED OFF -------------------------------------------------- SpeedEnabled = false local _,Humanoid = GetCharacter() if Humanoid then Humanoid.WalkSpeed = NormalWalkSpeed end -------------------------------------------------- -- THIRD PERSON OFF -------------------------------------------------- ThirdPersonEnabled = false LocalPlayer.CameraMode = OriginalCameraMode LocalPlayer.CameraMinZoomDistance = OriginalMinZoom LocalPlayer.CameraMaxZoomDistance = OriginalMaxZoom UIS.MouseBehavior = Enum.MouseBehavior.Default if Humanoid then Humanoid.AutoRotate = OriginalAutoRotate Humanoid.CameraOffset = Vector3.zero end LastGroundTime = 0 LastGroundY = nil end ---------------------------------------------------------- -- CONFIRM CLOSE ---------------------------------------------------------- Connect( ConfirmClose.MouseButton1Click, function() if Closed then return end -------------------------------------------------- -- FIRST TURN EVERYTHING OFF -------------------------------------------------- DisableEverything() Closed = true -------------------------------------------------- -- REMOVE WORLD LINES -------------------------------------------------- if LookWorldFolder.Parent then LookWorldFolder:Destroy() end -------------------------------------------------- -- DISCONNECT ALL EVENTS -------------------------------------------------- for _,Connection in ipairs( Connections ) do pcall(function() Connection:Disconnect() end) end -------------------------------------------------- -- SMOOTH EXIT -------------------------------------------------- TweenService:Create( Main, TweenInfo.new( 0.22, Enum.EasingStyle.Quint, Enum.EasingDirection.In ), { Position = UDim2.new( 0, -330, Main.Position.Y.Scale, Main.Position.Y.Offset ) } ):Play() task.wait(0.23) if ScreenGui.Parent then ScreenGui:Destroy() end end ) ---------------------------------------------------------- -- PLAYER RESPAWN SETUP ---------------------------------------------------------- local function SetupPlayer(Target) if Target == LocalPlayer then return end Connect( Target.CharacterAdded, function() if Closed then return end task.wait(0.45) if ESPEnabled then CreateESP(Target) end if LookLinesEnabled then CreateLookLine(Target) end end ) end for _,Target in ipairs( Players:GetPlayers() ) do SetupPlayer(Target) end Connect( Players.PlayerAdded, function(Target) if Closed then return end SetupPlayer(Target) end ) Connect( Players.PlayerRemoving, function(Target) RemoveESP(Target) RemoveLookLine(Target) end ) Connect( LocalPlayer.CharacterAdded, function() if Closed then return end LastGroundTime = 0 LastGroundY = nil task.wait(0.4) local _,Humanoid = GetCharacter() if Humanoid then if NoclipEnabled then SaveCollisions() end if SpeedEnabled then NormalWalkSpeed = Humanoid.WalkSpeed Humanoid.WalkSpeed = NormalWalkSpeed * 2 end if ThirdPersonEnabled then ApplyThirdPerson() end end end ) ---------------------------------------------------------- -- LOADING ANIMATION ---------------------------------------------------------- task.spawn(function() LoadStatus.Text = "Loading player tools..." TweenService:Create( Bar, TweenInfo.new(0.20), { Size = UDim2.fromScale( 0.35, 1 ) } ):Play() task.wait(0.20) LoadStatus.Text = "Loading ESP..." TweenService:Create( Bar, TweenInfo.new(0.20), { Size = UDim2.fromScale( 0.72, 1 ) } ):Play() task.wait(0.20) LoadStatus.Text = "READY" TweenService:Create( Bar, TweenInfo.new(0.17), { Size = UDim2.fromScale( 1, 1 ) } ):Play() task.wait(0.18) if Closed then return end Loading:Destroy() -------------------------------------------------- -- GUI SLIDE IN -------------------------------------------------- Main.Visible = true TweenService:Create( Main, TweenInfo.new( 0.40, Enum.EasingStyle.Back, Enum.EasingDirection.Out ), { Position = UDim2.new( 0, 25, 0.5, -133 ) } ):Play() task.wait(0.12) -------------------------------------------------- -- BUTTONS SLIDE IN -------------------------------------------------- for _,Info in ipairs( ButtonAnimations ) do if Closed then return end TweenService:Create( Info.Button, TweenInfo.new( 0.30, Enum.EasingStyle.Quint, Enum.EasingDirection.Out ), { Position = Info.Target } ):Play() task.wait(0.06) end end) print( "UNEPIC IDENTITY FRAUD TROLLING GUI LOADED" )