A Dungeon World character sheet app written with Flutter
  • Dart 96.6%
  • C++ 1.4%
  • CMake 1.1%
  • HTML 0.3%
  • Swift 0.2%
  • Other 0.2%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2025-04-25 01:41:15 +03:00
.fvm build: fvm support 2023-12-04 00:54:19 +02:00
.github/ISSUE_TEMPLATE Update feature_request.md 2020-06-08 16:15:27 +03:00
.gradle fixed create new character + build stuff 2019-03-05 21:51:24 +02:00
.idea flutter create . 2019-09-18 00:04:39 +03:00
.vscode chore: cleanups, formatting, small bugfixes 2023-04-29 09:52:27 +03:00
android build: update build settings 2025-04-01 23:24:15 +03:00
assets build: add macos pack step 2024-08-11 14:10:28 +03:00
gen build: add module scaffold 2024-07-25 13:30:20 +03:00
ios build: create new build tool 2025-04-25 01:12:08 +03:00
launcher_icons ios fixes 2020-10-06 13:13:57 +03:00
lib feat: new standard moves view 2025-04-24 01:45:37 +03:00
linux chore: update pub dependencies 2025-04-01 10:24:52 +03:00
macos build: create new build tool 2025-04-25 01:12:08 +03:00
scripts refactor: i18n (#30) 2023-12-09 01:09:30 +02:00
snap/gui more temp launcher icons 2022-07-21 17:31:35 +03:00
test refactor: i18n (#30) 2023-12-09 01:09:30 +02:00
tool build: create new build tool 2025-04-25 01:12:08 +03:00
web fix: web providers 2024-10-26 23:14:24 +03:00
windows chore: update pub dependencies 2025-04-01 10:24:52 +03:00
.editorconfig chore: format all files 2024-07-26 16:30:33 +03:00
.flutter-version chore: remove crashlytics 2023-12-09 20:02:14 +02:00
.gitignore build: upgrade gradle/kotlin/java 2025-04-01 02:04:45 +03:00
.metadata fix: web build 2024-07-22 23:12:18 +03:00
.prettierignore docs: update readme + add script descriptions 2023-11-29 00:39:11 +02:00
.prettierrc docs: update readme + add script descriptions 2023-11-29 00:39:11 +02:00
.travis.yml update .travis.yml 2020-06-09 20:09:57 +03:00
analysis_options.yaml chore: upgrade flutter version 2022-10-27 19:23:22 +03:00
devtools_options.yaml refactor: remove GetX (#33) 2023-12-22 00:51:22 +02:00
dungeon_paper.iml upgrades 2019-02-16 22:54:13 +02:00
dungeon_paper_android.iml initial commit 2018-06-11 20:06:29 +03:00
dungeon_paper_app.iml autogenerated files 2020-07-23 23:33:03 +03:00
FUNDING.yml docs: update github sponsor 2023-05-14 01:58:38 +03:00
LICENSE Updated CHANGELOG.md + Renamed LICENSE.md to LICENSE 2020-06-17 01:42:28 +03:00
markdownlint.jsonc docs: update readme, funding 2020-12-01 18:25:35 +02:00
PRIVACY.md privacy 2019-04-06 17:06:51 +03:00
pubspec.lock build: create new build tool 2025-04-25 01:12:08 +03:00
pubspec.yaml build: create new build tool 2025-04-25 01:12:08 +03:00
README.md build: refactor buid scripts to sh file 2024-08-12 00:08:19 +03:00
script_runner.yaml build: update script_runner config 2025-04-25 01:41:15 +03:00
STORE_LISTING.md Update STORE_LISTING.md 2020-07-02 01:41:24 +03:00

Dungeon Paper

GitHub Stars Facebook X Discord

Dungeon World players, this is the app for you!

Keep all your characters' bio, stats, moves and possessions with this interactive character sheet. Join for smoother, zero-hustle Dungeon World campaigns!

Dungeon Paper is an interactive character sheet for your Dungeon World characters. This is the source of this app, but to fully use it you must set up your own firebase credentials and sign your own app. Once that is properly set up, the app should create entities based on logins to the app, so nothing else should be created for the database beforehand. No one in this repository will provide any secret keys to anyone, ever.

dungeon paper

Download the latest version

Features

  • Unlimited number of character sheets
  • Create your own classes and races to use for your characters
  • Add basic details (character name, image, race and alignment)
  • Set and view stats and modifiers, life, experience, armor and damage dice
  • Add moves and spells from the playbook, or add your own homebrew
  • Keep track of inventory items, coins and load
  • Add notes, moves, spells, and other custom content with rich text, checkboxes and tables using Markdown
  • Roll any dice or roll your actions directly

Contributing

I am developing this package on my free time, so any support, whether code, issues, or just stars is very helpful to sustaining its life. If you are feeling incredibly generous and would like to donate just a small amount to help sustain this project, I would be very very thankful!

Buy Me a Coffee at ko-fi.com

I welcome any issues or pull requests on GitHub. If you find a bug, or would like a new feature, don't hesitate to open an appropriate issue and I will do my best to reply promptly.

Development Set Up

  1. Download Flutter

    Use whatever Flutter channel you deem necessary, this should be compatible with master and beta, dev breaks a lot so no commitment. More information on Flutter.dev.

  2. Fork this repository

  3. Connect your Firebase credentials for the app

    TL;DR: Create Firebase app, setup authentication, and run

    dart pub global activate flutterfire_cli
    flutterfire configure
    
  4. Copy the secrets.example.dart to secrets.dart in the same directory:

    cp "lib/core/utils/secrets.example.dart" "lib/core/utils/secrets.dart"
    

    Sentry DSN can remain empty to disable error reporting.

  5. To run build scripts, use script_runner by running dart run script_runner -h to see a list of all available commands. Alternatively, you can manually run the command in script_runner.yaml, or install script_runner globally and shorten the command to scr.

As mentioned above, Firebase secret keys must be your own, and so are the databases and services related to them. This project requires Firebase auth and Cloud Firestore to function.

Build Tools

Use script_runner to run build scripts.

You can use these examples to start:

dart pub global activate script_runner

scr -h # see all commands + help
scr -ls [search_term] # find scripts by name, or list all scripts

# e.g.
scr -ls android # see all possible android-related scripts
scr android:build:release # build for android release

Translations

This app is currently only available in English. However, it's possible to contribute translations if you wish to help localize the app to your language. The app should be fully-localizable easily by updating the translation files, and once we ave more than one language we will add UI to change it at will.

  • The current main translations file is at lib/i18n/messages.i18n.yaml

  • To add a new localization file, copy this file to lib/i18n/messages_<lang code>.i18n.yaml (for example, for Hebrew you would use messages_he.i18n.yaml)

  • For help using the translation syntax, see the i18n docs

  • To translate the playbook data (classes, items, moves, spells, etc) we must localize a separate package containing all the Dungeon World base data. This package is available here, see the localization docs there for more help.

  • The app and data may be translated separately and do not depend on each other.

  • Use the build_runner package to generate Dart files from the yaml files.

    # run in watch mode, re-generates as you update the yaml
    dart run build_runner watch
    # generate files once
    dart run build_runner build
    

Help by bug reporting or requesting features

  • Feel free to use the GitHub issues to post one of the issue templates.
  • We are also active on Discord