Hi, I'm writing a third person camera for my game and I was writing the code so that when you die the camera resets. When I test it though and I reset, that doesn't work and I'm stuck in a certain place and not following the player as I want it to.
Code:
repeat wait() until game.Players.LocalPlayer.Character
-- Settings
local XCamOffSet = 2
local YCamOffSet = 2
local ZCamOffSet = 4
local Player = game.Players.LocalPlayer
local Character = game.Players.LocalPlayer.Character
local RunService = game:GetService("RunService")
local UserInputService = game:GetService("UserInputService")
local Camera = game.Workspace.CurrentCamera
local DiedEvent = game.ReplicatedStorage.RemoteEvents.DiedEvent
local FakeCamera = nil
local Forward = false
local Backwards = false
local Left = false
local Right = false
function runCamera()
FakeCamera = Instance.new("Part",Camera)
FakeCamera.CanCollide = false
FakeCamera.Anchored = true
while wait() do
local m = Character.HumanoidRootPart.CFrame * CFrame.new(XCamOffSet, YCamOffSet, ZCamOffSet)
Camera.CameraType = Enum.CameraType.Scriptable
if (Forward) then
Camera:Interpolate(m, m + Character.HumanoidRootPart.CFrame.lookVector, .1)
ZCamOffSet = 4
XCamOffSet = 2
elseif (Backwards) then
Camera:Interpolate(m,m + Character.HumanoidRootPart.CFrame.lookVector, .1)
ZCamOffSet = -5
XCamOffSet = 2
elseif (Left) then
Camera:Interpolate(m,m + Character.HumanoidRootPart.CFrame.lookVector, .1)
XCamOffSet = -3
ZCamOffSet = 4
elseif (Right) then
Camera:Interpolate(m,m + Character.HumanoidRootPart.CFrame.lookVector, .1)
XCamOffSet = 3
ZCamOffSet = 4
else
Camera:Interpolate(m,m + Character.HumanoidRootPart.CFrame.lookVector, .05)
ZCamOffSet = 4
XCamOffSet = 2
end
end
end
UserInputService.InputBegan:Connect(function(keyCode)
if keyCode.keyCode == Enum.KeyCode.W then
Forward = true
elseif keyCode.keyCode == Enum.KeyCode.S then
Backwards = true
elseif keyCode.keyCode == Enum.KeyCode.A then
Left = true
elseif keyCode.keyCode == Enum.KeyCode.D then
Right = true
end
end)
UserInputService.InputEnded:Connect(function(keyCode)
if keyCode.keyCode == Enum.KeyCode.W then
Forward = false
elseif keyCode.keyCode == Enum.KeyCode.S then
Backwards = false
elseif keyCode.keyCode == Enum.KeyCode.A then
Left = false
elseif keyCode.keyCode == Enum.KeyCode.D then
Right = false
end
end)
Character.Humanoid.Died:Connect(function()
DiedEvent:FireServer()
runCamera()
end)
game.Players.PlayerAdded:connect(function(plyr) --When there is a player
plyr.CharacterAdded:connect(function(char) --And a players character
print("Running Camera")
runCamera()
end)
end)
runCamera()

3 comments
It works fine but you code was kinda sloppy and there were some mistakes. Anyway thank you :D
@sen_trix sorry, im multitasking with an assignment for school lol
oh ok lol