I wasnt able to see the video, but I think you can do this:
Create an objectvalue called “target” so you know who the player camera will focus.
Use UserInputService to set “target” as the chosen player’s character when you press l3, and also to set “target” as nil when you stop pressing l3.
Whenever you set a new “target” value, also use RunService to bind a function to renderstepped. On this function, the cameratype should be set as scriptable, and you will have to set camera cframe to keep looking at the target while following your player. If its an expectate tool you can set the camera position elsewhere, too.
Bind a propertychangedsignal(“Value”) to the “target” object value, as to know if the camera event should be unbound and the camera type be set back to custom. You might also consider other occasions, like when the target respawns (The objectvalue doesnt update when the value is deleted, so you might have to check if workspace is its ancestor to know if you should stop the event), or the target leaves the game.
Sorry, but I’m not a scripting expert, and I didn’t understand a little what to do and also, the video was shown Video in the SoulShatter or Undertale test place reborn place there is a link to L or M3 and the player’s camera looks directly at the player