VASSAL Reference Manual


A Marker trait is used to mark a game piece permanently as always having a particular Property. Unlike many other types of Properties that can be configured on and by pieces (e.g. Dynamic Properties), a Marker’s value cannot change during play. In other words, it is like a constant rather than a variable in programming.

Setting a property does not in itself give a game piece any particular behavior. The property must be recognized by some other trait or class in the module. Markers can be referenced in Global Key Command traits and Game Piece Layer traits and in many other traits within Expressions and Message Formats.

Property name:

The name of the property. This is how the property can be referenced in Expressions and Message Formats.

Property value:

The value of the property. This value will remain constant for this piece throughout play, but other pieces could have a Marker of the same name but with a different value.

Example: some pieces could have a Marker named Type whose value is Infantry while other pieces have a Marker also named Type but whose value is Cavalry. Pieces could also have an ArmorClass Marker with a numeric value. By using these Marker in expressions, e.g. { (Type == "Infantry") && (ArmorClass < 5) }>various decisions about pieces could be made by traits.

You can combine multiple name/value pairs by separating the names and values with a comma (','). To use a literal comma in a name or value, precede it with a backslash ('\').

EXAMPLE: A Marker with property name "owner" and property value "sigmund" would return "sigmund" from getProperty("owner") or $owner$. Use commas to set multiple properties with a single Marker. A Marker with name "owner,status" and value "sigmund,unknown" would also return "unknown" from getProperty("status") or $status$.