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.
Not sure if the root issue is the same, but I’m similarly seeing advantage on all skill checks when Obsidian Flint Dragon Plate is equipped.
Mobile Character app is currently in closed alpha - there was an application window a couple of months ago, and you had to be a subscriber to enter the lottery. Its been pretty quiet since then. I wouldnt expect it to be Soontm
There is progress there, although the play store giving them a bit of a headache too...
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.
YAY!!!
great work!
Looking forward to temporary spell effects being applied when cast.
and advantage/disavantage on skills being noted on the skills section. (EDIT: just noticed this is a thing now, misread it at first look and though it was applied to only one occurance)
I know that might be a big lift, so maybe we could get. custom text block on each section (eg., saving throws, skills, AC.) so we could write in our own conditional modifiers?
Keep uo the great work guys and gals!!!
Apart from several hiccups over the site that will obviously be fixed (rule-based filters in the extras tab, Observant feat, etc) will we eventually get a "if not proficient: proficiency; if proficient: double prof. bonus" option for feats/magic items - or at least the value of the prof. bonus be selectable as a bonus value?
Additionally, dwarves should not have their speed reduced for wearing heavy armour...
Sounds like a huge amount of work, kudos! I'm a recent D&D Beyond convert and it's increasingly hard to imagine not using this in my games.
> You will now see disadvantage on STR/DEX saves/skills If you wear armor you are not proficient in.
I am indeed seeing this, however my cleric has the Heavily Armoured feat, so I ought not to be! Working around by manually adding proficiency in the heavy armour I wear.
Can we please have the ability to set Advantage/Disadvantage manually on skills now (including custom ones)?
I’m not sure if it’s related to this specific update, but I can no longer customize spells to display as attacks. Please return this functionality, as I now have cantrips like “green flame blade” that aren’t listed under actions or attacks. Which seems quite wrong. As I progress with my character, this is only bound to create more confusion with other invocations / spells / abilities.
Green Flame Blade and Booming Blade are not attack spells; they only modify the damage like Sneak Attack while you really use your weapon attack; and they do appear in the notes part for each applicable weapon in the Attacks list. I see how it could be beneficial to see them in the Actions list since you technically use the Cast Spell action; on the other hand the attack and damage is based on what actual weapon you use for the attack, which means it would need a lot of exceptional handling - meanwhile adding their damage modifier to applicable weapons is simple, and it's easier to see if you can even use it.
how does it work? i'm still confused
How does what work, exactly?