I played a game quite similar so I think I get the general idea. Similar level is the only way about matching players, and xp can be gained through building, upgrading, doing achievements, and winning players’ islands or clan whatever. If that is not efficient enough, there’d have to be a complex algorithm for that. When the player goes offline, save their buildings through iteration, i.e Sniper_Tower, and its position relative to his building point, also its upgrade and other changeable stats that can be affected by the player- and so on. EVERY stat has to be saved. And it should be a breeze from there to load up the datastore, search up the offline player, and generate his clan using all the information you saved. And easily update the offline users’ stats on his buildings damage, etc. as well as deleting objects which have been fully broken, then all saved in the end. I’m just babbling on at this point but you get what I mean. You just need most of your reliability on datastores for this- so that’s something to look into.
And xp is much more efficient for a net stat to compare players for matchmaking.
Hope this helped.