CS5e is a simple, free, online character sheet manager for use with the Dungeons & DragonsTM 5th edition tabletop roleplaying game.
Save paper and stay organized by storing your character sheets online.
A valid sheet code is 3-5 characters, comprised of uppercase letters and numbers.
It is recommended (but not required) that you access CS5e with the latest version of Chrome or Firefox.
announcement Update: Development hiatus
It's been a while since I posted anything here. The truth is, my vision for version 2 of CS5e is far too ambitious for me to tackle on my own at this time. This version is and has been "good enough" for my own purposes, and I've thus been unable to gather the motivation to push forward with development. My personal life has also been a bit more hectic as of late. So, for now, I've decided to put this project on hiatus. The service will stay online, of course (I'm using it, myself) but little to no development will take place until further notice. I'll pick it up again, with gusto, some time in the future.
That said, I do have an idea bouncing around in my head for a clean-ish way to implement image support for character portraits and organization symbols into the current version, and it may or may not show up in the near future. That was, after all, a planned feature of version 1.
announcement Version 2 in development
When I first started this project, some choices were made that allowed rapid development at the cost of code quality. While this got the project up and running faster, it meant that eventually those issues would have to be addressed. While I took care to write the code in very generic and modular ways whenever possible, a few of these shortcuts have proven extremely difficult to replace. They have even held up implementation of what was originally supposed to be a core feature: character portrait uploads.
As I have been working to improve CS5e over the past month or so, it has become increasingly clear to me that much of the code simply needs to be rewritten. I always intended a full rewrite at some point, so this isn't completely out of left field. Maintaining data compatibility with this version will be a primary objective of the rewrite, as will reimplementing all current functionality. So, when the new version is ready, you'll be able to bring all your characters with you.
I have no plans to shut down this version of CS5e, so feel free to continue using it while the new version is under development. If you are interested in contributing to the development process as a tester, please use the contact form below to get in touch. At this time, I am not seeking additional developers.
help_outline Frequently Asked Questions
Is this really free? Will it always be free?
In a word: YES.
This project was born out of my love for D&D and my desire to stay more organized across the multiple groups and campaigns I play. This is a tool I use myself, and I gladly provide it as a service to all, free of charge.
Can you add _____ feature?
CS5e is currently undergoing a rewrite. Going forward, the only updates this version will receive are bugfixes.
What if I forget the password for a character sheet?
Because CS5e stores passwords as cryptographic hashes, recovering a lost password is impossible.
However, if you took the prudent step of setting a password recovery e-mail address for the character sheet in question, you can have the password reset.
The alternate_email button in the tools panel build can be used to set your recovery email address.
Use the contact form below with the 'Forgot My Password' subject. Be sure to include your character sheet URL and use the same e-mail address as your sheet's recovery address.
info_outline Known Issues
Some users have reported issues using CS5e after Windows 10 installed updates.
The specific cause of this is unknown.
One user reported success restoring Google Chrome's functionality by reinstalling the browser.
Wait about 5 seconds and the display should catch up.
This was not always the case, and began presenting itself without changes to CS5e.
I suspect an update to the OS may be the cause, but I have not confirmed this.
Trying to navigate "back" doesn't work after loading a sheet
Only affects the given tab, not browser history
"Back" is usually the landing page, for which there is a menu button home
change_history Change log
2020-06-13: QoL: Bigger, Smaller, and Unbound
Quick-loading no longer forces a random sheet code when the one supplied is valid and unused
Attribute minimum and maximum caps can now be disabled in the options settings panel
2019-05-23: Another QoL improvement
The following fields can now be hidden when printing:
Current hit dice
Spell slots used per level
Toggle "Transient fields in print" off in the options settings panel to:
Hide these fields when printing your sheet
Highlight these fields with a dashed border while focused or hovering
2019-04-14: Small quality-of-life improvement
The CS5e.net landing page now has an input field for a sheet code.
This means it will take fewer clicks to load existing sheets when a user lands on the home page.
Several people voiced frustrations over this recently. This improvement will be brought forward to the next version.
Some layout and sizing bugfixes surrounding the use of number fields
Documented a couple more known issues
This version of CS5e will now be maintained in a bugfix-only capacity
Attacks can now be rearranged
You can now change the order of the six attack slots on the first page.
Click the swap_vert icon between the slots to swap the the two adjacent attacks.
The experience field is now calculable (see 2017-08-11 change log)
There is a new button in the menu for the tools panel build.
Functions that require the sheet to be saved are now located in this new panel.
vpn_key Change password
edit Change sheet code
Added ability to set a password recovery e-mail address
You can set the sheet's password recovery e-mail address alternate_email in the tools panel build.
Because of the way CS5e stores sheet passwords, it is impossible to retrieve a lost password.
If you forget your password, you can now use the contact form on cs5e.net with the 'Forgot my password' subject.
Be sure to use the same e-mail address on the contact form as your sheet's recovery address.
Automatically calculate attribute modifiers
CS5e can now optionally fill in the modifier field for each of the six base attributes.
This is off by default, but can be enabled in the options panel settings.
Various other tweaks
The tools build and options settings buttons are now colored with a blue hint when their respective panels are open.
While calculable fields are enabled, affected input fields will be colored with a green hint on hover and focus.
The six attribute fields and the alternate inspiration field are now numerical input elements.
This made calculating the attribute modifiers a little easier.
Colors in the dark theme have been tweaked slightly to improve readability, particularly in the options panel settings.
Some more code cleanup
2018-06-13: Attacking the Darkness
A dark theme can now be enabled in the options panel settings.
This should improve battery usage on mobile devices.
It's also better for sensitive eyes and darker environments.
Removed some old code from when the data model changed.
2018-05-11: Some small performance improvements
HTTPS is now available. I strongly encourage all users to begin accessing CS5e securely.
Bookmarks and home screen shortcuts will need to be updated to take advantage of this.
New domain name: cs5e.net
All users should update their bookmarks and home screen shortcuts.
The cs5e.online domain will cease to function after December 20, 2017.
Improved the deployment process for updates
No code changes, but there were a few minutes of downtime during migration
Calculable fields can now be disabled in the options panel settings
They are enabled by default for new and existing sheets.
2017-08-11: Calculable fields
The following fields now have some basic arithmetic support:
Maximum hit points
Current hit points
Temporary hit points
Coins (CP, SP, EP, GP, PP)
CS5e was not respecting orientation lock for mobile users who added it to their home screen.
Some users experienced unexpected behavior when triggering several server requests in rapid succession.
Entering a non-number (like an empty string) into the notes pages option field caused some undesired behavior.
Menu UX tweaks
The menu is now always available at the top of the document.
With the menu "closed," it stays at the top of the document and scrolls out of view.
"Opening" the menu behaves as before, granting access to it regardless of scrolling.
Complete rewrite of client-side XHR
This is a step towards implementing file uploads for the character portrait and organization symbol fields.
Mask and spinner added
This further helps to address the unexepcted behavior mentioned above.
Prevents accidental double-clicks by masking the entire interface while a request is being processed.
Page toggle animations removed
I've been giving it some thought, and if I'm honest the sliding-in animations are unneccessary. They're cool, but they slow the app down a little and I'm starting to have to jump through hoops to make new features play nice with them.
The loading spinner (as well as the new XHR spinner) will remain, as they are simple enough and actually have a function in that they indicate to the user that their client is currently communicating with the server.
I was also able to significantly clean up the menu animation after implementing its new behavior, so it can stay as well.
The contact form now has a field for a character sheet URL.
Please use this field when submitting bug reports.
I will copy the data locally to reproduce bugs in my development environment.
I also added some validation hints that appear when there is invalid form data.
More notes pages
Sheets can now have up to 10 pages of notes, instead of just one.
The option settings for showing notes pages is now a number field.
Because the data type of the option field has changed, and to preserve existing notes:
A data migration routine will run automatically when you load your sheet.
Your data will only be updated on the server when you save.
If you load a sheet that has notes data, and the data is not loading correctly, use the contact form below to file a bug report and let me know.
I've tested against my own data and everything looks good, but you never know.
Implementing more notes pages forced me to revise several pieces of code:
Option pane of the menu
Option change handlers
Checking for unsaved changes
Loading data from the server
Again, I tested this heavily as I went along, but if you happen to notice anything amiss, particularly with the above, please send a bug report.
Slight landing page CSS overhaul
Significant readability improvement for mobile devices
More consistent rendering across platforms
Restyled character sheet menu buttons
More consistent rendering across browsers and platforms
App manifest added
Adding CS5e to your home screen on mobile devices will now hide the browser UI.
This grants slightly more screen real estate.
More functionality like gesture controls may be added in the future.
I noticed a couple intermittent issues with the auto-indent behavior on my tablet yesterday.
Since I'm having trouble pinpointing the cause, I've disabled auto-indent for mobile devices.
I'll probably end up rewriting that feature entirely (again) when I have some more time and patience.
Mobile devices will also no longer try to bind keyboard shortcuts.
2017-07-05: Added a contact form on the landing page
Whoops, I broke it.
When I originally pushed today's update, there were apparently a couple small—but critical—problems with my code.
Everything should be fixed, and I'd like to clarify that this had no effect on character data.
I apologize for the inconvenience.
While testing recent updates, I've noticed that my browser's cached version of assets like scripts and stylesheets caused some undesirable behavior.
Today's update should address this. Requests for assets after the initial page load are now prepended with a checksum of all assets as they exist on the server.
This should allow browsers to continue to cache assets (speeding up the app), while ensuring that you're always loading the latest version of those assets.
Added a couple more animations
Disabled all animations (except the loading spinner) on mobile to help keep the app snappy
Some back-end code optimization
The menu now slides in/out from the top of the viewport
The spellcasting and notes pages now slide open/closed
2017-06-24: Some code optimization
2017-06-22: Loading animation added
Previously, CS5e threw everything at the browser and assets like fonts and page designs became available whenever they finished downloading. This caused things to "pop in" as they loaded, and in general made the app look sluggish on first load.
Now, while assets are loading, the user is shown a loading animation built using a small amount of CSS. The user is only presented with an interface after everything is ready.
Not only does it look cool (if I do say so), the initial page load now feels snappier.
Click the sheet code in the upper-right of any page to copy the sheet URL to your clipboard.
Tested working in Chrome and Firefox on PC, Chrome on Android
New option: Show alternate Armor Class field
A second AC field can now be enabled, allowing you to keep track of an alternate AC value.
This is useful for characters whose AC can change, for example, by casting Mage Armor.
Added one more "secondary" attack slot
Slight code optimization
2017-04-15: Some small code optimizations and refactoring
Rendering of the options panel settings has been tweaked to improve usabilty on touch devices.
Added an FAQ section to the home page.
2017-04-08: New option: Use text for Inspiration
For players whose DM chooses to award multiple inspiration points, the field can now optionally be text instead of a checkbox, allowing for the entry of numbers.
2017-03-29: Bug fix
Keyboard shortcuts in some browsers were still triggering the browser's default behavior.
Keyboard shortcuts (Ctrl+S, etc) were broken by the previous update
Skill and saving throw modifier fields adjusted to cleanly accomodate double-digit bonuses
Work has begun on adding image upload functionality.
The first steps toward this goal include behind-the-scenes tweaks and improvements.
More updates coming soon.
Saving after modifying the character name caused the field on page 2 to revert to its pre-modified value.
Under certain conditions, users were prevented from navigating away with unsaved changes, even after confirming.
I missed updating the position for a few elements when the font was changed.
Multi-line text fields now auto-indent on a newline if the previous line was indented.
This makes organizing blocks of text a little easier.
You can suppress this behavior by using Shift+Enter, as is common in other applications.
A small number of other under-the-hood improvements have been made.
2017-01-18: Now with 100% more tree-killing power!
Printing is now available on devices that support it.
My own testing indicates that the best results can be achieved using Google Chrome, and turning off margins for the print job.
Some minor glitches with text rendering have been encountered. They seem to be specific to Chrome on Linux, and I'm working on ironing them out.
Saving was broken after switching from one loaded character sheet to another without refreshing the page.
The character name fields on pages 1 and 2 were not kept in sync under certain circumstances.
Changing the character sheet code was broken for newly-saved sheets (i.e. before a page reload).
Adjusted text size in save and skill bonus fields to prevent clipping with two-digit bonuses.
Changed the font and updated sizing and position of various fields to compensate for slight variations.
This fixes the print issues I had previously described on Linux.
2017-01-05: Pick a code, any code!
Once saved and while in edit mode lock_open, users can now change their character sheet code edit.
A valid code is 3-5 characters, comprised of uppercase letters and numbers.
2017-01-04: Spells! Adventure! Notes!
Page 3 (the spellcasting sheet) is now laid out and available for use.
Adventurer's League players can now enable a supplementary portion of the first page's header, which contains fields for your faction and DCI number.
There is now a general-purpose page with ample room for taking lots of notes.
To reduce clutter, these pages and fields are hidden by default. They can be enabled from the menu, in the options panel settings.
2017-01-01: Happy New Year
Page 2 is now laid out and available for use.
The character name field will be kept updated automatically between pages.
Character appearance details and organization symbols will become available after the third page is done.
Users will be able to upload images for these sections.
2016-12-31: Final interface tweaks of 2016
The menu has been moved to the top of the viewport, its mask removed, and its buttons resized to accomodate more functionality.
New "Read-only" mode lock
Once character data has been saved, the user now has the ability to disable interactivity for the form elements on the sheet.
This makes it much easier to reference your sheet without inadvertently manipulating the data, particularly on touch devices.
Existing data is loaded in read-only mode.
Entering edit mode requires the sheet's password.
Added character name to the window title, updated automatically upon save or load. This should make bookmarks easier to differentiate.
2016-12-27: Tiny backend update
Corrected a problem with character sheet creation
CS5e was was throwing a wrong password error on initial save, acting as though new sheets already existed
Various other small, backend code improvements
2016-12-25: First update
General UX improvements
User is now warned of unsaved changes when trying to navigate away or load new data
Menu button moved to a more "standard" placement at the upper left of the viewport
Menu button increased in size slightly, making it easier to tap on mobile phones