Dynamic level streaming with multiplayer support

The plugin works for me fine, just LoadLevelInstance on server, and do a RunOnOwningClient event with the stream info to add that to the client in question.

BUT if a client logs in while the game has been going for a while we have to load the stream infos to that player too, right? That is easy alright but I have no way of telling when it finishes. There is no event sadly and using delays is just asking for it most of the time. So I cannot make a proper loading screen that actually disappears when the level is really loaded.
With load level instance you have the OnLoad event which you can bind but here, nope.
Can’t even check if a given streaminfo has been loaded already or not so I can’t even do a Gate+delay->retry hackery since I never know when it is actually loaded.

And even worse, if you start loading a level into the stream when the host issues the order to switch maps, thus your client gets the command to also remove the level from stream… if you are still adding it while the remove order arrives you have a good chance of being kicked just like when trying to load instance from a client.
This also means that if I want to set up a Queue where I do the loading one-by-one the code will just rush through the array and I run the chance that one will be still loading while another command comes to unload the same thing and the client gets kicked.

TLDR:
Add to/Remove from Streaming Levels have no event to notify us when it’s finished.
If Add to is still in progress when the same thing is in a Remove from order it can get you kicked.

Update:
Okay, so if I add just a 0.2 delay (yea, after talking about how I hate delays) after issueing an add/remove order, I’m not getting kicked or crashing or anything.
That works for that part especially if used with bolean to deny any sort of action while one delay is already in progress.
The loadingscreen issue on the other hand is a tad annoying but I guess I will have to live with it.