Vassal 3.6.6 Released

The VASSAL Team is happy to announce VASSAL 3.6.6.


  • 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.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

Changes since 3.6.4

New features

  • 11124: Console supports up-arrow / down-arrow for command history
  • 11122: Console can show/set properties of selected piece
  • 11117: Log files can be fast-forwarded and appended to

Bug fixes

  • 11218: Grid Editor incorrectly changes some grid settings on Cancel
  • 11196: Game Refresher should not refresh stacks not on maps
  • 11186: Disable load and edit actions for null modules
  • 11179: Chart Windows display their names properly in their window titles
  • 11162: Turn Tracker does not display a spurious blank line if its report format is left empty
  • 11160: Prevent At-Start Stacks from creating additional spurious pieces on main map
  • 11156: Games incorrectly load normally during ‘Load Continuation’
  • 11150: Use heuristic value for tiler max heap, retry with 50% more on failure
  • 11149: Capture tiling error messages Java incorrectly writes to stdout
  • 11139: Deal-to-Other key in Mask Trait now recognized in Search
  • 11135: Fixed Discord console drag-and-drop bug
  • 11127: Don’t throw exception if there’s a drive letter in a filename
  • 11121: Fix problem where undo wasn’t allowed when starting a new game with logging turned on
  • 11119: Fixed NPE in NamedHotKeyConfigurer.setValue()
  • 11115: Fix ClassCastException due to Zone properties not accounting for folders
  • 11109: LOS Range incorrect when thread is not snapped to hex centres
  • 11106: Fix NPE when duplicating GamePieceImage
  • 11105: Added missing Editor.SendToLocation.getSendLocation translation key
  • 11096: Remove “duplicate this item” option from Game Piece Image
  • 11095: Deduce the existence of localized image directories which lack ZIP entries
  • 11094: Exclude GamePieceLayout image names from unused image list
  • 11093: Image directories for i18n were not found in 3.6.4
  • 11089: Write text files in UTF-8, not the default encoding
  • 11081: Prevent GameRefresher from changing visual order of pieces

Other improvements

  • 11216: Inventory has checkbox to enable zoom (defaults off)
  • 11209: Global Options settings for (a) Inventory Security, and (b) Send-to-Location generating move trails. Inventory now defaults to “old behavior” on seeing private windows, but can be turned to secure.
  • 11205: Improved Polygon Editor (cut/paste vertices, delete polygon) & Improved Region Editor (drag-at-edge works again, move regions inside of zone)
  • 11197: Better auto-description for Translatable Message trait and BasicPiece
  • 11194: The errorlog console command is available at all times
  • 11164: Upgrade bundled Java to 17.0.2+8
  • 11135: Prompt to save/discard/cancel before loading the new game
  • 11120: Permit hyphens and periods in GamePieceImage names
  • 11107: Warn if Decks or Stacks defined before [Map Boards]
  • 11098: Screenshot “typo” fix for Turn Tracker’s global hotkey

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.