-- Инициализация сервисов
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local UserInputService = game:GetService("UserInputService")
local Workspace = game:GetService("Workspace")
local localPlayer = Players.LocalPlayer
local camera = Workspace.CurrentCamera
local playerGui = localPlayer:WaitForChild("PlayerGui")
-- ==========================================
-- НАСТРОЙКИ ЧИТА (STATE)
-- ==========================================
local Config = {
menuOpen = true,
toggleKey = Enum.KeyCode.RightControl, -- Открытие на Правый Ctrl
-- Player
flyEnabled = false,
flyBind = Enum.KeyCode.Unknown,
flySpeed = 50,
speedhackEnabled = false,
speedhackBind = Enum.KeyCode.Unknown,
speedhackSpeed = 50,
noclipEnabled = false,
noclipBind = Enum.KeyCode.Unknown,
clickTpEnabled = false,
-- Combat
aimbotEnabled = false,
aimBind = Enum.UserInputType.MouseButton2,
aimMode = "Smooth", -- "Sharp", "Smooth", "Human", "Silent"
aimSmooth = 5, -- 0 до 20
aimFov = 100,
aimControl = "Camera", -- "Camera" или "Mouse"
aimTarget = "Head", -- "Head" или "Torso"
wallCheck = true,
aimPredict = 0,
aimActivation = "Hold", -- "Hold" или "Toggle"
aimActiveToggle = false, -- Внутренняя переменная для Toggle
-- Render
espEnabled = false,
nametagsEnabled = false,
espColor = Color3.fromRGB(255, 0, 0)
}
-- Глобальные переменные
local flyKeys = {W = false, A = false, S = false, D = false, Space = false, LCtrl = false}
local fovCircle = nil
local isAiming = false -- Нажата ли кнопка аимбота сейчас
local lockedTarget = nil -- Захваченная цель (Присоска)
_G.SilentAimTarget = nil -- Глобальная цель для Сайлент Аима (для твоих скриптов оружия)
-- ==========================================
-- СОЗДАНИЕ ИНТЕРФЕЙСА (UI FACTORY)
-- ==========================================
local screenGui = Instance.new("ScreenGui")
screenGui.Name = "VapeV4_Style_GUI"
screenGui.ResetOnSpawn = false
screenGui.IgnoreGuiInset = true -- Чтобы FOV кружок не съезжал
screenGui.Parent = playerGui
local mainContainer = Instance.new("Frame")
mainContainer.Size = UDim2.new(0, 520, 0, 300)
mainContainer.Position = UDim2.new(0.5, -260, 0.5, -150)
mainContainer.BackgroundTransparency = 1
mainContainer.Parent = screenGui
-- Логика перетаскивания
local dragging, dragInput, dragStart, startPos
mainContainer.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 then
dragging = true; dragStart = input.Position; startPos = mainContainer.Position
end
end)
mainContainer.InputChanged:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseMovement then dragInput = input end
end)
UserInputService.InputChanged:Connect(function(input)
if input == dragInput and dragging then
local delta = input.Position - dragStart
mainContainer.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y)
end
end)
UserInputService.InputEnded:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1 then dragging = false end
end)
local containerLayout = Instance.new("UIListLayout")
containerLayout.FillDirection = Enum.FillDirection.Horizontal
containerLayout.SortOrder = Enum.SortOrder.LayoutOrder
containerLayout.Padding = UDim.new(0, 10)
containerLayout.Parent = mainContainer
-- === ФУНКЦИИ ГЕНЕРАЦИИ UI ===
local function createColumn(name, color)
local frame = Instance.new("Frame")
frame.Size = UDim2.new(0, 160, 0, 20)
frame.BackgroundColor3 = Color3.fromRGB(40, 40, 40)
frame.BorderColor3 = Color3.fromRGB(0, 0, 0)
frame.BorderSizePixel = 2
frame.Parent = mainContainer
local header = Instance.new("Frame")
header.Size = UDim2.new(1, 0, 0, 25)
header.BackgroundColor3 = Color3.fromRGB(25, 25, 25)
header.BorderColor3 = Color3.fromRGB(0, 0, 0)
header.Parent = frame
Post #2
14