@keith respectfully disagree, because the points you made do not address the topics I brought up. If you go for a Pro Subscription, you obviously are asking for more features, and complexity comes with more features. What I'm saying is that the Shaped Sheet adds value to the dollar for it's design, while the OGL sheet does not add enough. Strictly talking about the API features, which are limited by the framework of the Roll20 design and inherently faulty lack of uniformity in that framework. At the free level, the OGL sheet works. At that level, a discord app, pen and paper, D&D Beyond, and various other methods work that don't even need the sheet anyway. But for the pro subscriber, the line between free and sub is honestly tangible; negatively in the case of OGL, positively in the case of Shaped. This is the point I'm making. To detail: OGL Commands List: !5ehelp - Gives a list of the script's API commands in the chat tab. Ok feature, but simple outputting of this list. Not very interactive. !5estatus - Lists the current status of the script's features in the chat tab. "What's on or off?" Again, simple outputting, not very interactive. !ammotracking on/off/player/quiet - Automatically expends linked resource when attack is made. First interactive feature. Useful. Mirrored in Shaped Sheet !autonpctoken on/off - Automatically generates a NPC token on the GM's screen based on the default token when an NPC's health calculation is rolled. Should be a standard, but I guess if for some reason you want to turn it off, meh. Not very useful.
!deathsavetracking on/off/player/quiet - Automatically ticks off successes and failures when death saves are rolled, clearing on death, stabilization, or hp recovery. Useful when 2 rolls aren't being rolled, otherwise it can't track. This feature works the same as the Shaped Sheet, which also can't track death saves when 2 rolls are being made.
!spelltracking on/off/player/quiet - Automatically expends spell charges as cast, factoring in higher level casting. Useful as much as ammo tracking, so very. Have to remind yourself that OGL deducts from the full amount rather than adds a tick as you would in p&p.
!longrest character name - If spelltracking is on, this command will reset all of the character's spell slots to unspent. It should reset all attributes - half HD for long rest, Resources that reset on long rest, etc. But it can't track the resources, since they aren't keyed to long rest ... which is a failing of the sheet structure itself. In addition, where is short rest altogether? In all, Shaped comes out superior in every way on tracking Short/ Long rest usage and reset. !npchp character name - Rolls NPC hit point
totals using their formula and updates the token bar. If no character
name is provided it will roll the selected tokens. Again, should be a default. I guess if you want to reroll? Meh, useless. Dragging a 2nd token and deleting first accomplishes this task quicker. Total = 2-4 Useful API features, 1 doesn't work fully effectively (it doesn't on Shaped either though), and 1 is completely underdeveloped/ next to useless. I'm not going to count the total for these, you may if you wish. But even with a few that are sketchy or difficult to use (Pulling info from monster statblocks was always dicey), the Shaped API can still beat 2-4 useful features. THIS is why Pro subs win with Shaped vs OGL. Sure, some like simplicity over complexity, but those people benefit more from a free account than a paid one. So, as a Pro Subscriber, who looks for the value added benefits of my subscription, the Shaped sheet provides where OGL does not. It's not a subjective "Some people like" opinion, it's something based on raw numbered facts. Full command list
!shaped-statblock
Imports details from a text statblock into a Roll20 character. The
statblock must be inserted into the GM notes field of a token ( not
a character!) and the token must be selected before running this
command. The imported character will be configured with the default
settings that you specify in the default character settings configuration . In addition the tokens you use will be configured according to the default token settings configuration ready to be set as the default token for the character.
Options
--overwrite if the selected token already
represents a character in the journal, the import will fail to avoid
accidentally overwriting data, unless you supply this option to confirm
that you wish to do so. --replace if there is already a character in the
journal with the same name as the one you are importing, the import will
fail, whether or not the current token represents that character. This
is to avoid creating loads of duplicates by mistake, which is almost
never what you want to do. If you supply --replace the
script will overwrite any character with the same name, unless there is
more than one, in which case it will fail rather than risking
overwriting the wrong one. Note that --replace implies --overwrite .
Selection
You must have at least one token selected. If you have more than one,
it will attempt to import a statblock from each one in turn. When
importing, each token will be set to represent the newly created
character for it, and the script will also attempt to set the avatar for
the character to be the token graphic<sup> 1 </sup>.
!shaped-monsters
Displays a list of monsters in the currently loaded JSON database.
The list is displayed in the chat window and includes buttons to filter
the results on Type, CR and Size. The old "Click to select a
monster/spell" query input ( !shaped-monster ) is
available as a link at the top of the monsters/spells listings. Clicking
a monster that is already imported won't remove it.
!shaped-monster
Imports details of named monsters from a database of custom monsters
loaded as a separate script. The imported character will be configured
with the default settings that you specify in the default character settings configuration . In addition the tokens you use will be configured according to the default token settings configuration ready to be set as the default token for the character.
Options
--<monster name> (e.g. --Lich )
specifies a monster to import. You may supply multiple monsters as
separate options, or you may supply multiple in one option separated by
commas ( --Ghoul, Zombie, Ghost ) --overwrite if the selected token already
represents a character in the journal, the import will fail to avoid
accidentally overwriting data, unless you supply this option to confirm
that you wish to do so. --replace if there is already a character in the
journal with the same name as the one you are importing, the import will
fail, whether or not the current token represents that character. This
is to avoid creating loads of duplicates by mistake, which is almost
never what you want to do. If you supply --replace the
script will overwrite any character with the same name, unless there is
more than one, in which case it will fail rather than risking
overwriting the wrong one. Note that --replace implies --overwrite . --as <new name> if supplied, the new monster will be given the name specified instead of the default name defined in the database.
Selection
You may no or 1 tokens selected when running this command:
If you have no tokens selected, this command will just add the new characters to the journal. If you have 1 token selected, and you are importing one monster, the
script will attempt to use the token image as the avatar for your new
character<sup> 1 </sup>, and will also set the token to represent the newly created character If you have 1 token selected and you are importing more than one
monster, the script will only attempt to use the token image as the
avatar for your new character<sup> 1 </sup>.
<a name="avatar-note"/><sup>1</sup> Note that
avatars will ony successfully be set for token images from your library,
not marketplace or web content. This is due to security restrictions
within the Roll20 platform. If you really want an image as a character
avatar, please unpload it to your library and then create a token from
it before doing your import.
!shaped-monster-by-token
This basically does the same thing as !shaped-monster ,
except that instead of passing it a list of monsters as parameters to
the chat command, it infers the names of the monster to import from the
names of the selected tokens. This is a quick way to configure and
import a whole bunch of monsters all at once. Find the tokens you want
for all your monster and drag them to the tabletop; name the tokens
according to the monsters they represent, select them all, and run this
command. It will find monsters by name from your custom JSON database,
and configure each token to represent the new characters it creates.
Options
--overwrite as for !shaped-monster --replace as for !shaped-monster
Selection
You must have at least one token selected for this command. As
described above, it will use the name assigned to each token to lookup
the monster it will represent from your JSON database.
!shaped-spell
Alias !shaped-import-spell *
Imports details of named spells from a database of customer spells
loaded as a separate script. All spells will be added to the currently
selected character.
Options
--<spell name> (e.g. --Fireball )
specifies a spell to import. You may supply multiple spells as separate
options, or you may supply multiple in one option separate by commas ( --Fireball, Lightning Bolt, Wish ) --overwrite If this option is included, the script
will ovewrite existing spells with the same name with the new spells
requested, otherwise they will be skipped
Selection
You must have exactly one token that represents a character selected when running this command.
!shaped-spells
Alias !shaped-list-spells
Displays a list of spells in the currently loaded database that match
the supplied criteria. Each spell will be a link to either import and
delete the spell, depending on whether the selected/supplied character
already has that spell in their spell list or not.
Options
--character <characterID> If there is no token selected, you must supply a character id for the character whose spells are to be edited.
Selection
You can have up to one token that represents a character selected when running this command.
!shaped-at
Gives the selected character advantage or disadvantage, or neither.
Options
--advantage give the selected character advantage --disadvantage give the selected character disadvantage --normal clears (dis)advantage status for the selected character --revert turns on auto revert advantage/disadvantage for the selected character --persist turns off auto revert advantage/disadvantage for the selected character
Selection
You must select at least one token that represents a character. The
specified setting will apply to the characters of all selected tokens.
!shaped-abilities
Creates token actions for your character as shortcuts to a variety of rolls and other actions from the sheet.
Options
--advantageTracker - create 3 abilities, one for each Advantage Tracker option (Advantage, Disadvantage, Normal) --advantageTrackerShort - create 3 abilities, one for each Advantage Tracker option, but with shorter names (Adv, Dis, Normal) --advantageTrackerShortest - as advantageTrackerShort , but omit the "normal" option (for use with the auto-revert advantage option) --advantageTrackerQuery - create an ability to set an Advantage Tracker option from a drop-down query --offense - create an ability for each offense present in the character sheet --offenseMacro - create an ability to launch chat window offense buttons --utility - create an ability for each utility present in the character sheet --utilityMacro - create an ability to launch chat window utility buttons --racialTraits - create an ability for each racial trait present in the character sheet --racialTraitsMacro - create an ability to launch the chat window racial traits buttons --classFeatures - create an ability for each class feature present in the character sheet --classFeaturesMacro - create an ability to launch the chat window class feature buttons --feats - create an ability for each feat present in the character sheet --featsMacro - create an ability to launch the chat window feat buttons --traits - create an ability for each trait present in the character sheet --traitsMacro - create an ability to launch the chat window traits buttons --actions - create an ability for each action present in the character sheet --actionsMacro - create an ability to launch the chat window actions buttons --reactions - create an ability for each reaction present in the character sheet --reactionsMacro - create an ability to launch the chat window reactions buttons --legendaryActions or --legendaryA - create an ability for each legendary action present in the character sheet --legendaryActionsMacro - create an ability to launch chat window legendary actions buttons --lairActions or --lairA - create an ability to launch chat window lair actions buttons --regionalEffects or --regionalE - create an ability to launch chat window regional effects buttons --initiative - create an ability to roll initiative --saves or --savingThrows - create an ability to launch the chat window save buttons --savesQuery or --savingThrowsQuery - create an ability to launch the save drop-down query --abilityChecks or --abilChecks - create an ability to launch the chat window ability check buttons --abilityChecksQuery or --abilChecksQuery - create an ability launch the ability check drop-down query --statblock - create an ability to launch a chat window statblock display --spells - create an ability to launch chat window spellbook display --rests - create an ability to do a short or long rest (pops up a query to ask which) --DELETE - delete all abilities on the token (including those not created by this script)
In addition, you can pass the names of spells like --Fireball
to create token actions for each spell. Obviously the character in
question must actually have this spell in its spellbook for this to
work.
Selection
You must have at least one token that represents a character selected
for this command to work. If you have multiple characters selected you
cannot specify spells in the options since the different characters may
have different spells.
!shaped-config
Display configuration UI to change default behaviours. The significance of all the options is detailed below
!shaped-apply-defaults
Apply the same defaults that are used when setting up tokens on
import to whatever tokens are currently selected. Useful for
mass-configuring manually created tokens. See below for more details on what these options are.
Selection
You must have at least one token that represents a character selected for this command to work.
!shaped-rest
Applies the effects of a long or short rest, or a turn recharge
Options
--long Long rest --short Short rest --turn This will perform a 'turn recharge' - resetting uses for all actions/traits/etc that have X/turn usages. --character Apply the rest to the supplied character id instead of the selected tokens
Selection
You must select at least one token that represents a character unless
you supply the --character option. The selected character(s) will have
the effects of the specified type of rest applied to them.
!shaped-update-character
Triggers any pending character sheet upgrades for the selected
characters. When a new version of the character sheet is released, there
are often upgrade scripts that must run before previously created
characters can be used with it. Normally these are run the first time
you open each character sheet. For convenience, you can use this command
to trigger these updates on batches of characters without having to
open their sheets.
Options
--all Apply any pending character sheet upgrades for all characters in the current campaign. Note that this might take a long time in a large campaign - use with caution!
!shaped-expand-spells
When you drag characters from the SRD/Compendium, they are imported
with a spell list, but none of the spells have any content. This command
will expand these "stub spells" using data from a custom spells
database, if one is present.
Selection
You must select at least one token that represents a character. The
selected character(s) will be checked for empty spells and these will be
expanded from the custom JSON database.
Selection
Unless you specify --all you must have at least one token that represents a character selected for this command to work.
!shaped-remove-spell
Removes spells from the selected character.
Options
--all If supplied, remove all spells from the selected character. --<spell name> Remove spells by name from the
selected character. You may supply multiple spells as separate options,
or you may supply multiple in one option separate by commas ( --Fireball, Lightning Bolt, Wish )
Selection
You must select exactly one token which represents a character.