local Players = game:GetService("Players") local Lighting = game:GetService("Lighting") local RunService = game:GetService("RunService") local TweenService = game:GetService("TweenService") local player = Players.LocalPlayer local playerGui = player:WaitForChild("PlayerGui") local camera = workspace.CurrentCamera -- Hancurkan GUI lama jika script dieksekusi ulang agar tidak menumpuk if playerGui:FindFirstChild("BackroomsCameraGUI") then playerGui.BackroomsCameraGUI:Destroy() end -- Membuat GUI Utama di PlayerGui local mainGui = Instance.new("ScreenGui") mainGui.Name = "BackroomsCameraGUI" mainGui.ResetOnSpawn = false mainGui.Parent = playerGui -- Tombol Camera (Bisa digeser / Draggable) local toggleBtn = Instance.new("TextButton", mainGui) toggleBtn.Size = UDim2.new(0, 120, 0, 45) toggleBtn.Position = UDim2.new(0.05, 0, 0.4, 0) toggleBtn.Text = "CAMERA" toggleBtn.BackgroundColor3 = Color3.fromRGB(30, 30, 30) toggleBtn.TextColor3 = Color3.fromRGB(255, 255, 255) toggleBtn.Font = Enum.Font.Code toggleBtn.TextSize = 16 toggleBtn.Active = true toggleBtn.Draggable = true -- Bisa digeser ke mana saja local uiCorner = Instance.new("UICorner", toggleBtn) uiCorner.CornerRadius = UDim.new(0, 8) local isActive = false local effects = {} local connections = {} -- Variabel untuk menyimpan pengaturan kamera asli player local originalCameraMode local originalMaxZoom local originalMinZoom local function createEffects() -- Simpan pengaturan kamera asli sebelum diubah originalCameraMode = player.CameraMode originalMaxZoom = player.CameraMaxZoomDistance originalMinZoom = player.CameraMinZoomDistance -- Paksa POV ke Orang Pertama (First-Person) player.CameraMode = Enum.CameraMode.LockFirstPerson player.CameraMaxZoomDistance = 0.5 player.CameraMinZoomDistance = 0.5 -- 1. Efek Blur & Backrooms Color Correction local blur = Instance.new("BlurEffect", Lighting) blur.Size = 10 table.insert(effects, blur) local cc = Instance.new("ColorCorrectionEffect", Lighting) cc.TintColor = Color3.fromRGB(220, 200, 130) cc.Contrast = 0.4 cc.Saturation = -0.3 table.insert(effects, cc) -- 2. GUI Overlay (VHS, Kesemutan, REC, & Tanggal) local vhsGui = Instance.new("ScreenGui") vhsGui.Name = "VHSOverlay" vhsGui.ResetOnSpawn = false vhsGui.Parent = playerGui table.insert(effects, vhsGui) -- Efek Kesemutan / Static Noise local staticNoise = Instance.new("ImageLabel", vhsGui) staticNoise.Size = UDim2.new(1, 0, 1, 0) staticNoise.BackgroundTransparency = 1 staticNoise.Image = "rbxassetid://9784318084" staticNoise.ImageTransparency = 0.75 staticNoise.ScaleType = Enum.ScaleType.Tile staticNoise.TileSize = UDim2.new(0, 256, 0, 256) -- Teks "REC..." merah (Sesuai Gambar) local recText = Instance.new("TextLabel", vhsGui) recText.Size = UDim2.new(0, 150, 0, 50) recText.Position = UDim2.new(0.05, 0, 0.08, 0) recText.BackgroundTransparency = 1 recText.Text = "REC..." recText.TextColor3 = Color3.fromRGB(220, 20, 20) recText.Font = Enum.Font.SpecialElite recText.TextSize = 32 recText.TextXAlignment = Enum.TextXAlignment.Left -- Animasi kedip teks REC task.spawn(function() while vhsGui.Parent do recText.TextTransparency = 0 task.wait(0.8) recText.TextTransparency = 0.5 task.wait(0.8) end end) -- Teks Tanggal & Waktu Vintage (Sesuai Gambar) local dateText = Instance.new("TextLabel", vhsGui) dateText.Size = UDim2.new(0, 300, 0, 70) dateText.Position = UDim2.new(0.05, 0, 0.82, 0) dateText.BackgroundTransparency = 1 dateText.Text = "MARCH.1990\n06/28/1990" dateText.TextColor3 = Color3.fromRGB(255, 255, 255) dateText.Font = Enum.Font.Code dateText.TextSize = 20 dateText.TextXAlignment = Enum.TextXAlignment.Left -- Layar Kematian Merah ("You Died") local deathFrame = Instance.new("Frame", vhsGui) deathFrame.Size = UDim2.new(1, 0, 1, 0) deathFrame.BackgroundColor3 = Color3.fromRGB(120, 0, 0) deathFrame.BackgroundTransparency = 1 local deathLabel = Instance.new("TextLabel", deathFrame) deathLabel.Size = UDim2.new(1, 0, 1, 0) deathLabel.BackgroundTransparency = 1 deathLabel.Text = "You Died" deathLabel.TextColor3 = Color3.fromRGB(255, 255, 255) deathLabel.Font = Enum.Font.Creepster deathLabel.TextScaled = true deathLabel.TextTransparency = 1 -- 3. Suara Creepy (ID: 120812539198119, Volume: 65%) local creepySound = Instance.new("Sound", camera) creepySound.SoundId = "rbxassetid://120812539198119" creepySound.Volume = 0.65 creepySound.Looped = true creepySound:Play() table.insert(effects, creepySound) -- 4. Suara Langkah Kaki Berjalan & Berlari (ID: 5446226292, Volume: 65%) local footstepSound = Instance.new("Sound", camera) footstepSound.SoundId = "rbxassetid://5446226292" footstepSound.Volume = 0.65 table.insert(effects, footstepSound) -- 5. Camera Shake, Glitch, & Footstep Trigger saat Berjalan/Berlari local tickCount = 0 local stepTimer = 0 local runConn = RunService.RenderStepped:Connect(function(dt) local char = player.Character if char and char:FindFirstChild("Humanoid") and char:FindFirstChild("HumanoidRootPart") then local hum = char.Humanoid local speed = hum.MoveDirection.Magnitude if speed > 0 then local isRunning = hum.WalkSpeed > 18 local intensity = isRunning and 0.35 or 0.15 local freq = isRunning and 14 or 9 tickCount = tickCount + dt * freq local shakeX = math.sin(tickCount) * intensity local shakeY = math.cos(tickCount * 2) * intensity camera.CFrame = camera.CFrame * CFrame.Angles(math.rad(shakeX), math.rad(shakeY), 0) stepTimer = stepTimer + dt local stepInterval = isRunning and 0.3 or 0.5 if stepTimer >= stepInterval then footstepSound:Play() stepTimer = 0 end -- Efek Glitch Distorsi Warna Acak if math.random() > 0.92 then cc.Contrast = math.random(2, 6) / 10 staticNoise.ImageTransparency = 0.5 else cc.Contrast = 0.4 staticNoise.ImageTransparency = 0.75 end else stepTimer = 0 end end end) table.insert(connections, runConn) -- 6. Sistem Kematian Player if player.Character and player.Character:FindFirstChild("Humanoid") then local deathConn = player.Character.Humanoid.Died:Connect(function() local twInfo = TweenInfo.new(1, Enum.EasingStyle.Quad, Enum.EasingDirection.Out) TweenService:Create(deathFrame, twInfo, {BackgroundTransparency = 0.2}):Play() TweenService:Create(deathLabel, twInfo, {TextTransparency = 0}):Play() task.wait(3.5) -- Tahan selama 3.5 detik local fadeOut = TweenInfo.new(1.5, Enum.EasingStyle.Quad, Enum.EasingDirection.In) TweenService:Create(deathFrame, fadeOut, {BackgroundTransparency = 1}):Play() TweenService:Create(deathLabel, fadeOut, {TextTransparency = 1}):Play() end) table.insert(connections, deathConn) end camera.FieldOfView = 55 end local function clearEffects() -- Kembalikan pengaturan kamera ke semula saat dimatikan if originalCameraMode then player.CameraMode = originalCameraMode end if originalMaxZoom then player.CameraMaxZoomDistance = originalMaxZoom end if originalMinZoom then player.CameraMinZoomDistance = originalMinZoom end for _, effect in pairs(effects) do if effect then effect:Destroy() end end for _, conn in pairs(connections) do if conn then conn:Disconnect() end end effects = {} connections = {} camera.FieldOfView = 70 end -- Tombol Interaksi GUI (Bisa ditekan On/Off) toggleBtn.MouseButton1Click:Connect(function() isActive = not isActive if isActive then toggleBtn.BackgroundColor3 = Color3.fromRGB(0, 100, 0) toggleBtn.Text = "CAM: ON" createEffects() else toggleBtn.BackgroundColor3 = Color3.fromRGB(30, 30, 30) toggleBtn.Text = "CAMERA" clearEffects() end end)