Ben L. said: Kurt J. said: There are a couple of things going on here: First, the two conditional lines with PC| and the two with NPC| need to use the Same Name tag (PC*1, PC*2, NPC*1, and NPC*2). Duplicating tag names will cause lots of havoc with the way PowerCards evaluates the card. Second, a conditional only determines if the line is displayed or not. The line is still evaluated even if the conditional will end up hiding the line. This means that the last line that is evaluated will set the Roll ID if more than one line set it. Combine this with the internal confusion that will result from duplicated tag names and things will get weird fast. Finally, the whole card is evaluated before the output is created, so you could actually display the value of [^Chk] as the first line of the card, even though it isn't set until later down in the card (and then it is set 4 times - again not accounting for the duplicate tag confusion.) What you could do is make all of the possible rolls and store them in different RollIDs and then use conditionals to only output the relevant roll (ie, roll $ChkPCStr, $ChkPCDex, $ChkNPCStr, and $ChkNPCDex and then use conditionals to decide which one to show.) That will make the conditionals a bit more complicated, but it should allow you to do what you want to do. I changed the PC and NPC lines to be unique now, but it had no effect on the result as I would expect. As far as the rest... I can't find the reference in the forums, but it was my understanding that if a conditional evaluates false then the entire line is skipped. Meaning that any rolls or output for that line are not processed. However, that doesn't even matter since the last conditional line for setting my $Chk variable is the one that evaluates true. No matter how many times $Chk is set previously, that last line will be the one setting it last and that's the value that will be used. Also, it is obvious that the value set the previous time (in the PC line above) doesn't match the later value either. You can see from my example that this is the case, yet the $Chk variable is still showing a different value than when it is set on either line. This is a random, magical value that literally comes out of nowhere! I will give the more complicated version you suggest a go and see what happens. Ok, I got it about as strung out as I can get. There are places where you just have to set a variable twice, but that part was never the problem. The new problem is trying to use the placeholder variables in a roll to get the correct calculation.In every instance where I try to use a previously set variable it just ignores it other than displaying it in the chat. In other words, it doesn't really act like a true variable. Here's the new code: !power {{ --name|Grapple --format|contest --leftsub|Ability Check --rightsub|Contest --target_list|@{target|token_id} --charid|@{selected|character_id} --emote|@{selected|character_name} vs @{target|token_name} --Attack|[[ [$Atk] ?{Attack Type|Standard, 1d20|Advantage, 2d20kh1|Disadvantage, 2d20kl1} + [[@{selected|athletics}]] [Tot Athletics Bonuses] ]] Athletics Check --?? [[@{target|athletics}]] > [[@{target|acrobatics}]] ?? PC1|[[ [$ChkPCAth] 0d0 + [[@{target|athletics}]] ]] Athletics (ChkPCAth [^ChkPCAth] mod) --?? [[@{target|acrobatics}]] >= [[@{target|athletics}]] ?? PC2|[[ [$ChkPCAcr] 0d0 + [[@{target|acrobatics}]] ]] Acrobatics (ChkPCAcr [^ChkPCAcr] mod) --?? [[@{target|npc_strength_save_mod}]] > [[@{target|npc_dexterity_save_mod}]] ?? NPC1|[[ [$ChkNPCStr] 0d0 + [[@{target|npc_strength_save_mod}]] ]] Strength (ChkNPCStr [^ChkNPCStr] mod) --?? [[@{target|npc_dexterity_save_mod}]] >= [[@{target|npc_strength_save_mod}]] ?? NPC2|[[ [$ChkNPCDex] 0d0 + [[@{target|npc_dexterity_save_mod}]] ]] Dexterity (ChkNPCDex [^ChkNPCDex] mod) --SetVar1|[[ [$ChkPC] 0d0 + $ChkPCAth ]] Using PC Athletics (ChkPCAth [^ChkPCAth]) (ChkPC [^ChkPC]) --?? $ChkPCAcr > $ChkPCAth ?? SetVar2|[[ [$ChkPC] 0d0 + $ChkPCAcr ]] Using PC Acrobatics (ChkPCAcr [^ChkPCAcr]) (ChkPC [^ChkPC]) --SetVar3|[[ [$ChkNPC] 0d0 + $ChkNPCStr ]] Using NPC Strength mod (ChkNPCStr [^ChkNPCStr]) (ChkNPC [^ChkNPC]) --?? $ChkNPCDex > $ChkNPCStr ?? SetVar4|[[ [$ChkNPC] 0d0 + $ChkNPCDex ]] Using NPC Dexterity (ChkNPCDex [^ChkNPCDex]) (ChkNPC [^ChkNPC]) --SetVar5|[[ [$Chk] 1d20 + $ChkPC ]] Set result to PC roll value (Chk [^Chk]) (ChkPC[^ChkPC]) --?? [[@{target|is_npc}]] == 1 ?? SetVar6|[[ [$Chk] 1d20 + $ChkNPC ]] Set result to NPC roll value (Chk [^Chk]) (ChkNPC [^ChkNPC]) --Result|@{selected|character_name} (Atk [^Atk]) vs @{target|token_name} (Chk [^Chk]) --?? $Atk >= $Chk ?? Success|@{target|token_name} is now grappled! --?? $Atk < $Chk ?? Fail|@{target|token_name} was able to evade your grasp! }} I have tried using ^VarName, [^VarName], ($VarName) and [[$VarName]], the last of which broke the code. I have also tried using the .base and .total suffixes hoping that would force an evaluation. No dice. As you can see from the screenshot below, Those variables hold the information, but when you try to include them in setting another variable they seem to equal 0 or nothing at all. (Screenshot shows results before the last couple of lines the the code above were added BTW.) So, in trying to circumvent the previous problem I have discovered another. I can't believe I'm the first one to try and use these variables in this way, so where is the solution to this? I'm completely stumped!