local Players = game:GetService("Players") local TweenService = game:GetService("TweenService") local RunService = game:GetService("RunService") local SoundService = game:GetService("SoundService") local player = Players.LocalPlayer local playerGui = player:WaitForChild("PlayerGui") local camera = workspace.CurrentCamera local G00BY_IMAGE_ID = "rbxassetid://87450260904518" local SOUND_IDS = { "rbxassetid://9069609200", "rbxassetid://1847661821", "rbxassetid://9069609200", "rbxassetid://1847661821", } -- Crear el ScreenGui Principal local screenGui = Instance.new("ScreenGui") screenGui.Name = "SistemaGlitchGui" screenGui.ResetOnSpawn = false screenGui.IgnoreGuiInset = true screenGui.Parent = playerGui local flashFrame = Instance.new("Frame") flashFrame.Size = UDim2.new(1, 0, 1, 0) flashFrame.BackgroundColor3 = Color3.fromRGB(0, 0, 0) flashFrame.BackgroundTransparency = 1 flashFrame.Visible = false flashFrame.ZIndex = 10 flashFrame.Parent = screenGui local jumpscareImage = Instance.new("ImageLabel") jumpscareImage.Size = UDim2.new(0.6, 0, 0.6, 0) jumpscareImage.AnchorPoint = Vector2.new(0.5, 0.5) jumpscareImage.Position = UDim2.new(0.5, 0, 0.5, 0) jumpscareImage.Image = G00BY_IMAGE_ID jumpscareImage.BackgroundTransparency = 1 jumpscareImage.ImageTransparency = 1 jumpscareImage.Visible = false jumpscareImage.ZIndex = 11 jumpscareImage.Parent = screenGui local isShaking = false local shakeIntensity = 0.45 local function startCameraShake() isShaking = true task.spawn(function() while isShaking do RunService.RenderStepped:Wait() local x = math.random(-100, 100) / 100 * shakeIntensity local y = math.random(-100, 100) / 100 * shakeIntensity local z = math.random(-100, 100) / 100 * shakeIntensity camera.CFrame = camera.CFrame * CFrame.fromEulerAnglesXYZ(math.rad(x), math.rad(y), math.rad(z)) end end) end local function stopCameraShake() isShaking = false end local function runVisualGlitch(duration) flashFrame.Visible = true jumpscareImage.Visible = true jumpscareImage.ImageTransparency = 0 startCameraShake() local endTime = os.clock() + duration while os.clock() < endTime do flashFrame.BackgroundColor3 = Color3.fromRGB(255, 255, 255) flashFrame.BackgroundTransparency = 0 task.wait(0.0) flashFrame.BackgroundColor3 = Color3.fromRGB(255, 255, 255) flashFrame.BackgroundTransparency = 0 task.wait(0.0) end stopCameraShake() flashFrame.Visible = false local fadeTween = TweenService:Create(jumpscareImage, TweenInfo.new(1), {ImageTransparency = 1}) fadeTween:Play() fadeTween.Completed:Connect(function() jumpscareImage.Visible = false screenGui:Destroy() -- Limpieza total al terminar el susto end) end local function startJumpscareSequence() local soundInstances = {} for i, id in ipairs(SOUND_IDS) do if id ~= "rbxassetid://" and id ~= "" then local sound = Instance.new("Sound") sound.SoundId = id sound.Volume = 0.75 sound.PlaybackSpeed = 1 sound.Parent = SoundService for _ = 1, 3 do local distortion = Instance.new("DistortionSoundEffect") distortion.Level = 0.29 distortion.Parent = sound end table.insert(soundInstances, sound) end end for i = 1, #soundInstances - 1 do soundInstances[i].Ended:Connect(function() soundInstances[i + 1]:Play() end) end if soundInstances[1] then soundInstances[1]:Play() runVisualGlitch(7) else runVisualGlitch(7) end end task.wait(0.1) startJumpscareSequence()