rpgsheet -- a system-agnostic CLI/TUI for TTRPG character sheets

Heya! I'm officially releasing an alpha build of a little application I've been writing called rpgsheet. It still needs work, but it's usable now so I'm going ahead and sharing it!

https://git.skylarhill.me/skylar/rpgsheet

Here's the readme:

rpgsheet

`rpgsheet` is a CLI/TUI character sheet application for tabletop RPGs.

Dependencies:

Features

Unimplemented planned features

Planned related projects

Installation

Once I'm in the nimble directory, you'll be able to fetch it pretty easily by installing Nim and running:

`nimble install rpgsheet`

You can also clone this repo and then run this in the directory:

`nimble install`

The sheet format

Sheets are stored as YAML files. Keys are limited to alphanumeric characters, plus `_`, `~`, and `'`. When displayed "nicely" in the interface, `_` is converted to a space, and `~` to a hyphen.

All window names and expressions (items that go in windows) must have unique names.

Here is an extremely pared-down design so you can see the structure:

name: Character Name
class: Character Class
level: 1
tabs:
  - main:
    - stats
    - inventory
    - attacks:
      - weapons
      - spells
expressions: # items that appear in the windows
  strength:
    modifier: 15 # use `modifier` for flat values
    window: stats
  STR:
    # Modifiers can be defined in terms of
    # other diceless expressions
    modifier: (strength-10)/2 
    window: stats
  sword_attack: # we cannot have two expressions named `sword`
    dice: d20 # must be in NUMdSIDES format; no modifiers
    modifier: STR # here is where your modifier goes
    window: weapons
    # Extra information, shown at the bottom of the screen
    desc: Swing your really cool sword
  sword:
    # Note that you don't need to supply dice or modifiers
    desc: Your really cool sword
    window: inventory
  # will be displayed as "Carl's Terrifyingly-hideous Face"
  carl's_terrifyingly~hideous_face: 
    dice: 8d12
    desc: 9th level. Oh god, oh no, look away if you want to live.
    window: spells