Vassal 3.6.7 Released

VASSAL 3.6.7 Released

The VASSAL Team is happy to announce VASSAL 3.6.7.


  • NEW! 64-bit ARM packages: There are now MacOS and Windows packages for 64-bit ARM processors. If you have a Mac with an Apple Silicon CPU (which is a 64-bit ARM processor), we recommend using the 64-bit ARM build.
  • Code deprecated more than a year ago has been removed. Modules containing custom code using that code MUST be updated if they are to work with 3.6.
  • Things may be broken which worked previously. If you find a new bug, please report it.
  • Modules saved in 3.6 are not openable by earlier versions of VASSAL. We recommend keeping a backup copy of any pre-3.6 modules you plan to modify in 3.6 until you’ve verified that everything works to your satisfaction.


MacOS (64-bit ARM)
MacOS (64-bit x86)
Windows (64-bit ARM)
Windows (64-bit x86)
Windows (32-bit x86)

Changes since 3.6.6

Bug fixes

  • 11465: DoActionButton claims its icon in remove-unused-images
  • 11417: Fix Ctrl key with Does Not Stack trait
  • 11406: Don’t show image scale option for panels inside Chart Windows
  • 11388: Correctly draw hex coordinates for odd-numbered columns spanning tile boundaries
  • 11372: Delayed Notes from subsequent saves displayed out of order
  • 11369: Leading zeros handling in Set Dynamic Property
  • 11362: Match expanded Inventory nodes by entry value, not by display text
  • 11347: Inventory should not reveal face down deck images
  • 11344: Prevent Undo from triggering Deck Empty Hotkey
  • 11343: Ensure that the pivot point is used for rotating Cargo
  • 11329: Invisible Pieces belonging to another player can still stack together

Other improvements

  • 11487: Removed obsolete option from startup script
  • 11460: Show a dialog when connection to the game server is lost
  • 11446: Tweak version number display in online window (numbers at end, grayed out)
  • 11414: Improved version mismatch messaging
  • 11373: Make columns in Delayed Notes table sortable
  • 11361: Allow Calculated properties to set Game Piece Layer
  • 11356: SetupStack can match literal grid names even if Zone only reports Zone name (e.g., uses $name$ as Location Format)
  • 11351: Documented that Mats w/ cargo can’t go in decks
  • 11348: Polygon Editor improvements (move whole shape, tab between points)
  • 11346: Update bundled Java to 18
  • 11330: Allow .toString() to be called properly on property names in Beanshell

Changes since 3.6.5

Bug fixes

  • 11327: Fix Action Button not working after refreshing pre-defined setups
  • 11325: Implement the missing Play Sound trait ‘Send sound to other players’ functionality
  • 11315: Show correct Turn Tracker tooltip
  • 11302: Fixed link typo in GamePieceImageDefinitions page of Reference Manual
  • 11287: Fix ConcurrentExecutionException in Game Refresher with Mats
  • 11278: Scale tiled images to target size rather than by scale factor
  • 11254: Tiler dialog doesn’t cancel tiling when Cancel button is clicked
  • 11248: Catch InvalidDnDOperation exceptions when inappropriate drag-and-drops attempted
  • 11227: Fix NPE when copying vertices from a zone with no vertices
  • 11232: Stop edit of table when TableInfo is closed
  • 11223: Copy/Paste conversions fixed for Zone Properties to/from Global and Map Properties
  • 11188: DoActionButton hotkeys were not found by search

Other improvements

  • 11303: Preference to control drag-at-edge scroll rate; per module defaults for edge scrolling
  • 11297: Don’t copy out unused images on removal
  • 11296: Don’t block the EDT when clearing the tile cache
  • 11292: Strip leading and trailing whitespace from module names and versions
  • 11286: Improved Setup Stack descriptions in editor
  • 11279: Module “other” strings displayed in About screen
  • 11276: Place Marker (and Replace With Other) include name of added piece in summary
  • 11260: Editor now remembers its most recent image-picking (and sound) directories separately from its memory of last save/load of games and logs
  • 11258: New BasicName trait defaults to Prototype’s name; Changing Prototype’s name changes BasicName trait’s, if identical; At-Start Stack with no name displays name of first contained piece or folder in editor
  • 11256: Added a preference for the tiler max heap; tiler will retry up to that limit
  • 11255: Updated downloads URL to the one for our download page
  • 11243: Enable Sum and Count in GKC Report Expressions
  • 11233: UI Cleanup: don’t scroll-at-edge the map if a file or link is being dragged instead of a piece
  • 11229: Allow ‘Select All Regions’ when defining them; right click to delete now works for single unselected region
  • 11071: Improved version number checking

See the Release Notes for descriptions of the changes in 3.6.

Minimum Requirements

VASSAL 3.6 requires Java 11 or later.

The Windows and MacOS packages have an appropriate version of Java bundled with them, so there is no need to install Java separately on those operating systems. On Linux, use your package manager to install Java 11 or later.

Help us test

Please report bugs in the Technical Support & Bugs category at the VASSAL forum.




…and there was much rejoicing! :smiley:

Any chance to make this still possible? I like to create inventories so that I can quickly search for cards in my face down decks. With the recent change those cards are all face down (previously been face up).

The problem was that your opponent could also quickly search for cards in your face down decks.

I see, but couldnt that have been prevented by setting the “Available to these sides”.
You would as well need to remove the name of the pieces to prevent the mentioned issue.

I am not sure which form of implemenation of the inventory led to the described problem. With the bug fix the inventory should be useless to both players (at least for my described game implemenation need). Or is there a way to see face down cards for only 1 player?

Seems another solution that made another problem.

A feature was added years ago that introduced a security loophole and we have been trying to close the loophole ever since without actually removing the feature.

In Vassal, face-down cards in a Deck are hidden, in an unknown order, not to be known by any player, even the players sides that have access to the Deck. Having the inventory show cards in a face-down Deck is just wrong. Always has been, always will be.

Well, perhaps there is one case where it might make sense, where a player has access to the Deck (full or restricted) AND the ‘Draw specific cards’ option is enabled which allows them to see the cards anyway.

It would be good to have @Cattlesquat comment as he did the most recent work in this area.

In a lot of card games cards refere to your deck. Eg take card x from your deck or discard pile

Of course that can be implemented with the draw a special card feature. But then i need to name all cards and know their stats by the cardvname.

Ok, I’m just trying to work out your use case for wanting to see the cards in a face-down Deck?

Maybe it would be more appropriate if that Deck was a face-up-Deck, which would allow the cards to be seen in the Inventory?

Is the Deck in a private window, or is it in a public window where other players have access to it?

I’m just saying that in Vassal, a face-down Deck means that Vassal should not show people the cards in that Deck. Even if 2 different sides have ‘access’ to a Deck, that doesn’t automatically mean both sides should be able to arbitrarily see the cards in the Deck. Vassal can’t know if they should be allowed to see the cards or not.

My point about the ‘Draw specific cards’ feature is not that you may want to use that feature in your module, but that Vassal could take that as a cue that face-down cards in this Deck are allowed to be seen by sides that have access to it and so allow them to be seen in the Inventory.You can even specify that Deck allows specific cards to be drawn (check the checkbox), but not provide a menu command or key command to actually do it.

My current workaround is to add the face up/down feature to the deck. So a player will need to turn the deck face up and then look for the card in his deck. Afterwards the player will need to turn the deck back face down. The player deck in this example is on the main map. its a solo only vassal implementation. The module is skytear horde.

Thanks so much for your time and effort.