RPTools / maptool

Virtual Tabletop for playing roleplaying games with remote players or face to face.
http://rptools.net
GNU Affero General Public License v3.0
766 stars 259 forks source link

[Feature]: Advanced general purpose character sheet editor to help players and GMs maintain a character sheet for a MapTool token with features like revision history and ability to reset to a baseline after "resting" the token. #4022

Open adventuremagic123 opened 1 year ago

adventuremagic123 commented 1 year ago

Describe the Problem

I very much recommend implementing #3954 before trying to implement this feature, #3954 might have broader appeal and still be needed.

Also, we might want to let this issue rest for a while so we can collect our thoughts and design it properly. Some features might need to be dropped due to complexity or need for additional thought on their design -- with the goal of not precluding their future implementation (perhaps through the coding concept of interfaces).

The goals for this feature are the same as #3954, which are to provide a general purpose character sheet editor that is easy to use, provides no automation except revision history and reset-to-baseline support, supports HTML editing, allows players and GMs to maintain a character sheet for any MapTool token, is launched from the short-cut menu, and is general purpose enough to be used for any RPG system to effectively erase the current advantage in a single stroke other VTTs have with their breadth of their RPG system support.

The Solution you'd like

The solution I would like would have at least the following major features:

  1. Revision history is desired so that players and GMs can easily see the changes that have been applied to a character sheet. The revision history would show who made the changes, what the changes were (use a diff-type format that shows inserts, deletions, and changes sort of like other tools like WinMerge) , and when.

  2. The ability to reset the character sheet to some baseline due to resting the token where they regain certain resources like spells, daily special abilities, hit points, etc.

  3. The ability to support multiple images for the character for those characters that can transform their appearance due to some ability (or curse).

  4. The character sheet should be designed in very general sections so that they can be maintained separately and located easily.

Note: I'm hoping we can have general sections like: equipment, spell casting preparation, spell casting knowledge or book, armor, basic statistics, etc. This would eliminate the need for providing designer-type features and the need to design character sheets, which would add complexity to this feature.

  1. Notification to the GM and owner for any character sheet changes.

  2. Sort of like the ability asked for in item 2 above, provide a section of the character sheet that supports multiple modes and can be switched between modes easily. For example, if a character has the ability to transform themselves, and, thus, for that time transform some of their abilities, skill, features, or whatever for that time, it would be nice to be able to easily handle that in the character sheet. I suggest using only one section of the character sheet to provide that feature and call it something like "transformation abilities, skills, features, etc.".

  3. Use HTML editors to provide the above features.

  4. Normal token security should apply such as only allowing the GM and owner to update the character sheet.

  5. If not difficult to implement, it would be nice to have some concurrency protection to protect the data from the owner (a player) and the GM trying to save changes to the data at the same time. Whatever strategy is easiest to implement that also avoids creating deadlocks. I think maybe an optimistic concureency strategy might be best where if someone alters the data before you save causes you to have to integrate your changes might be best. This works by keeping a copy of the data before you change it -- then before you save your changes make sure no one else has changed that data before you have a chance to save. If they did change the data, display a dialog showing the new state of the data and give the user a chance to integrate their changes and then do a save. If no one changed the data since you made your changes, just save the changes.

Alternatives that you've considered.

Nothing like this concept exists in any other VTT that I know of. Any that attempt to address these issues create very specific character sheets that can only be used for particular RPG systems and come paired with confusing data entry and automations that frequently frustrate players, especially new ones.

If done correctly and carefully, I believe we can create something that is far more intuitive and requires less training and code maintenance -- allowing us to close the gap on RPG system support in a single stroke that might astonish the other VTT communities.

Additional Context

No response

Azhrei commented 1 year ago

Thank you for listing your desired feature set. I was concerned that development had started on this when there had been no discussion in existing issues to iron out requirements, plan release milestones, or other normal development steps. I think such a char sheet would be a huge boon and I look forward to it! The HTML mode for token notes is a good step in the right direction, IMO.

adventuremagic123 commented 1 year ago

Thank you for listing your desired feature set. I was concerned that development had started on this when there had been no discussion in existing issues to iron out requirements, plan release milestones, or other normal development steps. I think such a char sheet would be a huge boon and I look forward to it! The HTML mode for token notes is a good step in the right direction, IMO.

Thank you.