Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local uis = game:service("UserInputService")
- local localplayer = game.Players.LocalPlayer
- local freecamstate = false
- local fcspeed = 0.5
- local camera1,camera2,camera3 = 0,0,0
- local fckeybind = "V"
- local tpkeybind = "B"
- local RenderStepped = game:service('RunService').RenderStepped
- local function freecam()
- local fc = Instance.new("Part")
- fc.Name = "fcpart"
- fc.CanCollide = false
- fc.Anchored = true
- fc.Transparency = 1
- fc.Size = Vector3.new(1,1,1)
- fc.CFrame = localplayer.Character.Head.CFrame
- local cam = workspace.CurrentCamera
- cam.CameraSubject = fc
- cam.CameraType = 'Custom'
- fc.Parent = localplayer.Character
- local diedconnection = localplayer.Character.Humanoid.Died:Connect(function()
- freecamstate = false
- if localplayer.Character:FindFirstChild("fcpart") then
- localplayer.Character.fcpart:Destroy()
- local cam = workspace.CurrentCamera
- cam.CameraSubject = localplayer.Character.Humanoid
- cam.CameraType = 'Custom'
- localplayer.Character.Head.Anchored = false
- end
- end)
- repeat
- if localplayer.Character:FindFirstChild("fcpart") then
- fc.CFrame = CFrame.new(Vector3.new(fc.Position.X,fc.Position.Y+camera3,fc.Position.Z),cam.CFrame.p)*CFrame.new(camera2,0,camera1)
- localplayer.Character.Head.Anchored = true
- end
- RenderStepped:wait()
- until not localplayer.Character:FindFirstChild("fcpart")
- diedconnection:Disconnect()
- end
- uis.InputBegan:Connect(function(input, gp)
- if gp then return end
- if input.KeyCode == Enum.KeyCode[fckeybind] then
- if not freecamstate then
- if localplayer.Character and localplayer.Character:FindFirstChild("Head") and localplayer.Character.Head:FindFirstChild("Neck") then
- freecamstate = true
- freecam()
- end
- else
- freecamstate = false
- if localplayer.Character:FindFirstChild("fcpart") then
- localplayer.Character.fcpart:Destroy()
- local cam = workspace.CurrentCamera
- cam.CameraSubject = localplayer.Character.Humanoid
- cam.CameraType = 'Custom'
- localplayer.Character.Head.Anchored = false
- end
- end
- elseif input.KeyCode == Enum.KeyCode[tpkeybind] and freecamstate then
- if localplayer.Character:FindFirstChild("HumanoidRootPart") then
- localplayer.Character.Head.Anchored = false
- localplayer.Character.HumanoidRootPart.CFrame = localplayer.Character.fcpart.CFrame
- localplayer.Character.Head.Anchored = true
- end
- elseif input.KeyCode == Enum.KeyCode.W or input.KeyCode == Enum.KeyCode.Up then
- if not freecamstate then return end
- camera1 = fcspeed
- elseif input.KeyCode == Enum.KeyCode.S or input.KeyCode == Enum.KeyCode.Down then
- if not freecamstate then return end
- camera1 = (fcspeed*-1)
- elseif input.KeyCode == Enum.KeyCode.A or input.KeyCode == Enum.KeyCode.Left then
- if not freecamstate then return end
- camera2 = fcspeed
- elseif input.KeyCode == Enum.KeyCode.D or input.KeyCode == Enum.KeyCode.Right then
- if not freecamstate then return end
- camera2 = (fcspeed*-1)
- elseif input.KeyCode == Enum.KeyCode.E or input.KeyCode == Enum.KeyCode.Space then
- if not freecamstate then return end
- camera3 = fcspeed
- elseif input.KeyCode == Enum.KeyCode.Q or input.KeyCode == Enum.KeyCode.LeftControl then
- if not freecamstate then return end
- camera3 = (fcspeed*-1)
- end
- end)
- uis.InputEnded:Connect(function(input, gp)
- if gp or not freecamstate then return end
- if input.KeyCode == Enum.KeyCode.W or input.KeyCode == Enum.KeyCode.Up then
- camera1 = 0
- elseif input.KeyCode == Enum.KeyCode.S or input.KeyCode == Enum.KeyCode.Down then
- camera1 = 0
- elseif input.KeyCode == Enum.KeyCode.A or input.KeyCode == Enum.KeyCode.Left then
- camera2 = 0
- elseif input.KeyCode == Enum.KeyCode.D or input.KeyCode == Enum.KeyCode.Right then
- camera2 = 0
- elseif input.KeyCode == Enum.KeyCode.E or input.KeyCode == Enum.KeyCode.Space then
- camera3 = 0
- elseif input.KeyCode == Enum.KeyCode.Q or input.KeyCode == Enum.KeyCode.LeftControl then
- camera3 = 0
- end
- end)
Advertisement
Add Comment
Please, Sign In to add comment