How to store persistent character stats?

Hello all,

I have been racking my brain around this on the best method to do it.

The current system - The player joins a game from main menu and during the “lobby phase” the player can choose their class and customise their abilities and the game starts. When the match ends players leave the game and no stats are saved.

I do like this because each player is on a level footing each match and is purely based off skill, rather than time played. But, as every skill in the game is fully customisable, it can get quite tedious setting up the skills how you like them, every game you play. So I made a little work around were the player can set up their build in the main menu and this saves to the client and loaded by the server in the game. To avoid players being able to change the foundation of skills on the client, I have simply saved the names of the chosen mods and the power rating chosen. The server then works out their chosen skills on entry to the server and if something has been changed, which voids the weighting ratios, then the skill won’t transfer over and the player just has to remake it.

However, I want to introduce character progression for players to aim for (i.e working towards goals to unlock new skill addons or even just being able to see their K/D ratio and other player stats on the home screen).

If I just tackle player KD for now and I can work everything else out.

What is the best way to do this? Would I need to set up a dedicated server to act as the “log in/main menu” so the player’s KD are stored on that server and displayed in the main menu? If so, how would I then communicate from the game server to the main menu server the updated kill/death stats