Counters for one side show the masked image when hidden and you mouse over the other shows the counter without being masked why?

The bug only happens when the counter is facing to the top of the screen any rotation turns the counter to show the hidden image side the moment it faces north again it shows the unhidden counter!

The units are set to allow any player to see them so no player side is impacting this. Vassal 3.7.20.

Here is the module: https://drive.google.com/file/d/14niOXkw_m4OcRtzXRapQ_of1PXxujiQf/view?usp=drive_link

I can’t begin to understand what’s happening vs what you want to be happening without a set of reproduction steps.

Taking a cursory look, you have your Mask trait set up to have ā€œNo imageā€ for the View When Masked setting, which is almost certainly not what you want because it gives results like this:

From there, your Can Rotate trait is probably in an undesirable position in the trait stack because it’s giving you that big rectangle of background white space for any rotated piece in the mouseover zoom view. You also have ā€œAutopeek on rolloverā€ set for the Mask trait.

Reminder: with your current Mask settings (can be masked by: Any Player), you cannot truly experience how hiding (masking) pieces will work in truly opposed play unless you mask a piece, save the game, close it, change your module password, reopen the saved game, and take another player side.

The ā€˜Mask’ trait needs to be placed below everything you want to mask. Read this (I find that guide to be very valuable):slight_smile: VASSAL Reference Manual

Sorry folks I should have know it was my choices that were the problem. I have the Masking feature about the prototype in each counter! I’m sure once I move it below it will be fine.

Adding sides to the counters to limit players who can reveal soon, most people testing it now are solo so I was in no hurry to do so!

So I setup sides to do additional testing if I move the trait below the rotation the mask does not turn. I setup player sides and the mouse over peek seems to only work when the counter faces its original position. So I think the actual non working issue is the peek feature in the Mask Properties trait. Setting up sides does prevent the other side from peeking, but the owner still only sees the actual counter when mouse over is done with it in the original starting facing.

This is how I setup the test.

Are you loading older predefined setups when running your post-change tests?

No using a new setup each time so that old properties are not a factor. If I move the mask below rotation the peek feature works in all facings but of course the mask does not rotate

Counters for one side show the masked image when hidden and you mouse over the other shows the counter without being masked why?

The units are set to allow any player to see them so no player side is impacting this.

I guess you want the owning player to be able to see the un-masked unit, right?

In your Mask trait, you have not set the View when masked configuration. That means the image of the unit will be the image of the piece will be the base image for all sides.

You have set Display style to the masking image. However, this mask is really only activated for the board rendering and when the piece is rotated and shown in the Mouse-over Stack Viewer (this could be a bug - that the owner mask image is used if the piece is selected or shown in the stack-viewer if no peek key is defined, and the owner display is set to Plain, and that the unmasked image isn’t shown if the piece is rotated and shown in the stack viewer - the problem must probably be found in VASSAL.counters.Obscurable).

What you probably want, is to set the View when masked configuration to be the mask image - e.g., German_UnK_Blank.png. But then you also want to change Can be masked by to Any side or Any of the specified sides - otherwise the masking doesn’t really have any effect (you probably want Any of the specified sides with German 1,2,3 for German units, and Allied 1,2,3 for Allied units). You can set Display style to anything you want - for example Plain if you also want the owning side to see the mask image.

If what you want is for the piece to show the masked image to all sides, and that the piece can be revealed to all sides, then a Mask trait is probably not what you want. Instead you could use a Layer trait to achieve that effect.

Also, you probably need to define a key short-cut or named command, if you set Display style to Plain, for the Peek command, or the hidden piece will be shown in the stack viewer and when clicked, to non-owning sides. This is probably because of a bug in Obscurable that counts a click or stack view as a selection, and then as a peek command.

Yours,
Christian

There is indeed a bug in Vassal - see this issue. I’ve made a pull request that should fix it.

Yours,
Christian

This has been fixed in the Vassal 3.7.22 Release. Give that a try. If it still doesn’t work consider opening an issue like the one above.

Please consider to check the solution to your problem - only you as OP can do that. That helps others find a possible solution to their problems.

Yours,
Christian