I know this will probably get taken down but it is a question after all. I have been wondering for the past couple of days how to create a story game/mode like games like Pokémon brick bronze (of course I will not be using any copyright content) and some other games.
For example how do the NPC interact with players, how when NPC enters a new stage it stays there Or boss battles. Multiple examples but I can't quite get my head around how they do it.
In this answer, I will not be providing any code because your question does not involve any attempts but asks for ideas, so i'll give ideas.
Most of the cool interactive parts of a story game require data, see DataStores in the wiki, where stored information is used to change the scenery. So in Brick Bronze, you can go to areas where a legendary cutscene will take place (Camera Manipulation) but previously if you explored the same area nothing would happen.
NPC's normally interact with the player through dialogue which can be done with the Roblox dialogue plugin. This plugin also allows you to code certain functions into dialogue which can allow you to force an event to take place while talking to someone, say causing a boss fight.
A boss fight can be made in several ways. You could do a boss fight where you force the player to only deal damage at certain point like fighting a giant (makes for an easier boss battle due to limited options). If the giants swings and misses, their weapon is stuck so you may attack their arm. These battles work well for a cinematic battle where a boss battle like blood borne involves the boss knowing the location of the player and most likely using the distance between each other to decide what attack will be used.
Basically, a broad list of topics you can research and use to do some of the above would involve Dialogue, Datastores, Camera manipulation, Pathfinding, Making/scripting animations, and application of the previous topics into an NPC
Hopefully this gives you a better idea on what to do. It would take far too long to create these aspects of a game and display them for you to understand what is happening so all I can do is attempt to explain the process I would think to do so.