it could be all those loops which seem unnecessary but its hard to follow the code so i’ll ask some questions.
what are you waiting for on UInitDone? and could it be an event rather than loop
what is the FOR loop even for, just add the lobby info directly to an array.
all of this should be handled in the gamemode or gamestate, no need to go into the controllers at all, you already have the Ref from casting.