Some modules implement finances in a game using pieces to represent various denominations of currency. The transactions then involve moving currency pieces in about the same way it would be done face to face at a game table. Some modules may even monitor and display the current cash on hand of various game entities using techniques presented in the How to calculate total of numeric Property of all pieces in particular location/state tip/trick which is definitely an improvement on players having to examine the cash stacks themselves. This moving of currency pieces to move money is fine when transactions aren’t numerous, the game is short, or the quantity of currency pieces per transaction are few.
I believe the Power Grid module improves on this by providing a way for players to type in an amount to pay the bank, and upon clicking an execute button (it may have a different name) the module grabs the currency pieces from the player’s area and moves them to the bank.
After deciding to start work on a module for an 18xx game I thought a lot on how to implement financial transactions in VASSAL. For those not familiar with 18xx, it is a genre of games focusing on the finances of building and operating railroads. Nearly every action in an 18xx game involves a financial transaction, 18xx games generally take 3 to 10 hours when played in person, and many of these transactions involve several pieces of currency.
I concluded that representing money with currency pieces would be cumbersome, and building in lots of automation to move the pieces around would take a lot of time and effort. Much of this automation effort would require defining and manipulating properties including some to represent the cash on hand for each entity in the game that could hold cash. So I decided it would be both easier to implement and speed flow of play to totally abstract money with properties and labels to display them.
I started this effort with this module to try out moving money between a player and the bank: Bank & Player Mod
I plan to write a future topic discussing in detail the parts of this trial module and how they work together.