I just finished working on a sophisticated banking system. I worked on it solely to release for public use, since I tried to make it as fancy as possible (not graphic wise, since I can't make any graphics

). Although this version
is complete, I consider it a beta version since I want to implement a few things like a loan system, credit system, and interest system and so forth for
possibly a future release, depending on how much time I feel like investing on this thing.
This beta version comes with a custom log in screen for users to log in to access their account information. It also comes with a registration feature for users that have not yet registered an account, which, of course, would be first time users. When inputting a desired account, if your account is less than 10 characters, right under the textbox you will see the text
"Insufficient Characters...," the same applies for when inputting a desired password. With this system, I made it a 10 character requirement for usernames and passwords. When you input the 10 characters for a username, the former "Insufficient Characters..." text will now display whether or not your desired username is available or not.
Only one username is allowed per user, and only one account is allowed per user.
Now, the password portion is a bit different, with the fact that I have implemented a password strength checker to check the strength of your desired passwords (credits to Joey for helping me create this). When inputting a password, you will be notified whether it is either a 'weak' password, a 'semi-secure' password, and a 'highly secure' password.
How that works:
If your password only contains numbers, lower case letters, or upper case letters, your password will be considered 'weak'.
If your password only contains numbers and lower case letters or numbers and upper case letters or lower case and upper case letters, your password will be considered 'semi-secure'.
If your password has numbers, lower case letters, and upper case letters, it will be considered strong.
When you've inputted a desired username that is available for use and when you've inputted a desired password, you can press the register button to register your account. After pressing the register button, assuming you inputted the information correctly, you will be prompted with a 'success' gui for registering your account. In this form, you will see some text that you should read and then at the bottom you will see a copy of your username, password, and a
personal code. This personal code is essentially very important for you to remember. Each user will have a different personal code.
When you go to log in, if the information you type in is not the one you registered with, you will be prompted to a username/password recovery gui that will ask you for your personal code, of which you will have to enter in order for the system to tell you your username and password again. So, I'd suggest you store that number in a place that you wouldn't forget it.
After registering, you can log in, wait for the bank to load, and then you will be prompted with the actual bank gui. Currently, all you can do is view your balance, withdraw, and deposit gralats, which is essentially the basics of a banking system.
This system uses player.rupees since I made it for the public, and thus, you'll have to configure it to whatever strings your server uses for money for the system to work correctly for your server.
DB: gambet_bankDB
^This system reads for this DB and simply stores and reads all information stored in this database. Just create a DB with this name and leave it alone, the system itself will do everything.
NOTE: I havn't had anyone to test it for me, so if there are any bugs or so, please let me know and I'll work on fixing them. Also, feel free to fix things around yourself if you wish. This system is for public use, so use it as you please. I didn't exactly implement different error messages for each and every case, so you might get an error message that doesn't apply to what you're trying to do at times, but just take note that what you're doing is in fact wrong, even if the error message displayed is not 100% correct. But, for the most part, I tried to make as many accurate error messages as possible.
NOTE 2: Besides the '/bank' command that you have to chat to fire the weapon, everything else is completely gui-based.
Enjoy
