data/vault/hns-xp-mod.vault
That is fine but you need to think of the logic here. You are trying to use PlayerClass[id] to load data when a player connects. This value will ALWAYS be 0 so you need some other method of storing class. Think of it this way, when the player disconnects it will save PlayerClass as you wish: STEAMID-2-XP but then you try to load it using PlayerClass [this value will be 0 on a newly connecting player] when the player re-connects, your nvault_get key will be STEAMID-0-XP. See how this method will not work?
You should also set all player variables to 0 on disconnect so they aren't accidentally used for the next player that connects in that slot.
Consider saving data in this format. When the player connects, you just parse out the data and assign it to the appropriate variables.
Key=STEAM_0:0:12345
Data=90:1:1
[XP, level, class]
PHP Code:
formatex( szData , 10 , "%d:%d:%d" , iXP[id] , iLevel[id], iClass[id] );
nvault_set( g_Vault , g_szAuthID[id] , szData );
__________________