--// Ultimate Aimbot & ESP V7 (Fixed Slider & Target Filter) --// Hotkey: Right Control to Hide/Show GUI local Players = game:GetService("Players") local RunService = game:GetService("RunService") local UserInputService = game:GetService("UserInputService") local CoreGui = game:GetService("CoreGui") local LocalPlayer = Players.LocalPlayer local Camera = workspace.CurrentCamera --// Settings local _G = { AimbotEnabled = true, TeamCheck = true, WallCheck = true, ESPEnabled = true, ESPTargetEnemiesOnly = true, -- ตัวเลือกใหม่: แสดงเฉพาะฆ่าศึก FOV = 20, -- ค่าเริ่มต้นกลางๆ MaxDistance = 2000 } local aiming = false local currentTarget = nil local ESP_Table = {} --// FOV Circle Visual local FOVCircle = Drawing.new("Circle") FOVCircle.Thickness = 1 FOVCircle.Color = Color3.fromRGB(255, 255, 255) FOVCircle.Transparency = 0.5 FOVCircle.Visible = true --// GUI Setup local ScreenGui = Instance.new("ScreenGui", CoreGui) local MainFrame = Instance.new("Frame", ScreenGui) MainFrame.BackgroundColor3 = Color3.fromRGB(20, 20, 20) MainFrame.Position = UDim2.new(0.05, 0, 0.3, 0) MainFrame.Size = UDim2.new(0, 200, 0, 300) -- ขยายขนาดรองรับปุ่มใหม่ MainFrame.Active = true MainFrame.Draggable = true local Title = Instance.new("TextLabel", MainFrame) Title.Size = UDim2.new(1, 0, 0, 30) Title.BackgroundColor3 = Color3.fromRGB(40, 40, 40) Title.Text = "Gemini Aimbot V7" Title.TextColor3 = Color3.new(1, 1, 1) Title.Font = Enum.Font.SourceSansBold local function createBtn(text, pos, color) local btn = Instance.new("TextButton", MainFrame) btn.Size = UDim2.new(0.85, 0, 0, 25) btn.Position = pos btn.BackgroundColor3 = color btn.Text = text btn.TextColor3 = Color3.new(1, 1, 1) btn.BorderSizePixel = 0 return btn end local ToggleBtn = createBtn("Aimbot: ON", UDim2.new(0.075, 0, 0.12, 0), Color3.fromRGB(0, 170, 0)) local TeamBtn = createBtn("Aimbot Target: Enemy", UDim2.new(0.075, 0, 0.23, 0), Color3.fromRGB(0, 100, 200)) local WallBtn = createBtn("Wall Check: ON", UDim2.new(0.075, 0, 0.34, 0), Color3.fromRGB(150, 0, 150)) local ESPBtn = createBtn("ESP: ON", UDim2.new(0.075, 0, 0.45, 0), Color3.fromRGB(0, 150, 150)) local ESPFilterBtn = createBtn("ESP Target: Enemy", UDim2.new(0.075, 0, 0.56, 0), Color3.fromRGB(200, 50, 50)) local FOVLabel = Instance.new("TextLabel", MainFrame) FOVLabel.Position = UDim2.new(0.1, 0, 0.68, 0) FOVLabel.Size = UDim2.new(0.8, 0, 0, 20) FOVLabel.Text = "FOV Angle: " .. _G.FOV FOVLabel.TextColor3 = Color3.new(1, 1, 1) FOVLabel.BackgroundTransparency = 1 local FOVSlider = Instance.new("Frame", MainFrame) FOVSlider.Position = UDim2.new(0.1, 0, 0.78, 0) FOVSlider.Size = UDim2.new(0.8, 0, 0, 10) FOVSlider.BackgroundColor3 = Color3.fromRGB(50, 50, 50) local FOVBar = Instance.new("TextButton", FOVSlider) FOVBar.Size = UDim2.new((_G.FOV-1)/89, 0, 1, 0) FOVBar.BackgroundColor3 = Color3.fromRGB(255, 215, 0) FOVBar.Text = "" --// GUI Logic ToggleBtn.MouseButton1Click:Connect(function() _G.AimbotEnabled = not _G.AimbotEnabled ToggleBtn.Text = _G.AimbotEnabled and "Aimbot: ON" or "Aimbot: OFF" ToggleBtn.BackgroundColor3 = _G.AimbotEnabled and Color3.fromRGB(0, 170, 0) or Color3.fromRGB(170, 0, 0) end) TeamBtn.MouseButton1Click:Connect(function() _G.TeamCheck = not _G.TeamCheck TeamBtn.Text = _G.TeamCheck and "Aimbot Target: Enemy" or "Aimbot Target: ALL" TeamBtn.BackgroundColor3 = _G.TeamCheck and Color3.fromRGB(0, 100, 200) or Color3.fromRGB(200, 100, 0) end) ESPFilterBtn.MouseButton1Click:Connect(function() _G.ESPTargetEnemiesOnly = not _G.ESPTargetEnemiesOnly ESPFilterBtn.Text = _G.ESPTargetEnemiesOnly and "ESP Target: Enemy" or "ESP Target: ALL" ESPFilterBtn.BackgroundColor3 = _G.ESPTargetEnemiesOnly and Color3.fromRGB(200, 50, 50) or Color3.fromRGB(100, 100, 100) end) -- แก้ไข Slider ให้ลดได้สมบูรณ์ local function updateSlider(input) local xPos = input.Position.X local sliderSize = FOVSlider.AbsoluteSize.X local sliderPos = FOVSlider.AbsolutePosition.X local rel = math.clamp((xPos - sliderPos) / sliderSize, 0, 1) _G.FOV = math.floor(rel * 89) + 1 -- 1 ถึง 90 FOVBar.Size = UDim2.new(rel, 0, 1, 0) FOVLabel.Text = "FOV Angle: " .. _G.FOV end FOVSlider.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then updateSlider(input) local connection connection = UserInputService.InputChanged:Connect(function(input2) if input2.UserInputType == Enum.UserInputType.MouseMovement then updateSlider(input2) end end) UserInputService.InputEnded:Connect(function(input3) if input3.UserInputType == Enum.UserInputType.MouseButton1 then connection:Disconnect() end end) end end) --// Core Functions local function canShoot(target) if not _G.WallCheck then return true end if not target.Character or not target.Character:FindFirstChild("Head") then return false end local head = target.Character.Head local origin = Camera.CFrame.Position local direction = (head.Position - origin).Unit * (head.Position - origin).Magnitude local rayParams = RaycastParams.new() rayParams.FilterDescendantsInstances = {LocalPlayer.Character} rayParams.FilterType = Enum.RaycastFilterType.Blacklist local result = workspace:Raycast(origin, direction, rayParams) return (result and result.Instance:IsDescendantOf(target.Character)) or false end --// Main Loops RunService.RenderStepped:Connect(function() FOVCircle.Visible = _G.AimbotEnabled and MainFrame.Visible FOVCircle.Radius = _G.FOV * 8 FOVCircle.Position = Vector2.new(Camera.ViewportSize.X/2, Camera.ViewportSize.Y/2) for _, player in pairs(Players:GetPlayers()) do if player == LocalPlayer then continue end if not ESP_Table[player] then local b = Drawing.new("Square") b.Thickness = 1 b.Filled = false local l = Drawing.new("Line") l.Thickness = 1 ESP_Table[player] = {Box = b, Line = l} end local esp = ESP_Table[player] local char = player.Character -- เงื่อนไขการแสดงผล ESP (แสดงเฉพาะฆ่าศึก หรือ ทั้งหมด) local isEnemy = player.Team ~= LocalPlayer.Team local shouldShowESP = _G.ESPEnabled and (not _G.ESPTargetEnemiesOnly or isEnemy) if shouldShowESP and char and char:FindFirstChild("HumanoidRootPart") and char.Humanoid.Health > 0 then local pos, onScreen = Camera:WorldToViewportPoint(char.HumanoidRootPart.Position) if onScreen then local height = (Camera:WorldToViewportPoint(char.HumanoidRootPart.Position + Vector3.new(0, 3, 0)).Y - Camera:WorldToViewportPoint(char.HumanoidRootPart.Position - Vector3.new(0, 3, 0)).Y) esp.Box.Size = Vector2.new(height * 0.6, height) esp.Box.Position = Vector2.new(pos.X - (esp.Box.Size.X/2), pos.Y - (height/2)) esp.Box.Color = player.TeamColor.Color esp.Box.Visible = true esp.Line.From = Vector2.new(Camera.ViewportSize.X/2, Camera.ViewportSize.Y) esp.Line.To = Vector2.new(pos.X, pos.Y + (height/2)) esp.Line.Color = player.TeamColor.Color esp.Line.Visible = true else esp.Box.Visible = false esp.Line.Visible = false end else esp.Box.Visible = false esp.Line.Visible = false end end if aiming and _G.AimbotEnabled then local closest, shortest = nil, math.huge for _, p in pairs(Players:GetPlayers()) do if p ~= LocalPlayer and (not _G.TeamCheck or p.Team ~= LocalPlayer.Team) then if p.Character and p.Character:FindFirstChild("Head") and p.Character.Humanoid.Health > 0 then local pos, visible = Camera:WorldToViewportPoint(p.Character.Head.Position) if visible then local dist = (Vector2.new(pos.X, pos.Y) - Vector2.new(Camera.ViewportSize.X/2, Camera.ViewportSize.Y/2)).Magnitude local angle = math.deg(math.acos(Camera.CFrame.LookVector:Dot((p.Character.Head.Position - Camera.CFrame.Position).Unit))) if angle <= (_G.FOV/2) and dist < shortest and canShoot(p) then shortest = dist closest = p end end end end end if closest then Camera.CFrame = CFrame.new(Camera.CFrame.Position, closest.Character.Head.Position) end end end) UserInputService.InputBegan:Connect(function(i, p) if not p and i.KeyCode == Enum.KeyCode.RightControl then MainFrame.Visible = not MainFrame.Visible end if not p and i.UserInputType == Enum.UserInputType.MouseButton2 then aiming = true end end) UserInputService.InputEnded:Connect(function(i) if i.UserInputType == Enum.UserInputType.MouseButton2 then aiming = false end end)