Vassal 3.6.4 Released

VASSAL 3.6.4 Released

The VASSAL Team is happy to announce VASSAL 3.6.4.


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

New features

  • 11079: Main window & map accept Drag-and-Drop for loading saves and logs
  • 11032: List Key Commands tool for Editor

Bug fixes

  • 11073: Fix situation where Send-to-Location throws exceptions when it can’t find target counters
  • 11069: Fix crash in Load Deck when an invalid deck file selected in file picker
  • 11067: Fix NPE in SetupStack.isOwningBoardActive()
  • 11065: Improved error handling when a temp file can’t be created
  • 11062: Fix problem on Windows where a click at edge made it slowly scroll all the way in that direction
  • 11060: Fixes to various Toolbar Buttons that weren’t respecting the “disable-on-global-property” settings
  • 11056: Don’t attempt to send to already-hung-up connection
  • 11053: Suppress Empty Deck Hotkeys when refreshing game
  • 11041: Inventory windows respond to hide-if-property-true
  • 11039: Display Loaded message instead of Cancelled when refreshing Predefined Setups
  • 11038: Allow ‘Use Same Boards’ option on Private Map to be removed
  • 11031: Turn Tracker List configure box missing labels
  • 11025: Guard against ClassCastException when MultiActionButtons change property values
  • 11024: Communicating with tiler over socket fails for some users; use stdout instead
  • 11020: Don’t display lock option for P2P rooms, which aren’t lockable
  • 11011: Fixed typo in DiceButton docs

Other improvements

  • 11076: Editor’s search function (and List Key Commands) will now “find” the keys for Undo & Step Forward
  • 11074: Support Send-to-Location source/target matching with $…$ expressions
  • 11070: Documentation updates for DrawingMouseover / DrawingMouseover Index
  • 11059: Right Click menu added to Show Error Log window in Module Manager
  • 11054: Don’t let old versions of PoG load and crash

Changes since 3.6.2

Bug fixes

  • 11008: Prevent URLConnection cache from holding edited modules open on Windows
  • 11007: Fix ArrayIndexOutOfBoundsException in StringEnumConfigurer
  • 11003: Fixed bad tile message; added plea for help with TileNotFoundExceptions
  • 10997: Editor: Don’t close window when moving Map or other components relative to Map
  • 10992: Fix NPE in SpecialDiceButton.getAttributeValueString() after deleting tooltip
  • 10985: Reset save dialog filename after close of game
  • 10983: Fix bad Inventory.Counter.equals()
  • 10981: Reinstate AbstractBuildable.getComponents()
  • 10979: Prevent Save Game from clobbering log being replayed
  • 10970: Fix problem where rotated pieces did not move-fixed-distance in correct direction
  • 10969: Fix Refresh of Pieces in Decks, remove old pieces completely
  • 10964: Fix Deal-to-Side Mask bug - Finish evaluating expression properly
  • 10954: Fix stack overflow infinite loop if invalid property name put in blank
  • 10947: Collect diagnostic information for an SSLHandshakeException
  • 10940: Fix NPE in TurnLevel
  • 10942: Fix NPE in SendToLocation
  • 10934: Repaint the background in the SetupStack editor
  • 10931: Fix NPE in KeyCommand.makeMenuText()

Other improvements

  • 10961: Use heuristic value for initial tiler heap; use 3/4 physical RAM as max heap

Changes since 3.6.1

Bug fixes

  • 10925: Turn Tracker Button can never be size 0
  • 10915: Undo of Send To Location sent to bottom card of deck returns the card to the top of the Deck
  • 10908: Fix NPE when using Send Back in SendToLocation
  • 10907: Disabled Toolbar Buttons on Map Windows didn’t initialize starting state properly
  • 10906: Show an error dialog if reading a corrupted prefs file
  • 10903: Stacking units placed by At-Start stacks didn’t allow Action Buttons on said pieces to function until the piece was moved
  • 10901: Unchecking Cycle Message box in a Report trait clears the fields
  • 10899: Show the player window before the welcome wizard
  • 10894: Warn about movement trails inside of rotates only when editing module
  • 10893: Fix NPE: RandomTextButton raw rolls/counts support
  • 10891: Pieces in decks were not being updated during Refresh Counters
  • 10889: Added diagnostic to determine what is trying to add stacks to stacks
  • 10887: Wasn’t possible to click add to add an Action Button trait to a piece

Other improvements

  • 10929: Use ‘/usr/bin/env bash’ in for greater portability on Unix

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.