how would you create a competitive online multiplayer player profile that stores stats like level,currency,etc.?
You could store it all in a custom Structure. It’s a group of specific variables that you can then add to a player blueprint and change based on what the player’s specific stats are.
How would you then save it to a server
That’s … a significantly more complex explanation. Basically, Unreal replicates everything you tell it to across all clients and the server. So, the information exists across all client machines and the server. To replicate something across the network, you simply have to click the “Replicates” checkbox on the class defaults of the actor. However, there is a whooooole lot more to it than that. When one of the attributes is modified within a player profile like a struct, you want that to only happen on the server, then to filter out to all of the client machines from there. I would suggest watching this tutorial series on Unreal’s web site: Blueprint Networking Tutorials - Unreal Engine
It can do a much better job than I could do in a post.