I’ve just completed the first build on a new game called Trivial Wars. I built the game entirely in 3.1 beta 2.
Now that it’s ready for playtesting, I made sure everything was updated including the Vassal engine …so I installed beta 5.
Once it was installed, I loaded the module and saved it so it would be compatible with the new beta. Two problems have now occurred.
Whenever I load the game, I get an error message that says:
Bad data found in module or saved game
Not a number:
I’ve gone through the module quite extensively and I can’t find anything wrong with the data. I’ve attached the log file for this error.
The Restrict Access trait appears to have stopped working on the player tokens.
All the player tokens are in a hidden window and each one has a Restrict Access command so that only a Player Side can move and manipulate the token. (tokens are set up as Cards, btw)
I have a “Get Token” button on the game board that sends a command to the map & zone that contains the player tokens. This command triggers a request to send the player token to a random location on the game board. This command applies to all the tokens but, with the Restrict Access command on each token, only the token belonging to the player who clicked the button should appear.
This worked perfectly when I built the module in beta 2. But in beta 5, all the tokens appear and everyone can move and manipulate everyone else’s token. It’s as if the Restrict Access trait doesn’t exist.
I examined the trait and I noticed it has an “Also belongs to an initially-placing player” but I’ve run tests with this checked or unchecked. It seems to make no difference. I’ve also moved the trait up and down in the traits list but that hasn’t had any affect, either.
It seems to stem from a “Random Text Button” I have set up. The entries in the list are all numbers and I have the “Faces have numeric values” option checked but when I attempt to edit the item that triggers this random generator and getting a value, I get that “Bad Data, Not a Number” error.
I have an Event Plaque on the game board (At Start Stack) that displays conditions for a game round. You click the New Round button and it displays the conditions. These conditions are set into the Event Plaque game piece as 30 image layers.
The New Round button sends a trigger to the Event Plaque to change. The Event Plaque sends a hot hey to retrieve a random value from 1 to 30 and then displays the appropriate image layer based on this value.
Since some event conditions are far more common than others, the value is retrieved from a Random Text Button with values like 1,1,1,1,2,2,3,3,4,5,6,6, etc. Since I have “Faces have numeric values” checked, the value is numeric.
Based on this value, any number of other things may be triggered as well.
I’ll get “Bad Data, Not a Number” error we’ve been discussing when I attempt to edit the Event Plaque.
It doesn’t appear to be a critical problem as I can close the error message, edit the Event Plaque game piece and everything works.
I was just reviewing the game piece again and I think I’ve narrowed down the problem. The Game Piece Image Layer is set to match properties “EventRoll_result” …which is the Random Text Button.
Operationally, it works fine. It appears that when you load the game (or try to edit the Event Plaque) Vassal’s error checking is looking at that EventRoll_result and seeing it as text, i.e. it’s not recognizing that the random text is being used to generate a numeric value.
I thought that perhaps the Event Plaque got corrupted when I converted over to beta 5 so I rebuilt it from scratch. The error occurred as soon as I put in the Layer trait, added the image layers and set it to match property EventRoll_result.
So, it’s obviously related to something going on between the Layer trait and a Random Text Button …even though the random text button is set to “Faces have numeric values”.
It is caused because the global value used to hold the results of a roll is initialized to “” instead of to a numeric value. Any downstream components reference the result GP generate Bad Data Reports until the first time the die is rolled. The fix simply initializes the value to “1” instead of “”.
Not only have my Restrict Access traits stopped working but I can’t seem to get a Report Action trait to work anymore, either. It shouldn’t make a difference if the Report Action trait is in a Prototype, should it?
I just loaded and tried svn4525. Restrict Access appears to be working normally now. All is well.
Thanx for all the hard work you guys put into Vassal. There’s very few products out there that have the level of support that you guys provide to a product of any kind …free or otherwise. It amazes me. I will definitely be sending you guys a hefty donation (much belated) as soon as I’m financially able to do so.