local Players = game:GetService("Players")
local player = Players.LocalPlayer
local mouse = player:GetMouse()
local camera = workspace.CurrentCamera
local RunService = game:GetService("RunService")
local UserInputService = game:GetService("UserInputService")
local TweenService = game:GetService("TweenService")
-- === НАСТРОЙКИ ===
local SETTINGS = {
AimKey = Enum.KeyCode.Z,
Smoothness = 0.95,
FOV = 200,
ShowFOVCircle = true,
TargetPart = "Head",
TeamCheck = false,
VisibleCheck = false,
ESPEnabled = true,
AimbotEnabled = true,
MainColor = Color3.fromRGB(255, 128, 0),
SkeletonColor = Color3.fromRGB(255, 200, 100),
HealthColor = Color3.fromRGB(0, 255, 0),
ToggleMode = true,
ToggleState = false,
FollowMouse = true,
HideKey = Enum.KeyCode.RightAlt,
MinFOV = 30,
MaxFOV = 400
}
local TARGET_PARTS = {"Head", "Torso", "HumanoidRootPart", "Random"}
local currentPartIndex = 1
local KEY_LIST = {
{"Z", Enum.KeyCode.Z},
{"X", Enum.KeyCode.X},
{"C", Enum.KeyCode.C},
{"V", Enum.KeyCode.V},
{"B", Enum.KeyCode.B},
{"Q", Enum.KeyCode.Q},
{"E", Enum.KeyCode.E},
{"R", Enum.KeyCode.R},
{"F", Enum.KeyCode.F},
{"G", Enum.KeyCode.G},
{"Left Shift", Enum.KeyCode.LeftShift},
{"Left Ctrl", Enum.KeyCode.LeftControl},
{"Left Alt", Enum.KeyCode.LeftAlt},
{"Right Alt", Enum.KeyCode.RightAlt}
}
local currentKeyIndex = 1
local FOVCircle
local ScreenGui
local ESPobjects = {}
local aimActive = false
local currentTarget = nil
local statusText
local fovPosition = Vector2.new()
local scriptActive = true
local guiVisible = true
local partButton
local keyButton
local wallCheckButton
local teamCheckButton
local smoothnessSlider
local smoothnessValue
local fovSlider
local fovValue
local discordButton
local contentFrame
local isMinimized = false
local expandedSize = UDim2.new(0, 360, 0, 590)
local minimizedSize = UDim2.new(0, 360, 0, 45)
local MainFrame
local isDragging = false
local dragOffset = Vector2.new()
local hideKeyPressed = false
-- Функция для анимации кнопок
local function animateButton(button, hoverColor)
local originalColor = button.BackgroundColor3
local tweenInfo = TweenInfo.new(0.2, Enum.EasingStyle.Quad, Enum.EasingDirection.Out)
button.MouseEnter:Connect(function()
local tween = TweenService:Create(button, tweenInfo, {BackgroundColor3 = hoverColor or Color3.fromRGB(70, 70, 90)})
tween:Play()
end)
button.MouseLeave:Connect(function()
local tween = TweenService:Create(button, tweenInfo, {BackgroundColor3 = originalColor})
tween:Play()
end)
button.MouseButton1Down:Connect(function()
local tween = TweenService:Create(button, tweenInfo, {BackgroundColor3 = Color3.fromRGB(30, 30, 40)})
tween:Play()
end)
button.MouseButton1Up:Connect(function()
local tween = TweenService:Create(button, tweenInfo, {BackgroundColor3 = hoverColor or Color3.fromRGB(70, 70, 90)})
tween:Play()
end)
end
local function getMousePosition()
local mousePos = UserInputService:GetMouseLocation()
local viewport = camera.ViewportSize
if mousePos.X viewport.X or mousePos.Y viewport.Y then
return Vector2.new(viewport.X / 2, viewport.Y / 2)
end
return mousePos
end
local function copyToClipboard(text)
if setclipboard then
pcall(setclipboard, text)
end
end
local function updateButtonTexts()
if fovToggleButton then
fovToggleButton.Text = "FOV Circle: " .. (SETTINGS.ShowFOVCircle and "ON" or "OFF")
fovToggleButton.TextColor3 = SETTINGS.ShowFOVCircle and Color3.fromRGB(100, 255, 100) or Color3.fromRGB(255, 100, 100)
end
if espToggleButton then
espToggleButton.Text = "ESP: " .. (SETTINGS.ESPEnabled and "ON" or "OFF")
espToggleButton.TextColor3 = SETTINGS.ESPEnabled and Color3.fromRGB(100, 255, 100) or Color3.fromRGB(255, 100, 100)
end
if aimbotToggleButton then
aimbotToggleButton.Text = "Aimbot: " .. (SETTINGS.AimbotEnabled and "ON" or "OFF")
aimbotToggleButton.TextColor3 = SETTINGS.AimbotEnabled and Color3.fromRGB(100, 255, 100) or Color3.fromRGB(255, 100, 100)
end
if modeToggleButton then
modeToggleButton.Text = "Mode: " .. (SETTINGS.ToggleMode and "TOGGLE" or "HOLD")
modeToggleButton.TextColor3 = SETTINGS.ToggleMode and Color3.fromRGB(100, 255, 100) or Color3.fromRGB(255, 200, 100)
end
if partButton then
partButton.Text = "Target: " .. TARGET_PARTS[currentPartIndex]
end
if keyButton then
keyButton.Text = "Key: " .. KEY_LIST[currentKeyIndex][1]
end
if wallCheckButton then
wallCheckButton.Text = "Wall Check: " .. (SETTINGS.VisibleCheck and "ON" or "OFF")
wallCheckButton.TextColor3 = SETTINGS.VisibleCheck and Color3.fromRGB(100, 255, 100) or Color3.fromRGB(255, 100, 100)
end
if teamCheckButton then
teamCheckButton.Text = "Team Check: " .. (SETTINGS.TeamCheck and "ON" or "OFF")
teamCheckButton.TextColor3 = SETTINGS.TeamCheck and Color3.fromRGB(100, 255, 100) or Color3.fromRGB(255, 100, 100)
end
if smoothnessValue then
smoothnessValue.Text = "Smooth: " .. string.format("%.2f", SETTINGS.Smoothness)
end
if fovValue then
fovValue.Text = "FOV Size: " .. SETTINGS.FOV
end
end
local function toggleMinimize()
isMinimized = not isMinimized
local tweenInfo = TweenInfo.new(0.2, Enum.EasingStyle.Quad, Enum.EasingDirection.Out)
local goal = {Size = isMinimized and minimizedSize or expandedSize}
local tween = TweenService:Create(MainFrame, tweenInfo, goal)
tween:Play()
if isMinimized then
contentFrame.Visible = false
else
contentFrame.Visible = true
end
end
local function toggleGUI()
guiVisible = not guiVisible
if ScreenGui then
ScreenGui.Enabled = guiVisible
end
-- АБСОЛЮТНО НИЧЕГО НЕ ДЕЛАЕМ С КАМЕРОЙ
-- Не сохраняем, не восстанавливаем, не трогаем
end
local function isVisible(targetPart)
if not SETTINGS.VisibleCheck then return true end
local origin = camera.CFrame.Position
local direction = (targetPart.Position - origin).Unit * (targetPart.Position - origin).Magnitude
local rayParams = RaycastParams.new()
rayParams.FilterType = Enum.RaycastFilterType.Blacklist
rayParams.FilterDescendantsInstances = {player.Character, workspace:FindFirstChild("Ignore")}
local result = workspace:Raycast(origin, direction, rayParams)
if result then
local hitPart = result.Instance
if hitPart:IsDescendantOf(targetPart.Parent) then
return true
end
return false
end
return true
end
local function getTeamColor(plr)
if plr.Team then
return plr.Team.TeamColor.Color
end
return Color3.fromRGB(255, 255, 255)
end
-- === GUI ===
local function createGUI()
if not scriptActive then return end
ScreenGui = Instance.new("ScreenGui")
ScreenGui.Parent = player:WaitForChild("PlayerGui")
ScreenGui.Name = "BananAimBot"
ScreenGui.ResetOnSpawn = false
ScreenGui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling
ScreenGui.Enabled = true
MainFrame = Instance.new("Frame")
MainFrame.Parent = ScreenGui
MainFrame.Size = expandedSize
MainFrame.Position = UDim2.new(0.5, -180, 0.5, -295)
MainFrame.BackgroundColor3 = Color3.fromRGB(15, 15, 20)
MainFrame.BackgroundTransparency = 0.1
MainFrame.BorderSizePixel = 0
MainFrame.Active = true
MainFrame.Draggable = false
local UICorner = Instance.new("UICorner")
UICorner.Parent = MainFrame
UICorner.CornerRadius = UDim.new(0, 12)
-- Заголовок для перетаскивания
local TitleBar = Instance.new("Frame")
TitleBar.Parent = MainFrame
TitleBar.Size = UDim2.new(1, 0, 0, 40)
TitleBar.BackgroundColor3 = Color3.fromRGB(25, 25, 35)
TitleBar.BorderSizePixel = 0
TitleBar.Active = true
TitleBar.ZIndex = 10
local TitleCorner = Instance.new("UICorner")
TitleCorner.Parent = TitleBar
TitleCorner.CornerRadius = UDim.new(0, 12)
local TitleText = Instance.new("TextLabel")
TitleText.Parent = TitleBar
TitleText.Size = UDim2.new(1, -110, 1, 0)
TitleText.Position = UDim2.new(0, 15, 0, 0)
TitleText.BackgroundTransparency = 1
TitleText.Text = "Banan AimBot"
TitleText.TextColor3 = SETTINGS.MainColor
TitleText.Font = Enum.Font.GothamBold
TitleText.TextSize = 22
TitleText.TextXAlignment = Enum.TextXAlignment.Left
TitleText.ZIndex = 11
local MinimizeButton = Instance.new("TextButton")
MinimizeButton.Parent = TitleBar
MinimizeButton.Size = UDim2.new(0, 35, 0, 35)
MinimizeButton.Position = UDim2.new(1, -80, 0, 2.5)
MinimizeButton.BackgroundColor3 = Color3.fromRGB(70, 70, 80)
MinimizeButton.BackgroundTransparency = 0.2
MinimizeButton.BorderSizePixel = 0
MinimizeButton.Text = "–"
MinimizeButton.TextColor3 = Color3.fromRGB(255, 255, 255)
MinimizeButton.TextSize = 24
MinimizeButton.Font = Enum.Font.GothamBold
MinimizeButton.ZIndex = 12
MinimizeButton.AutoButtonColor = false
local MinCorner = Instance.new("UICorner")
MinCorner.Parent = MinimizeButton
MinCorner.CornerRadius = UDim.new(0, 8)
animateButton(MinimizeButton, Color3.fromRGB(90, 90, 100))
MinimizeButton.MouseButton1Click:Connect(toggleMinimize)
local CloseButton = Instance.new("TextButton")
CloseButton.Parent = TitleBar
CloseButton.Size = UDim2.new(0, 35, 0, 35)
CloseButton.Position = UDim2.new(1, -40, 0, 2.5)
CloseButton.BackgroundColor3 = Color3.fromRGB(200, 70, 70)
CloseButton.BackgroundTransparency = 0.2
CloseButton.BorderSizePixel = 0
CloseButton.Text = "X"
CloseButton.TextColor3 = Color3.fromRGB(255, 255, 255)
CloseButton.TextSize = 20
CloseButton.Font = Enum.Font.GothamBold
CloseButton.ZIndex = 12
CloseButton.AutoButtonColor = false
local CloseCorner = Instance.new("UICorner")
CloseCorner.Parent = CloseButton
CloseCorner.CornerRadius = UDim.new(0, 8)
animateButton(CloseButton, Color3.fromRGB(220, 90, 90))
CloseButton.MouseButton1Click:Connect(function()
scriptActive = false
aimActive = false
SETTINGS.ToggleState = false
if FOVCircle then
FOVCircle.Visible = false
FOVCircle:Remove()
FOVCircle = nil
end
for _, obj in pairs(ESPobjects) do
if obj then
for _, drawing in pairs(obj) do
if drawing and drawing.Remove then
pcall(function() drawing:Remove() end)
elseif type(drawing) == "table" then
for _, line in ipairs(drawing) do
if line and line.Remove then
pcall(function() line:Remove() end)
end
end
end
end
end
end
ESPobjects = {}
if ScreenGui then
ScreenGui:Destroy()
ScreenGui = nil
end
script:Destroy()
end)
-- ПЕРЕТАСКИВАНИЕ
TitleBar.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 then
isDragging = true
local mousePos = UserInputService:GetMouseLocation()
local guiPos = MainFrame.AbsolutePosition
dragOffset = Vector2.new(mousePos.X - guiPos.X, mousePos.Y - guiPos.Y)
end
end)
TitleBar.InputChanged:Connect(function(input)
if isDragging and input.UserInputType == Enum.UserInputType.MouseMovement then
local mousePos = UserInputService:GetMouseLocation()
MainFrame.Position = UDim2.new(0, mousePos.X - dragOffset.X, 0, mousePos.Y - dragOffset.Y)
end
end)
TitleBar.InputEnded:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 then
isDragging = false
end
end)
UserInputService.InputChanged:Connect(function(input)
if isDragging and input.UserInputType == Enum.UserInputType.MouseMovement then
local mousePos = UserInputService:GetMouseLocation()
MainFrame.Position = UDim2.new(0, mousePos.X - dragOffset.X, 0, mousePos.Y - dragOffset.Y)
end
end)
contentFrame = Instance.new("Frame")
contentFrame.Parent = MainFrame
contentFrame.Size = UDim2.new(1, -20, 1, -50)
contentFrame.Position = UDim2.new(0, 10, 0, 45)
contentFrame.BackgroundTransparency = 1
contentFrame.ClipsDescendants = true
-- Статус
local StatusFrame = Instance.new("Frame")
StatusFrame.Parent = contentFrame
StatusFrame.Size = UDim2.new(1, 0, 0, 35)
StatusFrame.Position = UDim2.new(0, 0, 0, 0)
StatusFrame.BackgroundColor3 = Color3.fromRGB(30, 30, 40)
StatusFrame.BackgroundTransparency = 0.3
local StatusCorner = Instance.new("UICorner")
StatusCorner.Parent = StatusFrame
StatusCorner.CornerRadius = UDim.new(0, 8)
local StatusLabel = Instance.new("TextLabel")
StatusLabel.Parent = StatusFrame
StatusLabel.Size = UDim2.new(0.5, -5, 1, 0)
StatusLabel.Position = UDim2.new(0, 10, 0, 0)
StatusLabel.BackgroundTransparency = 1
StatusLabel.Text = "Aimbot Status:"
StatusLabel.TextColor3 = Color3.fromRGB(200, 200, 220)
StatusLabel.Font = Enum.Font.Gotham
StatusLabel.TextSize = 15
StatusLabel.TextXAlignment = Enum.TextXAlignment.Left
statusText = Instance.new("TextLabel")
statusText.Parent = StatusFrame
statusText.Size = UDim2.new(0.5, -5, 1, 0)
statusText.Position = UDim2.new(0.5, 5, 0, 0)
statusText.BackgroundTransparency = 1
statusText.Text = "OFF"
statusText.TextColor3 = Color3.fromRGB(255, 100, 100)
statusText.Font = Enum.Font.GothamBold
statusText.TextSize = 18
statusText.TextXAlignment = Enum.TextXAlignment.Right
-- Функция создания кнопки
local function createButton(parent, text, posY, color)
local frame = Instance.new("Frame")
frame.Parent = parent
frame.Size = UDim2.new(1, 0, 0, 30)
frame.Position = UDim2.new(0, 0, 0, posY)
frame.BackgroundColor3 = Color3.fromRGB(30, 30, 40)
frame.BackgroundTransparency = 0.3
local corner = Instance.new("UICorner")
corner.Parent = frame
corner.CornerRadius = UDim.new(0, 8)
local button = Instance.new("TextButton")
button.Parent = frame
button.Size = UDim2.new(1, -20, 1, -6)
button.Position = UDim2.new(0, 10, 0, 3)
button.BackgroundColor3 = color or Color3.fromRGB(45, 45, 55)
button.BackgroundTransparency = 0.2
button.BorderSizePixel = 0
button.Text = text
button.TextColor3 = Color3.fromRGB(255, 255, 255)
button.TextSize = 13
button.Font = Enum.Font.GothamBold
local btnCorner = Instance.new("UICorner")
btnCorner.Parent = button
btnCorner.CornerRadius = UDim.new(0, 6)
return button, frame
end
fovToggleButton, _ = createButton(contentFrame, "FOV Circle: ON", 40, Color3.fromRGB(50, 50, 60))
espToggleButton, _ = createButton(contentFrame, "ESP: ON", 75, Color3.fromRGB(50, 50, 60))
aimbotToggleButton, _ = createButton(contentFrame, "Aimbot: ON", 110, Color3.fromRGB(50, 50, 60))
modeToggleButton, _ = createButton(contentFrame, "Mode: TOGGLE", 145, Color3.fromRGB(50, 50, 60))
partButton, _ = createButton(contentFrame, "Target: Head", 180, Color3.fromRGB(50, 50, 60))
keyButton, _ = createButton(contentFrame, "Key: Z", 215, Color3.fromRGB(50, 50, 60))
wallCheckButton, _ = createButton(contentFrame, "Wall Check: OFF", 250, Color3.fromRGB(50, 50, 60))
teamCheckButton, _ = createButton(contentFrame, "Team Check: OFF", 285, Color3.fromRGB(50, 50, 60))
-- Анимация для всех кнопок
animateButton(fovToggleButton)
animateButton(espToggleButton)
animateButton(aimbotToggleButton)
animateButton(modeToggleButton)
animateButton(partButton)
animateButton(keyButton)
animateButton(wallCheckButton)
animateButton(teamCheckButton)
-- FOV слайдер
local FOVFrame = Instance.new("Frame")
FOVFrame.Parent = contentFrame
FOVFrame.Size = UDim2.new(1, 0, 0, 45)
FOVFrame.Position = UDim2.new(0, 0, 0, 320)
FOVFrame.BackgroundColor3 = Color3.fromRGB(30, 30, 40)
FOVFrame.BackgroundTransparency = 0.3
local FOVCorner = Instance.new("UICorner")
FOVCorner.Parent = FOVFrame
FOVCorner.CornerRadius = UDim.new(0, 8)
fovValue = Instance.new("TextLabel")
fovValue.Parent = FOVFrame
fovValue.Size = UDim2.new(1, -20, 0, 18)
fovValue.Position = UDim2.new(0, 10, 0, 3)
fovValue.BackgroundTransparency = 1
fovValue.Text = "FOV Size: 200"
fovValue.TextColor3 = Color3.fromRGB(200, 200, 220)
fovValue.Font = Enum.Font.Gotham
fovValue.TextSize = 13
fovValue.TextXAlignment = Enum.TextXAlignment.Left
local FOVSlider = Instance.new("Frame")
FOVSlider.Parent = FOVFrame
FOVSlider.Size = UDim2.new(1, -20, 0, 18)
FOVSlider.Position = UDim2.new(0, 10, 0, 22)
FOVSlider.BackgroundColor3 = Color3.fromRGB(60, 60, 70)
local FOVSliderCorner = Instance.new("UICorner")
FOVSliderCorner.Parent = FOVSlider
FOVSliderCorner.CornerRadius = UDim.new(0, 4)
local FOVFill = Instance.new("Frame")
FOVFill.Parent = FOVSlider
FOVFill.Size = UDim2.new((SETTINGS.FOV - SETTINGS.MinFOV) / (SETTINGS.MaxFOV - SETTINGS.MinFOV), 0, 1, 0)
FOVFill.BackgroundColor3 = SETTINGS.MainColor
local FOVFillCorner = Instance.new("UICorner")
FOVFillCorner.Parent = FOVFill
FOVFillCorner.CornerRadius = UDim.new(0, 4)
local FOVButton = Instance.new("TextButton")
FOVButton.Parent = FOVSlider
FOVButton.Size = UDim2.new(1, 0, 1, 0)
FOVButton.BackgroundTransparency = 1
FOVButton.Text = ""
FOVButton.MouseButton1Down:Connect(function()
local connection
connection = RunService.RenderStepped:Connect(function()
local mousePos = UserInputService:GetMouseLocation()
local sliderPos = FOVSlider.AbsolutePosition
local sliderSize = FOVSlider.AbsoluteSize.X
local relativeX = math.clamp(mousePos.X - sliderPos.X, 0, sliderSize)
local percent = relativeX / sliderSize
percent = math.clamp(percent, 0, 1)
local newFOV = math.floor(SETTINGS.MinFOV + (percent * (SETTINGS.MaxFOV - SETTINGS.MinFOV)))
SETTINGS.FOV = newFOV
FOVFill.Size = UDim2.new(percent, 0, 1, 0)
fovValue.Text = "FOV Size: " .. newFOV
end)
local ended
ended = UserInputService.InputEnded:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 then
connection:Disconnect()
ended:Disconnect()
end
end)
end)
-- Smooth слайдер
local SmoothFrame = Instance.new("Frame")
SmoothFrame.Parent = contentFrame
SmoothFrame.Size = UDim2.new(1, 0, 0, 45)
SmoothFrame.Position = UDim2.new(0, 0, 0, 370)
SmoothFrame.BackgroundColor3 = Color3.fromRGB(30, 30, 40)
SmoothFrame.BackgroundTransparency = 0.3
local SmoothCorner = Instance.new("UICorner")
SmoothCorner.Parent = SmoothFrame
SmoothCorner.CornerRadius = UDim.new(0, 8)
smoothnessValue = Instance.new("TextLabel")
smoothnessValue.Parent = SmoothFrame
smoothnessValue.Size = UDim2.new(1, -20, 0, 18)
smoothnessValue.Position = UDim2.new(0, 10, 0, 3)
smoothnessValue.BackgroundTransparency = 1
smoothnessValue.Text = "Smooth: 0.95"
smoothnessValue.TextColor3 = Color3.fromRGB(200, 200, 220)
smoothnessValue.Font = Enum.Font.Gotham
smoothnessValue.TextSize = 13
smoothnessValue.TextXAlignment = Enum.TextXAlignment.Left
local SmoothSlider = Instance.new("Frame")
SmoothSlider.Parent = SmoothFrame
SmoothSlider.Size = UDim2.new(1, -20, 0, 18)
SmoothSlider.Position = UDim2.new(0, 10, 0, 22)
SmoothSlider.BackgroundColor3 = Color3.fromRGB(60, 60, 70)
local SmoothSliderCorner = Instance.new("UICorner")
SmoothSliderCorner.Parent = SmoothSlider
SmoothSliderCorner.CornerRadius = UDim.new(0, 4)
local SmoothFill = Instance.new("Frame")
SmoothFill.Parent = SmoothSlider
SmoothFill.Size = UDim2.new(SETTINGS.Smoothness, 0, 1, 0)
SmoothFill.BackgroundColor3 = SETTINGS.MainColor
local SmoothFillCorner = Instance.new("UICorner")
SmoothFillCorner.Parent = SmoothFill
SmoothFillCorner.CornerRadius = UDim.new(0, 4)
local SmoothButton = Instance.new("TextButton")
SmoothButton.Parent = SmoothSlider
SmoothButton.Size = UDim2.new(1, 0, 1, 0)
SmoothButton.BackgroundTransparency = 1
SmoothButton.Text = ""
SmoothButton.MouseButton1Down:Connect(function()
local connection
connection = RunService.RenderStepped:Connect(function()
local mousePos = UserInputService:GetMouseLocation()
local sliderPos = SmoothSlider.AbsolutePosition
local sliderSize = SmoothSlider.AbsoluteSize.X
local relativeX = math.clamp(mousePos.X - sliderPos.X, 0, sliderSize)
local percent = relativeX / sliderSize
percent = math.floor(percent * 100) / 100
percent = math.clamp(percent, 0.01, 1.0)
SETTINGS.Smoothness = percent
SmoothFill.Size = UDim2.new(percent, 0, 1, 0)
smoothnessValue.Text = "Smooth: " .. string.format("%.2f", percent)
end)
local ended
ended = UserInputService.InputEnded:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 then
connection:Disconnect()
ended:Disconnect()
end
end)
end)
-- Discord кнопка
discordButton, _ = createButton(contentFrame, "Discord", 420, Color3.fromRGB(88, 101, 242))
animateButton(discordButton, Color3.fromRGB(108, 121, 252))
discordButton.MouseButton1Click:Connect(function()
copyToClipboard("https://discordapp.com/users/1248916149400371221")
local oldText = discordButton.Text
discordButton.Text = "Copied!"
discordButton.TextColor3 = Color3.fromRGB(100, 255, 100)
task.wait(1)
discordButton.Text = oldText
discordButton.TextColor3 = Color3.fromRGB(255, 255, 255)
end)
-- Информация
local InfoFrame = Instance.new("Frame")
InfoFrame.Parent = contentFrame
InfoFrame.Size = UDim2.new(1, 0, 0, 80)
InfoFrame.Position = UDim2.new(0, 0, 0, 465)
InfoFrame.BackgroundColor3 = Color3.fromRGB(30, 30, 40)
InfoFrame.BackgroundTransparency = 0.3
local InfoCorner = Instance.new("UICorner")
InfoCorner.Parent = InfoFrame
InfoCorner.CornerRadius = UDim.new(0, 8)
local InfoLabel = Instance.new("TextLabel")
InfoLabel.Parent = InfoFrame
InfoLabel.Size = UDim2.new(1, -20, 1, -10)
InfoLabel.Position = UDim2.new(0, 10, 0, 5)
InfoLabel.BackgroundTransparency = 1
InfoLabel.Text = "Banan AimBot - AimBot + ESP\nCreator: Russian dev\nRight Alt - hide/show GUI\nGood Luck!"
InfoLabel.TextColor3 = Color3.fromRGB(180, 180, 200)
InfoLabel.Font = Enum.Font.Gotham
InfoLabel.TextSize = 13
InfoLabel.TextXAlignment = Enum.TextXAlignment.Left
InfoLabel.TextYAlignment = Enum.TextYAlignment.Top
-- Обработчики кнопок
fovToggleButton.MouseButton1Click:Connect(function()
SETTINGS.ShowFOVCircle = not SETTINGS.ShowFOVCircle
updateButtonTexts()
end)
espToggleButton.MouseButton1Click:Connect(function()
SETTINGS.ESPEnabled = not SETTINGS.ESPEnabled
updateButtonTexts()
end)
aimbotToggleButton.MouseButton1Click:Connect(function()
SETTINGS.AimbotEnabled = not SETTINGS.AimbotEnabled
if not SETTINGS.AimbotEnabled then
aimActive = false
SETTINGS.ToggleState = false
if statusText then
statusText.Text = "OFF"
statusText.TextColor3 = Color3.fromRGB(255, 100, 100)
end
end
updateButtonTexts()
end)
modeToggleButton.MouseButton1Click:Connect(function()
SETTINGS.ToggleMode = not SETTINGS.ToggleMode
updateButtonTexts()
end)
partButton.MouseButton1Click:Connect(function()
currentPartIndex = currentPartIndex % #TARGET_PARTS + 1
SETTINGS.TargetPart = TARGET_PARTS[currentPartIndex]
updateButtonTexts()
end)
keyButton.MouseButton1Click:Connect(function()
currentKeyIndex = currentKeyIndex % #KEY_LIST + 1
SETTINGS.AimKey = KEY_LIST[currentKeyIndex][2]
updateButtonTexts()
end)
wallCheckButton.MouseButton1Click:Connect(function()
SETTINGS.VisibleCheck = not SETTINGS.VisibleCheck
updateButtonTexts()
end)
teamCheckButton.MouseButton1Click:Connect(function()
SETTINGS.TeamCheck = not SETTINGS.TeamCheck
updateButtonTexts()
end)
updateButtonTexts()
end
local function createFOVCircle()
if not scriptActive then return end
if FOVCircle then
FOVCircle:Remove()
end
FOVCircle = Drawing.new("Circle")
FOVCircle.Visible = SETTINGS.ShowFOVCircle
FOVCircle.Radius = SETTINGS.FOV
FOVCircle.Thickness = 2
FOVCircle.NumSides = 64
FOVCircle.Color = SETTINGS.MainColor
FOVCircle.Filled = false
FOVCircle.Transparency = 1
FOVCircle.Position = getMousePosition()
end
-- === ESP ===
local function createESPForPlayer(plr)
if not scriptActive or plr == player then return end
if ESPobjects[plr] then return end
local espTable = {}
local box = Drawing.new("Square")
box.Visible = false
box.Thickness = 2
box.Color = SETTINGS.MainColor
box.Filled = false
box.Transparency = 1
local healthBar = Drawing.new("Square")
healthBar.Visible = false
healthBar.Thickness = 1
healthBar.Color = SETTINGS.HealthColor
healthBar.Filled = true
healthBar.Transparency = 0.3
local healthBg = Drawing.new("Square")
healthBg.Visible = false
healthBg.Thickness = 1
healthBg.Color = Color3.fromRGB(30, 30, 30)
healthBg.Filled = true
healthBg.Transparency = 0.3
local nameText = Drawing.new("Text")
nameText.Visible = false
nameText.Center = true
nameText.Outline = true
nameText.Size = 15
nameText.Color = Color3.fromRGB(255, 255, 255)
nameText.Font = 2
nameText.OutlineColor = SETTINGS.MainColor
local teamCircle = Drawing.new("Circle")
teamCircle.Visible = false
teamCircle.Radius = 6
teamCircle.Thickness = 1
teamCircle.Color = Color3.fromRGB(255, 255, 255)
teamCircle.Filled = true
teamCircle.Transparency = 0.8
teamCircle.NumSides = 16
local healthText = Drawing.new("Text")
healthText.Visible = false
healthText.Center = true
healthText.Outline = true
healthText.Size = 12
healthText.Color = Color3.fromRGB(255, 255, 255)
healthText.Font = 2
healthText.OutlineColor = SETTINGS.MainColor
local distanceText = Drawing.new("Text")
distanceText.Visible = false
distanceText.Center = true
distanceText.Outline = true
distanceText.Size = 14
distanceText.Color = Color3.fromRGB(255, 255, 255)
distanceText.Font = 2
distanceText.OutlineColor = SETTINGS.MainColor
local skeletonLines = {}
for i = 1, 15 do
local line = Drawing.new("Line")
line.Visible = false
line.Thickness = 1.5
line.Color = SETTINGS.SkeletonColor
line.Transparency = 0.6
table.insert(skeletonLines, line)
end
espTable["box"] = box
espTable["healthBar"] = healthBar
espTable["healthBg"] = healthBg
espTable["nameText"] = nameText
espTable["teamCircle"] = teamCircle
espTable["healthText"] = healthText
espTable["distanceText"] = distanceText
espTable["skeleton"] = skeletonLines
ESPobjects[plr] = espTable
end
local function updateSkeleton(plr, esp, boxX, boxY, boxWidth, boxHeight)
local skeleton = esp["skeleton"]
if not skeleton then return end
for _, line in ipairs(skeleton) do
line.Visible = false
end
local char = plr.Character
if not char then return end
local head = char:FindFirstChild("Head")
local torso = char:FindFirstChild("Torso") or char:FindFirstChild("UpperTorso")
local root = char:FindFirstChild("HumanoidRootPart")
local leftArm = char:FindFirstChild("Left Arm") or char:FindFirstChild("LeftHand")
local rightArm = char:FindFirstChild("Right Arm") or char:FindFirstChild("RightHand")
local leftLeg = char:FindFirstChild("Left Leg") or char:FindFirstChild("LeftFoot")
local rightLeg = char:FindFirstChild("Right Leg") or char:FindFirstChild("RightFoot")
local parts = {head, torso, root, leftArm, rightArm, leftLeg, rightLeg}
local positions = {}
for i, part in ipairs(parts) do
if part then
local pos, onScreen = camera:WorldToViewportPoint(part.Position)
if onScreen then
local clampedX = math.clamp(pos.X, boxX, boxX + boxWidth)
local clampedY = math.clamp(pos.Y, boxY, boxY + boxHeight)
positions[i] = Vector2.new(clampedX, clampedY)
end
end
end
local lineIndex = 1
if positions[1] and positions[2] then
skeleton[lineIndex].From = positions[1]
skeleton[lineIndex].To = positions[2]
skeleton[lineIndex].Visible = true
lineIndex = lineIndex + 1
end
if positions[2] and positions[3] then
skeleton[lineIndex].From = positions[2]
skeleton[lineIndex].To = positions[3]
skeleton[lineIndex].Visible = true
lineIndex = lineIndex + 1
end
if positions[2] and positions[4] then
skeleton[lineIndex].From = positions[2]
skeleton[lineIndex].To = positions[4]
skeleton[lineIndex].Visible = true
lineIndex = lineIndex + 1
end
if positions[2] and positions[5] then
skeleton[lineIndex].From = positions[2]
skeleton[lineIndex].To = positions[5]
skeleton[lineIndex].Visible = true
lineIndex = lineIndex + 1
end
if positions[3] and positions[6] then
skeleton[lineIndex].From = positions[3]
skeleton[lineIndex].To = positions[6]
skeleton[lineIndex].Visible = true
lineIndex = lineIndex + 1
end
if positions[3] and positions[7] then
skeleton[lineIndex].From = positions[3]
skeleton[lineIndex].To = positions[7]
skeleton[lineIndex].Visible = true
lineIndex = lineIndex + 1
end
end
local function updateESP()
if not scriptActive then return end
for plr, esp in pairs(ESPobjects) do
if plr and plr.Character and plr.Character:FindFirstChild("Humanoid") and plr.Character.Humanoid.Health > 0 then
local head = plr.Character:FindFirstChild("Head")
local humanoid = plr.Character.Humanoid
local rootPart = plr.Character:FindFirstChild("HumanoidRootPart")
if head and rootPart and humanoid and player.Character and player.Character:FindFirstChild("HumanoidRootPart") then
local headPos, onScreen = camera:WorldToViewportPoint(head.Position)
local rootPos, _ = camera:WorldToViewportPoint(rootPart.Position)
if onScreen then
local playerHeight = math.abs(headPos.Y - rootPos.Y)
local height = playerHeight * 1.6
local width = height * 0.5
local boxY = rootPos.Y - height / 2
local boxX = rootPos.X - width / 2
-- Бокс
if SETTINGS.ESPEnabled then
esp.box.Position = Vector2.new(boxX, boxY)
esp.box.Size = Vector2.new(width, height)
esp.box.Visible = true
-- Здоровье
local healthPercent = humanoid.Health / humanoid.MaxHealth
local healthBarHeight = height * healthPercent
local healthBarY = boxY + (height - healthBarHeight)
esp.healthBg.Position = Vector2.new(boxX - 8, boxY)
esp.healthBg.Size = Vector2.new(4, height)
esp.healthBg.Visible = true
esp.healthBar.Position = Vector2.new(boxX - 8, healthBarY)
esp.healthBar.Size = Vector2.new(4, healthBarHeight)
esp.healthBar.Visible = true
-- Ник
esp.nameText.Position = Vector2.new(boxX + width / 2, boxY - 20)
esp.nameText.Text = plr.Name
esp.nameText.Visible = true
-- Команда
if SETTINGS.TeamCheck and plr.Team then
esp.teamCircle.Position = Vector2.new(boxX + width / 2 + 45, boxY - 20)
esp.teamCircle.Color = getTeamColor(plr)
esp.teamCircle.Visible = true
else
esp.teamCircle.Visible = false
end
-- Текст здоровья
esp.healthText.Position = Vector2.new(boxX - 35, boxY + height / 2 - 7)
esp.healthText.Text = math.floor(humanoid.Health) .. "/" .. math.floor(humanoid.MaxHealth)
esp.healthText.Visible = true
-- Дистанция
local distance = math.floor((rootPart.Position - player.Character.HumanoidRootPart.Position).Magnitude)
esp.distanceText.Position = Vector2.new(boxX + width / 2 + 5, boxY + height + 5)
esp.distanceText.Text = distance .. " studs"
esp.distanceText.Visible = true
-- Скелет
updateSkeleton(plr, esp, boxX, boxY, width, height)
else
esp.box.Visible = false
esp.healthBar.Visible = false
esp.healthBg.Visible = false
esp.nameText.Visible = false
esp.teamCircle.Visible = false
esp.healthText.Visible = false
esp.distanceText.Visible = false
for _, line in ipairs(esp.skeleton) do
line.Visible = false
end
end
else
for _, drawing in pairs(esp) do
if type(drawing) == "table" and drawing.Visible ~= nil then
drawing.Visible = false
elseif type(drawing) == "table" then
for _, line in ipairs(drawing) do
if line then
line.Visible = false
end
end
end
end
end
else
for _, drawing in pairs(esp) do
if type(drawing) == "table" and drawing.Visible ~= nil then
drawing.Visible = false
elseif type(drawing) == "table" then
for _, line in ipairs(drawing) do
if line then
line.Visible = false
end
end
end
end
end
else
for _, drawing in pairs(esp) do
if type(drawing) == "table" and drawing.Visible ~= nil then
drawing.Visible = false
elseif type(drawing) == "table" then
for _, line in ipairs(drawing) do
if line then
line.Visible = false
end
end
end
end
end
end
end
local function getTargetPart(plr)
if SETTINGS.TargetPart == "Random" then
local parts = {"Head", "Torso", "HumanoidRootPart"}
local randomPart = parts[math.random(1, 3)]
return plr.Character:FindFirstChild(randomPart)
else
return plr.Character:FindFirstChild(SETTINGS.TargetPart)
end
end
local function getClosestTarget()
if not scriptActive or not SETTINGS.AimbotEnabled then return nil end
local closestTarget = nil
local shortestDistance = SETTINGS.FOV
local center = fovPosition
for _, plr in ipairs(Players:GetPlayers()) do
if plr ~= player and plr.Character and plr.Character:FindFirstChild("Humanoid") then
local humanoid = plr.Character.Humanoid
if humanoid and humanoid.Health > 0 then
if SETTINGS.TeamCheck and plr.Team == player.Team then
continue
end
local targetPart = getTargetPart(plr)
if not targetPart then
targetPart = plr.Character:FindFirstChild("Head") or plr.Character:FindFirstChild("HumanoidRootPart")
end
if targetPart then
if not isVisible(targetPart) then
continue
end
local screenPoint, onScreen = camera:WorldToViewportPoint(targetPart.Position)
if onScreen then
local distance = (Vector2.new(screenPoint.X, screenPoint.Y) - center).Magnitude
if distance < shortestDistance then
shortestDistance = distance
closestTarget = targetPart
end
end
end
end
end
end
return closestTarget
end
-- === ОБРАБОТКА ВВОДА (КАМЕРА БОЛЬШЕ НЕ ТРОГАЕТСЯ) ===
UserInputService.InputBegan:Connect(function(input, gameProcessed)
if not scriptActive or gameProcessed then return end
if input.KeyCode == SETTINGS.AimKey and SETTINGS.AimbotEnabled then
if SETTINGS.ToggleMode then
SETTINGS.ToggleState = not SETTINGS.ToggleState
aimActive = SETTINGS.ToggleState
if statusText then
statusText.Text = aimActive and "ON" or "OFF"
statusText.TextColor3 = aimActive and Color3.fromRGB(100, 255, 100) or Color3.fromRGB(255, 100, 100)
end
else
aimActive = true
if statusText then
statusText.Text = "ON"
statusText.TextColor3 = Color3.fromRGB(100, 255, 100)
end
end
end
if input.KeyCode == SETTINGS.HideKey then
toggleGUI()
end
end)
UserInputService.InputEnded:Connect(function(input, gameProcessed)
if not scriptActive or gameProcessed then return end
if input.KeyCode == SETTINGS.AimKey and not SETTINGS.ToggleMode and SETTINGS.AimbotEnabled then
aimActive = false
if statusText then
statusText.Text = "OFF"
statusText.TextColor3 = Color3.fromRGB(255, 100, 100)
end
end
end)
-- === ИНИЦИАЛИЗАЦИЯ ===
local success, err = pcall(function()
createGUI()
end)
if not success then
warn("Failed to create GUI:", err)
end
createFOVCircle()
for _, plr in ipairs(Players:GetPlayers()) do
createESPForPlayer(plr)
end
Players.PlayerAdded:Connect(function(plr)
createESPForPlayer(plr)
end)
Players.PlayerRemoving:Connect(function(plr)
if ESPobjects[plr] then
for _, drawing in pairs(ESPobjects[plr]) do
if drawing and drawing.Remove then
pcall(function() drawing:Remove() end)
elseif type(drawing) == "table" then
for _, line in ipairs(drawing) do
if line and line.Remove then
pcall(function() line:Remove() end)
end
end
end
end
ESPobjects[plr] = nil
end
end)
-- === ГЛАВНЫЙ ЦИКЛ ===
RunService.RenderStepped:Connect(function()
if not scriptActive then return end
fovPosition = getMousePosition()
if FOVCircle and SETTINGS.ShowFOVCircle then
FOVCircle.Position = fovPosition
FOVCircle.Radius = SETTINGS.FOV
if aimActive and SETTINGS.AimbotEnabled then
FOVCircle.Color = SETTINGS.MainColor
FOVCircle.Transparency = 1
else
FOVCircle.Color = Color3.fromRGB(230, 115, 0)
FOVCircle.Transparency = 0.8
end
FOVCircle.Visible = true
elseif FOVCircle then
FOVCircle.Visible = false
end
if aimActive and SETTINGS.AimbotEnabled then
local target = getClosestTarget()
if target then
local targetPos = target.Position
local cameraPos = camera.CFrame.Position
camera.CFrame = camera.CFrame:Lerp(CFrame.lookAt(cameraPos, targetPos), SETTINGS.Smoothness)
currentTarget = target
end
end
updateESP()
end)
-- === ВЫХОД ПО ESC ===
UserInputService.InputBegan:Connect(function(input, gameProcessed)
if input.KeyCode == Enum.KeyCode.Escape and not gameProcessed and scriptActive then
scriptActive = false
aimActive = false
SETTINGS.ToggleState = false
if FOVCircle then
FOVCircle.Visible = false
FOVCircle:Remove()
FOVCircle = nil
end
for _, obj in pairs(ESPobjects) do
if obj then
for _, drawing in pairs(obj) do
if drawing and drawing.Remove then
pcall(function() drawing:Remove() end)
elseif type(drawing) == "table" then
for _, line in ipairs(drawing) do
if line and line.Remove then
pcall(function() line:Remove() end)
end
end
end
end
end
end
ESPobjects = {}
if ScreenGui then
ScreenGui:Destroy()
ScreenGui = nil
end
script:Destroy()
end
end)
print("Banan")