````
<center><h1> Party Overview</h1></center>
```dataviewjs
const characters = dv.pages('"World/People/Player Characters/Active"');
// passive perception calc
function calcPassivePerception(page) {
const wis = page.wisdom || 10;
const wisMod = Math.floor((wis - 10) / 2);
const skillProfs = page["Skill Proficiencies"] || [];
const profBonus = Number(page["Proficiency Bonus"]) || 0;
const isPerceptionProficient = skillProfs.map(s => s.toLowerCase()).includes("perception");
return 10 + wisMod + (isPerceptionProficient ? profBonus : 0);
}
// table
dv.table(
["Name", "PP", "AC", "HP (Current/Max)", "Walk Speed", "Alignment", "Languages"],
characters.map(c => {
const name = c.Name || c.file.link;
const pp = calcPassivePerception(c);
const ac = c.ac || "N/A";
const hpMax = c.hp || "N/A";
const hpCurrent = c.current_hp || hpMax;
const speed = c.Speed || c.Speed;
const alignment = c.Alignnment || c.Alignment;
const languages = c.Languages
return [name, pp, ac, `${hpCurrent}/${hpMax}`, speed, alignment, languages];
})
);
```
`BUTTON[Player1,Player2,Player3,Player4,Player5,Player6,Player7,Player8,Player9,Player10]`
>[!info] Player Stats
![[dash-Player 1]]
```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]]"
```
```meta-bind-button
label: Player 2
icon: ""
hidden: true
class: meta-bind-button
tooltip: ""
id: Player2
style: default
actions:
- type: replaceInNote
fromLine: 39
toLine: 39
replacement: "![[dash-NAME GOES HERE]]"
```
```meta-bind-button
label: Player 3
icon: ""
hidden: true
class: meta-bind-button
tooltip: ""
id: Player3
style: default
actions:
- type: replaceInNote
fromLine: 39
toLine: 39
replacement: "![[dash-NAME GOES HERE]]"
```
```meta-bind-button
label: Player 4
icon: ""
hidden: true
class: meta-bind-button
tooltip: ""
id: Player4
style: default
actions:
- type: replaceInNote
fromLine: 39
toLine: 39
replacement: "![[dash-NAME GOES HERE]]"
```
```meta-bind-button
label: Player 5
icon: ""
hidden: true
class: meta-bind-button
tooltip: ""
id: Player5
style: default
actions:
- type: replaceInNote
fromLine: 39
toLine: 39
replacement: "![[dash-NAME GOES HERE]]"
```
```meta-bind-button
label: Player 6
icon: ""
hidden: true
class: meta-bind-button
tooltip: ""
id: Player6
style: default
actions:
- type: replaceInNote
fromLine: 39
toLine: 39
replacement: "![[dash-NAME GOES HERE]]"
```
```meta-bind-button
label: Player 7
icon: ""
hidden: true
class: meta-bind-button
tooltip: ""
id: Player7
style: default
actions:
- type: replaceInNote
fromLine: 39
toLine: 39
replacement: "![[dash-NAME GOES HERE]]"
```
```meta-bind-button
label: Player 8
icon: ""
hidden: true
class: meta-bind-button
tooltip: ""
id: Player8
style: default
actions:
- type: replaceInNote
fromLine: 39
toLine: 39
replacement: "![[dash-NAME GOES HERE]]"
```
```meta-bind-button
label: Player 9
icon: ""
hidden: true
class: meta-bind-button
tooltip: ""
id: Player9
style: default
actions:
- type: replaceInNote
fromLine: 39
toLine: 39
replacement: "![[dash-NAME GOES HERE]]"
```
```meta-bind-button
label: Player 10
icon: ""
hidden: true
class: meta-bind-button
tooltip: ""
id: Player10
style: default
actions:
- type: replaceInNote
fromLine: 39
toLine: 39
replacement: "![[dash-NAME GOES HERE]]"
```