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

If you want persistent data, you’ll need to store it somewhere, usually a database or, depending on how complex the data is, a Data Table.

Yeah I should of added I will be setting up a database to store the information.
But to retrieve the information whilst in the main menu, I assume they would have to be connected to a server that handles sending and retrieving the information?
And when they are in game, the game server updates the database with kills etc?

This is an online game, yes? Because you will have to be connected to the server to get that information in the menu. You could save a local copy of the information on thr player if you need quick access to it, but this should always be overwritten by whatever is on the server, when they go online.