Updates 0.4 2015-10-03: Re-enabled spell_data_hash checking - see below for more details, you need to change how you install the script Added experimental extension mechanism for the brave. (Requires October 2nd 2015 version of 5e-shaped character sheet - but see below) 0.3.1 2015-09-25: Disabled spell_data_hash checking - shouldn't be enabled yet, sorry! (Requires September 20th 2015 version of 5e-shaped character sheet) 0.3 2015-09-24: Introduced more robust system for tracking changes to 5e-shaped character sheet. Fixed some minor issues around values drawn from selects (attack stats, save stats etc) (Requires September 20th 2015 version of 5e-shaped character sheet) 0.2.2 2015-09-22: Fixed bug with attack spell rendering. Fixed bug with higher level damage dice calculation being broken by bad interpolation (Requires September 20th 2015 version of 5e-shaped character sheet) 0.2.1 2015-09-21: Added one missing attribute (Requires September 20th 2015 version of 5e-shaped character sheet) 0.2 2015-09-21: Added long rest handling 0.1 2015-09-20: Initial version IMPORTANT NOTE: This script requires special installation, please read the instructions carefully! So I finally got fed up with not being able to do anything useful with the spells on the 5e-shaped sheet without always having to navigate into the sheet itself, thanks to the evils of repeating sections. I've made a spellbook script that reads all of your spells from the character sheet and then spits out buttons for them in the chat window. The buttons are enabled/disabled depending on whether you have the spells prepared + have appropriate slots to cast them. When you click on the buttons it will prompt you for a spell level to cast at if this is appropriate (either because the spell has higher-level effects and you have available slots to cast at higher level, or because you only have higher-level slots left), and will also prompt you for a target, if appropriate to the spell. When you click one of the spell buttons it casts pretty much as it would do from the character sheet. Additionally, it will decrement your spell slots (warlock ones first, normal ones afterwards) appropriately. It's currently at beta quality level, and doesn't have proper documentation so I haven't put in a pull request to Roll20, but if you're interested you can check it out here: Github Link Installation You need to install the files 5eShapedSpellbook.js and LHU.js into your campaign. In addition, you must grab the file spellDefaults.js from the repository for the 5e shaped character sheets. You must use the file from exactly the same version of the sheet's repository as the HTML and CSS files that you have installed for your campaign. The recommended approach it to install spellDefaults.js whenever you install the HTML and CSS files for the 5e shaped sheet. The spellDefaults.js file contains important information that is auto-generated from the shaped sheet that allows the spellbook script to work correctly. The spellbook script will check that you are using the right version and will issue an error message if there is a mismatch between the spellDefaults.js file and the HTML/CSS of the character sheet that you are using. Commands: !5esb --show shows the spellbook for the selected token !5esb --cast <Spell name> [--ritual] [--level <lvl>] --character <character_id> [--targetAC @{target|AC}] [--targetName <name>] Casts a spell. Will only work if you have appropriate slots to cast the requested spell at the requested level. The targetAC parameter is designed to parse the results of requesting AC using the @{target|AC} syntax, any other value won't work here. !5esb --long-rest restore spell slots as for a long rest for the selected token It should go without saying that this is designed to work with the 5eShaped sheet only (the latest version from GitHub, not the default one on Roll20), and you probably also want the spell importer that goes with the sheet to get the best value out of it: <a href="https://github.com/mlenser/roll20-character-sheets" rel="nofollow">https://github.com/mlenser/roll20-character-sheets</a>... <a href="https://github.com/mlenser/roll20/blob/master/scri" rel="nofollow">https://github.com/mlenser/roll20/blob/master/scri</a>... Future ideas: put in short rest mechanics for slot recovery for warlocks + arcane recovery for others Document it Support daily/at will spell powers from various class features / MM Innate Spellcasting feature Provide some sort of extension mechanism to allow API scripts to be triggered from spells (e.g. Mage Armor actually switches on your Mage Armor) Lucian