--// Reality Break GUI --// Put this LocalScript in StarterPlayerScripts or StarterGui --// Local-only visual effects local Players = game:GetService("Players") local RunService = game:GetService("RunService") local UserInputService = game:GetService("UserInputService") local player = Players.LocalPlayer --======================== -- EDIT HERE --======================== local guiTitle = "Reality Break GUI" local mainButtonName = "Break Reality" local smallButtonName = "Open" local effectSpeed = 6 -- higher = faster effects local shakeAmount = 0.25 -- camera shake strength local fovAmount = 12 -- FOV warp strength local rollAmount = 4 -- camera roll strength local shakeEnabled = true local fovEnabled = true local rollEnabled = true local glitchEnabled = true --======================== local realityOn = false local realityLoopToken = 0 local storedFOV = 70 local glitchMessages = { "/// REALITY ERROR ///", "!!! DIMENSION SHIFT !!!", "%%% BREAKING FRAME %%%", "[[[ SIGNAL LOST ]]]", "<<< GLITCH ACTIVE >>>" } local screenGui = Instance.new("ScreenGui") screenGui.Name = "RealityBreakGui" screenGui.ResetOnSpawn = false screenGui.IgnoreGuiInset = true screenGui.Parent = player:WaitForChild("PlayerGui") local mainFrame = Instance.new("Frame") mainFrame.Size = UDim2.new(0, 320, 0, 390) mainFrame.Position = UDim2.new(0.5, -160, 0.5, -195) mainFrame.BackgroundColor3 = Color3.fromRGB(25, 25, 25) mainFrame.BorderSizePixel = 0 mainFrame.Active = true mainFrame.ClipsDescendants = true mainFrame.Parent = screenGui local mainCorner = Instance.new("UICorner") mainCorner.CornerRadius = UDim.new(0, 12) mainCorner.Parent = mainFrame local mainStroke = Instance.new("UIStroke") mainStroke.Thickness = 1 mainStroke.Transparency = 0.4 mainStroke.Color = Color3.fromRGB(120, 80, 255) mainStroke.Parent = mainFrame local titleBar = Instance.new("TextLabel") titleBar.Size = UDim2.new(1, 0, 0, 35) titleBar.BackgroundColor3 = Color3.fromRGB(35, 35, 35) titleBar.BorderSizePixel = 0 titleBar.Text = guiTitle titleBar.TextColor3 = Color3.fromRGB(255, 255, 255) titleBar.TextScaled = true titleBar.Font = Enum.Font.GothamBold titleBar.Parent = mainFrame local titleCorner = Instance.new("UICorner") titleCorner.CornerRadius = UDim.new(0, 12) titleCorner.Parent = titleBar local hideButton = Instance.new("TextButton") hideButton.Size = UDim2.new(0, 60, 0, 25) hideButton.Position = UDim2.new(1, -65, 0, 5) hideButton.BackgroundColor3 = Color3.fromRGB(70, 70, 70) hideButton.Text = "Hide" hideButton.TextColor3 = Color3.fromRGB(255, 255, 255) hideButton.TextScaled = true hideButton.Font = Enum.Font.Gotham hideButton.BorderSizePixel = 0 hideButton.Parent = mainFrame local hideCorner = Instance.new("UICorner") hideCorner.CornerRadius = UDim.new(0, 8) hideCorner.Parent = hideButton local closeButton = Instance.new("TextButton") closeButton.Size = UDim2.new(0, 25, 0, 25) closeButton.Position = UDim2.new(1, -30, 0, 5) closeButton.BackgroundColor3 = Color3.fromRGB(170, 50, 50) closeButton.Text = "X" closeButton.TextColor3 = Color3.fromRGB(255, 255, 255) closeButton.TextScaled = true closeButton.Font = Enum.Font.GothamBold closeButton.BorderSizePixel = 0 closeButton.Parent = mainFrame local closeCorner = Instance.new("UICorner") closeCorner.CornerRadius = UDim.new(0, 8) closeCorner.Parent = closeButton local scrollFrame = Instance.new("ScrollingFrame") scrollFrame.Position = UDim2.new(0, 0, 0, 35) scrollFrame.Size = UDim2.new(1, 0, 1, -35) scrollFrame.BackgroundTransparency = 1 scrollFrame.BorderSizePixel = 0 scrollFrame.ScrollBarThickness = 5 scrollFrame.ScrollingDirection = Enum.ScrollingDirection.Y scrollFrame.CanvasSize = UDim2.new(0, 0, 0, 0) scrollFrame.Parent = mainFrame local content = Instance.new("Frame") content.Size = UDim2.new(1, -8, 0, 0) content.BackgroundTransparency = 1 content.BorderSizePixel = 0 content.Parent = scrollFrame local layout = Instance.new("UIListLayout") layout.Padding = UDim.new(0, 6) layout.SortOrder = Enum.SortOrder.LayoutOrder layout.Parent = content layout:GetPropertyChangedSignal("AbsoluteContentSize"):Connect(function() content.Size = UDim2.new(1, -8, 0, layout.AbsoluteContentSize.Y) scrollFrame.CanvasSize = UDim2.new(0, 0, 0, layout.AbsoluteContentSize.Y + 10) end) local function roundify(parent, radius) local c = Instance.new("UICorner") c.CornerRadius = UDim.new(0, radius) c.Parent = parent return c end local function makeButton(text, color, height) local btn = Instance.new("TextButton") btn.Size = UDim2.new(1, -12, 0, height or 30) btn.BackgroundColor3 = color btn.Text = text btn.TextColor3 = Color3.fromRGB(255, 255, 255) btn.TextScaled = true btn.Font = Enum.Font.GothamBold btn.BorderSizePixel = 0 btn.Parent = content roundify(btn, 10) return btn end local function makeStatusLabel(text) local lbl = Instance.new("TextLabel") lbl.Size = UDim2.new(1, -12, 0, 24) lbl.BackgroundTransparency = 1 lbl.Text = text lbl.TextColor3 = Color3.fromRGB(235, 235, 235) lbl.TextScaled = true lbl.Font = Enum.Font.Gotham lbl.Parent = content return lbl end local function makeToggle(text, initial) local btn = makeButton(text .. ": " .. (initial and "ON" or "OFF"), initial and Color3.fromRGB(50, 120, 50) or Color3.fromRGB(120, 60, 60), 30) return btn end local function makeSettingRow(labelText, defaultText) local row = Instance.new("Frame") row.Size = UDim2.new(1, -12, 0, 52) row.BackgroundColor3 = Color3.fromRGB(32, 32, 32) row.BorderSizePixel = 0 row.Parent = content roundify(row, 10) local label = Instance.new("TextLabel") label.Size = UDim2.new(1, -12, 0, 20) label.Position = UDim2.new(0, 6, 0, 4) label.BackgroundTransparency = 1 label.Text = labelText label.TextColor3 = Color3.fromRGB(255, 255, 255) label.TextScaled = true label.Font = Enum.Font.Gotham label.Parent = row local box = Instance.new("TextBox") box.Size = UDim2.new(1, -12, 0, 22) box.Position = UDim2.new(0, 6, 0, 26) box.BackgroundColor3 = Color3.fromRGB(45, 45, 45) box.Text = defaultText box.TextColor3 = Color3.fromRGB(255, 255, 255) box.TextScaled = true box.Font = Enum.Font.Gotham box.BorderSizePixel = 0 box.ClearTextOnFocus = false box.Parent = row roundify(box, 8) return box end local realityButton = makeToggle(mainButtonName, false) local statusLabel = makeStatusLabel("Status: Stable") local shakeToggle = makeToggle("Camera Shake", shakeEnabled) local fovToggle = makeToggle("FOV Warp", fovEnabled) local rollToggle = makeToggle("Camera Roll", rollEnabled) local glitchToggle = makeToggle("Glitch Flash", glitchEnabled) local speedBox = makeSettingRow("Effect Speed", tostring(effectSpeed)) local shakeBox = makeSettingRow("Shake Amount", tostring(shakeAmount)) local fovBox = makeSettingRow("FOV Amount", tostring(fovAmount)) local rollBox = makeSettingRow("Roll Amount", tostring(rollAmount)) local nameBox = makeSettingRow("Main Button Name", mainButtonName) local titleBox = makeSettingRow("GUI Title", guiTitle) local smallBox = makeSettingRow("Small Button Text", smallButtonName) local applyButton = makeButton("Apply Settings", Color3.fromRGB(80, 80, 150), 30) local resetButton = makeButton("Reset Reality", Color3.fromRGB(120, 80, 40), 30) local smallButton = Instance.new("TextButton") smallButton.Size = UDim2.new(0, 70, 0, 30) smallButton.Position = UDim2.new(0, 10, 0.5, -15) smallButton.BackgroundColor3 = Color3.fromRGB(35, 35, 35) smallButton.Text = smallButtonName smallButton.TextColor3 = Color3.fromRGB(255, 255, 255) smallButton.TextScaled = true smallButton.Font = Enum.Font.GothamBold smallButton.BorderSizePixel = 0 smallButton.Visible = false smallButton.Active = true smallButton.Parent = screenGui roundify(smallButton, 10) local glitchOverlay = Instance.new("Frame") glitchOverlay.Size = UDim2.new(1, 0, 1, 0) glitchOverlay.Position = UDim2.new(0, 0, 0, 0) glitchOverlay.BackgroundColor3 = Color3.fromRGB(0, 0, 0) glitchOverlay.BackgroundTransparency = 1 glitchOverlay.BorderSizePixel = 0 glitchOverlay.Visible = false glitchOverlay.ZIndex = 50 glitchOverlay.Parent = screenGui local glitchText = Instance.new("TextLabel") glitchText.Size = UDim2.new(1, 0, 0, 80) glitchText.Position = UDim2.new(0, 0, 0.45, 0) glitchText.BackgroundTransparency = 1 glitchText.Text = "" glitchText.TextColor3 = Color3.fromRGB(255, 255, 255) glitchText.TextScaled = true glitchText.Font = Enum.Font.GothamBlack glitchText.ZIndex = 51 glitchText.Parent = glitchOverlay local function setMainButtonText() realityButton.Text = mainButtonName .. ": " .. (realityOn and "ON" or "OFF") realityButton.BackgroundColor3 = realityOn and Color3.fromRGB(170, 60, 60) or Color3.fromRGB(50, 120, 50) end local function setStatus() if realityOn then statusLabel.Text = "Status: Reality breaking..." else statusLabel.Text = "Status: Stable" end end local function parseNumber(text, fallback, minValue, maxValue) local n = tonumber(text) if not n then return fallback end if minValue then n = math.max(minValue, n) end if maxValue then n = math.min(maxValue, n) end return n end local function applySettings() effectSpeed = parseNumber(speedBox.Text, effectSpeed, 0.1, 100) shakeAmount = parseNumber(shakeBox.Text, shakeAmount, 0, 10) fovAmount = parseNumber(fovBox.Text, fovAmount, 0, 120) rollAmount = parseNumber(rollBox.Text, rollAmount, 0, 45) if nameBox.Text ~= "" then mainButtonName = nameBox.Text end if titleBox.Text ~= "" then guiTitle = titleBox.Text end if smallBox.Text ~= "" then smallButtonName = smallBox.Text end titleBar.Text = guiTitle smallButton.Text = smallButtonName setMainButtonText() setStatus() end local function stopReality() realityOn = false realityLoopToken += 1 local camera = workspace.CurrentCamera if camera then camera.FieldOfView = storedFOV end glitchOverlay.Visible = false setMainButtonText() setStatus() end local function startReality() if realityOn then return end realityOn = true realityLoopToken += 1 local myToken = realityLoopToken local camera = workspace.CurrentCamera if camera then storedFOV = camera.FieldOfView end setMainButtonText() setStatus() task.spawn(function() while realityOn and realityLoopToken == myToken do local cam = workspace.CurrentCamera if cam then local t = os.clock() local speed = math.max(effectSpeed, 0.1) if fovEnabled then cam.FieldOfView = storedFOV + math.sin(t * speed) * fovAmount else cam.FieldOfView = storedFOV end local shakeOffset = Vector3.new(0, 0, 0) if shakeEnabled then shakeOffset = Vector3.new( (math.noise(t * speed, 0, 0) - 0.5) * 2 * shakeAmount, (math.noise(0, t * speed, 0) - 0.5) * 2 * shakeAmount, (math.noise(0, 0, t * speed) - 0.5) * 2 * shakeAmount ) end local rollAngle = 0 if rollEnabled then rollAngle = math.sin(t * speed * 1.25) * math.rad(rollAmount) end cam.CFrame = cam.CFrame * CFrame.new(shakeOffset) * CFrame.Angles(0, 0, rollAngle) end RunService.RenderStepped:Wait() end local cam = workspace.CurrentCamera if cam then cam.FieldOfView = storedFOV end end) task.spawn(function() while realityOn and realityLoopToken == myToken do if glitchEnabled then glitchOverlay.Visible = true glitchOverlay.BackgroundTransparency = math.random(70, 90) / 100 glitchText.Text = glitchMessages[math.random(1, #glitchMessages)] task.wait(math.max(0.05, 0.25 / math.max(effectSpeed, 0.1))) glitchOverlay.Visible = false task.wait(math.max(0.08, 0.45 / math.max(effectSpeed, 0.1))) else task.wait(0.15) end end glitchOverlay.Visible = false end) end realityButton.MouseButton1Click:Connect(function() if realityOn then stopReality() else startReality() end end) shakeToggle.MouseButton1Click:Connect(function() shakeEnabled = not shakeEnabled shakeToggle.Text = "Camera Shake: " .. (shakeEnabled and "ON" or "OFF") shakeToggle.BackgroundColor3 = shakeEnabled and Color3.fromRGB(50, 120, 50) or Color3.fromRGB(120, 60, 60) end) fovToggle.MouseButton1Click:Connect(function() fovEnabled = not fovEnabled fovToggle.Text = "FOV Warp: " .. (fovEnabled and "ON" or "OFF") fovToggle.BackgroundColor3 = fovEnabled and Color3.fromRGB(50, 120, 50) or Color3.fromRGB(120, 60, 60) end) rollToggle.MouseButton1Click:Connect(function() rollEnabled = not rollEnabled rollToggle.Text = "Camera Roll: " .. (rollEnabled and "ON" or "OFF") rollToggle.BackgroundColor3 = rollEnabled and Color3.fromRGB(50, 120, 50) or Color3.fromRGB(120, 60, 60) end) glitchToggle.MouseButton1Click:Connect(function() glitchEnabled = not glitchEnabled glitchToggle.Text = "Glitch Flash: " .. (glitchEnabled and "ON" or "OFF") glitchToggle.BackgroundColor3 = glitchEnabled and Color3.fromRGB(50, 120, 50) or Color3.fromRGB(120, 60, 60) end) applyButton.MouseButton1Click:Connect(function() applySettings() end) resetButton.MouseButton1Click:Connect(function() stopReality() applySettings() end) hideButton.MouseButton1Click:Connect(function() mainFrame.Visible = false smallButton.Visible = true end) smallButton.MouseButton1Click:Connect(function() mainFrame.Visible = true smallButton.Visible = false end) closeButton.MouseButton1Click:Connect(function() stopReality() screenGui:Destroy() end) local function makeDraggable(handle, target) local dragging = false local dragInput local dragStart local startPos handle.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then dragging = true dragStart = input.Position startPos = target.Position input.Changed:Connect(function() if input.UserInputState == Enum.UserInputState.End then dragging = false end end) end end) handle.InputChanged:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch then dragInput = input end end) UserInputService.InputChanged:Connect(function(input) if input == dragInput and dragging then local delta = input.Position - dragStart target.Position = UDim2.new( startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y ) end end) end makeDraggable(titleBar, mainFrame) makeDraggable(smallButton, smallButton) setMainButtonText() setStatus() applySettings()