Code (script located inside the character):
local camera = workspace.CurrentCamera camera.CameraType = Enum.CameraType.Custom local character = script.Parent local humanoidRootPart:Part = character:WaitForChild("HumanoidRootPart") local userInputService = game:GetService("UserInputService") local minDistance = 5 local maxDistance = 15 local starterDistance = 7.5 local lerpSpeed = 0.1 script:WaitForChild("Offset") script:WaitForChild("TargetOffset") script.Offset.Value = Vector3.new(0, starterDistance, 0) script.TargetOffset.Value = script.Offset.Value userInputService.InputEnded:Connect(function(input, gameProcessed) if input.KeyCode == Enum.KeyCode.Z and not gameProcessed then if camera.CameraType == Enum.CameraType.Scriptable then camera.CameraType = Enum.CameraType.Custom camera.CameraSubject = character.Humanoid else camera.CameraType = Enum.CameraType.Scriptable camera.CameraSubject = nil end end end) userInputService.InputChanged:Connect(function(input, gameProcessed) if input.UserInputType == Enum.UserInputType.MouseWheel and not gameProcessed then local scroll = input.Position.Z local currentScroll = script.TargetOffset.Value.Y currentScroll -= scroll if currentScroll > maxDistance then currentScroll = maxDistance elseif currentScroll < minDistance then currentScroll = minDistance end script.TargetOffset.Value = Vector3.new(0, currentScroll, 0) end end) game:GetService("RunService").RenderStepped:Connect(function() script.Offset.Value = script.Offset.Value:Lerp(script.TargetOffset.Value, lerpSpeed) if camera.CameraType == Enum.CameraType.Scriptable then camera.CFrame = CFrame.lookAt(humanoidRootPart.Position + script.Offset.Value, humanoidRootPart.Position) end end)
I’m making a tower defense game for fun and I want the player to activate a “top down view” where the character will be able to see from a bird’s eye perspective. It works, however whenever I activate the camera the player’s character is flung around, killed, and/or just straight up deleted. In attempt to fix this, I tried setting the camera subject to nil when entering the camera mode. I don’t know what’s causing this, if you have any ideas I would like to hear them. Thanks!