VASSAL 3.2.8 Released


The VASSAL Team is happy to announce the release of VASSAL 3.2.8, which which fixes several problems found in earlier versions.

IMPORTANT

  • If you save a module, game, or log in VASSAL 3.2, you will NOT be able to open it afterwards with VASSAL 3.1. We recommend keeping a backup copy of any pre-3.2 files you plan to modify in 3.2 until you've verified that everything works to your satisfaction.
  • If you found it necessary to set a very large maximum heap (> 512MB) for a module with VASSAL 3.1, it should now be possible with VASSAL 3.2 to set a much lower maximum heap and achieve similar or better display performance. 512MB should now be adequate for most modules.
  • VASL 5.9.3 and earlier are not compatible with VASSAL 3.2. Work to update VASL for 3.2 is nearly finished.
  • If some images display with incorrect colors, clear your tile cache (under Tools > Clear Tile Cache in the Module Manager) and reload the module. If the images still display with incorrect colors, PLEASE contact us indicating with which module you're seeing a problem.
  • If you are using MacOS X 10.8.3 or later, you may see the message "VASSAL-3.2.8.app is damaged and can’t be opened. You should move it to the Trash." The problem is NOT that your download was corrupt, but rather that MacOS is preventing you from running VASSAL. To start VASSAL, control-click or right-click the app bundle's icon and select Open from the menu. You'll see a dialog asking whether you want to open VASSAL. Select "Open". Thereafter, you should be able to start VASSAL normally.

Download

Compatibility Notes

  • VASSAL 3.2 is backwards compatible. VASSAL 3.1 is NOT forwards compatible. This means that modules, logs, and saves from VASSAL 3.1 should work in 3.2, but there is no guarantee that modules, logs, and saves from 3.2 will work in 3.1. Therefore, if you write a module, log, or save file in 3.2 DO NOT expect to be able to load it in 3.1.
  • Current versions of VASL and VSQL are not compatible with VASSAL 3.2. Work to update VASL for 3.2 is nearly finished.

New Features in 3.2

  • Levels within a Layer can be moved up or down the level list using buttons. [RFE 1919]
  • Mass Piece Loader activated by 'Add Multiple Pieces' and 'Add Multiple Cards' options in right-click menu in Editor. Specify a folder of images, specify a counter template and Vassal will automatically load the images and generate units. [RFE 1927]
  • Description field added to Toolbar Menu and Multi-Action button components. [RFE 1885]
  • Specify Keystrokes by name - Key Commands can be entered as single Key Strokes as in earlier versions of Vassal, or can be given a 2 or more character names. Named Key Strokes are essentially 'invisible' to users. Vassal guarantees that a unique real keyStroke will be allocated to each uniquely named Keystroke. [RFE 1928]
  • Decks can specify by Property Expression which pieces are allowed to be dropped onto them. Pieces which may not be added are returned to where the drag started. [RFE 1935]
  • Decks can now specify a Hotkey for the Reverse and FaceUp/Down command and can customize the Reverse and Re-shuffle menu command names. [RFE 1938]
  • Counters now support the DeckPosition property. If a piece is not in a Deck, 0 is returned. If a piece is in a Deck, then the position of the piece relative to the top of the Deck is returned. The top piece returns 1, the next piece down returns 2 etc. [RFE 1937]
  • Support for MP3 sound files. [RFE 1934]
  • Fix Display/Color handling for Grids and Numberings. Allow Numbering to be visible when grid not visible in Zones. [RFE 1917]
  • Implementation of BeanShell allowing arbitrarily complex Java expressions to be used in Property Match Expressions, In-line Java expressions and new Calculated Property trait. [RFE 1801]
  • Display the Log File Comments in the Chat Window when a log file is opened or continued. [RFE 1939]
  • Global Key Commands created on a Map now have an option to affect counters on all Maps, not just the Map they are created on. [RFE 1902]
  • Traits that move a counter (Send To Location, Return to Deck, Moved Fixed Distance, Pivot) now update the same location Oldxxxxxx properties that Drag and Drop movement does. [RFE 1792]
  • Added repeat (loop) option to Trigger Action and Multi-action button. [RFE 1876]
  • Ensure all commands generated by a single user action are undone by a single click of the undo action. [RFE 2816016]
  • Option to allow non-owning players to move Restricted Access pieces. [RFE 1789]
  • Add 'Snap to Grid?' option to HexGrid and SquareGrid, defaulting to Yes. Allows Grid Snapping to be turned off for the whole grid. [RFE 2842811]
  • Streamlined room creation: automatic synchronization on room entry [RFE 1784]
  • New scenario updater [RFE 1899]
  • Allow Dynamic Property Select Value list to be dynamic [RFE 1926]
  • All scaling is now high-quality. Low-quality scaling (in hardware) caused too many graphics glitches on Windows.
  • The Invisible trait now supports adjustable transparency.
  • Map images are tiled the first time modules are loaded, to create an image cache. This should dramatically reduce the amount of memory needed to run modules.
  • Improved display of properties in the Editor [RFE 4323]:

    • Display all available properties from all components structured in the same way as the components of the module are built instead of all the global properties being dumped in one menu.

    • Available Global properties now appear without having to start a game. Previously, globals like Deck and Zone properties where not available unless you had started a game.

    • Property and component names are sorted, except for the Piece Property menu where the traits are displayed in the same order they exist in the counter.

    • If a menu has too many options to fit on the screen, it is now scrollable, instead of stretching off the screen and leaving some properties inaccessible.


  • Improvements to Layer trait [RFE 4717]:

    • Follow Property name may be a BeanShell expression.

    • Improved layout for Layer dialog in Editor.



  • Notify user when image loading fails [RFE 1887]



The following bugs in 3.2.7 are fixed in 3.2.8:


  • 10342: IOException in ZipArchive.writeToDisk() while writing Preferences file

  • 10317: 3-component JPEGs without JFIF markers where color components are differently subsampled are incorrectly color-corrected by fix for Bug 9882

  • 10298: Exception: TurnTracker.level_error in TurnComponent.getTurnLevel()

  • 10279: Report State failed to perform inner commands before its own command

  • 10266: ConcurrentModificationException at Prefs.save()

  • 3294: IOException writing preferences at startup on Mac OS

  • 2727: NPE in ReadOnlyPrefs ctor

  • 2587: Manager and Player preferences get out of step

  • Reverted bad fix for 2714: NPE in StackMetrics.merge()




The following bugs in 3.2.6 are fixed in 3.2.7:


  • 10261: Off-EDT UIManager.setLookAndFeel() causes lag on Apple Java

  • 10256: StackOverflowError when Preferences can't be read

  • 10249: Deck loses position over loading multiple player logs

  • 10229: ArrayIndexOutOfBoundsException in RandomTextButton.DR

  • 10217: Lose New Room selection field when changing from P2P to VASSAL server

  • 10211: $oldLocation$ for Report Format is not set on Send To Location on same map

  • 10179: Module manager is overwriting P2P server preferences

  • 10135: ClassCastException: GlobalProperties cannot be cast to Zone

  • 10070: ClassCastException in DirectPeerPool.WTextArea()

  • 9833: UnsatisfiedLinkError because JNA DLL cannot be read

  • 9650: NPE in NodePlayer.toProperties()

  • 3934: Windows installer launches VASSAL with admin privileges

  • 3548: NumberFormatException in RandomTextButton.DR

  • 2713: ClassCastException in P2PClient.playerToString()

  • 2630: Editor crashes on close attempt when PieceDefiner is open

  • 2545: NPE in TurnTracker$SetDialog.addChildControls()




The following bugs in 3.2.5 are fixed in 3.2.6:


  • 10184: Test Mode Counter Refresh created duplicate counters

  • 10174: NPE in DirectPeerPool.Entry.edit()

  • 10170: Incorrect LAN address reported under Linux

  • 10169: Non-latin characters are lost on P2P connections between different OS's

  • 10167: Improve efficiency of SELECTED handling

  • 10165: Rotation is not applied to Text Boxes in Game Piece Layouts

  • 10155: NPE in FormattedStringExpression.evaluate()

  • 10128: Slow Follow Property handling in Embellishment

  • 10125: Expression Builder should return a Property Name, not expression in the Set Global Property trait

  • 10072: NPE in SynchCommand.executeCommand()

  • 2714: NPE in StackMetrics.merge()




For changes prior to 3.2.6, see the change log.



Please report all bugs in 3.2.8 even if they are bugs which you've already reported against other versions. We take your bug reports seriously—they're the reason we've been able to fix so many bugs.

Minimum Requirements

VASSAL 3.2 requires the Java Runtime Envrionment to run.

Linux: Java 6 or later is required for using VASSAL on Linux.

MacOS X: The recommended minimum Java version for using VASSAL on MacOS X is 1.5.0_08 (a.k.a. Java 5 Update 8) for Macs where Java 6 is unavailable, and Java 6 or later for Macs where Java 6 is available.

Windows: The recommended minimum Java version for Windows is 1.6.0_45 (a.k.a. Java 6 Update 45). Windows users installing VASSAL with the Windows installer will be prompted to update Java if what they have is older than 1.6.0_45. After upgrading Java on Windows, you must restart your computer in order for Java programs to work properly.

If you've installed Java 7 on Windows and thereafter VASSAL fails to launch: The Java 7 installer does not uninstall Java 6, and having both installed simultaneously prevents both from working properly. Therefore, check whether you also still have Java 6 installed. If so, removing Java 6 and rebooting will most likely solve your problem.

Help us test

Should you find any problems/oddities/bugs, please tell us so that we can fix them for a future release of VASSAL. Report bugs here in the Technical Support & Bugs category at the VASSAL forums or by email.

Cheers,
The VASSAL Team