I put sky&light into a level(Actually, just creating a new basic level and deleting Floor and PlayerStart), and create a blueprint(LevelInstance) for it.
Then I put this LevelInstance blueprint into Main Level through SpawnActor function.
With Editor, this way can Illuminate the map, but cannot when package with shipping.
I believe the problem is that level instances in 5.3 are not set to be streamable by default
Behind the scenes this makes it so the level instance blueprint doesn’t get cooked with the level, so it’s basically an empty actor
In 5.4 the runtime behavior is exposed to blueprint, so you can change it in the blueprint to be streamable, but if you have to stay at 5.3, you will have to use C++ to create a new level instance class that has the correct runtime behavior (set DesiredRuntimeBehavior=ELevelInstanceRuntimeBehavior::LevelStreaming)