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

D&D 5e Character Sheet quick spell lists

So I've been building several high level caster NPCs lately for my campaign and picking and adding spells is slightly obnoxious. Especially when I build a character NPC, pick all the spells then realize I want to rebuild the character but don't want to re-add the spell list. Lol... Does anyone have any tools or scripts they use to quickly add a pre-defined list or group of spells or how to copy a spell list from one sheet to another? Just really any tools you're willing to share that makes adding spells a little quicker and more managable?
1648066126

Edited 1648066344
I have a barbarian bot, cleric bot, wizard bot, sorcerer/bard bot, battle master bot, and rogue bot.  These characters have level 4, 10, and 16 versions of themselves and I have created custom token actions that are gigantic 1000 line macros of every single possible spell I'd use or special template for a feature I'd use for any of said classes then I made tokens for them that are invisible tokens with an aura only I see.  So whenever any encounter or module calls for a priest like creature, I just select my cleric bot and use his macros to fire off spells.  It took a while to setup but my god did it pay off tenfold.  I also inserted funny/cool animated gifs all over the macros in various places and utilized some automation with tokenmod/chatsetattr here and there.  I also use an at a glance chat message to manage the sheets expendable resources like spell slots, hps, Hit dice, money, and resource boxes.  Once it was all setup, its been probably the best improvement to my live session I have ever made.  
1648071071
David M.
Pro
API Scripter
Pretty neat, DM Eddie! Mind sharing your "at a glance" macro?
Ok but it has a caveat because I'm not a pro, so if anyone else can figure out a cleaner workaround feel free to add to this: Caveat:  You have to populate 3-4 additional rows of resource boxes with 0/0 with the name Empty.  The reason why is because if you don't the macro throws errors for nonexistant attributes if there aren't boxes.  However I discovered that if you name all the extras the same then the macro is fooled into combining them all into one.  See the above screenshot where Empty is just 1 even though there are 5 total rows of resource boxes.  Then you have to tell your players not to delete boxes.   I gave this ability to my players so to do this, I had to put the macro as a token action on my player-accessible macro mule, then I set a global macro that just calls the token action off the archived macro mule character: (One more thing, it requires chatsetattr to work and don't run the commands silently, especially for the money, thats the easiest way to fix someone screwing up money changes) /w @{selected|character_name} &{template:default} {{name=Character Manager}} {{name=@{selected|character_name}'s Character Manager}} {{Temp HP=**@{selected|hp_temp}** | [Set New value](!setattr --sel --hp_temp|?{New Value?})}} {{HP= @{selected|hp} / @{selected|hp|max}}} {{Hit Dice=@{selected|hit_dice}/@{selected|hit_dice|max}|[Expend](!modbattr --sel --hit_dice|-1)|[Refund](!modbattr --sel --hit_dice|+1)}} {{Level 1=@{selected|lvl1_slots_expended}/@{selected|lvl1_slots_total}|[Expend](!modbattr --sel --lvl1_slots_expended|-1)|[Refund](!modbattr --sel --lvl1_slots_expended|+1)}} {{Level 2=@{selected|lvl2_slots_expended}/@{selected|lvl2_slots_total}|[Expend](!modbattr --sel --lvl2_slots_expended|-1)|[Refund](!modbattr --sel --lvl2_slots_expended|+1)}} {{Level 3=@{selected|lvl3_slots_expended}/@{selected|lvl3_slots_total}|[Expend](!modbattr --sel --lvl3_slots_expended|-1)|[Refund](!modbattr --sel --lvl3_slots_expended|+1)}} {{Level 4=@{selected|lvl4_slots_expended}/@{selected|lvl4_slots_total}|[Expend](!modbattr --sel --lvl4_slots_expended|-1)|[Refund](!modbattr --sel --lvl4_slots_expended|+1)}} {{Level 5=@{selected|lvl5_slots_expended}/@{selected|lvl5_slots_total}|[Expend](!modbattr --sel --lvl5_slots_expended|-1)|[Refund](!modbattr --sel --lvl5_slots_expended|+1)}} {{Level 6=@{selected|lvl6_slots_expended}/@{selected|lvl6_slots_total}|[Expend](!modbattr --sel --lvl6_slots_expended|-1)|[Refund](!modbattr --sel --lvl6_slots_expended|+1)}} {{Level 7=@{selected|lvl7_slots_expended}/@{selected|lvl7_slots_total}|[Expend](!modbattr --sel --lvl7_slots_expended|-1)|[Refund](!modbattr --sel --lvl7_slots_expended|+1)}} {{Level 8=@{selected|lvl8_slots_expended}/@{selected|lvl8_slots_total}|[Expend](!modbattr --sel --lvl8_slots_expended|-1)|[Refund](!modbattr --sel --lvl8_slots_expended|+1)}} {{Level 9=@{selected|lvl9_slots_expended}/@{selected|lvl9_slots_total}|[Expend](!modbattr --sel --lvl9_slots_expended|-1)|[Refund](!modbattr --sel --lvl9_slots_expended|+1)}} {{@{selected|class_resource_name}=@{selected|class_resource}/@{selected|class_resource|max}|[Expend](!modbattr --sel --class_resource|-1)|[Refund](!modbattr --sel --class_resource|+1)}} {{@{selected|other_resource_name}=@{selected|other_resource}/@{selected|other_resource|max}|[Expend](!modbattr --sel --other_resource|-1)|[Refund](!modbattr --sel --other_resource|+1)}} {{@{selected|repeating_resource_$0_resource_left_name}=@{selected|repeating_resource_$0_resource_left}/@{selected|repeating_resource_$0_resource_left|max}|[Expend](!modbattr --sel --repeating_resource_$0_resource_left|-1)|[Refund](!modbattr --sel --repeating_resource_$0_resource_left|+1)}} {{@{selected|repeating_resource_$1_resource_left_name}=@{selected|repeating_resource_$1_resource_left}/@{selected|repeating_resource_$1_resource_left|max}|[Expend](!modbattr --sel --repeating_resource_$1_resource_left|-1)|[Refund](!modbattr --sel --repeating_resource_$1_resource_left|+1)}} {{@{selected|repeating_resource_$2_resource_left_name}=@{selected|repeating_resource_$2_resource_left}/@{selected|repeating_resource_$2_resource_left|max}|[Expend](!modbattr --sel --repeating_resource_$2_resource_left|-1)|[Refund](!modbattr --sel --repeating_resource_$2_resource_left|+1)}} {{@{selected|repeating_resource_$3_resource_left_name}=@{selected|repeating_resource_$3_resource_left}/@{selected|repeating_resource_$3_resource_left|max}|[Expend](!modbattr --sel --repeating_resource_$3_resource_left|-1)|[Refund](!modbattr --sel --repeating_resource_$3_resource_left|+1)}} {{@{selected|repeating_resource_$0_resource_right_name}=@{selected|repeating_resource_$0_resource_right}/@{selected|repeating_resource_$0_resource_right|max}|[Expend](!modbattr --sel --repeating_resource_$0_resource_right|-1)|[Refund](!modbattr --sel --repeating_resource_$0_resource_right|+1)}} {{@{selected|repeating_resource_$1_resource_right_name}=@{selected|repeating_resource_$1_resource_right}/@{selected|repeating_resource_$1_resource_right|max}|[Expend](!modbattr --sel --repeating_resource_$1_resource_right|-1)|[Refund](!modbattr --sel --repeating_resource_$1_resource_right|+1)}} {{@{selected|repeating_resource_$2_resource_right_name}=@{selected|repeating_resource_$2_resource_right}/@{selected|repeating_resource_$2_resource_right|max}|[Expend](!modbattr --sel --repeating_resource_$2_resource_right|-1)|[Refund](!modbattr --sel --repeating_resource_$2_resource_right|+1)}} {{@{selected|repeating_resource_$3_resource_right_name}=@{selected|repeating_resource_$3_resource_right}/@{selected|repeating_resource_$3_resource_right|max}|[Expend](!modbattr --sel --repeating_resource_$3_resource_right|-1)|[Refund](!modbattr --sel --repeating_resource_$3_resource_right|+1)}} {{Platinum= **@{selected|pp}** [Subtract](!modattr --sel --pp|-?{Just the Number.|0})|[Add](!modattr --sel --pp|+?{Just the Number.|0})}} {{Gold= **@{selected|gp}** [Subtract](!modattr --sel --gp|-?{Just the Number.|0})|[Add](!modattr --sel --gp|+?{Just the Number.|0})}} {{Silver= **@{selected|sp}** [Subtract](!modattr --sel --sp|-?{Just the Number.|0})|[Add](!modattr --sel --sp|+?{Just the Number.|0})}} {{Copper= **@{selected|cp}** [Subtract](!modattr --sel --cp|-?{Just the Number.|0})|[Add](!modattr --sel --cp|+?{Just the Number.|0})}}