Ok, money.
First you need to decide how a person gets money. We'll call this the 'act of levelling'.
You need some form of storing data. This could be an actual database engine written by someone else, or write your own method of storage. You need to come up with a data structure that will work well for your method of 'levelling'
When a player joins the server you look at the NCN or NPL packet and then check the database to see if you know them. If you do, load their data into memory from the db. If not make a new record. The loaded data is your cache. Now you need to subscribe to the relevant packets you decided that are applicable for 'money' to be gained and update the cache. When a player leaves update the database with the data in the cache.
It's not 100% there as you're sort of asking "how do I use butter", but putting a cow in front of us.
Not my best analogy I know, but it's the best I can come up with at the moment.