It would be a good idea to post a link to your module (see also How to report problems). That will help us help you. If you cannot post your module, for whatever reason, then try to make a Minimale Working Example (MWE) that illustrates your problem.
See Reference manual - Trait Ordering and YOU (and also this post by @Brent_Easton). As Brent points out, it is absolutely crucial that module developers understand trait ordering.
One thing not mentioned in the reference manual or elsewhere, as far as I can tell, is how PrototypeTrait
s are handled. When VASSAL constructs a piece (or card, or whatever that has traits), it fully unpacks the traits. Suppose you have
- Prototype
A
BasicTrait
- empty- Trait
A1
- Trait
A2
- Prototype
B
BasicTrait
- empty- Trait
B1
- Trait
B2
- Prototype
A'
BasicTrait
- emptyPrototypeTrait
: name =A
- Trait
A'1
- Piece
a
BasicTrait
- name =a
- Trait
a1
PrototypeTrait
: name =A'
PrototypeTrait
: name =B
- Trait:
a2
(Note that all elements that carries traits must have a BasicTrait
as the last (top-most) element of the traits list).
When the piece a
is constructed, it is fully expanded (except BasicTrait
s in prototypes) and becomes
- Piece
a
(expanded)BasicTrait
name:a
- Trait
a1
- Trait
A1
(from prototypeA
via prototypeA'
) - Trait
A2
(from prototypeA
via prototypeA'
) - Trait
A'1
(from prototypeA'
) - Trait
B1
(from prototypeB
) - Trait
B2
(from prototypeB
) - Trait
a2
If @jrwatts suggestion is the answer to your problem, please remember to mark that as the solution. That will help others that may have a similar problem.
Yours,
Christian