PlanarAlly icon indicating copy to clipboard operation
PlanarAlly copied to clipboard

[FEAT]scripted character sheet integration

Open MichelleLatham opened this issue 3 months ago • 2 comments

I have some new players who have trouble managing their own character sheets and figuring out what to roll for different actions. We'd be migrating to this platform from roll20 which allows users to make character sheets with buttons that automatically calculate the rolls for the players.

MichelleLatham avatar Sep 28 '25 13:09 MichelleLatham

Hi, welcome aboard!

Character sheets have been a longer pain point for some users, but it's a complex topic for me.

Providing built-in character sheets for the big systems takes a bit of time, but more importantly is not always super evident from a legal standpoint. Especially wizard of the coast (the company behind d&d) is known to be quite strict with content. There are some parts of the rules that are free to use, but then you quickly enter the territory of people needing the other stuff that are not free.

I don't really have a lot of expertise on integration with other systems, so I don't know if these things can be arranged, but given that WotC has their own vtt tools these days, I'm not having a lot of hope.

That all said, I did just last week add the concept of generic custom data (see https://github.com/Kruptein/PlanarAlly/pull/1667 for some technical details).

This is a first step to something that can be considered a character sheet. It includes things like dice-expressions, so you could potentially set that up as the DM for the users who are less technically adept :D

It won't be as smooth as some big buttons, but it's a start.

There is also (experimental) support for mods, which could in theory add custom UI for a particular system, if you happen to be or have someone in your group who is comfortable with programming. Though I'm aware that this is not a complete solution you're looking for.

Kruptein avatar Sep 28 '25 14:09 Kruptein

I have been thinking about this for a while. The ideal solution would be able to embed character sheets with a plugin. That way, the plugin can have game specific sheet layouts.

I am thinking this might be an approach.

  • Upload a base PDF (template character sheet) to the PlanarAlly server.
  • Each player has a JSON of field values stored by the module.
  • When opening the Character Sheet tab:
  • Load JSON data from backend.
  • Generate a filled PDF dynamically.
  • Or render the same data as a web form

Extracting PDF form data is not hard as it stores that as a dictionary, so something like.

import PdfReader
reader = PdfReader("sheet.pdf")
fields = reader.get_fields()
print(fields)

Syncing with the server though would need an addition to the API to allow a mod to read and write data to a mod specific data directory.

Then syncing would be sharing the same data blob so when a user changes it the changes can be synced, maybe even polled every 10 seconds or so.

Anyway, it is just and I idea I had, but I don't really have time to focus on it right now. As you can see, I am a little late to this discussion.

Hope it helps.

develroo avatar Oct 31 '25 09:10 develroo