Yakuza substory detection

i was wondering about how yakuza substories, or any wandering quests/events work
for those who dont know, in yakuza they have substories that become available and play a cutscene upon walking in on a certain area and or after passing a certain point of the story
how could you detect if a player should be able begin the substory? because i was imagining using renderstepped or heartbeat to check if the player is within the bounds of an area and then check if the player meets any requirements for the substory, but that seems very resource intensive and difficult to organize.
are there any other options/suggestions as to doing this?

That’s definitely very wasteful of computational resources. I would instead just stick to the base part touched events for area-based triggering.

For the stuff that becomes available after completing parts of a story, you could take inspiration from linked lists and have each quest unlock the next one upon completion.

Using touched events or emulating a linked list doesn’t really solve the issue of organization though. For that, I’d just use OOP to represent each story as a class and keep track of all the requirements through a table being run when a function is run.

Hello, going off of what the other guy said about region3 and geometric optimization, the proper way to do your storyline would be via using a Directed Acyclic Graph (DAG), assuming you want your story to change like in the game Detroit: Become Human, you would use this graph to help determine how the player’s actions change the storyline. If you have more questions I’ll be glad to respond!