Un mapa construido por un jugador no tiene ningún nivel cocinado al que viajar, y su geometría es demasiado grande como para replicarla. Así fue como conseguí que uno llegara a todos los clientes en un proyecto publicado de UE5: guardar cada pieza como un ID y una transformación, replicar los bytes del guardado como una propiedad en un actor siempre relevante en lugar de un RPC, y dejar que cada máquina reconstruya el nivel a partir de su propio contenido cocinado. Incluye el encabezado de compresión, el límite máximo de tamaño y qué hacer cuando un mapa lo supera, por qué un estado pendiente no es un fallo, los dos hashes que impiden que un cliente construya un nivel que no coincide con el anfitrión, y la trampa que más me costó: dejar las piezas como movibles hace que el cliente guarde una como base de movimiento, que el servidor no puede resolver, y el jugador acaba siendo arrastrado hacia atrás. C++ puro y replicación del motor, sin plugins.
https://dev.epicgames.com/community/learning/tutorials/Jdlmz/unreal-engine-enviar-un-mapa-construido-por-un-jugador-a-otros-jugadores-sin-enviar-un-archivo