rpgsheet

fork of Skylar Hill's (<stellarskylark@posteo.net>) rpgsheet
git clone git://milksoup.net/rpgsheet.git
Log | Files | Refs | README | LICENSE

README.md (3175B)


      1 # rpgsheet
      2 
      3 `rpgsheet` is a CLI/TUI character sheet application for tabletop RPGs.
      4 
      5 ![rpgsheet screenshot](rpgsheet.png)
      6 
      7 ## Dependencies:
      8 * `rolldice` for, uh, rolling dice
      9 * `bc` for calculations
     10 
     11 ## Features
     12 * **System-agnostic:** Character sheets are stored as YAML files, and the data structure is not designed with a particular TTRPG system (ie dnd5e). You can make a template for your favorite system! This is also a bit of a downside; `rpgsheet` is quite usable, but you might miss some niceties that it could provide if it knew more about your specific system.
     13 * **Flexible:** You can define whatever tabs or windows you want for your character sheet! The template is just a starting point.
     14 * **Auto-rolling:** As long as your system uses dice rolls that can be represented with the standard `NUMdFACES+MOD` notation, you can easily define actions which will automatically be rolled.
     15 * **Auto-calculation:** You can define values in your character sheet which are dependent on other values. For instance, you can define a hard-coded `proficiency` value, and then define your shortsword attack modifier as `3+proficiency`. (For DnD, you probably actually want a hard-coded `strength` ability score, then a `STR` value defined as `(strength-10)/2`, then define your shortsword attack as `STR+proficiency`.)
     16 
     17 ## Unimplemented planned features
     18 * Configurable controls
     19 * Be able to have a tab with multiple rows of windows
     20 
     21 ## Planned related projects
     22 * `dndsheet` -- `rpgsheet` but with a streamlined dnd5e-specific interface which, given a sheet following a particular standard, can provide an experience tailored to the system.
     23 
     24 ## Installation
     25 Install Nim and run:
     26 
     27 `nimble install rpgsheet`
     28 
     29 You can also clone this repo and then run this in the directory:
     30 
     31 `nimble install`
     32 
     33 # The sheet format
     34 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.
     35 
     36 All window names and expressions (items that go in windows) must have unique names.
     37 
     38 Here is an extremely pared-down design so you can see the structure:
     39 ```yaml
     40 name: Character Name
     41 class: Character Class
     42 level: 1
     43 tabs:
     44   - main:
     45     - stats
     46     - inventory
     47   - attacks:
     48     - weapons
     49     - spells
     50 expressions: # items that appear in the windows
     51   strength:
     52     modifier: 15 # use `modifier` for flat values
     53     window: stats
     54   STR:
     55     # Modifiers can be defined in terms of
     56     # other diceless expressions
     57     modifier: (strength-10)/2 
     58     window: stats
     59   sword_attack: # we cannot have two expressions named `sword`
     60     dice: d20 # must be in NUMdSIDES format; no modifiers
     61     modifier: STR # here is where your modifier goes
     62     window: weapons
     63     # Extra information, shown at the bottom of the screen
     64     desc: Swing your really cool sword
     65   sword:
     66     # Note that you don't need to supply dice or modifiers
     67     desc: Your really cool sword
     68     window: inventory
     69   # will be displayed as "Carl's Terrifyingly-hideous Face"
     70   carl's_terrifyingly~hideous_face: 
     71     dice: 8d12
     72     desc: 9th level. Oh god, oh no, look away if you want to live.
     73     window: spells
     74 ```