VASSAL 3.5.0 Released

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

The VASSAL Team is happy to announce VASSAL 3.5.0.


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



Woop woop! Great work!

Re: 13326 Isn’t .vmdx the correct file extension for module extensions, not .vext?

Thus spake jrwatts:

Re: 13326 Isn’t .vmdx the correct file extension for module extensions,
not .vext?

No. “.vext” has been in use for module extensions since at least 3.1, so
that’s nearly a dozen years now.


Ah. It appears that change didn’t make it in to any documentation before 3.5, which explains my confusion!

Edit: FYI, only lists .vmdx on the list of valid extensions for upload, not .vext.

Hang on. I’m not sure what exactly we did now. I’m checking and will get back to you.

You’ll find .vext among the list of extensions you can upload now. Thanks for spotting that.


.vext was never intended. We used vmdx as it was simply the same as its original predecessor mdx (before we switched to the 4 letter format).

Does not mean we can’t use .vext though :slight_smile:

Thus spake Tim M:


.vext was never intended. We used vmdx as it was simply the same as its
original predecessor mdx (before we switched to the 4 letter format).

Does not mean we can’t use .vext though :slight_smile:

Ha, you’re absolutely right. I’m going to fix this for 3.5.1 so we don’t
end up with people uploading .vext files. (.vext would have been a better
choice were we to do it over, though.)


BTW, here is a YouTube video that shows (about a third of the way into it) some of the ways one can use that new connect line feature.

In this video I am showing how I am using the Connect Line to connect the units on the map to units used to show an OOB.

Also, under the OOB I am adding event counters that can depict things such as motion or shots and then use the event lines to link tghose to the unit performing the event or receiving the action (i.e. the target).

I am sure there are many otr ways one can employ this cool new feature as well!

Can we get any kind of documentation on how/why/when to use the new two-blank forms for key commands in the editor? And what the ‘return’ button is for?

There should be grayed out ‘hints’ appearing in those fields. They are a direct replacement for the old combined keycommand/keystroke field that was so confusing. The left hand field is for a NamedKeyCommand, the right hand field is for a Keystroke. You can enter one or the other. The ‘return’ button is Undo.

Not sure where to go with this or how relevant it is, but I’ve recently installed 3.5.1 as to update and Eclipse no claims it can’t find Java. I know that Vassal now includes a version of Java - is it possible for that to upset other Java-based stuff on my W10 machine?

Since 3.3.0, VASSAL on Windows has had Java packaged with it. That Java is not installed, in contrast with what you’d have if you downloaded Java separately, and it cannot affect any other Java you have anywhere else.