📅 2026-04-20T10:34:00.503Z
👁️ 85 katselukertaa
🔓 Julkinen


--!native
--!optimize 2
-- [[ PRISM | NEON-EDGE OVERLAY ]]

repeat task.wait() until game:IsLoaded()

local _S = setmetatable({}, {__index = function(t, k) return game:GetService(k) end})
local LP = _S.Players.LocalPlayer
local RS, UIS, TS = _S.RunService, _S.UserInputService, _S.TweenService

local Cam = workspace.CurrentCamera
while not Cam do task.wait() Cam = workspace.CurrentCamera end

local function GetUIFolder()
    local success, res = pcall(function() return gethui() end)
    return success and res or LP:WaitForChild("PlayerGui")
end
local CoreGui = GetUIFolder()

if CoreGui:FindFirstChild("PrismUI") then CoreGui.PrismUI:Destroy() end

local Prism = {
    VoidSpam = false, VoidPower = 600000, 
    Wallbang = false, WallbangSpeed = 500, OrbitRadius = 0,
    ESP = false, Crosshair = true,
    Visible = true, Angle = 0, Accent = Color3.fromRGB(0, 180, 255)
}

-- // [01] UI CONSTRUCTION
local Screen = Instance.new("ScreenGui", CoreGui); Screen.Name = "PrismUI"; Screen.ResetOnSpawn = false
local Main = Instance.new("Frame", Screen)
Main.Size = UDim2.new(0, 300, 0, 280); Main.Position = UDim2.new(0.5, -150, 0.5, -140)
Main.BackgroundColor3 = Color3.fromRGB(10, 10, 12); Main.BorderSizePixel = 0

local Edge = Instance.new("Frame", Main)
Edge.Size = UDim2.new(1, 2, 1, 2); Edge.Position = UDim2.new(0, -1, 0, -1); Edge.ZIndex = 0; Edge.BackgroundColor3 = Prism.Accent

local Sidebar = Instance.new("Frame", Main)
Sidebar.Size = UDim2.new(0, 70, 1, 0); Sidebar.BackgroundColor3 = Color3.fromRGB(15, 15, 18); Sidebar.BorderSizePixel = 0

local Container = Instance.new("Frame", Main)
Container.Size = UDim2.new(1, -80, 1, -20); Container.Position = UDim2.new(0, 75, 0, 10); Container.BackgroundTransparency = 1
local Pages = { Move = Instance.new("ScrollingFrame", Container), Visual = Instance.new("ScrollingFrame", Container) }

for _, p in pairs(Pages) do
    p.Size, p.BackgroundTransparency, p.Visible, p.ScrollBarThickness = UDim2.new(1, 0, 1, 0), 1, false, 0
    Instance.new("UIListLayout", p).Padding = UDim.new(0, 8)
end
Pages.Move.Visible = true

-- // [02] PRISM COMPONENTS
local function NewTab(name, page)
    local B = Instance.new("TextButton", Sidebar)
    B.Size, B.BackgroundTransparency, B.Text = UDim2.new(1, 0, 0, 40), 1, name:upper()
    B.TextColor3, B.Font, B.TextSize = Color3.new(0.4, 0.4, 0.4), Enum.Font.Code, 10
    B.MouseButton1Click:Connect(function()
        for n, p in pairs(Pages) do p.Visible = (n == page) end
        for _, btn in pairs(Sidebar:GetChildren()) do if btn:IsA("TextButton") then btn.TextColor3 = Color3.new(0.4, 0.4, 0.4) end end
        B.TextColor3 = Prism.Accent
    end)
    if page == "Move" then B.TextColor3 = Prism.Accent end
end
Instance.new("UIListLayout", Sidebar)

local function NewToggle(parent, name, var)
    local T = Instance.new("TextButton", Pages[parent]); T.Size, T.BackgroundTransparency, T.Text = UDim2.new(1, 0, 0, 22), 1, ""
    local Box = Instance.new("Frame", T); Box.Size, Box.Position = UDim2.new(0, 4, 1, 0), UDim2.new(0, 0, 0, 0); Box.BackgroundColor3 = Color3.fromRGB(30, 30, 35); Box.BorderSizePixel = 0
    local L = Instance.new("TextLabel", T); L.Size, L.Position = UDim2.new(1, -10, 1, 0), UDim2.new(0, 10, 0, 0); L.Text, L.TextColor3, L.Font, L.TextSize = name, Color3.new(0.8, 0.8, 0.8), Enum.Font.Code, 11; L.TextXAlignment, L.BackgroundTransparency = 0, 1
    T.MouseButton1Click:Connect(function()
        Prism[var] = not Prism[var]
        TS:Create(Box, TweenInfo.new(0.2), {BackgroundColor3 = Prism[var] and Prism.Accent or Color3.fromRGB(30, 30, 35)}):Play()
    end)
end

local function NewSlider(parent, name, min, max, var)
    local S = Instance.new("Frame", Pages[parent]); S.Size, S.BackgroundTransparency = UDim2.new(1, 0, 0, 38), 1
    local L = Instance.new("TextLabel", S); L.Size, L.Text = UDim2.new(1, 0, 0, 14), name; L.TextColor3, L.Font, L.TextSize, L.TextXAlignment, L.BackgroundTransparency = Color3.new(0.5, 0.5, 0.5), Enum.Font.Code, 9, 0, 1
    local Bar = Instance.new("Frame", S); Bar.Size, Bar.Position = UDim2.new(1, 0, 0, 2), Bar.Position = UDim2.new(0, 0, 0, 22); Bar.BackgroundColor3 = Color3.fromRGB(25, 25, 30); Bar.BorderSizePixel = 0
    local Fill = Instance.new("Frame", Bar); Fill.Size, Fill.BackgroundColor3, Fill.BorderSizePixel = UDim2.new(math.clamp((Prism[var]-min)/(max-min), 0, 1), 0, 1, 0), Prism.Accent, 0
    Bar.InputBegan:Connect(function(input)
        if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
            local c; c = RS.RenderStepped:Connect(function()
                local per = math.clamp((UIS:GetMouseLocation().X - Bar.AbsolutePosition.X) / Bar.AbsoluteSize.X, 0, 1)
                Prism[var] = min + (max - min) * per
                Fill.Size = UDim2.new(per, 0, 1, 0)
            end)
            input.Changed:Connect(function() if input.UserInputState == Enum.UserInputState.End then c:Disconnect() end end)
        end
    end)
end

NewTab("Move", "Move"); NewTab("Visual", "Visual")
NewToggle("Move", "VOID SPAM (600K)", "VoidSpam")
NewToggle("Move", "PHASE ORBIT", "Wallbang")
NewSlider("Move", "ORBIT SPEED", 1, 2500, "WallbangSpeed")
NewSlider("Move", "ORBIT RADIUS", 0, 50, "OrbitRadius")
NewToggle("Visual", "PLAYER ESP", "ESP")
NewToggle("Visual", "PRISM CROSSHAIR", "Crosshair")

-- // [03] PRISM PHYSICS
local function GetClosest()
    local t, d = nil, 600
    for _, v in pairs(_S.Players:GetPlayers()) do
        if v ~= LP and v.Character and v.Character:FindFirstChild("HumanoidRootPart") then
            local pos, vis = Cam:WorldToViewportPoint(v.Character.HumanoidRootPart.Position)
            if vis then
                local mag = (Vector2.new(pos.X, pos.Y) - (Cam.ViewportSize/2)).Magnitude
                if mag < d then t = v.Character; d = mag end
            end
        end
    end
    return t
end

RS.Heartbeat:Connect(function()
    local Char = LP.Character
    local R = Char and Char:FindFirstChild("HumanoidRootPart")
    if not R then return end

    if Prism.Wallbang then
        local T = GetClosest()
        if T and T:FindFirstChild("HumanoidRootPart") then
            Prism.Angle = Prism.Angle + (Prism.WallbangSpeed / 100)
            local TPos = T.HumanoidRootPart.Position
            local Off = Vector3.new(math.cos(Prism.Angle) * Prism.OrbitRadius, 1.2, math.sin(Prism.Angle) * Prism.OrbitRadius)
            R.AssemblyLinearVelocity = Vector3.zero
            R.CFrame = CFrame.new(TPos + Off, TPos)
        end
    end

    if Prism.VoidSpam then
        local oCF = R.CFrame
        local side = (tick() % 0.02 > 0.01 and 1 or -1)
        R.AssemblyLinearVelocity = Vector3.zero
        R.CFrame = oCF + (oCF.RightVector * (Prism.VoidPower * side))
        RS.RenderStepped:Wait(); R.CFrame = oCF
    end

    if Prism.Wallbang or Prism.VoidSpam then
        for _, v in pairs(Char:GetDescendants()) do if v:IsA("BasePart") then v.CanCollide = false end end
    end
end)

-- Mobile Button
local Mob = Instance.new("TextButton", Screen); Mob.Size, Mob.Position = UDim2.new(0, 30, 0, 30), UDim2.new(0, 10, 0.5, -15)
Mob.BackgroundColor3, Mob.Text, Mob.TextColor3, Mob.Font = Color3.fromRGB(15,15,15), "P", Prism.Accent, Enum.Font.Code; Mob.BorderSizePixel = 1; Mob.BorderColor3 = Prism.Accent
Mob.MouseButton1Click:Connect(function() Prism.Visible = not Prism.Visible; Main.Visible = Prism.Visible end)

UIS.InputBegan:Connect(function(i, g)
    if not g and (i.KeyCode == Enum.KeyCode.RightShift or i.KeyCode == Enum.KeyCode.Insert) then
        Prism.Visible = not Prism.Visible; Main.Visible = Prism.Visible
    end
end)