Timeline System Blueprint:
This Blueprint tracks when the player enters the past or present, and dynamically loads the corresponding environment using Data Layers. This is the core logic that triggers when the player enters a portal. The Blueprint keeps track of the timeline the player is in and determines which version of the room to load. The appropriate room Data Layer is determined based on an enum sent by the portal Blueprint.
Timeline System Blueprint – Select Data Layer:
I'm using structs and have manually set up an array with the Data Layers for each room. Each room is assigned a number corresponding to its index in the array.
Timeline Portal:
This Blueprint handles the main portal logic. Each portal is shared between two rooms. It determines which room the player is currently in and what timeline they’re in. Based on that, it loads the corresponding alternate room in the opposite timeline.
Timeline Portal – Determine Next Room:
This function determines which of the two connected rooms to load by reversing the current room data, essentially selecting the other room. It then creates the appropriate struct to pass into the UpdateRoom function in the main Timeline Manager.