Mats, Layers, Visibility

I have 4 mats on the same blank private map. Each mat is on a different layer. The cards specific to each mat are one layer above the mat and work as expected. The mats can cover each other up in a specific order and hide these cards, which is perfect.

There are cards & tokens in the game that can go on all 4 of these mats. Let’s say they are played first mat A → put cards & tokens on A. Magic happens, now overlay mat B on top of A and continue playing. Eventually doing the same with C & D as well. These cards & tokens are on higher levels than all the mats. And that appears to be an issue.

In Vassal these higher up tokens & cards on A are still showing through to B.

In the physical game these mats are different physical “postcards”, you can’t see through them, and the cards & tokens attached to them don’t teleport through to the top postcard.

I considered using Charts ->Tabbed Panels->maps. But then players can put things on each other’s cards and it will get confusing. Charts can’t hold player hands or Private windows that I can tell (yet?).

[Added actual question :slight_smile: ]
I had these “postcards” tiled on a private window as 4 boards and wanted to more closely replicate the physical game. Is there any other elegant ways to do this so that each player has their own A-D postcards to drop tokens & cards on, and can put them out one at a time as-needed?

Is the behavior of cargo showing through mats desirable? Can we choose to make mats opaque vs transparent? i.e. “this mat hides mat cargo on mats under it” vs. “this mat allows mat cargo on mats under it to peek through”…? I can understand on a mat-by-mat basis how either behavior might be desirable. The former acts like a piece of paper or literal physical mat on the table. The latter acts as “grouping” items to make it easy to move them around the board as a group.


Any piece that isn’t assigned to a specific Game Piece Layer will be on a default “top” layer above all other layers, yes. Is there some reason why you can’t change which layer these pieces are on when they get placed on the mat?

I have no idea how to do that? And when I assigned pieces to the same layer as the mats it didn’t seem to help. So I have layer “Green Card” for the mat and then above it the “Green” layer above it for the green cards. These are assigned in piece prototypes using Marker → Layer = Green. How would I temporarily assign the Green layer to the other assets, and have it revert after? A tutorial, video, or documentation page would be helpful. I keep combing through trying to find what I need to build this game, and it’s a lot to learn.

Can you assign a Dynamic Property name for Game Piece Layers rather than a Marker name? If so, you can then change the Game Piece Layer in which a piece is drawn via some Named Command or Key Command.

Assuming the answer to my first question is yes, You could order Game Piece Layers from bottom to top: MatA, PiecesOnMatA, MatB, PiecesOMatB, MatC, PiecesOnMatC, MatD, PiecesOMatD. Then define Key (or Named) Commands to change the value of the piece’s Dynamic Property that indicates on which Game Piece Layer the piece is drawn according to which mat on which the piece is placed.

I have the layers set up like that, and that’s how I got the green cards to behave the way I wanted them to.

I guess I assumed since Vassal is for emulating physical games that a mat would emulate a physical mat being moved around the board or a physical object placed on top of other physical objects.

For example, a castle’s floors. So on the game mat which represents the countryside, there’s a castle, and the game referee sets up the different levels of the castle on mats so as the adventurers go to different levels, they encounter the objects on each level of the castle. But the objects in the dungeon won’t appear on the 4th floor. As they’re running up & down the stairs chasing the villain, the referee lays the mats on top when they go upstairs, and removes mats as they go down so the current level the adventurers are on is the top mat showing (puts the higher levels in another window — in reverse order probably. So all the mats on the same layer would be useful in this scenario so they lay in the order needed on each window, though I guess the layer orders can be changed in another window.).

This would work in-person, and it would work in Vassal if it was set up for opaque mats as well as transparent. I’m not a Java programmer, but opaque would probably create sub-layers that match the layers above the mat in the current window, so that the pieces removed re-gain their former layer. So the heroes leaving the castle end up on the main board in their appropriate layers.

I could ask if you can post screenshots of your Game Piece Layer config, but it might be faster if you can just post a cloud storage link to your in-progress module so someone can look at it.