When to create a new BP class ?

I am at the point where I have my level, player character, basic HUD and basic controls (most of it is from FPS Template).

Now I am ready to begin adding new functionality I need and I am not sure whether I should keep working in FirstPersonCharacter BP from FPS template or if I should create a new BP class.

If I create a new BP class, how would the game know to use it? (the new functionality pertains to tracing from player’s view, getting trace hit results and doing stuff with player based on that; also non-player related actors in the scene will be involved)

Thanks

Game mode and project settings are 2 places where you can connect “custom” player controller or player pawn.

I would say always make your custom pawn blueprint and player controller blueprint.
In player controller manage hud and filter player input. Think about it as virtual terminal for player
In player pawn do all character logic, so send over preprocessed information about what player want to do with this pawn, then do it as pawn.