It could if that's the functionality desired. It makes sense that it would be but I didn't add out of the gate on the thought that it might not be desired to automatically move a token to the object layer. Let's say you made a change to the bar3 value for a hidden token, I didn't want to automatically assume it should move from gmlayer to token layer. If that is the desired effect to automatically move any token to the objects layer, then this would work: !script {{
--/|CONFIGURATION VARIABLES
--&BarNumberToMonitor|3
--&FlightMarker|red
--&BurrowMarker|blue
--/|TRIGGER_REPLACEMENTS
--#hidecard|1
--?[&GraphicOldbar[&BarNumberToMonitor]_value] -eq [&GraphicNewbar[&BarNumberToMonitor]_value]|Done
--?[&GraphicNewbar[&BarNumberToMonitor]_value] -gt 0|Positive
--?[&GraphicNewbar[&BarNumberToMonitor]_value] -lt 0|Negative
--?[&GraphicNewbar[&BarNumberToMonitor]_value] -eq 0|Zero
--:Done|
--X|
--:Positive|
-->LibSN_REMOVE_STATUS_MARKER|[&GraphicNew_id];[&BurrowMarker]
-->LibSN_ADD_STATUS_MARKER|[&GraphicNew_id];[&FlightMarker]
--!graphic:[&GraphicNew_id]|layer:objects
--^Done|
--:Negative|
-->LibSN_REMOVE_STATUS_MARKER|[&GraphicNew_id];[&FlightMarker]
-->LibSN_ADD_STATUS_MARKER|[&GraphicNew_id];[&BurrowMarker]
--!graphic:[&GraphicNew_id]|layer:gmlayer
--^Done|
--:Zero|
-->LibSN_REMOVE_STATUS_MARKER|[&GraphicNew_id];[&FlightMarker]
-->LibSN_REMOVE_STATUS_MARKER|[&GraphicNew_id];[&BurrowMarker]
--!graphic:[&GraphicNew_id]|layer:objects
--^Done|
--/|Below all taken from Kurt J's system neutral library. Copied here to not need to import the library for this example
--/|<a href="https://raw.githubusercontent.com/kjaegers/ScriptCards/main/ScriptCards_Examples/libraries/systemneutrallib.scard" rel="nofollow">https://raw.githubusercontent.com/kjaegers/ScriptCards/main/ScriptCards_Examples/libraries/systemneutrallib.scard</a>
--:LibSN_ADD_STATUS_MARKER|Token_ID;Status Marker;Count
-->LibSN_REMOVE_STATUS_MARKER|[%1%];[%2%]
--~|array;statusmarkers;Conditions;[%1%]
--&toAdd|[%2%]
--?"[%2%]" -ne "dead" -and "X[%3%]" -ne "X" -and "X[%3%]" -ne "X0"|=countToAdd;[%3%] {MIN:0} {MAX:9}
--?"[%2%]" -ne "dead" -and "X[%3%]" -ne "X" -and "X[%3%]" -ne "X0"|&toAdd;[%2%]@[$countToAdd.Raw]
--~|array;add;Conditions;[&toAdd]
--~newConditions|array;stringify;Conditions
--#parameterdelimiter|$
--~newConditions|string$replaceall$;$,$[&newConditions]
--#parameterdelimiter|;
--?"[&newConditions(0,1)]" -eq ","|&newConditions;[&newConditions(1)]
--!t:[%1%]|statusmarkers:[&newConditions]
--<|
--:LibSN_REMOVE_STATUS_MARKER|Token_ID;Status Marker
-->LibSN_CHECK_STATUS_MARKER|[%1%];[%2%];MarkerExists;MarkerCounter
--?[&MarkerExists] -eq 0|<
--~|array;statusmarkers;Conditions;[%1%]
--?[&MarkerCounter] -eq 0|&toCheckFor;[%2%]|&toCheckFor;[%2%]@[&MarkerCounter]
--~hasCondition|array;indexof;Conditions;[&toCheckFor]
--?[&hasCondition] -eq "ArrayError"|<
--~|array;remove;Conditions;[&toCheckFor]
--~newConditions|array;stringify;Conditions
--#parameterdelimiter|$
--~newConditions|string$replaceall$;$,$[&newConditions]
--#parameterdelimiter|;
--!t:[%1%]|statusmarkers:[&newConditions]
--<|
--:LibSN_CHECK_STATUS_MARKER|TokenID;MarkerToFind;Exists;Counter
--~|array;statusmarkers;Conditions;[%1%]
--&FoundMarker|-1
--%_libloop|0;[@Conditions(maxindex)]
--&Temp|[@Conditions([&_libloop])]
--?[&Temp(indexof,[%2%])] -eq 0|&FoundMarker;[&_libloop]
--%|
--?[&FoundMarker] -ne -1|LibSN_FOUND_STATUS_MARKER
--&[%3%]|0 --&[%4%]|0 --<|
--:LibSN_FOUND_STATUS_MARKER|
--&[%3%]|1
--&[%4%]|0
--&ThisMarker|[@Conditions([&FoundMarker])]
--?[&ThisMarker(contains,@)] -eq 0|<
--~[%4%]|string;after;@;[@Conditions([&FoundMarker])]
--<|
}} So with the above there is a check to see if the bar3 value changed, if it didn't change, then exit the trigger. If bar3 changed, then it will move a token to the objects layer if it is greater than or equal to 0. One thing I'll mention as well, is that typically triggers do not fire when another mod makes the change. ScriptCards does allow you to opt-in to changes made by TokenMod. You can set an attribute on the ScriptCards_Triggers character called 'listen_to_tokenmod' and make its current value 1 to enable this behavior. You should be able to enable this safely because the above code uses only ScriptCards modifications so any TokenMod modifications won't result in a loop.