local Players = game:GetService("Players") local LocalPlayer = Players.LocalPlayer local RunService = game:GetService("RunService") local UserInputService = game:GetService("UserInputService") local Workspace = game:GetService("Workspace") local Camera = Workspace.CurrentCamera -- ========================================== -- НАСТРОЙКИ ФУНКЦИЙ -- ========================================== local AIMBOT_ENABLED = false local CHAMS_ENABLED = false local THIRD_PERSON_ENABLED = false local BHOP_ENABLED = false local FOV_RADIUS = 50 -- Радиус FOV в пикселях (изменено на 50) local FOV_Y_OFFSET = -22 -- Смещение кольца FOV по вертикали (изменено на -22) local AIM_SMOOTHNESS = 0.7 -- Резкость наводки -- ========================================== -- СОЗДАНИЕ ИНТЕРФЕЙСА (GUI) -- ========================================== local playerGui = LocalPlayer:WaitForChild("PlayerGui") local screenGui = Instance.new("ScreenGui") screenGui.Name = "WesterLuaPixelGui" screenGui.ResetOnSpawn = false screenGui.Parent = playerGui -- Вспомогательная функция перетаскивания (Drag) local function makeDraggable(guiElement, handle) local dragHandle = handle or guiElement local dragging, dragInput, dragStart, startPos dragHandle.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then dragging = true dragStart = input.Position startPos = guiElement.Position input.Changed:Connect(function() if input.UserInputState == Enum.UserInputState.End then dragging = false end end) end end) dragHandle.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 then local delta = input.Position - dragStart guiElement.Position = UDim2.new( startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y ) end end) end -------------------------------------------------- -- 1. КНОПКА ОТКРЫТИЯ (Белый WesterLua + Переливающаяся SVG) -------------------------------------------------- local openContainer = Instance.new("TextButton") openContainer.Name = "WesterOpenButton" openContainer.Size = UDim2.new(0, 160, 0, 40) openContainer.Position = UDim2.new(0.02, 0, 0.05, 0) openContainer.BackgroundTransparency = 1 openContainer.Text = "" openContainer.Parent = screenGui local openIcon = Instance.new("ImageLabel") openIcon.Name = "SVGIcon" openIcon.Size = UDim2.new(0, 24, 0, 24) openIcon.Position = UDim2.new(0, 0, 0.5, -12) openIcon.BackgroundTransparency = 1 openIcon.Image = "rbxassetid://3926305904" openIcon.ImageRectOffset = Vector2.new(964, 324) openIcon.ImageRectSize = Vector2.new(36, 36) openIcon.ImageColor3 = Color3.fromRGB(255, 0, 0) openIcon.Parent = openContainer local openText = Instance.new("TextLabel") openText.Name = "WesterText" openText.Size = UDim2.new(1, -30, 1, 0) openText.Position = UDim2.new(0, 30, 0, 0) openText.BackgroundTransparency = 1 openText.Font = Enum.Font.Arcade openText.TextSize = 18 openText.Text = "WesterLua" openText.TextColor3 = Color3.fromRGB(255, 255, 255) openText.TextXAlignment = Enum.TextXAlignment.Left openText.Parent = openContainer makeDraggable(openContainer) -------------------------------------------------- -- 2. ЭЛЕМЕНТЫ FOV И ТРАССЕРА -------------------------------------------------- -- Кольцо FOV local fovCircle = Instance.new("Frame") fovCircle.Name = "FOVCircle" fovCircle.Size = UDim2.new(0, FOV_RADIUS * 2, 0, FOV_RADIUS * 2) fovCircle.Position = UDim2.new(0.5, -FOV_RADIUS, 0.5, -FOV_RADIUS + FOV_Y_OFFSET) fovCircle.BackgroundTransparency = 1 fovCircle.Visible = false fovCircle.Parent = screenGui local fovCorner = Instance.new("UICorner") fovCorner.CornerRadius = UDim.new(1, 0) fovCorner.Parent = fovCircle local fovStroke = Instance.new("UIStroke") fovStroke.Thickness = 1.5 fovStroke.Color = Color3.fromRGB(255, 255, 255) fovStroke.Transparency = 0.3 fovStroke.Parent = fovCircle -- Тонкая красная линия к цели local tracerLine = Instance.new("Frame") tracerLine.Name = "AimbotTracer" tracerLine.Size = UDim2.new(0, 0, 0, 1) tracerLine.BackgroundColor3 = Color3.fromRGB(255, 0, 0) tracerLine.BorderSizePixel = 0 tracerLine.AnchorPoint = Vector2.new(0.5, 0.5) tracerLine.Visible = false tracerLine.Parent = screenGui -------------------------------------------------- -- 3. ПИКСЕЛЬНОЕ ГЛАВНОЕ МЕНЮ -------------------------------------------------- local mainFrame = Instance.new("Frame") mainFrame.Name = "PixelMenu" mainFrame.Size = UDim2.new(0, 230, 0, 265) mainFrame.Position = UDim2.new(0.5, -115, 0.3, 0) mainFrame.BackgroundColor3 = Color3.fromRGB(15, 15, 22) mainFrame.BorderSizePixel = 0 mainFrame.Visible = false mainFrame.Parent = screenGui local menuStroke = Instance.new("UIStroke") menuStroke.Thickness = 2 menuStroke.Color = Color3.fromRGB(255, 50, 50) menuStroke.ApplyStrokeMode = Enum.ApplyStrokeMode.Border menuStroke.Parent = mainFrame local headerFrame = Instance.new("Frame") headerFrame.Name = "Header" headerFrame.Size = UDim2.new(1, 0, 0, 36) headerFrame.BackgroundColor3 = Color3.fromRGB(25, 25, 35) headerFrame.BorderSizePixel = 0 headerFrame.Parent = mainFrame local headerTitle = Instance.new("TextLabel") headerTitle.Size = UDim2.new(1, -40, 1, 0) headerTitle.Position = UDim2.new(0, 10, 0, 0) headerTitle.Font = Enum.Font.Arcade headerTitle.TextSize = 15 headerTitle.Text = "WESTER LUA" headerTitle.TextColor3 = Color3.fromRGB(255, 255, 255) headerTitle.TextXAlignment = Enum.TextXAlignment.Left headerTitle.BackgroundTransparency = 1 headerTitle.Parent = headerFrame local closeBtn = Instance.new("TextButton") closeBtn.Name = "CloseButton" closeBtn.Size = UDim2.new(0, 36, 0, 36) closeBtn.Position = UDim2.new(1, -36, 0, 0) closeBtn.Font = Enum.Font.Arcade closeBtn.TextSize = 16 closeBtn.Text = "[X]" closeBtn.TextColor3 = Color3.fromRGB(255, 60, 60) closeBtn.BackgroundTransparency = 1 closeBtn.Parent = headerFrame local headerLine = Instance.new("Frame") headerLine.Size = UDim2.new(1, 0, 0, 2) headerLine.Position = UDim2.new(0, 0, 1, -2) headerLine.BackgroundColor3 = Color3.fromRGB(255, 50, 50) headerLine.BorderSizePixel = 0 headerLine.Parent = headerFrame makeDraggable(mainFrame, headerFrame) local container = Instance.new("Frame") container.Size = UDim2.new(1, -16, 1, -48) container.Position = UDim2.new(0, 8, 0, 42) container.BackgroundTransparency = 1 container.Parent = mainFrame local layout = Instance.new("UIListLayout") layout.Parent = container layout.SortOrder = Enum.SortOrder.LayoutOrder layout.Padding = UDim.new(0, 8) local function createPixelToggle(text, order) local btn = Instance.new("TextButton") btn.Size = UDim2.new(1, 0, 0, 38) btn.BackgroundColor3 = Color3.fromRGB(22, 22, 32) btn.Font = Enum.Font.Arcade btn.TextSize = 13 btn.Text = " " .. text btn.TextColor3 = Color3.fromRGB(200, 200, 210) btn.TextXAlignment = Enum.TextXAlignment.Left btn.LayoutOrder = order btn.Parent = container local status = Instance.new("TextLabel") status.Size = UDim2.new(0, 60, 1, 0) status.Position = UDim2.new(1, -65, 0, 0) status.Font = Enum.Font.Arcade status.TextSize = 12 status.Text = "OFF" status.TextColor3 = Color3.fromRGB(150, 50, 50) status.BackgroundTransparency = 1 status.Parent = btn local stroke = Instance.new("UIStroke") stroke.Thickness = 1 stroke.Color = Color3.fromRGB(45, 45, 60) stroke.ApplyStrokeMode = Enum.ApplyStrokeMode.Border stroke.Parent = btn return btn, status, stroke end local aimbotBtn, aimbotStatus, aimbotStroke = createPixelToggle("AIMBOT", 1) local chamsBtn, chamsStatus, chamsStroke = createPixelToggle("WALL CHAMS", 2) local thirdPersonBtn, thirdPersonStatus, thirdPersonStroke = createPixelToggle("3RD PERSON", 3) local bhopBtn, bhopStatus, bhopStroke = createPixelToggle("JUMP BOOST", 4) local function updateToggleVisual(btn, status, stroke, state) if state then status.Text = "ON" status.TextColor3 = Color3.fromRGB(0, 255, 120) btn.TextColor3 = Color3.fromRGB(255, 255, 255) stroke.Color = Color3.fromRGB(0, 255, 120) else status.Text = "OFF" status.TextColor3 = Color3.fromRGB(150, 50, 50) btn.TextColor3 = Color3.fromRGB(200, 200, 210) stroke.Color = Color3.fromRGB(45, 45, 60) end end -- События кнопок openContainer.MouseButton1Click:Connect(function() mainFrame.Visible = not mainFrame.Visible end) closeBtn.MouseButton1Click:Connect(function() mainFrame.Visible = false end) aimbotBtn.MouseButton1Click:Connect(function() AIMBOT_ENABLED = not AIMBOT_ENABLED updateToggleVisual(aimbotBtn, aimbotStatus, aimbotStroke, AIMBOT_ENABLED) fovCircle.Visible = AIMBOT_ENABLED if not AIMBOT_ENABLED then tracerLine.Visible = false end end) chamsBtn.MouseButton1Click:Connect(function() CHAMS_ENABLED = not CHAMS_ENABLED updateToggleVisual(chamsBtn, chamsStatus, chamsStroke, CHAMS_ENABLED) end) thirdPersonBtn.MouseButton1Click:Connect(function() THIRD_PERSON_ENABLED = not THIRD_PERSON_ENABLED updateToggleVisual(thirdPersonBtn, thirdPersonStatus, thirdPersonStroke, THIRD_PERSON_ENABLED) end) bhopBtn.MouseButton1Click:Connect(function() BHOP_ENABLED = not BHOP_ENABLED updateToggleVisual(bhopBtn, bhopStatus, bhopStroke, BHOP_ENABLED) end) -- ========================================== -- ВСПОМОГАТЕЛЬНЫЕ ФУНКЦИИ -- ========================================== local function isPartVisible(targetPart, character) if not targetPart or not character then return false end local origin = Camera.CFrame.Position local direction = targetPart.Position - origin local raycastParams = RaycastParams.new() raycastParams.FilterType = Enum.RaycastFilterType.Exclude local ignoreList = {Camera} if LocalPlayer.Character then table.insert(ignoreList, LocalPlayer.Character) end raycastParams.FilterDescendantsInstances = ignoreList local result = Workspace:Raycast(origin, direction, raycastParams) if not result then return true end -- Улучшенная проверка: если луч попал в тело или аксессуар противника, считаем видимым return result.Instance:IsDescendantOf(character) end local function drawTracerLine(p1, p2) local distance = (p2 - p1).Magnitude local angle = math.deg(math.atan2(p2.Y - p1.Y, p2.X - p1.X)) local center = (p1 + p2) / 2 tracerLine.Size = UDim2.new(0, distance, 0, 1) tracerLine.Position = UDim2.new(0, center.X, 0, center.Y) tracerLine.Rotation = angle tracerLine.Visible = true end -- ========================================== -- ОСНОВНОЙ ЦИКЛ ОБНОВЛЕНИЯ -- ========================================== RunService.RenderStepped:Connect(function() -------------------------------------------------- -- 0. ПЕРЕЛИВАНИЕ SVG ИКОНКИ (Красный <-> Белый) -------------------------------------------------- local pulse = (math.sin(tick() * 3.5) + 1) / 2 openIcon.ImageColor3 = Color3.fromRGB(255, 30, 30):Lerp(Color3.fromRGB(255, 255, 255), pulse) -------------------------------------------------- -- 1. AIMBOT & TRACER LINE -------------------------------------------------- if AIMBOT_ENABLED then local viewportSize = Camera.ViewportSize local fovCenter = Vector2.new(viewportSize.X / 2, (viewportSize.Y / 2) + FOV_Y_OFFSET) local closestTargetHead = nil local closestScreenPos = nil local minDistance = FOV_RADIUS for _, player in ipairs(Players:GetPlayers()) do if player ~= LocalPlayer and player.Character then local char = player.Character local head = char:FindFirstChild("Head") local humanoid = char:FindFirstChildOfClass("Humanoid") if head and humanoid and humanoid.Health > 0 and isPartVisible(head, char) then local screenPos, onScreen = Camera:WorldToViewportPoint(head.Position) if onScreen then local headPos2D = Vector2.new(screenPos.X, screenPos.Y) local dist = (headPos2D - fovCenter).Magnitude if dist <= minDistance then minDistance = dist closestTargetHead = head closestScreenPos = headPos2D end end end end end if closestTargetHead and closestScreenPos then -- Вычисляем угловое смещение для точного наведения в центр кольца FOV вне зависимости от расстояния local fovAngleOffset = math.atan2(-FOV_Y_OFFSET, viewportSize.Y / (2 * math.tan(math.rad(Camera.FieldOfView / 2)))) local baseCFrame = CFrame.lookAt(Camera.CFrame.Position, closestTargetHead.Position) local targetCFrame = baseCFrame * CFrame.Angles(fovAngleOffset, 0, 0) Camera.CFrame = Camera.CFrame:Lerp(targetCFrame, AIM_SMOOTHNESS) drawTracerLine(fovCenter, closestScreenPos) else tracerLine.Visible = false end else tracerLine.Visible = false end -------------------------------------------------- -- 2. CHAMS -------------------------------------------------- for _, player in ipairs(Players:GetPlayers()) do if player ~= LocalPlayer and player.Character then local char = player.Character local head = char:FindFirstChild("Head") or char:FindFirstChild("HumanoidRootPart") local highlight = char:FindFirstChild("WesterChamsHighlight") if CHAMS_ENABLED and head then if not highlight then highlight = Instance.new("Highlight") highlight.Name = "WesterChamsHighlight" highlight.DepthMode = Enum.HighlightDepthMode.AlwaysOnTop highlight.FillTransparency = 0.3 highlight.OutlineTransparency = 0 highlight.Parent = char end if isPartVisible(head, char) then highlight.FillColor = Color3.fromRGB(0, 255, 100) highlight.OutlineColor = Color3.fromRGB(0, 255, 100) else highlight.FillColor = Color3.fromRGB(255, 30, 30) highlight.OutlineColor = Color3.fromRGB(255, 30, 30) end else if highlight then highlight:Destroy() end end end end -------------------------------------------------- -- 3. 3-Е ЛИЦО -------------------------------------------------- if THIRD_PERSON_ENABLED then local char = LocalPlayer.Character local torso = char and (char:FindFirstChild("Torso") or char:FindFirstChild("UpperTorso") or char:FindFirstChild("HumanoidRootPart")) if char and torso then local cameraRot = Camera.CFrame - Camera.CFrame.Position Camera.CFrame = CFrame.new(torso.Position + Vector3.new(0, 2.2, 0)) * cameraRot * CFrame.new(0, 0, 7.5) for _, part in ipairs(char:GetDescendants()) do if part:IsA("BasePart") and part.Name ~= "HumanoidRootPart" then part.LocalTransparencyModifier = 0 end end for _, obj in ipairs(Camera:GetChildren()) do if obj:IsA("Model") or obj:IsA("Folder") then for _, part in ipairs(obj:GetDescendants()) do if part:IsA("BasePart") then part.LocalTransparencyModifier = 1 part.Transparency = 1 end end end end for _, obj in ipairs(Workspace:GetChildren()) do if (obj:IsA("Model") or obj:IsA("Folder")) and obj.Name ~= char.Name and not Players:GetPlayerFromCharacter(obj) then if obj.Name:lower():find("view") or obj.Name:lower():find("arm") or obj.Name:lower():find("fps") then for _, part in ipairs(obj:GetDescendants()) do if part:IsA("BasePart") then part.LocalTransparencyModifier = 1 part.Transparency = 1 end end end end end end end -------------------------------------------------- -- 4. МОДИФИКАЦИЯ ПРЫЖКА -------------------------------------------------- local char = LocalPlayer.Character local humanoid = char and char:FindFirstChildOfClass("Humanoid") if humanoid then if BHOP_ENABLED then humanoid.UseJumpPower = true humanoid.JumpPower = 16 if humanoid.FloorMaterial == Enum.Material.Air then humanoid.WalkSpeed = 26 else humanoid.WalkSpeed = 16 end else humanoid.UseJumpPower = true humanoid.JumpPower = 50 humanoid.WalkSpeed = 16 end end end)