Can the same Game Mode be used for multiple different levels?

Hi. I have a basic VR game. There are 4 levels and each level is a separate blueprint level.
The game mode is called VR_GameMode and the same VR_GameMode is used for each level.
Within the game there is a Main Menu widget and I use the “Open Level” node to open a new level depending on whether Level 1, 2, 3 or 4 have been selected.

The problem I have is that on “Event BeginPlay” of VR_GameMode I make a call to a server and return data and 4 arrays are populated for level 1, 2, 3 and 4 respectively. I now realise this wasn’t a great idea because each time a level is opened the call to the server is made and the arrays are repopulated. It’s also intermittently crashing.

Is there a better way to make the call to the server just the once and not each time a level is opened? And is it ok to use the same game mode for each level.

Based on some reading Game Instance sounds like a better option as it persists across the game. My only question with Game Instance and making a call to a server to read in some data is how to do it when the game loads because as I understand there is no event beginplay for Game Instance.

Thanks

Use GameInstance, it is not reset between levels.