Roll20 uses cookies to improve your experience on our site. Cookies enable you to enjoy certain features, social sharing functionality, and tailor message and display ads to your interests on our site and others. They also help us understand how our site is being used. By continuing to use our site, you consent to our use of cookies. Update your cookie preferences .
×
Create a free account

ScriptCards and Curse of Strahd not working.

Setting up Curse of Strahd in Jumpgate and discovered that script cards will not work. I deleted the game and tried again with the same result.  I also checked other games I have, and ScriptCards functions correctly.   Any thoughts on what might be happening?
Which character sheet are you using?  I have several jumpgate games based upon the D&D 2014 sheet which work fine. D&D 2024 character sheet is based upon a different foundation and mods accessing character sheet attributes and abilities do not work at present.
Shawn, in the API Mod Console, do you see any errors? Do you get the message that Scriptcards loaded, the one where it prints the version number? Are other Mods working for you?  Does even a basic Scriptcard fail to print? Like: !script {{ }}
Hey Oginme / Joshua I'm using the D&amp;D 5E 2014 sheet by Roll20, which is the same sheet I use in all my other games. !script {{ }} does work. Some ScriptCard spells work, and others do not. When executing these ScriptCards, nothing happens; there is no message in chat and no errors.&nbsp; "ScriptCards: 34 Templates loaded" "-=&gt; ScriptCards - 3.0.01 by Kurt Jaegers Ready &lt;=- Meta Offset : 50193" All my other mods appear to be working Here are some examples: (They all work in my other games) Works: !script {{ &nbsp; --/|Script Name : 5E Fireball &nbsp; --/|Version&nbsp; &nbsp; &nbsp;: 1.1 &nbsp; --/|Requires SC : 1.3.1+ &nbsp; --/|Author&nbsp; &nbsp; &nbsp; : Kurt Jaegers &nbsp; --/|Description : Deals fireball damage to all tokens that represent creations in a 20' radius around target token &nbsp; --/|Set up the card appearance &nbsp; --#title|@{selected|character_name} casts Fireball! &nbsp; --#bodyFontSize|12px &nbsp; --#titlecardbackground|#800000 &nbsp; --#leftsub|Save DC @{selected|spell_save_dc} &nbsp; --/|Get a spell slot level from the caster. &nbsp; --=SpellLevel|?{Spell Slot Level?|3|4|5|6|7|8|9} &nbsp; --#rightsub|Slot Level: [$SpellLevel] &nbsp; --/|Calculate damage based on spell slot. Fireball is 8d6 for 3rd level, so 5+SpellLevel d6 total. &nbsp; --=DamageDice|[$SpellLevel.Total] + 5 &nbsp; --=Damage|[$DamageDice.Total]d6 &nbsp; --=HalfDamage|[$Damage.Total] \ 2 &nbsp; --/|Since we want to be able to hover over a roll and see the dice details, output the rolled damage at the &nbsp; --/|top of the card. If all critters make their save, the half damage roll won't contain the details. &nbsp; --+|[c][b]Damage Roll: [/b][$Damage][/c] &nbsp; --+|&amp;nbsp; &nbsp; --/|Get all tokens on the page into the "alltokens" array &nbsp; --~|array;pagetokens;alltokens;@{target|token_id} &nbsp; --/|Create the "inRange" array. It will have a blank item in it to begin with, which we will remove later. &nbsp; --~|array;define;inRange; &nbsp; --/|Loop through all of the tokens in "alltokens" to check their distance &nbsp; --~tokenid|array;getfirst;alltokens &nbsp; --?[&amp;tokenid] -eq ArrayError|endOutput &nbsp; --:loopCheck| &nbsp; --/|Skip targets that are not on the token layer or that don't represent creatures &nbsp; --?[*[&amp;tokenid]:t-layer] -ne objects|continue &nbsp; --?"[*[&amp;tokenid]:t-represents]" -ninc "-"|continue &nbsp; --/|Check the distance between the target token and the current array token. 20 feet is 4 units &nbsp; --~dist|distance;@{target|token_id};[&amp;tokenid] &nbsp; --?[$dist] -gt 4|continue &nbsp; --/|If we didn't skip over this part, the token is within 20 feet, so add it to the inRange array &nbsp; --~|array;add;inRange;[&amp;tokenid] &nbsp; --:continue| &nbsp; --~tokenid|array;getnext;alltokens &nbsp; --?[&amp;tokenid] -ne ArrayError|loopCheck &nbsp; --/|Remove the dummy first item in the inRange array &nbsp; --~|array;removeat;inRange;0 &nbsp; --/|Loop through the inRange tokens and roll saves for each one and apply damage &nbsp; --~tokenid|array;getfirst;inRange &nbsp; --?[&amp;tokenid] -eq ArrayError|endOutput &nbsp; --:loopDisplay| &nbsp; --&gt;MakeSavingThrow|[&amp;tokenid];dexterity;@{selected|spell_save_dc};[$Damage.Total];fire;thisTokenDamage;saveResult;dex &nbsp; --+[*[&amp;tokenid]:character_name]:|Save [$savingThrow] [r][$thisTokenDamage] fire damage[/r] &nbsp; --/|Put a burn-fire visual effect on impacted tokens &nbsp; --vtoken|[&amp;tokenid] burn-fire &nbsp; --/|Get the next token and continue the loop until we run out. &nbsp; --~tokenid|array;getnext;inRange &nbsp; --?[&amp;tokenid] -ne ArrayError|loopDisplay &nbsp; --/|Add some extra visual effects - a nova-fire at the target, and a beam-fire from source to target &nbsp; --vtoken|@{target|token_id} nova-fire &nbsp; --vbetweentokens|@{selected|token_id} @{target|token_id} beam-fire &nbsp; --:endOutput| &nbsp; --X| &nbsp; --/|Subroutine to make saving throws and calculate damage amounts &nbsp; --:MakeSavingThrow|tokenid;savetype;dc;damage;damagetype;damagevariable;saveresultvariable;shortabilityname &nbsp; --?"X[*[%1%]:npc_[%8%]_save_base]" -eq "X"|&gt;set_string;baseSaveBonus;|&gt;set_string;baseSaveBonus; + + [*[%1%]:npc_[%8%]_save_base] &nbsp; --=savingThrow|1d20 + [*[%1%]:[%2%]_save_bonus] [&amp;baseSaveBonus] &nbsp; --&amp;dmgmult| &nbsp; --?[$savingThrow] -ge [%3%]|&gt;set_string;dmgmult; \ 2 &nbsp; --?[$savingThrow] -lt [%3%]|&gt;set_string;[%7%];fail &nbsp; --?[$savingThrow] -ge [%3%]|&gt;set_string;[%7%];success &nbsp; --?"[*[%1%]:npc_resistances]" -inc "[%5%]" -and [$savingThrow] -lt [%3%]|&gt;set_string;dmgmult; \ 2 &nbsp; --?"[*[%1%]:npc_resistances]" -inc "[%5%]" -and [$savingThrow] -ge [%3%]|&gt;set_string;dmgmult; * 0 &nbsp; --?"[*[%1%]:npc_vulnerabilities]" -inc "[%5%]" -and [$savingThrow] -ge [%3%]|&gt;set_string;dmgmult; &nbsp; --?"[*[%1%]:npc_vulnerabilities]" -inc "[%5%]" -and [$savingThrow] -lt [%3%]|&gt;set_string;dmgmult; * 2 &nbsp; --?"[*[%1%]:npc_immunities]" -inc "[%5%]"|&gt;set_string;dmgmult; * 0 &nbsp; &nbsp; --=[%6%]|[%4%] [&amp;dmgmult]&nbsp; &nbsp; --&lt;| &nbsp; --:set_string|mod_variable;value &nbsp; --&amp;[%1%]|[%2%] &nbsp; --&lt;| &nbsp;&nbsp; &nbsp; --/|Subroutine to apply damage with TokenMod. Could be replcaed with alterbars or chatsetattr &nbsp; --:ApplyDamageTokenmod|Parameters are tokenid;bar#;amount &nbsp; --@token-mod|_ignore-selected _ids [%1%] _set bar[%2%]_value|[%3%] &nbsp; --&lt;| }} Doesn't Work: !script {{ &nbsp; --/|Script Name : 5E Magic Missile &nbsp; --/|Version&nbsp; &nbsp; &nbsp;: 2.2 &nbsp; --/|Requires SC : 1.5.2+ &nbsp; --/|Author&nbsp; &nbsp; &nbsp; : Kurt Jaegers &nbsp; --/|Description : Handles the D&amp;D 5E spell Magic Missile, with the ability to select a dynamic &nbsp; --/|&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; number of targets.&nbsp; &nbsp; --/| &nbsp; --/|&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; You can optionally have damage applied to impacted tokens. The script defaults to using &nbsp; --/|&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; TokenMod to update Bar 3. These can be changed by altering the settings below. &nbsp; --/|&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; If you use one die roll for Magic Missile, update the damageMode variable below. &nbsp;&nbsp; &nbsp; --/|Set this to either "scriptcards" or anything else to not apply damage &nbsp; --&amp;damageApplyScript|scriptcards &nbsp; --/|Set this to the bar number you use to track hit points &nbsp; --&amp;hitPointsBar|3 &nbsp; --/|Set this variable to the (case sensitive) name of a Jukebox track to play when the spell is cast &nbsp; --&amp;SoundEffectTrack|Magic_Missile &nbsp; --/|If damageMode is 1, a separate die will be rolled for each missile. Set this variable to 0 to,&nbsp; &nbsp; --/|only have a single damage die roll applied to each missile. &nbsp; --&amp;damageMode|1 &nbsp; --/|Magic Missile by the book does Force damage. &nbsp; --&amp;damageType|force &nbsp; --/|===================== There are no customization options below this line ===================== &nbsp; --=SlotLevel|?{Spell Slot Level?|1|2|3|4|5|6|7|8|9} &nbsp; --=MissileCount|[$SlotLevel] + 2 &nbsp; --=OneMissileDamage|1d4+1 &nbsp; --&gt;BuildAndAskTargets|[$MissileCount.Total] &nbsp; --=DisplayCount|1 &nbsp; --=MissileDamage|0 &nbsp; --#leftsub|Slot level [$SlotLevel] &nbsp; --#rightsub|Ranged Attack &nbsp; --#emoteText|@{selected|character_name} uses a level [$SlotLevel.Total] spell slot to fire [$MissileCount.Total] missiles of magical force! &nbsp; --/|Determine damage subroutine. Start by assuming we aren't going to apply damage &nbsp; --&amp;damageRoutine|DontApplyDamage &nbsp; --?[&amp;damageApplyScript] -eq "scriptcards"|&amp;damageRoutine;ApplyDamageScriptCards&nbsp;&nbsp; &nbsp; --a|[&amp;SoundEffectTrack] &nbsp; --:MissileLoop| &nbsp; --&gt;FireMissile|[$DisplayCount.Total] &nbsp; --=DisplayCount|[$DisplayCount] + 1 &nbsp; --?[$DisplayCount] -le [$MissileCount]|MissileLoop &nbsp; --+Total|Total damage is [$MissileDamage] &nbsp; --&gt;DeductSpellSlot| &nbsp; --#rightsub|Level [$SlotLevel] Left: [$SlotsRemaining]&nbsp; &nbsp; --X| &nbsp; --:FireMissile| &nbsp; --&amp;ThisTarget|[&amp;target[%1%]] &nbsp; --?[&amp;damageMode] -eq 1|=ThisMissile;1d4+1|=ThisMissile;[$OneMissileDamage] &nbsp; --=MissileDamage|[$MissileDamage] + [$ThisMissile] &nbsp; --+Missile|[$DisplayCount.Total] Hits [*[&amp;ThisTarget]:character_name] for [$ThisMissile] [b]force[/b] damage &nbsp; --&gt;PlayEffects|@{selected|token_id};[&amp;ThisTarget];none;burst-smoke;beam-magic &nbsp; --=ResultantDamage|[$ThisMissile.Raw] &nbsp; --?"[*[&amp;tokenid]:npc_immunities]" -inc "[&amp;damageType]"|Immune &nbsp; --?"[*[&amp;tokenid]:npc_resistances]" -inc "[&amp;damageType]"|Resistant &nbsp; --?"[*[&amp;tokenid]:npc_vulnerabilities]" -inc "[&amp;damageType]"|Vulnerable &nbsp; --^DoneResist| &nbsp; --:Immune| &nbsp; --=ResultantDamage|0 &nbsp; --^DoneResist| &nbsp; --:Resistant| &nbsp; --=ResultantDamage|[$ThisMissile] \ 2 &nbsp; --^DoneResist| &nbsp; --:Vulnerable| &nbsp; --=ResultantDamage|[$ThisMissile] * 2 &nbsp; --^DoneResist| &nbsp; --:DoneResist| &nbsp; --&gt;[&amp;damageRoutine]|[&amp;ThisTarget];[&amp;hitPointsBar];-[$ResultantDamage.Raw] &nbsp; --&lt;| &nbsp; --:BuildAndAskTargets| &nbsp; --&amp;TargetString| &nbsp; --=targetCount|1 &nbsp; --:TargetLoop| &nbsp; --&amp;TargetString|+t;target[$targetCount.Raw];Missile [$targetCount.Raw] Target &nbsp; --=targetCount|[$targetCount.Raw] + 1 &nbsp; --?[$targetCount] -le [%1%]|&gt;AddSeparator &nbsp; --?[$targetCount] -le [%1%]|TargetLoop &nbsp; --iPlease click the button below to select magic missile targets. The same target can be selected multiple times;Select [%1%] Targets|[&amp;TargetString] &nbsp; --/| &nbsp; --&lt;| &nbsp; --:AddSeparator| &nbsp; --&amp;TargetString|+|| &nbsp; --&lt;| &nbsp;&nbsp; &nbsp; --/|===================== Subroutines ===================== &nbsp;&nbsp; &nbsp; --/|There are four "ApplyDamage" subroutines - one for scriptcards built-in functions, one for alterbars, one for token-mod, and one to not apply damage &nbsp;&nbsp; &nbsp; --/|Apply damage via ScriptCards' built-in object modification function (new in ScriptCards 1.5.0) &nbsp; --:ApplyDamageScriptCards|Parameters are tokenid;bar#;amount &nbsp; --=applyValue|[%3%] &nbsp; --=newValue|[*[%1%]:t-bar[%2%]_value] + [$applyValue] &nbsp; --?[$newValue] -lt 0|=newValue;0 &nbsp; --?[$newValue] -gt [*[%1%]:t-bar[%2%]_max]|=newValue;[*[%1%]:t-bar[%2%]_max] &nbsp; --!t:[%1%]|bar[%2%]_value:[$newValue.Raw] &nbsp; --&lt;| &nbsp; --/|Just a dummy routine that doesn't do anything, but it is easier to do it this way than adding logic to see if we are &nbsp; --/|skipping applying damage in the main routine. &nbsp; --:DontApplyDamage| &nbsp; --&lt;| &nbsp; --:PlayEffects|Parameters are : sourcetoken; targettoken; source effect; target effect; line effect; sound effect &nbsp; --vtoken|[%1%] [%3%] &nbsp; --vtoken|[%2%] [%4%] &nbsp; --vbetweentokens|[%1%] [%2%] [%5%] &nbsp; --&lt;| }} Doesn't Work: !Script{{ --/|Script Name : Tim's SpellBook Mod (Scriptcards) for D&amp;D 5E 2014 --/|Version : 2.3.0 --/|Author : Timothy Beasley --/|Description : This script displays the PC's Spellbook in chat that has buttons for all spells available to selected character. --/| If the character has an attack roll a d20 button will appear beside the spell name which will roll the attack from the character sheet. --/| There is a round button which indicates if the spell is prepared, clicking the button will prepare or unprepare the spell(class dependant). --/| There is a button shaped like an open book, which when clicked will display the full description of the spell. --/| Clicking on the spell slots will take you to a card that will allow you to choose the slot colour. --/| Use the plus or minus buttons to add or remove spell slots. --/| If there is any confusion about what something does, all buttons and items on the spellbook have tooltips, just mouseover them. --/| If the character is a cleric or druid, only prepared spells will display, otherwise the list can get very long. --/| If you want to use your own spell macros, this script will detect if they exist and run them instead. Just make sure they are --/| named exactly as the spell only instead of spaces, use a hyphen - --/| --/|Installation: This script is for the 2014 edition of the official D&amp;D 5E Character Sheet by Roll20 and requires the --/| installation of the ScriptCards MOD using a pro account with API access. --/| This script also requires the installation of a custom ScriptCards template. Instructions for installing --/| a custom style template can be found on the Roll20 wiki page for ScriptCards. The code for the scriptcard --/| template can be found in the post associated with this Script on the Roll20 forums below; --/| <a href="https://app.roll20.net/forum/post/12285368/tims-spellbook-mod-scriptcards-d-and-d-5e-2014" rel="nofollow">https://app.roll20.net/forum/post/12285368/tims-spellbook-mod-scriptcards-d-and-d-5e-2014</a> --/| or on my GitHub below as spellbook.css; --/| <a href="https://github.com/VirulentArc/ScriptCards" rel="nofollow">https://github.com/VirulentArc/ScriptCards</a> --/| Make sure the template "macro" name is spellbook or change #overridetemplate to whatever name you'd prefer --/| it to have. --#Debug|0 --#overridetemplate|spellbook --#Whisper|self --#diceFontColor|#611b1c --#sourceToken|@{selected|token_id} --#emoteState|0 --:RestartBook| --?"[*S:SlotStyle]" -eq "undefined"|[ --!a:[*S:character_id]|!SlotStyle:default --]| --/|Styling --&amp;HeaderImage|style="background-image: url(<a href="https://raw.githubusercontent.com/VirulentArc/Resources/refs/heads/main/d20/Supernotes_Themes/spellbook/template/header.webp#.png" rel="nofollow">https://raw.githubusercontent.com/VirulentArc/Resources/refs/heads/main/d20/Supernotes_Themes/spellbook/template/header.webp#.png</a>) ; background-repeat: no-repeat ; background-size: 240px 30px ; background-position: center ; display: block ; width: 240px ; height: 100% ; line-height: 40px ; text-align: center ;" --&amp;HeaderBonus|style="display: inline-block ; position: relative ; top: 2px ;" --&amp;LevelBackground|style="background-image: url(<a href="https://raw.githubusercontent.com/VirulentArc/Resources/refs/heads/main/d20/Supernotes_Themes/spellbook/template/spell_level.webp#.png" rel="nofollow">https://raw.githubusercontent.com/VirulentArc/Resources/refs/heads/main/d20/Supernotes_Themes/spellbook/template/spell_level.webp#.png</a>) ; background-repeat: no-repeat ; background-size: 240px 40px ; background-position: left ; display: block ; width: 240px ; height: 100% ; text-align: center ; vertical-align: middle ;" --?";wizard;cleric;druid;" -inc ";[*S:class];"|=PrepTotal;[*S:caster_level] + @{selected|spellcasting_ability} {FLOOR} --?";paladin;artificer;" -inc ";[*S:class];"|=PrepTotal;([*S:caster_level]/2) + @{selected|spellcasting_ability} {FLOOR} --&amp;RollImage|[d20]1[/d20] --#parameterDelimiter|$$$ --?"[*S:class]" -inc "fighter"|&amp;ClassImage$$$&amp;#x132C1; --?";wizard;rogue;" -inc ";[*S:class];"|&amp;ClassImage$$$&amp;#x269a; --?"[*S:class]" -inc "warlock"|&amp;ClassImage$$$&amp;#x26D3; --?"[*S:class]" -inc "Sorcerer"|&amp;ClassImage$$$&amp;#x2726; --?";cleric;paladin;" -inc ";[*S:class];"|&amp;ClassImage$$$&amp;#x273A; --?";druid;ranger;" -inc ";[*S:class];"|&amp;ClassImage$$$&amp;#x130E0; --?"[*S:class]" -inc "artificer"|&amp;ClassImage$$$&amp;#x2699; --&amp;Infinity|&amp;#x221E; --&amp;BookImage|&amp;#x1F56E; --&amp;BlueDot|&amp;#x1F535; --&amp;BlankDot|&amp;#x1F518; --?";warlock;sorcerer;bard;rogue;fighter;ranger;" -inc ";[*S:class];"|&amp;PrepTotal$$$[&amp;Infinity]|&amp;PrepTotal$$$[$PrepTotal.Raw] --?"[&amp;PrepTotal]" -eq "[&amp;Infinity]"|&amp;FontSize$$$30|&amp;FontSize$$$20 --#parameterDelimiter|; --&amp;EmptySlot|[img width=30]<a href="https://raw.githubusercontent.com/VirulentArc/Resources/refs/heads/main/d20/Supernotes_Themes/spellbook/template/spellslot_spent.webp#.png[/img]" rel="nofollow">https://raw.githubusercontent.com/VirulentArc/Resources/refs/heads/main/d20/Supernotes_Themes/spellbook/template/spellslot_spent.webp#.png[/img]</a> --&amp;FullSlot|[img width=30]<a href="https://raw.githubusercontent.com/VirulentArc/Resources/refs/heads/main/d20/Supernotes_Themes/spellbook/template/spellslot_[*S:SlotStyle].webp#.png[/img]" rel="nofollow">https://raw.githubusercontent.com/VirulentArc/Resources/refs/heads/main/d20/Supernotes_Themes/spellbook/template/spellslot_[*S:SlotStyle].webp#.png[/img]</a> --&amp;MissingSlot|[img width=30]<a href="https://raw.githubusercontent.com/VirulentArc/Resources/refs/heads/main/d20/Supernotes_Themes/spellbook/template/spellslot_missing.webp#.png[/img]" rel="nofollow">https://raw.githubusercontent.com/VirulentArc/Resources/refs/heads/main/d20/Supernotes_Themes/spellbook/template/spellslot_missing.webp#.png[/img]</a> --&amp;SCA|[*S:spellcasting_ability] --~SCA|string;substring;3;3;[&amp;SCA] --&amp;ButtonStyle|style="align-self: center; background-color: transparent ; background-image: none; background-position: 0 90%; background-repeat: repeat no-repeat; background-size: 4px 3px; border-radius: 15px 225px 255px 15px 15px 255px 225px 15px; border-style: solid; border-width: 2px; box-shadow: rgba(0, 0, 0, .2) 15px 28px 25px -18px; box-sizing: border-box; color: #6e2425; display: inline-block; font-size: .95em; line-height: 23px; outline: none; padding: .2rem; text-decoration: none; border-bottom-left-radius: 15px 255px; border-bottom-right-radius: 225px 15px; border-top-left-radius: 255px 15px; border-top-right-radius: 15px 225px;text-transform: uppercase; font-weight: bold ; margin: 2px ;" --&amp;Darkbg|style="background-image: url(<a href="https://github.com/VirulentArc/Resources/blob/main/d20/Supernotes_Themes/spellbook/template/darkbg.png?raw=true" rel="nofollow">https://github.com/VirulentArc/Resources/blob/main/d20/Supernotes_Themes/spellbook/template/darkbg.png?raw=true</a>) ; width: 30px ; padding: .5em ; " --&gt;Header| --Rfirst|[*S:character_id];repeating_spell-cantrip;spellname --?"[*R:spellname]" -ne "NoRepeatingAttributeLoaded"|&gt;BookOutput;cantrip --Rfirst|[*S:character_id];repeating_spell-1;spellname --?"[*R:spellname]" -ne "NoRepeatingAttributeLoaded"|&gt;BookOutput;1 --Rfirst|[*S:character_id];repeating_spell-2;spellname --?"[*R:spellname]" -ne "NoRepeatingAttributeLoaded"|&gt;BookOutput;2 --Rfirst|[*S:character_id];repeating_spell-3;spellname --?"[*R:spellname]" -ne "NoRepeatingAttributeLoaded"|&gt;BookOutput;3 --Rfirst|[*S:character_id];repeating_spell-4;spellname --?"[*R:spellname]" -ne "NoRepeatingAttributeLoaded"|&gt;BookOutput;4 --Rfirst|[*S:character_id];repeating_spell-5;spellname --?"[*R:spellname]" -ne "NoRepeatingAttributeLoaded"|&gt;BookOutput;5 --Rfirst|[*S:character_id];repeating_spell-6;spellname --?"[*R:spellname]" -ne "NoRepeatingAttributeLoaded"|&gt;BookOutput;6 --Rfirst|[*S:character_id];repeating_spell-7;spellname --?"[*R:spellname]" -ne "NoRepeatingAttributeLoaded"|&gt;BookOutput;7 --Rfirst|[*S:character_id];repeating_spell-8;spellname --?"[*R:spellname]" -ne "NoRepeatingAttributeLoaded"|&gt;BookOutput;8 --Rfirst|[*S:character_id];repeating_spell-9;spellname --?"[*R:spellname]" -ne "NoRepeatingAttributeLoaded"|&gt;BookOutput;9 --X| --:Header| --&amp;Header|[t width=100% [&amp;HeaderImage]][tr][td title="Spellcasting Ability" width=60px][b]&amp;#x272F;[F::16][&amp;SCA(touppercase)][/F][/b][/td][td title="Spell Save DC" width=60px][F::16]&amp;#x1F6E1;[/F][b][F::20][*S:spell_save_dc][/F][/b][/td][td title="Spellcasting Bonus" width=60px [&amp;HeaderBonus]][b][F::5][&amp;RollImage]&amp;nbsp;[/F][F::20][*S:spell_attack_bonus][/F][/b][/td][td title="Max Prepared Spells" width=60px][F::18][&amp;ClassImage][/F][F::[&amp;FontSize]][b][&amp;PrepTotal][/b][/F][/td][/tr][/t] --+|[&amp;Header] --&lt;| --:BookOutput| --#title|@{selected|character_name}'s Spell Book --&amp;SpellLevel|[%1%] --?"[&amp;SpellLevel]" -ninc "cantrip"|[ --#parameterDelimiter|$$$ --?"[*S:lvl[&amp;SpellLevel]_slots_expended]" -eq 0 -and "[*S:lvl[&amp;SpellLevel]_slots_total]" -eq 0|&amp;Slots$$$[&amp;MissingSlot][&amp;MissingSlot][&amp;MissingSlot][&amp;MissingSlot] --?"[*S:lvl[&amp;SpellLevel]_slots_expended]" -eq 0 -and "[*S:lvl[&amp;SpellLevel]_slots_total]" -eq 1|&amp;Slots$$$[&amp;EmptySlot][&amp;MissingSlot][&amp;MissingSlot][&amp;MissingSlot] --?"[*S:lvl[&amp;SpellLevel]_slots_expended]" -eq 1 -and "[*S:lvl[&amp;SpellLevel]_slots_total]" -eq 1|&amp;Slots$$$[&amp;FullSlot][&amp;MissingSlot][&amp;MissingSlot][&amp;MissingSlot] --?"[*S:lvl[&amp;SpellLevel]_slots_expended]" -eq 0 -and "[*S:lvl[&amp;SpellLevel]_slots_total]" -eq 2|&amp;Slots$$$[&amp;EmptySlot][&amp;EmptySlot][&amp;MissingSlot][&amp;MissingSlot] --?"[*S:lvl[&amp;SpellLevel]_slots_expended]" -eq 1 -and "[*S:lvl[&amp;SpellLevel]_slots_total]" -eq 2|&amp;Slots$$$[&amp;FullSlot][&amp;EmptySlot][&amp;MissingSlot][&amp;MissingSlot] --?"[*S:lvl[&amp;SpellLevel]_slots_expended]" -eq 2 -and "[*S:lvl[&amp;SpellLevel]_slots_total]" -eq 2|&amp;Slots$$$[&amp;FullSlot][&amp;FullSlot][&amp;MissingSlot][&amp;MissingSlot] --?"[*S:lvl[&amp;SpellLevel]_slots_expended]" -eq 0 -and "[*S:lvl[&amp;SpellLevel]_slots_total]" -eq 3|&amp;Slots$$$[&amp;EmptySlot][&amp;EmptySlot][&amp;EmptySlot][&amp;MissingSlot] --?"[*S:lvl[&amp;SpellLevel]_slots_expended]" -eq 1 -and "[*S:lvl[&amp;SpellLevel]_slots_total]" -eq 3|&amp;Slots$$$[&amp;FullSlot][&amp;EmptySlot][&amp;EmptySlot][&amp;MissingSlot] --?"[*S:lvl[&amp;SpellLevel]_slots_expended]" -eq 2 -and "[*S:lvl[&amp;SpellLevel]_slots_total]" -eq 3|&amp;Slots$$$[&amp;FullSlot][&amp;FullSlot][&amp;EmptySlot][&amp;MissingSlot] --?"[*S:lvl[&amp;SpellLevel]_slots_expended]" -eq 3 -and "[*S:lvl[&amp;SpellLevel]_slots_total]" -eq 3|&amp;Slots$$$[&amp;FullSlot][&amp;FullSlot][&amp;FullSlot][&amp;MissingSlot] --?"[*S:lvl[&amp;SpellLevel]_slots_expended]" -eq 0 -and "[*S:lvl[&amp;SpellLevel]_slots_total]" -eq 4|&amp;Slots$$$[&amp;EmptySlot][&amp;EmptySlot][&amp;EmptySlot][&amp;EmptySlot] --?"[*S:lvl[&amp;SpellLevel]_slots_expended]" -eq 1 -and "[*S:lvl[&amp;SpellLevel]_slots_total]" -eq 4|&amp;Slots$$$[&amp;FullSlot][&amp;EmptySlot][&amp;EmptySlot][&amp;EmptySlot] --?"[*S:lvl[&amp;SpellLevel]_slots_expended]" -eq 2 -and "[*S:lvl[&amp;SpellLevel]_slots_total]" -eq 4|&amp;Slots$$$[&amp;FullSlot][&amp;FullSlot][&amp;EmptySlot][&amp;EmptySlot] --?"[*S:lvl[&amp;SpellLevel]_slots_expended]" -eq 3 -and "[*S:lvl[&amp;SpellLevel]_slots_total]" -eq 4|&amp;Slots$$$[&amp;FullSlot][&amp;FullSlot][&amp;FullSlot][&amp;EmptySlot] --?"[*S:lvl[&amp;SpellLevel]_slots_expended]" -eq 4 -and "[*S:lvl[&amp;SpellLevel]_slots_total]" -eq 4|&amp;Slots$$$[&amp;FullSlot][&amp;FullSlot][&amp;FullSlot][&amp;FullSlot] --?"[*S:lvl[&amp;SpellLevel]_slots_total]" -eq "[*S:lvl[&amp;SpellLevel]_slots_expended]"|&amp;PlusSlot$$$|&amp;PlusSlot$$$[rbutton]+::AddSlot;[&amp;SpellLevel][/rbutton] --?"[*S:lvl[&amp;SpellLevel]_slots_expended]" -eq 0|&amp;MinusSlot$$$|&amp;MinusSlot$$$[rbutton]-::SubtractSlot;[&amp;SpellLevel][/rbutton] --#parameterDelimiter|; --]| --#parameterDelimiter|$$$ --?"[&amp;SpellLevel]" -inc "cantrip"|&amp;Slots$$$[&amp;Infinity]|&amp;Slots$$$[&amp;Slots] --?"[&amp;Slots]" -eq "[&amp;Infinity]"|&amp;InfStyle$$$style="position: relative; top: 1px ; "|&amp;InfStyle$$$ --?"[&amp;SpellLevel]" -inc "cantrip"|&amp;SpellLevelOutput$$$C|&amp;SpellLevelOutput$$$[&amp;SpellLevel] --#parameterDelimiter|; --&amp;LevelStyle|style="position: relative; top: -2px ; " --&amp;MinusStyle|style="position: relative; top: -4px ; " --?"[&amp;SpellLevel]" -inc "cantrip"|&amp;PlusSlot; --?"[&amp;SpellLevel]" -inc "cantrip"|&amp;MinusSlot; --&amp;SpellOutput|[t width=100% [&amp;LevelBackground]][tr][td width=25 height=40 [&amp;LevelStyle]][br][F::20][b][&amp;SpellLevelOutput][/b][/F][/td][td width=40px [&amp;MinusStyle]][b][F::30][r][&amp;MinusSlot][/r][/F][/b][/td][td width=135px [&amp;InfStyle]][F::46][rbutton][&amp;Slots]::SlotChoice[/rbutton][/F][/td][td width=40px][b][F::22][l][&amp;PlusSlot][/l][/F][/b][/td][/tr][/t] --&amp;SpellOutput|+[t width=240px] --~|array;fromrepeatingsection;lvlSpells;[*S:character_id];repeating_spell-[&amp;SpellLevel];spellname --%SpellLoop|foreach;lvlSpells --Rfind|[*S:character_id];[&amp;SpellLoop];repeating_spell-[&amp;SpellLevel];spellname --&amp;SpellData|[*R:spellname][&amp;SpellLevel] --?"[*R:spellconcentration]" -inc 1|&amp;Concentration;(c)|&amp;Concentration; --?"[*R:spellritual]" -inc "Yes"|&amp;Ritual;(r)|&amp;Ritual; --~MacroName|string;replaceall; ;-;[&amp;SpellLoop] --~MacroButton|system;findability;[*S:character_name];[&amp;MacroName] --?"[&amp;MacroButton]" -ne "AbilityNotFound"|[ --&amp;SpellRoll|[F::6][button][&amp;RollImage]::~[*S:character_name]|[&amp;MacroButton][/button][/F] --]|[ --?"[*R:spelloutput]" -inc "ATTACK"|[ --&amp;SpellRoll|[F::6][sheetbutton][&amp;RollImage]::@{selected|character_name}::[*R&gt;spell][/sheetbutton][/F] --]| --?"[*R:spelloutput]" -inc "SPELLCARD"|[ --&amp;SpellRoll|[F::6][rbutton]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;::SpellInfo;[&amp;SpellData][/rbutton][/F] --]| --]| --#parameterDelimiter|$$$ --?"[&amp;MacroButton]" -ne "AbilityNotFound"|[ --&amp;SpellDetail|[button][&amp;BookImage]::~[*S:character_name]|[&amp;MacroButton][/button] --]|[ --&amp;SpellDetail|[sheetbutton][&amp;BookImage]::@{selected|character_name}::[*R&gt;output][/sheetbutton] --]| --?";warlock;sorcerer;bard;rogue;fighter;ranger;" -inc ";[*S:class];" -or "[*R:spellprepared]" -eq 1 -or "[&amp;SpellLevel]" -inc "cantrip"|&amp;Prepared$$$[rbutton][&amp;BlueDot]::PrepareOff;[&amp;SpellData][/rbutton]|&amp;Prepared$$$[rbutton][&amp;BlankDot]::PrepareOn;[&amp;SpellData][/rbutton] --?"[*R:spellcomp_v]" -inc "v=1"|&amp;ToolVerb$$$V|&amp;ToolVerb$$$ --?"[*R:spellcomp_s]" -inc "s=1"|&amp;ToolSomatic$$$,S|&amp;ToolSomatic$$$ --?"[*R:spellcomp_m]" -inc "m=1"|&amp;ToolMat$$$,M([*R:spellcomp_materials])|&amp;ToolMat$$$ --&amp;ToolComp|[&amp;ToolVerb][&amp;ToolSomatic][&amp;ToolMat]&amp;nbsp;&amp;#124;&amp;nbsp; --&amp;ToolRange|R:&amp;nbsp;[*R:spellrange]&amp;nbsp;&amp;#124;&amp;nbsp; --?"[*R:spelltarget]" -eq ""|&amp;ToolTarget$$$|&amp;ToolTarget$$$T:&amp;nbsp;[*R:spelltarget]&amp;nbsp;&amp;#124;&amp;nbsp; --&amp;ToolDuration|[*R:spellduration]&amp;nbsp;&amp;#124;&amp;nbsp; --?"[*R:spellcastingtime]" -eq ""|&amp;ToolCT$$$|&amp;ToolCT$$$[*R:spellcastingtime]&amp;nbsp;&amp;#124;&amp;nbsp; --?"[*R:spellritual]" -inc "Yes"|&amp;ToolRit$$$[&amp;Ritual]&amp;nbsp;&amp;#124;&amp;nbsp;|&amp;ToolRit$$$ --?"[*R:spellconcentration]" -eq ""|&amp;ToolCon$$$|&amp;ToolCon$$$(c)&amp;nbsp;&amp;#124;&amp;nbsp; --?"[*R:innate]" -eq ""|&amp;ToolInnate$$$|&amp;ToolInnate$$$[*R:innate]&amp;nbsp;&amp;#124;&amp;nbsp; --?"[*R:spellathigherlevels]" -eq ""|&amp;ToolHigher$$$|&amp;ToolHigher$$$&amp;nbsp;&amp;#124;&amp;nbsp;[*R:spellathigherlevels] --#parameterDelimiter|; --&amp;ToolTip|title="[&amp;ToolCT][&amp;ToolRange][&amp;ToolTarget][&amp;ToolComp][&amp;ToolRit][&amp;ToolCon][&amp;ToolDuration][&amp;ToolInnate][*R:spelldescription][&amp;ToolHigher]" --?"[*S:class]" -inc "cleric" -or "[*S:class]" -inc "druid" -and "[*R:spellprepared]" -eq 1 -or "[&amp;SpellLevel]" -inc "cantrip"|[ --&amp;SpellOutput|+[tr][td width=165px height=17px style="display: inline-block ; white-space: nowrap ; overflow: hidden; text-overflow: ellipsis ; line-height: 17px; vertical-align: bottom ; " [&amp;ToolTip]][b][#000][&amp;SpellLoop][/#][/b][i]&amp;nbsp;[&amp;Concentration]&amp;nbsp;[&amp;Ritual]&amp;nbsp;[*R:innate][/i][/td][td width=20 title="Cast Spell" style="position: relative ; top: 4px ; "][&amp;SpellRoll][/td][td width=40 title="Prepared"]|[F::15][&amp;Prepared][/F]|[/td][td width=20 title="Spell Details"][F::16][&amp;SpellDetail][/F][/td][/tr] --]| --?"[*S:class]" -ninc "cleric" -and "[*S:class]" -ninc "druid" -and "[&amp;SpellLevel]" -ninc "cantrip"|[ --&amp;SpellOutput|+[tr][td width=165px height=17px style="display: inline-block ; white-space: nowrap ; overflow: hidden; text-overflow: ellipsis ; line-height: 17px; vertical-align: bottom ; " [&amp;ToolTip]][b][#000][&amp;SpellLoop][/#][/b][i]&amp;nbsp;[&amp;Concentration]&amp;nbsp;[&amp;Ritual]&amp;nbsp;[*R:innate][/i][/td][td width=20 title="Cast Spell" style="position: relative ; top: 4px ; "][&amp;SpellRoll][/td][td width=40 title="Prepared"]|[F::15][&amp;Prepared][/F]|[/td][td width=20 title="Spell Details"][F::16][&amp;SpellDetail][/F][/td][/tr] --]| --%| --&amp;SpellOutput|+[/t] --+|[&amp;SpellOutput] --&lt;| --:SlotChoice| --#title|Choose a Slot Style --#whisper|self --~|array;define;SlotChoice;default;red;orange;yellow;green;blue;purple;pink --&amp;SlotsPerRow|4 --&amp;SlotsCounter|1 --&amp;SlotOutput|[br][br][t width=100% style="text-align: center ;" border=1][tr] --%loop|foreach;SlotChoice --&amp;SlotOutput|+[td width=30 [&amp;Darkbg]][rbutton][img width=30]<a href="https://raw.githubusercontent.com/VirulentArc/Resources/refs/heads/main/d20/Supernotes_Themes/spellbook/template/spellslot_[&amp;loop].webp#.png[/img]::WriteSlot;[&amp;loop][/rbutton][br][b][&amp;loop][/b][/td]" rel="nofollow">https://raw.githubusercontent.com/VirulentArc/Resources/refs/heads/main/d20/Supernotes_Themes/spellbook/template/spellslot_[&amp;loop].webp#.png[/img]::WriteSlot;[&amp;loop][/rbutton][br][b][&amp;loop][/b][/td]</a> --?[= [&amp;SlotsCounter] % [&amp;SlotsPerRow] ] -eq 0|&amp;SlotOutput;+[/tr][tr] --&gt;IncrementCounter|SlotsCounter --%| --&amp;SlotOutput|+[/tr][/t] --+|[&amp;SlotOutput] --+|[br][br][t width=100% border=1 style="text-align: center ;"][tr][td width=60%][b]Current Slot Style[/b][/td][td [&amp;Darkbg]][img width=30]<a href="https://raw.githubusercontent.com/VirulentArc/Resources/refs/heads/main/d20/Supernotes_Themes/spellbook/template/spellslot_[*S:SlotStyle].webp#.png[/img][/td][/tr][/t][t" rel="nofollow">https://raw.githubusercontent.com/VirulentArc/Resources/refs/heads/main/d20/Supernotes_Themes/spellbook/template/spellslot_[*S:SlotStyle].webp#.png[/img][/td][/tr][/t][t</a> width=100% style="text-align: center ; "][tr][td [&amp;ButtonStyle]][rbutton]SpellBook::RestartBook[/rbutton][/td][/t] --X| --:IncrementCounter| --&amp;[%1%]|[= [&amp;[%1%]] + 1] --&lt;| --:WriteSlot| --!a:[*S:character_id]|!SlotStyle:[&amp;reentryval] --&gt;SlotChoice| --X| --:AddSlot| --=SlotLevel|[&amp;reentryval] --=SlotsExpended|[*S:lvl[$SlotLevel]_slots_expended] --=SlotsLeft|[$SlotsExpended] + 1 --!a:[*S:character_id]|lvl[$SlotLevel]_slots_expended:[$SlotsLeft] --&gt;RestartBook| --X| --:SubtractSlot| --=SlotLevel|[&amp;reentryval] --=SlotsExpended|[*S:lvl[$SlotLevel]_slots_expended] --=SlotsLeft|[$SlotsExpended] - 1 --!a:[*S:character_id]|lvl[$SlotLevel]_slots_expended:[$SlotsLeft] --&gt;RestartBook| --X| --:PrepareOff| --?";sorcerer;warlock;fighter;rogue;artificer;bard;cleric;druid;" -ninc ";[*S:class];"|[ --&amp;SpellEntry|[&amp;reentryval] --~SpellLetters|string;nonumbers;[&amp;SpellEntry] --~SpellNumbers|string;onlynumbers;[&amp;SpellEntry] --Rfind|[*S:character_id];[&amp;SpellLetters];repeating_spell-[&amp;SpellNumbers];spellname --!a:[*S:character_id]|[*R&gt;spellprepared]:0 --&gt;RestartBook| --]|[ --&gt;RestartBook| --]| --X| --:PrepareOn| --&amp;SpellEntry|[&amp;reentryval] --~SpellLetters|string;nonumbers;[&amp;SpellEntry] --~SpellLevel|string;onlynumbers;[&amp;SpellEntry] --Rfind|[*S:character_id];[&amp;SpellLetters];repeating_spell-[&amp;SpellLevel];spellname --!a:[*S:character_id]|[*R&gt;spellprepared]:1 --&gt;RestartBook| --X| }}
So for the Magic Missile Scriptcard that doesn't work, you say there is no output and nothing happens. When you say nothing happens, does the Roll Query happen? This part: ?{Spell Slot Level?|1|2|3|4|5|6|7|8|9} Roll20 processes roll queries before ScriptCards even runs so I'm just trying to understand what all happens in your game.
Sorry Joshua That part works; after making your choice, it does nothing else.
1750468768

Edited 1750468803
Andrew R.
Pro
Sheet Author
Make sure you are using the Experimental &nbsp; API Sandbox Version in a Jumpgate game.
Hmmm. I could not reproduce this. I created a brand new Jumpgate game, granted it was not using Curse of Strahd since I don't own that module, with the D&amp;D 2014 sheet, installed ScriptCards, created a Wizard and 1 NPC and everything worked as expected. !script {{ --/|Script Name : 5E Magic Missile --/|Version : 2.2 --/|Requires SC : 1.5.2+ --/|Author : Kurt Jaegers --/|Description : Handles the D&amp;D 5E spell Magic Missile, with the ability to select a dynamic --/| number of targets. --/| --/| You can optionally have damage applied to impacted tokens. The script defaults to using --/| TokenMod to update Bar 3. These can be changed by altering the settings below. --/| If you use one die roll for Magic Missile, update the damageMode variable below. --/|Set this to either "scriptcards" or anything else to not apply damage --&amp;damageApplyScript|scriptcards --/|Set this to the bar number you use to track hit points --&amp;hitPointsBar|1 --/|Set this variable to the (case sensitive) name of a Jukebox track to play when the spell is cast --&amp;SoundEffectTrack|Magic_Missile --/|If damageMode is 1, a separate die will be rolled for each missile. Set this variable to 0 to, --/|only have a single damage die roll applied to each missile. --&amp;damageMode|1 --/|Magic Missile by the book does Force damage. --&amp;damageType|force --/|===================== There are no customization options below this line ===================== --=SlotLevel|?{Spell Slot Level?|1|2|3|4|5|6|7|8|9} --=MissileCount|[$SlotLevel] + 2 --=OneMissileDamage|1d4+1 --&gt;BuildAndAskTargets|[$MissileCount.Total] --=DisplayCount|1 --=MissileDamage|0 --#leftsub|Slot level [$SlotLevel] --#rightsub|Ranged Attack --#emoteText|@{selected|character_name} uses a level [$SlotLevel.Total] spell slot to fire [$MissileCount.Total] missiles of magical force! --/|Determine damage subroutine. Start by assuming we aren't going to apply damage --&amp;damageRoutine|DontApplyDamage --?[&amp;damageApplyScript] -eq "scriptcards"|&amp;damageRoutine;ApplyDamageScriptCards --a|[&amp;SoundEffectTrack] --:MissileLoop| --&gt;FireMissile|[$DisplayCount.Total] --=DisplayCount|[$DisplayCount] + 1 --?[$DisplayCount] -le [$MissileCount]|MissileLoop --+Total|Total damage is [$MissileDamage] --&gt;DeductSpellSlot| --#rightsub|Level [$SlotLevel] Left: [$SlotsRemaining] --X| --:FireMissile| --&amp;ThisTarget|[&amp;target[%1%]] --?[&amp;damageMode] -eq 1|=ThisMissile;1d4+1|=ThisMissile;[$OneMissileDamage] --=MissileDamage|[$MissileDamage] + [$ThisMissile] --+Missile|[$DisplayCount.Total] Hits [*[&amp;ThisTarget]:character_name] for [$ThisMissile] [b]force[/b] damage --&gt;PlayEffects|@{selected|token_id};[&amp;ThisTarget];none;burst-smoke;beam-magic --=ResultantDamage|[$ThisMissile.Raw] --?"[*[&amp;tokenid]:npc_immunities]" -inc "[&amp;damageType]"|Immune --?"[*[&amp;tokenid]:npc_resistances]" -inc "[&amp;damageType]"|Resistant --?"[*[&amp;tokenid]:npc_vulnerabilities]" -inc "[&amp;damageType]"|Vulnerable --^DoneResist| --:Immune| --=ResultantDamage|0 --^DoneResist| --:Resistant| --=ResultantDamage|[$ThisMissile] \ 2 --^DoneResist| --:Vulnerable| --=ResultantDamage|[$ThisMissile] * 2 --^DoneResist| --:DoneResist| --&gt;[&amp;damageRoutine]|[&amp;ThisTarget];[&amp;hitPointsBar];-[$ResultantDamage.Raw] --&lt;| --:BuildAndAskTargets| --&amp;TargetString| --=targetCount|1 --:TargetLoop| --&amp;TargetString|+t;target[$targetCount.Raw];Missile [$targetCount.Raw] Target --=targetCount|[$targetCount.Raw] + 1 --?[$targetCount] -le [%1%]|&gt;AddSeparator --?[$targetCount] -le [%1%]|TargetLoop --iPlease click the button below to select magic missile targets. The same target can be selected multiple times;Select [%1%] Targets|[&amp;TargetString] --/| --&lt;| --:AddSeparator| --&amp;TargetString|+|| --&lt;| --/|===================== Subroutines ===================== --/|There are four "ApplyDamage" subroutines - one for scriptcards built-in functions, one for alterbars, one for token-mod, and one to not apply damage --/|Apply damage via ScriptCards' built-in object modification function (new in ScriptCards 1.5.0) --:ApplyDamageScriptCards|Parameters are tokenid;bar#;amount --=applyValue|[%3%] --=newValue|[*[%1%]:t-bar[%2%]_value] + [$applyValue] --?[$newValue] -lt 0|=newValue;0 --?[$newValue] -gt [*[%1%]:t-bar[%2%]_max]|=newValue;[*[%1%]:t-bar[%2%]_max] --!t:[%1%]|bar[%2%]_value:[$newValue.Raw] --&lt;| --/|Just a dummy routine that doesn't do anything, but it is easier to do it this way than adding logic to see if we are --/|skipping applying damage in the main routine. --:DontApplyDamage| --&lt;| --:PlayEffects|Parameters are : sourcetoken; targettoken; source effect; target effect; line effect; sound effect --vtoken|[%1%] [%3%] --vtoken|[%2%] [%4%] --vbetweentokens|[%1%] [%2%] [%5%] --&lt;| }} Only thing I changed was the &amp;hitPointsBar variable since I have my HP on bar 1 and not bar 3. I copied that Scriptcard into the chat, I got the Roll Query prompt, selected level 1, then I got the whisper to click the button in chat to start the targets selection and got the output. This was with the default API sandbox version, I did not need the Experimental for this Magic Missile SC to work. Shawn, what Mods do you have installed? Mine was a fresh game with only ScriptCards, TokenMod, and Supernotes installed. Just trying to think of what could be the issue, you have the Fireball SC working and then 2 that don't. All 3 use @{selected} and Fireball and Magic Missile use @{target} so those are probably fine in your game. One thing that 2 not working SC's have that Fireball doesn't use is a chat button, Magic Missile uses --i to prompt and the Spellbook uses rbuttons to prompt whereas no buttons for Fireball. Not sure why that would be causing you an issue. Just for completeness, which browser are you using? Can you go Incognito/Private to try to rule out any extensions that might be causing an issue? Do you use any Stylus extensions? Just trying to think of what might cause a SC to break for you. Sorry I can't seem to repro this.
Hey Joshua I have tried creating a new game several times and have the same issue. I'm using all the same mods as my previous games, where everything works great. Currently using Edge, I have tried Google Chrome and Firefox with the same results.&nbsp; I also tried using the Experimental API Sandbox that Andrew suggested, no luck there either. The only thing different from previous games is the module. I will try creating a new game again and test things as I add each MOD to see if one of them is the issue. Appreciate everyone helps Shawn
Well, after much troubleshooting, the issue seems to be with a couple of mods not loading correctly. Deleting them and reinstalling them did not fix the issue.&nbsp; Started fresh again with a new game (4th time) and all is well. Thanks again for everyone's input in trying to figure this out.