PulseVisuals
Key RequiredUniversal

PulseVisuals

Universal Scriptsbman*sbman* 153 views 1.6K executesUpdated Jul 17, 2026
Unrated
00
Lua Script•843 lines (30093 chars)
local player = game.Players.LocalPlayer
local userInputService = game:GetService("UserInputService")
local runService = game:GetService("RunService")
local statsService = game:GetService("Stats")
local lighting = game:GetService("Lighting")
local workspace = game:GetService("Workspace")
local tweenService = game:GetService("TweenService")

-- ===== ПЕРЕМЕННЫЕ =====
local settings = {
    fullBright = false,
    crosshair = false,
    hitBubble = false,
    bodyGlow = false,
    chinaHat = false,
    customHand = false,
    blockOverlay = false,
    aspectRatio = false,
    arrowNametag = false,
    maxVisuals = false,
    fly = false,
    noclip = false,
    speed = false,
    jumpBoost = false,
    hitColor = false,
    hosamMer = false,
    pouch = false,
    animation = false,
}

local currentMenu = "main"
local flyEnabled = false
local bodyGyro = nil
local bodyVelocity = nil

-- ===== СОЗДАЕМ GUI =====
local screenGui = Instance.new("ScreenGui")
screenGui.Name = "PulseVisuals_Menu"
screenGui.ResetOnSpawn = false
screenGui.Parent = game.CoreGui

-- ===== ГЛАВНОЕ МЕНЮ =====
local menuFrame = Instance.new("Frame")
menuFrame.Size = UDim2.new(0, 350, 0, 480)
menuFrame.Position = UDim2.new(0.5, -175, 0.5, -240)
menuFrame.BackgroundColor3 = Color3.fromRGB(20, 20, 30)
menuFrame.BackgroundTransparency = 0.15
menuFrame.BorderSizePixel = 0
menuFrame.Visible = false
menuFrame.ClipsDescendants = true
menuFrame.Parent = screenGui

local menuCorner = Instance.new("UICorner")
menuCorner.CornerRadius = UDim.new(0, 12)
menuCorner.Parent = menuFrame

local title = Instance.new("TextLabel")
title.Size = UDim2.new(1, 0, 0, 45)
title.Position = UDim2.new(0, 0, 0, 0)
title.BackgroundTransparency = 1
title.Text = "PulseVisuals"
title.TextColor3 = Color3.fromRGB(0, 150, 255)
title.TextSize = 26
title.Font = Enum.Font.GothamBold
title.TextXAlignment = Enum.TextXAlignment.Center
title.TextYAlignment = Enum.TextYAlignment.Center
title.Parent = menuFrame

local backButton = Instance.new("TextButton")
backButton.Size = UDim2.new(0, 60, 0, 28)
backButton.Position = UDim2.new(0, 8, 0, 8)
backButton.Text = "←"
backButton.TextColor3 = Color3.fromRGB(255, 255, 255)
backButton.TextSize = 18
backButton.BackgroundColor3 = Color3.fromRGB(40, 40, 50)
backButton.BackgroundTransparency = 0.5
backButton.BorderSizePixel = 0
backButton.Visible = false
backButton.Parent = menuFrame

local backCorner = Instance.new("UICorner")
backCorner.CornerRadius = UDim.new(0, 6)
backCorner.Parent = backButton

backButton.MouseButton1Click:Connect(function()
    currentMenu = "main"
    updateMenu()
end)

local scrollContainer = Instance.new("ScrollingFrame")
scrollContainer.Size = UDim2.new(1, 0, 1, -50)
scrollContainer.Position = UDim2.new(0, 0, 0, 48)
scrollContainer.BackgroundTransparency = 1
scrollContainer.BorderSizePixel = 0
scrollContainer.ScrollBarThickness = 4
scrollContainer.ScrollBarImageColor3 = Color3.fromRGB(0, 120, 255)
scrollContainer.Parent = menuFrame

-- ===== ФУНКЦИИ =====

-- Full Bright
local function toggleFullBright()
    settings.fullBright = not settings.fullBright
    if settings.fullBright then
        lighting.Brightness = 10
        lighting.OutdoorAmbient = Color3.fromRGB(255, 255, 255)
        lighting.Ambient = Color3.fromRGB(255, 255, 255)
    else
        lighting.Brightness = 2
        lighting.OutdoorAmbient = Color3.fromRGB(128, 128, 128)
        lighting.Ambient = Color3.fromRGB(128, 128, 128)
    end
    print("🔆 Full Bright:", settings.fullBright)
end

-- Crosshair
local function toggleCrosshair()
    settings.crosshair = not settings.crosshair
    if settings.crosshair then
        local crosshair = Instance.new("Frame")
        crosshair.Name = "PulseCrosshair"
        crosshair.Size = UDim2.new(0, 40, 0, 40)
        crosshair.Position = UDim2.new(0.5, -20, 0.5, -20)
        crosshair.BackgroundTransparency = 1
        crosshair.Parent = screenGui
        
        for i = 1, 4 do
            local line = Instance.new("Frame")
            line.Size = UDim2.new(0, 2, 0, 12)
            line.Position = UDim2.new(0.5, -1, 0.5, -6)
            line.BackgroundColor3 = Color3.fromRGB(0, 255, 0)
            line.BackgroundTransparency = 0.2
            line.Rotation = (i - 1) * 90
            line.Parent = crosshair
        end
        
        local dot = Instance.new("Frame")
        dot.Size = UDim2.new(0, 4, 0, 4)
        dot.Position = UDim2.new(0.5, -2, 0.5, -2)
        dot.BackgroundColor3 = Color3.fromRGB(255, 0, 0)
        dot.BackgroundTransparency = 0.1
        dot.Parent = crosshair
    else
        local crosshair = screenGui:FindFirstChild("PulseCrosshair")
        if crosshair then crosshair:Destroy() end
    end
    print("🎯 Crosshair:", settings.crosshair)
end

-- Hit Bubble
local function toggleHitBubble()
    settings.hitBubble = not settings.hitBubble
    if settings.hitBubble then
        local bubble = Instance.new("Part")
        bubble.Name = "PulseHitBubble"
        bubble.Size = Vector3.new(2, 2, 2)
        bubble.Shape = Enum.PartType.Ball
        bubble.Anchored = true
        bubble.CanCollide = false
        bubble.Transparency = 0.5
        bubble.BrickColor = BrickColor.new("Bright red")
        bubble.Parent = workspace
        game:GetService("Debris"):AddItem(bubble, 0.2)
    end
    print("💥 Hit Bubble:", settings.hitBubble)
end

-- Body Glow
local function toggleBodyGlow()
    settings.bodyGlow = not settings.bodyGlow
    local char = player.Character
    if char then
        if settings.bodyGlow then
            for _, part in ipairs(char:GetDescendants()) do
                if part:IsA("BasePart") then
                    local glow = Instance.new("BillboardGui")
                    glow.Name = "BodyGlow"
                    glow.Size = UDim2.new(0, 60, 0, 60)
                    glow.Adornee = part
                    glow.AlwaysOnTop = true
                    glow.Parent = part
                    
                    local frame = Instance.new("Frame")
                    frame.Size = UDim2.new(1, 0, 1, 0)
                    frame.BackgroundColor3 = Color3.fromRGB(0, 150, 255)
                    frame.BackgroundTransparency = 0.5
                    frame.BorderSizePixel = 0
                    frame.Parent = glow
                    
                    local corner = Instance.new("UICorner")
                    corner.CornerRadius = UDim.new(1, 0)
                    corner.Parent = frame
                end
            end
        else
            for _, part in ipairs(char:GetDescendants()) do
                if part:IsA("BasePart") then
                    local glow = part:FindFirstChild("BodyGlow")
                    if glow then glow:Destroy() end
                end
            end
        end
    end
    print("✨ Body Glow:", settings.bodyGlow)
end

-- China Hat
local function toggleChinaHat()
    settings.chinaHat = not settings.chinaHat
    local char = player.Character
    if char and settings.chinaHat then
        local hat = Instance.new("Accessory")
        hat.Name = "ChinaHat"
        hat.Handle = Instance.new("Part")
        hat.Handle.Size = Vector3.new(3, 0.8, 3)
        hat.Handle.Shape = Enum.PartType.Cylinder
        hat.Handle.BrickColor = BrickColor.new("Bright red")
        hat.Handle.Anchored = false
        hat.Handle.CanCollide = false
        hat.Handle.Material = Enum.Material.Neon
        hat.Handle.Parent = hat
        hat.Parent = char
    elseif char then
        local hat = char:FindFirstChild("ChinaHat")
        if hat then hat:Destroy() end
    end
    print("🧢 China Hat:", settings.chinaHat)
end

-- Aspect Ratio
local function toggleAspectRatio()
    settings.aspectRatio = not settings.aspectRatio
    local camera = workspace.CurrentCamera
    if camera then
        camera.FieldOfView = settings.aspectRatio and 120 or 70
    end
    print("📐 Aspect Ratio:", settings.aspectRatio)
end

-- Arrow Nametag
local function toggleArrowNametag()
    settings.arrowNametag = not settings.arrowNametag
    if settings.arrowNametag then
        for _, p in ipairs(game.Players:GetPlayers()) do
            if p ~= player then
                local arrow = Instance.new("BillboardGui")
                arrow.Name = "ArrowNametag"
                arrow.Size = UDim2.new(0, 50, 0, 50)
                arrow.Adornee = p.Character and p.Character:FindFirstChild("Head")
                arrow.AlwaysOnTop = true
                arrow.Parent = p.Character and p.Character.Head
                
                local label = Instance.new("TextLabel")
                label.Size = UDim2.new(1, 0, 1, 0)
                label.Text = "⬆ " .. p.Name
                label.TextColor3 = Color3.fromRGB(0, 150, 255)
                label.TextSize = 14
                label.BackgroundTransparency = 1
                label.Parent = arrow
            end
        end
    else
        for _, p in ipairs(game.Players:GetPlayers()) do
            if p.Character then
                local arrow = p.Character:FindFirstChild("ArrowNametag")
                if arrow then arrow:Destroy() end
            end
        end
    end
    print("🏹 Arrow Nametag:", settings.arrowNametag)
end

-- Block Overlay
local function toggleBlockOverlay()
    settings.blockOverlay = not settings.blockOverlay
    if settings.blockOverlay then
        local overlay = Instance.new("Frame")
        overlay.Name = "BlockOverlay"
        overlay.Size = UDim2.new(1, 0, 1, 0)
        overlay.BackgroundColor3 = Color3.fromRGB(0, 150, 255)
        overlay.BackgroundTransparency = 0.8
        overlay.Parent = screenGui
    else
        local overlay = screenGui:FindFirstChild("BlockOverlay")
        if overlay then overlay:Destroy() end
    end
    print("🧱 Block Overlay:", settings.blockOverlay)
end

-- Custom Hand
local function toggleCustomHand()
    settings.customHand = not settings.customHand
    local char = player.Character
    if char and settings.customHand then
        local tool = Instance.new("Tool")
        tool.Name = "CustomHand"
        tool.RequiresHandle = false
        tool.Parent = player.Backpack
        
        local handle = Instance.new("Part")
        handle.Size = Vector3.new(1, 1, 1)
        handle.Shape = Enum.PartType.Ball
        handle.BrickColor = BrickColor.new("Bright blue")
        handle.Material = Enum.Material.Neon
        handle.Anchored = false
        handle.CanCollide = false
        handle.Parent = tool
        
        tool.Equipped:Connect(function()
            handle.Parent = char
            handle.Position = char.Head.Position + Vector3.new(0, 2, 0)
        end)
    else
        local tool = player.Backpack:FindFirstChild("CustomHand")
        if tool then tool:Destroy() end
    end
    print("🖐 Custom Hand:", settings.customHand)
end

-- Max Visuals
local function toggleMaxVisuals()
    settings.maxVisuals = not settings.maxVisuals
    if settings.maxVisuals then
        lighting.Brightness = 10
        lighting.OutdoorAmbient = Color3.fromRGB(255, 255, 255)
        lighting.Ambient = Color3.fromRGB(255, 255, 255)
        lighting.FogEnd = 1000
        settings.fullBright = true
    else
        lighting.Brightness = 2
        lighting.OutdoorAmbient = Color3.fromRGB(128, 128, 128)
        lighting.Ambient = Color3.fromRGB(128, 128, 128)
        lighting.FogEnd = 500
        settings.fullBright = false
    end
    print("🌟 Max Visuals:", settings.maxVisuals)
end

-- Speed Boost
local function toggleSpeed()
    settings.speed = not settings.speed
    local char = player.Character
    if char and char:FindFirstChild("Humanoid") then
        char.Humanoid.WalkSpeed = settings.speed and 70 or 16
    end
    print("⚡ Speed:", settings.speed)
end

-- Fly
local function toggleFly()
    settings.fly = not settings.fly
    local char = player.Character
    if char and char:FindFirstChild("Humanoid") then
        if settings.fly then
            char.Humanoid.PlatformStand = true
            bodyGyro = Instance.new("BodyGyro")
            bodyGyro.P = 1000
            bodyGyro.MaxTorque = Vector3.new(4000, 4000, 4000)
            bodyGyro.CFrame = char.HumanoidRootPart.CFrame
            bodyGyro.Parent = char.HumanoidRootPart
            
            bodyVelocity = Instance.new("BodyVelocity")
            bodyVelocity.MaxForce = Vector3.new(4000, 4000, 4000)
            bodyVelocity.Parent = char.HumanoidRootPart
            
            game:GetService("RunService").RenderStepped:Connect(function()
                if settings.fly and char and char.HumanoidRootPart then
                    local move = Vector3.new()
                    if userInputService:IsKeyDown(Enum.KeyCode.W) then move = move + Vector3.new(0, 0, -1) end
                    if userInputService:IsKeyDown(Enum.KeyCode.S) then move = move + Vector3.new(0, 0, 1) end
                    if userInputService:IsKeyDown(Enum.KeyCode.A) then move = move + Vector3.new(-1, 0, 0) end
                    if userInputService:IsKeyDown(Enum.KeyCode.D) then move = move + Vector3.new(1, 0, 0) end
                    if userInputService:IsKeyDown(Enum.KeyCode.Space) then move = move + Vector3.new(0, 1, 0) end
                    if userInputService:IsKeyDown(Enum.KeyCode.LeftShift) then move = move + Vector3.new(0, -1, 0) end
                    
                    if move.Magnitude > 0 then
                        move = move.Unit * 50
                        bodyVelocity.Velocity = move
                    else
                        bodyVelocity.Velocity = Vector3.new()
                    end
                    
                    bodyGyro.CFrame = workspace.CurrentCamera.CFrame * CFrame.Angles(0, 0, 0)
                end
            end)
        else
            char.Humanoid.PlatformStand = false
            if bodyGyro then bodyGyro:Destroy() end
            if bodyVelocity then bodyVelocity:Destroy() end
        end
    end
    print("🛸 Fly:", settings.fly)
end

-- NoClip
local function toggleNoClip()
    settings.noclip = not settings.noclip
    local char = player.Character
    if char then
        for _, part in ipairs(char:GetDescendants()) do
            if part:IsA("BasePart") then
                part.CanCollide = not settings.noclip
            end
        end
    end
    print("🚫 NoClip:", settings.noclip)
end

-- Jump Boost
local function toggleJumpBoost()
    settings.jumpBoost = not settings.jumpBoost
    local char = player.Character
    if char and char:FindFirstChild("Humanoid") then
        char.Humanoid.JumpPower = settings.jumpBoost and 100 or 50
    end
    print("🦘 Jump Boost:", settings.jumpBoost)
end

-- Hit Color
local function toggleHitColor()
    settings.hitColor = not settings.hitColor
    if settings.hitColor then
        local color = Instance.new("Part")
        color.Name = "HitColor"
        color.Size = Vector3.new(1, 1, 1)
        color.Shape = Enum.PartType.Ball
        color.Anchored = true
        color.CanCollide = false
        color.BrickColor = BrickColor.new("Bright green")
        color.Parent = workspace
        game:GetService("Debris"):AddItem(color, 0.1)
    end
    print("🎨 Hit Color:", settings.hitColor)
end

-- HosamMer
local function toggleHosamMer()
    settings.hosamMer = not settings.hosamMer
    if settings.hosamMer then
        local gui = Instance.new("ScreenGui")
        gui.Name = "HosamMer"
        gui.Parent = screenGui
        local label = Instance.new("TextLabel")
        label.Size = UDim2.new(0, 200, 0, 50)
        label.Position = UDim2.new(0.5, -100, 0.5, -25)
        label.Text = "👤 HosamMer"
        label.TextColor3 = Color3.fromRGB(0, 150, 255)
        label.TextSize = 30
        label.BackgroundTransparency = 1
        label.Parent = gui
    else
        local gui = screenGui:FindFirstChild("HosamMer")
        if gui then gui:Destroy() end
    end
    print("👤 HosamMer:", settings.hosamMer)
end

-- Pouch
local function togglePouch()
    settings.pouch = not settings.pouch
    if settings.pouch then
        local gui = Instance.new("ScreenGui")
        gui.Name = "Pouch"
        gui.Parent = screenGui
        local frame = Instance.new("Frame")
        frame.Size = UDim2.new(0, 200, 0, 150)
        frame.Position = UDim2.new(0.5, -100, 0.5, -75)
        frame.BackgroundColor3 = Color3.fromRGB(20, 20, 30)
        frame.BackgroundTransparency = 0.3
        frame.Parent = gui
        local corner = Instance.new("UICorner")
        corner.CornerRadius = UDim.new(0, 8)
        corner.Parent = frame
        local label = Instance.new("TextLabel")
        label.Size = UDim2.new(1, 0, 1, 0)
        label.Text = "👝 POUCH\nItem 1 | Item 2\nItem 3 | Item 4"
        label.TextColor3 = Color3.fromRGB(255, 255, 255)
        label.TextSize = 16
        label.BackgroundTransparency = 1
        label.Parent = frame
    else
        local gui = screenGui:FindFirstChild("Pouch")
        if gui then gui:Destroy() end
    end
    print("👝 Pouch:", settings.pouch)
end

-- Animation
local function toggleAnimation()
    settings.animation = not settings.animation
    if settings.animation then
        local char = player.Character
        if char and char:FindFirstChild("Humanoid") then
            local anim = Instance.new("Animation")
            anim.AnimationId = "rbxassetid://507770239"
            local track = char.Humanoid:LoadAnimation(anim)
            track:Play()
        end
    else
        local char = player.Character
        if char and char:FindFirstChild("Humanoid") then
            char.Humanoid:LoadAnimation(nil)
        end
    end
    print("🎬 Animation:", settings.animation)
end

-- ===== ⚔️ НОВАЯ ФУНКЦИЯ PVP - НЕЗЕРИТОВЫЙ МЕЧ =====
local function giveNetheriteSword()
    local char = player.Character
    if not char then return end
    
    -- Проверяем, есть ли уже меч
    local existingSword = char:FindFirstChild("NetheriteSword")
    if existingSword then
        existingSword:Destroy()
        print("⚔️ Меч убран")
        return
    end
    
    -- Создаем инструмент
    local sword = Instance.new("Tool")
    sword.Name = "NetheriteSword"
    sword.RequiresHandle = true
    sword.Parent = player.Backpack
    
    -- Рукоять
    local handle = Instance.new("Part")
    handle.Name = "Handle"
    handle.Size = Vector3.new(0.5, 1.5, 0.5)
    handle.BrickColor = BrickColor.new("Really black")
    handle.Material = Enum.Material.SmoothPlastic
    handle.Anchored = false
    handle.CanCollide = false
    handle.Parent = sword
    
    -- Лезвие
    local blade = Instance.new("Part")
    blade.Name = "Blade"
    blade.Size = Vector3.new(0.3, 2.5, 0.8)
    blade.Position = Vector3.new(0, 1.5, 0)
    blade.BrickColor = BrickColor.new("Dark indigo")
    blade.Material = Enum.Material.Neon
    blade.Anchored = false
    blade.CanCollide = false
    blade.Parent = handle
    
    -- Свечение
    local glow = Instance.new("PointLight")
    glow.Color = Color3.fromRGB(100, 50, 200)
    glow.Range = 8
    glow.Brightness = 2
    glow.Parent = blade
    
    -- Атака
    local damage = 25
    local cooldown = false
    
    sword.Activated:Connect(function()
        if cooldown then return end
        cooldown = true
        
        local tweenInfo = TweenInfo.new(0.2, Enum.EasingStyle.Quad, Enum.EasingDirection.Out)
        local tween = tweenService:Create(handle, tweenInfo, {
            CFrame = handle.CFrame * CFrame.Angles(0, 0, -1.5)
        })
        tween:Play()
        tween.Completed:Connect(function()
            local tweenBack = tweenService:Create(handle, TweenInfo.new(0.2), {
                CFrame = handle.CFrame * CFrame.Angles(0, 0, 1.5)
            })
            tweenBack:Play()
        end)
        
        local charPos = char.HumanoidRootPart.Position
        for _, target in ipairs(game.Players:GetPlayers()) do
            if target ~= player then
                local targetChar = target.Character
                if targetChar and targetChar:FindFirstChild("HumanoidRootPart") then
                    local dist = (targetChar.HumanoidRootPart.Position - charPos).Magnitude
                    if dist < 6 then
                        local humanoid = targetChar:FindFirstChild("Humanoid")
                        if humanoid then
                            humanoid.Health = humanoid.Health - damage
                            print("⚔️ Нанесен урон " .. target.Name .. " (" .. damage .. ")")
                        end
                    end
                end
            end
        end
        
        task.wait(0.5)
        cooldown = false
    end)
    
    sword.Equipped:Connect(function()
        handle.Parent = char
        local characterCF = char.HumanoidRootPart.CFrame
        handle.CFrame = characterCF * CFrame.new(1.5, 1, 0) * CFrame.Angles(0, 0, 0)
    end)
    
    sword.Unequipped:Connect(function()
        handle.Parent = sword
    end)
    
    task.wait(0.1)
    if player.Backpack:FindFirstChild("NetheriteSword") then
        char.Humanoid:EquipTool(sword)
    end
    
    print("⚔️ Незеритовый меч выдан!")
end

-- ===== ДАННЫЕ МЕНЮ =====

local menuData = {
    main = {
        {name = "Visuals", action = function() currentMenu = "visuals"; updateMenu() end},
        {name = "HUD", action = function() currentMenu = "hud"; updateMenu() end},
        {name = "Utilities", action = function() currentMenu = "utilities"; updateMenu() end},
        {name = "Pouch", action = function() currentMenu = "pouch"; updateMenu() end},
        {name = "Animations", action = function() currentMenu = "animations"; updateMenu() end},
        {name = "PvP", action = function() currentMenu = "pvp"; updateMenu() end}, -- 👈 НОВАЯ КАТЕГОРИЯ
    },
    visuals = {
        {name = "Max Visuals", action = toggleMaxVisuals, color = Color3.fromRGB(255, 200, 0)},
        {name = "Full Bright", action = toggleFullBright},
        {name = "Crosshair", action = toggleCrosshair},
        {name = "Hit Bubble", action = toggleHitBubble},
        {name = "Body Glow", action = toggleBodyGlow},
        {name = "China Hat", action = toggleChinaHat},
        {name = "AspectRatio", action = toggleAspectRatio},
        {name = "BlockOverlay", action = toggleBlockOverlay},
        {name = "ArrowNametag", action = toggleArrowNametag},
        {name = "Custom Hand", action = toggleCustomHand},
        {name = "Hit Color", action = toggleHitColor},
        {name = "HosamMer", action = toggleHosamMer},
    },
    hud = {
        {name = "Show FPS", action = function() print("📊 FPS: ON") end},
        {name = "Show Ping", action = function() print("📊 Ping: ON") end},
        {name = "Show Date", action = function() print("📊 Date: " .. os.date()) end},
        {name = "Show Time", action = function() print("📊 Time: " .. os.date("%H:%M:%S")) end},
    },
    utilities = {
        {name = "Speed Boost", action = toggleSpeed},
        {name = "Jump Boost", action = toggleJumpBoost},
        {name = "Fly", action = toggleFly},
        {name = "NoClip", action = toggleNoClip},
        {name = "Reset Speed", action = function()
            local char = player.Character
            if char and char:FindFirstChild("Humanoid") then
                char.Humanoid.WalkSpeed = 16
                char.Humanoid.JumpPower = 50
                settings.speed = false
                settings.jumpBoost = false
            end
        end},
        {name = "God Mode", action = function()
            local char = player.Character
            if char and char:FindFirstChild("Humanoid") then
                char.Humanoid.MaxHealth = math.huge
                char.Humanoid.Health = math.huge
            end
        end},
    },
    pouch = {
        {name = "Open Pouch", action = togglePouch},
        {name = "Item 1", action = function() print("📦 Item 1: Трава") end},
        {name = "Item 2", action = function() print("📦 Item 2: Камень") end},
        {name = "Item 3", action = function() print("📦 Item 3: Палка") end},
        {name = "Item 4", action = function() print("📦 Item 4: Яблоко") end},
    },
    animations = {
        {name = "Dance", action = toggleAnimation},
        {name = "Idle", action = function() print("🎬 Idle") end},
        {name = "Run", action = function() print("🎬 Run") end},
        {name = "Jump", action = function() print("🎬 Jump") end},
        {name = "Sit", action = function() print("🎬 Sit") end},
        {name = "Wave", action = function() print("🎬 Wave") end},
    },
    -- ===== НОВАЯ КАТЕГОРИЯ PVP =====
    pvp = {
        {name = "Netherite Sword", action = giveNetheriteSword, color = Color3.fromRGB(150, 50, 200)},
        {name = "PvP Speed", action = function()
            local char = player.Character
            if char and char:FindFirstChild("Humanoid") then
                char.Humanoid.WalkSpeed = 50
            end
        end},
        {name = "PvP Armor", action = function()
            local char = player.Character
            if char then
                for i = 1, 4 do
                    local armor = Instance.new("Part")
                    armor.Size = Vector3.new(2, 0.5, 1)
                    armor.BrickColor = BrickColor.new("Dark indigo")
                    armor.Material = Enum.Material.Neon
                    armor.Anchored = true
                    armor.CanCollide = false
                    armor.Transparency = 0.3
                    armor.Parent = char
                    armor.Position = char.HumanoidRootPart.Position + Vector3.new(0, 0.5 + (i-1) * 0.3, 0)
                    game:GetService("Debris"):AddItem(armor, 5)
                end
            end
        end},
        {name = "Disable PvP", action = function()
            local char = player.Character
            if char then
                local sword = char:FindFirstChild("NetheriteSword")
                if sword then sword:Destroy() end
                local bp = player.Backpack:FindFirstChild("NetheriteSword")
                if bp then bp:Destroy() end
            end
            settings.speed = false
            local char = player.Character
            if char and char:FindFirstChild("Humanoid") then
                char.Humanoid.WalkSpeed = 16
            end
        end},
    },
}

-- ===== ФУНКЦИЯ ОБНОВЛЕНИЯ МЕНЮ =====

function updateMenu()
    for _, child in ipairs(scrollContainer:GetChildren()) do
        if child:IsA("TextButton") or child:IsA("Frame") then
            child:Destroy()
        end
    end
    
    backButton.Visible = (currentMenu ~= "main")
    
    if currentMenu == "main" then
        title.Text = "PulseVisuals"
    else
        title.Text = "PulseVisuals - " .. string.upper(currentMenu)
    end
    
    local items = menuData[currentMenu] or {}
    
    local grid = Instance.new("Frame")
    grid.Size = UDim2.new(1, 0, 0, math.ceil(#items / 2) * 40 + 20)
    grid.BackgroundTransparency = 1
    grid.Parent = scrollContainer
    
    for i, item in ipairs(items) do
        local col = (i - 1) % 2
        local row = math.floor((i - 1) / 2)
        
        local button = Instance.new("TextButton")
        button.Size = UDim2.new(0.45, 0, 0, 32)
        button.Position = UDim2.new(col == 0 and 0.03 or 0.52, 0, 0, row * 36 + 4)
        button.BackgroundColor3 = item.color or Color3.fromRGB(40, 40, 50)
        button.BackgroundTransparency = 0.4
        button.BorderSizePixel = 0
        button.Text = item.name
        button.TextColor3 = Color3.fromRGB(255, 255, 255)
        button.TextSize = 14
        button.TextXAlignment = Enum.TextXAlignment.Center
        button.TextYAlignment = Enum.TextYAlignment.Center
        button.Font = Enum.Font.SourceSansBold
        button.Parent = grid
        
        local btnCorner = Instance.new("UICorner")
        btnCorner.CornerRadius = UDim.new(0, 6)
        btnCorner.Parent = button
        
        button.MouseEnter:Connect(function()
            button.BackgroundColor3 = Color3.fromRGB(60, 60, 80)
        end)
        button.MouseLeave:Connect(function()
            button.BackgroundColor3 = item.color or Color3.fromRGB(40, 40, 50)
        end)
        
        button.MouseButton1Click:Connect(item.action)
    end
    
    scrollContainer.CanvasSize = UDim2.new(0, 0, 0, math.ceil(#items / 2) * 40 + 20)
end

-- ===== FPS ДИСПЛЕЙ =====
local fpsFrame = Instance.new("Frame")
fpsFrame.Size = UDim2.new(0, 320, 0, 35)
fpsFrame.Position = UDim2.new(0.5, -160, 0, 10)
fpsFrame.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
fpsFrame.BackgroundTransparency = 0.6
fpsFrame.BorderSizePixel = 0
fpsFrame.ClipsDescendants = true
fpsFrame.Parent = screenGui

local fpsCorner = Instance.new("UICorner")
fpsCorner.CornerRadius = UDim.new(0, 10)
fpsCorner.Parent = fpsFrame

local fpsText = Instance.new("TextLabel")
fpsText.Size = UDim2.new(1, 0, 1, 0)
fpsText.BackgroundTransparency = 1
fpsText.TextColor3 = Color3.fromRGB(0, 120, 255)
fpsText.Text = "pulsevisuals.pro / 0 ms / 0 FPS"
fpsText.TextSize = 16
fpsText.Font = Enum.Font.GothamBold
fpsText.TextXAlignment = Enum.TextXAlignment.Center
fpsText.TextYAlignment = Enum.TextYAlignment.Center
fpsText.Parent = fpsFrame

-- ===== ОБНОВЛЕНИЕ FPS =====
local frameCount = 0
local lastTime = tick()

local function updateFPS()
    frameCount = frameCount + 1
    local currentTime = tick()
    local deltaTime = currentTime - lastTime
    
    if deltaTime >= 0.5 then
        local fps = math.floor(frameCount / deltaTime)
        frameCount = 0
        lastTime = currentTime
        
        local ping = math.floor(statsService.Network.ServerStatsItem["Data Ping"]:GetValue() * 1000)
        fpsText.Text = "pulsevisuals.pro / " .. ping .. " ms / " .. fps .. " FPS"
    end
end

runService.RenderStepped:Connect(updateFPS)

-- ===== ОТКРЫТИЕ МЕНЮ =====
userInputService.InputBegan:Connect(function(input, gameProcessed)
    if input.KeyCode == Enum.KeyCode.RightShift then
        menuFrame.Visible = not menuFrame.Visible
        if menuFrame.Visible then
            currentMenu = "main"
            updateMenu()
        end
    end
end)

updateMenu()
print("✅ PulseVisuals загружен! Нажмите ПРАВЫЙ SHIFT")
print("⚔️ В категории PvP есть Незеритовый меч!")

Features & Information

Пульс Визуалс, сделан лично мною Связаться ds:famefuntime
#pulsevisuals#minecraft#visuals#all#free

Community Comments (0)

No comments yet for this script.

More Scripts for Universal Scripts