Save / load is basic text converting systems that convert data into an encrypted text string with decent efficency.
Something as simple as " 1150Dr " can be a save code which when imputed into a loader engine outputs the hero type 1 at lvl 150 but only for the player begining with Dr as the firs to letter. such save systems are easy but too easy to hack by noobs (pros can hack ANY save system trust me I have hacked dbz supreme, swat am, meat 2. . .(For research. . .)). More advanced code generators use a player name check sum which generates a number (often 2-3 letters) from a player name making it harder to load with a different account, randomization which changes the code to something random but with the right enterperator can convert it back (kind of like encryption), and advanced data storage where numbers are reduced and compacted and mixed with other numbers to make more efficent storage ( like a boolean var and a ability lvl could be fused to use only 1 diget like " V "could represent 19 which could represent a true and a 9 intger)
Making a code system is trial and error with you knowing atleast what will and will not work (trying to store a number tat can range between 1 and 999999 in 1 letter is impossable).
Just remember what ever you do to the save method you must undo in the load method.