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 PrototypeTraits are handled. When VASSAL constructs a piece (or card, or whatever that has traits), it fully unpacks the traits. Suppose you have
- Prototype
ABasicTrait- empty- Trait
A1 - Trait
A2
- Prototype
BBasicTrait- empty- Trait
B1 - Trait
B2
- Prototype
A'BasicTrait- emptyPrototypeTrait: name =A- Trait
A'1
- Piece
aBasicTrait- 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 BasicTraits in prototypes) and becomes
- Piece
a(expanded)BasicTraitname:a- Trait
a1 - Trait
A1(from prototypeAvia prototypeA') - Trait
A2(from prototypeAvia 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