# Strict_Tool_Template_v3.md ## INSTRUCTIONS **How to use this template:** - Output every field shown in required sections. Use `n/a` for required scalar fields that do not apply. - Begin every YAML document with `SCHEMA_VERSION: 1` before the Item type key. - Wrap the completed YAML in a single ```` ```yaml ```` code fence. - Omit entire conditional sections when their condition is not met. Do not output a conditional section filled with `n/a`. - For DESCRIPTION fields, use HTML with Foundry VTT Enrichers (see reference at the bottom of this template). **dnd5e Description Features:** - `DESCRIPTION.Description` and `CHAT_FLAVOR.Chat Description` preserve Foundry/dnd5e text features for Foundry to resolve when displayed. - You can use dnd5e enrichers such as `[[/damage 1d6 fire average]]`, roll-data formulas such as `@prof` or `@abilities.str.mod`, dynamic lookups such as `[[lookup @name]]{the creature}`, System HTML classes, and pass-through document links such as `@UUID[...]` or `@Embed[...]`. - Use stock dnd5e `[[lookup @name]]` text for active narration and chat flavor: sentence start `[[lookup @name]]{The creature} drinks the potion.`; mid-sentence `When [[lookup @name]]{the creature} hits with this weapon...`. This normally resolves to the actor name; the optional Token Name Lookup companion can prefer token aliases at render time without changing item syntax. - Keep passive rules text natural. Do not force dynamic name lookups into every description. **Batching multiple items:** Combine different item types in one block by stacking top-level keys: ```text SCHEMA_VERSION: 1 TOOL: ITEM: Name: "Thieves' Tools" # additional fields omitted in this batching example WEAPON: ITEM: Name: "Longsword +1" # additional fields omitted in this batching example ``` For multiple items of the **same type**, separate them with `---` (YAML document separator): ```text SCHEMA_VERSION: 1 TOOL: ITEM: Name: "Thieves' Tools" # additional fields omitted in this batching example --- SCHEMA_VERSION: 1 TOOL: ITEM: Name: "Herbalism Kit" # additional fields omitted in this batching example ``` You can mix both methods. Supported top-level keys: `SPELL`, `WEAPON`, `EQUIPMENT`, `CONSUMABLE`, `TOOL`, `LOOT`, `CONTAINER`. **For LLM generation:** - Output ONLY the yaml code block. No commentary before or after. - Use exact values from the FIELD REFERENCE tables at the bottom of this document. Do not invent values. - Booleans: `true` or `false` (lowercase, no quotes). - Required scalar fields that do not apply: use the literal string `n/a`. - **Omit conditional sections entirely** (e.g., ATTUNEMENT) when their condition is not met. Do not fill omitted sections with `n/a` values. - **Omit both `effects:` and `Activities:` entirely** unless explicitly requested. - Do not include template comments (`# ...`) in the final YAML output. - Do not omit individual fields from required sections just because their value is `n/a`. - Replace every bracketed placeholder value; never output literal placeholders like `[text]` or `[integer]`. - Use HTML tags inside description fields, not Markdown headings or Markdown lists. **YAML Syntax Rules (do not violate):** - Every key needs a SPACE after the colon: `KEY: value`, never `KEY:value`. js-yaml will reject the file with a confusing "multiline key" error otherwise. - Empty arrays are written `KEY: []` and empty mappings `KEY: {}` — both with the space. - Indentation is exactly 2 spaces per level. No tabs. No 4-space jumps. **Default assumptions when source text is silent:** - Quantity: `1` - Identified: `true` - Equipped: `false` - Rarity: `n/a` for mundane or unspecified items. - Price Value: `0`; Price Denomination: `gp` - Weight Value: `0` when negligible or not listed; Weight Units: `lb` - Uses Spent: `0`; Uses Max: `n/a` unless the item tracks charges or uses. - RECOVERY: `[]` when no charge recovery applies. - Unidentified Name: `n/a`; Unidentified Description: `n/a` unless an unidentified version is needed. - Chat Description: `n/a` unless special chat flavor is needed. --- ```yaml SCHEMA_VERSION: 1 TOOL: ITEM: Name: "[text]" Rarity: "[common|uncommon|rare|veryRare|legendary|artifact|n/a]" Tool Type: "[art|game|music|n/a]" # Use n/a for disguise/forgery/herbalism/navigator/poisoner/thieves tools. Base Tool: "[e.g. alchemist, smith, thief, lute, dice - see list below]" INVENTORY: Quantity: "[integer]" Identified: "[true|false]" Equipped: "[true|false]" COST_AND_WEIGHT: Price Value: "[number]" Price Denomination: "[pp|gp|ep|sp|cp]" Weight Value: "[number]" Weight Units: "[lb|tn|kg|Mg]" PROPERTIES: Magical: "[true|false]" Tool Bonus: "[integer|n/a]" ATTUNEMENT: # (Required only if Magical is true) Attunement: "[none|required|optional]" Attunement By: "[text|n/a]" ABILITY_CHECK: Proficient: "[Automatic|0|0.5|1|2]" Ability: "[str|dex|con|int|wis|cha|n/a]" USAGE: # Uses Spent = number of charges ALREADY CONSUMED (0 means all charges are available). # Uses Max = total number of charges the item can hold. # Example: A fresh item with 5 charges → Uses Spent: 0, Uses Max: 5 Uses Spent: "[integer|n/a]" Uses Max: "[integer|n/a]" # Optional, repeatable. Use [] when there is no recovery. # If Uses Max > 0, replace [] with a list of entries shaped like: # - Period: "[lr|sr|day|dawn|dusk|recharge]" # Type: "[recoverAll|loseAll|formula]" # Formula: "[text|n/a]" RECOVERY: [] DESCRIPTION: Description: | [multiline HTML content containing Enrichers] UNIDENTIFIED_DESCRIPTION: Unidentified Name: "[text|n/a]" Unidentified Description: | [multiline HTML content] CHAT_FLAVOR: Chat Description: | [multiline text content] ``` ## OPTIONAL ADVANCED SECTIONS Do not include `effects:` or `Activities:` in normal output. Add them only when the user explicitly asks for passive Active Effects or extra activities beyond the base item behavior. When requested, append them after `CHAT_FLAVOR`: ```yaml effects: # Passive Active Effects applied to the actor when the item is equipped, attuned, or otherwise active. # Requires the 5e-activity-importer module to be active. # Must be a YAML array. Each entry follows the EFFECT template format. Activities: # Extra activities only. Most base item behavior is generated by the dnd5e system. # Requires the 5e-activity-importer module to be active. # Must be a YAML array. Each entry starts with a dash and has one ACTIVITY_* key. ``` --- ## **FIELD REFERENCE** ### **Tool Types & Base Tool IDs** | Type | Base Tool IDs | |------|---------------| | `art` | `alchemist`, `brewer`, `calligrapher`, `carpenter`, `cartographer`, `cobbler`, `cook`, `glassblower`, `jeweler`, `leatherworker`, `mason`, `painter`, `potter`, `smith`, `tinker`, `weaver`, `woodcarver` | | `game` | `dice`, `card`, `chess` | | `music` | `bagpipes`, `drum`, `dulcimer`, `flute`, `horn`, `lute`, `lyre`, `panflute`, `shawm`, `viol` | | `n/a` | `disg`, `forg`, `herb`, `navg`, `pois`, `thief` | Legacy short artisan IDs such as `alch` and `calli` are still accepted for backward compatibility, but new templates should use the full IDs below. ### **Artisan Tools Reference** | ID | Tool Name | |----|-----------| | `alchemist` | Alchemist's Supplies | | `brewer` | Brewer's Supplies | | `calligrapher` | Calligrapher's Supplies | | `carpenter` | Carpenter's Tools | | `cartographer` | Cartographer's Tools | | `cobbler` | Cobbler's Tools | | `cook` | Cook's Utensils | | `glassblower` | Glassblower's Tools | | `jeweler` | Jeweler's Tools | | `leatherworker` | Leatherworker's Tools | | `mason` | Mason's Tools | | `painter` | Painter's Supplies | | `potter` | Potter's Tools | | `smith` | Smith's Tools | | `tinker` | Tinker's Tools | | `weaver` | Weaver's Tools | | `woodcarver` | Woodcarver's Tools | ### **Other Tools Reference** | ID | Tool Name | |----|-----------| | `disg` | Disguise Kit | | `forg` | Forgery Kit | | `herb` | Herbalism Kit | | `navg` | Navigator's Tools | | `pois` | Poisoner's Kit | | `thief` | Thieves' Tools | ### **Proficiency** | Value | Meaning | |-------|---------| | `Automatic` | Game auto-detects proficiency from the character (default) | | `0` | Not proficient | | `0.5` | Half proficiency | | `1` | Proficient | | `2` | Expertise (double proficiency) | ### **Recovery Periods** | Period | Description | |--------|-------------| | `lr` | Long Rest | | `sr` | Short Rest | | `day` | Daily (any time) | | `dawn` | At dawn | | `dusk` | At dusk | | `recharge` | Roll d6 at dawn; recharge on X+ | ### **Recharge Values** | Formula | Display | |---------|---------| | `6` | Recharge 6 | | `5` | Recharge 5-6 | | `4` | Recharge 4-6 | | `3` | Recharge 3-6 | | `2` | Recharge 2-6 | --- ## **ENRICHER REFERENCE** ### **Saving Throws** ```html [[/save wis 15]] → [DC 15 Wisdom] [[/save con 13 format=long]] → [DC 13 Constitution] saving throw [[/save cha 14]] → [DC 14 Charisma] [[/save dex wis 15]] → [DC 15 Dexterity or Wisdom] ``` ### **Damage Rolls** ```html [[/damage 2d6 fire]] → [2d6] fire [[/damage 2d6 fire average]] → 7 (2d6) fire [[/damage 1d8 + @mod thunder average]] → Includes ability modifier ``` ### **Healing** ```html [[/heal 2d4 + 2]] → [2d4 + 2] healing [[/heal 2d4 + 2 average]] → 7 (2d4 + 2) healing [[/heal 5 temp]] → [5] temporary hit points ``` ### **Ability/Tool Checks** ```html [[/check thieves 15]] → [DC 15 Dexterity (Thieves' Tools)] [[/check alchemist 14 format=long]] → [DC 14 Intelligence (Alchemist's Supplies)] check [[/check performance 12]] → [DC 12 Charisma (Performance)] [[/check sleightofhand 13]] → [DC 13 Dexterity (Sleight of Hand)] [[/tool smith 15]] → [DC 15 Strength (Smith's Tools)] ``` ### **Condition & Rule References** ```html &Reference[frightened] → Frightened (with tooltip) &Reference[charmed] → Charmed &Reference[poisoned] → Poisoned &Reference[deafened] → Deafened &Reference[incapacitated] → Incapacitated &Reference[invisible] → Invisible ``` ### **Dynamic Lookups** ```html [[lookup @name]] → Creature's name [[lookup @abilities.cha.mod]] → Charisma modifier [[lookup @attributes.prof]] → Proficiency bonus ``` --- ## **HTML PATTERNS** ### **Standard Tool Description** ```html

Brief flavor description of the tool's appearance.


Proficiency with these tools lets [[lookup @name]]{the creature} add their proficiency bonus to ability checks they make using them.

``` ### **Magical Tool with Bonus** ```html

Flavor description.


While using these tools, [[lookup @name]]{the creature} has a +X bonus to ability checks made with them.

``` ### **Charge-Based Tool** ```html

Flavor description.


This item has X charges. While using it, [[lookup @name]]{the creature} can expend charges to activate the following abilities:

The item regains 1d4 expended charges daily at dawn.

``` ### **Area Effect (Musical Instruments)** ```html

Haunting Melody (1 Charge). As an action, [[lookup @name]]{the creature} can play the instrument and expend 1 charge. Each creature of their choice within 30 feet that can hear them must succeed on a [[/save wis 15 format=long]] or become &Reference[frightened] of them for 1 minute. A creature can repeat the saving throw at the end of each of its turns, ending the effect on itself on a success.

``` ### **Crafting Enhancement** ```html

Master's Touch. When [[lookup @name]]{the creature} uses these tools to craft an item during downtime, they complete the work in half the normal time.

``` ### **Proficiency Requirement** ```html

You must be proficient with [tool type] to use this item's magical properties.

``` ---