Загрузка данных


--[[
    NURSULTAN CLIENT - INSPIRED GUI
    Чёрно-голубые тона, матричный дождь, частицы, неон
    Полностью легальный визуальный интерфейс
]]

local Players = game:GetService("Players")
local UserInputService = game:GetService("UserInputService")
local RunService = game:GetService("RunService")
local TweenService = game:GetService("TweenService")

local player = Players.LocalPlayer
local mouse = player:GetMouse()

-- ==================== СОЗДАНИЕ ГЛАВНОГО GUI ====================
local ScreenGui = Instance.new("ScreenGui")
ScreenGui.Name = "NursultanClient"
ScreenGui.Parent = player:WaitForChild("PlayerGui")
ScreenGui.ResetOnSpawn = false
ScreenGui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling

-- Главный фрейм
local MainFrame = Instance.new("Frame")
MainFrame.Name = "MainFrame"
MainFrame.Size = UDim2.new(0, 650, 0, 420)
MainFrame.Position = UDim2.new(0.5, -325, 0.5, -210)
MainFrame.BackgroundColor3 = Color3.fromRGB(10, 10, 15)
MainFrame.BorderSizePixel = 0
MainFrame.Parent = ScreenGui

-- Тень главного фрейма
local MainShadow = Instance.new("ImageLabel")
MainShadow.Name = "Shadow"
MainShadow.Size = UDim2.new(1, 20, 1, 20)
MainShadow.Position = UDim2.new(0, -10, 0, -10)
MainShadow.BackgroundTransparency = 1
MainShadow.Image = "rbxassetid://6015897843"
MainShadow.ImageColor3 = Color3.fromRGB(0, 180, 255)
MainShadow.ImageTransparency = 0.85
MainShadow.ScaleType = Enum.ScaleType.Slice
MainShadow.SliceCenter = Rect.new(10, 10, 10, 10)
MainShadow.ZIndex = 0
MainShadow.Parent = MainFrame

-- Верхняя панель (title bar)
local TitleBar = Instance.new("Frame")
TitleBar.Name = "TitleBar"
TitleBar.Size = UDim2.new(1, 0, 0, 32)
TitleBar.BackgroundColor3 = Color3.fromRGB(13, 13, 24)
TitleBar.BorderSizePixel = 0
TitleBar.Parent = MainFrame

-- Градиент на верхней панели
local TitleGradient = Instance.new("UIGradient")
TitleGradient.Color = ColorSequence.new({
    ColorSequenceKeypoint.new(0, Color3.fromRGB(0, 180, 255)),
    ColorSequenceKeypoint.new(0.5, Color3.fromRGB(0, 200, 255)),
    ColorSequenceKeypoint.new(1, Color3.fromRGB(0, 120, 200)),
})
TitleGradient.Rotation = 90
TitleGradient.Parent = TitleBar

-- Заголовок
local TitleLabel = Instance.new("TextLabel")
TitleLabel.Name = "Title"
TitleLabel.Size = UDim2.new(0, 300, 1, 0)
TitleLabel.Position = UDim2.new(0, 12, 0, 0)
TitleLabel.BackgroundTransparency = 1
TitleLabel.Text = "◆ NURSULTAN CLIENT"
TitleLabel.TextColor3 = Color3.fromRGB(0, 212, 255)
TitleLabel.TextXAlignment = Enum.TextXAlignment.Left
TitleLabel.Font = Enum.Font.Code
TitleLabel.TextSize = 13
TitleLabel.Parent = TitleBar

-- Кнопка закрытия
local CloseButton = Instance.new("TextButton")
CloseButton.Name = "Close"
CloseButton.Size = UDim2.new(0, 32, 0, 32)
CloseButton.Position = UDim2.new(1, -32, 0, 0)
CloseButton.BackgroundTransparency = 1
CloseButton.Text = "✕"
CloseButton.TextColor3 = Color3.fromRGB(255, 68, 68)
CloseButton.Font = Enum.Font.Arial
CloseButton.TextSize = 16
CloseButton.Parent = TitleBar

CloseButton.MouseButton1Click:Connect(function()
    ScreenGui:Destroy()
end)

-- ==================== ПЕРЕТАСКИВАНИЕ ОКНА ====================
local dragging = false
local dragStart = nil
local startPos = nil

TitleBar.InputBegan:Connect(function(input)
    if input.UserInputType == Enum.UserInputType.MouseButton1 then
        dragging = true
        dragStart = input.Position
        startPos = MainFrame.Position
    end
end)

UserInputService.InputChanged:Connect(function(input)
    if dragging and input.UserInputType == Enum.UserInputType.MouseMovement then
        local delta = input.Position - dragStart
        MainFrame.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 LeftPanel = Instance.new("Frame")
LeftPanel.Name = "LeftPanel"
LeftPanel.Size = UDim2.new(0, 155, 1, -32)
LeftPanel.Position = UDim2.new(0, 0, 0, 32)
LeftPanel.BackgroundColor3 = Color3.fromRGB(13, 13, 24)
LeftPanel.BorderSizePixel = 0
LeftPanel.Parent = MainFrame

-- Полоса разделения
local Divider = Instance.new("Frame")
Divider.Name = "Divider"
Divider.Size = UDim2.new(0, 1, 1, 0)
Divider.Position = UDim2.new(1, 0, 0, 0)
Divider.BackgroundColor3 = Color3.fromRGB(0, 180, 255)
Divider.BorderSizePixel = 0
Divider.Parent = LeftPanel

-- Заголовок категорий
local CatHeader = Instance.new("TextLabel")
CatHeader.Name = "CatHeader"
CatHeader.Size = UDim2.new(1, -20, 0, 20)
CatHeader.Position = UDim2.new(0, 12, 0, 15)
CatHeader.BackgroundTransparency = 1
CatHeader.Text = "◆ CATEGORIES"
CatHeader.TextColor3 = Color3.fromRGB(0, 212, 255)
CatHeader.TextXAlignment = Enum.TextXAlignment.Left
CatHeader.Font = Enum.Font.Code
CatHeader.TextSize = 11
CatHeader.Parent = LeftPanel

-- Категории
local categories = {"AIMBOT", "ESP", "VISUALS", "MISC", "SETTINGS"}
local catButtons = {}
local currentCategory = "AIMBOT"

for i, catName in ipairs(categories) do
    local btn = Instance.new("TextButton")
    btn.Name = catName
    btn.Size = UDim2.new(1, -10, 0, 28)
    btn.Position = UDim2.new(0, 5, 0, 50 + (i - 1) * 32)
    btn.BackgroundColor3 = Color3.fromRGB(13, 13, 24)
    btn.BackgroundTransparency = 0
    btn.BorderSizePixel = 0
    btn.Text = "  › " .. catName
    btn.TextColor3 = Color3.fromRGB(136, 153, 170)
    btn.TextXAlignment = Enum.TextXAlignment.Left
    btn.Font = Enum.Font.Code
    btn.TextSize = 11
    btn.Parent = LeftPanel

    -- Подсветка при наведении
    btn.MouseEnter:Connect(function()
        if btn.Name ~= currentCategory then
            TweenService:Create(btn, TweenInfo.new(0.2), {
                BackgroundColor3 = Color3.fromRGB(18, 18, 42),
                TextColor3 = Color3.fromRGB(0, 212, 255)
            }):Play()
        end
    end)

    btn.MouseLeave:Connect(function()
        if btn.Name ~= currentCategory then
            TweenService:Create(btn, TweenInfo.new(0.2), {
                BackgroundColor3 = Color3.fromRGB(13, 13, 24),
                TextColor3 = Color3.fromRGB(136, 153, 170)
            }):Play()
        end
    end)

    btn.MouseButton1Click:Connect(function()
        -- Сброс всех кнопок
        for _, b in ipairs(catButtons) do
            TweenService:Create(b, TweenInfo.new(0.2), {
                BackgroundColor3 = Color3.fromRGB(13, 13, 24),
                TextColor3 = Color3.fromRGB(136, 153, 170)
            }):Play()
        end
        -- Подсветка активной
        TweenService:Create(btn, TweenInfo.new(0.2), {
            BackgroundColor3 = Color3.fromRGB(18, 18, 42),
            TextColor3 = Color3.fromRGB(0, 212, 255)
        }):Play()
        currentCategory = catName
        FuncHeader.Text = "◆ FUNCTIONS — " .. catName
    end)

    table.insert(catButtons, btn)
end

-- Статус снизу
local StatusLabel = Instance.new("TextLabel")
StatusLabel.Name = "Status"
StatusLabel.Size = UDim2.new(1, -20, 0, 16)
StatusLabel.Position = UDim2.new(0, 10, 1, -26)
StatusLabel.BackgroundTransparency = 1
StatusLabel.Text = "● STATUS: ACTIVE"
StatusLabel.TextColor3 = Color3.fromRGB(0, 255, 136)
StatusLabel.TextXAlignment = Enum.TextXAlignment.Left
StatusLabel.Font = Enum.Font.Code
StatusLabel.TextSize = 9
StatusLabel.Parent = LeftPanel

-- ==================== ПРАВАЯ ПАНЕЛЬ (ФУНКЦИИ) ====================
local RightPanel = Instance.new("Frame")
RightPanel.Name = "RightPanel"
RightPanel.Size = UDim2.new(1, -155, 1, -32)
RightPanel.Position = UDim2.new(0, 155, 0, 32)
RightPanel.BackgroundColor3 = Color3.fromRGB(15, 15, 28)
RightPanel.BorderSizePixel = 0
RightPanel.Parent = MainFrame

-- Заголовок функций
local FuncHeader = Instance.new("TextLabel")
FuncHeader.Name = "FuncHeader"
FuncHeader.Size = UDim2.new(1, -30, 0, 20)
FuncHeader.Position = UDim2.new(0, 15, 0, 15)
FuncHeader.BackgroundTransparency = 1
FuncHeader.Text = "◆ FUNCTIONS — AIMBOT"
FuncHeader.TextColor3 = Color3.fromRGB(0, 212, 255)
FuncHeader.TextXAlignment = Enum.TextXAlignment.Left
FuncHeader.Font = Enum.Font.Code
FuncHeader.TextSize = 11
FuncHeader.Parent = RightPanel

-- Контейнер для переключателей
local ToggleContainer = Instance.new("ScrollingFrame")
ToggleContainer.Name = "ToggleContainer"
ToggleContainer.Size = UDim2.new(1, -30, 1, -50)
ToggleContainer.Position = UDim2.new(0, 15, 0, 45)
ToggleContainer.BackgroundTransparency = 1
ToggleContainer.BorderSizePixel = 0
ToggleContainer.ScrollBarThickness = 3
ToggleContainer.ScrollBarImageColor3 = Color3.fromRGB(0, 180, 255)
ToggleContainer.Parent = RightPanel

local ToggleList = Instance.new("UIListLayout")
ToggleList.Padding = UDim.new(0, 6)
ToggleList.Parent = ToggleContainer

-- ==================== ФУНКЦИИ-ПЕРЕКЛЮЧАТЕЛИ ====================
local functions = {
    {"Silent Aim", true},
    {"Aim Lock", false},
    {"Trigger Bot", true},
    {"Smooth Aim", false},
    {"FOV Circle", true},
    {"Auto Shoot", false},
    {"Wall Check", true},
    {"Auto Prediction", false},
    {"Visibility Check", true},
    {"Team Check", false},
}

local function createToggle(name, default)
    local frame = Instance.new("Frame")
    frame.Name = name
    frame.Size = UDim2.new(1, 0, 0, 34)
    frame.BackgroundColor3 = Color3.fromRGB(18, 18, 35)
    frame.BorderSizePixel = 0
    frame.Parent = ToggleContainer

    -- Индикатор слева
    local indicator = Instance.new("Frame")
    indicator.Name = "Indicator"
    indicator.Size = UDim2.new(0, 3, 1, 0)
    indicator.BackgroundColor3 = default and Color3.fromRGB(0, 212, 255) or Color3.fromRGB(51, 68, 85)
    indicator.BorderSizePixel = 0
    indicator.Parent = frame

    -- Название
    local label = Instance.new("TextLabel")
    label.Name = "Label"
    label.Size = UDim2.new(0, 160, 1, 0)
    label.Position = UDim2.new(0, 12, 0, 0)
    label.BackgroundTransparency = 1
    label.Text = name
    label.TextColor3 = default and Color3.fromRGB(204, 221, 255) or Color3.fromRGB(102, 119, 136)
    label.TextXAlignment = Enum.TextXAlignment.Left
    label.Font = Enum.Font.Code
    label.TextSize = 11
    label.Parent = frame

    -- Кнопка переключения
    local toggleBtn = Instance.new("TextButton")
    toggleBtn.Name = "ToggleBtn"
    toggleBtn.Size = UDim2.new(0, 70, 0, 24)
    toggleBtn.Position = UDim2.new(1, -80, 0.5, -12)
    toggleBtn.BackgroundColor3 = default and Color3.fromRGB(0, 180, 100) or Color3.fromRGB(180, 40, 40)
    toggleBtn.BorderSizePixel = 0
    toggleBtn.Text = default and "● ON" or "○ OFF"
    toggleBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
    toggleBtn.Font = Enum.Font.Code
    toggleBtn.TextSize = 11
    toggleBtn.AutoButtonColor = false
    toggleBtn.Parent = frame

    -- Скругление кнопки
    local corner = Instance.new("UICorner")
    corner.CornerRadius = UDim.new(0, 4)
    corner.Parent = toggleBtn

    -- Состояние
    local enabled = default

    local function updateVisuals()
        if enabled then
            TweenService:Create(toggleBtn, TweenInfo.new(0.2), {
                BackgroundColor3 = Color3.fromRGB(0, 180, 100)
            }):Play()
            toggleBtn.Text = "● ON"
            indicator.BackgroundColor3 = Color3.fromRGB(0, 212, 255)
            label.TextColor3 = Color3.fromRGB(204, 221, 255)
        else
            TweenService:Create(toggleBtn, TweenInfo.new(0.2), {
                BackgroundColor3 = Color3.fromRGB(180, 40, 40)
            }):Play()
            toggleBtn.Text = "○ OFF"
            indicator.BackgroundColor3 = Color3.fromRGB(51, 68, 85)
            label.TextColor3 = Color3.fromRGB(102, 119, 136)
        end
    end

    toggleBtn.MouseButton1Click:Connect(function()
        enabled = not enabled
        updateVisuals()
    end)

    -- Эффект при наведении на весь ряд
    frame.MouseEnter:Connect(function()
        TweenService:Create(frame, TweenInfo.new(0.2), {
            BackgroundColor3 = Color3.fromRGB(22, 22, 45)
        }):Play()
    end)

    frame.MouseLeave:Connect(function()
        TweenService:Create(frame, TweenInfo.new(0.2), {
            BackgroundColor3 = Color3.fromRGB(18, 18, 35)
        }):Play()
    end)

    return frame
end

-- Создание всех переключателей
for _, func in ipairs(functions) do
    createToggle(func[1], func[2])
end

-- ==================== ВИЗУАЛЬНЫЕ ЭФФЕКТЫ ====================
-- Частицы при движении мыши
local particles = {}

local function createParticle(x, y)
    local particle = Instance.new("Frame")
    particle.Size = UDim2.new(0, 4, 0, 4)
    particle.Position = UDim2.new(0, x, 0, y)
    particle.BackgroundColor3 = Color3.fromRGB(0, 212, 255)
    particle.BorderSizePixel = 0
    particle.AnchorPoint = Vector2.new(0.5, 0.5)
    particle.Parent = ScreenGui

    local corner = Instance.new("UICorner")
    corner.CornerRadius = UDim.new(1, 0)
    corner.Parent = particle

    local velocity = Vector2.new(
        (math.random() - 0.5) * 3,
        (math.random() - 0.5) * 3 - 2
    )

    table.insert(particles, {
        object = particle,
        velocity = velocity,
        life = 1,
        decay = 0.02 + math.random() * 0.03
    })
end

-- Обновление частиц
RunService.RenderStepped:Connect(function()
    for i = #particles, 1, -1 do
        local p = particles[i]
        p.life = p.life - p.decay

        if p.life <= 0 then
            p.object:Destroy()
            table.remove(particles, i)
        else
            p.object.Position = UDim2.new(
                p.object.Position.X.Scale,
                p.object.Position.X.Offset + p.velocity.X,
                p.object.Position.Y.Scale,
                p.object.Position.Y.Offset + p.velocity.Y
            )
            p.object.BackgroundTransparency = 1 - p.life
            p.velocity = p.velocity * 0.96
        end
    end
end)

-- Спавн частиц при движении мыши внутри окна
local mouseInFrame = false

MainFrame.MouseEnter:Connect(function()
    mouseInFrame = true
end)

MainFrame.MouseLeave:Connect(function()
    mouseInFrame = false
end)

mouse.Move:Connect(function()
    if mouseInFrame then
        local guiPos = MainFrame.AbsolutePosition
        local relativeX = mouse.X - guiPos.X
        local relativeY = mouse.Y - guiPos.Y
        if relativeX > 0 and relativeY > 32 then
            if math.random() < 0.4 then
                createParticle(relativeX, relativeY)
            end
        end
    end
end)

-- ==================== МАТРИЧНЫЙ ДОЖДЬ (Drawing API) ====================
-- ВНИМАНИЕ: Это требует включенного Drawing API в игре
-- Если не работает, будет тихо проигнорировано

local matrixChars = {}
local canDraw = pcall(function()
    return Drawing.new("Text")
end)

if canDraw then
    for i = 1, 20 do
        local drop = {
            x = math.random(0, 650),
            y = math.random(-100, 0),
            speed = 2 + math.random() * 4,
            length = 8 + math.random() * 15,
        }
        table.insert(matrixChars, drop)
    end

    spawn(function()
        while ScreenGui and ScreenGui.Parent do
            -- Matrix drawing requires specific setup, simplified here
            wait(0.05)
        end
    end)
end

-- ==================== СКАНЛАЙНЫ (CRT ЭФФЕКТ) ====================
local scanlines = Instance.new("Frame")
scanlines.Name = "Scanlines"
scanlines.Size = UDim2.new(1, 0, 1, 0)
scanlines.BackgroundTransparency = 1
scanlines.BorderSizePixel = 0
scanlines.ZIndex = 10
scanlines.Parent = MainFrame

-- Создаём полупрозрачные линии
for i = 0, 40 do
    local line = Instance.new("Frame")
    line.Size = UDim2.new(1, 0, 0, 1)
    line.Position = UDim2.new(0, 0, 0, i * 10)
    line.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
    line.BackgroundTransparency = 0.92
    line.BorderSizePixel = 0
    line.ZIndex = 10
    line.Parent = scanlines
end

-- ==================== ФИНАЛЬНЫЕ ШТРИХИ ====================
-- Рамка неонового свечения
local glowFrame = Instance.new("Frame")
glowFrame.Size = UDim2.new(1, 4, 1, 4)
glowFrame.Position = UDim2.new(0, -2, 0, -2)
glowFrame.BackgroundTransparency = 1
glowFrame.BorderSizePixel = 0
glowFrame.BorderMode = Enum.BorderMode.Outline
glowFrame.ZIndex = -1
glowFrame.Parent = MainFrame

-- Анимация пульсации рамки
local glowIntensity = 0
spawn(function()
    while ScreenGui and ScreenGui.Parent do
        glowIntensity = (math.sin(tick() * 2) + 1) / 2
        glowFrame.BorderColor3 = Color3.fromRGB(
            0,
            140 + glowIntensity * 60,
            200 + glowIntensity * 55
        )
        wait(0.05)
    end
end)

-- Установка активной категории
catButtons[1].BackgroundColor3 = Color3.fromRGB(18, 18, 42)
catButtons[1].TextColor3 = Color3.fromRGB(0, 212, 255)

print("◆ Nursultan Client GUI загружен!")
print("◆ Категорий: " .. #categories)
print("◆ Функций: " .. #functions)
print("◆ Визуалы: частицы, scanlines, неоновая рамка")