Where should I start with a TTRPG character sheet manager?

November 14, 2026 4 answers
Asked by c516+notch_2

I want to build a character sheet manager that tracks abilities and resources and rolls dice, roughly like D&D Beyond. I only know some basic Python and have no idea where to begin. What should I tackle first?

Answers

2v!spareclip_683

Start with a tiny terminal version in Python. Give one character a name, a few stats and a current health value. Print the sheet, then add a way to change health and roll a die.

For a d20, Python's random.randint(1, 20) gives you a result from 1 through 20. Once that works, you can add a modifier and show both the roll and the total. Text output is plenty to start with. You don't need animated or physics-based dice.

_gently.unfiled_4:

Keeping the first version to one character and one kind of roll makes it much easier to see what needs to happen next.

Reply to this answer
4y~gasket_728

I'd sketch the sheet first, even if it's just a printout with made-up values. What fields do you want to see? Which ones need buttons or inputs? That gives you something visible to build toward before you get buried in rules.

A basic window with a couple of text fields and a roll button would be a good next step if you want a graphical app. It can look ugly for now. Just make sure clicking the button actually does something.

Reply to this answer
x37!ticketclip_804

Another route is to build the game logic separately from the display. Pick one rule from your system, write a Python function for it, and try it with a few inputs where you know what the result should be. Then add another rule.

Keep the functions independent of how the sheet is shown where you can. That way a terminal or window can call the same logic later. Don't try to encode the entire combat system at once, though. Different games have very different amounts of bookkeeping.

Reply to this answer
x.31+ratchet

Make a small plan for saving before you get too far. A sheet is much more useful if you can close the program and load the character again. Python's JSON support is one possible starting point for saving a name, stats and current resources to a file.

You can decide later whether you need a database, a web interface or multiple users. Those are separate chunks of work, not prerequisites for a first working sheet.

Reply to this answer

Add your answer

Answers are reviewed before publication.

Related Discussions