-- FULL AIMBOT SHOOTER - Single LocalScript (Key + Draggable GUIs + Fly + Noclip + AimLock + Team-only + Fire) -- Paste into StarterPlayerScripts. (Create a RemoteEvent named "AimbotRequest" in ReplicatedStorage if you want the FIRE button to call server.) local Players = game:GetService("Players") local RunService = game:GetService("RunService") local UserInputService = game:GetService("UserInputService") local ReplicatedStorage = game:GetService("ReplicatedStorage") local LocalPlayer = Players.LocalPlayer local PlayerGui = LocalPlayer:WaitForChild("PlayerGui") -- CONFIG local KEY = "kianX2025" local AIM_RANGE = 350 local AIM_SPEED = 12 -- higher -> snappier local FIRE_COOLDOWN = 0.18 -- Helper: robust ScreenGui parent creation local function makeScreenGui(name, order) local g = Instance.new("ScreenGui") g.Name = name g.ResetOnSpawn = false g.IgnoreGuiInset = true g.DisplayOrder = order or 1 g.Parent = PlayerGui return g end -- Draggable helper (works for mouse & touch) local function makeDraggable(frame, titleHeight) local dragging, dragInput, dragStart, startPos = false, nil, nil, frame.Position local function update(input) local delta = input.Position - dragStart frame.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y) end frame.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then local p = input.Position or UserInputService:GetMouseLocation() local abs = frame.AbsolutePosition local size = frame.AbsoluteSize if p.X >= abs.X and p.X <= abs.X + size.X and p.Y >= abs.Y and p.Y <= abs.Y + (titleHeight or 40) then dragging = true dragStart = input.Position startPos = frame.Position dragInput = input input.Changed:Connect(function() if input.UserInputState == Enum.UserInputState.End then dragging = false dragInput = nil end end) end end end) frame.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 and dragStart then update(input) end end) end -- ===== KEY GUI ===== local keyGui = makeScreenGui("KeyEntryGUI", 10000) local keyFrame = Instance.new("Frame", keyGui) keyFrame.Size = UDim2.new(0, 340, 0, 160) keyFrame.Position = UDim2.new(0.5, -170, 0.5, -80) keyFrame.BackgroundColor3 = Color3.fromRGB(30,30,30) keyFrame.BorderSizePixel = 0 makeDraggable(keyFrame, 40) local keyTitle = Instance.new("TextLabel", keyFrame) keyTitle.Size = UDim2.new(1,0,0,36) keyTitle.Position = UDim2.new(0,0,0,6) keyTitle.BackgroundTransparency = 1 keyTitle.Font = Enum.Font.SourceSansBold keyTitle.TextSize = 18 keyTitle.TextColor3 = Color3.fromRGB(240,240,240) keyTitle.Text = "Enter Key to unlock GUI" local keyBox = Instance.new("TextBox", keyFrame) keyBox.Size = UDim2.new(0.84,0,0,48) keyBox.Position = UDim2.new(0.08,0,0,48) keyBox.PlaceholderText = "Type key here..." keyBox.Font = Enum.Font.SourceSans keyBox.TextSize = 18 keyBox.ClearTextOnFocus = false keyBox.Text = "" keyBox.BackgroundColor3 = Color3.fromRGB(245,245,245) keyBox.TextColor3 = Color3.fromRGB(0,0,0) local infoLabel = Instance.new("TextLabel", keyFrame) infoLabel.Size = UDim2.new(1,0,0,24) infoLabel.Position = UDim2.new(0,0,0,110) infoLabel.BackgroundTransparency = 1 infoLabel.Font = Enum.Font.SourceSansBold infoLabel.TextSize = 16 infoLabel.TextColor3 = Color3.fromRGB(255,80,80) infoLabel.Text = "" local confirmBtn = Instance.new("TextButton", keyFrame) confirmBtn.Size = UDim2.new(0.5,0,0,32) confirmBtn.Position = UDim2.new(0.25,0,0,122) confirmBtn.Text = "Confirm" confirmBtn.Font = Enum.Font.SourceSansBold confirmBtn.TextSize = 16 confirmBtn.BackgroundColor3 = Color3.fromRGB(60,60,60) confirmBtn.TextColor3 = Color3.fromRGB(255,255,255) -- ===== MAIN GUI ===== local mainGui = makeScreenGui("AimbotGUI", 10001) mainGui.Enabled = false local mainFrame = Instance.new("Frame", mainGui) mainFrame.Size = UDim2.new(0, 380, 0, 340) mainFrame.Position = UDim2.new(0.18, 0, 0.12, 0) mainFrame.BackgroundColor3 = Color3.fromRGB(28,28,28) mainFrame.BorderSizePixel = 0 makeDraggable(mainFrame, 44) local header = Instance.new("TextLabel", mainFrame) header.Size = UDim2.new(1,0,0,38) header.Position = UDim2.new(0,0,0,0) header.BackgroundColor3 = Color3.fromRGB(42,42,42) header.Text = "Made by @chayan7289 Enjoy." header.Font = Enum.Font.SourceSansBold header.TextSize = 16 header.TextColor3 = Color3.fromRGB(240,240,240) local title = Instance.new("TextLabel", mainFrame) title.Size = UDim2.new(1,0,0,44) title.Position = UDim2.new(0,0,0,38) title.BackgroundTransparency = 1 title.Text = "Aimbot Shooter (Drag here)" title.Font = Enum.Font.SourceSansBold title.TextSize = 16 title.TextColor3 = Color3.fromRGB(230,230,230) local holder = Instance.new("Frame", mainFrame) holder.Size = UDim2.new(1, -20, 1, -96) holder.Position = UDim2.new(0,10,0,84) holder.BackgroundTransparency = 1 local function makeToggle(text, y) local b = Instance.new("TextButton", holder) b.Size = UDim2.new(0.9,0,0,54) b.Position = UDim2.new(0.05,0,y,0) b.BackgroundColor3 = Color3.fromRGB(55,55,55) b.Font = Enum.Font.SourceSansBold b.TextSize = 20 b.TextColor3 = Color3.fromRGB(240,240,240) b.Text = text .. ": Off" return b end local flyBtn = makeToggle("Fly", 0) local noclipBtn = makeToggle("Noclip", 0.18) local aimBtn = makeToggle("AimLock", 0.36) local teamBtn = makeToggle("Team Only", 0.54) local fireBtn = Instance.new("TextButton", holder) fireBtn.Size = UDim2.new(0.9,0,0,64) fireBtn.Position = UDim2.new(0.05,0,0.72,0) fireBtn.BackgroundColor3 = Color3.fromRGB(200,50,50) fireBtn.Font = Enum.Font.SourceSansBold fireBtn.TextSize = 22 fireBtn.TextColor3 = Color3.fromRGB(255,255,255) fireBtn.Text = "FIRE" -- ===== STATE & UTILITIES ===== local flying, noclip, aimActive, teamCheck = false, false, false, false local BV, BG local moveDir = Vector3.new(0,0,0) -- unused for simple fly local lastFire = 0 local currentHighlight = nil local function clearHighlight() if currentHighlight and currentHighlight.Parent then currentHighlight:Destroy() end currentHighlight = nil end local function attachRedRect(part) clearHighlight() if not part or not part:IsA("BasePart") then return end local width = math.max(part.Size.X * 5, 40) local height = math.max(part.Size.Y * 5, 60) local bb = Instance.new("BillboardGui") bb.Name = "TargetBox" bb.Adornee = part bb.Size = UDim2.new(0, width, 0, height) bb.StudsOffset = Vector3.new(0, part.Size.Y/2 + 0.5, 0) bb.AlwaysOnTop = true bb.Parent = part local thickness = 4 local top = Instance.new("Frame", bb) top.Size = UDim2.new(1,0,0,thickness); top.Position = UDim2.new(0,0,0,0); top.BorderSizePixel=0; top.BackgroundColor3 = Color3.fromRGB(220,50,50) local bottom = Instance.new("Frame", bb) bottom.Size = UDim2.new(1,0,0,thickness); bottom.Position = UDim2.new(0,0,1,-thickness); bottom.BorderSizePixel=0; bottom.BackgroundColor3 = Color3.fromRGB(220,50,50) local left = Instance.new("Frame", bb) left.Size = UDim2.new(0,thickness,1,0); left.Position = UDim2.new(0,0,0,0); left.BorderSizePixel=0; left.BackgroundColor3 = Color3.fromRGB(220,50,50) local right = Instance.new("Frame", bb) right.Size = UDim2.new(0,thickness,1,0); right.Position = UDim2.new(1,-thickness,0,0); right.BorderSizePixel=0; right.BackgroundColor3 = Color3.fromRGB(220,50,50) currentHighlight = bb end local function findNearestPlayer(maxRange) local cam = workspace.CurrentCamera if not cam then return nil end local camPos = cam.CFrame.Position local best, bestD = nil, math.huge for _, pl in ipairs(Players:GetPlayers()) do if pl ~= LocalPlayer and pl.Character and pl.Character.PrimaryPart and pl.Character:FindFirstChildWhichIsA("Humanoid") and pl.Character.Humanoid.Health > 0 then if not teamCheck or (teamCheck and pl.Team ~= LocalPlayer.Team) then local d = (pl.Character.PrimaryPart.Position - camPos).Magnitude if d < bestD and d <= maxRange then bestD = d best = pl end end end end return best end -- ===== FLY & NOCLIP ===== local function startFly() if flying then return end local char = LocalPlayer.Character if not char then return end local hrp = char:FindFirstChild("HumanoidRootPart") if not hrp then return end BV = Instance.new("BodyVelocity") BV.MaxForce = Vector3.new(1e5,1e5,1e5) BV.Velocity = Vector3.new(0,0,0) BV.Parent = hrp BG = Instance.new("BodyGyro") BG.MaxTorque = Vector3.new(1e5,1e5,1e5) BG.CFrame = hrp.CFrame BG.Parent = hrp flying = true end local function stopFly() flying = false if BV then BV:Destroy() BV = nil end if BG then BG:Destroy() BG = nil end end local function setNoclip(enabled) noclip = enabled local char = LocalPlayer.Character if not char then return end for _, part in ipairs(char:GetDescendants()) do if part:IsA("BasePart") then part.CanCollide = not enabled end end end LocalPlayer.CharacterAdded:Connect(function() wait(0.08) if noclip then setNoclip(true) end end) -- ===== BUTTON CONNECTIONS ===== flyBtn.MouseButton1Click:Connect(function() if flyBtn.Text:find("Off") then startFly(); flyBtn.Text="Fly: On"; flyBtn.BackgroundColor3 = Color3.fromRGB(90,170,90) else stopFly(); flyBtn.Text="Fly: Off"; flyBtn.BackgroundColor3 = Color3.fromRGB(55,55,55) end end) noclipBtn.MouseButton1Click:Connect(function() setNoclip(not noclip) noclipBtn.Text = noclip and "Noclip: On" or "Noclip: Off" noclipBtn.BackgroundColor3 = noclip and Color3.fromRGB(90,170,90) or Color3.fromRGB(55,55,55) end) aimBtn.MouseButton1Click:Connect(function() aimActive = not aimActive aimBtn.Text = aimActive and "AimLock: On" or "AimLock: Off" aimBtn.BackgroundColor3 = aimActive and Color3.fromRGB(200,90,90) or Color3.fromRGB(55,55,55) if not aimActive then clearHighlight() end end) teamBtn.MouseButton1Click:Connect(function() teamCheck = not teamCheck teamBtn.Text = teamCheck and "Team Only: On" or "Team Only: Off" teamBtn.BackgroundColor3 = teamCheck and Color3.fromRGB(200,90,90) or Color3.fromRGB(55,55,55) end) fireBtn.MouseButton1Click:Connect(function() local now = tick() if now - lastFire < FIRE_COOLDOWN then return end lastFire = now local target = findNearestPlayer(AIM_RANGE) local targetId = target and target.UserId or nil local ev = ReplicatedStorage:FindFirstChild("AimbotRequest") if ev and ev:IsA("RemoteEvent") then ev:FireServer({TargetUserId = targetId, RequestPosition = workspace.CurrentCamera.CFrame.Position, ClientTime = now}) end end) -- ===== AIM LOOP ===== RunService.RenderStepped:Connect(function(dt) -- keep flying orientation matching camera while flying if flying and BV and BG then local char = LocalPlayer.Character local hrp = char and char:FindFirstChild("HumanoidRootPart") if hrp then local cam = workspace.CurrentCamera if cam then BG.CFrame = cam.CFrame end end end -- aimlock if aimActive then local targetPl = findNearestPlayer(AIM_RANGE) if targetPl and targetPl.Character and targetPl.Character.PrimaryPart then local cam = workspace.CurrentCamera if cam then local desired = CFrame.new(cam.CFrame.Position, targetPl.Character.PrimaryPart.Position) cam.CFrame = cam.CFrame:Lerp(desired, math.clamp(AIM_SPEED * dt, 0, 1)) attachRedRect(targetPl.Character.PrimaryPart) end else clearHighlight() end else clearHighlight() end end) -- ===== KEY HANDLING (PC Enter or Confirm button) ===== local function unlock() keyGui:Destroy() mainGui.Enabled = true end keyBox.FocusLost:Connect(function(enterPressed) if keyBox.Text == KEY then unlock() elseif enterPressed then infoLabel.Text = "Incorrect Key X" keyBox.Text = "" end end) confirmBtn.MouseButton1Click:Connect(function() if keyBox.Text == KEY then unlock() else infoLabel.Text = "Incorrect Key X" keyBox.Text = "" end end) -- Final: make sure the player can test immediately in Studio or on device -- If you still don't see the GUIs test with PlayerGui:ClearAllChildren() in Studio's Command Bar is NOT recommended. -- End of script