How to sync new players in a multiplayer voxel game

So I am a bit stumped at the moment. I am trying to make a multiplayer voxel game and things are going fairly well so far. Two players can join, add/remove blocks, both players see the other ones changes.

The problems start when a new player joins after someone has made changes. Unlike earlier unity versions, UNET doesn’t appear to have any way to batch rpc calls so all of the changes the existing players made are not synced to the new player.

What I am seeing in tutorials for similar issues is to use a SyncVar which I’m sure works very well for floats like health, but would be ridiculous (not to mention impossible) to use on the 2048 chunks I have, each with its own 161616 three dimensional array.

I am fairly adept at C# and very experienced in using Unity, but the networking side of things is new to me, and has changed significantly since the last time I took a look at it. I would appreciate any insights anyone can offer on how I can get this to work.

This might help?