VASSAL 3.5.1 Released

[size=200]VASSAL 3.5.1 Released[/size]

The VASSAL Team is happy to announce VASSAL 3.5.1.


  • Things may be broken which worked previously. If you find a new bug, please report it.

  • Modules saved in 3.5 are not openable by earlier versions of VASSAL. We recommend keeping a backup copy of any pre-3.5 modules you plan to modify in 3.5 until you’ve verified that everything works to your satisfaction.


Windows (64-bit)
Windows (32-bit)

[size=150]Changes since 3.5.0[/size]

Bug fixes

  • 14035: Multi Action Button and Toolbar Menu lose last item in Menu Entry list
  • 14034: Prevent concurrent updates to preferences
  • 14033: Fast Match forgets fields when added to Maps and Module
  • 14032: Fast Match was picking wrong number of cards from decks
  • 14026: GameRefresher incorrectly deletes off map pieces
  • 14024: NumberFormatException when private server port is empty
  • 14023: Advanced Search displays “hit lists” properly for names/types of prototypes & configurables
  • 14018: Refresh Predefined Setup incorrectly clones at start stacks
  • 14012: Die Roll ‘Prompt for values when button pushed’ dialog is broken
  • 14008: Unused Images Tool was suggesting some in-use GIFs for deletion
  • 14007: NPE when adding dockable PieceWindow from module extension
  • 14000: OverlappingFileLockException when attempting to write preferences
  • 13999: Fast-Match wasn’t working for “Moved” property
  • 13997: Chat log should start display on bottom line even with larger monitors
  • 13996: Sanitize temp file basenames to escape illegal characters
  • 13995: Don’t try to write a logfile without having started one
  • 13993: IllegalBuildException on gpIdChecker when using GameRefresher
  • 13992: NPE in Embellishment.addLocalImageNames()
  • 13991: NPE when using Game Refresher on predefined setups
  • 13988: ExecutionException when opening a moved or renamed module file
  • 13987: ChessClock buttons with icons had inappropriate height/width
  • 13984: NPE in BugUtils when involved from the Module Manager
  • 13981: NoSuchElementException using Edit All Contained Pieces
  • 13975: ArrayIndexOutOfBoundsException using Edit All Contained Pieces
  • 13973: Missing message for failure to write file
  • 13971: Cannot create new module extensions
  • 13970: DiceButton icons and Mask images incorrectly suggested for removal by unneeded-file-remover
  • 13968: NPE in HelpFile.addLocalImageNames()
  • 13967: Search wasn’t searching into PieceSlots (“Single Piece” items in Setup Stacks, etc.)
  • 13965: MouseoverStackViewer should not show face-down cards in decks, should not unnecessarily clip underneath text, and should not run off left edge of screen in an overzealous attempt to center-on-cursor
  • 13964: Module extension file extension incorrectly listed as .vext instead of .vmdx
  • 13960: MouseoverStackViewer mis-centering if “draw pieces” wasn’t selected
  • 13959: Loads from wizard should add filename to window title
  • 13958: ExecutionException when cancelling a screenshot
  • 13954: Alt-click, Shift+Ctrl-click should not change selection
  • 13944: NPE when loading second game in modules using deprecated Map.mainWindowDock

Other improvements

  • 14040: Reference Manual cleanup
  • 14039: Improved/Repaired some tables in online docs
  • 14022: Upgrade bundled Java to 15.0.2+7
  • 14019: Remove confusing Vassal Version column from MM, show based on preference
  • 14015: Added infinite loop protection to PlaceMarker
  • 14011: Search now pre-selects contents of search field when restoring/remembering the previous contents
  • 14009: Standardize remaining dialogs
  • 13977: Alt+Shift now an option for band selection of Does Not Stack pieces
  • 13974: Better window title bars (filename-first like most apps)
  • 13930: Added infinite loop protection to TurnTracker
  • 13742: Action Button trait should arm when pressed, fire on release

[size=150]Changes since 3.4.13[/size]

New features

  • 13706: Console, for entering commands to affect errorlog, properties, etc.
  • 13522: Performance improvements for Global Key Commands
  • 13504: Simpler way to display PDF files from Help menu
  • 13494: Expose version numbers and module strings to module as properties
  • 13432: MouseOverStackViewer can show > 1 piece of a deck
  • 13417: Editor’s search function can now search piece traits and component attributes
  • 13415: MouseoverStackViewer has HTML support and additional formatting options
  • 13414: “Help” button (and help information) added to Preferences dialog
  • 13368: Added preference to control drag-at-edge-of-map width
  • 13355: Threshold for centering on opponent’s move is now configurable
  • 13352: Title Bar of module should always show most recent Save/Load/Log
  • 13297: Ability to Deselect a piece with a Key Command (also remove it from its stack)
  • 13296: Flare feature for map
  • 13219: Added KeyNamer for overriding key names
  • 1868: Method for removing unused images from modules
  • 1826: Aesthetic improvements to dialogs
  • 1807: Chess clocks
  • 1804: Added Preference for turning off sounds

Bug fixes

  • 13950: Level name in Layer trait is not being saved
  • 13900: MassPieceLoader trait editor shows standard Embellishment trait editor instead of MPL-specific one
  • 13886: Reinstate removed TilingHandler ctor for VASL 6.6.1
  • 13879: NPE in DieManager ctor
  • 13876: NPE in AbstractMetaData.getVassalVersion()
  • 13868: Added description field to (nearly) all traits
  • 13853: Toolbars missing from non-dockable windows
  • 13825: “Module from older version” check is too strict
  • 13823: Map/Module Global Key Command Description not being saved
  • 13821: SendToLocation does not create Movement Trail points
  • 13811: NPE in DiceButton.setAttribute()
  • 13810: Find all parentless Dialogs and JOptionPanes and give them a parent
  • 13783: Non-rectangular trait should remember name of image that created it
  • 13782: Suffix/Prefix fields in Layer trait are not displayed correctly
  • 13781: Bad parameter in Editor.UniqueIdManager.more_than_one message
  • 13771: NPE after cutting/pasting piece palettes in Editor
  • 13755: Chess clock help file is misnamed
  • 13741: DataArchive.getImageNames() incorrectly returns an empty string if images/ has an entry in the ZIP archive
  • 13675: Piece Slots shouldn’t be allowed at very top level of Piece Palette
  • 13660: Replaced ComponentSplitter with SplitPane for better splitter positioning
  • 13659: “Remember window size” preference is no longer ignored
  • 13593: Global preferences are written when changed
  • 13509: Save As in Editor, if it fails, complains the new filename
  • 13495: Wizard should set the initial value for next save/load dialog
  • 13336: Fixed incorrect date format in SecretNotesController
  • 12946: Prevent top level required components from being deleted in Editor
  • 4779: Comparison operator >= no longer incorrectly documented as =>
  • 4324: Antialiasing RenderingHints not set properly for drawing game components

Other improvements

  • 13952: Make Flare animation disableable
  • 13947: File > Import Module moved to Tools > Convert Module
  • 13813: Simplified communication between Module Manager, Player, Editor
  • 13792: Combined save and log loading; Load Continuation moved from File to Tools menu
  • 13777: Improved workflow of zone editor
  • 13761: Refer to MacOS instead of MacOS X now that MacOS 11 is out
  • 13661: Simplified ZIP archive writing and error reporting
  • 13450: Improve look of Auto Configured editor dialogs
  • 13437: Improve visibility of Logging status - Help people to remember to start logs
  • 13363: buildFile renamed to buildFile.xml
  • 13354: Add a chatter message when starting to write a logfile
  • 13353: Use native file chooser on Linux
  • 13333: Better handling of logfile/savefile comments
  • 13326: Saving a module will default to .vmod, an extension to .vext
  • 13323: Player switching sides now reported in Chat Log
  • 13098: Move Compatibility related preferences on the General tab to a new Compatibility tab
  • 1907: Suggest default filename extensions

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

[size=150]Minimum Requirements[/size]

VASSAL 3.5 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.

[size=159]Help us test[/size]

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