So... I think there are a handful of things that you'll need to understand. They're all going wrong in their own way, which is making the overall effect more confusing to attribute to a given problem, but the good news is that what you're wanting to do is easily achievable. Let's just clear up some of what you have going wrong. Problem the FIrst First, for a single command to span multiple lines, you have to use the "template braces" trick. You see how a template part is enclosed in double braces (the "name" part in the following example): &{template:default} {{name=Example}} Template parts *can* span lines, so we use them with a script command if 1) the script is built to recognize it, and 2) we want to organize our input across multiple lines. You're basically tricking the Roll20 parser into letting you use multiple lines for your input because it thinks you're using a template part. That means that this is a single command: !script {{ --+|Some parameter }} But this is two separate commands: !script --+|Some parameter Problem the After the First You can't use TokenMod like this. TokenMod is going to *do* something, not return a value to your command line (to Scriptcards). TokenMod will let you *set* the statusmarkers property to include the lute, but it will not, in any kind of timing, return a information to the command line (or message object) that ScriptCards could read -- if it even knew to look for it! Since TokenMod is an "active" script (that is, it takes action on tokens in the game), when people utilize it in a ScriptCards macro, they are typically instructing ScriptCards to issue a NEW MESSAGE where the command line is whatever TokenMod syntax they've written. If you want to understand more of the timing around how script commands are handled, I'd suggest at least the first 15-ish minutes of this video . If you read on in this message and intend to use the metascript solutions I suggest, below, then I'd suggest you go ahead and watch the rest of the video, too. Problem the Related to the After the First Since TokenMod isn't going to do what you want it to do, this isn't going to get you closer to your goal (conditionally reading a statusmarker and taking different actions based on the result). However, the way you were trying to use TokenMod showed another mistake so, just to clarify the point before we move on to the actual solution... Let's say that you really/actually needed to use TokenMod (or another script) to create an outbound message somewhere during the processing of a ScriptCards command. For instance, you come to a point in the processing where you want to issue a TokenMod command to SET the lute statusmarker on a token. In that case, you include a line like this: --@token-mod| _set statusmarkers|lute Note that the line opens: --@ ...followed by the script handle: token-mod ...followed by a pipe: | ...followed by all of the arguments for that new outbound command, but you change all double hyphens to an underline. This is because the double-hyphen is used to indicate arguments to ScriptCards, and since ScriptCards is the "destination" script that is handling the processing, you have to handle double-hyphens intended for other, outbound scripts with some other syntax. ScriptCards establishes the underline as that other syntax. Problem the Understanding ScriptCards th ScriptCards is a script that offers a pretty powerful line parser to give you functional capabilities, much like a coding language. However, in addition to that, it has a "reporting" side (a visual output) that you can use to construct the chat result for you or your players. If you are going to use ScriptCards, you typically DO NOT have to use a roll template as your output. You would, instead, construct a "card" using ScriptCards syntax, and then output it at the end. I don't do a lot of ScriptCard-ing, but I believe that would look more like these two lines: --#title|You Uninspired LUMP of MEAT-SACKERY! --+|You do not have Bardic Inspiration. Now, go away, or I shall taunt you a second time! I mean, actual verbiage may vary. But the two lines comprise a "title" line (for the top of the card) as well as a line that will appear as the "contents" of the card. The idea would be placing these in a ScriptCards macro in a place where they would only output if specified conditions were met (i.e., the selected token NOT having the lute statusmarker). So you could use ScriptCards processing to control whether these lines were included in the processing. Like I said, I'm not a ScriptCard maven, but the relevant conditional syntax is discussed here . I believe the logical conditional you need is setup with this construction: --?"Thing to test" --eq "Equals, but there are other options like 'gt' and 'lt' and 'inc'"|[ <<true case verbiage>> --]|[ <<false case verbiage>> --]| The two lines controlling your output would go in one of these cases, depending on what you were testing. Your command to run the "UseBardicInspiration" macro would go in the other. Before we get to that, there's one more problem to point out... Problem the How to Run an External Macro Your initial attempt at the command line seems to expect that if the selected token has a lute marker, you will run the "UseBardicInspiration" command like this: !UseBardicInspiration That looks like you would expect to run a script command where "UseBardicInspiration" was the script's handle (the way "script" is for ScriptCards or "token-mod" is for TokenMod). If that's the case, you would want to structure this the way I discussed sending the TokenMod command line, above: --@UseBardicInspiration| However, I don't think that's what you're trying to do. I think you want to trigger either a Collections Tab macro or a sheet ability from a mule character. I'm not the best one to answer whether this is possible (let alone how to do it), but I would wonder if you have to use this approach at all...? If the contents of the UseBardicInspiration macro were already a series of ScriptCards commands, you could just include them, in this macro in the appropriate side of the if/else conditional (or, alternatively, put a conditional into the UseBardicInspiration. Maybe if you share a bit more of what commands are in the UseBardicInspiration macro and whether it's a macro or an ability we might be able to better help you get where you're wanting to go. Enough With the Problems - Solution the First So if you want to use a ScriptCards conditional, you can use ScriptCards to return the statusmarkers and drive your conditional based on whether it includes "Lute": !script{{ --?[*@{selected|token_id}:t-statusmarkers] -inc Lute|[ --#title|The Wind Beneath My BattleAxe --+You are inspired. Replace this text with the UseBardicInspiration commands --]|[ --#title|You Uninspired LUMP of MEAT-SACKERY! --+|You do not have Bardic Inspiration. Now, go away, or I shall taunt you a second time! --] }} Enough With the Problems - Solution the Second If, instead of a ScriptCards output you'd *rather* use the roll template output (the default template, from your example), you can accomplish this by installing the Metascript Toolbox in your game. It comes with it's own conditional structures, as well as ways to test the presence of a status marker on a token. Here is what that would look like if you were wanting to run a MACRO called UseBardicInspiration if the token was marked with the "Lute" status marker, but instead output your default template message if the token was NOT: !{&if @(selected.is.Lute) = yes}#\(UseBardicInspiration){&else}{&template:default} {{name=You Uninspired LUMP of MEAT-SACKERY!}} {{You do not have Bardic Inspiration. Now, go away, or I shall taunt you a second time!}}{&simple} {&end} I can break down what's going on in there if you decide to go this route. My guess is that you'll go for the ScriptCards solution (Solution the First)... and, since this message is already long, I shall simply apologize for calling your wife a bloated warthog, and bid you good day.