Camera Rec
Key RequiredUniversal

Camera Rec

Universal ScriptinDMNoaa_nd1inDMNoaa_nd1 78 views 561 executesUpdated Aug 23, 2026
Unrated
00
Lua Script•240 lines (8608 chars)
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)

Features & Information

This script add a Gui camera + camera vfx + camera sound + Walk sound And more Join to my discord :https://discord.gg/MKsVJ694e
#Camera

Community Comments (0)

No comments yet for this script.

More Scripts for Universal Scripts