What I have done in my games (not D&D) for spellbook npcs is to create a chat menu of all the spells. After creating that, I move it to the top of the Abilities list on the Attributes & Abilities tab. If someone made a wizard, I would copy the wizard chat menu, paste it on the PC Attributes & Abilities tab, insert a /w with the character name so no one else sees the menu, set it to a token action, and edit the buttons on the menu to reflect that character's spell knowledge. This is basically a combination of 3 tricks from the Roll20 Tricks thread: Chat Menus , Macro Character , Limited Access to the Macro Character . Each button on the chat menu will call one individual macro from the macro character sheet. The buttons are composed like this: [Display Title Here](~macro sheet name here|ability macro name here) If you had a character sheet named Wizard Macros, and your Detect Magic ability macro was called DetMag, then your button would look like: [Detect Magic](~Wizard Macros|DetMag) The great thing about setting up the macros as character sheet abilities is that you can write all the attribute calls with @{selected|, so that they will pull from any sheet. You can even have some random token, set it to represent the macro sheet, and you can set the casting attributes on your macro sheet for a "disposable" caster. If you are creating those macros on the actual sheet in a repeating section, then it will be a bit more complicated, because you are then needing to call an roll button, which means you need the name of that button, and repeating sections are a pain that way. One easy way to get the repeating name is to enable the quick macro bar and drag the roll button down there. Make the roll from the macro bar, put your cursor in chat, and hit the up arrow. That will give you the full call for that roll button, starting with a %. You can take the second (inner) part of that call including and following the #, and use that in your button. For example (this isn't the 3.5 sheet, so yours will look different), I input a spell called Paralysis Bolt in my wizard macro sheet, and went through the steps above. The call for the roll button was: %{Wizard Macros|#{Wizard Macros|repeating_spell1_-MZpztM9N-4isjqKJUYR_spell}} For the chat menu, I used the following for the button: [Paralysis Bolt](~Wizard Macros|#{Wizard Macros|repeating_spell1_-MZpztM9N-4isjqKJUYR_spell}) The only potential problem I see with using the spell section of a character sheet instead of the Attributes & Abilities tab is whether or not that particular character sheet allows you to use @{selected| attribute calls, or if a bunch of stuff is baked into the roll buttons to use the stats from that sheet. For example, my sheet is built to pull save DC modifiers from that particular sheet and would require modifications to sheet code and at least one additional input field to allow that to work correctly from a different character. That is one potential disadvantage to not writing up the macros on the Attributes & Abilites tab instead. To break down the above (in case you haven't messed with repeating sections), all repeating section attributes or roll button calls will have 3 parts separated from each other with an underscore: 1. the repeating section name from the html 2. the row number (starts counting at 0 making the first row $0) or the row ID (which I used above) 3. the name of the attribute or roll button. Hopefully that is enough to get you going without causing confusion.