--[[ This script has only been tested on PC. A mobile version may be released later. Feel free to comment with suggestions for other games to create a script for. P.S. This script could work universally, as it includes ESP, aimbot, and movement features. ]]-- local Camera, Players, RunService, UserInputService = workspace.CurrentCamera, game:GetService("Players"), game:GetService("RunService"), game:GetService("UserInputService") local LocalPlayer, Typing = Players.LocalPlayer, false --// Config _G.AimbotEnabled, _G.Holding = true, false _G.TeamCheck, _G.TracersEnabled, _G.HighlightEnabled = true, true, false _G.TracerColor, _G.TracerThickness, _G.TracerTransparency = Color3.fromRGB(0, 255, 50), 1.4, 1 _G.BoxColor, _G.BoxThickness, _G.BoxTransparency = Color3.fromRGB(0, 255, 50), 1.4, 1 _G.ModeSkipKey, _G.DisableKey = Enum.KeyCode.E, Enum.KeyCode.Q local function NewLine() local line = Drawing.new("Line") line.Visible = false line.From = Vector2.new(0, 0) line.To = Vector2.new(1, 1) line.Color = _G.BoxColor line.Thickness = _G.BoxThickness line.Transparency = _G.BoxTransparency return line end local function GetClosestPlayer() local MaxDist, Target = math.huge, nil for _, v in ipairs(Players:GetPlayers()) do if v ~= LocalPlayer and v.Character and v.Character:FindFirstChild("Humanoid") and v.Character:FindFirstChild("Head") then local Head = v.Character.Head local ScreenPos, OnScreen = Camera:WorldToViewportPoint(Head.Position) local MousePos = UserInputService:GetMouseLocation() local Dist = (Vector2.new(MousePos.X, MousePos.Y) - Vector2.new(ScreenPos.X, ScreenPos.Y)).Magnitude if OnScreen and Dist < MaxDist and (_G.TeamCheck == false or v.Team ~= LocalPlayer.Team) then MaxDist, Target = Dist, v end end end return Target end local function MoveMouseToTarget() if _G.Holding and _G.AimbotEnabled then local Target = GetClosestPlayer() if Target and Target.Character and Target.Character:FindFirstChild("Head") then local Head = Target.Character.Head local ScreenPos = Camera:WorldToViewportPoint(Head.Position) mousemoverel( ScreenPos.X - UserInputService:GetMouseLocation().X, ScreenPos.Y - UserInputService:GetMouseLocation().Y ) end end end local function CreateESP() for _, v in pairs(Players:GetChildren()) do local lines = { line1 = NewLine(), line2 = NewLine(), line3 = NewLine(), line4 = NewLine(), line5 = NewLine(), line6 = NewLine(), line7 = NewLine(), line8 = NewLine(), line9 = NewLine(), line10 = NewLine(), line11 = NewLine(), line12 = NewLine(), Tracer = NewLine() } lines.Tracer.Color = _G.TracerColor lines.Tracer.Thickness = _G.TracerThickness lines.Tracer.Transparency = 1 local function ESP() local connection connection = RunService.RenderStepped:Connect( function() if v.Character and v.Character:FindFirstChild("Humanoid") and v.Character:FindFirstChild("HumanoidRootPart") and v.Name ~= LocalPlayer.Name and v.Character.Humanoid.Health > 0 and v.Character:FindFirstChild("Head") then local pos, vis = Camera:WorldToViewportPoint(v.Character.HumanoidRootPart.Position) if vis then local Scale = v.Character.Head.Size.Y / 2 local Size = Vector3.new(2, 3, 1.5) * (Scale * 2) local Top1 = Camera:WorldToViewportPoint( (v.Character.HumanoidRootPart.CFrame * CFrame.new(-Size.X, Size.Y, -Size.Z)).p ) local Top2 = Camera:WorldToViewportPoint( (v.Character.HumanoidRootPart.CFrame * CFrame.new(-Size.X, Size.Y, Size.Z)).p ) local Top3 = Camera:WorldToViewportPoint( (v.Character.HumanoidRootPart.CFrame * CFrame.new(Size.X, Size.Y, Size.Z)).p ) local Top4 = Camera:WorldToViewportPoint( (v.Character.HumanoidRootPart.CFrame * CFrame.new(Size.X, Size.Y, -Size.Z)).p ) local Bottom1 = Camera:WorldToViewportPoint( (v.Character.HumanoidRootPart.CFrame * CFrame.new(-Size.X, -Size.Y, -Size.Z)).p ) local Bottom2 = Camera:WorldToViewportPoint( (v.Character.HumanoidRootPart.CFrame * CFrame.new(-Size.X, -Size.Y, Size.Z)).p ) local Bottom3 = Camera:WorldToViewportPoint( (v.Character.HumanoidRootPart.CFrame * CFrame.new(Size.X, -Size.Y, Size.Z)).p ) local Bottom4 = Camera:WorldToViewportPoint( (v.Character.HumanoidRootPart.CFrame * CFrame.new(Size.X, -Size.Y, -Size.Z)).p ) lines.line1.From = Vector2.new(Top1.X, Top1.Y) lines.line1.To = Vector2.new(Top2.X, Top2.Y) lines.line2.From = Vector2.new(Top2.X, Top2.Y) lines.line2.To = Vector2.new(Top3.X, Top3.Y) lines.line3.From = Vector2.new(Top3.X, Top3.Y) lines.line3.To = Vector2.new(Top4.X, Top4.Y) lines.line4.From = Vector2.new(Top4.X, Top4.Y) lines.line4.To = Vector2.new(Top1.X, Top1.Y) lines.line5.From = Vector2.new(Bottom1.X, Bottom1.Y) lines.line5.To = Vector2.new(Bottom2.X, Bottom2.Y) lines.line6.From = Vector2.new(Bottom2.X, Bottom2.Y) lines.line6.To = Vector2.new(Bottom3.X, Bottom3.Y) lines.line7.From = Vector2.new(Bottom3.X, Bottom3.Y) lines.line7.To = Vector2.new(Bottom4.X, Bottom4.Y) lines.line8.From = Vector2.new(Bottom4.X, Bottom4.Y) lines.line8.To = Vector2.new(Bottom1.X, Bottom1.Y) lines.line9.From = Vector2.new(Bottom1.X, Bottom1.Y) lines.line9.To = Vector2.new(Top1.X, Top1.Y) lines.line10.From = Vector2.new(Bottom2.X, Bottom2.Y) lines.line10.To = Vector2.new(Top2.X, Top2.Y) lines.line11.From = Vector2.new(Bottom3.X, Bottom3.Y) lines.line11.To = Vector2.new(Top3.X, Top3.Y) lines.line12.From = Vector2.new(Bottom4.X, Bottom4.Y) lines.line12.To = Vector2.new(Top4.X, Top4.Y) if _G.TracersEnabled then local trace = Camera:WorldToViewportPoint( (v.Character.HumanoidRootPart.CFrame * CFrame.new(0, -Size.Y, 0)).p ) lines.Tracer.From = Vector2.new(Camera.ViewportSize.X / 2, Camera.ViewportSize.Y) lines.Tracer.To = Vector2.new(trace.X, trace.Y) end if _G.TeamCheck then if v.TeamColor == LocalPlayer.TeamColor then for _, line in pairs(lines) do line.Color = Color3.fromRGB(88, 217, 24) end else for _, line in pairs(lines) do line.Color = Color3.fromRGB(227, 52, 52) end end end for _, line in pairs(lines) do line.Visible = true end else for _, line in pairs(lines) do line.Visible = false end end else for _, line in pairs(lines) do line.Visible = false end end end ) end coroutine.wrap(ESP)() end end RunService.RenderStepped:Connect(MoveMouseToTarget) CreateESP() UserInputService.InputBegan:Connect( function(Input) if Input.KeyCode == _G.ModeSkipKey then _G.Holding = true end if Input.KeyCode == _G.DisableKey then _G.TracersEnabled = not _G.TracersEnabled end end ) UserInputService.InputEnded:Connect( function(Input) if Input.KeyCode == _G.ModeSkipKey then _G.Holding = false end end ) game:GetService("StarterGui"):SetCore( "SendNotification", { Title = "Strucid Script By:\nTheboyWhoCried", Text = "Open-Src Script", Button1 = "Thank You!", Button2 = "eh", Duration = 9 } )