davelens / fvtt-party-resources

A simple module for FoundryVTT to manage (and track) custom party-wide numeric values.
MIT License
6 stars 16 forks source link

FoundryVTT - Party Resources

Latest release GitHub all releases GitHub release (by tag) Donate Donate

Party Resources is a system-agnostic FoundryVTT module that allows you to manage party-wide, numeric values that persist between sessions.

State of development (2024 and onwards)

Currently, development on this module is on indefinite hiatus due to certain lifestyle changes I had to make for my health. I will do what is necessary to keep the module play nice with Foundry's major updates, at least until they decide to overhaul the way the module stores its data. Pull requests without major changes (translations, typos, CSS bugs,...) will continue to be reviewed and merged, with the occassional release.

Thank you for understanding!

Features

Examples

What the DM sees in the dashboard

Image showing what the DM sees when opening the resources dashboard

What the players see in the status bar

Image showing what the players see in the status bar

How the status bar can look when tracking D&D 5e gold or specific items

Image showing how D&D 5e resources look like in the status bar

Installation

  1. Install Party Resources in FoundryVTT using the manifest URL:
    https://raw.githubusercontent.com/davelens/fvtt-party-resources/master/module.json
  2. Enable the Party Resources module in the active game world.

Translations

If your desired translation is missing, you can help out through the Weblate page for Party Resources! In return you will receive my eternal gratitude, and quite possibly various riches in an eventual afterlife.

FAQ

I don't see the status bar?

You need to enable it in the module's settings.

Where can I access the resource dashboard?

By default, any permission level can access it through the button at the top of the Actor directory. However, a DM has the option to hide this button.

What about player-specific resources, can they be tracked too?

No, the intent for this module was to have global numeric values everyone could keep an eye on. However, ardittristan/5eSheet-resourcesPlus would probably serve your players better by having custom resources assigned to their character sheet.

Why do I need to explicitly allow players to modify configuration settings so they can manage resources?

Because resources are an amalgam of settings scoped on world, to make them persist in the world for all players. Foundry requires explicit permission to allow players to adjust the values linked to these settings with a scope of world. Not doing so will result in error popups stating a player is not allowed to edit settings.

How do you track multiple, specific items into one resource?

You need to separate the name of the items with a semicolon, like so: Screenshot of the "edit resource" form, with an example of multiple items separated by a semicolon

How can I refresh the status bar using a macro?

window.pr.status_bar.render()

How can I open the dashboard using a macro?

window.pr.dashboard.redraw(true)

How do I change resource values in a script macro?

As an example, say you wanted to change a resource called Fate Counters that you gave a resource ID of fate when you created it.

To retrieve the value of the fate resource:

window.pr.api.get('fate')

To set the value of the fate resource to 5:

window.pr.api.set('fate', 5)

To increment the value of the fate resource by 2:

window.pr.api.increment('fate', 2)

To decrement the value of the fate resource by 1:

window.pr.api.decrement('fate', 1)

To set the value of the fate resource to 5, and notify players with a chat message. Note that this will only work if "Notify players of value changes" is checked in the resource settings:

window.pr.api.set('fate', 5, { notify: true })

The resource dashboard will then process the change in real time.

Do you write Foundry modules full time?

No, I don't have a Patreon going and don't get paid to write or maintain modules. I'm a software engineer by trade, and I've been writing web apps for 15 years. My main stack is both Ruby and Elixir, and I'm somewhat proficient in JavaScript, HTML, and CSS. Most of my work is backend-related so I'm not a frontend developer, and I'm sure it shows in the source code for those among you who are. I get by, though.

I have a different question about your module. Can I ping you on Discord?

Sure: Pretzl#0001 - I'm in the official FoundryVTT Discord.

License

This work is licensed under the MIT license, as well as Foundry Virtual Tabletop EULA - Limited License Agreement for module development from May 29, 2020.