>[!danger] SESSION PREP IN PROGRESS
>This note is active and the contents function but, honesty, it's still in need of some improvement. Check the changelog to see if theres a new version for you to use. Thanks!
>[!tldr]- Changelog and Roadmap
>
> # Changelog
> ### Player Tracker v1.0
> - Tracks player basic info and stats
> - Compact so it can stay on your screen while you play
> - References character metadata to keep values consistent across notes
> # Roadmap
>### Current Encounters:
>- Make fields like HP and Key Items editable
>- Instructions on how to add/subtract fields
>### Future Encounters:
>- Player tracker customizer
>- Stabilize player dash updater (button system)
>- Try to consolidate tool so it has a smaller vault footprint
>- Make it a plugin?
# Party Overview
This is a substitute for that part of your DM screen where you forget to look at passive perception and always wish you could track a lot more. It's a simple little tool that just shows you information from elsewhere to make it easy to understand your characters current state and capabilities at a glance. I like to pin the note at the bottom of my Obsidian window so that it's always visible below wherever I'm tracking notes or referencing other materials.
[[Downloads|Up-to-date files can be downloaded here.]]
>[!example]+ rendered Party Overview
> ![[player tracker rendered example.png]]
>[!warning] Not advanced, just more involved!
>- The Party Overview currently, and unfortunately, has a large footprint in the vault. While the data itself is stored all in one place, the "Player Stats" tracker has several different notes to make it work cleanly and show the correct information.
> - Because we're mixing plugins here, there's a couple small manual edits needed to get the right information to display. Below I will walk you through it with one so it will be easy to replicate.
> - **This note can only be used if there is frontmatter metadata on your player character notes! If there is no metadata, there will be nothing for these tables to reference and therefore nothing to display.**
## Installing the Party Overview
You can keep the actual Party Overview note wherever you want. I keep it in my [[Introduction to the Vault#Extras|Extras]] folder so that it's next to another component of the build and it's out of the way, but it's up to you!
#### How This Code Works:
To put it super basic, when you press one of the buttons, it replaces the text on a line to show you a new player dashboard (which you'll be making shortly). So every time you click a button, it replaces the link to the currently-viewed player with a link to the new player from the button you pressed. Hopefully this is enough context to make this code a little easier for your brain to parse.
#### Plugins:
The plugins needed for this to work are:
- Dataview ([[Plugins#Dataview|with javascript queries enabled]])- to gather and display all the data
- Meta Bind- to create the buttons
To learn how to install and set up those plugins, check out the [[Plugins]] page.
### Step 1: Create the Party Overview Note
As stated above, but this note wherever you want. It is just the note that displays all of the code.
1. Copy and paste the code below into that note. **Make sure there are no extra lines above the code when you paste it! It needs to go on the first line.**
>[!code]- Party Overview note code
>![[party overview note code|no-title]]
2. Check the last line in the pasted code (where it says to check the line). It should be on line 100 so the buttons replace the correct line, revealing a new player dash each time. *You can turn on line numbers by right clicking on the left edge of the note, as in the example below.
>[!example]- turning on line numbers
>![[line numbers.gif]]
- If you every make it so that line *isn't* 100 (adding features, adding text, whatever you want), you just need to change all the `fromLine` and `toLine` values on each button to be whatever line you want the player table to appear on.
### Step 2: Create the Player dashboards
In a folder nearby (hopefully in the same place you put the Party Overview note to make it simple), create a note for each player called "dash-PLAYERNAME". This doesn't have to be their full name. These notes will only be referenced in the Party Overview so you could leave them as player1, player2, player3 if you wanted.
![[player dash location placement.png]]
In each of these notes, you'll copy and paste the template below:
>[!code]- Player Dashboard template
> ![[player dash template|no-title]]
### Step 3: Update all the file paths an names!
1. On **each dashboard**, update the "## Player Name" to the players name and the file path at the top to match the location of that character's note where all their metadata lives. *The example in the template is accurate to the VVunderlore Vault.*
>[!example]- player dashboard updates
> ![[player dashboard updates needed.png]]
2. On the Party Overview note, update the file path at the top to match the folder where the player character's notes are kept.
>[!example]- player overview pathway updates
>![[player overview table path.png]]
### Step 4: Update the Buttons
Find the `meta-bind-button` code blocks. For each code block, follow these instructions:
1. In each one, replace the `label:` value with whatever you want the button to say.
>[!example]- player overview button label
>![[player overview button label edit.png]]`
2. In each one, replace `![[dash-Player 1#Player 1]]` with whatever you named each player dashboard in Step 2 followed by the header you updated in step 3.1. For example, you named the note `dash-Buck Starman` and the header simply `## Buck`, your text here will read `dash-Buck Starman#Buck`.
> [!example]- player overview button replacement field
![[player overview button replacement edit.png]]
### Extra:
You can always add more buttons by copy/pasting one (or the code below) and changing the label, id, and replacement values so the button is unique.
> [!code]- single button code
> ````
> ```meta-bind-button
> label: Player 1
> icon: ""
> hidden: true
> class: meta-bind-button
> tooltip: ""
> id: Player1
> style: default
> actions:
> - type: replaceInNote
> fromLine: 39
> toLine: 39
> replacement: "![[dash-NAME GOES HERE]]"
> ```