From my experience making custom camera systems, a first person shooter requires a custom controls and camera system.
The reason why your provided script doesn't work at all is because you aren't changing your camera's CFrame every frame. You can try BindOnRenderStep
, but you will get unwanted results with the controls (e.g camera going crazy when going backwards.)
In order to create a custom camera and controls systems, you must overwrite the default camera and controls scripts.
In order to overwrite these, you must place two localscripts named CameraScript
and ControlScript
in game.StarterPlayer.StarterPlayerScripts
.
If you need guidance on the controls system, you can go by my game's control script here.
If you need more personal help, join the ScriptingHelpers discord and ping me at kernelmode#0213.