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

[Script] D&D 5e Shaped NPC & Spell Importer

1430316073
Kryx
Pro
Sheet Author
API Scripter
Tom F. said: Mark, first, thanks for all the work you put into this. While this is a bit inconvenient right this second I don't want it to take away from all the great work you've done that makes the game experience so much better, for the players and me as DM. I am testing and reimporting all my "old" Monsters, and I am noticing a few inconveniences that hopefully you can help me address: 1) for some reason, the new actions being created do not, by default, have the new "Details" tab turned on to display. This was the default with the previous script and sheet, and there is valuable info there like reach, range and target. How can I get this to default "on" during import or by default? 2) I have the import script set to import passive_perception into bar2, however, while the token shows that bar2 should indeed represent passive_perception, the values are blank. Not sure if this is a script issue or the sheet. When I change the token bar2 focus to something else, then switch back to passive_perception, it fills in the info. Thanks for all the hard work. Cheers 1. Details tab is gone in the next release. It is now split to "Range", "Reach", and "Target" so it can be consistent with what weapons will look like. I can add the details field to the conversion and it will work in the intermediary and will continue to work after that release is launched (if you use this conversion those "Range", "Reach", and "Target" toggles will be ticked for you). I've committed that change now. 2. Passive perception does not work. See <a href="https://app.roll20.net/forum/post/1864238/api-howt" rel="nofollow">https://app.roll20.net/forum/post/1864238/api-howt</a>... This is an issue on roll20's end that Aaron told me that he has flagged the devs to look into it. imo this is a lower priority as users can manually do it, but it'd be great if it works
1430316094
Tom F.
Pro
API Scripter
I just tested the NPC_Action with one of my old monsters and I got 300 lines of errors, here's a few: "msg.content: !shaped-action-repeating-convert" "---- Parsing old attributes to new ----" "Error: No attribute or sheet field found for character_id -JnWRGfWUDXcuDK0_Udl named npc_action_toggle_regional_effects" "Error: No attribute or sheet field found for character_id -JnWRGfWUDXcuDK0_Udl named npc_action_toggle_lair_actions" "Error: No attribute or sheet field found for character_id -JnWRGfWUDXcuDK0_Udl named npc_action_toggle_legendary_actions" "Error: No attribute or sheet field found for character_id -JnWRGfWUDXcuDK0_Udl named npc_action_toggle_reactions" "convert from npc_multiattack to multiattack" "convertname to repeating" "Error: No attribute or sheet field found for character_id -JnWRGfWUDXcuDK0_Udl named npc_action_type_1" "Error: No attribute or sheet field found for character_id -JnWRGfWUDXcuDK0_Udl named npc_action_recharge_1" "Error: No attribute or sheet field found for character_id -JnWRGfWUDXcuDK0_Udl named npc_action_recharge_1" "Error: No attribute or sheet field found for character_id -JnWRGfWUDXcuDK0_Udl named npc_action_toggle_recharge_1" "Error: No attribute or sheet field found for character_id -JnWRGfWUDXcuDK0_Udl named npc_action_emote_1" ......
1430316240

Edited 1430316285
Kryx
Pro
Sheet Author
API Scripter
Tom F. said: I just tested the NPC_Action with one of my old monsters and I got 300 lines of errors, here's a few: "msg.content: !shaped-action-repeating-convert" "---- Parsing old attributes to new ----" "Error: No attribute or sheet field found for character_id -JnWRGfWUDXcuDK0_Udl named npc_action_toggle_regional_effects" "Error: No attribute or sheet field found for character_id -JnWRGfWUDXcuDK0_Udl named npc_action_toggle_lair_actions" "Error: No attribute or sheet field found for character_id -JnWRGfWUDXcuDK0_Udl named npc_action_toggle_legendary_actions" "Error: No attribute or sheet field found for character_id -JnWRGfWUDXcuDK0_Udl named npc_action_toggle_reactions" "convert from npc_multiattack to multiattack" "convertname to repeating" "Error: No attribute or sheet field found for character_id -JnWRGfWUDXcuDK0_Udl named npc_action_type_1" "Error: No attribute or sheet field found for character_id -JnWRGfWUDXcuDK0_Udl named npc_action_recharge_1" "Error: No attribute or sheet field found for character_id -JnWRGfWUDXcuDK0_Udl named npc_action_recharge_1" "Error: No attribute or sheet field found for character_id -JnWRGfWUDXcuDK0_Udl named npc_action_toggle_recharge_1" "Error: No attribute or sheet field found for character_id -JnWRGfWUDXcuDK0_Udl named npc_action_emote_1" ...... That is expected. It loops through every action and searches if the old fields exists. The fields don't exist so it shows an error in the log. It should still convert the fields that do exist.
1430316566
Tom F.
Pro
API Scripter
Mark said: 1. Details tab is gone in the next release. It is now split to "Range", "Reach", and "Target" so it can be consistent with what weapons will look like. I can add the details field to the conversion and it will work in the intermediary and will continue to work after that release is launched (if you use this conversion those "Range", "Reach", and "Target" toggles will be ticked for you). I've committed that change now. 2. Passive perception does not work. See <a href="https://app.roll20.net/forum/post/1864238/api-howt" rel="nofollow">https://app.roll20.net/forum/post/1864238/api-howt</a>... This is an issue on roll20's end that Aaron told me that he has flagged the devs to look into it. imo this is a lower priority as users can manually do it, but it'd be great if it works Thanks Mark. #1. That change is committed on the script, the sheet, or on the NPC_Action converter? I'm not seeing it. Am I doing something "wrong"? #2. Gotcha, thanks.
1430316727

Edited 1430316760
Kryx
Pro
Sheet Author
API Scripter
1. The change is on the sheet. You'd have to use the current html from <a href="https://github.com/mlenser/roll20-character-sheets" rel="nofollow">https://github.com/mlenser/roll20-character-sheets</a>... if you want to see it now. Otherwise you'll have to wait until roll20 pushes it (likely a week+ based on history). I adjusted the script to toggle the details button in the interim and it will work with the new reach,range, target toggles when those go live as well.
1430316932
Tom F.
Pro
API Scripter
Gotcha. OK, thanks! I'll go get the new script. Cheers
@Mark So love the sheet, doing some more testing so when I fully convert to your sheet(s) I will have every base covered. We talked briefly regarding the bugbears surprise attacks and where it would be a good spot to tie it in. I thought secondary damage might cover it, but I actually think it would be best in the "effects" section that way you can provide the details of the extra damage. Only issue is the ability to provide the option to do an inline roll there. See screenshot for the Aarakocra its javelin attack and its "effect" I think this would work well with certain animals "Pounce, Trample etc.."
1430319112
Kryx
Pro
Sheet Author
API Scripter
Surprise is a trait and belong under traits. I will soon revamp traits and move the action-like ones to "Actions". This is similar to how I handle legendary actions as some are just wordy and some are action-like. 2 options to display this method: Keep fluff traits on the first page and for action like traits write "see Actions". Also include fluff traits on "Actions" Move all traits to "Actions". I'm kind of leaning toward 1 for now.
1430319143
Tom F.
Pro
API Scripter
Mark: I've set up to use the new character sheet, but none of the "effects" tab text will display during an attack, for any of the actions. I know this was an issue with action_0, but now it seems that no "effects" will display in chat.
1430319390
Kryx
Pro
Sheet Author
API Scripter
Tom F. said: Mark: I've set up to use the new character sheet, but none of the "effects" tab text will display during an attack, for any of the actions. I know this was an issue with action_0, but now it seems that no "effects" will display in chat. As I posted in the other thread it seems to affect all of the "Effects" fields and will be fixed, yes.
Mark said: Surprise is a trait and belong under traits. I will soon revamp traits and move the action-like ones to "Actions". This is similar to how I handle legendary actions as some are just wordy and some are action-like. 2 options to display this method: Keep fluff traits on the first page and for action like traits write "see Actions". Also include fluff traits on "Actions" Move all traits to "Actions". I'm kind of leaning toward 1 for now. Sounds good, what about an interface similar to the other sheet for class actions? Where you can click a box to include a trait with a melee attack / ranged attack etc?
1430321811
Kryx
Pro
Sheet Author
API Scripter
I think a class actions-like part isn't really appropriate for traits. The only one that is maybe is the surprise from bugbear. Even then it's only with certain conditions. At which point it shouldn't be included on every morningstar attack, but only sometimes which should be up to the DM clicking the trait button imo.
1430323401

Edited 1430323579
I don't disagree, why I suggested it being clickable.. See example from "the other sheet" Hope you're not taking this as criticism, I just know what i've been having to adjust from the existing NPC sheet. I should clarify that I know your sheet has this as well, but from an NPC perspective tI think this interface would be very nice for not forgetting a trait that could impact combat etc..
1430325905
Falcon
Pro
Sheet Author
Mark - awesome job on the latest script change!! it worked perfectly. Thank you !!
1430326139
Kryx
Pro
Sheet Author
API Scripter
Man, you guys must've dealt with some touchy devs in the past! Don't worry about offending me! A class action type interface would be very useful if a creature has sneak attack or another thing which is used on nearly every attack. But the bugear's example would be used rarely, once per encounter max: Surprise Attack. If the bugbear surprises a creature and hits it with an attack during the first round of combat, the target takes an extra 7 (2d6) damage from the attack. 1/encounter shouldn't be on every roll. It should be a "click once" button. From the examples that I've seen (Surprise, Spell Reflection, etc) they would not fit well without the class model. But maybe you know of other examples? If I go with the "Click once" button route it'll show the clickable traits on the actions page and on the token actions list - so it should be fairly easy to remember.
Mark said: Man, you guys must've dealt with some touchy devs in the past! Don't worry about offending me! A class action type interface would be very useful if a creature has sneak attack or another thing which is used on nearly every attack. But the bugear's example would be used rarely, once per encounter max: Surprise Attack. If the bugbear surprises a creature and hits it with an attack during the first round of combat, the target takes an extra 7 (2d6) damage from the attack. 1/encounter shouldn't be on every roll. It should be a "click once" button. From the examples that I've seen (Surprise, Spell Reflection, etc) they would not fit well without the class model. But maybe you know of other examples? If I go with the "Click once" button route it'll show the clickable traits on the actions page and on the token actions list - so it should be fairly easy to remember. nah, just always nice to set a precedent on where one is coming from. I agree with you on that the bugbear isn't a great example of something that should be on every roll, but what I would see myself doing is.. probably the following scenario. Bugbear surprises the party, I roll attacks / damage. we move on. Sorry i'm forgetful. Bugbear surprises the party, I roll attacks / damage.. Oh wait its more, due to the surprise round. I can then chose to ignore the "surprise round" dice, or I can go in and unclick the output options.
1430335014
Kryx
Pro
Sheet Author
API Scripter
Requiring you to uncheck it after the first one isn't a great experience as many GMs want to do all prep work out of session and not adjust things in session. Maybe there are other cases where we need some special modifiers on each attack (sneak attack), but I cant see this specific case being the commonly desired approach.
1430335613

Edited 1430335676
Mark said: Requiring you to uncheck it after the first one isn't a great experience as many GMs want to do all prep work out of session and not adjust things in session. Maybe there are other cases where we need some special modifiers on each attack (sneak attack), but I cant see this specific case being the commonly desired approach. I don't disagree with that, so i would just leave it in each time.. but having the option for those OCD DMs well two birds and one stone? You could create a new category called "combat traits" that you could separate out from the regular traits? Or merge them to apply with the rolls of actions. Yes Sneak Attack is the other piece of the puzzle but not having the cluttered damage output with Hit, Crit, Surprise, Sneak Attack are huge additions in your shapped sheet over the basic NPC Attacks section. Importing PCs via the PCGen is the function I am most looking forward too.. It would allow me to run a bunch of one shots while still giving the players a quick choice of their Race, Class and Archetype.
Ran the API and recieved the following "Parsing was incomplete due to error(s)" "TypeError: Cannot read property '1' of null" Some stuff came in first thing missing is hit points and none of the attacks here is the block OWLBEAR Large monstrosity, unaligned Armor Class 13 (natural armor) Hit Points 59 (7Dl0 + 21) Speed 40 STR 20 (+5) DEX 12 (+1) CON 17 (+3) INT 3 (-4) WIS 12 (+1) CHA 7 (-2) Skills Perception +3 Senses darkvision 60 ft, passive Perception 13 Languages None Challenge 3 (700 XP) Keen Sight and Smell. The owl bear has advantage on Wisdom (Perception) checks that rely on sight or smell. ACTIONS Multiattack. The owlbear makes two attacks, one with its beak and one with its claws. Beak. Melee Weapon Attack: +7 to hit, reach 5 ft, one target. Hit: 10 (1d10 + 5) piercing damage. Claws. Melee Weapon Attack: +7 to hit, reach 5 ft, one target. Hit: 14 (2d8 + 5) slashing damage. The owlbear's reputation for ferocity, stubbornness, and sheer ill temper makes it one of the most feared predators of the wild. There is little, if anything, that a hungry owlbear fears. where did I go wrong?
1430823069
Kryx
Pro
Sheet Author
API Scripter
Robert N. said: Hit Points 59 (7Dl0 + 21) where did I go wrong? See the hitpoints. I will add a filter to get rid of that.
1430823536

Edited 1430823578
Kryx
Pro
Sheet Author
API Scripter
I filtered out the Dl0 stuff and I believe all variations of it. Everything, including the attacks, works now for me.
1430828189

Edited 1430829366
Didn't receive any actions imported when I ran !shaped-import on Otyugh.
1430830121
Kryx
Pro
Sheet Author
API Scripter
Greg B. said: Didn't receive any actions imported when I ran !shaped-import on Otyugh. Mine imported nearly perfectly Otyugh Large aberration, neutral Armor Class 14 (natural armor) Hit Points 114 (12d10 + 48) Speed 30ft. STR 1 16 (+3) DEX 11 (+0) CON 19 (+4) INT 6 (-2) WIS 13 (+1) CHA 6 (- 2) Saving Throws Con +7 Senses darkvision 120ft., passive Perception 11 Languages Otyugh Challenge 5 (1 ,800 XP) Limited Telepathy. The otyugh can magically transmit simple messages and images to any creature within 120 feet of it that can understand a language. This form of telepathy doesn't allow the receiving creature to telepathically respond. ACTIONS Multiattack. The otyugh makes three attacks: one with its bite and two with its tentacles. Bite. Melee Weapon Attack: +6 to hit, reach 5 ft., one target. Hit: 12 (2d8 + 3) piercing damage. If the target is a creature, it must succeed on a DC 15 Constitution saving throw against disease or become poisoned until the disease is cured. Every 24 hours that elapse, the target must repeat the saving throw, reducing its hit point maximum by 5 (1d10) on a failure. The disease is cured on a success. The target dies if the disease reduces its hit point maximum to 0. This reduction to the target's hit point maximum lasts until the disease is cured. Tentacle. Melee Weapon Attack: +6 to hit, reach 10ft., one target. Hit: 7 (1d8 + 3) bludgeoning damage plus 4 (ld8) piercing damage. If the target is Medium or smaller, it is grappled (escape DC 13) and restrained until the grapple ends. The otyugh has two tentacles, each of which can grapple one target. Tentacle Slam. The otyugh slams creatures grappled by it into each other or a solid surface. Each creature must succeed on a DC 14 Strength saving throw or take 10 (2d6 + 3) bludgeoning damage and be stunned until the end of the otyugh's next turn . On a successful save, the target takes half the bludgeoning damage and isn't stunned. It missed the sucessful save of the tentacle slam, but got the rest.
Strange, my stat block looks identical to that, except I deleted the 1 before the 16 str.
1430833953
Kryx
Pro
Sheet Author
API Scripter
Greg B. said: Strange, my stat block looks identical to that, except I deleted the 1 before the 16 str. Identical? did you diff it? <a href="https://www.diffchecker.com/" rel="nofollow">https://www.diffchecker.com/</a> I tried without the extra 1 after strength and it still works. Do you have the latest code? Otherwise get it from the top post.
Mark said: Greg B. said: Strange, my stat block looks identical to that, except I deleted the 1 before the 16 str. Identical? did you diff it? <a href="https://www.diffchecker.com/" rel="nofollow">https://www.diffchecker.com/</a> I tried without the extra 1 after strength and it still works. Do you have the latest code? Otherwise get it from the top post. Yep, was the version info, tried it again with the most updated code and it worked fine. Thanks for checking it out Mark. I'm following the thread now so I'll see it when you update, assuming you make mention of it. :)
1430845347

Edited 1430845378
Kryx
Pro
Sheet Author
API Scripter
Greg B. said: Yep, was the version info, tried it again with the most updated code and it worked fine. Thanks for checking it out Mark. I'm following the thread now so I'll see it when you update, assuming you make mention of it. :) I always do - usually in the form of a report if it's major, but sometimes in reply to someone else like I did above if it's a minor tweak to the santizing.
1430847690
Kryx
Pro
Sheet Author
API Scripter
1.76 (May 5th) Added some more Sanitization Parsed the other form of "save success". This captures the Otyugh's Tentacle Slam and any attacks that have syntax like it.
What am i doing wrong First Import, everything worked Undead Fortitude. If damage reduces the zombie to 0 hit points, it must make a Constitution saving throw with a DC of 5 +the damage taken, unless the damage is radiant or from a critical hit. On a success, the zombie drops to 1 hit point instead. ACTIONS Slam. Melee Weapon Attack: +3 to hit, reach 5 ft., one target. Hit: 4 (1d6 + 1) bludgeoning damage. Second Import Added the Ash part and the slam does not show up in the actions Undead Fortitude. If damage reduces the zombie to 0 hit points, it must make a Constitution saving throw with a DC of 5 +the damage taken, unless the damage is radiant or from a critical hit. On a success, the zombie drops to 1 hit point instead. Ash Puff. The first time the zombie takes damage, any living creature within 5 feet of the zombie must succeed on a DC 10 Constitution saving throw or gain disadvantage on attack rolls, saving throws, and ability checks for 1 minute. A creature can repeat the saving throw at the end of each of its turns, ending the effect on it early with a successful save. ACTIONS Slam. Melee Weapon Attack: +3 to hit, reach 5 ft., one target. Hit: 4 (1d6 + 1) bludgeoning damage.
1431157648
Kryx
Pro
Sheet Author
API Scripter
Are you importing the whole block? Can you post it please?
Zombie, Ash Medium undead, Neutral Evil Armor Class 8 Hit Points 22 (3d8 + 9) Speed 20 ft. STR 13 (+1) DEX 6 (-2) CON 16 (+3) INT 3 (-4) WIS 6 (- 2) CHA 5 (- 3) Saving Throws Wis +0 Damage Immunities poison Condition Immunities poisoned Senses darkvision 60 ft., passive Perception 8 Languages understands the languages it knew in life but can't speak Challenge 1/4 (50 XP) Undead Fortitude. If damage reduces the zombie to 0 hit points, it must make a Constitution saving throw with a DC of 5 +the damage taken, unless the damage is radiant or from a critical hit. On a success, the zombie drops to 1 hit point instead. Ash Puff. The first time the zombie takes damage, any living creature within 5 feet of the zombie must succeed on a DC 10 Constitution saving throw or gain disadvantage on attack rolls, saving throws, and ability checks for 1 minute. A creature can repeat the saving throw at the end of each of its turns, ending the effect on it early with a successful save. ACTIONS Slam. Melee Weapon Attack: +3 to hit, reach 5 ft., one target. Hit: 4 (1d6 + 1) bludgeoning damage.
1431198183
Kryx
Pro
Sheet Author
API Scripter
It imported correctly for me. Please ensure you have the latest version. If you're saying Ash Puff is not put into actions then that's correct. I have plans to revamp traits so that they can be used as well, but that is not currently possible on the sheet or the importer.
It was the slam that was not being added
Using the latest script, I had an issue with Worg not getting its bite action. It ended up in traits, I had it with and without the description at the bottom.
1431237185
Kryx
Pro
Sheet Author
API Scripter
Any issues please post the whole creature block.
Yeah i was mobile, heading to bed. WORG Large monstrosity, neutral evil Armor Class 13 (natural armor) Hit Points 26 (4d10 + 4) Speed 50 ft STR 16 (+3) DEX 13 (+1) CON 13 (+1) INT 7 (- 2) WIS 11 (+0) CHA 8 (-1) Skills Perception +4 Senses darkvision 60 ft, passive Perception 14 Languages Goblin , Worg Challenge 1/2 (100 XP) Keen Hearing and Smell. The worg has advantage on Wisdom (Perception) checks that rely on hearing or smell. ACTIONS Bite. Melee Weapon Attack: +5 to hit, reach 5 ft, one target. Hit: 10 (2d6 + 3) piercing damage. If the target is a creature, it must succeed on a DC 13 Strength saving throw or be knocked prone.
1431280628

Edited 1431282164
Also, as I've been converting more and more. I'm not sure if this is something on your to do list or not but prof bonus to saves and skills, are those suppose to convert or require manual intervention?
1431285320
Kryx
Pro
Sheet Author
API Scripter
Greg B. said: Also, as I've been converting more and more. I'm not sure if this is something on your to do list or not but prof bonus to saves and skills, are those suppose to convert or require manual intervention? They should. Are they not working? Prof have been working from what I saw. Bonuses should be rare and only exist when WotC's math is bad. I'll check the worg soon.
I feel kind of ridiculous for having to ask this but.. How do I get this to work? I've installed the script correctly, but I am entirely lost on where I need to put the stat blocks before the "!shaped-import" command goes into chat. Journal GM Notes? Token notes?
1431289973
Kryx
Pro
Sheet Author
API Scripter
Mark said: Importer: Usage: See Install above Launch your campaign Open the token's properties and in the "GM Notes" section paste the creature's stat block from the MM Select the token In the chat type !shaped-import (or !build-monster or !shaped-parse) ("!shaped import --clean" will recreate the whole sheet) Wallah! (You'll see log details back on the API scripts page) I've updated the instructions in the op. That should be clear hopefully. Please let me know if that's confusing at all
Mark said: Greg B. said: Also, as I've been converting more and more. I'm not sure if this is something on your to do list or not but prof bonus to saves and skills, are those suppose to convert or require manual intervention? They should. Are they not working? Prof have been working from what I saw. Bonuses should be rare and only exist when WotC's math is bad. I'll check the worg soon. I've had to them manually. Most recent ones were chasme and shadow demon, bearded and barbed Devils. Had to do them all manually, skills and save prof.
Ah! Okay got it thank you so much &lt;3 This is going to save me a lot of time.
1431290678

Edited 1431290746
Kryx
Pro
Sheet Author
API Scripter
Worg imported perfectly for me: Perception is set as an expertise with no bonus. Bite is put into actions. It sounds like something is wrong with your script. Make sure you're using the latest: <a href="https://github.com/mlenser/roll20/blob/master/scri" rel="nofollow">https://github.com/mlenser/roll20/blob/master/scri</a>... And using "!shaped-import" Make sure you're using the latest and if you're still having issues I can look at your campaign directly if you invite & GM me.
Mark said: Worg imported perfectly for me: Perception is set as an expertise with no bonus. Bite is put into actions. It sounds like something is wrong with your script. Make sure you're using the latest: <a href="https://github.com/mlenser/roll20/blob/master/scri" rel="nofollow">https://github.com/mlenser/roll20/blob/master/scri</a>... And using "!shaped-import" That is what I was using. The prof bonus worked on the import but not on the convert. I will re download the script and try again. i wonder, do I have to have it set to allow the token action macro to be created? I current have that off, maybe that's doing it on the import?
1431291090
Kryx
Pro
Sheet Author
API Scripter
Why not just import? You have the full stats there. And no, you don't need token macros, though you would've had to remove that part of the script yourself as I didn't make it a configuration.
Mark said: Why not just import? You have the full stats there. And no, you don't need token macros, though you would've had to remove that part of the script yourself as I didn't make it a configuration. Will it overwrite the existing character? I guess I assumed it wouldn't, which is why you created the converter.
1431294246

Edited 1431328278
Kryx
Pro
Sheet Author
API Scripter
It will overwrite the old sheet if it is named the same, ya. You can use "!shaped-import --clean" to remove the old sheet and create a new one. Conversion is only for people with pre-existing creatures who don't have the stat blocks on the creatures. I'd suggest using import if possible. Conversion expects a specific format based on the old importer which is impossible to enforce.
Gotcha ok, that will be my new standard method.
I was wondering? Is it possible to maybe create a separate version just for spells and parse them as an ability in a similar fashion? Seems like most people just reference them this way anyways..
1431328416
Kryx
Pro
Sheet Author
API Scripter
A spell importer has been mentioned before. It would require a fair amount of work which I don't currently have the time for. If I were to make it then I would have them import as spells. I don't have numbers, but based on the requests to sort the spellpage I believe most users do indeed use it. You're the first that I know of that does not.