An implementation of the Dungeonslayers 4 game system for Foundry Virtual Tabletop (http://foundryvtt.com).
Find a file
Alexander Minges 9f14763ca2
All checks were successful
ci/woodpecker/push/checks Pipeline was successful
Merge pull request 'chore: update TypeScript ESLint packages' (#63) from fix/package-lock into main
Reviewed-on: #63
2025-12-28 23:58:47 +00:00
.gitea/ISSUE_TEMPLATE chore: properly format yaml files 2023-07-22 00:16:14 +02:00
.vscode chore: update vscode setting 2025-02-22 15:59:15 +01:00
.woodpecker ci: update pipelines 2025-11-26 17:33:48 +01:00
.zed chore(zed): simplify settings by removing default values and using vtsls 2025-11-22 20:19:14 +01:00
assets feat: add additional cat token (beast-cat-05.webp) 2025-12-15 20:46:53 +01:00
fonts chore: update Woodstamp font license for woff to woff2 rename 2025-12-15 22:19:51 +01:00
lang feat(sheets): replace limited sheet template with dynamic permission-based rendering 2025-08-15 18:31:33 +02:00
LICENSES build: use pnpm instead of yarn 2023-03-23 02:09:05 +01:00
packs fix: use placeholder instead of unfitting token for "Tentakelhirn" 2025-12-14 11:08:46 +01:00
scss style(fonts): apply heading mixin for Woodstamp uppercase 2025-12-15 22:14:09 +01:00
spec fix(style): fix code format 2025-10-13 15:49:20 +02:00
src fix: migrate icons for user compendia 2025-12-12 18:30:29 +01:00
templates feat: size creature property fields 2025-11-27 20:33:21 +01:00
tools fix(build): fix incorrect SVGO plugin configuration 2025-12-16 19:49:22 +01:00
.editorconfig style: fix code formatting inconsistencies 2025-08-07 21:56:59 +02:00
.gitignore chore(zed): simplify settings by removing default values and using vtsls 2025-11-22 20:19:32 +01:00
.nvmrc chore(deps): update node.js to v24 2025-11-22 12:57:25 +01:00
.nvmrc.license Use REUSE to specify licensing info 2021-06-26 22:02:00 +02:00
.prettierignore chore: ignore renovate.json for prettier 2025-11-22 11:59:23 +01:00
ATTRIBUTION.md refactor: resturcture files so that lincensing info can be bundled properly 2022-01-31 15:31:45 +01:00
commitlint.config.js chore: cleanup config files 2025-02-22 20:50:06 +01:00
eslint.config.js chore: align ts/eslint config with ESNext bundler resolution 2025-12-15 17:59:45 +01:00
jsconfig.json chore: reformat with 2 spaces 2023-07-10 22:33:01 +02:00
jsconfig.json.license refactor: convert to ECMAScript where necessary 2022-11-28 02:38:17 +01:00
LICENSE.md refactor: resturcture files so that lincensing info can be bundled properly 2022-01-31 15:31:45 +01:00
package.json chore(deps): update dependency typescript-eslint to v8.50.1 2025-12-29 00:52:32 +01:00
package.json.license Use REUSE to specify licensing info 2021-06-26 22:02:00 +02:00
pnpm-lock.yaml chore: update TypeScript ESLint packages 2025-12-29 00:56:56 +01:00
pnpm-lock.yaml.license build: use pnpm instead of yarn 2023-03-23 02:09:05 +01:00
prettier.config.js chore: cleanup config files 2025-02-22 20:50:06 +01:00
README.md docs: add Git hooks section to README 2025-11-23 18:43:04 +01:00
renovate.json chore(config): migrate config renovate.json 2025-11-22 11:51:26 +01:00
renovate.json.license Add renovate.json 2021-07-23 23:46:16 +02:00
REUSE.toml chore: update REUSE metadata and copyright years 2025-11-23 18:53:20 +01:00
rollup.config.js chore: asset optimization plugin with SVG and bitmap support 2025-11-27 19:15:13 +01:00
system.json chore(release): bump version to 3.2.1 2025-12-17 17:19:00 +01:00
system.json.license chore: update system.json 2025-10-13 16:44:39 +02:00
template.json chore: reformat with 2 spaces 2023-07-10 22:33:01 +02:00
template.json.license refactor: resturcture files so that lincensing info can be bundled properly 2022-01-31 15:31:45 +01:00
tsconfig.eslint.json chore: reformat with 2 spaces 2023-07-10 22:33:01 +02:00
tsconfig.eslint.json.license Use REUSE to specify licensing info 2021-06-26 22:02:00 +02:00
tsconfig.json chore: align ts/eslint config with ESNext bundler resolution 2025-12-15 17:59:45 +01:00
tsconfig.json.license Use REUSE to specify licensing info 2021-06-26 22:02:00 +02:00
vite.config.js chore: reformat with 2 spaces 2023-07-10 22:33:01 +02:00

DS4

status-badge REUSE status Forge installs Supported foundry versions Matrix Ko-fi

An implementation of the Dungeonslayers 4 game system for Foundry Virtual Tabletop.

This system provides sheet support for Actors and Items and mechanical support for dice and rules necessary to play games of Dungeonslayers 4.

Installation

To install and use the Dungeonslayers 4 system for Foundry Virtual Tabletop, find it in the list in the Install System dialog on the Setup menu of the application. Alternatively, paste the following Manifest URL in that dialog:

https://git.athemis.de/api/packages/Athemis/generic/ds4/latest/system.json

Development

Prerequisites

In order to build this system, recent versions of node and pnpm are required. Most likely using npm or yarn also works but only pnpm is officially supported. We recommend using the latest lts version of node. If you use nvm to manage your node versions, you can simply run

nvm install

in the project's root directory.

You also need to install the project's dependencies. To do so, run

pnpm install

Building

You can build the project by running

pnpm build

Alternatively, you can run

pnpm watch

to watch for changes and automatically build as necessary.

Linking the built system to Foundry VTT

In order to provide a fluent development experience, it is recommended to link the built system to your local Foundry VTT installation's data folder. In order to do so, first add a file called foundryconfig.json to the project root with the following content:

{
    "dataPath": "<path to your home directory>/.local/share/FoundryVTT"
}

On platforms other than Linux you need to adjust the path accordingly.

Then run

pnpm link-package

Running the tests

You can run the tests with the following command:

pnpm test

Git Hooks

This project uses Husky to enforce code quality through Git hooks:

Pre-commit Hook

Automatically runs before each commit to ensure code is properly formatted:

pnpm format:check

If the check fails, run pnpm format to fix formatting issues.

Commit Message Hook

Validates that commit messages follow the Conventional Commits specification:

  • Format: type(scope): subject
  • Types: feat, fix, docs, style, refactor, perf, test, chore
  • Example: feat(actor): add group actor sheet

The hooks are automatically installed when you run pnpm install (via the prepare script).

Manual Validation

You can manually check your code before committing:

# Check formatting
pnpm format:check

# Fix formatting
pnpm format

# Validate last commit message
pnpm exec commitlint --from HEAD~1

Contributing

Code and content contributions are accepted. To report issues, please contact us in Matrix.

Licensing

This project is being developed under the terms of the LIMITED LICENSE AGREEMENT FOR MODULE DEVELOPMENT for Foundry Virtual Tabletop.

The project itself is licensed under multiple licenses. REUSE is used to specify the licenses for the individual files. Most of the licenses are specified either inside the source file or by an accompanying .license file, but for some files, the licenses are specified in .reuse/dep5. Some of the work that is being reused by this project requires attribution to the original author(s). You can find these attributions in ATTRIBUTION.md.