VASSAL 3.7 Release Notes

From Vassal

This article will give you a quick tour of the new features in VASSAL 3.7, as well as listing some significant player-facing bug fixes.

Major New Features

Import/Export Items in Editor


Editor items (as well as entire hierarchies of them) can be exported to an XML files. This is particularly useful when you wish to then import them into other modules. For instance you could export all the prototypes from one module and import them into another (or just a specific folder of prototypes). It's not quite cut-and-paste across modules, but it's the next best thing!

When exporting a folder or component from a module, the selected item and all of its "children" will be exported.

When importing into a module, the items imported will be added as "children" of the currently selected item.

New Trait: Border Outline

Piece with Border Outline

The new Border Outline trait will put a solid outline around the shape of a piece. Width and color of the outline is configurable. Can optionally be shown only when a designated property is true or non-zero.


New Properties: StackPos, StackSize, OldDeckName

Basic Piece Properties

New properties are available to be referenced in pieces: StackPos exposes piece's current position in its stack, and StackSize exposes the total number of pieces in its stack. OldDeckName contains the name of any deck the piece was just moved from.

SumMat and CountMat

Beanshell expressions can now use SumMat to sum the value of a property across a Mat and all of its Cargo. CountMat can be used to count (again among a Mat and all of its Cargo), the number of pieces that have a non-blank value for a particular property. Both SumMat and CountMat can be accessed either from the Mat or from a Cargo piece.

SumMat and CountMat expressions

Area of Effect Improvements

Area of Effect

The Area of Effect trait has received some attention, with the addition of an active property field, local/global visibility options, and separate on/off key commands.

Symbolic Dice Button Improvements

Symbolic Dice Buttons now feature full "action button" support: they can fire a key command or play a sound, as well as generating a report.

New Symbolic Dice Options

Eliminating Spurious Auto-Reports

Map's Autoreport Configuration

Auto-reporting on a Map can be configured to ignore same-location movements (i.e., if a piece's LocationName and Mat stayed the same, to not generate a movement report).The default behavior remains the same.

Mark When Moved improvements

Map's Autoreport Configuration

Similarly the Mark-When-Moved trait can be configured to only flag when a piece changes LocationName or Mat. The default behavior remains the same. ALSO, the Mark When Moved trait now includes key commands to directly set the Moved state to true or false, as opposed to only toggling.

Hiding Blank Prompts

Global Option to hide blank prompts

When a property is configured to be set using the "Prompt" option, one longstanding issue has been when one of the items in the list of possible prompts is blank. In 3.7, a new Global Option has been added to allow the display of blank prompts to be suppressed.

A Dynamic Property configured with potentially blank prompts generated by expressions

Suppress Sounds Caused by Global Key Commands

GKC options

Global Key Commands now offer the option to suppress sounds being generated by the key commands they send.

Non-Rectangular SVG Support

SVG in Non-Rectangular

Non-Rectangular traits based on SVG files will use the path (rather than merely a bitmask), allowing more accurate and efficient outlines to be drawn in many cases. In particular, Non-Rectangular traits with a relatively clean/simple "path" around them will scale much more cleanly than a regular bitmap image.

Mouse-over Stack Viewers for Terrain

Rollover w/ automatic map terrain

Mouse-over Stack Viewers can now be configured to show the underlying terrain from the map, in addition to any pieces there. This feature is similar to one long present in VASL through custom code, and is now available to all modules.

Rollover configuration for Terrain

Mouse-over Stack Viewers: Configurable Outlines

Rollover w/ extra border options

Mouse-over Stack Viewers now feature additional configuration options relating to the thickness and color of outlines.

Rollover configuration for Border Thickness

Inventory Window Count

The count_ prefix is now allowed for counting (as opposed to summing) properties. It can be used in place of the sum_ prefix and will count the number of pieces with a non-blank value for the property in question, instead of summing the value of the property.

DEL or Backspace Key Mapping

The DEL or Backspace key can now be mapped in key commands. Obviously we recommend it be used with care, but it can be an appropriate key for e.g. deleting markers.

Action Buttons now allowed on Maps, Hands, Private Windows

Action Buttons are now available on all windows where other similar buttons (e.g., GKC, Multi-Action, etc) are available.

3.7.0 Full Release Notes (changes since 3.6.14)

New features

  • 12067: Import/export of groups of items from Editor as XML files (e.g., to transfer between modules)
  • 12060: Editor allows Deck files to be imported into a deck to become permanent part of module
  • 12035: Mouse-over Stack Viewers allow configuring thickness of outer border, and more padding/stretching options
  • 12032: Mark-When-Moved trait can be configured to only flag when piece changes LocationName or Mat. Similarly Map auto-report can be configured to ignore same-location movements.
  • 12003: OldDeckName now supported as a piece property
  • 12001: count_ supported for counting properties in Inventory windows
  • 11969: New Border Outline trait
  • 11964: Mouse-over Stack Viewers can display an image of underlying terrain
  • 11937: SumMat and CountMat functions for Beanshell expression
  • 11918: Startup GKC that fires when player joins or changes sides
  • 11917: Create Non-Rectangular mask directly from SVG outline
  • 11530: Add new StackPos and StackSize properties to Basic Piece
  • 11523: Area of Effect improvements: Active property, local/global visibility, separate on/off Key Commands
  • 11178: Global Option added to omit empty lines in property setting prompts
  • 11100: Allow begin-logfile and end-logfile to have configurable hotkeys in Global Options
  • 10822: Sounds can be suppressed during GKC processing
  • 10821: Symbolic Dice buttons how have full Action Button capabilities (sounds, hotkeys, etc.)
  • 10820: Make Action Button available on all windows where other similar buttons (e.g., GKC, Multi-Action, etc) are available
  • 4454: Save chat text to file

Bug fixes

  • 11913: Numeric global properties with increments other than 1 and -1 now wrap around correctly

Other improvements

  • 12084: Help menu shows module-specific help items before generic Vassal ones
  • 12080: Zooming in and out no longer loses track of player’s preferred center point for map
  • 12077: ObscuredToOthers can be counted on to be ‘false’ for pieces that don’t even have a Mask property
  • 11919: Allow DEL/BACKSPACE to be mapped as a hotkey
  • 11506: Predefined Setup “menus” with blank names will not be shown