--Made By Ur Boy: RobloxZUOI local Players = game:GetService("Players") local UserInputService = game:GetService("UserInputService") local RunService = game:GetService("RunService") local player = Players.LocalPlayer local camera = workspace.CurrentCamera local freecamEnabled = false local function toggleFreecam() freecamEnabled = not freecamEnabled if freecamEnabled then camera.CameraType = Enum.CameraType.Scriptable else camera.CameraType = Enum.CameraType.Custom end end local function updateFreecam(deltaTime) if not freecamEnabled then return end local moveSpeed = 50 * deltaTime local rotationSpeed = 0.1 -- Movement controls local moveVector = Vector3.new( (UserInputService:IsKeyDown(Enum.KeyCode.D) and 1 or 0) - (UserInputService:IsKeyDown(Enum.KeyCode.A) and 1 or 0), (UserInputService:IsKeyDown(Enum.KeyCode.E) and 1 or 0) - (UserInputService:IsKeyDown(Enum.KeyCode.Q) and 1 or 0), (UserInputService:IsKeyDown(Enum.KeyCode.S) and 1 or 0) - (UserInputService:IsKeyDown(Enum.KeyCode.W) and 1 or 0) ) -- Mouse look local delta = UserInputService:GetMouseDelta() local rotation = CFrame.Angles(-delta.Y * rotationSpeed, -delta.X * rotationSpeed, 0) camera.CFrame = camera.CFrame * rotation + (camera.CFrame.LookVector * moveVector.Z * moveSpeed) camera.CFrame = camera.CFrame + (camera.CFrame.RightVector * moveVector.X * moveSpeed) camera.CFrame = camera.CFrame + (camera.CFrame.UpVector * moveVector.Y * moveSpeed) end UserInputService.InputBegan:Connect(function(input) if input.KeyCode == Enum.KeyCode.P and UserInputService:IsKeyDown(Enum.KeyCode.LeftShift) then toggleFreecam() end end) RunService.RenderStepped:Connect(updateFreecam)