Update 6/8/2020: We have decommissioned (and removed) many endpoints used by our older Character Sheet. These routes were never publicly supported, and are being removed to avoid potential issues with data freshness and accuracy. We continue to explore the opportunity to provide a supported, documented API in the future.
Hello! We are excited to announce that we have rolled out the new Character Service to all users. This is the culmination of 9+ months of work by the D&D Beyond Character Sheet team, and represents an important improvement in our technical platform to scale well into the future.
Here’s some of the technical improvements we’ve achieved with this update:
- Server resources: 48 CPU per node -> 4 CPU per node
- Average response time: 150ms -> 45ms
- Get Character response time: 762ms -> 268ms
- Page load time: 5.95 sec -> 2.48 sec
Again, this has been a monumental effort and represents a huge step forward in scaling DDB for the future. I’d like to thank the entire DDB Engineering team, but also specifically the Characters Team - Craig, Jason, Julie, Pasquale and Scott.
Features
- Large rewrite to the underlying sheet/builder application.
- One bundle, so we can cache required files better and download less data
- Lazily make requests for many pieces of data that were always included that are not needed for most interactions in the sheet/builder
- Less image requests and more integrated SVGs for smoother transitions and visuals available quicker.
- Update technologies to give us quicker iterations with more confidence in the changes.
- First service fully using the entitlement service.
- Substantial performance gains when accessing paid content, as well as a central source of truth.
- Snippet rewrite
- Full order of operations and nested parentheses support. Ex: {{2+((classLevel/2)+1)}}
- Catches more invalid snippet syntax
- Can no longer have curly braces as a renderable character. Any curly braces that aren’t used to identify a snippet “{{snippetCode}}” will be replaced before they are shown.
- PDF generation now returns a URL instead of directly downloading it in your browser. This allows you to download the pdf for yourself, or easily send it to someone else.
- Added a way to remove all customizations from things in the sheet. There is now a “Remove Customizations” button in “Customize” section on Items, Spells, Actions, Creatures
- Character Sheet/Builder version can now be found at the bottom of the preferences UI
- Add skill advantage/disadvantage information to the sheet. Shows both in the main Skill box and when you click a skill in the sidebar it will have the full summary. Note: This will be added shortly after the new service goes live.
Fixes
- Fixed issue with auth failing after opening your sheet after it has been opened for day(s) at a time. This would normally error out and force you to refresh your sheet in order to re-auth with the server.
- Fixed dual wielder feat giving bonuses for unequipped items
- Fixed custom attacks missing from PDF
- Fixed remaining fuel not persisting on Infernal Machines
- Fixed magic items with spells crashing the sheet if the charge usage could scale the spell past level 9.
- Fixed feat option actions crashing when clicking them in the sheet to view more info in sidebar
- Fixed Wildshape calculation issues with skill and saving throw numbers
- After talking about it we are going to do two things:
- Fix expertise
- Fix half proficiency
- The rest we are going to leave as is, until we can get any further official clarification. The two options that are still at the heart of the problem in an example where the creature is proficient and the character is not
- The creature gives proficiency to the character and you take the higher of the two.
- The creatures skill number is the amount you get
- We decided to keep ours as option 1 in this situation for now.
- Fixed bug with overriding skill stat. Modifiers would not match the overridden stat. For example if you changed Athletics to DEX, any modifiers that gave you bonuses to Dexterity Ability Checks, would not have hit Athletics.
- Fixed issue with armor not applying a -10 adjustment to speeds if you didn’t meet STR requirement and you are not using Variant Encumbrance.
- This was undocumented bug, and found it when figuring out why speeds were different than before for low STR characters
- Fixed issue with being able to add more than 10 creatures at a time if you entered in the number and hit add.
- Maximum of 10 was not enforced on manual data entry in SimpleQuantity component
- Fixed certain customization fields not enforcing server validation rules.
- Things like minimum values and max string length. This is for things like custom actions/items/skills and vehicle/creature names
- Set validation constraints on character HP fields (current, temp, and max)
- Fixed Currency UI in builder to validate min/max integer allowed and provide error messaging
- This was an pre-existing bug from before and currently on Prod, but fixed to match updates we made to the Currency Pane
- Set validation constraints on character description fields for Age and Weight.
- Fixed manual rolled HP to obey validation constraints.
- Fixed issue with sorting some class features. This most likely was only affecting subclass features.
- Ex: Knowledge domain cleric’s class feature “Blessings of Knowledge” was at the top of the level 1 class features, and is now at the bottom based on its display order of 100
- Fixed issue with magic staves not being able to be marked as “Hex Weapon” or “Pact Weapon”
- Mundane staff will still not work until the backend adds a quarterstaff weapon behavior to it
- You will now see disadvantage on STR/DEX saves/skills If you wear armor you are not proficient in.
Nice work - I'm sure this will pay a lot of dividends in future enhancements.
Great news and awesome features/fixes. However the druid wildshape is pretty straightforward and explicit:
So, it's actually neither option: you have the creature's physical stats, you have your own mental stats; you have the proficiencies of both and calculate using these stats; if both you and the creature are proficient, use the higher number ( = yours, except if the creature 's bonus is higher). If either you or the creature.were proficient, but not both, then you are now proficient and calculate according to the new ability scores.
Would you say this is the 3rd biggest revamp since launch? The Character Sheet revamp, and there was something else on the back end, IIRC.
Anyways, Congrats!
Excellent news!
Awesome. Hope this is coming soon if it's not already rolled out! :)
EDIT: Also, did the new character sheets fix the most minor bug - i.e. every custom entry having a button labeled "remove attack" to remove it, even if it's not a custom attack? :P
It's something that's been debated for years: https://rpg.stackexchange.com/questions/136066/what-values-do-i-recalculate-when-i-wild-shape
Does this mean class feature variants are live now?
No, this is without any doubt the biggest framework change we have made by factors.
The "character sheet revamp" in our first year was definitely a good bit of work, but it was mostly display/appearance and getting the UI as "right" as we could. This was a considerably larger lift.
My bad, I meant in the top 3. The Character Revamp might not had a lot of backend done, but it was huge from our side.
Very cool! Awesome features /fixes.
Phenomenal work. So excited for everything this means for future UA material, homebrew materials, and the variant features functionality!
Holy moly, that's a lot! Thanks for your hard work, I'm sure refactoring such an important piece of the software will pave the path to great features in the future.
That's awesome. Thank you all so much, we appreciate the hard work! I will continue to shout your triumphs from the mountain tops as I recommend your services to all my friends.
Will there be any fixes when it comes to being able to get the same spell twice? An example of this is a forest gnome illusion wizard who gets minor illusion twice. Or a spell caster who takes the spell sniper feat is able to choose a spell they have already chosen.
But... it's plain and simple English... and quite explicit too...
Basic rule: as per PHB, skill checks are plain ability checks; and you additionally add your prof bonus where applicable. So if an ability score changes, the skill bonus also changes. Saving throws are practically the same too. The character sheet skill and saving throw values are just simply adding these values for you so you don't have to add them every time you roll.
The creature has proficiency with skills and saving throws that are listed in their saving throw and skill section; for everything else they just use the base ability score. And those listed values are not "arbitrary numbers", those are simply just precalculated values of stat bonus + proficiency bonus.
The 4th point is only ever needed in certain special cases, e.g. when the creature would get "double proficiency" or other bonuses to a certain skill, e.g. Panthers get double prof bonus to Stealth (Their perception is +4 (wis +2; prof +2); their stealth is +6 (dex +2, prof +2; prof +2)).
And about the link...
OP gives an example where they have proficiency in a skill as a druid, and gets confused by a tweet that says "if your druid is not proficient", which refers to a different case... and continues building the case on this misunderstanding...
Is this going to break Beyond20 *scaredface*
I'm seeing my character have advantage on all skill checks due to having the wand of binding attached.
This should be resolved now. You will still see the Advantage (A) on Athletics and Acrobatics. And if you click on either of those skills, you will see this description in the sidebar:
That is amazing.
....Is the wagon a vehicle yet, or does it still pop up in inventory?
According to the PHB, the wagon should pop up in the inventory. ;)
Do you plan on bringing Character Sheets into the App? If so, when?