Is it possible to hide specific things from the log?

OK, this is kind of a weird idea, but I was wondering if there was any way to allow players to toggle whether or not they see specific messages in the log.

The idea is, I’m adding the flavor text for the Terraforming Mars module to display in the log when the cards are played. I can easily set a toggle to turn off flavor text for everyone, or individual toggles to turn off flavor text for cards played by an individual, but I was wondering if there’s any way to have individual toggles to prevent the flavor text from showing when other players play a card.

I’m thinking not, but figured I would ask.

Sure, I think you could do that. You wouldn’t be able to do it with the “auto-report” fields of the Map though – you’d have to blank the top three fields of that (the auto-reports for move within, move to, and created in), leave the “modified” one set to $message$, and then use the apply-on-move field to apply a keystroke to the pieces and they’d then process whether to display a message and use Report traits to display it. You can process the keystroke through Trigger traits that would be able to check which player’s hand the card is coming from, etc, as part of the decision.

The more I think about it, the more I think this isn’t possible. All the processing is done on the instance of VASSAL where the trigger action takes place; the other instances (i.e., the other players) just get a sequence of commands to blindly execute. For what I want, the other instances would have to be able to alter that sequence of commands (to omit any reports triggered by the “Flavor text” trigger, in this case).

Someone please correct me if I’m wrong!

I think you are right, it isn’t possible. It would need some user-controlled filter on what appears in their individual chat window (and then, what about log files?).

I have only recently started working with Vassal modules but you might find a way forward a separate window.

I would think it would work by checking e.g. { (playerSide != “Germans”) } in a Trigger trait before deciding whether to execute a Report trait or not.

That would work to stop the report from going out from a specific player, but not to stop it from going to a specific player. Eh, I’ll probably just include a global toggle (like there currently is for language), and the players can decide which state to leave it in (or annoy each other by constantly switching it!).

I think this sort of functionality would need to be built into a custom Chatter with a filter.

All messages will go out, but individual users could ignore all messages that that match specified criteria. Much like a junk email filter.

You could even set it up so that the Module Designer could configure a set of filters that could be selected from a drop-down list by the players so the don’t have to understand how to create filters.

A user would probably want to be able to toggle the hiding of old & new messages on/off so that they could double check that they haven’t missed something.