To begin with, that macro will cast all spells at once. That's why it is asking for level: it has to resolve all spells. To make a menu of spells to cast is a bit more involved. Here is my suggested syntax. This will handle all cantrips, I'm assuming you can flesh it out from there: &{template:npcaction} {{rname=Spells}} {{description=[@{selected|repeating_spell-cantrip_$0_spellname}](!
%{selected|repeating_spell-cantrip_$0_spell}) [@{selected|repeating_spell-cantrip_$1_spellname}](!
%{selected|repeating_spell-cantrip_$1_spell}) [@{selected|repeating_spell-cantrip_$2_spellname}](!
%{selected|repeating_spell-cantrip_$2_spell})}} It's in a Roll template to make it easier to view. !
%{selected|repeating_spell-cantrip_$1_spell} is the syntax for each button. The html replacements after the exclamation point are there to make the ability resolve properly. Save this as an ability on a character sheet, not a macro. Otherwise you will lose the replacements every time you go to edit. This will produce a chat menu of spell Ability Control Buttons. If you want to make this global, put it on a macro sheet, and call it from a global macro set as a universal token macro: %(macro_sheet_name|name_of_spell_ability}. It wouldn't recommend this though, because it will throw up error messages if the number of spells on the sheet don't match the macro. For a one-size-fits-all universal macro will require the API. Scripts like Universal Chat Menus or Menu Maker would do the job. I and others have even posted samples to do the whole sheet.