> [!NOTE|div-m] Player Name: `Hosannah`
> [!column|no-i no-t]
>> [!div-m|no-title]
>> ![[dynamo.jpg|center|450]]
>
>> [!div-m|no-title] Place Name
>> ~~~meta-bind
>> INPUT[select(
>> option(1, ℹ️General),
>> option(2, 🧙Description),
>> option(3, ⚙️Configure),
>> option(4, 📝DM Notes),
>> class(tabbed)
>> )]
>> ~~~
>>>[!tabbed-box-maxh480|10]
>>> >[!div-m|no-title]
>>> > ![[#General|no-h clean]]
>>>
>>> >[!div-m|no-title]
>>> > ![[#Description|no-h clean]]
>>>
>>> >[!div-m|no-title]
>>> > ![[#Configure|no-h clean]]
>>>
>>> > [!div-m|no-title]
>>> > ![[#DM Notes|no-h clean]]
>>>
> [!NOTE|no-title]
> ~~~meta-bind
> INPUT[select(
> option(1, 🤹Abilities+Skills),
> option(2, 💪Traits),
> option(3, ⚔️Inventory),
> option(4, 🔗Connections),
> option(5, 🧑🤝🧑Relationships),
> class(tabbed)
> )]
> ~~~
> >[!tabbed-box-maxh]
> > >[!div-m|no-title]
> > > ![[#Skills|no-h clean]]
> >
> > >[!div-m|no-title]
> > > ![[#Traits|no-h1 clean]]
> >
> > >[!div-m|no-title]
> > > ![[#Inventory|no-h1 clean]]
> >
> > > [!div-m|no-title]
> > > ![[#Connections|no-h1 clean]]
> >
> > > [!div-m|no-title]
> > > ![[#Relationships|no-h1 clean]]
---
# General
```badges
items:
- label: Race
value: '{{frontmatter.char_race}}'
- label: Level
value: '{{frontmatter.level}}'
- label: Initiative
value: '+{{frontmatter.modifier}}'
```
<br>
```badges
items:
- label: Alchemy Save DC
value: "+{{add 8 frontmatter.proficiency_bonus (modifier abilities.intelligence)}}"
- label: AC
value: '{{frontmatter.ac}}'
```
<br>
```healthpoints
state_key: dyn_health
health: '{{ frontmatter.hp }}'
reset_on: long-rest
hitdice:
dice: d10
value: 3
```
```event-btns
items:
- name: Short Rest
value: short-rest
- name: Long Rest
value: long-rest
```
# Description
25 years old, female, brown eyes, black hair, fair skin. 5'3", 125 lbs.
Full name: **Dynhulda "Dynamo" Eriksdottir Kronaborgur**
Born to noble parents from Kronaborg who hid their identities to survive the purge of the nobles. Father (\[realname], changed his name to Erik to avoid suspicion) had been formally trained in airship piloting, repair, and combat by the best airship experts when he was living as a nobleman, and after the Exodus, he took up trade as a freight hauler. His airship, the _Skyborn_, is specially designed to be flown and operated by a single person, a consequence of his distrust for partners and crewmates due to having to hide his identity. Dynhulda was brought up in the profession and later took over the business/airship. She has also inherited her father's penchant for secrecy and distrust. Her parents named her in the Old Tongue, as was typical for nobles; in order to downplay her noble origins, she goes by the nickname Dynamo.
Another family legacy, possibly more important than the ship, is _the Sure Knot_. This is a Carnite artefact that has been in the Kronaborgur clan for generations. It is a small, braided loop of dark, well-oiled leather, still supple despite the object's age. It is worn around the wrist and bears a single bead carved of bone, worn smooth from centuries of idle rubbing. The knotted braid pattern of the bracelet is quite unusual, and only the most devout hunters of Carn would recognise it as an old tradition of the Antlered One that fell out of style long ago. The artefact's effect is to grant luck and favour to the bearer, and it is the source of Dynhulda's Lucky feat listed below. It was bequeathed to Dynhulda from her father, who taught her of the item's provenance.
# Configure
| Stat | Value |
| ---------- | --------------------------------------------- |
| Status | `INPUT[template-person-status][:char_status]` |
| Race | `INPUT[template-person-race][:char_race]` |
| Class | `INPUT[template-person-class][:char_class]` |
| Level | `INPUT[number:level]` |
| Gender | `INPUT[template-person-gender][:char_gender]` |
| Age | `INPUT[template-person-age-range][:char_age]` |
| HP | `INPUT[number:hp]` |
| Max HP | `INPUT[number:max_hp]` |
| AC | `INPUT[number:ac]` |
| Initiative | `INPUT[number:modifier]` |
# DM Notes
Lord Haakon's gaze lingered on her when the party met with him in his palace. He may have recognised the _Sure Knot_ around her wrist.
# Skills
```ability
abilities:
strength: 14
dexterity: 15
constitution: 11
intelligence: 12
wisdom: 12
charisma: 11
proficiencies:
- dexterity
- strength
```
<br/>
```skills
proficiencies:
- arcana
- athletics
- gearcraft
- piloting
- stealth
- survival
```
# Traits
Feats, class features, and other traits are listed here.
### Versatile and Skilful (Origin)
You start with an additional Origin Feat and an additional skill proficiency of your choice.
You gain Heroic Inspiration whenever you finish a Long Rest.
### Lucky (Origin Feat)
```consumable
label: "Luck Points"
state_key: dyn_luck_points
uses: 2
reset_on: long-rest
```
Your artefact, _the Sure Knot_, grants you favour from Carn that manifests as luck at just the right time.
**You have `VIEW[floor((number({level})-1)/4)+2]` Luck Points** _(N = PB)_. Whenever you roll a D20 Test, you can spend 1 Luck Point to give yourself Advantage on the roll. You can choose to spend one of your Luck Points **after you roll the die, but before the outcome is determined**.
You can also spend 1 Luck Point when an **attack roll** is made _against_ you to impose Disadvantage on that roll.
If more than one creature spends a Luck Point to influence the outcome of a roll, the points cancel each other out; no additional dice are rolled.
You regain your expended Luck Points when you finish a Long Rest.
### Favoured by Carn (Religion)
You get a +1 bonus to Wisdom (Perception) checks to track or spot a quarry.
### Interception (Fighting Style)
When a creature you can see hits another creature within 5 feet of you with an attack roll, you can take a **Reaction to
reduce the damage dealt to the target by 1d10 + `VIEW[floor((number({level})-1)/4)+2]`** (`dice:1d10|render` + PB). You must be holding a Shield or a Simple or Martial weapon to use this Reaction.
### Hunter's Mark (Sky Ranger 1st Level)
```consumable
label: "Hunter's Mark"
state_key: dyn_hm_uses
uses: 2
reset_on: long-rest
```
You have significant experience tracking and hunting your prey. As a Bonus Action, you can choose a creature you can see within 90 feet of you and mark it as your quarry. For the next hour, you deal an extra 1d6 Force damage (`dice:1d6|render`) to the target whenever you hit it with an attack roll, and you have Advantage on Wisdom (Perception or Survival) checks to find it. You must maintain Concentration on this effect, or it ends. If the target drops to 0 Hit Points before the effect ends, you can take a Bonus Action to move the mark to a new creature you can see within 90 feet of you. You can use this feature `VIEW[floor((number({level})-1)/4)+2]` times _(N = PB)_, and you regain all expended uses when you finish a Long Rest.
In addition, your tracking and wilderness skills provide you other benefits. You habitually track the phases of the moon, the seasons, and, if you live near the sea, the tides. You instinctively know which direction is north at all times. You have perfect recall of terrain (including settlements, natural features, and climate) you have traversed in the last 6 months, and you retain fair recollection of terrain you have traversed at any time in your career.
### Airship Familiarity (Sky Ranger 1st Level)
Through extensive training in the operation of airships, you gain the following benefits:
* You are proficient with air vehicles, including piloting them, maintaining them, repairing them, and using their onboard weapons.
* You can readily navigate the skies, chart courses, and avoid dangerous weather or terrain to the best of your ability.
* You gain Expertise in Piloting checks made to navigate, pilot, or control an airship (but not to repair one).
* You can take the **Pilot's Focus** action once per turn: for 1 minute, environmental conditions such as strong winds or storms do not impose Disadvantage on your Piloting checks. If such conditions would impose a flat penalty to your Piloting checks, you may reduce this penalty by up to 3. This effect can't reduce the penalty below 0.
### Weapon mastery (Sky Ranger 2nd Level)
Your training with weapons allows you to use the **Mastery Properties** of two kinds of weapons of your choice with which you are proficient. Whenever you finish a Long Rest, you can change the kinds of weapons you chose.
```badges
items:
- label: Weapon Type
value: 'Longbows'
- label: Weapon Type
value: 'Light hammers'
```
**Longbows: Slow** (If you hit a creature with this weapon and deal damage to it, you can reduce its Speed by 10 feet until the start of your next turn. If the creature is hit more than once by weapons that have this property, the Speed reduction doesn't exceed 10 feet.)
**Light hammers: Nick** (When you make the extra attack of the Light property, you can make it as part of the Attack action instead of as a Bonus Action. You can make this extra attack only once per turn.)
In addition, you gain a Fighting Style Feat of your choice.
```badges
items:
- label: Fighting Style
value: Interception
```
### Airship Combat (Sky Ranger 3rd Level)
You are trained to fight in the chaos of aerial battles. You have a +4 bonus to Dexterity (Athletics) checks made to keep your balance on board an airship, and you also gain a +4 bonus to Initiative rolls while on board an airship you own, command, or pilot.
Additionally, when at the help of an airship during battle, you no longer need to spend a standard action to control the ship – your focus is so great that handling the vessel becomes second nature to you, and you are free to take other actions, so long as you remain at the wheel.
### Shipwright's Touch (Skywright 3rd Level)
Your knowledge of ship construction allows you to repair and enhance airships with great efficiency. When aboard an airship, you can use Tinker's Tools to make repairs. With 1 hour of work and materials worth 25 gp, you can repair a damaged airship component by 10 Hull Points. You also gain Expertise in any skill checks made to repair an airship or its components.
Additionally, as an action, you can use your Tinker's Tools to modify an airship's systems, granting it an temporary bonus for 1 hour. Choose one of the following benefits:
* **Reinforced Hull.** The airship gains Resistance to one damage type of your choice.
* **Boosted Weapons.** The damage of the airship's weapons is increased by 1d6.
* **Enhanced Navigation.** The airship's acceleration and maximum speed increase by 20 feet (20 mph).
You can use this feature once, regaining its use after a Short or Long Rest.
```consumable
label: "Shipwright's Modifications"
state_key: dyn_skywright_T1
uses: 1
reset_on: ["long-rest", "short-rest"]
```
# Inventory
The following items belong to `= this.file.name`.
Items: `INPUT[inlineListSuggester(optionQuery(#Category/Item)):char_items]`
#### [[The Sure Knot]]
Grants the Lucky feat.
#### [[The Salt Block]]
Food stores on the ship never spoil.
# Connections
Is the person linked to any groups or quests?
Quests: `INPUT[inlineListSuggester(optionQuery(#Category/Quest)):Connected_Quests]`
Groups: `INPUT[inlineListSuggester(optionQuery(#Category/Group)):Connected_Groups]`
# Relationships
List important relationships here.
```dataviewjs
var parents = dv.current().parents ?? [];
var children = dv.current().children ?? [];
var enemies = dv.current().enemies ?? [];
var allies = dv.current().allies ?? [];
var siblings = dv.current().siblings ?? [];
var current = dv.current().file.name;
var partner = dv.current().partner ?? [];
dv.paragraph("```mermaid\nflowchart LR\n" +
// Parents with internal-link on individual nodes only
(parents.length > 0 ? parents.map((parent, index) => `P${index + 1}[${parent}]:::internal-link\nP${index + 1} --> Current\n`).join('') : '') +
// Current node
`Current[${current}]\n` +
// Partner group node (no internal-link applied)
(partner.length > 0 ? `PT[Partner]\nCurrent --> PT\n` : '') +
// Individual partners with internal-link
(partner.length > 0 ? partner.map((p, index) => `PT${index + 1}[${p}]:::internal-link\nPT --> PT${index + 1}\n`).join('') : '') +
// Children group node (no internal-link applied)
(children.length > 0 ? `C[Children]\nCurrent --> C\n${children.map((child, index) => `C${index + 1}[${child}]:::internal-link\nC --> C${index + 1}\n`).join('')}` : '') +
// Siblings group node (no internal-link applied)
(siblings.length > 0 ? `S[Siblings]\nCurrent --> S\n${siblings.map((sibling, index) => `S${index + 1}[${sibling}]:::internal-link\nS --> S${index + 1}\n`).join('')}` : '') +
// Enemies group node (no internal-link applied)
(enemies.length > 0 ? `E[Enemies]\nCurrent --> E\n${enemies.map((enemy, index) => `E${index + 1}[${enemy}]:::internal-link\nE --> E${index + 1}\n`).join('')}` : '') +
// Allies group node (no internal-link applied)
(allies.length > 0 ? `A[Allies]\nCurrent --> A\n${allies.map((ally, index) => `A${index + 1}[${ally}]:::internal-link\nA --> A${index + 1}\n`).join('')}` : '') +
// Styling: Apply internal-link only to individual nodes, not group nodes
`class ${parents.length > 0 ? parents.map((_, index) => `P${index + 1},`).join('') : ''}Current${children.length > 0 ? children.map((_, index) => `C${index + 1},`).join('') : ''}${siblings.length > 0 ? siblings.map((_, index) => `S${index + 1},`).join('') : ''}${enemies.length > 0 ? enemies.map((_, index) => `E${index + 1},`).join('') : ''}${allies.length > 0 ? allies.map((_, index) => `A${index + 1},`).join('') : ''} internal-link;`
)
```
> [!NOTE]- Relationship Config - Enter name of People Notes
> `BUTTON[button_person]` Nodes will link to notes of the same name.
>
> | Parents | Partner | Children |
> | --- | --- | --- |
> | `INPUT[list:parents]` | `INPUT[list:partner]` | `INPUT[list:children]` |
>
> | Siblings | Enemies | Allies |
> | --- | --- | --- |
> | `INPUT[list:siblings]` | `INPUT[list:enemies]` | `INPUT[list:allies]` |
```dataviewjs
const player = dv.current();
const factions = dv.pages('"3-Mechanics/Guilds and Groups"');
let tableData = [];
for (let faction of factions) {
let factionName = faction.faction;
let playerStanding = player.faction_standing?.[factionName] || 0;
// Ensure benefits is treated as an array
let benefitsList = Array.isArray(faction.benefits) ? faction.benefits : [];
// Filter benefits the player qualifies for
let qualifiedBenefits = benefitsList
.filter(b => playerStanding >= b.standing)
.map(b => b.reward)
.join(", ");
let primaryContact = faction.primary_contact || "No contact set";
tableData.push([factionName, playerStanding, qualifiedBenefits || "No benefits yet", primaryContact]);
}
dv.table(["Faction", "Your Standing", "Benefits", "Primary Contact"], tableData);
```