.█████╗ ██╔══██╗ said: I do admit, I don't think I fully get the very last bit with not needing to devout the current value, can you elaborate more on that? Sure... So, the aim of you're whole process (as it seems to me) is to have a single thing* that you click/run, and then the deferral process builds a pseudo-conditional for you: if there's a 0 in the attribute value, it runs nothing; if there's a 1, it runs the TM/CSA combo command. *single thing ... meaning, "ONE thing spawns a different thing that could be one-of-many-options". I understand that you might want to get an one of the options from many different locations at different times during the game... but I am simply referring to each of those being a discrete "go to this place" to determine what (if anything) should run. If you look at the final example, I use the logical construction of an IF statement, and the conditional checks for a given value. That means that this ability is a self-contained solution; you don't need to perform any deferrals to arrive at this ability. Instead of running whatever-starting-point attribute retrieval (like @{DTD} ) you could instead just have this ability saved as "DTD" and run it instead: %{DTD} That would mean -- at least for the problem described specifically in this thread -- that you wouldn't need all of the deferral syntax in the "current" value of @{DTD}... we're no longer referencing it. We're directly looking at the value where you will store the 1 or the 0. You had that in your "max" value of @{DTD}, so that's where I started. But, since we're no longer (in this scenario) using the deferral stuff that's in the "current" value of that attribute, you could just as easily define the "current" value to be the place where you'd store the 1 or 0. .█████╗ ██╔══██╗ said: Also, if you could, can you share an example of a calling? Where the macro is called and checked for its condition? ie the exampled "@{DTD} - @{defer|max}DTD@{DTD|max}} - <1 or 0>" where if anything calls "@{DTD}" it'd check for the condition of if DTD|Max is 0 or 1, but using abil_defer instead? If you mean how to call the version that stopped short of using the Metascript Toolbox (or which only used the batching, but not the conditional), then the calling would be exactly the same... although I did miss the fact that you would want to substitute in @{abil_defer} for where you have @{defer} in the DTD attribute: <Attrib> <Min val> <Max val> @DTD @{abil_defer|max}DTD@{DTD|max}} <1 or 0> Currently, you call @{DTD}, and the current value accessing your deferral language, as well as the "max" value to know which command to run. That wouldn't change (if the only change you made was to go to an ability for DTD1 and DTD0, instead of attributes for them). Your only change would be to the syntax of the @{abil_defer} attribute, as well as the @{DTD} attribute, both as noted above. If that's not clear, I'll mock it up with screenshots... but hopefully that does it.