It is the Star Wars: Armada module.
The module is fairly large and complex.
vassalengine.org/wiki/Module … rs:_Armada
This specific build:
vassalengine.org/mediawiki/i … .13.0.vmod
I can’t say the last version it worked. I was on 3.3.17 (IIRC) until very recently, then did some rapid updates. I’m now on 3.4.5.
The functionality is reused many places in the module. I suggest searching for “oldToken”
This is the code for ship defense tokens prototype. The actual layers are stored in a number of separate prototypes, based on various ship sizes (Small ship defense tokens, medium ship… etc.).
<VASSAL.build.module.PrototypeDefinition name="Defense token definitions">+/null/report;57\,715;$Name$ discarded $oldToken 4_Name$ token;;;Discard 4 report;56\,715;$Name$ discarded $oldToken 3_Name$ token;;;Discard 3\ report;55\,715;$Name$ discarded $oldToken 2_Name$ token;;;Discard 2\\ report;54\,715;$Name$ discarded $oldToken 1_Name$ token;;;Discard 1\\\ report;57\,195;$Name$ refreshed $oldToken 4_Name$ token;;;Refresh 4\\\\ report;56\,195;$Name$ refreshed $oldToken 3_Name$ token;;;Refresh 3\\\\\ report;55\,195;$Name$ refreshed $oldToken 2_Name$ token;;;Refresh 2\\\\\\ report;54\,195;$Name$ refreshed $oldToken 1_Name$ token;;;Refresh 1\\\\\\\ report;57\,130;$Name$ exhausted $oldToken 4_Name$ token;;;Exhaust 4\\\\\\\\ report;56\,130;$Name$ exhausted $oldToken 3_Name$ token;;;Exhaust 3\\\\\\\\\ report;55\,130;$Name$ exhausted $oldToken 2_Name$ token;;;Exhaust 2\\\\\\\\\\ report;54\,130;$Name$ exhausted $oldToken 1_Name$ token;;;Exhaust 1\\\\\\\\\\\ hideCmd;Block discard 4;Disable;{GetProperty("Token 4")==13};57\,715,57\,195,57\,130\\\\\\\\\\\\ hideCmd;Block discard 3;Disable;{GetProperty("Token 3")==13};56\,715,56\,195,56\,130\\\\\\\\\\\\\ hideCmd;Block discard 2;Disable;{GetProperty("Token 2")==13};55\,715,55\,195,55\,130\\\\\\\\\\\\\\ hideCmd;Block discard 1;Disable;{GetProperty("Token 1")==13};54\,715,54\,195,54\,130\\\\\\\\\\\\\\\ hideCmd;Block exhaust 4;Disable;{GetProperty("Token 3")==2||GetProperty("Token 3")==4||GetProperty("Token 3")==6||GetProperty("Token 3")==8||GetProperty("Token 3")==10||GetProperty("Token 4")==12};56\,130\\\\\\\\\\\\\\\\ hideCmd;Block exhaust 3;Disable;{GetProperty("Token 3")==2||GetProperty("Token 3")==4||GetProperty("Token 3")==6||GetProperty("Token 3")==8||GetProperty("Token 3")==10||GetProperty("Token 3")==12};56\,130\\\\\\\\\\\\\\\\\ hideCmd;Block exhaust 2;Disable;{GetProperty("Token 2")==2||GetProperty("Token 2")==4||GetProperty("Token 2")==6||GetProperty("Token 2")==8||GetProperty("Token 2")==10||GetProperty("Token 2")==12};55\,130\\\\\\\\\\\\\\\\\\ hideCmd;Block exhaust 1;Disable;{GetProperty("Token 1")==2||GetProperty("Token 1")==4||GetProperty("Token 1")==6||GetProperty("Token 1")==8||GetProperty("Token 1")==10||GetProperty("Token 1")==12};54\,130\\\\\\\\\\\\\\\\\\\ hideCmd;Block refresh 4;Disable;{GetProperty("Token 4")==1||GetProperty("Token 4")==3||GetProperty("Token 4")==5||GetProperty("Token 4")==7||GetProperty("Token 4")==9||GetProperty("Token 4")==11};57\,195\\\\\\\\\\\\\\\\\\\\ hideCmd;Block refresh 3;Disable;{GetProperty("Token 3")==1||GetProperty("Token 3")==3||GetProperty("Token 3")==5||GetProperty("Token 3")==7||GetProperty("Token 3")==9||GetProperty("Token 3")==11};56\,195\\\\\\\\\\\\\\\\\\\\\ hideCmd;Block refresh 2;Disable;{GetProperty("Token 2")==1||GetProperty("Token 2")==3||GetProperty("Token 2")==5||GetProperty("Token 2")==7||GetProperty("Token 2")==9||GetProperty("Token 2")==11};55\,195\\\\\\\\\\\\\\\\\\\\\\ hideCmd;Block refresh 1;Disable;{GetProperty("Token 1")==1||GetProperty("Token 1")==3||GetProperty("Token 1")==5||GetProperty("Token 1")==7||GetProperty("Token 1")==9||GetProperty("Token 1")==11};54\,195\\\\\\\\\\\\\\\\\\\\\\\ macro;Refresh token 4;;82,715;{GetProperty("Token 4")==2||GetProperty("Token 4")==4||GetProperty("Token 4")==6||GetProperty("Token 4")==8||GetProperty("Token 4")==10||GetProperty("Token 4")==12};;57\,195;false;;;counted;;;;false;;1;1\\\\\\\\\\\\\\\\\\\\\\\\ macro;Refresh token 3;;82,715;{GetProperty("Token 3")==2||GetProperty("Token 3")==4||GetProperty("Token 3")==6||GetProperty("Token 3")==8||GetProperty("Token 3")==10||GetProperty("Token 3")==12};;56\,195;false;;;counted;;;;false;;1;1\\\\\\\\\\\\\\\\\\\\\\\\\ macro;Refresh token 2;;82,715;{GetProperty("Token 2")==2||GetProperty("Token 2")==4||GetProperty("Token 2")==6||GetProperty("Token 2")==8||GetProperty("Token 2")==10||GetProperty("Token 2")==12};;55\,195;false;;;counted;;;;false;;1;1\\\\\\\\\\\\\\\\\\\\\\\\\\ macro;Refresh token 1;;82,715;{GetProperty("Token 1")==2||GetProperty("Token 1")==4||GetProperty("Token 1")==6||GetProperty("Token 1")==8||GetProperty("Token 1")==10||GetProperty("Token 1")==12};;54\,195;false;;;counted;;;;false;;1;1\\\\\\\\\\\\\\\\\\\\\\\\\\\ mark;token\\\\\\\\\\\\\\\\\\\\\\\\\\\\ submenu;Defense Token 1;Set Token 1,Exhaust token 1,Discard token 1,Refresh token 1\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ submenu;Defense Token 2;Set Token 2,Exhaust token 2,Discard token 2,Refresh token 2\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ submenu;Defense Token 3;Set Token 3,Exhaust token 3,Discard token 3,Refresh token 3\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ submenu;Defense Token 4;Set Token 4,Exhaust token 4,Discard token 4,Refresh token 4\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ submenu;Set Token 1;Set token 1 to Brace,Set token 1 to Contain,Set token 1 to Evade,Set token 1 to Redirect,Set token 1 to Salvo,Set token 1 to Scatter\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ submenu;Set Token 2;Set token 2 to Brace,Set token 2 to Contain,Set token 2 to Evade,Set token 2 to Redirect,Set token 2 to Salvo,Set token 2 to Scatter\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ submenu;Set Token 3;Set token 3 to Brace,Set token 3 to Contain,Set token 3 to Evade,Set token 3 to Redirect,Set token 3 to Salvo,Set token 3 to Scatter\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ submenu;Set Token 4;Set token 4 to Brace,Set token 4 to Contain,Set token 4 to Evade,Set token 4 to Redirect,Set token 4 to Salvo,Set token 4 to Scatter\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ PROP;Token 4;true,1,13,false;Set token 4 to Brace:63743\,0\,brc4:P\,1,Set token 4 to Contain:63743\,0\,cnt4:P\,3,Set token 4 to Evade:63743\,0\,evd4:P\,5,Set token 4 to Redirect:63743\,0\,red4:P\,7,Set token 4 to Scatter:63743\,0\,sct4:P\,9,Discard token 4:57\,715:I\,12,Exhaust token 4:57\,130:I\,1,Refresh token 4:57\,195:I\,-1,Set token 4 to Salvo:63743\,0\,sal4:P\,11\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ PROP;Token 3;true,1,13,false;Set token 3 to Brace:63743\,0\,brc3:P\,1,Set token 3 to Contain:63743\,0\,cnt3:P\,3,Set token 3 to Evade:63743\,0\,evd3:P\,5,Set token 3 to Redirect:63743\,0\,red3:P\,7,Set token 3 to Scatter:63743\,0\,sct3:P\,9,Discard token 3:56\,715:I\,12,Exhaust token 3:56\,130:I\,1,Refresh token 3:56\,195:I\,-1,Set token 3 to Salvo:63743\,0\,sal3:P\,11\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ PROP;Token 2;true,1,13,false;Set token 2 to Brace:63743\,0\,brc2:P\,1,Set token 2 to Contain:63743\,0\,cnt2:P\,3,Set token 2 to Evade:63743\,0\,evd2:P\,5,Set token 2 to Redirect:63743\,0\,red2:P\,7,Set token 2 to Scatter:63743\,0\,sct2:P\,9,Discard token 2:55\,715:I\,12,Exhaust token 2:55\,130:I\,1,Refresh token 2:55\,195:I\,-1,Set token 2 to Salvo:63743\,0\,sal2:P\,11\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ PROP;Token 1;true,1,13,false;Set token 1 to Brace:63743\,0\,brc1:P\,1,Set token 1 to Contain:63743\,0\,cnt1:P\,3,Set token 1 to Evade:63743\,0\,evd1:P\,5,Set token 1 to Redirect:63743\,0\,red1:P\,7,Set token 1 to Scatter:63743\,0\,sct1:P\,9,Discard token 1:54\,715:I\,12,Exhaust token 1:54\,130:I\,1,Refresh token 1:54\,195:I\,-1,Set token 1 to Salvo:63743\,0\,sal1:P\,11\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ piece;;;;/-1 -1\ -1\\ -1\\\ -1\\\\ -1\\\\\ -1\\\\\\ -1\\\\\\\ -1\\\\\\\\ -1\\\\\\\\\ -1\\\\\\\\\\ -1\\\\\\\\\\\ \\\\\\\\\\\\ \\\\\\\\\\\\\ \\\\\\\\\\\\\\ \\\\\\\\\\\\\\\ \\\\\\\\\\\\\\\\ \\\\\\\\\\\\\\\\\ \\\\\\\\\\\\\\\\\\ \\\\\\\\\\\\\\\\\\\ \\\\\\\\\\\\\\\\\\\\ \\\\\\\\\\\\\\\\\\\\\ \\\\\\\\\\\\\\\\\\\\\\ \\\\\\\\\\\\\\\\\\\\\\\ \\\\\\\\\\\\\\\\\\\\\\\\ \\\\\\\\\\\\\\\\\\\\\\\\\ \\\\\\\\\\\\\\\\\\\\\\\\\\ \\\\\\\\\\\\\\\\\\\\\\\\\\\ defense\\\\\\\\\\\\\\\\\\\\\\\\\\\\ \\\\\\\\\\\\\\\\\\\\\\\\\\\\\ \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ 13\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ 13\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ 13\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ 13\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ null;334;63;