
KeylessUniversal

--// 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)



HAVE ESP TO
nice game