Загрузка данных
-- Xeno Script Menu
-- Выгрузка + Скорость наводки + Наводка (полёт к игроку) + Список игроков
local CoreGui = game:GetService("CoreGui")
local Players = game:GetService("Players")
local UserInputService = game:GetService("UserInputService")
local RunService = game:GetService("RunService")
local player = Players.LocalPlayer
local connections = {}
local guiName = "XenoMenu_" .. tostring(math.random(1, 999999))
pcall(function()
local old = CoreGui:FindFirstChild("XenoMenu")
if old then old:Destroy() end
end)
local ScreenGui = Instance.new("ScreenGui")
ScreenGui.Name = "XenoMenu"
ScreenGui.ResetOnSpawn = false
ScreenGui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling
pcall(function() ScreenGui.Parent = CoreGui end)
if not ScreenGui.Parent then
ScreenGui.Parent = player:WaitForChild("PlayerGui")
end
-- ================= СОСТОЯНИЕ =================
local MIN_SPEED, MAX_SPEED = 16, 500
local DEFAULT_SPEED = 100
local currentAimSpeed = DEFAULT_SPEED
local aimbotEnabled = false
local selectedPlayer = nil
local dragging = false
-- ================= ОСНОВНОЕ ОКНО =================
local Main = Instance.new("Frame")
Main.Name = guiName
Main.Size = UDim2.new(0, 340, 0, 640)
Main.Position = UDim2.new(0.5, -170, 0.5, -320)
Main.BackgroundColor3 = Color3.fromRGB(25, 25, 30)
Main.BorderSizePixel = 0
Main.Active = true
Main.Draggable = true
Main.Parent = ScreenGui
local Corner = Instance.new("UICorner")
Corner.CornerRadius = UDim.new(0, 10)
Corner.Parent = Main
local Stroke = Instance.new("UIStroke")
Stroke.Color = Color3.fromRGB(80, 80, 90)
Stroke.Thickness = 1
Stroke.Parent = Main
local Title = Instance.new("TextLabel")
Title.Size = UDim2.new(1, 0, 0, 40)
Title.BackgroundColor3 = Color3.fromRGB(35, 35, 45)
Title.BorderSizePixel = 0
Title.Text = "Xeno Menu"
Title.TextColor3 = Color3.fromRGB(255, 255, 255)
Title.Font = Enum.Font.GothamBold
Title.TextSize = 18
Title.Parent = Main
local TitleCorner = Instance.new("UICorner")
TitleCorner.CornerRadius = UDim.new(0, 10)
TitleCorner.Parent = Title
local CloseBtn = Instance.new("TextButton")
CloseBtn.Size = UDim2.new(0, 30, 0, 30)
CloseBtn.Position = UDim2.new(1, -35, 0, 5)
CloseBtn.BackgroundColor3 = Color3.fromRGB(200, 50, 50)
CloseBtn.BorderSizePixel = 0
CloseBtn.Text = "X"
CloseBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
CloseBtn.Font = Enum.Font.GothamBold
CloseBtn.TextSize = 14
CloseBtn.Parent = Title
local CloseCorner = Instance.new("UICorner")
CloseCorner.CornerRadius = UDim.new(0, 6)
CloseCorner.Parent = CloseBtn
-- ================= УТИЛИТЫ =================
local function getHumanoid(char)
if not char then return nil end
return char:FindFirstChildOfClass("Humanoid")
end
local function getHRP(char)
if not char then return nil end
return char:FindFirstChild("HumanoidRootPart")
end
local function unload()
for _, conn in pairs(connections) do
pcall(function() conn:Disconnect() end)
end
connections = {}
pcall(function()
local hum = getHumanoid(player.Character)
if hum then
hum.WalkSpeed = 16
hum:ChangeState(Enum.HumanoidStateType.GettingUp)
end
end)
pcall(function() ScreenGui:Destroy() end)
print("[Xeno Menu] Скрипт выгружен.")
end
connections[#connections + 1] = CloseBtn.MouseButton1Click:Connect(unload)
-- ================= КНОПКА ВЫГРУЗКИ =================
local UnloadBtn = Instance.new("TextButton")
UnloadBtn.Size = UDim2.new(1, -40, 0, 40)
UnloadBtn.Position = UDim2.new(0, 20, 0, 60)
UnloadBtn.BackgroundColor3 = Color3.fromRGB(200, 60, 60)
UnloadBtn.BorderSizePixel = 0
UnloadBtn.Text = "Выгрузить скрипт"
UnloadBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
UnloadBtn.Font = Enum.Font.GothamBold
UnloadBtn.TextSize = 14
UnloadBtn.Parent = Main
local UnloadCorner = Instance.new("UICorner")
UnloadCorner.CornerRadius = UDim.new(0, 8)
UnloadCorner.Parent = UnloadBtn
connections[#connections + 1] = UnloadBtn.MouseButton1Click:Connect(unload)
-- ================= КНОПКА "СКОРОСТЬ НАВОДКИ" =================
local SpeedBtn = Instance.new("TextButton")
SpeedBtn.Size = UDim2.new(1, -40, 0, 40)
SpeedBtn.Position = UDim2.new(0, 20, 0, 115)
SpeedBtn.BackgroundColor3 = Color3.fromRGB(60, 120, 200)
SpeedBtn.BorderSizePixel = 0
SpeedBtn.Text = "Скорость наводки"
SpeedBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
SpeedBtn.Font = Enum.Font.GothamBold
SpeedBtn.TextSize = 14
SpeedBtn.Parent = Main
local SpeedBtnCorner = Instance.new("UICorner")
SpeedBtnCorner.CornerRadius = UDim.new(0, 8)
SpeedBtnCorner.Parent = SpeedBtn
-- ================= ТОГГЛ "НАВОДКА" =================
local AimbotBtn = Instance.new("TextButton")
AimbotBtn.Size = UDim2.new(1, -40, 0, 40)
AimbotBtn.Position = UDim2.new(0, 20, 0, 170)
AimbotBtn.BackgroundColor3 = Color3.fromRGB(70, 70, 85)
AimbotBtn.BorderSizePixel = 0
AimbotBtn.Text = "НАВОДКА: OFF"
AimbotBtn.TextColor3 = Color3.fromRGB(200, 200, 200)
AimbotBtn.Font = Enum.Font.GothamBold
AimbotBtn.TextSize = 14
AimbotBtn.Parent = Main
local AimbotCorner = Instance.new("UICorner")
AimbotCorner.CornerRadius = UDim.new(0, 8)
AimbotCorner.Parent = AimbotBtn
-- ================= ПАНЕЛЬ ПОЛЗУНКА СКОРОСТИ НАВОДКИ =================
local SliderHolder = Instance.new("Frame")
SliderHolder.Size = UDim2.new(1, -40, 0, 130)
SliderHolder.Position = UDim2.new(0, 20, 0, 220)
SliderHolder.BackgroundColor3 = Color3.fromRGB(35, 35, 45)
SliderHolder.BorderSizePixel = 0
SliderHolder.Visible = false
SliderHolder.Parent = Main
local HolderCorner = Instance.new("UICorner")
HolderCorner.CornerRadius = UDim.new(0, 8)
HolderCorner.Parent = SliderHolder
local ValueLabel = Instance.new("TextLabel")
ValueLabel.Size = UDim2.new(1, -20, 0, 26)
ValueLabel.Position = UDim2.new(0, 10, 0, 4)
ValueLabel.BackgroundTransparency = 1
ValueLabel.Text = "Скорость наводки: " .. DEFAULT_SPEED
ValueLabel.TextColor3 = Color3.fromRGB(220, 220, 220)
ValueLabel.Font = Enum.Font.GothamBold
ValueLabel.TextSize = 13
ValueLabel.TextXAlignment = Enum.TextXAlignment.Left
ValueLabel.Parent = SliderHolder
local Track = Instance.new("Frame")
Track.Size = UDim2.new(1, -20, 0, 20)
Track.Position = UDim2.new(0, 10, 0, 44)
Track.BackgroundColor3 = Color3.fromRGB(60, 60, 70)
Track.BorderSizePixel = 0
Track.Parent = SliderHolder
local TrackCorner = Instance.new("UICorner")
TrackCorner.CornerRadius = UDim.new(1, 0)
TrackCorner.Parent = Track
local TrackLine = Instance.new("Frame")
TrackLine.Size = UDim2.new(1, 0, 0, 8)
TrackLine.Position = UDim2.new(0, 0, 0.5, -4)
TrackLine.BackgroundColor3 = Color3.fromRGB(45, 45, 55)
TrackLine.BorderSizePixel = 0
TrackLine.Parent = Track
local TrackLineCorner = Instance.new("UICorner")
TrackLineCorner.CornerRadius = UDim.new(1, 0)
TrackLineCorner.Parent = TrackLine
local Fill = Instance.new("Frame")
Fill.Size = UDim2.new(0, 0, 0, 8)
Fill.Position = UDim2.new(0, 0, 0.5, -4)
Fill.BackgroundColor3 = Color3.fromRGB(60, 120, 200)
Fill.BorderSizePixel = 0
Fill.Parent = Track
local FillCorner = Instance.new("UICorner")
FillCorner.CornerRadius = UDim.new(1, 0)
FillCorner.Parent = Fill
local Knob = Instance.new("TextButton")
Knob.Size = UDim2.new(0, 20, 0, 20)
Knob.Position = UDim2.new(0, -10, 0.5, -10)
Knob.BackgroundColor3 = Color3.fromRGB(255, 255, 255)
Knob.BorderSizePixel = 0
Knob.Text = ""
Knob.AutoButtonColor = false
Knob.Parent = Track
local KnobCorner = Instance.new("UICorner")
KnobCorner.CornerRadius = UDim.new(1, 0)
KnobCorner.Parent = Knob
local ResetBtn = Instance.new("TextButton")
ResetBtn.Size = UDim2.new(1, -20, 0, 26)
ResetBtn.Position = UDim2.new(0, 10, 0, 70)
ResetBtn.BackgroundColor3 = Color3.fromRGB(70, 70, 90)
ResetBtn.BorderSizePixel = 0
ResetBtn.Text = "Сбросить (100)"
ResetBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
ResetBtn.Font = Enum.Font.Gotham
ResetBtn.TextSize = 12
ResetBtn.Parent = SliderHolder
local ResetCorner = Instance.new("UICorner")
ResetCorner.CornerRadius = UDim.new(0, 6)
ResetCorner.Parent = ResetBtn
local InfoLabel = Instance.new("TextLabel")
InfoLabel.Size = UDim2.new(1, -20, 0, 20)
InfoLabel.Position = UDim2.new(0, 10, 0, 100)
InfoLabel.BackgroundTransparency = 1
InfoLabel.Text = "Цель: не выбрана"
InfoLabel.TextColor3 = Color3.fromRGB(180, 180, 180)
InfoLabel.Font = Enum.Font.Gotham
InfoLabel.TextSize = 11
InfoLabel.Parent = SliderHolder
-- ================= СПИСОК ИГРОКОВ =================
local ListLabel = Instance.new("TextLabel")
ListLabel.Size = UDim2.new(1, -40, 0, 20)
ListLabel.Position = UDim2.new(0, 20, 0, 360)
ListLabel.BackgroundTransparency = 1
ListLabel.Text = "Игроки:"
ListLabel.TextColor3 = Color3.fromRGB(220, 220, 220)
ListLabel.Font = Enum.Font.GothamBold
ListLabel.TextSize = 13
ListLabel.TextXAlignment = Enum.TextXAlignment.Left
ListLabel.Parent = Main
local PlayerList = Instance.new("ScrollingFrame")
PlayerList.Size = UDim2.new(1, -40, 0, 235)
PlayerList.Position = UDim2.new(0, 20, 0, 385)
PlayerList.BackgroundColor3 = Color3.fromRGB(30, 30, 38)
PlayerList.BorderSizePixel = 0
PlayerList.ScrollBarThickness = 6
PlayerList.ScrollBarImageColor3 = Color3.fromRGB(90, 90, 110)
PlayerList.CanvasSize = UDim2.new(0, 0, 0, 0)
PlayerList.AutomaticCanvasSize = Enum.AutomaticSize.Y
PlayerList.Parent = Main
local ListCorner = Instance.new("UICorner")
ListCorner.CornerRadius = UDim.new(0, 8)
ListCorner.Parent = PlayerList
local ListPadding = Instance.new("UIPadding")
ListPadding.PaddingTop = UDim.new(0, 6)
ListPadding.PaddingBottom = UDim.new(0, 6)
ListPadding.PaddingLeft = UDim.new(0, 6)
ListPadding.PaddingRight = UDim.new(0, 6)
ListPadding.Parent = PlayerList
local ListLayout = Instance.new("UIListLayout")
ListLayout.SortOrder = Enum.SortOrder.LayoutOrder
ListLayout.Padding = UDim.new(0, 5)
ListLayout.Parent = PlayerList
local playerButtons = {}
local function refreshButtonVisual(plr)
local btn = playerButtons[plr]
if not btn then return end
if plr == selectedPlayer then
btn.BackgroundColor3 = Color3.fromRGB(60, 180, 90)
btn.TextColor3 = Color3.fromRGB(255, 255, 255)
else
btn.BackgroundColor3 = Color3.fromRGB(45, 45, 55)
btn.TextColor3 = Color3.fromRGB(220, 220, 220)
end
end
local function updateSelectionUI()
for p, _ in pairs(playerButtons) do
refreshButtonVisual(p)
end
if selectedPlayer then
InfoLabel.Text = "Цель: " .. selectedPlayer.DisplayName .. " (@" .. selectedPlayer.Name .. ")"
InfoLabel.TextColor3 = Color3.fromRGB(120, 230, 140)
else
InfoLabel.Text = "Цель: не выбрана"
InfoLabel.TextColor3 = Color3.fromRGB(180, 180, 180)
end
end
local function addPlayerButton(plr)
if plr == player then return end
if playerButtons[plr] then return end
local btn = Instance.new("TextButton")
btn.Size = UDim2.new(1, 0, 0, 32)
btn.BackgroundColor3 = Color3.fromRGB(45, 45, 55)
btn.BorderSizePixel = 0
btn.Text = plr.DisplayName .. " (@" .. plr.Name .. ")"
btn.TextColor3 = Color3.fromRGB(220, 220, 220)
btn.Font = Enum.Font.Gotham
btn.TextSize = 12
btn.AutoButtonColor = false
btn.Parent = PlayerList
local c = Instance.new("UICorner")
c.CornerRadius = UDim.new(0, 6)
c.Parent = btn
connections[#connections + 1] = btn.MouseButton1Click:Connect(function()
if selectedPlayer == plr then
selectedPlayer = nil
else
selectedPlayer = plr
end
updateSelectionUI()
end)
playerButtons[plr] = btn
refreshButtonVisual(plr)
end
local function removePlayerButton(plr)
local btn = playerButtons[plr]
if btn then
btn:Destroy()
playerButtons[plr] = nil
end
if selectedPlayer == plr then
selectedPlayer = nil
updateSelectionUI()
end
end
for _, plr in ipairs(Players:GetPlayers()) do
addPlayerButton(plr)
end
connections[#connections + 1] = Players.PlayerAdded:Connect(addPlayerButton)
connections[#connections + 1] = Players.PlayerRemoving:Connect(removePlayerButton)
-- ================= ЛОГИКА СКОРОСТИ НАВОДКИ =================
local function updateSliderVisual()
local percent = (currentAimSpeed - MIN_SPEED) / (MAX_SPEED - MIN_SPEED)
Fill.Size = UDim2.new(percent, 0, 0, 8)
Knob.Position = UDim2.new(percent, -10, 0.5, -10)
ValueLabel.Text = "Скорость наводки: " .. currentAimSpeed
end
local function updateFromInput(input)
local mouseX = input.Position.X
local trackAbs = Track.AbsolutePosition.X
local trackSize = Track.AbsoluteSize.X
local percent = math.clamp((mouseX - trackAbs) / trackSize, 0, 1)
currentAimSpeed = math.floor(MIN_SPEED + (MAX_SPEED - MIN_SPEED) * percent)
updateSliderVisual()
end
local function setSliderValue(val)
currentAimSpeed = math.clamp(val, MIN_SPEED, MAX_SPEED)
updateSliderVisual()
end
connections[#connections + 1] = Knob.MouseButton1Down:Connect(function()
dragging = true
end)
connections[#connections + 1] = Track.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1
or input.UserInputType == Enum.UserInputType.Touch then
dragging = true
updateFromInput(input)
end
end)
connections[#connections + 1] = UserInputService.InputChanged:Connect(function(input)
if dragging and (input.UserInputType == Enum.UserInputType.MouseMovement
or input.UserInputType == Enum.UserInputType.Touch) then
updateFromInput(input)
end
end)
connections[#connections + 1] = UserInputService.InputEnded:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1
or input.UserInputType == Enum.UserInputType.Touch then
dragging = false
end
end)
connections[#connections + 1] = ResetBtn.MouseButton1Click:Connect(function()
setSliderValue(DEFAULT_SPEED)
end)
connections[#connections + 1] = SpeedBtn.MouseButton1Click:Connect(function()
SliderHolder.Visible = not SliderHolder.Visible
end)
-- ================= ТОГГЛ НАВОДКИ =================
local function setAimbotEnabled(state)
aimbotEnabled = state
if aimbotEnabled then
AimbotBtn.Text = "НАВОДКА: ON"
AimbotBtn.BackgroundColor3 = Color3.fromRGB(60, 180, 90)
AimbotBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
else
AimbotBtn.Text = "НАВОДКА: OFF"
AimbotBtn.BackgroundColor3 = Color3.fromRGB(70, 70, 85)
AimbotBtn.TextColor3 = Color3.fromRGB(200, 200, 200)
-- вернуть управление
local hum = getHumanoid(player.Character)
if hum then
hum:ChangeState(Enum.HumanoidStateType.GettingUp)
end
end
end
connections[#connections + 1] = AimbotBtn.MouseButton1Click:Connect(function()
setAimbotEnabled(not aimbotEnabled)
end)
-- ================= ОСНОВНОЙ ЦИКЛ ПОЛЁТА =================
connections[#connections + 1] = RunService.Heartbeat:Connect(function()
if not aimbotEnabled then return end
if not selectedPlayer then return end
local myChar = player.Character
if not myChar then return end
local targetChar = selectedPlayer.Character
if not targetChar then return end
local myHRP = getHRP(myChar)
local targetHRP = getHRP(targetChar)
if not myHRP or not targetHRP then return end
local myHum = getHumanoid(myChar)
if myHum then
myHum:ChangeState(Enum.HumanoidStateType.Physics)
end
local diff = targetHRP.Position - myHRP.Position
local distance = diff.Magnitude
if distance < 0.5 then
-- уже в цели, подстраиваемся под её скорость
myHRP.AssemblyLinearVelocity = targetHRP.AssemblyLinearVelocity
return
end
local speed = currentAimSpeed
if distance <= 20 then
speed = 20
end
local direction = diff.Unit
myHRP.AssemblyLinearVelocity = direction * speed
end)
-- Авто-сброс физики при респавне
connections[#connections + 1] = player.CharacterAdded:Connect(function(char)
char:WaitForChild("HumanoidRootPart", 5)
end)
-- Инициализация
setSliderValue(DEFAULT_SPEED)
setAimbotEnabled(false)
updateSelectionUI()
print("[Xeno Menu] Загружено. Выбери игрока и включи НАВОДКУ.")