From 50ac9f801889233ad3379cbb985d4a8387318d7c Mon Sep 17 00:00:00 2001 From: Mark Wolfman Date: Sun, 8 Nov 2020 01:09:55 -0600 Subject: [PATCH] Added ability to import character files in JSON format from VTTES. --- README.rst | 4 +- dungeonsheets/character.py | 55 +- dungeonsheets/exceptions.py | 6 + dungeonsheets/make_sheets.py | 56 +- dungeonsheets/readers.py | 280 ++ dungeonsheets/weapons.py | 3 + examples/artificer2.json | 4947 ++++++++++++++++++++++++++++++++++ examples/barbarian3.json | 2955 ++++++++++++++++++++ tests/test_character.py | 3 +- tests/test_make_sheets.py | 8 + tests/test_readers.py | 87 + 11 files changed, 8341 insertions(+), 63 deletions(-) create mode 100644 dungeonsheets/readers.py create mode 100644 examples/artificer2.json create mode 100644 examples/barbarian3.json create mode 100644 tests/test_readers.py diff --git a/README.rst b/README.rst index 4f63e6c..bdcd42d 100644 --- a/README.rst +++ b/README.rst @@ -59,8 +59,8 @@ not, then this feature will be skipped. Usage ===== -Each character is described by a python file, which gives many -attributes associated with the character. See examples_ for more +Each character is described by a python (or JSON) file, which gives +many attributes associated with the character. See examples_ for more information about the character descriptions. .. _examples: https://github.com/canismarko/dungeon-sheets/tree/master/examples diff --git a/dungeonsheets/character.py b/dungeonsheets/character.py index cf73589..91527d1 100644 --- a/dungeonsheets/character.py +++ b/dungeonsheets/character.py @@ -1,10 +1,10 @@ """Tools for describing a player character.""" __all__ = ('Character',) +from pathlib import Path import importlib.util import os import re -import subprocess import warnings import math @@ -18,6 +18,7 @@ from dungeonsheets.dice import read_dice_str from dungeonsheets.stats import (Ability, ArmorClass, Initiative, Skill, Speed, findattr) from dungeonsheets.weapons import Weapon +from dungeonsheets.readers import read_character_file def read(fname): @@ -323,7 +324,7 @@ class Character(): Set maximum HP based on value in charlist py or calc from classes """ if hp_max: - assert isinstance(hp_max, int) + assert isinstance(hp_max, int), hp_max.__class__ self.hp_max = hp_max else: const_mod = self.constitution.modifier @@ -696,7 +697,13 @@ class Character(): try: NewWeapon = findattr(weapons, weapon) except AttributeError: - raise AttributeError(f'Weapon "{weapon}" is not defined') + try: + findattr(spells, weapon) + except AttributeError: + raise AttributeError(f'Weapon "{weapon}" is not defined') + else: + warnings.warn(f"Ignoring spell {weapon} listed as weapon.") + return weapon_ = NewWeapon(wielder=self) elif issubclass(weapon, weapons.Weapon): weapon_ = weapon(wielder=self) @@ -802,48 +809,6 @@ class Character(): flatten=kwargs.get('flatten', True)) -def read_character_file(filename): - """Create a character object from the given definition file. - - The definition file should be an importable python file, filled - with variables describing the character. - - Parameters - ---------- - filename : str - The path to the file that will be imported. - - """ - # Parse the file name - dir_, fname = os.path.split(os.path.abspath(filename)) - module_name, ext = os.path.splitext(fname) - if ext != '.py': - raise ValueError(f"Character definition {filename} is not a python file.") - # Check if this file contains the version string - version_re = re.compile('dungeonsheets_version\s*=\s*[\'"]([0-9.]+)[\'"]') - with open(filename, mode='r') as f: - version = None - for line in f: - match = version_re.match(line) - if match: - version = match.group(1) - break - if version is None: - # Not a valid DND character file - raise exceptions.CharacterFileFormatError( - f"No ``dungeonsheets_version = `` entry in `{filename}`.") - # Import the module to extract the information - spec = importlib.util.spec_from_file_location('module', filename) - module = importlib.util.module_from_spec(spec) - spec.loader.exec_module(module) - # Prepare a list of properties for this character - char_props = {} - for prop_name in dir(module): - if prop_name[0:2] != '__': - char_props[prop_name] = getattr(module, prop_name) - return char_props - - # Add backwards compatability for tests class Artificer(Character): def __init__(self, level=1, **attrs): diff --git a/dungeonsheets/exceptions.py b/dungeonsheets/exceptions.py index 2023ec7..87300d0 100644 --- a/dungeonsheets/exceptions.py +++ b/dungeonsheets/exceptions.py @@ -12,3 +12,9 @@ class LatexNotFoundError(LatexError): class MonsterError(AttributeError): """Error retriving or using a D&D Monster.""" + +class JSONFormatError(RuntimeError): + """The JSON file doesn't conform to the understood formats.""" + +class UnknownFileType(RuntimeError): + """The input file does not match one of the known formats.""" diff --git a/dungeonsheets/make_sheets.py b/dungeonsheets/make_sheets.py index 80db24e..286cabf 100755 --- a/dungeonsheets/make_sheets.py +++ b/dungeonsheets/make_sheets.py @@ -7,6 +7,7 @@ import os import subprocess import warnings import re +from pathlib import Path from multiprocessing import Pool, cpu_count from itertools import product @@ -15,7 +16,7 @@ import pdfrw from jinja2 import Environment, PackageLoader from dungeonsheets import character as _char -from dungeonsheets import exceptions, classes +from dungeonsheets import exceptions, classes, readers from dungeonsheets.stats import mod_str @@ -37,14 +38,14 @@ dice_re = re.compile(r'`*(\d+d\d+(?:\s*\+\s*\d+)?)`*') # - a blank line # - a non-list line or end of file # list_re = re.compile('^[ \t\r\f\v]*\n((?:\s*[-*+]\s+[^\n]*\n)+)', flags=re.MULTILINE) -list_re = re.compile('^[ \t\r\f\v]*\n' # A blank line - '((?:\s*[-*+]\s+[^\n]*\n)+)' # The first line of each list item +list_re = re.compile(r'^[ \t\r\f\v]*\n' # A blank line + r'((?:\s*[-*+]\s+[^\n]*\n)+)' # The first line of each list item '', flags=re.MULTILINE) # What defines a list item in reST: # - a line starting with "- " then some text # - zero or more lines starting with anything other than "- " -list_item_re = re.compile('^\s*[-*+]\s+', flags=re.MULTILINE) +list_item_re = re.compile(r'^\s*[-*+]\s+', flags=re.MULTILINE) def _parse_rst_lists(rst): @@ -143,7 +144,7 @@ def rst_to_latex(rst, top_heading_level=0): list_tex = "\n\\begin{itemize}\n" for item in list_items: list_tex += f"\\item{{{item}}}\n" - list_tex += "\end{itemize}\n" + list_tex += "\\end{itemize}\n" tex = tex.replace(list_rst, list_tex) # Inline text formatting tex = bold_re.sub(r'\\textbf{\1}', tex) @@ -676,12 +677,23 @@ def merge_pdfs(src_filenames, dest_filename, clean_up=False): os.remove(sheet) -load_character_file = _char.read_character_file +load_character_file = readers.read_character_file -def _build(filename, args): - basename = os.path.splitext(filename)[0] - print(f"Processing {basename}...") +def _build(filename, args) -> int: + known_extensions = readers.readers_by_extension.keys() + # Check if it's a directory we can recurse through + if filename.is_dir(): + num_imported = 0 + for child_file in filename.iterdir(): + num_imported += _build(child_file, args) + return num_imported + # Check if we know how to import this file + if filename.suffix not in known_extensions: + return 0 + # Single known file, so import it + basename = filename.stem + print(f"Processing {basename}...") try: make_sheet(character_file=filename, flatten=(not args.editable), debug=args.debug, fancy_decorations=args.fancy_decorations) @@ -695,13 +707,13 @@ def _build(filename, args): raise else: print(f"{basename} done") - + return 1 def main(): # Prepare an argument parser parser = argparse.ArgumentParser( description='Prepare Dungeons and Dragons character sheets as PDFs') - parser.add_argument('filename', type=str, nargs="?", + parser.add_argument('filename', type=str, nargs="*", help="Python file with character definition") parser.add_argument('--editable', '-e', action="store_true", help="Keep the PDF fields in place once processed.") @@ -714,11 +726,25 @@ def main(): # Prepare logging if necessary if args.debug: logging.basicConfig(level=logging.DEBUG) - # Process the requested files - if args.filename is None: - filenames = [f for f in os.listdir('.') if os.path.splitext(f)[1] == '.py'] + # Build the true list of filenames + input_filenames = args.filename + known_extensions = readers.readers_by_extension.keys() + if input_filenames == []: + input_filenames = [Path()] else: - filenames = [args.filename] + input_filenames = [Path(f) for f in input_filenames] + def get_char_files(fpath): + valid_files = [] + if fpath.is_dir(): + for f in fpath.iterdir(): + valid_files.extend(get_char_files(f)) + elif fpath.suffix in known_extensions: + valid_files.append(fpath) + return valid_files + filenames = [] + for fpath in input_filenames: + filenames.extend(get_char_files(fpath)) + # Process the requested files if args.debug: for filename in filenames: _build(filename, args) diff --git a/dungeonsheets/readers.py b/dungeonsheets/readers.py new file mode 100644 index 0000000..c074050 --- /dev/null +++ b/dungeonsheets/readers.py @@ -0,0 +1,280 @@ +import importlib +import warnings +import json +import re +from functools import lru_cache +import logging + +from pathlib import Path + + +from dungeonsheets import exceptions +from dungeonsheets import spells + +log = logging.getLogger(__file__) + + +def read_character_file(filename: str): + """Create a character object from the given definition file. + + The definition file should be an importable python file or a JSON + file following one of the supported formats, filled with variables + describing the character. + + Parameters + ---------- + filename + The path to the file that will be imported. + + """ + filename = Path(filename) + # Parse the file name + dir_ = filename.parent + fname = filename.name + ext = filename.suffix + try: + reader = readers_by_extension[ext]() + except KeyError: + raise ValueError(f"Character definition {filename} is not a known file type.") + else: + new_char = reader(filename=filename) + return new_char + + +class BaseCharacterReader(): + """Callable to parse a generic character file. Meant to be subclassed.""" + def __call__(self, filename): + """ + Parameters + ---------- + filename + The path to the file that will be imported. + """ + raise NotImplementedError() + + +class JSONCharacterReader(BaseCharacterReader): + """Callable to parse a JSON character file from Roll20 VVTES. + + The definition file should be a JSON file following one of the + supported formats, filled with variables describing the character. + + Parameters + ---------- + filename + The path to the file that will be imported. + + """ + @lru_cache() + def json_data(self): + # Load the JSON data from disk + with open(self.filename, mode='r') as fp: + data = json.load(fp) + return data + + def as_int(self, val): + try: + val = int(val) + except ValueError: + val = 0 + return val + + def get_attrib(self, key, which="current", default=None): + for obj in self.json_data()['attribs']: + if obj['name'] == key: + val = obj[which] + return val + # No object was found + if default is not None: + return default + else: + raise KeyError(key) + + def has_skill_proficiency(self, key): + false_profs = ['', '0'] + return self.get_attrib(key=f"{key}_prof") not in false_profs + + def spells(self, prepared: bool=False): + """Iterator over the spells the character knows. + + Parameters + ========== + prepared + If true, only return prepared spells. + + """ + # "name": "repeating_spell-cantrip_-MEzYWPA5cUZYd4ZOvMS_spellname", + prof_re = re.compile("repeating_spell-(cantrip|[0-9]+)_([-0-9a-zA-Z]+)_spellname") + for obj in self.json_data()['attribs']: + match = prof_re.match(obj['name']) + if match: + level = match.group(1) + spell_id = match.group(2) + spell_name = self.get_attrib(f"repeating_spell-{level}_{spell_id}_spellname") + is_prepared = self.as_int(self.get_attrib(f"repeating_spell-{level}_{spell_id}_spellprepared", default=0)) + if not prepared or is_prepared: + yield spell_name.lower() + + def proficiencies(self, kind=None): + """Iterator over the skills in which the character is proficient. + + *kind* can be one of "weapon", "language", or None (all + proficiencies). + + """ + prof_re = re.compile("repeating_proficiencies_([-0-9a-zA-Z]+)_name") + for obj in self.json_data()['attribs']: + match = prof_re.match(obj['name']) + if match: + prof_id = match.group(1) + prof_type = self.get_attrib(f"repeating_proficiencies_{prof_id}_prof_type") + if kind is None or prof_type == kind.upper(): + yield self.get_attrib(f"repeating_proficiencies_{prof_id}_name").lower() + + def equipment(self, kind=None): + """Iterator over items in the character's inventory. + + """ + prof_re = re.compile("repeating_inventory_([-0-9a-zA-Z]+)_itemname") + for obj in self.json_data()['attribs']: + match = prof_re.match(obj['name']) + if match: + item_id = match.group(1) + item_name = self.get_attrib(match.group(0)) + item_count = int(self.get_attrib(f"repeating_inventory_{item_id}_itemcount", default=1)) + item_weight = self.get_attrib(f"repeating_inventory_{item_id}_itemweight", default=0) + item_str = item_name.lower().strip() + if item_count > 1: + item_str += f" ({item_count})" + yield item_str + + def weapons(self): + """Iterator over the weapons the character is carrying in her inventory.""" + item_re = re.compile("repeating_attack_([-0-9a-zA-Z]+)_atkname") + for obj in self.json_data()['attribs']: + match = item_re.match(obj['name']) + if match: + weapon_name = self.get_attrib(match.group()).lower() + if weapon_name[:3] == "i. ": + # Ignore artificer infusions + warnings.warn("Ignoring weapon infusion") + else: + weapon_name = weapon_name.split('(')[0].strip() + weapon_name = weapon_name.split(',')[0].strip() + yield weapon_name + + def __call__(self, filename: str): + """Create a character property dictionary from the JSON file.""" + # Verify the version compatibility + self.filename = filename + version = self.json_data()['schema_version'] + if version != 2: + raise exceptions.JSONFormatError("Cannot parse JSON schema version: %s" % version) + # Parse the json tree to get character properties + char_props = {} + char_props['name'] = self.json_data()['name'] + char_props['level'] = self.as_int(self.get_attrib('base_level')) + char_props['classes'] = [self.get_attrib('class')] + char_props['background'] = self.get_attrib('background') + char_props['race'] = self.get_attrib('subrace') + char_props['alignment'] = self.get_attrib('alignment') + char_props['xp'] = self.as_int(self.get_attrib('experience', default=0)) + # Attributes + attribute_names = ['strength', 'dexterity', 'constitution', + 'intelligence', 'wisdom', 'charisma'] + for attr in attribute_names: + char_props[attr] = self.as_int(self.get_attrib(f"{attr}_base")) + # Skill proficiencies + skill_names = ['acrobatics', 'animal_handling', 'arcana', + 'athletics', 'deception', 'history', 'insight', 'intimidation', + 'investigation', 'medicine', 'nature', 'perception', + 'performance', 'persuasion', 'religion', 'sleight_of_hand', + 'stealth', 'survival'] + skill_profs = [skill for skill in skill_names if self.has_skill_proficiency(skill)] + char_props['skill_proficiencies'] = skill_profs + # Other proficiencies + char_props['weapon_proficiencies'] = self.proficiencies("weapon") + char_props['languages'] = ", ".join(self.proficiencies("language")) + # Tool proficiencies + prof_re = re.compile("repeating_tool_([-0-9a-zA-Z]+)_toolname") + tool_profs = [] + for obj in self.json_data()['attribs']: + match = prof_re.match(obj['name']) + if match: + tool_profs.append(self.get_attrib(match.group(0))) + char_props['_proficiencies_text'] = tool_profs + # Combat stats + char_props['hp_max'] = self.as_int(self.get_attrib('hp', which="max")) + # Equipment + char_props['cp'] = self.as_int(self.get_attrib('cp', default=0)) + char_props['sp'] = self.as_int(self.get_attrib('sp', default=0)) + char_props['ep'] = self.as_int(self.get_attrib('ep', default=0)) + char_props['gp'] = self.as_int(self.get_attrib('gp', default=0)) + char_props['pp'] = self.as_int(self.get_attrib('pp', default=0)) + char_props['weapons'] = self.weapons() + char_props['equipment'] = ", ".join(self.equipment()) + # Personality, etc + char_props['personality_traits'] = self.get_attrib('personality_traits').strip() + char_props['flaws'] = self.get_attrib('flaws').strip() + char_props['ideals'] = self.get_attrib('ideals').strip() + char_props['bonds'] = self.get_attrib('bonds').strip() + # Spells + char_props["spells"] = self.spells() + char_props["spells_prepared"] = self.spells(prepared=True) + # Some unused values + warn_msg = ("Importing the following traits from JSON is not yet supported: " + "magic_items, armor, shield, attacks_and_spellcasting, " + "infusions, wild_shapes") + warnings.warn(warn_msg) + log.warning(warn_msg) + char_props['magic_items'] = () + char_props['armor'] = "" + char_props["shield"] = "" + char_props["attacks_and_spellcasting"] = "" + char_props["infusions"] = [] + char_props["wild_shapes"] = [] + return char_props + + +class PythonCharacterReader(BaseCharacterReader): + def __call__(self, filename: str): + """Create a character object from the given definition file. + + The definition file should be an importable python file, filled + with variables describing the character. + + Parameters + ---------- + filename + The path to the file that will be imported. + + """ + # Check if this file contains the version string + version_re = re.compile(r'dungeonsheets_version\s*=\s*[\'"]([0-9.]+)[\'"]') + with open(filename, mode='r') as f: + version = None + for line in f: + match = version_re.match(line) + if match: + version = match.group(1) + break + if version is None: + # Not a valid DND character file + raise exceptions.CharacterFileFormatError( + f"No ``dungeonsheets_version = `` entry in `{filename}`.") + # Import the module to extract the information + spec = importlib.util.spec_from_file_location('module', filename) + module = importlib.util.module_from_spec(spec) + spec.loader.exec_module(module) + # Prepare a list of properties for this character + char_props = {} + for prop_name in dir(module): + if prop_name[0:2] != '__': + char_props[prop_name] = getattr(module, prop_name) + return char_props + + +readers_by_extension = { + '.py': PythonCharacterReader, + '.json': JSONCharacterReader, +} diff --git a/dungeonsheets/weapons.py b/dungeonsheets/weapons.py index 1ddd755..6430f62 100644 --- a/dungeonsheets/weapons.py +++ b/dungeonsheets/weapons.py @@ -484,6 +484,9 @@ class Unarmed(MeleeWeapon): ability = "strength" +UnarmedStrike = Unarmed + + class SunBolt(RangedWeapon): name = "Sun Bolt" cost = "0 gp" diff --git a/examples/artificer2.json b/examples/artificer2.json new file mode 100644 index 0000000..4dfbce2 --- /dev/null +++ b/examples/artificer2.json @@ -0,0 +1,4947 @@ +{ + "schema_version": 2, + "oldId": "-MEzNAzOkhxPWoa6mIKD", + "name": "Sollys Glazier", + "avatar": "", + "bio": "", + "gmnotes": "", + "defaulttoken": "", + "tags": "[]", + "controlledby": "-MEyoKlGQbAw1Q7QviuC", + "inplayerjournals": "-MEyoKlGQbAw1Q7QviuC", + "attribs": [ + { + "name": "l1mancer_status", + "current": "completed", + "max": "", + "id": "-MEzNAzhoG-x5EWqp9FG" + }, + { + "name": "hitdieroll", + "current": "8", + "max": "", + "id": "-MEzNCex9aReTbAKOmhm" + }, + { + "name": "showleveler", + "current": 0, + "max": "", + "id": "-MEzNCf0VIEhcO6t959l" + }, + { + "name": "invalidXP", + "current": 0, + "max": "", + "id": "-MEzNCf25wbIYtoOhuNt" + }, + { + "name": "version", + "current": 4.21, + "max": "", + "id": "-MEzNCfgdqOK0cxDIyfb" + }, + { + "name": "appliedUpdates", + "current": "upgrade_to_4_2_1,fix_spell_attacks,fix_pc_skill_and_saving_rolls,fix_pc_saving_rolls,fix_pc_skill_and_saving_rolls_with_expertise,fix_pc_skill_and_saving_rolls_with_reliable_talent,enable_powerful_build_on_existing_characters,fix_pc_global_critical_damage_rolls,fix_pc_global_critical_stacked_damage_rolls,fix_pc_skill_rolls_tooltips,fix_pc_global_statical_critical_damage,fix_spell_school_ouput,fix_pc_global_multiple_statical_critical_damage", + "max": "", + "id": "-MEzNCflSNLG_vOJW3oi" + }, + { + "name": "strength_save_roll", + "current": "@{wtype}&{template:simple} {{rname=^{strength-save-u}}} {{mod=@{strength_save_bonus}}} {{r1=[[@{d20}+@{strength_save_bonus}@{pbd_safe}]]}} {{always=1}} {{r2=[[@{d20}+@{strength_save_bonus}@{pbd_safe}]]}} {{global=@{global_save_mod}}} @{charname_output}", + "max": "", + "id": "-MEzNCgf846TGAdTf3Ly" + }, + { + "name": "dexterity_save_roll", + "current": "@{wtype}&{template:simple} {{rname=^{dexterity-save-u}}} {{mod=@{dexterity_save_bonus}}} {{r1=[[@{d20}+@{dexterity_save_bonus}@{pbd_safe}]]}} {{always=1}} {{r2=[[@{d20}+@{dexterity_save_bonus}@{pbd_safe}]]}} {{global=@{global_save_mod}}} @{charname_output}", + "max": "", + "id": "-MEzNCgi8r5H-DDOIIQO" + }, + { + "name": "constitution_save_roll", + "current": "@{wtype}&{template:simple} {{rname=^{constitution-save-u}}} {{mod=@{constitution_save_bonus}}} {{r1=[[@{d20}+@{constitution_save_bonus}@{pbd_safe}]]}} {{always=1}} {{r2=[[@{d20}+@{constitution_save_bonus}@{pbd_safe}]]}} {{global=@{global_save_mod}}} @{charname_output}", + "max": "", + "id": "-MEzNCglw9hd7wKrm-cQ" + }, + { + "name": "intelligence_save_roll", + "current": "@{wtype}&{template:simple} {{rname=^{intelligence-save-u}}} {{mod=@{intelligence_save_bonus}}} {{r1=[[@{d20}+@{intelligence_save_bonus}@{pbd_safe}]]}} {{always=1}} {{r2=[[@{d20}+@{intelligence_save_bonus}@{pbd_safe}]]}} {{global=@{global_save_mod}}} @{charname_output}", + "max": "", + "id": "-MEzNCgnazhJdUvlBULN" + }, + { + "name": "wisdom_save_roll", + "current": "@{wtype}&{template:simple} {{rname=^{wisdom-save-u}}} {{mod=@{wisdom_save_bonus}}} {{r1=[[@{d20}+@{wisdom_save_bonus}@{pbd_safe}]]}} {{always=1}} {{r2=[[@{d20}+@{wisdom_save_bonus}@{pbd_safe}]]}} {{global=@{global_save_mod}}} @{charname_output}", + "max": "", + "id": "-MEzNCgp8M42cRv7TVJ-" + }, + { + "name": "charisma_save_roll", + "current": "@{wtype}&{template:simple} {{rname=^{charisma-save-u}}} {{mod=@{charisma_save_bonus}}} {{r1=[[@{d20}+@{charisma_save_bonus}@{pbd_safe}]]}} {{always=1}} {{r2=[[@{d20}+@{charisma_save_bonus}@{pbd_safe}]]}} {{global=@{global_save_mod}}} @{charname_output}", + "max": "", + "id": "-MEzNCgs4fjtRLHuu34g" + }, + { + "name": "honor_save_roll", + "current": "@{wtype}&{template:simple} {{rname=^{honor-save-u}}} {{mod=@{honor_save_bonus}}} {{r1=[[@{d20}+@{honor_save_bonus}@{pbd_safe}]]}} {{always=1}} {{r2=[[@{d20}+@{honor_save_bonus}@{pbd_safe}]]}} {{global=@{global_save_mod}}} @{charname_output}", + "max": "", + "id": "-MEzNCguXF6UUL1TlKEO" + }, + { + "name": "sanity_save_roll", + "current": "@{wtype}&{template:simple} {{rname=^{sanity-save-u}}} {{mod=@{sanity_save_bonus}}} {{r1=[[@{d20}+@{sanity_save_bonus}@{pbd_safe}]]}} {{always=1}} {{r2=[[@{d20}+@{sanity_save_bonus}@{pbd_safe}]]}} {{global=@{global_save_mod}}} @{charname_output}", + "max": "", + "id": "-MEzNCgw9cbDE6q6NSaX" + }, + { + "name": "athletics_roll", + "current": "@{wtype}&{template:simple} {{rname=^{athletics-u}}} {{mod=@{athletics_bonus}}} {{r1=[[@{d20}+1[strength]@{pbd_safe}]]}} {{always=1}} {{r2=[[@{d20}+1[strength]@{pbd_safe}]]}} {{global=@{global_skill_mod}}} @{charname_output}", + "max": "", + "id": "-MEzNChFIHtZ8Qhc48Y3" + }, + { + "name": "acrobatics_roll", + "current": "@{wtype}&{template:simple} {{rname=^{acrobatics-u}}} {{mod=@{acrobatics_bonus}}} {{r1=[[@{d20}+2[dexterity]@{pbd_safe}]]}} {{always=1}} {{r2=[[@{d20}+2[dexterity]@{pbd_safe}]]}} {{global=@{global_skill_mod}}} @{charname_output}", + "max": "", + "id": "-MEzNChIzLHWjD5vPUxy" + }, + { + "name": "sleight_of_hand_roll", + "current": "@{wtype}&{template:simple} {{rname=^{sleight_of_hand-u}}} {{mod=@{sleight_of_hand_bonus}}} {{r1=[[@{d20}+2[Proficiency]+2[dexterity]@{pbd_safe}]]}} {{always=1}} {{r2=[[@{d20}+2[Proficiency]+2[dexterity]@{pbd_safe}]]}} {{global=@{global_skill_mod}}} @{charname_output}", + "max": "", + "id": "-MEzNChKAUwY-HWiIZ9G" + }, + { + "name": "stealth_roll", + "current": "@{wtype}&{template:simple} {{rname=^{stealth-u}}} {{mod=@{stealth_bonus}}} {{r1=[[@{d20}+2[dexterity]@{pbd_safe}]]}} {{always=1}} {{r2=[[@{d20}+2[dexterity]@{pbd_safe}]]}} {{global=@{global_skill_mod}}} @{charname_output}", + "max": "", + "id": "-MEzNChNzi3l6DQonCgX" + }, + { + "name": "arcana_roll", + "current": "@{wtype}&{template:simple} {{rname=^{arcana-u}}} {{mod=@{arcana_bonus}}} {{r1=[[@{d20}+2[Proficiency]+5[intelligence]@{pbd_safe}]]}} {{always=1}} {{r2=[[@{d20}+2[Proficiency]+5[intelligence]@{pbd_safe}]]}} {{global=@{global_skill_mod}}} @{charname_output}", + "max": "", + "id": "-MEzNChPouUN7H6xoJQS" + }, + { + "name": "history_roll", + "current": "@{wtype}&{template:simple} {{rname=^{history-u}}} {{mod=@{history_bonus}}} {{r1=[[@{d20}+2[Proficiency]+5[intelligence]@{pbd_safe}]]}} {{always=1}} {{r2=[[@{d20}+2[Proficiency]+5[intelligence]@{pbd_safe}]]}} {{global=@{global_skill_mod}}} @{charname_output}", + "max": "", + "id": "-MEzNChSGRfLiNgFLw8-" + }, + { + "name": "investigation_roll", + "current": "@{wtype}&{template:simple} {{rname=^{investigation-u}}} {{mod=@{investigation_bonus}}} {{r1=[[@{d20}+2[Proficiency]+5[intelligence]@{pbd_safe}]]}} {{always=1}} {{r2=[[@{d20}+2[Proficiency]+5[intelligence]@{pbd_safe}]]}} {{global=@{global_skill_mod}}} @{charname_output}", + "max": "", + "id": "-MEzNChWOE0NHkIaUqB3" + }, + { + "name": "nature_roll", + "current": "@{wtype}&{template:simple} {{rname=^{nature-u}}} {{mod=@{nature_bonus}}} {{r1=[[@{d20}+5[intelligence]@{pbd_safe}]]}} {{always=1}} {{r2=[[@{d20}+5[intelligence]@{pbd_safe}]]}} {{global=@{global_skill_mod}}} @{charname_output}", + "max": "", + "id": "-MEzNChZ06L14gFsWG35" + }, + { + "name": "religion_roll", + "current": "@{wtype}&{template:simple} {{rname=^{religion-u}}} {{mod=@{religion_bonus}}} {{r1=[[@{d20}+5[intelligence]@{pbd_safe}]]}} {{always=1}} {{r2=[[@{d20}+5[intelligence]@{pbd_safe}]]}} {{global=@{global_skill_mod}}} @{charname_output}", + "max": "", + "id": "-MEzNChb5Vk-gyEKgfrm" + }, + { + "name": "animal_handling_roll", + "current": "@{wtype}&{template:simple} {{rname=^{animal_handling-u}}} {{mod=@{animal_handling_bonus}}} {{r1=[[@{d20}+@{animal_handling_bonus}[Mods]@{pbd_safe}]]}} {{always=1}} {{r2=[[@{d20}+@{animal_handling_bonus}[Mods]@{pbd_safe}]]}} {{global=@{global_skill_mod}}} @{charname_output}", + "max": "", + "id": "-MEzNChcfufciXBBQusj" + }, + { + "name": "insight_roll", + "current": "@{wtype}&{template:simple} {{rname=^{insight-u}}} {{mod=@{insight_bonus}}} {{r1=[[@{d20}+@{insight_bonus}[Mods]@{pbd_safe}]]}} {{always=1}} {{r2=[[@{d20}+@{insight_bonus}[Mods]@{pbd_safe}]]}} {{global=@{global_skill_mod}}} @{charname_output}", + "max": "", + "id": "-MEzNChew7Sm_Sf3ERca" + }, + { + "name": "medicine_roll", + "current": "@{wtype}&{template:simple} {{rname=^{medicine-u}}} {{mod=@{medicine_bonus}}} {{r1=[[@{d20}+@{medicine_bonus}[Mods]@{pbd_safe}]]}} {{always=1}} {{r2=[[@{d20}+@{medicine_bonus}[Mods]@{pbd_safe}]]}} {{global=@{global_skill_mod}}} @{charname_output}", + "max": "", + "id": "-MEzNChh940gwye_1cHF" + }, + { + "name": "perception_roll", + "current": "@{wtype}&{template:simple} {{rname=^{perception-u}}} {{mod=@{perception_bonus}}} {{r1=[[@{d20}+@{perception_bonus}[Mods]@{pbd_safe}]]}} {{always=1}} {{r2=[[@{d20}+@{perception_bonus}[Mods]@{pbd_safe}]]}} {{global=@{global_skill_mod}}} @{charname_output}", + "max": "", + "id": "-MEzNChjwDva0ltfma4c" + }, + { + "name": "survival_roll", + "current": "@{wtype}&{template:simple} {{rname=^{survival-u}}} {{mod=@{survival_bonus}}} {{r1=[[@{d20}+@{survival_bonus}[Mods]@{pbd_safe}]]}} {{always=1}} {{r2=[[@{d20}+@{survival_bonus}[Mods]@{pbd_safe}]]}} {{global=@{global_skill_mod}}} @{charname_output}", + "max": "", + "id": "-MEzNChl1QsGnrEkp-Bp" + }, + { + "name": "deception_roll", + "current": "@{wtype}&{template:simple} {{rname=^{deception-u}}} {{mod=@{deception_bonus}}} {{r1=[[@{d20}+@{deception_bonus}[Mods]@{pbd_safe}]]}} {{always=1}} {{r2=[[@{d20}+@{deception_bonus}[Mods]@{pbd_safe}]]}} {{global=@{global_skill_mod}}} @{charname_output}", + "max": "", + "id": "-MEzNChnqf7UXUeL5EMR" + }, + { + "name": "intimidation_roll", + "current": "@{wtype}&{template:simple} {{rname=^{intimidation-u}}} {{mod=@{intimidation_bonus}}} {{r1=[[@{d20}+@{intimidation_bonus}[Mods]@{pbd_safe}]]}} {{always=1}} {{r2=[[@{d20}+@{intimidation_bonus}[Mods]@{pbd_safe}]]}} {{global=@{global_skill_mod}}} @{charname_output}", + "max": "", + "id": "-MEzNChqJ6P_zDtubJ-z" + }, + { + "name": "performance_roll", + "current": "@{wtype}&{template:simple} {{rname=^{performance-u}}} {{mod=@{performance_bonus}}} {{r1=[[@{d20}+@{performance_bonus}[Mods]@{pbd_safe}]]}} {{always=1}} {{r2=[[@{d20}+@{performance_bonus}[Mods]@{pbd_safe}]]}} {{global=@{global_skill_mod}}} @{charname_output}", + "max": "", + "id": "-MEzNChsWeKiW4JjQ_0I" + }, + { + "name": "persuasion_roll", + "current": "@{wtype}&{template:simple} {{rname=^{persuasion-u}}} {{mod=@{persuasion_bonus}}} {{r1=[[@{d20}+@{persuasion_bonus}[Mods]@{pbd_safe}]]}} {{always=1}} {{r2=[[@{d20}+@{persuasion_bonus}[Mods]@{pbd_safe}]]}} {{global=@{global_skill_mod}}} @{charname_output}", + "max": "", + "id": "-MEzNChupUD0rXPBDlqi" + }, + { + "name": "mancer_confirm_flag", + "current": "", + "max": "", + "id": "-MEzNCrD-qy4xAj_TBGm" + }, + { + "name": "mancer_confirm", + "current": "on", + "max": "", + "id": "-MEzNGRaFZhB9G8jH_mQ" + }, + { + "name": "charactermancer_step", + "current": "", + "max": "", + "id": "-MEzNGTPIdVwZI1dO3P2" + }, + { + "name": "class_resource_name", + "current": "", + "max": "", + "id": "-MEzXlOY45G54X3hezlj" + }, + { + "name": "class_resource", + "current": "", + "max": "", + "id": "-MEzXlOahkUIY7U4HsO2" + }, + { + "name": "other_resource_name", + "current": "", + "max": "", + "id": "-MEzXlOckAcZQkLahl3F" + }, + { + "name": "other_resource", + "current": "", + "max": "", + "id": "-MEzXlOesz720zry1Kl0" + }, + { + "name": "other_resource_itemid", + "current": "", + "max": "", + "id": "-MEzXlOhlg3mqfWBHCzs" + }, + { + "name": "class", + "current": "Artificer", + "max": "", + "id": "-MEzXlOkPbwtlewpYTVT" + }, + { + "name": "class_display", + "current": "Artificer 3", + "max": "", + "id": "-MEzXlOmhdHGd9DEgwI7" + }, + { + "name": "subclass", + "current": "", + "max": "", + "id": "-MEzXlOp_iqm8SUVaULg" + }, + { + "name": "hitdietype", + "current": "8", + "max": "", + "id": "-MEzXlOsXoU4L5ad9bwY" + }, + { + "name": "hitdie_final", + "current": "@{hitdietype}", + "max": "", + "id": "-MEzXlOuGCKlNjL8oOBA" + }, + { + "name": "race", + "current": "Gnome", + "max": "", + "id": "-MEzXlOvWlck81YcTEFI" + }, + { + "name": "subrace", + "current": "Rock Gnome", + "max": "", + "id": "-MEzXlOxYphSSLcpfdDD" + }, + { + "name": "race_display", + "current": "Rock Gnome", + "max": "", + "id": "-MEzXlOzsuv1K1T3F6gN" + }, + { + "name": "custom_class", + "current": "1", + "max": "", + "id": "-MEzXlP-l-EIcDGFv02q" + }, + { + "name": "cust_classname", + "current": "Artificer", + "max": "", + "id": "-MEzXlP0yUsrZhaeAak6" + }, + { + "name": "hp", + "current": 9, + "max": "19", + "id": "-MEzXlPAXBXMxQcyUWaC" + }, + { + "name": "size", + "current": "Small", + "max": "", + "id": "-MEzXlPCpVn0WpVrc2gT" + }, + { + "name": "speed", + "current": 25, + "max": "", + "id": "-MEzXlPDbsxW9KzlXnU4" + }, + { + "name": "gp", + "current": "50", + "max": "", + "id": "-MEzXlPFV4l5hRaNpohy" + }, + { + "name": "alignment", + "current": "Neutral Good", + "max": "", + "id": "-MEzXlPG6PTGvOnZobhH" + }, + { + "name": "spellcasting_ability", + "current": "@{intelligence_mod}+", + "max": "", + "id": "-MEzXlPJfs6_bjPBxCWM" + }, + { + "name": "cust_hitdietype", + "current": "8", + "max": "", + "id": "-MEzXlPKTUFP7ihOSOSe" + }, + { + "name": "cust_spellslots", + "current": "full", + "max": "", + "id": "-MEzXlPMNVhEdeKw6dCd" + }, + { + "name": "cust_spellcasting_ability", + "current": "@{intelligence_mod}+", + "max": "", + "id": "-MEzXlPObCzRUh1CJzIR" + }, + { + "name": "ac", + "current": "18", + "max": "", + "id": "-MEzXlPPm3nZh2GZ589v" + }, + { + "name": "jack_bonus", + "current": "", + "max": "", + "id": "-MEzXlPQ8n_xBKFyL6db" + }, + { + "name": "jack_attr", + "current": "", + "max": "", + "id": "-MEzXlPRbPs_spVeEM6c" + }, + { + "name": "death_save_bonus", + "current": 0, + "max": "", + "id": "-MEzXlPTpNTe99lqQjZV" + }, + { + "name": "weighttotal", + "current": 152.82, + "max": "", + "id": "-MEzXlPUJ-J4LDwEvS6L" + }, + { + "name": "initiative_bonus", + "current": 2, + "max": "", + "id": "-MEzXlPV8ZNnrcgtm5Vw" + }, + { + "name": "hit_dice", + "current": "2", + "max": 3, + "id": "-MEzXlPWXCixEZvlzlTp" + }, + { + "name": "pb", + "current": "2", + "max": "", + "id": "-MEzXlPXJbzZe1QvetOk" + }, + { + "name": "jack", + "current": 1, + "max": "", + "id": "-MEzXlPYC1E39LDezYKD" + }, + { + "name": "caster_level", + "current": 3, + "max": "", + "id": "-MEzXlPZDJjF4VDTW4MR" + }, + { + "name": "spell_attack_mod", + "current": 0, + "max": "", + "id": "-MEzXlPaCm8tqlP-aDb5" + }, + { + "name": "spell_attack_bonus", + "current": 7, + "max": "", + "id": "-MEzXlPcXtycRoUgGbgq" + }, + { + "name": "spell_save_dc", + "current": 15, + "max": "", + "id": "-MEzXlPeYDK9rAqm9uww" + }, + { + "name": "passive_wisdom", + "current": 10, + "max": "", + "id": "-MEzXlPg706w2aVQtclS" + }, + { + "name": "custom_ac_base", + "current": "", + "max": "", + "id": "-MEzXlPiIuP_thYHxl6c" + }, + { + "name": "custom_ac_part1", + "current": "", + "max": "", + "id": "-MEzXlPjYZ4z1Tg56fk0" + }, + { + "name": "custom_ac_part2", + "current": "", + "max": "", + "id": "-MEzXlPk94GkxhaCm0zj" + }, + { + "name": "custom_ac_shield", + "current": "", + "max": "", + "id": "-MEzXlPltGtG8EZHXXEn" + }, + { + "name": "background", + "current": "Rival Intern", + "max": "", + "id": "-MEzXlPmTwDRKxw_ME_g" + }, + { + "name": "global_damage_mod_flag", + "current": "", + "max": "", + "id": "-MEzXlPncpWftdXvD81T" + }, + { + "name": "global_ac_mod_flag", + "current": "", + "max": "", + "id": "-MEzXlPpXlZeFmFYk6VU" + }, + { + "name": "global_attack_mod_flag", + "current": "", + "max": "", + "id": "-MEzXlPqSVJnuZBr7hGP" + }, + { + "name": "global_save_mod_flag", + "current": "", + "max": "", + "id": "-MEzXlPri56t9baYyvgb" + }, + { + "name": "global_skill_mod_flag", + "current": "", + "max": "", + "id": "-MEzXlPsSMJHdRWeQbsQ" + }, + { + "name": "halflingluck_flag", + "current": 0, + "max": "", + "id": "-MEzXlPtEDvebAB8ETuW" + }, + { + "name": "tab", + "current": "core", + "max": "", + "id": "-MEzXlPwxeKVJyj9V_YF" + }, + { + "name": "base_level", + "current": "3", + "max": "", + "id": "-MEzXlPyWZWkP-nrOUGr" + }, + { + "name": "level", + "current": 3, + "max": "", + "id": "-MEzXlQ0uRXz2sTnv9fQ" + }, + { + "name": "armorwarningflag", + "current": "hide", + "max": "", + "id": "-MEzXlQ36LEKIEwM2Z6b" + }, + { + "name": "customacwarningflag", + "current": "hide", + "max": "", + "id": "-MEzXlQ5KmWQk-4y0uHr" + }, + { + "name": "custom_ac_flag", + "current": "0", + "max": "", + "id": "-MEzXlQ7pdWfKuFfm9xo" + }, + { + "name": "custom_attack_flag", + "current": "0", + "max": "", + "id": "-MEzXlQAezAaTPzd527_" + }, + { + "name": "multiclass1_flag", + "current": "0", + "max": "", + "id": "-MEzXlQCW4bHrAYlPF14" + }, + { + "name": "multiclass1_lvl", + "current": "1", + "max": "", + "id": "-MEzXlQE-uquMJkIOo6J" + }, + { + "name": "multiclass2_flag", + "current": "0", + "max": "", + "id": "-MEzXlQGZ4g7DXmf4l2S" + }, + { + "name": "multiclass2_lvl", + "current": "1", + "max": "", + "id": "-MEzXlQI1X9Kur51rwiV" + }, + { + "name": "multiclass3_flag", + "current": "0", + "max": "", + "id": "-MEzXlQKKdx7-u7dMgj1" + }, + { + "name": "multiclass3_lvl", + "current": "1", + "max": "", + "id": "-MEzXlQMVn40vik_kgGh" + }, + { + "name": "athletics_prof", + "current": "", + "max": "", + "id": "-MEzXlQSeroiakZfet-y" + }, + { + "name": "athletics_type", + "current": "", + "max": "", + "id": "-MEzXlQUztSz-YU-BXvh" + }, + { + "name": "athletics_bonus", + "current": 1, + "max": "", + "id": "-MEzXlQWFTWQM4J9faPY" + }, + { + "name": "acrobatics_prof", + "current": "", + "max": "", + "id": "-MEzXlQYF3OnMOdz1BLL" + }, + { + "name": "acrobatics_type", + "current": "", + "max": "", + "id": "-MEzXlQ_CO0bWBf7vDbh" + }, + { + "name": "acrobatics_bonus", + "current": 2, + "max": "", + "id": "-MEzXlQbSzpF4eXvWY2B" + }, + { + "name": "sleight_of_hand_prof", + "current": "(@{pb}*@{sleight_of_hand_type})", + "max": "", + "id": "-MEzXlQdIuzBBv8xrwsH" + }, + { + "name": "sleight_of_hand_type", + "current": "", + "max": "", + "id": "-MEzXlQgZ7RBWr1exDG3" + }, + { + "name": "sleight_of_hand_bonus", + "current": 4, + "max": "", + "id": "-MEzXlQicQ2BAXTtAj8k" + }, + { + "name": "stealth_prof", + "current": "", + "max": "", + "id": "-MEzXlQkXFKwuag_SLM4" + }, + { + "name": "stealth_type", + "current": "", + "max": "", + "id": "-MEzXlQme21hUa1CVZkl" + }, + { + "name": "stealth_bonus", + "current": 2, + "max": "", + "id": "-MEzXlQpgHhVFZuU7Xxh" + }, + { + "name": "arcana_prof", + "current": "(@{pb}*@{arcana_type})", + "max": "", + "id": "-MEzXlQrTPU9MOcvPGM4" + }, + { + "name": "arcana_type", + "current": "", + "max": "", + "id": "-MEzXlQt7iELnmdoMjhq" + }, + { + "name": "arcana_bonus", + "current": 7, + "max": "", + "id": "-MEzXlQvMQjxkjWfP7JT" + }, + { + "name": "history_prof", + "current": "(@{pb}*@{history_type})", + "max": "", + "id": "-MEzXlQxlOiVARiOqWd5" + }, + { + "name": "history_type", + "current": "", + "max": "", + "id": "-MEzXlR-9pIzmzcc0Io1" + }, + { + "name": "history_bonus", + "current": 7, + "max": "", + "id": "-MEzXlR0mA_eRUhiErnn" + }, + { + "name": "investigation_prof", + "current": "(@{pb}*@{investigation_type})", + "max": "", + "id": "-MEzXlR4AWsOWlzPJOZz" + }, + { + "name": "investigation_type", + "current": "", + "max": "", + "id": "-MEzXlR6_dIiU09OnjXf" + }, + { + "name": "investigation_bonus", + "current": 7, + "max": "", + "id": "-MEzXlR71ltx25gmoNwy" + }, + { + "name": "nature_prof", + "current": "", + "max": "", + "id": "-MEzXlR9w5jdHGG1NfTP" + }, + { + "name": "nature_type", + "current": "", + "max": "", + "id": "-MEzXlRBxbQmugmjFoOk" + }, + { + "name": "nature_bonus", + "current": 5, + "max": "", + "id": "-MEzXlRD5YC5dbLv52lH" + }, + { + "name": "religion_prof", + "current": "", + "max": "", + "id": "-MEzXlRFW0F6x0A2FDd1" + }, + { + "name": "religion_type", + "current": "", + "max": "", + "id": "-MEzXlRHVawgIPqFgg6h" + }, + { + "name": "religion_bonus", + "current": 5, + "max": "", + "id": "-MEzXlRJVAq4i1zqVa5_" + }, + { + "name": "animal_handling_prof", + "current": "", + "max": "", + "id": "-MEzXlRKoENqNHoyWv20" + }, + { + "name": "animal_handling_type", + "current": "", + "max": "", + "id": "-MEzXlRMUJUie9VdByEV" + }, + { + "name": "animal_handling_bonus", + "current": 0, + "max": "", + "id": "-MEzXlROum_WS44ytVks" + }, + { + "name": "insight_prof", + "current": "", + "max": "", + "id": "-MEzXlRP00pOFOEBeDQt" + }, + { + "name": "insight_type", + "current": "", + "max": "", + "id": "-MEzXlRRIByOYyYIIIiV" + }, + { + "name": "insight_bonus", + "current": 0, + "max": "", + "id": "-MEzXlRTBxlrWvcdVzDN" + }, + { + "name": "medicine_prof", + "current": "", + "max": "", + "id": "-MEzXlRVJRWVTFhHkH11" + }, + { + "name": "medicine_type", + "current": "", + "max": "", + "id": "-MEzXlRWjpeA5g6UgsLz" + }, + { + "name": "medicine_bonus", + "current": 0, + "max": "", + "id": "-MEzXlRY_V5vXxsLyHCb" + }, + { + "name": "perception_prof", + "current": "0", + "max": "", + "id": "-MEzXlR_Jbo1YxtVYCIG" + }, + { + "name": "perception_type", + "current": "", + "max": "", + "id": "-MEzXlRbM_cbLvtJL1Qk" + }, + { + "name": "perception_bonus", + "current": 0, + "max": "", + "id": "-MEzXlRdScY-fWJtmKYY" + }, + { + "name": "survival_prof", + "current": "", + "max": "", + "id": "-MEzXlReTaET0PtekEIl" + }, + { + "name": "survival_type", + "current": "", + "max": "", + "id": "-MEzXlRgm4GE9xMlBNqA" + }, + { + "name": "survival_bonus", + "current": 0, + "max": "", + "id": "-MEzXlRifR8dUMTKBNTq" + }, + { + "name": "deception_prof", + "current": "", + "max": "", + "id": "-MEzXlRjisyx_U4aLDQU" + }, + { + "name": "deception_type", + "current": "", + "max": "", + "id": "-MEzXlRlxxzRhdt2UV0P" + }, + { + "name": "deception_bonus", + "current": 0, + "max": "", + "id": "-MEzXlRm94B_cuiNknws" + }, + { + "name": "intimidation_prof", + "current": "", + "max": "", + "id": "-MEzXlRnsLvhd2TwnqYS" + }, + { + "name": "intimidation_type", + "current": "", + "max": "", + "id": "-MEzXlRpy56VCYWL0SnZ" + }, + { + "name": "intimidation_bonus", + "current": 0, + "max": "", + "id": "-MEzXlRrCPWwNcUM-8kN" + }, + { + "name": "performance_prof", + "current": "", + "max": "", + "id": "-MEzXlRtl0ynJ2JRgyC7" + }, + { + "name": "performance_type", + "current": "", + "max": "", + "id": "-MEzXlRuUy6KTPmtsF2l" + }, + { + "name": "performance_bonus", + "current": 0, + "max": "", + "id": "-MEzXlRwVg7fbPLvo1jo" + }, + { + "name": "persuasion_prof", + "current": "", + "max": "", + "id": "-MEzXlRx4YoUdaWO8qHd" + }, + { + "name": "persuasion_type", + "current": "", + "max": "", + "id": "-MEzXlS0ATE79iLemHwz" + }, + { + "name": "persuasion_bonus", + "current": 0, + "max": "", + "id": "-MEzXlS2IYjOUzWqf-yr" + }, + { + "name": "strength_save_prof", + "current": "0", + "max": "", + "id": "-MEzXlS40m5iviPSHyJP" + }, + { + "name": "strength_save_bonus", + "current": 1, + "max": "", + "id": "-MEzXlS5SLzHldcC0_Kv" + }, + { + "name": "strength_bonus", + "current": "0", + "max": "", + "id": "-MEzXlS7IzeaK7gWXhGA" + }, + { + "name": "cust_strength_save_prof", + "current": "", + "max": "", + "id": "-MEzXlS9lxVHalBMlIUF" + }, + { + "name": "dexterity_save_prof", + "current": "0", + "max": "", + "id": "-MEzXlSBzDkcv0q-4cMB" + }, + { + "name": "dexterity_save_bonus", + "current": 2, + "max": "", + "id": "-MEzXlSEjEyvZlwylE4f" + }, + { + "name": "dexterity_bonus", + "current": "0", + "max": "", + "id": "-MEzXlSG-sNes77XblH7" + }, + { + "name": "cust_dexterity_save_prof", + "current": "", + "max": "", + "id": "-MEzXlSIkDMe4SF9osAw" + }, + { + "name": "constitution_save_prof", + "current": "(@{pb})", + "max": "", + "id": "-MEzXlSK1hyHtfgFnKGP" + }, + { + "name": "constitution_save_bonus", + "current": 5, + "max": "", + "id": "-MEzXlSNYpOgyGSmnH02" + }, + { + "name": "constitution_bonus", + "current": "0", + "max": "", + "id": "-MEzXlSOkBjbMWCfCHYd" + }, + { + "name": "cust_constitution_save_prof", + "current": "(@{pb})", + "max": "", + "id": "-MEzXlSQySmkcRjEcRRW" + }, + { + "name": "intelligence_save_prof", + "current": "(@{pb})", + "max": "", + "id": "-MEzXlSSjFS1v096Jhdg" + }, + { + "name": "intelligence_save_bonus", + "current": 7, + "max": "", + "id": "-MEzXlSTB6oUIpdoEOAZ" + }, + { + "name": "intelligence_bonus", + "current": "0", + "max": "", + "id": "-MEzXlSV5dFxXbILc5yV" + }, + { + "name": "cust_intelligence_save_prof", + "current": "(@{pb})", + "max": "", + "id": "-MEzXlSXlyMrF5ycfAOp" + }, + { + "name": "wisdom_save_prof", + "current": "0", + "max": "", + "id": "-MEzXlSZAQu5VCudqWsm" + }, + { + "name": "wisdom_save_bonus", + "current": 0, + "max": "", + "id": "-MEzXlSanPsbhGArJBw3" + }, + { + "name": "wisdom_bonus", + "current": "0", + "max": "", + "id": "-MEzXlSdoiKgjwbYxqJe" + }, + { + "name": "cust_wisdom_save_prof", + "current": "", + "max": "", + "id": "-MEzXlSf9Zxx-CunwDs1" + }, + { + "name": "charisma_save_prof", + "current": "0", + "max": "", + "id": "-MEzXlShgBHZi02vaivk" + }, + { + "name": "charisma_save_bonus", + "current": 0, + "max": "", + "id": "-MEzXlSkCEXzwJUPL0o9" + }, + { + "name": "charisma_bonus", + "current": "0", + "max": "", + "id": "-MEzXlSmrZJnSYhKvxCQ" + }, + { + "name": "cust_charisma_save_prof", + "current": "", + "max": "", + "id": "-MEzXlSoEsIdBpL41w2Y" + }, + { + "name": "personality_traits", + "current": "I don't know why everyone else has such a hard time figuring things out, but I'll try to help them as best I can.\n\nAnything worth doing, is worth doing right.", + "max": "", + "id": "-MEzXlSqwCpJKt0AGibu" + }, + { + "name": "ideals", + "current": "Knowledge is power, and the more power we have, the better the world will be.", + "max": "", + "id": "-MEzXlSsmuC5FWFEoU9H" + }, + { + "name": "bonds", + "current": "A childhood mentor put me on my current path. If I succeed, I want to repay that mentor in some way.", + "max": "", + "id": "-MEzXlStB2R9uzZ112hP" + }, + { + "name": "flaws", + "current": "My hunger for knowledge frequently takes precedent over everything else.", + "max": "", + "id": "-MEzXlSuPUf6zgR5lxqe" + }, + { + "name": "intelligence_base", + "current": "20", + "max": "", + "id": "-MEzXlSwlVQSUIwjhSBB" + }, + { + "name": "constitution_base", + "current": "16", + "max": "", + "id": "-MEzXlSy7GEIbLMLuFne" + }, + { + "name": "strength_base", + "current": "12", + "max": "", + "id": "-MEzXlT-s-eDcTuKECI-" + }, + { + "name": "dexterity_base", + "current": "14", + "max": "", + "id": "-MEzXlT2aZhd7TJKiAyY" + }, + { + "name": "wisdom_base", + "current": "11", + "max": "", + "id": "-MEzXlT4L12ooD0HI6Ak" + }, + { + "name": "charisma_base", + "current": "11", + "max": "", + "id": "-MEzXlT6osQGC6QWV9xb" + }, + { + "name": "d20", + "current": "1d20", + "max": "", + "id": "-MEzXlWP0phy9g2f5q6O" + }, + { + "name": "encumberance", + "current": " ", + "max": "", + "id": "-MEzXlWcGbqAiLS_HSbd" + }, + { + "name": "strength_flag", + "current": 0, + "max": "", + "id": "-MEzXlWipSTCKBJ0h-Ge" + }, + { + "name": "strength", + "current": 12, + "max": "", + "id": "-MEzXlWlPRWmKvzR_cAb" + }, + { + "name": "dexterity_flag", + "current": 0, + "max": "", + "id": "-MEzXlWow7hjxySh_14d" + }, + { + "name": "dexterity", + "current": 14, + "max": "", + "id": "-MEzXlWqcqz9ODI0e7iX" + }, + { + "name": "constitution_flag", + "current": 0, + "max": "", + "id": "-MEzXlWtxsuRzIDHaSIo" + }, + { + "name": "constitution", + "current": 16, + "max": "", + "id": "-MEzXlWwJ1CyZZ87gv4K" + }, + { + "name": "intelligence_flag", + "current": 0, + "max": "", + "id": "-MEzXlWzxPxQ5D7MNfSg" + }, + { + "name": "intelligence", + "current": 20, + "max": "", + "id": "-MEzXlX1Cs6Oy14NlIft" + }, + { + "name": "wisdom_flag", + "current": 0, + "max": "", + "id": "-MEzXlX3Qvp9w5otKvwD" + }, + { + "name": "wisdom", + "current": 11, + "max": "", + "id": "-MEzXlX5IjrWoh8tJPeN" + }, + { + "name": "charisma_flag", + "current": 0, + "max": "", + "id": "-MEzXlX8gU14TkELAfBb" + }, + { + "name": "charisma", + "current": 11, + "max": "", + "id": "-MEzXlXAKXDimOYn94gR" + }, + { + "name": "strength_mod", + "current": 1, + "max": "", + "id": "-MEzXlZ0IjFCXyyVCIXq" + }, + { + "name": "npc_str_negative", + "current": 0, + "max": "", + "id": "-MEzXlZ3N6phx_gkYiVH" + }, + { + "name": "dexterity_mod", + "current": 2, + "max": "", + "id": "-MEzXlZ5oeeM1VCqz_1o" + }, + { + "name": "npc_dex_negative", + "current": 0, + "max": "", + "id": "-MEzXlZ7AyOPwxlyoHKi" + }, + { + "name": "constitution_mod", + "current": 3, + "max": "", + "id": "-MEzXlZCeGaxlpP-RgTY" + }, + { + "name": "npc_con_negative", + "current": 0, + "max": "", + "id": "-MEzXlZIRrC_GZoj0Qr3" + }, + { + "name": "intelligence_mod", + "current": 5, + "max": "", + "id": "-MEzXlZL8-QvuvPweOMk" + }, + { + "name": "npc_int_negative", + "current": 0, + "max": "", + "id": "-MEzXlZMWmfmWbQhmrFM" + }, + { + "name": "wisdom_mod", + "current": 0, + "max": "", + "id": "-MEzXlZPodN7LraN3fAd" + }, + { + "name": "npc_wis_negative", + "current": 0, + "max": "", + "id": "-MEzXlZR-CNh-NQdEyTr" + }, + { + "name": "charisma_mod", + "current": 0, + "max": "", + "id": "-MEzXlZTNz64oPx9VMA3" + }, + { + "name": "npc_cha_negative", + "current": 0, + "max": "", + "id": "-MEzXlZWtjoj_eVCpsIj" + }, + { + "name": "drop_category", + "current": "", + "max": "", + "id": "-MEzXlzlbaxA74Qzr4mN" + }, + { + "name": "drop_name", + "current": "", + "max": "", + "id": "-MEzXlznXVStrEODciLV" + }, + { + "name": "drop_data", + "current": "", + "max": "", + "id": "-MEzXlzoxuXm76ljOSkw" + }, + { + "name": "drop_content", + "current": "", + "max": "", + "id": "-MEzXlzqA49aH6l_rDKh" + }, + { + "name": "repeating_traits_-MEzXlzYGGuU-ZVihK3w_name", + "current": "Magical Tinkering", + "max": "", + "id": "-MEzXm-0yY4ZwbLqnDeK" + }, + { + "name": "repeating_traits_-MEzXlzYGGuU-ZVihK3w_description", + "current": "At 1st level, you learn how to invest a spark of magic into mundane objects. To use this ability, you must have tinker's tools or other artisan's tools in hand. You then touch a Tiny nonmagical object as an action and give it one of the following magical properties of your choice:\n\n*The object sheds bright light in a 5-foot radius and dim light for an additional 5 feet.\n*Whenever tapped by a creature, the object emits a recorded message that can be heard up to 10 feet away. *You utter the message when you bestow this property on the object, and the recording can be no more than 6 seconds long.\n*The object continuously emits your choice of an odor or a nonverbal sound (wind, waves, chirping, or the like). The chosen phenomenon is perceivable up to 10 feet away.\n*A static visual effect appears on one of the object's surfaces. This effect can be a picture, up to 25 words of text, lines and shapes, or a mixture of these elements, as you like.\n*The chosen property lasts indefinitely. As an action, you can touch the object and end the property early.\n\nYou can bestow magic on multiple objects, touching one object each time you use this feature, though a single object can only bear one property at a time. The maximum number of objects you can affect with this feature at one time is equal to your Intelligence modifier (minimum of one object). If you try to exceed your maximum, the oldest property immediately ends, and then the new property applies.", + "max": "", + "id": "-MEzXm-2aj66roGq56Dr" + }, + { + "name": "repeating_traits_-MEzXlzYGGuU-ZVihK3w_source_type", + "current": "Artificer", + "max": "", + "id": "-MEzXm-4aDA-QKIk4TaX" + }, + { + "name": "repeating_traits_-MEzXlzYGGuU-ZVihK3w_source", + "current": "Class", + "max": "", + "id": "-MEzXm-7gBjpMF_i4umT" + }, + { + "name": "repeating_traits_-MEzXlzYGGuU-ZVihK3w_options-flag", + "current": "0", + "max": "", + "id": "-MEzXm-91VU2mpnrBbcn" + }, + { + "name": "repeating_traits_-MEzXlzYGGuU-ZVihK3w_display_flag", + "current": "on", + "max": "", + "id": "-MEzXm-BQDCyt9r-IoVQ" + }, + { + "name": "repeating_traits_-MEzXlzYGGuU-ZVihK3x_name", + "current": "Spellcasting", + "max": "", + "id": "-MEzXm-Dnp97QrZC2y7q" + }, + { + "name": "repeating_traits_-MEzXlzYGGuU-ZVihK3x_description", + "current": "You have studied the workings of magic and how to channel it through objects. As a result, you have gained the ability to cast spells. To observers, you don't appear to be casting spells in a conventional way; you look as if you're producing wonders using mundane items or outlandish inventions.\n\nYou produce your artificer spell effects through your tools. You must have a spellcasting focus—specifically thieves' tools or some kind of artisan's tool—in hand when you cast any spell with this Spellcasting feature. You must be proficient with the tool to use it in this way. See chapter 5, \"Equipment,\" in the Player's Handbook for descriptions of these tools.\n\nAfter you gain the Infuse Item feature at 2nd level, you can also use any item bearing one of your infusions as a spellcasting focus.\n\nThe Magic of Artifice\nAs an artificer, you use tools when you cast your spells. When describing your spellcasting, think about how you're using a tool to perform the spell effect. If you cast cure wounds using alchemist's supplies, you could be quickly producing a salve. If you cast it using tinker's tools, you might have a miniature mechanical spider that binds wounds. When you cast poison spray, you could fling foul chemicals or use a wand that spits venom. The effect of the spell is the same as for a spellcaster of any other class, but your method of spellcasting is special.\n\nThe same principle applies when you prepare your spells. As an artificer, you don't study a spellbook or pray to prepare your spells. Instead, you work with your tools and create the specialized items you'll use to produce your effects. If you replace cure wounds with heat metal, you might be altering the device you use to heal—perhaps modifying a tool so that it channels heat instead of healing energy.\n\nSuch details don't limit you in any way or provide you with any benefit beyond the spell's effects. You don't have to justify how you're using tools to cast a spell. But describing your spellcasting creatively is a fun way to distinguish yourself from other spellcasters.\n\nCantrips (0-Level Spells)\nAt 1st level, you know two cantrips of your choice from the artificer spell list. At higher levels, you learn additional artificer cantrips of your choice, as shown in the Cantrips Known column of the Artificer table.\n\nWhen you gain a level in this class, you can replace one of the artificer cantrips you know with another cantrip from the artificer spell list.\n\nPreparing and Casting Spells\nThe Artificer table shows how many spell slots you have to cast your artificer spells. To cast one of your artificer spells of 1st level or higher, you must expend a slot of the spell's level or higher. You regain all expended spell slots when you finish a long rest.\n\nYou prepare the list of artificer spells that are available for you to cast, choosing from the artificer spell list. When you do so, choose a number of artificer spells equal to your Intelligence modifier + half your artificer level, rounded down (minimum of one spell). The spells must be of a level for which you have spell slots.\n\nFor example, if you are a 5th-level artificer, you have four 1st-level and two 2nd-level spell slots. With an Intelligence of 14, your list of prepared spells can include four spells of 1st or 2nd level, in any combination. If you prepare the 1st-level spell cure wounds, you can cast it using a 1st-level or a 2nd-level slot. Casting the spell doesn't remove it from your list of prepared spells.\n\nYou can change your list of prepared spells when you finish a long rest. Preparing a new list of artificer spells requires time spent tinkering with your spellcasting focuses: at least 1 minute per spell level for each spell on your list.\n\nSpellcasting Ability\nIntelligence is your spellcasting ability for your artificer spells; your understanding of the theory behind magic allows you to wield these spells with superior skill. You use your Intelligence whenever an artificer spell refers to your spellcasting ability. In addition, you use your Intelligence modifier when setting the saving throw DC for an artificer spell you cast and when making an attack roll with one.\n\nSpell save DC = 8 + your proficiency bonus + your Intelligence modifier\nSpell attack modifier = your proficiency bonus + your Intelligence modifier\nRitual Casting\nYou can cast an artificer spell as a ritual if that spell has the ritual tag and you have the spell prepared.\n", + "max": "", + "id": "-MEzXm-Fn3NmivCPbc2w" + }, + { + "name": "repeating_traits_-MEzXlzYGGuU-ZVihK3x_source_type", + "current": "Artificer", + "max": "", + "id": "-MEzXm-Hvg3rY6dIPE96" + }, + { + "name": "repeating_traits_-MEzXlzYGGuU-ZVihK3x_source", + "current": "Class", + "max": "", + "id": "-MEzXm-JYjp5GP_7T970" + }, + { + "name": "repeating_traits_-MEzXlzYGGuU-ZVihK3x_options-flag", + "current": "0", + "max": "", + "id": "-MEzXm-MdWmt1UUU0VlZ" + }, + { + "name": "repeating_traits_-MEzXlzYGGuU-ZVihK3x_display_flag", + "current": "on", + "max": "", + "id": "-MEzXm-QefED1F9g7R1T" + }, + { + "name": "repeating_traits_-MEzXlzZpLLGJewpoC0V_name", + "current": "Gnome Cunning", + "max": "", + "id": "-MEzXm-d-HDcDb3azRYH" + }, + { + "name": "repeating_traits_-MEzXlzZpLLGJewpoC0V_description", + "current": "You have advantage on all Intelligence, Wisdom, and Charisma saving throws against magic.", + "max": "", + "id": "-MEzXm-gidRIIq3SdHJf" + }, + { + "name": "repeating_traits_-MEzXlzZpLLGJewpoC0V_source_type", + "current": "Gnome", + "max": "", + "id": "-MEzXm-jhLZ1IcbJuvXV" + }, + { + "name": "repeating_traits_-MEzXlzZpLLGJewpoC0V_source", + "current": "Racial", + "max": "", + "id": "-MEzXm-lEVLs7Mzdr4LV" + }, + { + "name": "repeating_traits_-MEzXlzZpLLGJewpoC0V_options-flag", + "current": "0", + "max": "", + "id": "-MEzXm-oe8HYaCMs7E2f" + }, + { + "name": "repeating_traits_-MEzXlzZpLLGJewpoC0V_display_flag", + "current": "on", + "max": "", + "id": "-MEzXm-sx80cPHzBFi58" + }, + { + "name": "repeating_traits_-MEzXlzZpLLGJewpoC0W_name", + "current": "Darkvision", + "max": "", + "id": "-MEzXm-uAfJwRQvaIgVs" + }, + { + "name": "repeating_traits_-MEzXlzZpLLGJewpoC0W_description", + "current": "Accustomed to life underground, you have superior vision in dark and dim conditions. You can see in dim light within 60 feet of you as if it were bright light, and in darkness as if it were dim light. You can't discern color in darkness, only shades of gray.", + "max": "", + "id": "-MEzXm-wXqBQ6Ad8sjim" + }, + { + "name": "repeating_traits_-MEzXlzZpLLGJewpoC0W_source_type", + "current": "Gnome", + "max": "", + "id": "-MEzXm-y7sJ8bDMDi4FV" + }, + { + "name": "repeating_traits_-MEzXlzZpLLGJewpoC0W_source", + "current": "Racial", + "max": "", + "id": "-MEzXm0-xwlnQfnvb7yd" + }, + { + "name": "repeating_traits_-MEzXlzZpLLGJewpoC0W_options-flag", + "current": "0", + "max": "", + "id": "-MEzXm01_uQboKHMFOjf" + }, + { + "name": "repeating_traits_-MEzXlzZpLLGJewpoC0W_display_flag", + "current": "on", + "max": "", + "id": "-MEzXm04gNW5PdBkgWJD" + }, + { + "name": "repeating_proficiencies_-MEzXlzZpLLGJewpoC0X_name", + "current": "Common", + "max": "", + "id": "-MEzXm0785JjG-OnRKY2" + }, + { + "name": "repeating_proficiencies_-MEzXlzZpLLGJewpoC0X_prof_type", + "current": "LANGUAGE", + "max": "", + "id": "-MEzXm0B-dhKzXQPr-vU" + }, + { + "name": "repeating_proficiencies_-MEzXlzZpLLGJewpoC0X_options-flag", + "current": 0, + "max": "", + "id": "-MEzXm0DQ0NvvJxuvTJs" + }, + { + "name": "repeating_proficiencies_-MEzXlzZpLLGJewpoC0Y_name", + "current": "Gnomish", + "max": "", + "id": "-MEzXm0GBXb03-GQpd8i" + }, + { + "name": "repeating_proficiencies_-MEzXlzZpLLGJewpoC0Y_prof_type", + "current": "LANGUAGE", + "max": "", + "id": "-MEzXm0I4R78Dsv8k5bX" + }, + { + "name": "repeating_proficiencies_-MEzXlzZpLLGJewpoC0Y_options-flag", + "current": 0, + "max": "", + "id": "-MEzXm0L0yVCw0R4Rb8b" + }, + { + "name": "repeating_traits_-MEzXlzZpLLGJewpoC0Z_name", + "current": "Artificer's Lore", + "max": "", + "id": "-MEzXm0Rqiv3lQbEsE3k" + }, + { + "name": "repeating_traits_-MEzXlzZpLLGJewpoC0Z_description", + "current": "Whenever you make an Intelligence (History) check related to magic items, alchemical objects, or technological devices, you can add twice your proficiency bonus, instead of any proficiency bonus you normally apply.", + "max": "", + "id": "-MEzXm0UlWsP2B7dwZWo" + }, + { + "name": "repeating_traits_-MEzXlzZpLLGJewpoC0Z_source_type", + "current": "Rock Gnome", + "max": "", + "id": "-MEzXm0X_D34EL2mMLRx" + }, + { + "name": "repeating_traits_-MEzXlzZpLLGJewpoC0Z_source", + "current": "Racial", + "max": "", + "id": "-MEzXm0_fOnQyCYCtpyZ" + }, + { + "name": "repeating_traits_-MEzXlzZpLLGJewpoC0Z_options-flag", + "current": "0", + "max": "", + "id": "-MEzXm0cWLsIG2UD9ESb" + }, + { + "name": "repeating_traits_-MEzXlzZpLLGJewpoC0Z_display_flag", + "current": "on", + "max": "", + "id": "-MEzXm0eEBPDZWsKlnP2" + }, + { + "name": "repeating_traits_-MEzXlzZSEONGWSVIYgL_name", + "current": "Tinker", + "max": "", + "id": "-MEzXm0iob3zasxb0XeG" + }, + { + "name": "repeating_traits_-MEzXlzZSEONGWSVIYgL_description", + "current": "You have proficiency with artisan’s tools (tinker’s tools). Using those tools, you can spend 1 hour and 10 gp worth of materials to construct a Tiny clockwork device (AC 5, 1 hp). The device ceases to function after 24 hours (unless you spend 1 hour repairing it to keep the device functioning), or when you use your action to dismantle it; at that time, you can reclaim the materials used to create it. You can have up to three such devices active at a time.\n\nWhen you create a device, choose one of the following options:\n\nClockwork Toy: This toy is a clockwork animal, monster, or person, such as a frog, mouse, bird, dragon, or soldier. When placed on the ground, the toy moves 5 feet across the ground on each of your turns in a random direction. It makes noises as appropriate to the creature it represents.\n\nFire Starter: The device produces a miniature flame, which you can use to light a Candle, torch, or campfire. Using the device requires your action.\n\nMusic Box: When opened, this music box plays a single song at a moderate volume. The box stops playing when it reaches the song’s end or when it is closed.", + "max": "", + "id": "-MEzXm0lGQistPy0tNH5" + }, + { + "name": "repeating_traits_-MEzXlzZSEONGWSVIYgL_source_type", + "current": "Rock Gnome", + "max": "", + "id": "-MEzXm0nCPgry3d3CCjU" + }, + { + "name": "repeating_traits_-MEzXlzZSEONGWSVIYgL_source", + "current": "Racial", + "max": "", + "id": "-MEzXm0q8XNDXDUXrfR4" + }, + { + "name": "repeating_traits_-MEzXlzZSEONGWSVIYgL_options-flag", + "current": "0", + "max": "", + "id": "-MEzXm0uTPwclNXyfigo" + }, + { + "name": "repeating_traits_-MEzXlzZSEONGWSVIYgL_display_flag", + "current": "on", + "max": "", + "id": "-MEzXm0xV4eqHukN4w1-" + }, + { + "name": "repeating_tool_-MEzXlzZSEONGWSVIYgM_toolname", + "current": "Tinker's Tools", + "max": "", + "id": "-MEzXm1-JtrUD5BVASYV" + }, + { + "name": "repeating_tool_-MEzXlzZSEONGWSVIYgM_toolbonus_base", + "current": "(@{pb})", + "max": "", + "id": "-MEzXm12tPCR8T-yrrng" + }, + { + "name": "repeating_tool_-MEzXlzZSEONGWSVIYgM_toolattr_base", + "current": "?{Attribute?|Strength,@{strength_mod}|Dexterity,@{dexterity_mod}|Constitution,@{constitution_mod}|Intelligence,@{intelligence_mod}|Wisdom,@{wisdom_mod}|Charisma,@{charisma_mod}}", + "max": "", + "id": "-MEzXm15ocxrGmAs_11P" + }, + { + "name": "repeating_tool_-MEzXlzZSEONGWSVIYgM_options-flag", + "current": "0", + "max": "", + "id": "-MEzXm17wBD-L5Zayv2A" + }, + { + "name": "repeating_traits_-MEzXlzZSEONGWSVIYgN_name", + "current": "Feature: Inside Informant", + "max": "", + "id": "-MEzXm1BH0fpZl52sTxM" + }, + { + "name": "repeating_traits_-MEzXlzZSEONGWSVIYgN_description", + "current": "You have connections to your previous employer or other groups you dealt with during your previous employment. You can communicate with your contacts, gaining information at the DM's discretion.", + "max": "", + "id": "-MEzXm1EaD9aHaC1aE_N" + }, + { + "name": "repeating_traits_-MEzXlzZSEONGWSVIYgN_source_type", + "current": "Rival Intern", + "max": "", + "id": "-MEzXm1H1VLOW0Sy2ipB" + }, + { + "name": "repeating_traits_-MEzXlzZSEONGWSVIYgN_source", + "current": "Background", + "max": "", + "id": "-MEzXm1JTX7S5XqPYCWB" + }, + { + "name": "repeating_traits_-MEzXlzZSEONGWSVIYgN_options-flag", + "current": "0", + "max": "", + "id": "-MEzXm1MvCp85dcJGKHD" + }, + { + "name": "repeating_traits_-MEzXlzZSEONGWSVIYgN_display_flag", + "current": "on", + "max": "", + "id": "-MEzXm1OYInWhJy9HcDd" + }, + { + "name": "repeating_proficiencies_-MEzXlzZSEONGWSVIYgO_name", + "current": "Light Armor", + "max": "", + "id": "-MEzXm1QxH78neYeyVSA" + }, + { + "name": "repeating_proficiencies_-MEzXlzZSEONGWSVIYgO_prof_type", + "current": "ARMOR", + "max": "", + "id": "-MEzXm1SHRZTSqAmsD1I" + }, + { + "name": "repeating_proficiencies_-MEzXlzZSEONGWSVIYgO_options-flag", + "current": 0, + "max": "", + "id": "-MEzXm1UDqwAuTneuclH" + }, + { + "name": "repeating_proficiencies_-MEzXlza8YAWuRlhXC8C_name", + "current": "Medium Armor", + "max": "", + "id": "-MEzXm1W_PVFVB8klWH4" + }, + { + "name": "repeating_proficiencies_-MEzXlza8YAWuRlhXC8C_prof_type", + "current": "ARMOR", + "max": "", + "id": "-MEzXm1Yqv93b40QUm9B" + }, + { + "name": "repeating_proficiencies_-MEzXlza8YAWuRlhXC8C_options-flag", + "current": 0, + "max": "", + "id": "-MEzXm1_Ta8mCv6w3ykc" + }, + { + "name": "repeating_proficiencies_-MEzXlza8YAWuRlhXC8D_name", + "current": "Shields", + "max": "", + "id": "-MEzXm1bEnzV12tWLx-f" + }, + { + "name": "repeating_proficiencies_-MEzXlza8YAWuRlhXC8D_prof_type", + "current": "ARMOR", + "max": "", + "id": "-MEzXm1dRYoOu0fii7Xl" + }, + { + "name": "repeating_proficiencies_-MEzXlza8YAWuRlhXC8D_options-flag", + "current": 0, + "max": "", + "id": "-MEzXm1fF_7zpwcRz6bK" + }, + { + "name": "repeating_proficiencies_-MEzXlza8YAWuRlhXC8E_name", + "current": "Dwarvish", + "max": "", + "id": "-MEzXm1hJA8etGUg7__0" + }, + { + "name": "repeating_proficiencies_-MEzXlza8YAWuRlhXC8E_prof_type", + "current": "LANGUAGE", + "max": "", + "id": "-MEzXm1j1I2QmNydryGs" + }, + { + "name": "repeating_proficiencies_-MEzXlza8YAWuRlhXC8E_options-flag", + "current": 0, + "max": "", + "id": "-MEzXm1m6zY-T-SpHsSe" + }, + { + "name": "repeating_tool_-MEzXlza8YAWuRlhXC8F_toolname", + "current": "Thieves' Tools", + "max": "", + "id": "-MEzXm1ojCuYLLfpwsvj" + }, + { + "name": "repeating_tool_-MEzXlza8YAWuRlhXC8F_toolbonus_base", + "current": "(@{pb})", + "max": "", + "id": "-MEzXm1rpsLeIguTalVW" + }, + { + "name": "repeating_tool_-MEzXlza8YAWuRlhXC8F_toolattr_base", + "current": "?{Attribute?|Strength,@{strength_mod}|Dexterity,@{dexterity_mod}|Constitution,@{constitution_mod}|Intelligence,@{intelligence_mod}|Wisdom,@{wisdom_mod}|Charisma,@{charisma_mod}}", + "max": "", + "id": "-MEzXm1tOcS3L1PE_oUm" + }, + { + "name": "repeating_tool_-MEzXlza8YAWuRlhXC8F_options-flag", + "current": 0, + "max": "", + "id": "-MEzXm1vmVV6H9-M5M3f" + }, + { + "name": "repeating_tool_-MEzXlza8YAWuRlhXC8G_toolname", + "current": "Alchemist's Supplies", + "max": "", + "id": "-MEzXm1xgBmP6C2YaVum" + }, + { + "name": "repeating_tool_-MEzXlza8YAWuRlhXC8G_toolbonus_base", + "current": "(@{pb})", + "max": "", + "id": "-MEzXm2--oag9rX_Td_a" + }, + { + "name": "repeating_tool_-MEzXlza8YAWuRlhXC8G_toolattr_base", + "current": "?{Attribute?|Strength,@{strength_mod}|Dexterity,@{dexterity_mod}|Constitution,@{constitution_mod}|Intelligence,@{intelligence_mod}|Wisdom,@{wisdom_mod}|Charisma,@{charisma_mod}}", + "max": "", + "id": "-MEzXm21BpeCGdXD2B-2" + }, + { + "name": "repeating_tool_-MEzXlza8YAWuRlhXC8G_options-flag", + "current": 0, + "max": "", + "id": "-MEzXm24HKLhWSPNWXuN" + }, + { + "name": "repeating_tool_-MEzXlza8YAWuRlhXC8H_toolname", + "current": "Woodcarver's Tools", + "max": "", + "id": "-MEzXm27ymz3aLBL8M-_" + }, + { + "name": "repeating_tool_-MEzXlza8YAWuRlhXC8H_toolbonus_base", + "current": "(@{pb})", + "max": "", + "id": "-MEzXm2AC7XHBk1phuwr" + }, + { + "name": "repeating_tool_-MEzXlza8YAWuRlhXC8H_toolattr_base", + "current": "?{Attribute?|Strength,@{strength_mod}|Dexterity,@{dexterity_mod}|Constitution,@{constitution_mod}|Intelligence,@{intelligence_mod}|Wisdom,@{wisdom_mod}|Charisma,@{charisma_mod}}", + "max": "", + "id": "-MEzXm2CU0eec29PsCET" + }, + { + "name": "repeating_tool_-MEzXlza8YAWuRlhXC8H_options-flag", + "current": 0, + "max": "", + "id": "-MEzXm2EhKYvWrkKLZQo" + }, + { + "name": "repeating_proficiencies_-MEzXlza8YAWuRlhXC8I_name", + "current": "Simple Weapons", + "max": "", + "id": "-MEzXm2HRsVXt75NCbgu" + }, + { + "name": "repeating_proficiencies_-MEzXlza8YAWuRlhXC8I_prof_type", + "current": "WEAPON", + "max": "", + "id": "-MEzXm2LkSjShz8X4kV0" + }, + { + "name": "repeating_proficiencies_-MEzXlza8YAWuRlhXC8I_options-flag", + "current": 0, + "max": "", + "id": "-MEzXm2OSMjhw2HM1FQR" + }, + { + "name": "options-class-selection", + "current": "0", + "max": "", + "id": "-MEzXm2xjw0bzQOneQYu" + }, + { + "name": "age", + "current": "25", + "max": "", + "id": "-MEzXm31x1qsp2EVzP8G" + }, + { + "name": "height", + "current": "3'11\"", + "max": "", + "id": "-MEzXm3457Hwo64O4dwc" + }, + { + "name": "weight", + "current": "38lbs", + "max": "", + "id": "-MEzXm3780bdZS0oV2Zh" + }, + { + "name": "eyes", + "current": "Brown", + "max": "", + "id": "-MEzXm397bI25MpqZOYN" + }, + { + "name": "hair", + "current": "Brown", + "max": "", + "id": "-MEzXm3CdJiXctSpjlSL" + }, + { + "name": "skin", + "current": "White", + "max": "", + "id": "-MEzXm3EtT2euNP-NM2h" + }, + { + "name": "options-flag-personality", + "current": "0", + "max": "", + "id": "-MEzXm3OkwlzjKRs3spO" + }, + { + "name": "options-flag-ideals", + "current": "0", + "max": "", + "id": "-MEzXm3SqW7304BzhqbJ" + }, + { + "name": "options-flag-bonds", + "current": 0, + "max": "", + "id": "-MEzXm3VfFmC6ztcUBbq" + }, + { + "name": "options-flag-flaws", + "current": "0", + "max": "", + "id": "-MEzXm3ZT3m3eYv9U6aE" + }, + { + "name": "repeating_tool_-MEzXlzZSEONGWSVIYgM_toolattr", + "current": "QUERY", + "max": "", + "id": "-MEzXm5NiB5019_94572" + }, + { + "name": "repeating_tool_-MEzXlzZSEONGWSVIYgM_toolbonus", + "current": "?{Attribute?|Strength,@{strength_mod}|Dexterity,@{dexterity_mod}|Constitution,@{constitution_mod}|Intelligence,@{intelligence_mod}|Wisdom,@{wisdom_mod}|Charisma,@{charisma_mod}}+0+2", + "max": "", + "id": "-MEzXm5QjPhFJTwkdey-" + }, + { + "name": "repeating_tool_-MEzXlzZSEONGWSVIYgM_toolbonus_display", + "current": "?", + "max": "", + "id": "-MEzXm5TEWBXJZxA7Rm2" + }, + { + "name": "repeating_tool_-MEzXlza8YAWuRlhXC8F_toolattr", + "current": "QUERY", + "max": "", + "id": "-MEzXm5XqukuRQpWKDkN" + }, + { + "name": "repeating_tool_-MEzXlza8YAWuRlhXC8F_toolbonus", + "current": "?{Attribute?|Strength,@{strength_mod}|Dexterity,@{dexterity_mod}|Constitution,@{constitution_mod}|Intelligence,@{intelligence_mod}|Wisdom,@{wisdom_mod}|Charisma,@{charisma_mod}}+0+2", + "max": "", + "id": "-MEzXm5_iqzkNNIIL4n-" + }, + { + "name": "repeating_tool_-MEzXlza8YAWuRlhXC8F_toolbonus_display", + "current": "?", + "max": "", + "id": "-MEzXm5fnv581pL4NsMF" + }, + { + "name": "repeating_tool_-MEzXlza8YAWuRlhXC8G_toolattr", + "current": "QUERY", + "max": "", + "id": "-MEzXm5iheKgzoLBgQZL" + }, + { + "name": "repeating_tool_-MEzXlza8YAWuRlhXC8G_toolbonus", + "current": "?{Attribute?|Strength,@{strength_mod}|Dexterity,@{dexterity_mod}|Constitution,@{constitution_mod}|Intelligence,@{intelligence_mod}|Wisdom,@{wisdom_mod}|Charisma,@{charisma_mod}}+0+2", + "max": "", + "id": "-MEzXm5kzlo0naN-pn3u" + }, + { + "name": "repeating_tool_-MEzXlza8YAWuRlhXC8G_toolbonus_display", + "current": "?", + "max": "", + "id": "-MEzXm5oFxIPITFXrRVn" + }, + { + "name": "repeating_tool_-MEzXlza8YAWuRlhXC8H_toolattr", + "current": "QUERY", + "max": "", + "id": "-MEzXm5qvV-HlbaE0FdG" + }, + { + "name": "repeating_tool_-MEzXlza8YAWuRlhXC8H_toolbonus", + "current": "?{Attribute?|Strength,@{strength_mod}|Dexterity,@{dexterity_mod}|Constitution,@{constitution_mod}|Intelligence,@{intelligence_mod}|Wisdom,@{wisdom_mod}|Charisma,@{charisma_mod}}+0+2", + "max": "", + "id": "-MEzXm5tryv1IhLE8TMz" + }, + { + "name": "repeating_tool_-MEzXlza8YAWuRlhXC8H_toolbonus_display", + "current": "?", + "max": "", + "id": "-MEzXm5wvVXGS_XcQ6iZ" + }, + { + "name": "pbd_safe", + "current": "", + "max": "", + "id": "-MEzXm8SSmaRcAHvMHj1" + }, + { + "name": "repeating_tool_-MEzXlzZSEONGWSVIYgM_toolroll", + "current": "@{wtype}&{template:simple} {{rname=@{toolname}}} {{mod=@{toolbonus}}} {{r1=[[@{d20}+@{toolbonus}[Mods]@{pbd_safe}]]}} {{always=1}} {{r2=[[@{d20}+@{toolbonus}[Mods]@{pbd_safe}]]}} {{global=@{global_skill_mod}}} @{charname_output}", + "max": "", + "id": "-MEzXm8kvhDsmVcCWGiE" + }, + { + "name": "repeating_tool_-MEzXlza8YAWuRlhXC8F_toolroll", + "current": "@{wtype}&{template:simple} {{rname=@{toolname}}} {{mod=@{toolbonus}}} {{r1=[[@{d20}+@{toolbonus}[Mods]@{pbd_safe}]]}} {{always=1}} {{r2=[[@{d20}+@{toolbonus}[Mods]@{pbd_safe}]]}} {{global=@{global_skill_mod}}} @{charname_output}", + "max": "", + "id": "-MEzXm8nzybd-RJc1GoZ" + }, + { + "name": "repeating_tool_-MEzXlza8YAWuRlhXC8G_toolroll", + "current": "@{wtype}&{template:simple} {{rname=@{toolname}}} {{mod=@{toolbonus}}} {{r1=[[@{d20}+@{toolbonus}[Mods]@{pbd_safe}]]}} {{always=1}} {{r2=[[@{d20}+@{toolbonus}[Mods]@{pbd_safe}]]}} {{global=@{global_skill_mod}}} @{charname_output}", + "max": "", + "id": "-MEzXm8qECwEAQczy1_x" + }, + { + "name": "repeating_tool_-MEzXlza8YAWuRlhXC8H_toolroll", + "current": "@{wtype}&{template:simple} {{rname=@{toolname}}} {{mod=@{toolbonus}}} {{r1=[[@{d20}+@{toolbonus}[Mods]@{pbd_safe}]]}} {{always=1}} {{r2=[[@{d20}+@{toolbonus}[Mods]@{pbd_safe}]]}} {{global=@{global_skill_mod}}} @{charname_output}", + "max": "", + "id": "-MEzXm9-wnNCPllFFLRb" + }, + { + "name": "_reporder_repeating_proficiencies", + "current": "-MEzXlzZSEONGWSVIYgO,-MEzXlza8YAWuRlhXC8C,-MEzXlza8YAWuRlhXC8D,-MEzXlzZpLLGJewpoC0X,-MEzXlza8YAWuRlhXC8E,-MEzXlzZpLLGJewpoC0Y,-MEzXlza8YAWuRlhXC8I", + "max": "", + "id": "-MEzXm9DdYkn03qiZJJQ" + }, + { + "name": "lvl1_slots_total", + "current": 4, + "max": "", + "id": "-MEzXm9cg7hK7mU68tan" + }, + { + "name": "lvl2_slots_total", + "current": 2, + "max": "", + "id": "-MEzXm9g5-_vhskk2K_-" + }, + { + "name": "lvl3_slots_total", + "current": 0, + "max": "", + "id": "-MEzXm9j72wNOG1P7kp6" + }, + { + "name": "lvl4_slots_total", + "current": 0, + "max": "", + "id": "-MEzXm9pFa5x8oyprVC4" + }, + { + "name": "lvl5_slots_total", + "current": 0, + "max": "", + "id": "-MEzXm9tmtp7eGPjnBvs" + }, + { + "name": "lvl6_slots_total", + "current": 0, + "max": "", + "id": "-MEzXm9xnSp8tLEHFjgS" + }, + { + "name": "lvl7_slots_total", + "current": 0, + "max": "", + "id": "-MEzXmA0FI8438tSYhm9" + }, + { + "name": "lvl8_slots_total", + "current": 0, + "max": "", + "id": "-MEzXmA3QEahwJkAwXm5" + }, + { + "name": "lvl9_slots_total", + "current": 0, + "max": "", + "id": "-MEzXmA7QS01FAGt5FCS" + }, + { + "name": "honor_save_bonus", + "current": 0, + "max": "", + "id": "-MEzXmCA3-ivb74vDQHM" + }, + { + "name": "sanity_save_bonus", + "current": 0, + "max": "", + "id": "-MEzXmCEh3-jQ6dqj8yE" + }, + { + "name": "death_save_roll", + "current": "@{wtype}&{template:simple} {{rname=^{death-save-u}}} {{mod=@{death_save_bonus}}} {{r1=[[@{d20}+@{death_save_bonus}@{pbd_safe}]]}} {{always=1}} {{r2=[[@{d20}+@{death_save_bonus}@{pbd_safe}]]}} {{global=@{global_save_mod}}} @{charname_output}", + "max": "", + "id": "-MEzXmCo6ZTuomvxKB-x" + }, + { + "name": "repeating_attack_-MEzXttLcxOWCteZRyGz_atkattr_base", + "current": "@{strength_mod}", + "max": "", + "id": "-MEzXvryb4lGX-DUkBhh" + }, + { + "name": "repeating_attack_-MEzXttLcxOWCteZRyGz_atkdmgtype", + "current": "1d6+1 Slashing ", + "max": "", + "id": "-MEzXvu87EAfXj8pq9Hd" + }, + { + "name": "repeating_attack_-MEzXttLcxOWCteZRyGz_rollbase_dmg", + "current": "@{wtype}&{template:dmg} {{rname=@{atkname}}} @{atkflag} {{range=@{atkrange}}} @{dmgflag} {{dmg1=[[1d6 + 1[STR]]]}} {{dmg1type=Slashing}} @{dmg2flag} {{dmg2=[[0]]}} {{dmg2type=}} @{saveflag} {{desc=@{atk_desc}}} @{hldmg} {{spelllevel=@{spelllevel}}} {{innate=@{spell_innate}}} {{globaldamage=[[0]]}} {{globaldamagetype=@{global_damage_mod_type}}} @{charname_output}", + "max": "", + "id": "-MEzXvuCXhzxiTZ7J-A3" + }, + { + "name": "repeating_attack_-MEzXttLcxOWCteZRyGz_rollbase_crit", + "current": "@{wtype}&{template:dmg} {{crit=1}} {{rname=@{atkname}}} @{atkflag} {{range=@{atkrange}}} @{dmgflag} {{dmg1=[[1d6 + 1[STR]]]}} {{dmg1type=Slashing}} @{dmg2flag} {{dmg2=[[0]]}} {{dmg2type=}} {{crit1=[[1d6]]}} {{crit2=[[0]]}} @{saveflag} {{desc=@{atk_desc}}} @{hldmg} {{spelllevel=@{spelllevel}}} {{innate=@{spell_innate}}} {{globaldamage=[[0]]}} {{globaldamagecrit=[[0]]}} {{globaldamagetype=@{global_damage_mod_type}}} @{charname_output}", + "max": "", + "id": "-MEzXvuGZUZHnVyEBtvn" + }, + { + "name": "repeating_attack_-MEzXttLcxOWCteZRyGz_atkbonus", + "current": "+3", + "max": "", + "id": "-MEzXvuJbbKGiDgP74S5" + }, + { + "name": "repeating_attack_-MEzXttLcxOWCteZRyGz_rollbase", + "current": "@{wtype}&{template:atk} {{mod=@{atkbonus}}} {{rname=[@{atkname}](~repeating_attack_attack_dmg)}} {{rnamec=[@{atkname}](~repeating_attack_attack_crit)}} {{r1=[[@{d20}cs>@{atkcritrange} + 1[STR] + 2[PROF]]]}} @{rtype}cs>@{atkcritrange} + 1[STR] + 2[PROF]]]}} {{range=@{atkrange}}} {{desc=@{atk_desc}}} {{spelllevel=@{spelllevel}}} {{innate=@{spell_innate}}} {{globalattack=@{global_attack_mod}}} ammo=@{ammo} @{charname_output}", + "max": "", + "id": "-MEzXvuOfaaVko88fACS" + }, + { + "name": "repeating_inventory_-MEzYCG96Vce898x-JmU_itemname", + "current": "Scale Mail", + "max": "", + "id": "-MEzYKI5hEHFJxcmF2U3" + }, + { + "name": "repeating_inventory_-MEzYCG96Vce898x-JmU_itemweight", + "current": "45", + "max": "", + "id": "-MEzYMCSiiTkL65s9QYn" + }, + { + "name": "repeating_spell-cantrip_-MEzYWPA5cUZYd4ZOvMS_spellname", + "current": "Spare the Dying", + "max": "", + "id": "-MEzYawc_MQZTaBEbYJz" + }, + { + "name": "repeating_spell-cantrip_-MEzYWPA5cUZYd4ZOvMS_spellschool", + "current": "necromancy", + "max": "", + "id": "-MEzYbG8BiHlv-ju9DCc" + }, + { + "name": "repeating_spell-cantrip_-MEzYWPA5cUZYd4ZOvMS_spellcastingtime", + "current": "1 action", + "max": "", + "id": "-MEzYeoOW-LYhuqYVzAp" + }, + { + "name": "repeating_spell-cantrip_-MEzYWPA5cUZYd4ZOvMS_spellrange", + "current": "Touch", + "max": "", + "id": "-MEzYfiFjuCsXnRtafi7" + }, + { + "name": "repeating_spell-cantrip_-MEzYWPA5cUZYd4ZOvMS_spellcomp_m", + "current": "0", + "max": "", + "id": "-MEzYfkGIGW4NqvKXeBK" + }, + { + "name": "repeating_spell-cantrip_-MEzYWPA5cUZYd4ZOvMS_spelltarget", + "current": "1 Living Creature", + "max": "", + "id": "-MEzYiFAvO25cxmHES6S" + }, + { + "name": "repeating_spell-cantrip_-MEzYWPA5cUZYd4ZOvMS_spellduration", + "current": "Instantaneous", + "max": "", + "id": "-MEzYleNFQ5k4R-r3San" + }, + { + "name": "repeating_spell-cantrip_-MEzYWPA5cUZYd4ZOvMS_spell_ability", + "current": "0*", + "max": "", + "id": "-MEzYmT9wkpfMM47W96k" + }, + { + "name": "repeating_spell-cantrip_-MEzYWPA5cUZYd4ZOvMS_spelldescription", + "current": "You touch a living creature that has 0 hit points. The creature becomes stable. This spell has no effect on undead or constructs.", + "max": "", + "id": "-MEzYr40gvWrQ95RMqwf" + }, + { + "name": "repeating_spell-cantrip_-MEzYWPA5cUZYd4ZOvMS_options-flag", + "current": "0", + "max": "", + "id": "-MEzYtR1JW6LzBpRaIOF" + }, + { + "name": "repeating_spell-cantrip_-MEzZFTE7K1jP091IBKm_spellname", + "current": "Fire Bolt", + "max": "", + "id": "-MEzZHSq-d0oEeZZT1TC" + }, + { + "name": "repeating_spell-cantrip_-MEzZFTE7K1jP091IBKm_spellschool", + "current": "evocation", + "max": "", + "id": "-MEzZJG_xubeMptHyYl5" + }, + { + "name": "repeating_spell-cantrip_-MEzZFTE7K1jP091IBKm_spellcastingtime", + "current": "1 action", + "max": "", + "id": "-MEzZLYtTBF6fOhDUmDf" + }, + { + "name": "repeating_spell-cantrip_-MEzZFTE7K1jP091IBKm_spellrange", + "current": "120ft", + "max": "", + "id": "-MEzZMtjsgAyopydNySA" + }, + { + "name": "repeating_spell-cantrip_-MEzZFTE7K1jP091IBKm_spelltarget", + "current": "Creature or Object", + "max": "", + "id": "-MEzZOY5lL7LnueDS6tZ" + }, + { + "name": "repeating_spell-cantrip_-MEzZFTE7K1jP091IBKm_spellcomp_m", + "current": "0", + "max": "", + "id": "-MEzZOZO-aamcBk9eGmV" + }, + { + "name": "repeating_spell-cantrip_-MEzZFTE7K1jP091IBKm_spellduration", + "current": "Instantaneous", + "max": "", + "id": "-MEzZRiO9SJkbuCt-KMv" + }, + { + "name": "repeating_spell-cantrip_-MEzZFTE7K1jP091IBKm_spelloutput", + "current": "ATTACK", + "max": "", + "id": "-MEzZa9x2O3GSWJxuXun" + }, + { + "name": "repeating_spell-cantrip_-MEzZFTE7K1jP091IBKm_spellattackid", + "current": "-MEzZaCMyLFHuZefZV18", + "max": "", + "id": "-MEzZaCT2dBtG4db5DHQ" + }, + { + "name": "repeating_spell-cantrip_-MEzZFTE7K1jP091IBKm_rollcontent", + "current": "%{-MEzNAzOkhxPWoa6mIKD|repeating_attack_-MEzZaCMyLFHuZefZV18_attack}", + "max": "", + "id": "-MEzZaCYCqcxywmTuiBc" + }, + { + "name": "repeating_attack_-MEzZaCMyLFHuZefZV18_atkattr_base", + "current": "@{intelligence_mod}", + "max": "", + "id": "-MEzZaCb59ZY5Qum8OA9" + }, + { + "name": "repeating_attack_-MEzZaCMyLFHuZefZV18_options-flag", + "current": "0", + "max": "", + "id": "-MEzZaCgbT45-cFsJttX" + }, + { + "name": "repeating_attack_-MEzZaCMyLFHuZefZV18_spellid", + "current": "-mezzfte7k1jp091ibkm", + "max": "", + "id": "-MEzZaCksUnQuaqGiMRF" + }, + { + "name": "repeating_attack_-MEzZaCMyLFHuZefZV18_spelllevel", + "current": "cantrip", + "max": "", + "id": "-MEzZaCmgcSlfLRxWx8d" + }, + { + "name": "repeating_attack_-MEzZaCMyLFHuZefZV18_savedc", + "current": "(@{intelligence_mod}+8+@{spell_dc_mod}+@{pb})", + "max": "", + "id": "-MEzZaCpGdUufdtZC4mT" + }, + { + "name": "repeating_attack_-MEzZaCMyLFHuZefZV18_atkname", + "current": "Fire Bolt", + "max": "", + "id": "-MEzZaCsJnidHbpPgjNN" + }, + { + "name": "repeating_attack_-MEzZaCMyLFHuZefZV18_atkflag", + "current": "{{attack=1}}", + "max": "", + "id": "-MEzZaCvHiOhCar6zDw4" + }, + { + "name": "repeating_attack_-MEzZaCMyLFHuZefZV18_dmgflag", + "current": "{{damage=1}} {{dmg1flag=1}}", + "max": "", + "id": "-MEzZaCy62x6Z4nO6tKl" + }, + { + "name": "repeating_attack_-MEzZaCMyLFHuZefZV18_dmgattr", + "current": "0", + "max": "", + "id": "-MEzZaD0ifHoyv9B1uO4" + }, + { + "name": "repeating_attack_-MEzZaCMyLFHuZefZV18_dmgtype", + "current": "Fire", + "max": "", + "id": "-MEzZaD3oq9ub9ub1Jo_" + }, + { + "name": "repeating_attack_-MEzZaCMyLFHuZefZV18_dmg2base", + "current": "", + "max": "", + "id": "-MEzZaD54p0FM_mUEsUu" + }, + { + "name": "repeating_attack_-MEzZaCMyLFHuZefZV18_dmg2attr", + "current": "0", + "max": "", + "id": "-MEzZaD7lHLHh24D524B" + }, + { + "name": "repeating_attack_-MEzZaCMyLFHuZefZV18_dmg2flag", + "current": 0, + "max": "", + "id": "-MEzZaDAVi0it62zQ0ec" + }, + { + "name": "repeating_attack_-MEzZaCMyLFHuZefZV18_dmg2type", + "current": "", + "max": "", + "id": "-MEzZaDDUl0WoiUzj8F3" + }, + { + "name": "repeating_attack_-MEzZaCMyLFHuZefZV18_atkrange", + "current": "120ft", + "max": "", + "id": "-MEzZaDGvW_-GRzH0w9t" + }, + { + "name": "repeating_attack_-MEzZaCMyLFHuZefZV18_saveflag", + "current": "0", + "max": "", + "id": "-MEzZaDJr6_4yh-WYydy" + }, + { + "name": "repeating_attack_-MEzZaCMyLFHuZefZV18_saveeffect", + "current": "", + "max": "", + "id": "-MEzZaDMVXkNK9nhlsB0" + }, + { + "name": "repeating_attack_-MEzZaCMyLFHuZefZV18_hldmg", + "current": "", + "max": "", + "id": "-MEzZaDOUMaoFHaOIVRN" + }, + { + "name": "repeating_attack_-MEzZaCMyLFHuZefZV18_spell_innate", + "current": "", + "max": "", + "id": "-MEzZaDRdXgEm8p0pW8x" + }, + { + "name": "repeating_attack_-MEzZaCMyLFHuZefZV18_atk_desc", + "current": "Ranged Spell Attack. Creature or Object. ", + "max": "", + "id": "-MEzZaDTqUFF7T_ILzS2" + }, + { + "name": "repeating_attack_-MEzZaCMyLFHuZefZV18_atkdmgtype", + "current": "1d10 Fire ", + "max": "", + "id": "-MEzZaDzoopejRGbkp9W" + }, + { + "name": "repeating_attack_-MEzZaCMyLFHuZefZV18_rollbase_dmg", + "current": "@{wtype}&{template:dmg} {{rname=@{atkname}}} @{atkflag} {{range=@{atkrange}}} @{dmgflag} {{dmg1=[[1d10]]}} {{dmg1type=Fire}} @{dmg2flag} {{dmg2=[[0]]}} {{dmg2type=}} @{saveflag} {{desc=@{atk_desc}}} @{hldmg} {{spelllevel=@{spelllevel}}} {{innate=@{spell_innate}}} {{globaldamage=[[0]]}} {{globaldamagetype=@{global_damage_mod_type}}} @{charname_output}", + "max": "", + "id": "-MEzZaE4U-JFIK810f9J" + }, + { + "name": "repeating_attack_-MEzZaCMyLFHuZefZV18_rollbase_crit", + "current": "@{wtype}&{template:dmg} {{crit=1}} {{rname=@{atkname}}} @{atkflag} {{range=@{atkrange}}} @{dmgflag} {{dmg1=[[1d10]]}} {{dmg1type=Fire}} @{dmg2flag} {{dmg2=[[0]]}} {{dmg2type=}} {{crit1=[[1d10]]}} {{crit2=[[0]]}} @{saveflag} {{desc=@{atk_desc}}} @{hldmg} {{spelllevel=@{spelllevel}}} {{innate=@{spell_innate}}} {{globaldamage=[[0]]}} {{globaldamagecrit=[[0]]}} {{globaldamagetype=@{global_damage_mod_type}}} @{charname_output}", + "max": "", + "id": "-MEzZaE7Zf1dOZIbr8vi" + }, + { + "name": "repeating_attack_-MEzZaCMyLFHuZefZV18_atkbonus", + "current": "+7", + "max": "", + "id": "-MEzZaEAEORvPSYx3E3s" + }, + { + "name": "repeating_attack_-MEzZaCMyLFHuZefZV18_rollbase", + "current": "@{wtype}&{template:atk} {{mod=@{atkbonus}}} {{rname=[@{atkname}](~repeating_attack_attack_dmg)}} {{rnamec=[@{atkname}](~repeating_attack_attack_crit)}} {{r1=[[@{d20}cs>@{atkcritrange} + 5[INT] + 2[PROF]]]}} @{rtype}cs>@{atkcritrange} + 5[INT] + 2[PROF]]]}} {{range=@{atkrange}}} {{desc=@{atk_desc}}} {{spelllevel=@{spelllevel}}} {{innate=@{spell_innate}}} {{globalattack=@{global_attack_mod}}} ammo=@{ammo} @{charname_output}", + "max": "", + "id": "-MEzZaEDtWJiXStezzAl" + }, + { + "name": "repeating_spell-cantrip_-MEzZFTE7K1jP091IBKm_spellattack", + "current": "Ranged", + "max": "", + "id": "-MEzZbJvcLtfToOlpSdF" + }, + { + "name": "repeating_spell-cantrip_-MEzZFTE7K1jP091IBKm_spelldescription", + "current": "You hurl a mote of fire at a creature or object within range. Make a ranged spell attack against the target. On a hit, the target takes 1d10 fire damage. A flammable object hit by this spell ignites if it isn't being worn or carried.", + "max": "", + "id": "-MEzZkpSbu_0UUNnMhuE" + }, + { + "name": "repeating_spell-cantrip_-MEzZFTE7K1jP091IBKm_includedesc", + "current": "partial", + "max": "", + "id": "-MEzZo49ksErRTcd11BM" + }, + { + "name": "repeating_spell-cantrip_-MEzZFTE7K1jP091IBKm_spelldamagetype", + "current": "Fire", + "max": "", + "id": "-MEzZulki8slZpRPUZSe" + }, + { + "name": "repeating_spell-cantrip_-MEzZFTE7K1jP091IBKm_spelldamage", + "current": "1d10", + "max": "", + "id": "-MEzZvHZA56YkkB__0C9" + }, + { + "name": "repeating_attack_-MEzZaCMyLFHuZefZV18_dmgbase", + "current": "1d10", + "max": "", + "id": "-MEzZvKPiNUmyaCDgycn" + }, + { + "name": "repeating_spell-cantrip_-MEzZFTE7K1jP091IBKm_spellathigherlevels", + "current": "This spell's damage increases by 1d10 when you reach 5th level (2d10), 11th level (3d10), and 17th level (4d10).", + "max": "", + "id": "-MEzZxbUNFD7MeU4Ckv_" + }, + { + "name": "repeating_spell-cantrip_-MEzZFTE7K1jP091IBKm_spellclass", + "current": "Artificer", + "max": "", + "id": "-MEz_-Fbh8pHUp9_i0wl" + }, + { + "name": "repeating_spell-cantrip_-MEzZFTE7K1jP091IBKm_options-flag", + "current": "0", + "max": "", + "id": "-MEz_-IPjNQnQ2bqqK7_" + }, + { + "name": "repeating_attack_-MEzXttLcxOWCteZRyGz_options-flag", + "current": "0", + "max": "", + "id": "-MEz_26LhuoXrAqlje-_" + }, + { + "name": "repeating_spell-cantrip_-MEzZFTE7K1jP091IBKm_spell_ability", + "current": "@{intelligence_mod}+", + "max": "", + "id": "-MEz_J4af2XyUfUATpft" + }, + { + "name": "repeating_inventory_-MEzYCG96Vce898x-JmU_inventorysubflag", + "current": "0", + "max": "", + "id": "-MEzbBtjqupy03cUxMfn" + }, + { + "name": "repeating_spell-1_-MEzbKDjAizIGJiL-ZGI_spellname", + "current": "Absorb Elements", + "max": "", + "id": "-MEzbV2DRdtJxnqKZ32e" + }, + { + "name": "repeating_spell-1_-MEzbKDjAizIGJiL-ZGI_spellcastingtime", + "current": "1 Reaction", + "max": "", + "id": "-MEzbWqf2ZhyPTkl2j6z" + }, + { + "name": "repeating_spell-1_-MEzbKDjAizIGJiL-ZGI_spellrange", + "current": "Self", + "max": "", + "id": "-MEzbX_g-6VCl-JfAVFA" + }, + { + "name": "repeating_spell-1_-MEzbKDjAizIGJiL-ZGI_spelltarget", + "current": "Self", + "max": "", + "id": "-MEzbYWZdPe0Gou4KnKX" + }, + { + "name": "repeating_spell-1_-MEzbKDjAizIGJiL-ZGI_spellcomp_m", + "current": "0", + "max": "", + "id": "-MEzbYY4FJas6axxqoNG" + }, + { + "name": "repeating_spell-1_-MEzbKDjAizIGJiL-ZGI_spellcomp_v", + "current": "0", + "max": "", + "id": "-MEzbYo5Nc61CoAfJbpd" + }, + { + "name": "repeating_spell-1_-MEzbKDjAizIGJiL-ZGI_spellduration", + "current": "1 round", + "max": "", + "id": "-MEzb_Fn-VdGSSpC3HcJ" + }, + { + "name": "repeating_spell-1_-MEzbKDjAizIGJiL-ZGI_spelldescription", + "current": "Triggered when you take when you take acid, cold, fire, lightning, or thunder damage.\n\nThe spell captures some of the incoming energy, lessening its effect on you and storing it for your next melee attack. You have resistance to the triggering damage type until the start of your next turn. Also, the first time you hit with a melee attack on your next turn, the target takes an extra 1d6 damage of the triggering type, and the spell ends.", + "max": "", + "id": "-MEzbdhnpoP3W9C4qnNf" + }, + { + "name": "repeating_spell-1_-MEzbKDjAizIGJiL-ZGI_spellathigherlevels", + "current": "When you cast this spell using a spell slot of 2nd level or higher, the extra damage increases by 1d6 for each slot level above 1st.", + "max": "", + "id": "-MEzblvlS0wZ7O6gu8uO" + }, + { + "name": "repeating_spell-1_-MEzbKDjAizIGJiL-ZGI_rollcontent", + "current": "@{wtype}&{template:spell} {{level=@{spellschool} ?{Cast at what level? @{spelllevel}|Level 1,1|Level 2,2|Level 3,3|Level 4,4|Level 5,5|Level 6,6|Level 7,7|Level 8,8|Level 9,9}}} {{name=@{spellname}}} {{castingtime=@{spellcastingtime}}} {{range=@{spellrange}}} {{target=@{spelltarget}}} @{spellcomp_v} @{spellcomp_s} @{spellcomp_m} {{material=@{spellcomp_materials}}} {{duration=@{spellduration}}} {{description=@{spelldescription}}} {{athigherlevels=@{spellathigherlevels}}} @{spellritual} {{innate=@{innate}}} @{spellconcentration} @{charname_output}", + "max": "", + "id": "-MEzbly8SmbexSfNF8k1" + }, + { + "name": "repeating_spell-1_-MEzbKDjAizIGJiL-ZGI_spellclass", + "current": "Artificer", + "max": "", + "id": "-MEzbmj9kDYeXKj8iP_Z" + }, + { + "name": "repeating_spell-1_-MEzbKDjAizIGJiL-ZGI_options-flag", + "current": "0", + "max": "", + "id": "-MEzbnHDR3WDIANRZ1O-" + }, + { + "name": "repeating_spell-1_-MEzbKDjAizIGJiL-ZGI_details-flag", + "current": "0", + "max": "", + "id": "-MEzbqwQ-y_YIDgU6Ynx" + }, + { + "name": "repeating_spell-cantrip_-MEzZFTE7K1jP091IBKm_details-flag", + "current": "0", + "max": "", + "id": "-MEzbrkCEdXFMB0qXK26" + }, + { + "name": "repeating_spell-cantrip_-MEzYWPA5cUZYd4ZOvMS_details-flag", + "current": "0", + "max": "", + "id": "-MEzbs8la7DK_1vtbh0L" + }, + { + "name": "repeating_spell-1_-MEzbsnLIS4Ke5aS6jBL_spellname", + "current": "Alarm", + "max": "", + "id": "-MEzbwOFTsXIgfuhfu2H" + }, + { + "name": "repeating_spell-1_-MEzbsnLIS4Ke5aS6jBL_spellritual", + "current": "{{ritual=1}}", + "max": "", + "id": "-MEzbzfOcK0-k8PPgf8q" + }, + { + "name": "repeating_spell-1_-MEzbsnLIS4Ke5aS6jBL_spellcastingtime", + "current": "1 minute", + "max": "", + "id": "-MEzc4dWqgbiaF_XHUgK" + }, + { + "name": "repeating_spell-1_-MEzbsnLIS4Ke5aS6jBL_spellrange", + "current": "30 ft", + "max": "", + "id": "-MEzc5LCMZVqrU2YSLre" + }, + { + "name": "repeating_spell-1_-MEzbsnLIS4Ke5aS6jBL_spelltarget", + "current": "area within range no larger than 20ft cube", + "max": "", + "id": "-MEzc8xIQTZf5oqqdjzT" + }, + { + "name": "repeating_spell-1_-MEzbsnLIS4Ke5aS6jBL_spellcomp_materials", + "current": "a tiny bell and a piece of fine silver wire", + "max": "", + "id": "-MEzcBvVZhMX19i062P1" + }, + { + "name": "repeating_spell-1_-MEzbsnLIS4Ke5aS6jBL_spellduration", + "current": "8 hours", + "max": "", + "id": "-MEzcDw9WSxy1Ts3n3BK" + }, + { + "name": "repeating_spell-1_-MEzbsnLIS4Ke5aS6jBL_spelldescription", + "current": "You set an alarm against unwanted intrusion. Choose a door, a window, or an area within range that is no larger than a 20-foot cube. Until the spell ends, an alarm alerts you whenever a Tiny or larger creature touches or enters the warded area. When you cast the spell, you can designate creatures that won't set off the alarm. You also choose whether the alarm is mental or audible.\n\nA mental alarm alerts you with a ping in your mind if you are within 1 mile of the warded area. This ping awakens you if you are sleeping.\n\nAn audible alarm produces the sound of a hand bell for 10 seconds within 60 feet.", + "max": "", + "id": "-MEzcGwj0rdOou-Cd3OA" + }, + { + "name": "repeating_spell-1_-MEzbsnLIS4Ke5aS6jBL_spellclass", + "current": "Artificer", + "max": "", + "id": "-MEzcICVf5CCPpJvFdJt" + }, + { + "name": "repeating_spell-1_-MEzbsnLIS4Ke5aS6jBL_options-flag", + "current": "0", + "max": "", + "id": "-MEzcIEe9dcYIJ_GqUp5" + }, + { + "name": "repeating_spell-1_-MEzbsnLIS4Ke5aS6jBL_details-flag", + "current": "0", + "max": "", + "id": "-MEzcIlQEaiaQ4YqrKhf" + }, + { + "name": "repeating_spell-1_-MEzcJW3L8xYzvDZeh5y_spellname", + "current": "Catapult", + "max": "", + "id": "-MEzcMKHVfUBumzBrD3q" + }, + { + "name": "repeating_spell-1_-MEzcJW3L8xYzvDZeh5y_spellschool", + "current": "transmutation", + "max": "", + "id": "-MEzcMd8ybpY4NFOiPVr" + }, + { + "name": "repeating_spell-1_-MEzcJW3L8xYzvDZeh5y_spellcastingtime", + "current": "1 action", + "max": "", + "id": "-MEzcNzSjJpyJ5fR4kV_" + }, + { + "name": "repeating_spell-1_-MEzcJW3L8xYzvDZeh5y_spellrange", + "current": "60 ft", + "max": "", + "id": "-MEzcOd_JeE9VQKFU_vs" + }, + { + "name": "repeating_spell-1_-MEzcJW3L8xYzvDZeh5y_spelltarget", + "current": "one object, 1 to 5 lbs, in range, not being worn or carried", + "max": "", + "id": "-MEzcTLYS7La8Xl-UBir" + }, + { + "name": "repeating_spell-1_-MEzcJW3L8xYzvDZeh5y_spellcomp_m", + "current": "0", + "max": "", + "id": "-MEzcTMmoTpNgfr-6tcm" + }, + { + "name": "repeating_spell-1_-MEzcJW3L8xYzvDZeh5y_spellcomp_v", + "current": "0", + "max": "", + "id": "-MEzcTjOiopTEWzXG2Td" + }, + { + "name": "repeating_spell-1_-MEzcJW3L8xYzvDZeh5y_spellduration", + "current": "Instantaneous", + "max": "", + "id": "-MEzchk4zatu2MevX1pR" + }, + { + "name": "repeating_spell-1_-MEzcJW3L8xYzvDZeh5y_spelldescription", + "current": "\nChoose one object weighing 1 to 5 pounds within range that isn't being worn or carried. The object flies in a straight line up to 90 feet in a direction you choose before falling to the ground, stopping early if it impacts against a solid surface. If the object would strike a creature, that creature must make a Dexterity saving throw. On a failed save, the object strikes the target and stops moving. When the object strikes something, the object and what it strikes each take 3d8 bludgeoning damage.", + "max": "", + "id": "-MEzcjHFEt0TXVPKcTGN" + }, + { + "name": "repeating_spell-1_-MEzcJW3L8xYzvDZeh5y_spellathigherlevels", + "current": "When you cast this spell using a spell slot of 2nd level or higher, the maximum weight of objects that you can target with this spell increases by 5 pounds, and the damage increases by 1d8, for each slot level above 1st.\n", + "max": "", + "id": "-MEzcnofL8--x2g7zxp1" + }, + { + "name": "repeating_spell-1_-MEzcJW3L8xYzvDZeh5y_options-flag", + "current": "0", + "max": "", + "id": "-MEzcnsHw9pcHzokx3Td" + }, + { + "name": "repeating_spell-1_-MEzcJW3L8xYzvDZeh5y_rollcontent", + "current": "@{wtype}&{template:spell} {{level=@{spellschool} ?{Cast at what level? @{spelllevel}|Level 1,1|Level 2,2|Level 3,3|Level 4,4|Level 5,5|Level 6,6|Level 7,7|Level 8,8|Level 9,9}}} {{name=@{spellname}}} {{castingtime=@{spellcastingtime}}} {{range=@{spellrange}}} {{target=@{spelltarget}}} @{spellcomp_v} @{spellcomp_s} @{spellcomp_m} {{material=@{spellcomp_materials}}} {{duration=@{spellduration}}} {{description=@{spelldescription}}} {{athigherlevels=@{spellathigherlevels}}} @{spellritual} {{innate=@{innate}}} @{spellconcentration} @{charname_output}", + "max": "", + "id": "-MEzcnsT9jFbQAsDdjum" + }, + { + "name": "repeating_spell-1_-MEzcJW3L8xYzvDZeh5y_details-flag", + "current": "0", + "max": "", + "id": "-MEzctXqAsBwTRLiczA_" + }, + { + "name": "repeating_spell-1_-MEzcu1NARqns0rs8VOM_spellname", + "current": "Cure Wounds", + "max": "", + "id": "-MEzcwfduE_an-gmH0Us" + }, + { + "name": "repeating_spell-1_-MEzcu1NARqns0rs8VOM_spellschool", + "current": "evocation", + "max": "", + "id": "-MEzcx8J4rhpbj-ZyPKQ" + }, + { + "name": "repeating_spell-1_-MEzcu1NARqns0rs8VOM_spellcastingtime", + "current": "1 action", + "max": "", + "id": "-MEzd-NDTff2P2n5ICUV" + }, + { + "name": "repeating_spell-1_-MEzcu1NARqns0rs8VOM_spellrange", + "current": "Touch", + "max": "", + "id": "-MEzd0Q5iMLts-oMoquI" + }, + { + "name": "repeating_spell-1_-MEzcu1NARqns0rs8VOM_spelltarget", + "current": "A creature", + "max": "", + "id": "-MEzd2jrBRYxZXOXQsuN" + }, + { + "name": "repeating_spell-1_-MEzcu1NARqns0rs8VOM_spellcomp_m", + "current": "0", + "max": "", + "id": "-MEzd2lEvbt7U_4VsmxC" + }, + { + "name": "repeating_spell-1_-MEzcu1NARqns0rs8VOM_spellduration", + "current": "Instantaneous", + "max": "", + "id": "-MEzd5960y84iu5Jlp3v" + }, + { + "name": "repeating_spell-1_-MEzcu1NARqns0rs8VOM_spelldescription", + "current": "A creature you touch regains a number of hit points equal to 1d8 + your spellcasting ability modifier. This spell has no effect on undead or constructs.", + "max": "", + "id": "-MEzd6esKt_HJJEs6atw" + }, + { + "name": "repeating_spell-1_-MEzcu1NARqns0rs8VOM_spellathigherlevels", + "current": "When you cast this spell using a spell slot of 2nd level or higher, the healing increases by 1d8 for each slot level above 1st.", + "max": "", + "id": "-MEzd7cwITMlBBtgyHSR" + }, + { + "name": "repeating_spell-1_-MEzcu1NARqns0rs8VOM_rollcontent", + "current": "@{wtype}&{template:spell} {{level=@{spellschool} ?{Cast at what level? @{spelllevel}|Level 1,1|Level 2,2|Level 3,3|Level 4,4|Level 5,5|Level 6,6|Level 7,7|Level 8,8|Level 9,9}}} {{name=@{spellname}}} {{castingtime=@{spellcastingtime}}} {{range=@{spellrange}}} {{target=@{spelltarget}}} @{spellcomp_v} @{spellcomp_s} @{spellcomp_m} {{material=@{spellcomp_materials}}} {{duration=@{spellduration}}} {{description=@{spelldescription}}} {{athigherlevels=@{spellathigherlevels}}} @{spellritual} {{innate=@{innate}}} @{spellconcentration} @{charname_output}", + "max": "", + "id": "-MEzd7fb6EclK46m_F3z" + }, + { + "name": "repeating_spell-1_-MEzcu1NARqns0rs8VOM_spellclass", + "current": "Artificer", + "max": "", + "id": "-MEzd911aUBhrxz8HOn9" + }, + { + "name": "repeating_spell-1_-MEzcu1NARqns0rs8VOM_options-flag", + "current": "0", + "max": "", + "id": "-MEzd93gQAr4kaMH-G2w" + }, + { + "name": "repeating_spell-1_-MEzcu1NARqns0rs8VOM_details-flag", + "current": "0", + "max": "", + "id": "-MEzd9ZFYbzzP5CqFs8j" + }, + { + "name": "repeating_spell-1_-MEzdAcLrCRufWr1tnUb_spellname", + "current": "Detect Magic", + "max": "", + "id": "-MEzdCw67tADu2F2XuDz" + }, + { + "name": "repeating_spell-1_-MEzdAcLrCRufWr1tnUb_spellschool", + "current": "divination", + "max": "", + "id": "-MEzdDCoU_aHR9Vk0RZW" + }, + { + "name": "repeating_spell-1_-MEzdAcLrCRufWr1tnUb_spellritual", + "current": "{{ritual=1}}", + "max": "", + "id": "-MEzdDwmWYwPAFdUF6ab" + }, + { + "name": "repeating_spell-1_-MEzdAcLrCRufWr1tnUb_spellcastingtime", + "current": "1 action", + "max": "", + "id": "-MEzdEqovXzbYNVaFTIt" + }, + { + "name": "repeating_spell-1_-MEzdAcLrCRufWr1tnUb_spellrange", + "current": "Self", + "max": "", + "id": "-MEzdFJFrlpBg0_EGMCz" + }, + { + "name": "repeating_spell-1_-MEzdAcLrCRufWr1tnUb_spelltarget", + "current": "Self", + "max": "", + "id": "-MEzdHUIY1TnaL9O53N6" + }, + { + "name": "repeating_spell-1_-MEzdAcLrCRufWr1tnUb_spellcomp_m", + "current": "0", + "max": "", + "id": "-MEzdHVbhRlaO4DJps5W" + }, + { + "name": "repeating_spell-1_-MEzdAcLrCRufWr1tnUb_spellduration", + "current": "Up to 10 min", + "max": "", + "id": "-MEzdKSHl0ALLaIPYpIW" + }, + { + "name": "repeating_spell-1_-MEzdAcLrCRufWr1tnUb_spellconcentration", + "current": "{{concentration=1}}", + "max": "", + "id": "-MEzdKTRHfaKop0ugnCt" + }, + { + "name": "repeating_spell-1_-MEzdAcLrCRufWr1tnUb_spelldescription", + "current": "For the duration, you sense the presence of magic within 30 feet of you. If you sense magic in this way, you can use your action to see a faint aura around any visible creature or object in the area that bears magic, and you learn its school of magic, if any.\n\nThe spell can penetrate most barriers, but it is blocked by 1 foot of stone, 1 inch of common metal, a thin sheet of lead, or 3 feet of wood or dirt.", + "max": "", + "id": "-MEzdNRvNjMEnERlky_S" + }, + { + "name": "repeating_spell-1_-MEzdAcLrCRufWr1tnUb_spellclass", + "current": "Artificer", + "max": "", + "id": "-MEzdP5dPOq9Ctn3GN_O" + }, + { + "name": "repeating_spell-1_-MEzdAcLrCRufWr1tnUb_options-flag", + "current": "0", + "max": "", + "id": "-MEzdP8MBQg3ejEVRbKZ" + }, + { + "name": "repeating_spell-1_-MEzdAcLrCRufWr1tnUb_details-flag", + "current": "0", + "max": "", + "id": "-MEzdPiLi76FRn0WvvHA" + }, + { + "name": "repeating_spell-1_-MEzdQDEV0xIIItgV3Kh_spellname", + "current": "Disguise Self", + "max": "", + "id": "-MEzdTvRvJLswhMZMx-S" + }, + { + "name": "repeating_spell-1_-MEzdQDEV0xIIItgV3Kh_spellschool", + "current": "illusion", + "max": "", + "id": "-MEzdUaxKswtXWeaPHOM" + }, + { + "name": "repeating_spell-1_-MEzdQDEV0xIIItgV3Kh_spellcastingtime", + "current": "1 action", + "max": "", + "id": "-MEzdVRpRdYApyWBzehY" + }, + { + "name": "repeating_spell-1_-MEzdQDEV0xIIItgV3Kh_spellrange", + "current": "Self", + "max": "", + "id": "-MEzdVuxILLUe48t1SZG" + }, + { + "name": "repeating_spell-1_-MEzdQDEV0xIIItgV3Kh_spelltarget", + "current": "Self", + "max": "", + "id": "-MEzdXF595WFGia1yJkq" + }, + { + "name": "repeating_spell-1_-MEzdQDEV0xIIItgV3Kh_spellcomp_m", + "current": "0", + "max": "", + "id": "-MEzdXGGPjx_yyeHkmR6" + }, + { + "name": "repeating_spell-1_-MEzdQDEV0xIIItgV3Kh_spellduration", + "current": "1 hour", + "max": "", + "id": "-MEzdmf93zNP7n6k1pof" + }, + { + "name": "repeating_spell-1_-MEzdQDEV0xIIItgV3Kh_spelldescription", + "current": "\nYou make yourself—including your clothing, armor, weapons, and other belongings on your person—look different until the spell ends or until you use your action to dismiss it. You can seem 1 foot shorter or taller and can appear thin, fat, or in between. You can't change your body type, so you must adopt a form that has the same basic arrangement of limbs. Otherwise, the extent of the illusion is up to you.\n\nThe changes wrought by this spell fail to hold up to physical inspection. For example, if you use this spell to add a hat to your outfit, objects pass through the hat, and anyone who touches it would feel nothing or would feel your head and hair. If you use this spell to appear thinner than you are, the hand of someone who reaches out to touch you would bump into you while it was seemingly still in midair.\n\nTo discern that you are disguised, a creature can use its action to inspect your appearance and must succeed on an Intelligence (Investigation) check against your spell save DC.", + "max": "", + "id": "-MEzdonEfUZjhT5ktX66" + }, + { + "name": "repeating_spell-1_-MEzdQDEV0xIIItgV3Kh_spellclass", + "current": "Artificer", + "max": "", + "id": "-MEzdt0LBtTgfuShrFqR" + }, + { + "name": "repeating_spell-1_-MEzdQDEV0xIIItgV3Kh_options-flag", + "current": "0", + "max": "", + "id": "-MEzdt2m-yqo2AoHId4Z" + }, + { + "name": "repeating_spell-1_-MEzdQDEV0xIIItgV3Kh_details-flag", + "current": "0", + "max": "", + "id": "-MEzdtMtYWv53RHg9Unh" + }, + { + "name": "repeating_spell-1_-MEzdtllHsli5zTIZrfc_spellname", + "current": "Expeditious Retreat", + "max": "", + "id": "-MEzdwrCANaG5KGWcj7p" + }, + { + "name": "repeating_spell-1_-MEzdtllHsli5zTIZrfc_spellschool", + "current": "transmutation", + "max": "", + "id": "-MEzdx7aO2j504Da_J-s" + }, + { + "name": "repeating_spell-1_-MEzdtllHsli5zTIZrfc_spellcastingtime", + "current": "1 bonus action", + "max": "", + "id": "-MEzdz1DcpXQofMrzlUV" + }, + { + "name": "repeating_spell-1_-MEzdtllHsli5zTIZrfc_spellrange", + "current": "Self", + "max": "", + "id": "-MEzdzbjlgeohZRCqvbI" + }, + { + "name": "repeating_spell-1_-MEzdtllHsli5zTIZrfc_spelltarget", + "current": "Self", + "max": "", + "id": "-MEze-dcpvBm7kKAmZkX" + }, + { + "name": "repeating_spell-1_-MEzdtllHsli5zTIZrfc_spellcomp_m", + "current": "0", + "max": "", + "id": "-MEze-f1yte6KvV-SyAI" + }, + { + "name": "repeating_spell-1_-MEzdtllHsli5zTIZrfc_spellconcentration", + "current": "{{concentration=1}}", + "max": "", + "id": "-MEze-xXCcvlBxCPRPuA" + }, + { + "name": "repeating_spell-1_-MEzdtllHsli5zTIZrfc_spellduration", + "current": "Up to 10 min", + "max": "", + "id": "-MEze1nqzfGxsUyl5DEd" + }, + { + "name": "repeating_spell-1_-MEzdtllHsli5zTIZrfc_spelldescription", + "current": "This spell allows you to move at an incredible pace. When you cast this spell, and then as a bonus action on each of your turns until the spell ends, you can take the Dash action.", + "max": "", + "id": "-MEze6fcGlyEMIWroE9G" + }, + { + "name": "repeating_spell-1_-MEzdtllHsli5zTIZrfc_spellclass", + "current": "Artificer", + "max": "", + "id": "-MEze89LKt4bOE6kzb6R" + }, + { + "name": "repeating_spell-1_-MEzdtllHsli5zTIZrfc_options-flag", + "current": "0", + "max": "", + "id": "-MEze8BuAX_7MR1npIBf" + }, + { + "name": "repeating_spell-1_-MEzdtllHsli5zTIZrfc_details-flag", + "current": "0", + "max": "", + "id": "-MEze8fy2E8PO66Sdoep" + }, + { + "name": "repeating_spell-1_-MEze95ikvUaRQpELvwQ_spellname", + "current": "Faerie Fire", + "max": "", + "id": "-MEzeGtO50BDXDSe6xG6" + }, + { + "name": "repeating_spell-1_-MEze95ikvUaRQpELvwQ_spellschool", + "current": "evocation", + "max": "", + "id": "-MEzeHGexxWLReIaCUJv" + }, + { + "name": "repeating_spell-1_-MEze95ikvUaRQpELvwQ_spellcastingtime", + "current": "1 action", + "max": "", + "id": "-MEzeIK98HGvYgiJRAU5" + }, + { + "name": "repeating_spell-1_-MEze95ikvUaRQpELvwQ_spellrange", + "current": "60 ft", + "max": "", + "id": "-MEzeIs-ItS3PldenMev" + }, + { + "name": "repeating_spell-1_-MEze95ikvUaRQpELvwQ_spelltarget", + "current": "Each object, any creature in the area where/when the spell is cast (Dex save)", + "max": "", + "id": "-MEzeQyuyLHzeGcFWEWE" + }, + { + "name": "repeating_spell-1_-MEze95ikvUaRQpELvwQ_spellcomp_s", + "current": "0", + "max": "", + "id": "-MEzeRTl6lFgOu66rQId" + }, + { + "name": "repeating_spell-1_-MEze95ikvUaRQpELvwQ_spellcomp_m", + "current": "0", + "max": "", + "id": "-MEzeRejNK-cWz6CfuSi" + }, + { + "name": "repeating_spell-1_-MEze95ikvUaRQpELvwQ_spellconcentration", + "current": "{{concentration=1}}", + "max": "", + "id": "-MEzeSdgMhX_ypjVAZV3" + }, + { + "name": "repeating_spell-1_-MEze95ikvUaRQpELvwQ_spellduration", + "current": "Up to 1 min", + "max": "", + "id": "-MEzeUVEDRzBRoqfkFQT" + }, + { + "name": "repeating_spell-1_-MEze95ikvUaRQpELvwQ_spell_ability", + "current": "@{constitution_mod}+", + "max": "", + "id": "-MEzeV7s9zZsDvbkrNn9" + }, + { + "name": "repeating_spell-1_-MEze95ikvUaRQpELvwQ_spelloutput", + "current": "SPELLCARD", + "max": "", + "id": "-MEzeVgcWPUy8v6y2elS" + }, + { + "name": "repeating_spell-1_-MEze95ikvUaRQpELvwQ_spellattackid", + "current": "-MEzeVjAMl-3dhwvrFkR", + "max": "", + "id": "-MEzeVjFkBs5900hu3j7" + }, + { + "name": "repeating_spell-1_-MEze95ikvUaRQpELvwQ_rollcontent", + "current": "@{wtype}&{template:spell} {{level=@{spellschool} @{spelllevel}}} {{name=@{spellname}}} {{castingtime=@{spellcastingtime}}} {{range=@{spellrange}}} {{target=@{spelltarget}}} @{spellcomp_v} @{spellcomp_s} @{spellcomp_m} {{material=@{spellcomp_materials}}} {{duration=@{spellduration}}} {{description=@{spelldescription}}} {{athigherlevels=@{spellathigherlevels}}} @{spellritual} {{innate=@{innate}}} @{spellconcentration} @{charname_output}", + "max": "", + "id": "-MEzeVjJCjutOxi3nDK7" + }, + { + "name": "repeating_spell-1_-MEze95ikvUaRQpELvwQ_spelldescription", + "current": "Each object in a 20-foot cube within range is outlined in blue, green, or violet light (your choice). Any creature in the area when the spell is cast is also outlined in light if it fails a Dexterity saving throw. For the duration, objects and affected creatures shed dim light in a 10-foot radius.\n\nAny attack roll against an affected creature or object has advantage if the attacker can see it, and the affected creature or object can't benefit from being invisible.", + "max": "", + "id": "-MEzggMlmAcKNqPlERDy" + }, + { + "name": "repeating_spell-1_-MEze95ikvUaRQpELvwQ_spellclass", + "current": "Artificer", + "max": "", + "id": "-MEzgjwKejyu-ezcWUjB" + }, + { + "name": "repeating_spell-1_-MEze95ikvUaRQpELvwQ_options-flag", + "current": "0", + "max": "", + "id": "-MEzgjzBP--2AjjiFb97" + }, + { + "name": "repeating_spell-1_-MEze95ikvUaRQpELvwQ_details-flag", + "current": "0", + "max": "", + "id": "-MEzglEtdF_en-e83zqr" + }, + { + "name": "repeating_spell-1_-MEzgm4Lal28K7cIV3Ya_spellname", + "current": "False Life", + "max": "", + "id": "-MEzgoZoQwrqK_pq7cya" + }, + { + "name": "repeating_spell-1_-MEzgm4Lal28K7cIV3Ya_spellschool", + "current": "necromancy", + "max": "", + "id": "-MEzgpUOTqaNppXDaKls" + }, + { + "name": "repeating_spell-1_-MEzgm4Lal28K7cIV3Ya_spellcastingtime", + "current": "1 action", + "max": "", + "id": "-MEzgrKe70X0vj_kISf5" + }, + { + "name": "repeating_spell-1_-MEzgm4Lal28K7cIV3Ya_spellcomp_materials", + "current": "a small amount of alcohol/distilled spirits", + "max": "", + "id": "-MEzgtzjR-GD5aQqiyz-" + }, + { + "name": "repeating_spell-1_-MEzgm4Lal28K7cIV3Ya_spellrange", + "current": "Self", + "max": "", + "id": "-MEzguaBlm0k0SO9LitN" + }, + { + "name": "repeating_spell-1_-MEzgm4Lal28K7cIV3Ya_spelltarget", + "current": "Self", + "max": "", + "id": "-MEzgv0ASMmILiQpqFt5" + }, + { + "name": "repeating_spell-1_-MEzgm4Lal28K7cIV3Ya_spellduration", + "current": "1 hour", + "max": "", + "id": "-MEzgwpShYpZbOt46hT4" + }, + { + "name": "repeating_spell-1_-MEzgm4Lal28K7cIV3Ya_spelldescription", + "current": "\nBolstering yourself with a necromantic facsimile of life, you gain 1d4 + 4 temporary hit points for the duration.", + "max": "", + "id": "-MEzgygQEMa91DkoMSRm" + }, + { + "name": "repeating_spell-1_-MEzgm4Lal28K7cIV3Ya_spellathigherlevels", + "current": "When you cast this spell using a spell slot of 2nd level or higher, you gain 5 additional temporary hit points for each slot level above 1st.", + "max": "", + "id": "-MEzh-3pB-dLYnx0lWZs" + }, + { + "name": "repeating_spell-1_-MEzgm4Lal28K7cIV3Ya_rollcontent", + "current": "@{wtype}&{template:spell} {{level=@{spellschool} ?{Cast at what level? @{spelllevel}|Level 1,1|Level 2,2|Level 3,3|Level 4,4|Level 5,5|Level 6,6|Level 7,7|Level 8,8|Level 9,9}}} {{name=@{spellname}}} {{castingtime=@{spellcastingtime}}} {{range=@{spellrange}}} {{target=@{spelltarget}}} @{spellcomp_v} @{spellcomp_s} @{spellcomp_m} {{material=@{spellcomp_materials}}} {{duration=@{spellduration}}} {{description=@{spelldescription}}} {{athigherlevels=@{spellathigherlevels}}} @{spellritual} {{innate=@{innate}}} @{spellconcentration} @{charname_output}", + "max": "", + "id": "-MEzh-6RQ71crVA2eOU3" + }, + { + "name": "repeating_spell-1_-MEzgm4Lal28K7cIV3Ya_spellclass", + "current": "Artificer", + "max": "", + "id": "-MEzh-wSSU1rOE0VxBeF" + }, + { + "name": "repeating_spell-1_-MEzgm4Lal28K7cIV3Ya_options-flag", + "current": "0", + "max": "", + "id": "-MEzh0-khsiGMom8ovbo" + }, + { + "name": "repeating_spell-1_-MEzgm4Lal28K7cIV3Ya_details-flag", + "current": "0", + "max": "", + "id": "-MEzh1ZfzUsJlOWXlvbt" + }, + { + "name": "repeating_spell-1_-MEzh1xagg8pkA894hZh_spellname", + "current": "Feather Fall", + "max": "", + "id": "-MEzh4Owa0vgdFd5ETiG" + }, + { + "name": "repeating_spell-1_-MEzh1xagg8pkA894hZh_spellschool", + "current": "transmutation", + "max": "", + "id": "-MEzh4r6QcxLdKrgqq46" + }, + { + "name": "repeating_spell-1_-MEzh1xagg8pkA894hZh_spellcastingtime", + "current": "1 reaction", + "max": "", + "id": "-MEzh6sJI_XpnqYNnlxr" + }, + { + "name": "repeating_spell-1_-MEzh1xagg8pkA894hZh_spelldescription", + "current": "Triggered when you or a creature within 60 feet of you falls.\n\n\nChoose up to five falling creatures within range. A falling creature's rate of descent slows to 60 feet per round until the spell ends. If the creature lands before the spell ends, it takes no falling damage and can land on its feet, and the spell ends for that creature.", + "max": "", + "id": "-MEzhADXrsETqVG8ceV3" + }, + { + "name": "repeating_spell-1_-MEzh1xagg8pkA894hZh_spellrange", + "current": "60 ft", + "max": "", + "id": "-MEzhAi0rvJWbxhKYoE1" + }, + { + "name": "repeating_spell-1_-MEzh1xagg8pkA894hZh_spelltarget", + "current": "Up to five falling creatures in range", + "max": "", + "id": "-MEzhD3O-Os9lGWjc6QC" + }, + { + "name": "repeating_spell-1_-MEzh1xagg8pkA894hZh_spellcomp_materials", + "current": "a small feather or piece of down", + "max": "", + "id": "-MEzhERNxTeWICqh25Np" + }, + { + "name": "repeating_spell-1_-MEzh1xagg8pkA894hZh_spellduration", + "current": "1 minute", + "max": "", + "id": "-MEzhFST2hQerByDCLeJ" + }, + { + "name": "repeating_spell-1_-MEzh1xagg8pkA894hZh_spellclass", + "current": "Artificer", + "max": "", + "id": "-MEzhIWjyJw7dggD3hgB" + }, + { + "name": "repeating_spell-1_-MEzh1xagg8pkA894hZh_options-flag", + "current": "0", + "max": "", + "id": "-MEzhIZHDAPX5nv3bf0E" + }, + { + "name": "repeating_spell-1_-MEzh1xagg8pkA894hZh_details-flag", + "current": "0", + "max": "", + "id": "-MEzhJ4dtHdytjX12S0E" + }, + { + "name": "repeating_spell-1_-MEzhJRkC6IdSV3y02Wr_spellname", + "current": "Grease", + "max": "", + "id": "-MEzhKbAIqjRrovg6S8Z" + }, + { + "name": "repeating_spell-1_-MEzhJRkC6IdSV3y02Wr_spellschool", + "current": "conjuration", + "max": "", + "id": "-MEzhLzKT2L70bkFvE4a" + }, + { + "name": "repeating_spell-1_-MEzhJRkC6IdSV3y02Wr_spellcastingtime", + "current": "1 action", + "max": "", + "id": "-MEzhMaid1rdDXnmC8GI" + }, + { + "name": "repeating_spell-1_-MEzhJRkC6IdSV3y02Wr_spellrange", + "current": "60 ft", + "max": "", + "id": "-MEzhN1I0SABB3sxFpGm" + }, + { + "name": "repeating_spell-1_-MEzhJRkC6IdSV3y02Wr_spelltarget", + "current": "the ground", + "max": "", + "id": "-MEzhQRV2T1X-8VlbxvN" + }, + { + "name": "repeating_spell-1_-MEzhJRkC6IdSV3y02Wr_spellcomp_materials", + "current": "a bit of pork rind or butter", + "max": "", + "id": "-MEzhSCvOnQ5JmXvVw_b" + }, + { + "name": "repeating_spell-1_-MEzhJRkC6IdSV3y02Wr_spellduration", + "current": "1 minute", + "max": "", + "id": "-MEzhSngthSAPHhcjRRy" + }, + { + "name": "repeating_spell-1_-MEzhJRkC6IdSV3y02Wr_spelldescription", + "current": "\nSlick grease covers the ground in a 10-foot square centered on a point within range and turns it into difficult terrain for the duration.\n\nWhen the grease appears, each creature standing in its area must succeed on a Dexterity saving throw or fall prone. A creature that enters the area or ends its turn there must also succeed on a Dexterity saving throw or fall prone.", + "max": "", + "id": "-MEzhVJTOjhYh1RoPYiH" + }, + { + "name": "repeating_spell-1_-MEzhJRkC6IdSV3y02Wr_spellclass", + "current": "Artificer", + "max": "", + "id": "-MEzhWGXBfA0tli6jOOU" + }, + { + "name": "repeating_spell-1_-MEzhJRkC6IdSV3y02Wr_options-flag", + "current": "0", + "max": "", + "id": "-MEzhWJIkWQHL_cYmxoP" + }, + { + "name": "repeating_spell-1_-MEzhJRkC6IdSV3y02Wr_details-flag", + "current": "0", + "max": "", + "id": "-MEzhWsNOrmaMJHR6oiW" + }, + { + "name": "repeating_spell-1_-MEzhXykYwuS91I80GEh_spellname", + "current": "Identify", + "max": "", + "id": "-MEzhZXswK013FgtY7hb" + }, + { + "name": "repeating_spell-1_-MEzhXykYwuS91I80GEh_spellschool", + "current": "divination", + "max": "", + "id": "-MEzhZkWW_krFp1WUTvt" + }, + { + "name": "repeating_spell-1_-MEzhXykYwuS91I80GEh_spellritual", + "current": "{{ritual=1}}", + "max": "", + "id": "-MEzhZzrcsBJcOECZj7U" + }, + { + "name": "repeating_spell-1_-MEzhXykYwuS91I80GEh_spellcastingtime", + "current": "1 minute", + "max": "", + "id": "-MEzh_hl5N_ZEZBKuTU7" + }, + { + "name": "repeating_spell-1_-MEzhXykYwuS91I80GEh_spellrange", + "current": "Touch", + "max": "", + "id": "-MEzha0QsVH6--NyfGVS" + }, + { + "name": "repeating_spell-1_-MEzhXykYwuS91I80GEh_spelltarget", + "current": "one object or creature", + "max": "", + "id": "-MEzhbbDdH1QaHTdKhhr" + }, + { + "name": "repeating_spell-1_-MEzhXykYwuS91I80GEh_spellcomp_materials", + "current": "a pearl worth at least 100gp and an owl feather", + "max": "", + "id": "-MEzhdz6yuhzGBX7mTTI" + }, + { + "name": "repeating_spell-1_-MEzhXykYwuS91I80GEh_spellduration", + "current": "Instantaneous", + "max": "", + "id": "-MEzhgWpBz2YVOQCAntQ" + }, + { + "name": "repeating_spell-1_-MEzhXykYwuS91I80GEh_spelldescription", + "current": "You choose one object that you must touch throughout the casting of the spell. If it is a magic item or some other magic-imbued object, you learn its properties and how to use them, whether it requires attunement to use, and how many charges it has, if any. You learn whether any spells are affecting the item and what they are. If the item was created by a spell, you learn which spell created it.\n\nIf you instead touch a creature throughout the casting, you learn what spells, if any, are currently affecting it.", + "max": "", + "id": "-MEzhjBsKmGwlnCBX233" + }, + { + "name": "repeating_spell-1_-MEzhXykYwuS91I80GEh_spellclass", + "current": "Artificer", + "max": "", + "id": "-MEzhmCvfCIhxt6niuGV" + }, + { + "name": "repeating_spell-1_-MEzhXykYwuS91I80GEh_options-flag", + "current": "0", + "max": "", + "id": "-MEzhmGn-K0doZPkBpk5" + }, + { + "name": "repeating_spell-1_-MEzhXykYwuS91I80GEh_details-flag", + "current": "0", + "max": "", + "id": "-MEzhmhozYaY-GQKbXIv" + }, + { + "name": "repeating_spell-1_-MEzhnwK0HU9m6AQ9jEH_spellname", + "current": "Jump", + "max": "", + "id": "-MEzhqe4mTKTSoWbFag-" + }, + { + "name": "repeating_spell-1_-MEzhnwK0HU9m6AQ9jEH_spellschool", + "current": "transmutation", + "max": "", + "id": "-MEzhrPwzcMnueXM6Ewj" + }, + { + "name": "repeating_spell-1_-MEzhnwK0HU9m6AQ9jEH_spellcastingtime", + "current": "1 action", + "max": "", + "id": "-MEzhv82LOAaUROMJo40" + }, + { + "name": "repeating_spell-1_-MEzhnwK0HU9m6AQ9jEH_spellrange", + "current": "Touch", + "max": "", + "id": "-MEzhvdzW1J3Jof1LZaf" + }, + { + "name": "repeating_spell-1_-MEzhnwK0HU9m6AQ9jEH_spellcomp_materials", + "current": "a grasshopper's hind leg", + "max": "", + "id": "-MEzhxjAwMNXW_G4lKXt" + }, + { + "name": "repeating_spell-1_-MEzhnwK0HU9m6AQ9jEH_spelltarget", + "current": "a creature", + "max": "", + "id": "-MEzhyJwByMH45MCCg-l" + }, + { + "name": "repeating_spell-1_-MEzhnwK0HU9m6AQ9jEH_spellduration", + "current": "1 minute", + "max": "", + "id": "-MEzhzexCB6BNyDOaES4" + }, + { + "name": "repeating_spell-1_-MEzhnwK0HU9m6AQ9jEH_spelldescription", + "current": "You touch a creature. The creature's jump distance is tripled until the spell ends.", + "max": "", + "id": "-MEzi1IxqMHEn-xGVPIi" + }, + { + "name": "repeating_spell-1_-MEzhnwK0HU9m6AQ9jEH_spellclass", + "current": "Artificer", + "max": "", + "id": "-MEzi1xaPwQikxD8XoXa" + }, + { + "name": "repeating_spell-1_-MEzhnwK0HU9m6AQ9jEH_options-flag", + "current": "0", + "max": "", + "id": "-MEzi2-bXsS4EfONCeM7" + }, + { + "name": "repeating_spell-1_-MEzhnwK0HU9m6AQ9jEH_details-flag", + "current": "0", + "max": "", + "id": "-MEzi2_pFC6tjSLxUjsR" + }, + { + "name": "repeating_spell-1_-MEzi3p5Oltq5T7ofSgm_spellname", + "current": "Longstrider", + "max": "", + "id": "-MEzi64I5ZAJZVCFKm1m" + }, + { + "name": "repeating_spell-1_-MEzi3p5Oltq5T7ofSgm_spellschool", + "current": "transmutation", + "max": "", + "id": "-MEzi8NelJ-BrH92-xAy" + }, + { + "name": "repeating_spell-1_-MEzi3p5Oltq5T7ofSgm_spellcastingtime", + "current": "1 action", + "max": "", + "id": "-MEzi9wRAOgl_3zKzej7" + }, + { + "name": "repeating_spell-1_-MEzi3p5Oltq5T7ofSgm_spellrange", + "current": "Touch", + "max": "", + "id": "-MEziAPtJcjLHugSnwC3" + }, + { + "name": "repeating_spell-1_-MEzi3p5Oltq5T7ofSgm_spellcomp_materials", + "current": "a pinch of dirt", + "max": "", + "id": "-MEziBy8SiMmK9C2P810" + }, + { + "name": "repeating_spell-1_-MEzi3p5Oltq5T7ofSgm_spellduration", + "current": "1 hour", + "max": "", + "id": "-MEziDIZjaKC20MeQrgw" + }, + { + "name": "repeating_spell-1_-MEzi3p5Oltq5T7ofSgm_spelldescription", + "current": "You touch a creature. The target's speed increases by 10 feet until the spell ends.", + "max": "", + "id": "-MEziELjM4ysdBVaJ-qy" + }, + { + "name": "repeating_spell-1_-MEzi3p5Oltq5T7ofSgm_spellathigherlevels", + "current": "When you cast this spell using a spell slot of 2nd level or higher, you can target one additional creature for each slot level above 1st.", + "max": "", + "id": "-MEziFVZ0ZG6OI2DBgRJ" + }, + { + "name": "repeating_spell-1_-MEzi3p5Oltq5T7ofSgm_rollcontent", + "current": "@{wtype}&{template:spell} {{level=@{spellschool} ?{Cast at what level? @{spelllevel}|Level 1,1|Level 2,2|Level 3,3|Level 4,4|Level 5,5|Level 6,6|Level 7,7|Level 8,8|Level 9,9}}} {{name=@{spellname}}} {{castingtime=@{spellcastingtime}}} {{range=@{spellrange}}} {{target=@{spelltarget}}} @{spellcomp_v} @{spellcomp_s} @{spellcomp_m} {{material=@{spellcomp_materials}}} {{duration=@{spellduration}}} {{description=@{spelldescription}}} {{athigherlevels=@{spellathigherlevels}}} @{spellritual} {{innate=@{innate}}} @{spellconcentration} @{charname_output}", + "max": "", + "id": "-MEziFZ4f7hh-JBta8Sk" + }, + { + "name": "repeating_spell-1_-MEzi3p5Oltq5T7ofSgm_spellclass", + "current": "Artificer", + "max": "", + "id": "-MEziHcGpxuHDFMNQx7o" + }, + { + "name": "repeating_spell-1_-MEzi3p5Oltq5T7ofSgm_options-flag", + "current": "0", + "max": "", + "id": "-MEziHeqmozI0WqMxMsm" + }, + { + "name": "repeating_spell-1_-MEzi3p5Oltq5T7ofSgm_details-flag", + "current": "0", + "max": "", + "id": "-MEziI4O37YqrGn2EMwd" + }, + { + "name": "repeating_spell-1_-MEziJ43RGfSY2SF8nxq_spellname", + "current": "Purify Food and Drink", + "max": "", + "id": "-MEziL6JQKK5FkxTS95D" + }, + { + "name": "repeating_spell-1_-MEziJ43RGfSY2SF8nxq_spellschool", + "current": "transmutation", + "max": "", + "id": "-MEziLTrs_CnTz5C0pQy" + }, + { + "name": "repeating_spell-1_-MEziJ43RGfSY2SF8nxq_spellritual", + "current": "{{ritual=1}}", + "max": "", + "id": "-MEziLftIKZlzcL1-EPV" + }, + { + "name": "repeating_spell-1_-MEziJ43RGfSY2SF8nxq_spellcastingtime", + "current": "1 action", + "max": "", + "id": "-MEziMlGvCWqMQiTu52p" + }, + { + "name": "repeating_spell-1_-MEziJ43RGfSY2SF8nxq_spellrange", + "current": "10 ft", + "max": "", + "id": "-MEziNQKVEzYxn0U6sdQ" + }, + { + "name": "repeating_spell-1_-MEziJ43RGfSY2SF8nxq_spelltarget", + "current": "Non-magical food and drink in a 5-foot radius", + "max": "", + "id": "-MEziQSPSgyPQAMq1_dy" + }, + { + "name": "repeating_spell-1_-MEziJ43RGfSY2SF8nxq_spellcomp_m", + "current": "0", + "max": "", + "id": "-MEziQTYv-bUhxA9swX0" + }, + { + "name": "repeating_spell-1_-MEziJ43RGfSY2SF8nxq_spellduration", + "current": "Instantaneous", + "max": "", + "id": "-MEziRu7lXKdDmBWQ69u" + }, + { + "name": "repeating_spell-1_-MEziJ43RGfSY2SF8nxq_spelldescription", + "current": "All nonmagical food and drink within a 5-foot-radius sphere centered on a point of your choice within range is purified and rendered free of poison and disease.", + "max": "", + "id": "-MEziW2xvGoT2Qmb-EJg" + }, + { + "name": "repeating_spell-1_-MEziJ43RGfSY2SF8nxq_spellclass", + "current": "Artificer", + "max": "", + "id": "-MEziWxz0P5bgO9_mLgU" + }, + { + "name": "repeating_spell-1_-MEziJ43RGfSY2SF8nxq_options-flag", + "current": "0", + "max": "", + "id": "-MEziX0Ff6zQMoGaTJ33" + }, + { + "name": "repeating_spell-1_-MEziJ43RGfSY2SF8nxq_details-flag", + "current": "0", + "max": "", + "id": "-MEziXgdyW28VkMLL5x6" + }, + { + "name": "repeating_spell-1_-MEziZC3IywMHGf0cYZH_spellname", + "current": "Sanctuary", + "max": "", + "id": "-MEzi_rKHTqJMk8jo1VZ" + }, + { + "name": "repeating_spell-1_-MEziZC3IywMHGf0cYZH_spellcastingtime", + "current": "1 bonus action", + "max": "", + "id": "-MEziaXCEoD1gCl8HeAO" + }, + { + "name": "repeating_spell-1_-MEziZC3IywMHGf0cYZH_spellrange", + "current": "30 ft", + "max": "", + "id": "-MEziauWTFg8jGzd7DIJ" + }, + { + "name": "repeating_spell-1_-MEziZC3IywMHGf0cYZH_spelltarget", + "current": "A creature", + "max": "", + "id": "-MEzicKV8-zDz0-_ivNZ" + }, + { + "name": "repeating_spell-1_-MEziZC3IywMHGf0cYZH_spellcomp_materials", + "current": "a small silver mirror", + "max": "", + "id": "-MEzieYvgQ_b7nnuKDh8" + }, + { + "name": "repeating_spell-1_-MEziZC3IywMHGf0cYZH_spellduration", + "current": "1 minute", + "max": "", + "id": "-MEzigJDbWm6Ge7G8zHR" + }, + { + "name": "repeating_spell-1_-MEziZC3IywMHGf0cYZH_spelldescription", + "current": "You ward a creature within range against attack. Until the spell ends, any creature who targets the warded creature with an attack or a harmful spell must first make a Wisdom saving throw. On a failed save, the creature must choose a new target or lose the attack or spell. This spell doesn't protect the warded creature from area effects, such as the explosion of a fireball.\n\nIf the warded creature makes an attack, casts a spell that affects an enemy, or deals damage to another creature, this spell ends.", + "max": "", + "id": "-MEziksq7wDtzBCVbTAx" + }, + { + "name": "repeating_spell-1_-MEziZC3IywMHGf0cYZH_spellclass", + "current": "Artificer", + "max": "", + "id": "-MEzimMBhGsFN5IW6goY" + }, + { + "name": "repeating_spell-1_-MEziZC3IywMHGf0cYZH_options-flag", + "current": "0", + "max": "", + "id": "-MEzimOnblzyZx3uM3oE" + }, + { + "name": "repeating_spell-1_-MEziZC3IywMHGf0cYZH_details-flag", + "current": "0", + "max": "", + "id": "-MEzipIFVq9hToHly1qR" + }, + { + "name": "repeating_spell-1_-MEziqY313OsBj8EWAsi_spellname", + "current": "Snare", + "max": "", + "id": "-MEzirI8kBSY7nhY9Ogj" + }, + { + "name": "repeating_spell-1_-MEziqY313OsBj8EWAsi_spellcastingtime", + "current": "1 minute", + "max": "", + "id": "-MEzisIMKpUxBs5hpP2y" + }, + { + "name": "repeating_spell-1_-MEziqY313OsBj8EWAsi_spellrange", + "current": "Touch", + "max": "", + "id": "-MEzisf3nlIzDdAAz8nX" + }, + { + "name": "repeating_spell-1_-MEziqY313OsBj8EWAsi_spellcomp_v", + "current": "0", + "max": "", + "id": "-MEzivb2xgr_KH__Uqqt" + }, + { + "name": "repeating_spell-1_-MEziqY313OsBj8EWAsi_spellcomp_materials", + "current": "25 ft of rope (consumed)", + "max": "", + "id": "-MEziy-FBTZbEKn1SbNh" + }, + { + "name": "repeating_spell-1_-MEziqY313OsBj8EWAsi_spellduration", + "current": "8 hours", + "max": "", + "id": "-MEziynEHxXbnqR1wxZS" + }, + { + "name": "repeating_spell-1_-MEziqY313OsBj8EWAsi_spelldescription", + "current": "As you cast this spell, you use the rope to create a circle with a 5-foot radius on the ground or the floor. When you finish casting, the rope disappears and the circle becomes a magic trap.\n\nThis trap is nearly invisible, requiring a successful Intelligence (Investigation) check against your spell save DC to be discerned.\n\nThe trap triggers when a Small, Medium, or Large creature moves onto the ground or the floor in the spell's radius. That creature must succeed on a Dexterity saving throw or be magically hoisted into the air, leaving it hanging upside down 3 feet above the ground or the floor. The creature is restrained there until the spell ends.\n\nA restrained creature can make a Dexterity saving throw at the end of each of its turns, ending the effect on itself on a success. Alternatively, the creature or someone else who can reach it can use an action to make an Intelligence (Arcana) check against your spell save DC. On a success, the restrained effect ends.\n\nAfter the trap is triggered, the spell ends when no creature is restrained by it.", + "max": "", + "id": "-MEzj0cjYyrRAOOaHJJ9" + }, + { + "name": "repeating_spell-1_-MEziqY313OsBj8EWAsi_spellclass", + "current": "Artificer", + "max": "", + "id": "-MEzj807G2ZqcVvIFEDD" + }, + { + "name": "repeating_spell-1_-MEziqY313OsBj8EWAsi_options-flag", + "current": "0", + "max": "", + "id": "-MEzj8313nbKNqRj1cWU" + }, + { + "name": "repeating_spell-1_-MEziqY313OsBj8EWAsi_details-flag", + "current": "0", + "max": "", + "id": "-MEzj8gNqKsL3ulC-Vgp" + }, + { + "name": "repeating_inventory_-MEzk1pHO66BIx0rZmla_itemname", + "current": "Handaxe", + "max": "", + "id": "-MEzk38JF5D1MbhspK3u" + }, + { + "name": "repeating_inventory_-MEzk1pHO66BIx0rZmla_itemweight", + "current": "2", + "max": "", + "id": "-MEzk3zytBEjuH9qQGiG" + }, + { + "name": "repeating_attack_-MEzXttLcxOWCteZRyGz_atkname", + "current": "Handaxe, melee", + "max": "", + "id": "-MEzk78a6ZDFn6CmSeTa" + }, + { + "name": "repeating_attack_-MEzXttLcxOWCteZRyGz_atkrange", + "current": "5 ft", + "max": "", + "id": "-MEzkAeyLy_6COgD4v6z" + }, + { + "name": "repeating_attack_-MEzXttLcxOWCteZRyGz_dmgbase", + "current": "1d6", + "max": "", + "id": "-MEzkBsPRUJbKE91Y_sC" + }, + { + "name": "repeating_attack_-MEzXttLcxOWCteZRyGz_dmgtype", + "current": "Slashing", + "max": "", + "id": "-MEzkE2C-c-hKkjYdKjv" + }, + { + "name": "repeating_attack_-MEzXttLcxOWCteZRyGz_atk_desc", + "current": "A simple handaxe with a pair of intricate dragons carved in the handle.", + "max": "", + "id": "-MEzkP73C9fNWJg6JHgC" + }, + { + "name": "repeating_attack_-MEzkPewxWh9bg5mjx14_atkname", + "current": "Handaxe, thrown", + "max": "", + "id": "-MEzkRt9C_fWbDZG5pRu" + }, + { + "name": "repeating_attack_-MEzkPewxWh9bg5mjx14_atkdmgtype", + "current": "1d6+1 Slashing ", + "max": "", + "id": "-MEzkRvrYMjerxg2pwNY" + }, + { + "name": "repeating_attack_-MEzkPewxWh9bg5mjx14_rollbase_dmg", + "current": "@{wtype}&{template:dmg} {{rname=@{atkname}}} @{atkflag} {{range=@{atkrange}}} @{dmgflag} {{dmg1=[[1d6 + 1[STR]]]}} {{dmg1type=Slashing}} @{dmg2flag} {{dmg2=[[0]]}} {{dmg2type=}} @{saveflag} {{desc=@{atk_desc}}} @{hldmg} {{spelllevel=@{spelllevel}}} {{innate=@{spell_innate}}} {{globaldamage=[[0]]}} {{globaldamagetype=@{global_damage_mod_type}}} @{charname_output}", + "max": "", + "id": "-MEzkRvv9708IKBZR6Au" + }, + { + "name": "repeating_attack_-MEzkPewxWh9bg5mjx14_rollbase_crit", + "current": "@{wtype}&{template:dmg} {{crit=1}} {{rname=@{atkname}}} @{atkflag} {{range=@{atkrange}}} @{dmgflag} {{dmg1=[[1d6 + 1[STR]]]}} {{dmg1type=Slashing}} @{dmg2flag} {{dmg2=[[0]]}} {{dmg2type=}} {{crit1=[[1d6]]}} {{crit2=[[0]]}} @{saveflag} {{desc=@{atk_desc}}} @{hldmg} {{spelllevel=@{spelllevel}}} {{innate=@{spell_innate}}} {{globaldamage=[[0]]}} {{globaldamagecrit=[[0]]}} {{globaldamagetype=@{global_damage_mod_type}}} @{charname_output}", + "max": "", + "id": "-MEzkRvzARG2Ln1eZvpf" + }, + { + "name": "repeating_attack_-MEzkPewxWh9bg5mjx14_atkbonus", + "current": "+3", + "max": "", + "id": "-MEzkRw1T6FTFw2DRHEr" + }, + { + "name": "repeating_attack_-MEzkPewxWh9bg5mjx14_rollbase", + "current": "@{wtype}&{template:atk} {{mod=@{atkbonus}}} {{rname=[@{atkname}](~repeating_attack_attack_dmg)}} {{rnamec=[@{atkname}](~repeating_attack_attack_crit)}} {{r1=[[@{d20}cs>@{atkcritrange} + 1[STR] + 2[PROF]]]}} @{rtype}cs>@{atkcritrange} + 1[STR] + 2[PROF]]]}} {{range=@{atkrange}}} {{desc=@{atk_desc}}} {{spelllevel=@{spelllevel}}} {{innate=@{spell_innate}}} {{globalattack=@{global_attack_mod}}} ammo=@{ammo} @{charname_output}", + "max": "", + "id": "-MEzkRw4HdCQOWt3Pv7L" + }, + { + "name": "repeating_attack_-MEzkPewxWh9bg5mjx14_atkrange", + "current": "20/60ft", + "max": "", + "id": "-MEzkTSrMR_7eEyECpp_" + }, + { + "name": "repeating_attack_-MEzkPewxWh9bg5mjx14_atkattr_base", + "current": "@{strength_mod}", + "max": "", + "id": "-MEzkTeu2jdKFJASbeSb" + }, + { + "name": "repeating_attack_-MEzkPewxWh9bg5mjx14_dmgbase", + "current": "1d6", + "max": "", + "id": "-MEzkqjoAei-fW03CrQb" + }, + { + "name": "repeating_attack_-MEzkPewxWh9bg5mjx14_dmgtype", + "current": "Slashing", + "max": "", + "id": "-MEzksazqaZ-wFfnK_0A" + }, + { + "name": "repeating_attack_-MEzkPewxWh9bg5mjx14_atk_desc", + "current": "A simple handaxe with a pair of intricate dragons carved in the handle.", + "max": "", + "id": "-MEzkwleZGhp4bIOtSQo" + }, + { + "name": "repeating_attack_-MEzkPewxWh9bg5mjx14_options-flag", + "current": "0", + "max": "", + "id": "-MEzkwn2iMWq6M7ucJO9" + }, + { + "name": "repeating_attack_-MEzl6aKV20XxLywBQHT_atkname", + "current": "Spear, melee, 1h", + "max": "", + "id": "-MEzl8JclXjt3km-2Bn5" + }, + { + "name": "repeating_attack_-MEzl6aKV20XxLywBQHT_atkdmgtype", + "current": "1d6+1 Piercing ", + "max": "", + "id": "-MEzl8MSDjwJlrjFCxdo" + }, + { + "name": "repeating_attack_-MEzl6aKV20XxLywBQHT_rollbase_dmg", + "current": "@{wtype}&{template:dmg} {{rname=@{atkname}}} @{atkflag} {{range=@{atkrange}}} @{dmgflag} {{dmg1=[[1d6 + 1[STR]]]}} {{dmg1type=Piercing}} @{dmg2flag} {{dmg2=[[0]]}} {{dmg2type=}} @{saveflag} {{desc=@{atk_desc}}} @{hldmg} {{spelllevel=@{spelllevel}}} {{innate=@{spell_innate}}} {{globaldamage=[[0]]}} {{globaldamagetype=@{global_damage_mod_type}}} @{charname_output}", + "max": "", + "id": "-MEzl8MYVzbOumWYcjbo" + }, + { + "name": "repeating_attack_-MEzl6aKV20XxLywBQHT_rollbase_crit", + "current": "@{wtype}&{template:dmg} {{crit=1}} {{rname=@{atkname}}} @{atkflag} {{range=@{atkrange}}} @{dmgflag} {{dmg1=[[1d6 + 1[STR]]]}} {{dmg1type=Piercing}} @{dmg2flag} {{dmg2=[[0]]}} {{dmg2type=}} {{crit1=[[1d6]]}} {{crit2=[[0]]}} @{saveflag} {{desc=@{atk_desc}}} @{hldmg} {{spelllevel=@{spelllevel}}} {{innate=@{spell_innate}}} {{globaldamage=[[0]]}} {{globaldamagecrit=[[0]]}} {{globaldamagetype=@{global_damage_mod_type}}} @{charname_output}", + "max": "", + "id": "-MEzl8McDsfpAi3zOLrb" + }, + { + "name": "repeating_attack_-MEzl6aKV20XxLywBQHT_atkbonus", + "current": "+3", + "max": "", + "id": "-MEzl8MfvhNw9hq8ScCI" + }, + { + "name": "repeating_attack_-MEzl6aKV20XxLywBQHT_rollbase", + "current": "@{wtype}&{template:atk} {{mod=@{atkbonus}}} {{rname=[@{atkname}](~repeating_attack_attack_dmg)}} {{rnamec=[@{atkname}](~repeating_attack_attack_crit)}} {{r1=[[@{d20}cs>@{atkcritrange} + 1[STR] + 2[PROF]]]}} @{rtype}cs>@{atkcritrange} + 1[STR] + 2[PROF]]]}} {{range=@{atkrange}}} {{desc=@{atk_desc}}} {{spelllevel=@{spelllevel}}} {{innate=@{spell_innate}}} {{globalattack=@{global_attack_mod}}} ammo=@{ammo} @{charname_output}", + "max": "", + "id": "-MEzl8MjgWwYfiUlavdA" + }, + { + "name": "repeating_attack_-MEzl6aKV20XxLywBQHT_atkrange", + "current": "5ft", + "max": "", + "id": "-MEzlAYjU8pA8U3Kjsmd" + }, + { + "name": "repeating_attack_-MEzl6aKV20XxLywBQHT_dmgbase", + "current": "1d6", + "max": "", + "id": "-MEzlD2h6o4wDuimq-TL" + }, + { + "name": "repeating_attack_-MEzl6aKV20XxLywBQHT_atk_desc", + "current": "Definitely not a re-purposed javelin.", + "max": "", + "id": "-MEzlNKiWQHzw0RvoebM" + }, + { + "name": "repeating_attack_-MEzl6aKV20XxLywBQHT_dmgtype", + "current": "Piercing", + "max": "", + "id": "-MEzlPl8D2HibVqGOQEV" + }, + { + "name": "repeating_attack_-MEzl6aKV20XxLywBQHT_options-flag", + "current": "0", + "max": "", + "id": "-MEzlUgxa62Mz88nz9mt" + }, + { + "name": "repeating_attack_-MEzlV5oFKZ6w5nza8AF_atkname", + "current": "Spear, melee, 2h", + "max": "", + "id": "-MEzlXNOhH1NsQ8rLzfq" + }, + { + "name": "repeating_attack_-MEzlV5oFKZ6w5nza8AF_atkdmgtype", + "current": "1d8+1 Piercing ", + "max": "", + "id": "-MEzlXQVGYfsb_IpMRSS" + }, + { + "name": "repeating_attack_-MEzlV5oFKZ6w5nza8AF_rollbase_dmg", + "current": "@{wtype}&{template:dmg} {{rname=@{atkname}}} @{atkflag} {{range=@{atkrange}}} @{dmgflag} {{dmg1=[[1d8 + 1[STR]]]}} {{dmg1type=Piercing}} @{dmg2flag} {{dmg2=[[0]]}} {{dmg2type=}} @{saveflag} {{desc=@{atk_desc}}} @{hldmg} {{spelllevel=@{spelllevel}}} {{innate=@{spell_innate}}} {{globaldamage=[[0]]}} {{globaldamagetype=@{global_damage_mod_type}}} @{charname_output}", + "max": "", + "id": "-MEzlXQZOLq-Cj8whYNP" + }, + { + "name": "repeating_attack_-MEzlV5oFKZ6w5nza8AF_rollbase_crit", + "current": "@{wtype}&{template:dmg} {{crit=1}} {{rname=@{atkname}}} @{atkflag} {{range=@{atkrange}}} @{dmgflag} {{dmg1=[[1d8 + 1[STR]]]}} {{dmg1type=Piercing}} @{dmg2flag} {{dmg2=[[0]]}} {{dmg2type=}} {{crit1=[[1d8]]}} {{crit2=[[0]]}} @{saveflag} {{desc=@{atk_desc}}} @{hldmg} {{spelllevel=@{spelllevel}}} {{innate=@{spell_innate}}} {{globaldamage=[[0]]}} {{globaldamagecrit=[[0]]}} {{globaldamagetype=@{global_damage_mod_type}}} @{charname_output}", + "max": "", + "id": "-MEzlXQc6ol58WCv7bIz" + }, + { + "name": "repeating_attack_-MEzlV5oFKZ6w5nza8AF_atkbonus", + "current": "+3", + "max": "", + "id": "-MEzlXQfBxUSPGZzYMeX" + }, + { + "name": "repeating_attack_-MEzlV5oFKZ6w5nza8AF_rollbase", + "current": "@{wtype}&{template:atk} {{mod=@{atkbonus}}} {{rname=[@{atkname}](~repeating_attack_attack_dmg)}} {{rnamec=[@{atkname}](~repeating_attack_attack_crit)}} {{r1=[[@{d20}cs>@{atkcritrange} + 1[STR] + 2[PROF]]]}} @{rtype}cs>@{atkcritrange} + 1[STR] + 2[PROF]]]}} {{range=@{atkrange}}} {{desc=@{atk_desc}}} {{spelllevel=@{spelllevel}}} {{innate=@{spell_innate}}} {{globalattack=@{global_attack_mod}}} ammo=@{ammo} @{charname_output}", + "max": "", + "id": "-MEzlXQiCBwIYp8TbRV4" + }, + { + "name": "repeating_attack_-MEzlV5oFKZ6w5nza8AF_atkrange", + "current": "5 ft", + "max": "", + "id": "-MEzlZwXqUFcRBvvjvVV" + }, + { + "name": "repeating_attack_-MEzlV5oFKZ6w5nza8AF_dmgbase", + "current": "1d8", + "max": "", + "id": "-MEzl_bVqqCCU7l_vkl5" + }, + { + "name": "repeating_attack_-MEzlV5oFKZ6w5nza8AF_dmgtype", + "current": "Piercing", + "max": "", + "id": "-MEzlaXJYwEuahcYhunp" + }, + { + "name": "repeating_attack_-MEzlV5oFKZ6w5nza8AF_atk_desc", + "current": "Definitely not a re-purposed javelin.", + "max": "", + "id": "-MEzlbkcr1-HiPHSRlmU" + }, + { + "name": "repeating_attack_-MEzlV5oFKZ6w5nza8AF_options-flag", + "current": "0", + "max": "", + "id": "-MEzlblsSOg4C_lJ8kIj" + }, + { + "name": "repeating_attack_-MEzlc9ZYKG5hw5DtDIG_atkname", + "current": "Spear, thrown", + "max": "", + "id": "-MEzldrAtMVfWhATp5WA" + }, + { + "name": "repeating_attack_-MEzlc9ZYKG5hw5DtDIG_atkdmgtype", + "current": "1d6+1 Piercing ", + "max": "", + "id": "-MEzldtqhenNz1boQbsi" + }, + { + "name": "repeating_attack_-MEzlc9ZYKG5hw5DtDIG_rollbase_dmg", + "current": "@{wtype}&{template:dmg} {{rname=@{atkname}}} @{atkflag} {{range=@{atkrange}}} @{dmgflag} {{dmg1=[[1d6 + 1[STR]]]}} {{dmg1type=Piercing}} @{dmg2flag} {{dmg2=[[0]]}} {{dmg2type=}} @{saveflag} {{desc=@{atk_desc}}} @{hldmg} {{spelllevel=@{spelllevel}}} {{innate=@{spell_innate}}} {{globaldamage=[[0]]}} {{globaldamagetype=@{global_damage_mod_type}}} @{charname_output}", + "max": "", + "id": "-MEzldttDtqmMpN92Wk4" + }, + { + "name": "repeating_attack_-MEzlc9ZYKG5hw5DtDIG_rollbase_crit", + "current": "@{wtype}&{template:dmg} {{crit=1}} {{rname=@{atkname}}} @{atkflag} {{range=@{atkrange}}} @{dmgflag} {{dmg1=[[1d6 + 1[STR]]]}} {{dmg1type=Piercing}} @{dmg2flag} {{dmg2=[[0]]}} {{dmg2type=}} {{crit1=[[1d6]]}} {{crit2=[[0]]}} @{saveflag} {{desc=@{atk_desc}}} @{hldmg} {{spelllevel=@{spelllevel}}} {{innate=@{spell_innate}}} {{globaldamage=[[0]]}} {{globaldamagecrit=[[0]]}} {{globaldamagetype=@{global_damage_mod_type}}} @{charname_output}", + "max": "", + "id": "-MEzldtw98X_buKtSdSd" + }, + { + "name": "repeating_attack_-MEzlc9ZYKG5hw5DtDIG_atkbonus", + "current": "+3", + "max": "", + "id": "-MEzldtzTmcIs8zNbOQe" + }, + { + "name": "repeating_attack_-MEzlc9ZYKG5hw5DtDIG_rollbase", + "current": "@{wtype}&{template:atk} {{mod=@{atkbonus}}} {{rname=[@{atkname}](~repeating_attack_attack_dmg)}} {{rnamec=[@{atkname}](~repeating_attack_attack_crit)}} {{r1=[[@{d20}cs>@{atkcritrange} + 1[STR] + 2[PROF]]]}} @{rtype}cs>@{atkcritrange} + 1[STR] + 2[PROF]]]}} {{range=@{atkrange}}} {{desc=@{atk_desc}}} {{spelllevel=@{spelllevel}}} {{innate=@{spell_innate}}} {{globalattack=@{global_attack_mod}}} ammo=@{ammo} @{charname_output}", + "max": "", + "id": "-MEzldu3wbZ7hb1cKMcz" + }, + { + "name": "repeating_attack_-MEzlc9ZYKG5hw5DtDIG_atkrange", + "current": "20/60 ft", + "max": "", + "id": "-MEzlfCSpa9DOXtLfiuf" + }, + { + "name": "repeating_attack_-MEzlc9ZYKG5hw5DtDIG_dmgbase", + "current": "1d6", + "max": "", + "id": "-MEzlfpIBDt1LMDx117d" + }, + { + "name": "repeating_attack_-MEzlc9ZYKG5hw5DtDIG_dmgtype", + "current": "Piercing", + "max": "", + "id": "-MEzlgZuSZYB7U88o9t5" + }, + { + "name": "repeating_attack_-MEzlc9ZYKG5hw5DtDIG_atk_desc", + "current": "Definitely not a re-purposed javelin.", + "max": "", + "id": "-MEzlhC-rx41dIozkHPG" + }, + { + "name": "repeating_attack_-MEzlc9ZYKG5hw5DtDIG_options-flag", + "current": "0", + "max": "", + "id": "-MEzlhDQ8SSF42J8gt6N" + }, + { + "name": "repeating_attack_-MEzljeo418h8clkQAHG_atkname", + "current": "Light Crossbow", + "max": "", + "id": "-MEzlmi2ruay374zq7gR" + }, + { + "name": "repeating_attack_-MEzljeo418h8clkQAHG_atkdmgtype", + "current": "1d8+2 Piercing ", + "max": "", + "id": "-MEzlml8-Gfn4_RAQg4W" + }, + { + "name": "repeating_attack_-MEzljeo418h8clkQAHG_rollbase_dmg", + "current": "@{wtype}&{template:dmg} {{rname=@{atkname}}} @{atkflag} {{range=@{atkrange}}} @{dmgflag} {{dmg1=[[1d8 + 2[DEX]]]}} {{dmg1type=Piercing}} @{dmg2flag} {{dmg2=[[0]]}} {{dmg2type=}} @{saveflag} {{desc=@{atk_desc}}} @{hldmg} {{spelllevel=@{spelllevel}}} {{innate=@{spell_innate}}} {{globaldamage=[[0]]}} {{globaldamagetype=@{global_damage_mod_type}}} @{charname_output}", + "max": "", + "id": "-MEzlmlC8oigwPx180fJ" + }, + { + "name": "repeating_attack_-MEzljeo418h8clkQAHG_rollbase_crit", + "current": "@{wtype}&{template:dmg} {{crit=1}} {{rname=@{atkname}}} @{atkflag} {{range=@{atkrange}}} @{dmgflag} {{dmg1=[[1d8 + 2[DEX]]]}} {{dmg1type=Piercing}} @{dmg2flag} {{dmg2=[[0]]}} {{dmg2type=}} {{crit1=[[1d8]]}} {{crit2=[[0]]}} @{saveflag} {{desc=@{atk_desc}}} @{hldmg} {{spelllevel=@{spelllevel}}} {{innate=@{spell_innate}}} {{globaldamage=[[0]]}} {{globaldamagecrit=[[0]]}} {{globaldamagetype=@{global_damage_mod_type}}} @{charname_output}", + "max": "", + "id": "-MEzlmlFgcnvlwlwvtsQ" + }, + { + "name": "repeating_attack_-MEzljeo418h8clkQAHG_atkbonus", + "current": "+4", + "max": "", + "id": "-MEzlmlJREka6rbT-uVA" + }, + { + "name": "repeating_attack_-MEzljeo418h8clkQAHG_rollbase", + "current": "@{wtype}&{template:atk} {{mod=@{atkbonus}}} {{rname=[@{atkname}](~repeating_attack_attack_dmg)}} {{rnamec=[@{atkname}](~repeating_attack_attack_crit)}} {{r1=[[@{d20}cs>@{atkcritrange} + 2[DEX] + 2[PROF]]]}} @{rtype}cs>@{atkcritrange} + 2[DEX] + 2[PROF]]]}} {{range=@{atkrange}}} {{desc=@{atk_desc}}} {{spelllevel=@{spelllevel}}} {{innate=@{spell_innate}}} {{globalattack=@{global_attack_mod}}} ammo=@{ammo} @{charname_output}", + "max": "", + "id": "-MEzlmlMIycnLmgmgjRP" + }, + { + "name": "repeating_attack_-MEzljeo418h8clkQAHG_atkattr_base", + "current": "@{dexterity_mod}", + "max": "", + "id": "-MEzlmzrH--i_9POPh5h" + }, + { + "name": "repeating_attack_-MEzljeo418h8clkQAHG_atkrange", + "current": "80/320 ft", + "max": "", + "id": "-MEzlovr6JR9No9BTalb" + }, + { + "name": "repeating_attack_-MEzljeo418h8clkQAHG_dmgbase", + "current": "1d8", + "max": "", + "id": "-MEzlp_nJPbYhQ7SOw1S" + }, + { + "name": "repeating_attack_-MEzljeo418h8clkQAHG_dmgattr", + "current": "@{dexterity_mod}", + "max": "", + "id": "-MEzlppoJcFAdyxxpm1y" + }, + { + "name": "repeating_attack_-MEzljeo418h8clkQAHG_dmgtype", + "current": "Piercing", + "max": "", + "id": "-MEzlrobtiPBbKJE91ph" + }, + { + "name": "repeating_attack_-MEzljeo418h8clkQAHG_atk_desc", + "current": "A well-made light crossbow with an intricately carved dragon on the stock.", + "max": "", + "id": "-MEzm1wNLEob8Hk-gLas" + }, + { + "name": "repeating_attack_-MEzljeo418h8clkQAHG_options-flag", + "current": "0", + "max": "", + "id": "-MEzm1xtpKHXMunP1WQx" + }, + { + "name": "repeating_inventory_-MEzm2WFM-H49XdWECvh_itemname", + "current": "Spear", + "max": "", + "id": "-MEzm3TYbs3JitctS--Q" + }, + { + "name": "repeating_inventory_-MEzm2WFM-H49XdWECvh_itemweight", + "current": "3", + "max": "", + "id": "-MEzm4glMn2JTKoKgE5P" + }, + { + "name": "repeating_inventory_-MEzm52I6NTdW8y34Gj6_itemname", + "current": "Light Crossbow", + "max": "", + "id": "-MEzm5yomIzHnOXGvhWN" + }, + { + "name": "repeating_inventory_-MEzm52I6NTdW8y34Gj6_itemweight", + "current": "5", + "max": "", + "id": "-MEzm7VYzKBNCpfYJKvm" + }, + { + "name": "repeating_inventory_-MEzm7gwb6-Zf9ZptrJu_itemcount", + "current": "20", + "max": "", + "id": "-MEzm8LyIe_aAMm2PEEE" + }, + { + "name": "repeating_inventory_-MEzm7gwb6-Zf9ZptrJu_itemname", + "current": "Crossbow bolt", + "max": "", + "id": "-MEzm9RpdLCUI7q1O_Vi" + }, + { + "name": "repeating_inventory_-MEzmF5tplwx3YZj4RCM_itemname", + "current": "Thieves' Tools", + "max": "", + "id": "-MEzmGmxCp2SdL8X5fMi" + }, + { + "name": "repeating_inventory_-MEzmF5tplwx3YZj4RCM_itemweight", + "current": "1", + "max": "", + "id": "-MEzmJi5ZtxFdFH_bNWb" + }, + { + "name": "repeating_inventory_-MEzmK0JMZc8w5xLo5m2_itemname", + "current": "Dungeoneering Pack", + "max": "", + "id": "-MEzmML568vfqqYK0x1Z" + }, + { + "name": "repeating_inventory_-MEzmK0JMZc8w5xLo5m2_itemweight", + "current": "61.5", + "max": "", + "id": "-MEzmOwnvfYhmLciZTgm" + }, + { + "name": "treasure", + "current": "Dungeoneer's Pack:\n1 backpack\n1 crowbar\n1 hammer\n10 pitons\n10 torches\n1 tinderbox\n10 days' rations\n1 waterskin\n50 ft hempen rope\n\n1 vial of antitoxin\nLedger (Background: Rival Intern)\n\nBook written in Dwarvish - has symbol of Cult of Crushing Wave\n\n4 iron bars - 1ft long (currency of Mirabar; worth 5GP a piece\n\n1 bell\nsome chalk\n1 saw\n26 probably counterfeit\n1 Driftglobe", + "max": "", + "id": "-MEzmZcTbzT_DUF4qcrY" + }, + { + "name": "repeating_tool_-MEznb2Le2oyfZHDTL3E_toolname", + "current": "Glassblower's Tools", + "max": "", + "id": "-MEzne0HMLDN1J3c5veG" + }, + { + "name": "repeating_tool_-MEznb2Le2oyfZHDTL3E_toolattr", + "current": "QUERY", + "max": "", + "id": "-MEzne3-eL391s_oKln3" + }, + { + "name": "repeating_tool_-MEznb2Le2oyfZHDTL3E_toolbonus", + "current": "?{Attribute?|Strength,@{strength_mod}|Dexterity,@{dexterity_mod}|Constitution,@{constitution_mod}|Intelligence,@{intelligence_mod}|Wisdom,@{wisdom_mod}|Charisma,@{charisma_mod}}+0+2", + "max": "", + "id": "-MEzne33cGXWK7eGp1Cp" + }, + { + "name": "repeating_tool_-MEznb2Le2oyfZHDTL3E_toolbonus_display", + "current": "?", + "max": "", + "id": "-MEzne37zwfRZTqDVBTN" + }, + { + "name": "repeating_tool_-MEznb2Le2oyfZHDTL3E_toolroll", + "current": "@{wtype}&{template:simple} {{rname=@{toolname}}} {{mod=@{toolbonus}}} {{r1=[[@{d20}+@{toolbonus}[Mods]@{pbd_safe}]]}} {{always=1}} {{r2=[[@{d20}+@{toolbonus}[Mods]@{pbd_safe}]]}} {{global=@{global_skill_mod}}} @{charname_output}", + "max": "", + "id": "-MEzne3C-oECMV-lRNdf" + }, + { + "name": "repeating_tool_-MEznb2Le2oyfZHDTL3E_toolattr_base", + "current": "?{Attribute?|Strength,@{strength_mod}|Dexterity,@{dexterity_mod}|Constitution,@{constitution_mod}|Intelligence,@{intelligence_mod}|Wisdom,@{wisdom_mod}|Charisma,@{charisma_mod}}", + "max": "", + "id": "-MEznfAH4kphyBYhmXEf" + }, + { + "name": "repeating_tool_-MEznb2Le2oyfZHDTL3E_options-flag", + "current": "0", + "max": "", + "id": "-MEznfocnw4oecGQrjAL" + }, + { + "name": "repeating_traits_-MEzoAozFTzM-v-0lllG_source", + "current": "Class", + "max": "", + "id": "-MEzoCDoqXpl2dCVrero" + }, + { + "name": "repeating_traits_-MEzoAozFTzM-v-0lllG_name", + "current": "Alchemist's Supplies Proficiency", + "max": "", + "id": "-MEzoFsnxLHIprnI0Ycb" + }, + { + "name": "repeating_traits_-MEzoAozFTzM-v-0lllG_source_type", + "current": "Artificer Proficiency", + "max": "", + "id": "-MEzoHfjnmA2Kgq6NWKB" + }, + { + "name": "repeating_traits_-MEzoAozFTzM-v-0lllG_description", + "current": "Alchemist's supplies enable a character to produce useful concoctions, such as acid or alchemist's fire.\n\nComponents. Alchemist's supplies include two glass beakers, a metal frame to hold a beaker in place over an open flame, a glass stirring rod, a small mortar and pestle, and a pouch of common alchemical ingredients, including salt, powdered iron, and purified water.\n\nArcana. Proficiency with alchemist's supplies allows you to unlock more information on Arcana checks involving potions and similar materials.\n\nInvestigation. When you inspect an area for clues, proficiency with alchemist's supplies grants additional insight into any chemicals or other substances that might have been used in the area.\n\nAlchemical Crafting. You can use this tool proficiency to create alchemical items. A character can spend money to collect raw materials, which weigh 1 pound for every 50 gp spent. The DM can allow a character to make a check using the indicated skill with advantage. As part of a long rest, you can use alchemist's supplies to make one dose of acid, alchemist's fire, antitoxin, oil, perfume, or soap. Subtract half the value of the created item from the total gp worth of raw materials you are carrying.\n\nAlchemist's Supplies\nActivity\tDC\nCreate a puff of thick smoke\t10\nIdentify a poison\t10\nIdentify a substance\t15\nStart a fire\t15\nNeutralize acid\t20", + "max": "", + "id": "-MEzocyoBDCaefXpy648" + }, + { + "name": "repeating_traits_-MEzoAozFTzM-v-0lllG_options-flag", + "current": "0", + "max": "", + "id": "-MEzod-QyG7nSQ5XexvE" + }, + { + "name": "repeating_traits_-MEzoAozFTzM-v-0lllG_display_flag", + "current": "on", + "max": "", + "id": "-MEzohJw8biTFej9GRjU" + }, + { + "name": "repeating_traits_-MEzohvxux6YzQJ95rpU_name", + "current": "Glassblower's Tools Proficiency", + "max": "", + "id": "-MEzoqQ_3YSAn0_VWgvR" + }, + { + "name": "repeating_traits_-MEzohvxux6YzQJ95rpU_description", + "current": "Someone who is proficient with glassblower's tools has not only the ability to shape glass, but also specialized knowledge of the methods used to produce glass objects.\n\nComponents. The tools include a blowpipe, a small marver, blocks, and tweezers. You need a source of heat to work glass.\n\nArcana, History. Your knowledge of glassmaking techniques aids you when you examine glass objects, such as potion bottles or glass items found in a treasure hoard. For instance, you can study how a glass potion bottle has been changed by its contents to help determine a potion's effects. (A potion might leave behind a residue, deform the glass, or stain it.)\n\nInvestigation. When you study an area, your knowledge can aid you if the clues include broken glass or glass objects.\n\nIdentify Weakness. With 1 minute of study, you can identify the weak points in a glass object. Any damage dealt to the object by striking a weak spot is doubled.\n\nGlassblower's Tools\nActivity\tDC\nIdentify source of glass\t10\nDetermine what a glass object once held\t20\n", + "max": "", + "id": "-MEzosH0YwsR1fxdOCln" + }, + { + "name": "repeating_traits_-MEzohvxux6YzQJ95rpU_source_type", + "current": "Rock Gnome", + "max": "", + "id": "-MEzoyVzbRbW8Rmttb_c" + }, + { + "name": "repeating_traits_-MEzohvxux6YzQJ95rpU_options-flag", + "current": "0", + "max": "", + "id": "-MEzp3Rq80bSfcPbkm7E" + }, + { + "name": "repeating_traits_-MEzohvxux6YzQJ95rpU_display_flag", + "current": "on", + "max": "", + "id": "-MEzpG7x_jdXoawvyhgb" + }, + { + "name": "repeating_traits_-MEzpLf1z3OshnCiV10Z_name", + "current": "Tinker's Tools Proficiency", + "max": "", + "id": "-MEzpNj2qpMDLiYpaK8z" + }, + { + "name": "repeating_traits_-MEzpLf1z3OshnCiV10Z_source", + "current": "Class", + "max": "", + "id": "-MEzpO4BRZiJ2rm-f1Mi" + }, + { + "name": "repeating_traits_-MEzpLf1z3OshnCiV10Z_source_type", + "current": "Artificer Proficiency", + "max": "", + "id": "-MEzpQBnrZpLU10qHPvE" + }, + { + "name": "repeating_traits_-MEzpLf1z3OshnCiV10Z_description", + "current": "A set of tinker's tools is designed to enable you to repair many mundane objects. Though you can't manufacture much with tinker's tools, you can mend torn clothes, sharpen a worn sword, and patch a tattered suit of chain mail.\n\nComponents. Tinker's tools include a variety of hand tools, thread, needles, a whetstone, scraps of cloth and leather, and a small pot of glue.\n\nHistory. You can determine the age and origin of objects, even if you have only a few pieces remaining from the original.\n\nInvestigation. When you inspect a damaged object, you gain knowledge of how it was damaged and how long ago.\n\nRepair. You can restore 10 hit points to a damaged object for each hour of work. For any object, you need access to the raw materials required to repair it. For metal objects, you need access to an open flame hot enough to make the metal pliable.\n\nTinker's Tools\nActivity\tDC\nTemporarily repair a disabled device\t10\nRepair an item in half the time\t15\nImprovise a temporary item using scraps\t20", + "max": "", + "id": "-MEzpV5MottOOOp94vhx" + }, + { + "name": "repeating_traits_-MEzpLf1z3OshnCiV10Z_options-flag", + "current": "0", + "max": "", + "id": "-MEzpV7vE0lDoIjtBdt9" + }, + { + "name": "repeating_traits_-MEzpLf1z3OshnCiV10Z_display_flag", + "current": "on", + "max": "", + "id": "-MEzpYFC3GK_nW5tWs9n" + }, + { + "name": "repeating_traits_-MEzpaOUDcLkCImWH3wp_name", + "current": "Woodcarver's Tools Proficiency", + "max": "", + "id": "-MEzpdtxGyo23bEFCqk-" + }, + { + "name": "repeating_traits_-MEzpaOUDcLkCImWH3wp_description", + "current": "Woodcarver's tools allow you to craft intricate objects from wood, such as wooden tokens or arrows.\n\nComponents. Woodcarver's tools consist of a knife, a gouge, and a small saw.\n\nArcana, History. Your expertise lends you additional insight when you examine wooden objects, such as figurines or arrows.\n\nNature. Your knowledge of wooden objects gives you some added insight when you examine trees.\nRepair. As part of a short rest, you can repair a single damaged wooden object.\n\nCraft Arrows. As part of a short rest, you can craft up to five arrows. As part of a long rest, you can craft up to twenty. You must have enough wood on hand to produce them.\n\nWoodcarver's Tools\nActivity\tDC\nCraft a small wooden figurine\t10\nCarve an intricate pattern in wood\t15", + "max": "", + "id": "-MEzq5FZa8gQhUGY9orx" + }, + { + "name": "repeating_traits_-MEzpaOUDcLkCImWH3wp_source", + "current": "Racial", + "max": "", + "id": "-MEzqDBDp5RBkWjT75wX" + }, + { + "name": "repeating_traits_-MEzpaOUDcLkCImWH3wp_source_type", + "current": "Rock Gnome", + "max": "", + "id": "-MEzqHLnddUbt33fu9ZZ" + }, + { + "name": "repeating_traits_-MEzpaOUDcLkCImWH3wp_options-flag", + "current": "0", + "max": "", + "id": "-MEzqLH4F9j8ViSByomO" + }, + { + "name": "repeating_traits_-MEzpaOUDcLkCImWH3wp_display_flag", + "current": "on", + "max": "", + "id": "-MEzqM56NR2dfcMtVPsI" + }, + { + "name": "repeating_traits_-MEzohvxux6YzQJ95rpU_source", + "current": "Background", + "max": "", + "id": "-MEzqNM3U5ZFZUuATH7p" + }, + { + "name": "repeating_inventory_-MEzqT455kiDBiNGW-zj_itemname", + "current": "Tinker's Tools", + "max": "", + "id": "-MEzqUMKGzJP_lSdRwUP" + }, + { + "name": "repeating_inventory_-MEzqT455kiDBiNGW-zj_itemweight", + "current": "10", + "max": "", + "id": "-MEzqUegDueTsBOw9kMF" + }, + { + "name": "repeating_inventory_-MEzt2BFQGo21DZmQLSh_itemname", + "current": "Fine clothes", + "max": "", + "id": "-MEzt3EZmsl_YHiLvDba" + }, + { + "name": "repeating_inventory_-MEzt2BFQGo21DZmQLSh_itemweight", + "current": "6", + "max": "", + "id": "-MEzt3u3cFp6Epfw77fR" + }, + { + "name": "repeating_inventory_-MEzu7jfrxLYw2tfvJed_itemname", + "current": "Woodcarver's Tools", + "max": "", + "id": "-MEzu93faGW9RmrZQzWW" + }, + { + "name": "repeating_inventory_-MEzu7jfrxLYw2tfvJed_itemweight", + "current": "5", + "max": "", + "id": "-MEzu9Y6MOTNKK-IfQJT" + }, + { + "name": "repeating_inventory_-MEzxGW-Q6jjyYmLVQhX_itemname", + "current": "Traveler's Clothes", + "max": "", + "id": "-MEzxHzHCkKqG6Jj0hNO" + }, + { + "name": "repeating_inventory_-MEzxGW-Q6jjyYmLVQhX_itemweight", + "current": "4", + "max": "", + "id": "-MEzxIPsWqxRXSg1r2Pz" + }, + { + "name": "global_damage_mod_roll", + "current": "", + "max": "", + "id": "-MF8xTVoLQryBEBw4aRM" + }, + { + "name": "global_damage_mod_crit", + "current": "", + "max": "", + "id": "-MF8xTVtsUGDze7h-8hU" + }, + { + "name": "global_damage_mod_type", + "current": "", + "max": "", + "id": "-MF8xTVwo0sTCOf2097j" + }, + { + "name": "repeating_spell-cantrip_-MEzZFTE7K1jP091IBKm_spellsavesuccess", + "current": "", + "max": "", + "id": "-MF8xTanHvWlTOGN50Xd" + }, + { + "name": "repeating_spell-cantrip_-MEzZFTE7K1jP091IBKm_spelldamage2", + "current": "", + "max": "", + "id": "-MF8xTaslyRVSFXFSAz-" + }, + { + "name": "repeating_spell-cantrip_-MEzZFTE7K1jP091IBKm_spelldamagetype2", + "current": "", + "max": "", + "id": "-MF8xTaw6AMJGC9KZnYe" + }, + { + "name": "repeating_spell-cantrip_-MEzZFTE7K1jP091IBKm_spellsave", + "current": "", + "max": "", + "id": "-MF8xTb-whtF0zCF66eG" + }, + { + "name": "ep", + "current": "42", + "max": "", + "id": "-MFY6SgkRGsCf1PEwu3j" + }, + { + "name": "repeating_spell-1_-MEzcu1NARqns0rs8VOM_spellprepared", + "current": "1", + "max": "", + "id": "-MFYOOd2deyGL7INpvAh" + }, + { + "name": "repeating_spell-1_-MEzbKDjAizIGJiL-ZGI_spellprepared", + "current": "0", + "max": "", + "id": "-MFYOTE3gEjmz90aNQMq" + }, + { + "name": "cp", + "current": "24", + "max": "", + "id": "-MFYjhQmTLoOVBcaI-7y" + }, + { + "name": "deathsave_succ1", + "current": "0", + "max": "", + "id": "-MHEOAuZBnp8toi3zjXu" + }, + { + "name": "lpmancer_status", + "current": "", + "max": "", + "id": "-MHEgFVV8j7G4QVcCHr0" + }, + { + "name": "repeating_traits_-MHEjPgiFPgVghRTH0ns_source", + "current": "Class", + "max": "", + "id": "-MHEjQqfG5dg1rxQfl7i" + }, + { + "name": "repeating_traits_-MHEjPgiFPgVghRTH0ns_name", + "current": "Infusions", + "max": "", + "id": "-MHEjSa7AR9fDk8n6JBV" + }, + { + "name": "repeating_traits_-MHEjPgiFPgVghRTH0ns_source_type", + "current": "Artificer Class", + "max": "", + "id": "-MHEjU6cmusUD1Nczq9i" + }, + { + "name": "repeating_traits_-MHEjPgiFPgVghRTH0ns_description", + "current": "At 2nd level, you gain the ability to imbue mundane items with certain magical infusions. The magic items you create with this feature are effectively prototypes of permanent items.\n\nCan infuse 2 items at level 2.\n4 Infusions known:\n1) Repeating Shot: This magic weapon grants a +1 bonus to attack and damage rolls made with it when it's used to make a ranged attack, and it ignores the loading property if it has it. If you load no ammunition in the weapon, it produces its own, automatically creating one piece of magic ammunition when you make a ranged attack with it. The ammunition created by the weapon vanishes the instant after it hits or misses a target.(requires attunement)\n2) Enhanced Defense: A creature gains a +1 bonus to Armor Class while wearing (armor) or wielding (shield) the infused item.\nThe bonus increases to +2 when you reach 10th level in this class.\n3) Enhanced Weapon: This magic weapon grants a +1 bonus to attack and damage rolls made with it.\nThe bonus increases to +2 when you reach 10th level in this class.\n4) Replicate magic item: Alchemy Jug", + "max": "", + "id": "-MHEjixRWv9rn9gnG-iM" + }, + { + "name": "repeating_attack_-MHEkLDTH2efby7ecFUC_atkname", + "current": "I. Light Crossbow", + "max": "", + "id": "-MHEkOZr_DaneXWrfyQA" + }, + { + "name": "repeating_attack_-MHEkLDTH2efby7ecFUC_atkdmgtype", + "current": "1d8+3 Piercing ", + "max": "", + "id": "-MHEkOcGvFdebEqlq8jR" + }, + { + "name": "repeating_attack_-MHEkLDTH2efby7ecFUC_rollbase_dmg", + "current": "@{wtype}&{template:dmg} {{rname=@{atkname}}} @{atkflag} {{range=@{atkrange}}} @{dmgflag} {{dmg1=[[1d8 + 2[DEX] + 1[MOD]]]}} {{dmg1type=Piercing}} @{dmg2flag} {{dmg2=[[0]]}} {{dmg2type=}} @{saveflag} {{desc=@{atk_desc}}} @{hldmg} {{spelllevel=@{spelllevel}}} {{innate=@{spell_innate}}} {{globaldamage=[[0]]}} {{globaldamagetype=@{global_damage_mod_type}}} @{charname_output}", + "max": "", + "id": "-MHEkOcLeYrgzXpV5-oh" + }, + { + "name": "repeating_attack_-MHEkLDTH2efby7ecFUC_rollbase_crit", + "current": "@{wtype}&{template:dmg} {{crit=1}} {{rname=@{atkname}}} @{atkflag} {{range=@{atkrange}}} @{dmgflag} {{dmg1=[[1d8 + 2[DEX] + 1[MOD]]]}} {{dmg1type=Piercing}} @{dmg2flag} {{dmg2=[[0]]}} {{dmg2type=}} {{crit1=[[1d8]]}} {{crit2=[[0]]}} @{saveflag} {{desc=@{atk_desc}}} @{hldmg} {{spelllevel=@{spelllevel}}} {{innate=@{spell_innate}}} {{globaldamage=[[0]]}} {{globaldamagecrit=[[0]]}} {{globaldamagetype=@{global_damage_mod_type}}} @{charname_output}", + "max": "", + "id": "-MHEkOcQ2coegaDlFAHw" + }, + { + "name": "repeating_attack_-MHEkLDTH2efby7ecFUC_atkbonus", + "current": "+5", + "max": "", + "id": "-MHEkOcT98fgGrteqYgC" + }, + { + "name": "repeating_attack_-MHEkLDTH2efby7ecFUC_rollbase", + "current": "@{wtype}&{template:atk} {{mod=@{atkbonus}}} {{rname=[@{atkname}](~repeating_attack_attack_dmg)}} {{rnamec=[@{atkname}](~repeating_attack_attack_crit)}} {{r1=[[@{d20}cs>@{atkcritrange} + 2[DEX] + 1[MOD] + 2[PROF]]]}} @{rtype}cs>@{atkcritrange} + 2[DEX] + 1[MOD] + 2[PROF]]]}} {{range=@{atkrange}}} {{desc=@{atk_desc}}} {{spelllevel=@{spelllevel}}} {{innate=@{spell_innate}}} {{globalattack=@{global_attack_mod}}} ammo=@{ammo} @{charname_output}", + "max": "", + "id": "-MHEkOcW1zguev1OQ_Qa" + }, + { + "name": "repeating_attack_-MHEkLDTH2efby7ecFUC_atkattr_base", + "current": "@{dexterity_mod}", + "max": "", + "id": "-MHEkOlkoMgSKGaySCJ7" + }, + { + "name": "repeating_attack_-MHEkLDTH2efby7ecFUC_atkmod", + "current": "1", + "max": "", + "id": "-MHEkSCk5E60W_wczeKR" + }, + { + "name": "repeating_attack_-MHEkLDTH2efby7ecFUC_dmgattr", + "current": "@{dexterity_mod}", + "max": "", + "id": "-MHEkSyKDN7JpgZsJ5xm" + }, + { + "name": "repeating_attack_-MHEkLDTH2efby7ecFUC_dmgbase", + "current": "1d8", + "max": "", + "id": "-MHEkUeW0P8SNwmp0ANo" + }, + { + "name": "repeating_attack_-MHEkLDTH2efby7ecFUC_dmgtype", + "current": "Piercing", + "max": "", + "id": "-MHEkWknTLQqUBtnux-S" + }, + { + "name": "repeating_attack_-MHEkLDTH2efby7ecFUC_atk_desc", + "current": "Light crossbow infused with Repeating Shot", + "max": "", + "id": "-MHEkhLCQ-LCoD759R5T" + }, + { + "name": "repeating_attack_-MHEkLDTH2efby7ecFUC_options-flag", + "current": "0", + "max": "", + "id": "-MHElJK0jGnAPXJMSJSK" + }, + { + "name": "repeating_attack_-MHEkLDTH2efby7ecFUC_dmgmod", + "current": "1", + "max": "", + "id": "-MHElMGFaGuYqVtsPqfi" + }, + { + "name": "repeating_traits_-MHEjPgiFPgVghRTH0ns_options-flag", + "current": "0", + "max": "", + "id": "-MHEpJnKZHnogxiSfxRO" + }, + { + "name": "repeating_attack_-MHEpLa0vX9QUGIuvGDK_atkname", + "current": "I. Spear, melee, 1h", + "max": "", + "id": "-MHEpR1lKQ1YS0ZwKW9I" + }, + { + "name": "repeating_attack_-MHEpLa0vX9QUGIuvGDK_atkdmgtype", + "current": "1d6+2 ", + "max": "", + "id": "-MHEpRBr3t_63Ma2h1l0" + }, + { + "name": "repeating_attack_-MHEpLa0vX9QUGIuvGDK_rollbase_dmg", + "current": "@{wtype}&{template:dmg} {{rname=@{atkname}}} @{atkflag} {{range=@{atkrange}}} @{dmgflag} {{dmg1=[[1d6 + 1[STR] + 1[MOD]]]}} {{dmg1type=}} @{dmg2flag} {{dmg2=[[0]]}} {{dmg2type=}} @{saveflag} {{desc=@{atk_desc}}} @{hldmg} {{spelllevel=@{spelllevel}}} {{innate=@{spell_innate}}} {{globaldamage=[[0]]}} {{globaldamagetype=@{global_damage_mod_type}}} @{charname_output}", + "max": "", + "id": "-MHEpRBvnC-9PsXfp45e" + }, + { + "name": "repeating_attack_-MHEpLa0vX9QUGIuvGDK_rollbase_crit", + "current": "@{wtype}&{template:dmg} {{crit=1}} {{rname=@{atkname}}} @{atkflag} {{range=@{atkrange}}} @{dmgflag} {{dmg1=[[1d6 + 1[STR] + 1[MOD]]]}} {{dmg1type=}} @{dmg2flag} {{dmg2=[[0]]}} {{dmg2type=}} {{crit1=[[1d6]]}} {{crit2=[[0]]}} @{saveflag} {{desc=@{atk_desc}}} @{hldmg} {{spelllevel=@{spelllevel}}} {{innate=@{spell_innate}}} {{globaldamage=[[0]]}} {{globaldamagecrit=[[0]]}} {{globaldamagetype=@{global_damage_mod_type}}} @{charname_output}", + "max": "", + "id": "-MHEpRBy3xTlGfj_6NPn" + }, + { + "name": "repeating_attack_-MHEpLa0vX9QUGIuvGDK_atkbonus", + "current": "+4", + "max": "", + "id": "-MHEpRC0hzYU3KxzryRP" + }, + { + "name": "repeating_attack_-MHEpLa0vX9QUGIuvGDK_rollbase", + "current": "@{wtype}&{template:atk} {{mod=@{atkbonus}}} {{rname=[@{atkname}](~repeating_attack_attack_dmg)}} {{rnamec=[@{atkname}](~repeating_attack_attack_crit)}} {{r1=[[@{d20}cs>@{atkcritrange} + 1[STR] + 1[MOD] + 2[PROF]]]}} @{rtype}cs>@{atkcritrange} + 1[STR] + 1[MOD] + 2[PROF]]]}} {{range=@{atkrange}}} {{desc=@{atk_desc}}} {{spelllevel=@{spelllevel}}} {{innate=@{spell_innate}}} {{globalattack=@{global_attack_mod}}} ammo=@{ammo} @{charname_output}", + "max": "", + "id": "-MHEpRC54jcR4moRvDM-" + }, + { + "name": "repeating_attack_-MHEpLa0vX9QUGIuvGDK_atkcritrange", + "current": "", + "max": "", + "id": "-MHEpRtiFL9cz7yYPG3I" + }, + { + "name": "repeating_attack_-MHEpLa0vX9QUGIuvGDK_atkmod", + "current": "1", + "max": "", + "id": "-MHEpT_Ln41xP7SvkaX6" + }, + { + "name": "repeating_attack_-MHEpLa0vX9QUGIuvGDK_dmgbase", + "current": "1d6", + "max": "", + "id": "-MHEpVApFg-1Tur3P-0y" + }, + { + "name": "repeating_attack_-MHEpLa0vX9QUGIuvGDK_dmgmod", + "current": "1", + "max": "", + "id": "-MHEpW3YaLZ52kN6pBpm" + }, + { + "name": "repeating_attack_-MHEpLa0vX9QUGIuvGDK_atk_desc", + "current": "Definitely not a javelin, now infused with alchemical energy.", + "max": "", + "id": "-MHEpak0AJ7zmE2l_kJD" + }, + { + "name": "repeating_attack_-MHEpLa0vX9QUGIuvGDK_options-flag", + "current": "0", + "max": "", + "id": "-MHEpalFEnPk93KtxMbS" + }, + { + "name": "repeating_attack_-MHEpdZ356Ye80XD3OvW_atkname", + "current": "I. Spear, melee, 2h", + "max": "", + "id": "-MHEpgnLQYd_STKi_Go_" + }, + { + "name": "repeating_attack_-MHEpdZ356Ye80XD3OvW_atkdmgtype", + "current": "1d8+2 ", + "max": "", + "id": "-MHEpgzyPiIhLei1j4be" + }, + { + "name": "repeating_attack_-MHEpdZ356Ye80XD3OvW_rollbase_dmg", + "current": "@{wtype}&{template:dmg} {{rname=@{atkname}}} @{atkflag} {{range=@{atkrange}}} @{dmgflag} {{dmg1=[[1d8 + 1[STR] + 1[MOD]]]}} {{dmg1type=}} @{dmg2flag} {{dmg2=[[0]]}} {{dmg2type=}} @{saveflag} {{desc=@{atk_desc}}} @{hldmg} {{spelllevel=@{spelllevel}}} {{innate=@{spell_innate}}} {{globaldamage=[[0]]}} {{globaldamagetype=@{global_damage_mod_type}}} @{charname_output}", + "max": "", + "id": "-MHEph-36ojAOBr2cVsr" + }, + { + "name": "repeating_attack_-MHEpdZ356Ye80XD3OvW_rollbase_crit", + "current": "@{wtype}&{template:dmg} {{crit=1}} {{rname=@{atkname}}} @{atkflag} {{range=@{atkrange}}} @{dmgflag} {{dmg1=[[1d8 + 1[STR] + 1[MOD]]]}} {{dmg1type=}} @{dmg2flag} {{dmg2=[[0]]}} {{dmg2type=}} {{crit1=[[1d8]]}} {{crit2=[[0]]}} @{saveflag} {{desc=@{atk_desc}}} @{hldmg} {{spelllevel=@{spelllevel}}} {{innate=@{spell_innate}}} {{globaldamage=[[0]]}} {{globaldamagecrit=[[0]]}} {{globaldamagetype=@{global_damage_mod_type}}} @{charname_output}", + "max": "", + "id": "-MHEph-7tilGiC-zYz9W" + }, + { + "name": "repeating_attack_-MHEpdZ356Ye80XD3OvW_atkbonus", + "current": "+4", + "max": "", + "id": "-MHEph-BI-tz_0NRooof" + }, + { + "name": "repeating_attack_-MHEpdZ356Ye80XD3OvW_rollbase", + "current": "@{wtype}&{template:atk} {{mod=@{atkbonus}}} {{rname=[@{atkname}](~repeating_attack_attack_dmg)}} {{rnamec=[@{atkname}](~repeating_attack_attack_crit)}} {{r1=[[@{d20}cs>@{atkcritrange} + 1[STR] + 1[MOD] + 2[PROF]]]}} @{rtype}cs>@{atkcritrange} + 1[STR] + 1[MOD] + 2[PROF]]]}} {{range=@{atkrange}}} {{desc=@{atk_desc}}} {{spelllevel=@{spelllevel}}} {{innate=@{spell_innate}}} {{globalattack=@{global_attack_mod}}} ammo=@{ammo} @{charname_output}", + "max": "", + "id": "-MHEph-EaJoz4_6k-Fnd" + }, + { + "name": "repeating_attack_-MHEpdZ356Ye80XD3OvW_dmgbase", + "current": "1d8", + "max": "", + "id": "-MHEpiEQXWGmo62Xf8VB" + }, + { + "name": "repeating_attack_-MHEpdZ356Ye80XD3OvW_dmgmod", + "current": "1", + "max": "", + "id": "-MHEpipPun6S70r6AzGs" + }, + { + "name": "repeating_attack_-MHEpdZ356Ye80XD3OvW_atkmod", + "current": "1", + "max": "", + "id": "-MHEpkxMgfVfpF7EfFqk" + }, + { + "name": "repeating_attack_-MHEpdZ356Ye80XD3OvW_atk_desc", + "current": "Definitely not a javelin, now infused with alchemical energy.", + "max": "", + "id": "-MHEpqttbTgOfPCk2h9U" + }, + { + "name": "repeating_attack_-MHEpdZ356Ye80XD3OvW_options-flag", + "current": "0", + "max": "", + "id": "-MHEpquu9JMZiPoc_WVN" + }, + { + "name": "repeating_attack_-MHEprMrbxdEwKbAot9h_atkname", + "current": "I. Spear, ranged", + "max": "", + "id": "-MHEptqyl0j7G7U6lBGL" + }, + { + "name": "repeating_attack_-MHEprMrbxdEwKbAot9h_atkdmgtype", + "current": "1d6+2 ", + "max": "", + "id": "-MHEptvEVjSVFUk65c3N" + }, + { + "name": "repeating_attack_-MHEprMrbxdEwKbAot9h_rollbase_dmg", + "current": "@{wtype}&{template:dmg} {{rname=@{atkname}}} @{atkflag} {{range=@{atkrange}}} @{dmgflag} {{dmg1=[[1d6 + 1[STR] + 1[MOD]]]}} {{dmg1type=}} @{dmg2flag} {{dmg2=[[0]]}} {{dmg2type=}} @{saveflag} {{desc=@{atk_desc}}} @{hldmg} {{spelllevel=@{spelllevel}}} {{innate=@{spell_innate}}} {{globaldamage=[[0]]}} {{globaldamagetype=@{global_damage_mod_type}}} @{charname_output}", + "max": "", + "id": "-MHEptvLzn_WpLI88qet" + }, + { + "name": "repeating_attack_-MHEprMrbxdEwKbAot9h_rollbase_crit", + "current": "@{wtype}&{template:dmg} {{crit=1}} {{rname=@{atkname}}} @{atkflag} {{range=@{atkrange}}} @{dmgflag} {{dmg1=[[1d6 + 1[STR] + 1[MOD]]]}} {{dmg1type=}} @{dmg2flag} {{dmg2=[[0]]}} {{dmg2type=}} {{crit1=[[1d6]]}} {{crit2=[[0]]}} @{saveflag} {{desc=@{atk_desc}}} @{hldmg} {{spelllevel=@{spelllevel}}} {{innate=@{spell_innate}}} {{globaldamage=[[0]]}} {{globaldamagecrit=[[0]]}} {{globaldamagetype=@{global_damage_mod_type}}} @{charname_output}", + "max": "", + "id": "-MHEptvPYqZKnZ4ogXEJ" + }, + { + "name": "repeating_attack_-MHEprMrbxdEwKbAot9h_atkbonus", + "current": "+4", + "max": "", + "id": "-MHEptvUUCeOCuNd7Zan" + }, + { + "name": "repeating_attack_-MHEprMrbxdEwKbAot9h_rollbase", + "current": "@{wtype}&{template:atk} {{mod=@{atkbonus}}} {{rname=[@{atkname}](~repeating_attack_attack_dmg)}} {{rnamec=[@{atkname}](~repeating_attack_attack_crit)}} {{r1=[[@{d20}cs>@{atkcritrange} + 1[STR] + 1[MOD] + 2[PROF]]]}} @{rtype}cs>@{atkcritrange} + 1[STR] + 1[MOD] + 2[PROF]]]}} {{range=@{atkrange}}} {{desc=@{atk_desc}}} {{spelllevel=@{spelllevel}}} {{innate=@{spell_innate}}} {{globalattack=@{global_attack_mod}}} ammo=@{ammo} @{charname_output}", + "max": "", + "id": "-MHEptvXlnOx1s8nmrX2" + }, + { + "name": "repeating_attack_-MHEprMrbxdEwKbAot9h_atkmod", + "current": "1", + "max": "", + "id": "-MHEpukFHovQajY1rWWh" + }, + { + "name": "repeating_attack_-MHEprMrbxdEwKbAot9h_dmgbase", + "current": "1d6", + "max": "", + "id": "-MHEpw3FBpagNqDWLwul" + }, + { + "name": "repeating_attack_-MHEprMrbxdEwKbAot9h_dmgmod", + "current": "1", + "max": "", + "id": "-MHEpwlPkFLxGgTK_jvN" + }, + { + "name": "repeating_attack_-MHEprMrbxdEwKbAot9h_atk_desc", + "current": "Definitely not an upcycled javelin, now infused with alchemical energy.", + "max": "", + "id": "-MHEq0DkaEa9RxgWLY5Q" + }, + { + "name": "repeating_attack_-MHEprMrbxdEwKbAot9h_atkrange", + "current": "20/60", + "max": "", + "id": "-MHEq58I-VbO7GNaC_Pn" + }, + { + "name": "repeating_attack_-MHEprMrbxdEwKbAot9h_options-flag", + "current": "0", + "max": "", + "id": "-MHEq5cjwApXG7WawmZ3" + }, + { + "name": "repeating_attack_-MHEqJ3sFEu74Ko3OLMf_atkname", + "current": "I. Handaxe", + "max": "", + "id": "-MHEqLD7WgPf-geiCjYG" + }, + { + "name": "repeating_attack_-MHEqJ3sFEu74Ko3OLMf_atkdmgtype", + "current": "1d6+2 Slashing ", + "max": "", + "id": "-MHEqLUNryFifgd6_VKl" + }, + { + "name": "repeating_attack_-MHEqJ3sFEu74Ko3OLMf_rollbase_dmg", + "current": "@{wtype}&{template:dmg} {{rname=@{atkname}}} @{atkflag} {{range=@{atkrange}}} @{dmgflag} {{dmg1=[[1d6 + 1[STR] + 1[MOD]]]}} {{dmg1type=Slashing}} @{dmg2flag} {{dmg2=[[0]]}} {{dmg2type=}} @{saveflag} {{desc=@{atk_desc}}} @{hldmg} {{spelllevel=@{spelllevel}}} {{innate=@{spell_innate}}} {{globaldamage=[[0]]}} {{globaldamagetype=@{global_damage_mod_type}}} @{charname_output}", + "max": "", + "id": "-MHEqLURMajCcTHvHWEf" + }, + { + "name": "repeating_attack_-MHEqJ3sFEu74Ko3OLMf_rollbase_crit", + "current": "@{wtype}&{template:dmg} {{crit=1}} {{rname=@{atkname}}} @{atkflag} {{range=@{atkrange}}} @{dmgflag} {{dmg1=[[1d6 + 1[STR] + 1[MOD]]]}} {{dmg1type=Slashing}} @{dmg2flag} {{dmg2=[[0]]}} {{dmg2type=}} {{crit1=[[1d6]]}} {{crit2=[[0]]}} @{saveflag} {{desc=@{atk_desc}}} @{hldmg} {{spelllevel=@{spelllevel}}} {{innate=@{spell_innate}}} {{globaldamage=[[0]]}} {{globaldamagecrit=[[0]]}} {{globaldamagetype=@{global_damage_mod_type}}} @{charname_output}", + "max": "", + "id": "-MHEqLUVGwjIRx3UVxCP" + }, + { + "name": "repeating_attack_-MHEqJ3sFEu74Ko3OLMf_atkbonus", + "current": "+4", + "max": "", + "id": "-MHEqLUYGJs4cmGD-YF_" + }, + { + "name": "repeating_attack_-MHEqJ3sFEu74Ko3OLMf_rollbase", + "current": "@{wtype}&{template:atk} {{mod=@{atkbonus}}} {{rname=[@{atkname}](~repeating_attack_attack_dmg)}} {{rnamec=[@{atkname}](~repeating_attack_attack_crit)}} {{r1=[[@{d20}cs>@{atkcritrange} + 1[STR] + 1[MOD] + 2[PROF]]]}} @{rtype}cs>@{atkcritrange} + 1[STR] + 1[MOD] + 2[PROF]]]}} {{range=@{atkrange}}} {{desc=@{atk_desc}}} {{spelllevel=@{spelllevel}}} {{innate=@{spell_innate}}} {{globalattack=@{global_attack_mod}}} ammo=@{ammo} @{charname_output}", + "max": "", + "id": "-MHEqLUbBonWxd_tHSaK" + }, + { + "name": "repeating_attack_-MHEqJ3sFEu74Ko3OLMf_atkmod", + "current": "1", + "max": "", + "id": "-MHEqM2WL86klLeKU-0D" + }, + { + "name": "repeating_attack_-MHEqJ3sFEu74Ko3OLMf_dmgbase", + "current": "1d6", + "max": "", + "id": "-MHEqN_f0STLzzVqDeZ1" + }, + { + "name": "repeating_attack_-MHEqJ3sFEu74Ko3OLMf_dmgmod", + "current": "1", + "max": "", + "id": "-MHEqOC3ZH6LmpS36g8K" + }, + { + "name": "repeating_attack_-MHEqJ3sFEu74Ko3OLMf_dmgtype", + "current": "Slashing", + "max": "", + "id": "-MHEqPNefOpWAzHXNuIB" + }, + { + "name": "repeating_attack_-MHEqJ3sFEu74Ko3OLMf_atk_desc", + "current": "A handaxe infused with alchemical energy.", + "max": "", + "id": "-MHEqSo73W3sPAx0g2E_" + }, + { + "name": "repeating_attack_-MHEqJ3sFEu74Ko3OLMf_options-flag", + "current": "0", + "max": "", + "id": "-MHEqSpVoe_hulLfEg0b" + }, + { + "name": "repeating_attack_-MHEqTbtl3MAzX8UfpfC_atkname", + "current": "I. Handaxe, thrown", + "max": "", + "id": "-MHEqVqNgiunkl6hXc_x" + }, + { + "name": "repeating_attack_-MHEqTbtl3MAzX8UfpfC_atkdmgtype", + "current": "1d6+2 ", + "max": "", + "id": "-MHEqVzY3YhlpybzI40k" + }, + { + "name": "repeating_attack_-MHEqTbtl3MAzX8UfpfC_rollbase_dmg", + "current": "@{wtype}&{template:dmg} {{rname=@{atkname}}} @{atkflag} {{range=@{atkrange}}} @{dmgflag} {{dmg1=[[1d6 + 1[STR] + 1[MOD]]]}} {{dmg1type=}} @{dmg2flag} {{dmg2=[[0]]}} {{dmg2type=}} @{saveflag} {{desc=@{atk_desc}}} @{hldmg} {{spelllevel=@{spelllevel}}} {{innate=@{spell_innate}}} {{globaldamage=[[0]]}} {{globaldamagetype=@{global_damage_mod_type}}} @{charname_output}", + "max": "", + "id": "-MHEqVzaH23Rm-aujnBk" + }, + { + "name": "repeating_attack_-MHEqTbtl3MAzX8UfpfC_rollbase_crit", + "current": "@{wtype}&{template:dmg} {{crit=1}} {{rname=@{atkname}}} @{atkflag} {{range=@{atkrange}}} @{dmgflag} {{dmg1=[[1d6 + 1[STR] + 1[MOD]]]}} {{dmg1type=}} @{dmg2flag} {{dmg2=[[0]]}} {{dmg2type=}} {{crit1=[[1d6]]}} {{crit2=[[0]]}} @{saveflag} {{desc=@{atk_desc}}} @{hldmg} {{spelllevel=@{spelllevel}}} {{innate=@{spell_innate}}} {{globaldamage=[[0]]}} {{globaldamagecrit=[[0]]}} {{globaldamagetype=@{global_damage_mod_type}}} @{charname_output}", + "max": "", + "id": "-MHEqVzdL4HeMk3K2-8x" + }, + { + "name": "repeating_attack_-MHEqTbtl3MAzX8UfpfC_atkbonus", + "current": "+4", + "max": "", + "id": "-MHEqVzfAFULJ_HZmfLp" + }, + { + "name": "repeating_attack_-MHEqTbtl3MAzX8UfpfC_rollbase", + "current": "@{wtype}&{template:atk} {{mod=@{atkbonus}}} {{rname=[@{atkname}](~repeating_attack_attack_dmg)}} {{rnamec=[@{atkname}](~repeating_attack_attack_crit)}} {{r1=[[@{d20}cs>@{atkcritrange} + 1[STR] + 1[MOD] + 2[PROF]]]}} @{rtype}cs>@{atkcritrange} + 1[STR] + 1[MOD] + 2[PROF]]]}} {{range=@{atkrange}}} {{desc=@{atk_desc}}} {{spelllevel=@{spelllevel}}} {{innate=@{spell_innate}}} {{globalattack=@{global_attack_mod}}} ammo=@{ammo} @{charname_output}", + "max": "", + "id": "-MHEqVziDzlWGIMs35Po" + }, + { + "name": "repeating_attack_-MHEqTbtl3MAzX8UfpfC_atkrange", + "current": "20/60", + "max": "", + "id": "-MHEqagzs770aOEmpS8V" + }, + { + "name": "repeating_attack_-MHEqTbtl3MAzX8UfpfC_dmgbase", + "current": "1d6", + "max": "", + "id": "-MHEqbtjRnk69bDpH0lM" + }, + { + "name": "repeating_attack_-MHEqTbtl3MAzX8UfpfC_dmgmod", + "current": "1", + "max": "", + "id": "-MHEqcntGq75vU9Bl6Qu" + }, + { + "name": "repeating_attack_-MHEqTbtl3MAzX8UfpfC_atkmod", + "current": "1", + "max": "", + "id": "-MHEqdgUhdupXBpGGar5" + }, + { + "name": "repeating_attack_-MHEqTbtl3MAzX8UfpfC_atk_desc", + "current": "A handaxe now infused with alchemical energy.", + "max": "", + "id": "-MHEqitwjyGpoJwjgpq_" + }, + { + "name": "repeating_attack_-MHEqTbtl3MAzX8UfpfC_options-flag", + "current": "0", + "max": "", + "id": "-MHEqivNYqUjrqzUVZ8H" + }, + { + "name": "allies_and_organizations", + "current": "Harper's Guild", + "max": "", + "id": "-MIMcjva1CvdAAeRGkfb" + }, + { + "name": "repeating_spell-1_-MEzbKDjAizIGJiL-ZGI_spellschool", + "current": "abjuration", + "max": "", + "id": "-MJ9jD2DP6qAB4Ep5QPC" + }, + { + "name": "repeating_spell-1_-MEzbsnLIS4Ke5aS6jBL_spellschool", + "current": "abjuration", + "max": "", + "id": "-MJ9jD2HDOGj7HsDiGLH" + }, + { + "name": "repeating_spell-1_-MEziZC3IywMHGf0cYZH_spellschool", + "current": "abjuration", + "max": "", + "id": "-MJ9jD2OdRf3-0npwSki" + }, + { + "name": "repeating_spell-1_-MEziqY313OsBj8EWAsi_spellschool", + "current": "abjuration", + "max": "", + "id": "-MJ9jD2RwKY9GUQq8E-t" + }, + { + "name": "repeating_inventory_-MKc4pwANbzDxGaK1jH4_itemname", + "current": "Component Pouch", + "max": "", + "id": "-MKc4rX0RWIDGGYz06Dt" + }, + { + "name": "repeating_inventory_-MKc4pwANbzDxGaK1jH4_itemweight", + "current": "2", + "max": "", + "id": "-MKc4t3ekIfTtCxtXdIy" + }, + { + "name": "repeating_inventory_-MLAxKWhAo10K0fLspQV_itemname", + "current": "Shield", + "max": "", + "id": "-MLAxLgwaxfwYMeKMkVN" + }, + { + "name": "repeating_inventory_-MLAxKWhAo10K0fLspQV_itemweight", + "current": "6", + "max": "", + "id": "-MLAxU5_7XdIe2AkJ1-O" + } + ], + "abilities": [] +} \ No newline at end of file diff --git a/examples/barbarian3.json b/examples/barbarian3.json new file mode 100644 index 0000000..65e4e78 --- /dev/null +++ b/examples/barbarian3.json @@ -0,0 +1,2955 @@ +{ + "schema_version": 2, + "oldId": "-MEzN2W00usZh_JQD_LM", + "name": "Ulthar Jenkins", + "avatar": "https://s3.amazonaws.com/files.d20.io/images/158428701/sdkbnE1lXjCBHirB27Uvzw/med.png?1597719069", + "bio": "%3Cp%3EPart%20of%20the%20order%20of%20the%20gauntlet.%28i%20need%20to%20explain%20why%20defend%20why%20Im%20not%20longer%20in%20the%20military%29%26nbsp%3B%3C/p%3E%3Cp%3EI%20used%20to%20be%20working%20my%20way%20up%20the%20through%20the%20military%2C%20someone%20ratted%20me%20out%26nbsp%3B%20and%20I%20got%20dishonorably%20discharged.%20I%20think%20people%20found%20out%20I%20have%20enjoyed%20murdering%20people%20too%20much%2C%20probably%20because%20I%20can%20easily%20dismember%20a%20body.%20When%20people%20are%20against%20us%2C%20they%20only%20deserve%20to%20die.%26nbsp%3B%3Cbr%3E%3Cbr%3EFiercely%20loyal%20to%20my%20friends%20and%20family.%20Stubborn%20and%20bull-headed.%20Strive%20for%20justice%20and%20my%20own%20version%20of%20justice%20%28military%20type%20justice%29%2C%20not%20the%20worlds.%26nbsp%3B%3C/p%3E%3Cp%3EFlaw%3A%20want%20to%20solve%20problems%20by%20force%20and%20murder.%20know%20very%20little%20about%20magic%20and%20its%20power.%26nbsp%3B%3C/p%3E%3Cp%3EI%20know%20that%20the%20dwarf%20who%20ratted%20me%20out%20in%20the%20military%20lives%20in%20Summit%20Hall.%20I%20want%20to%20clear%20my%20name%2C%20I%20do%20not%20murder%20people%20who%20don%27t%20deserve%20it.%3C/p%3E%3Cp%3E%3Cbr%3E%3C/p%3E%3Cp%3EHook%3A%20the%20person%20that%20got%20me%20kicked%20out%20of%20the%20army.%20I%20don%27t%20really%20know%20much%20about%20him%2C%20but%20I%27ve%20been%20looking%20for%20him%20for%20the%20past%2010%20years.%26nbsp%3B%3Cbr%3E%3Cbr%3Ehome%20is%20North%20Faerun%20-mirabar%3C/p%3E%3Cp%3E%3Cbr%3E%3C/p%3E%3Cp%3EEmerald%20Enclave%20-%20group%20wilderness%20survivalist%20-%20preserve%20natural%20order.%26nbsp%3B%3C/p%3E", + "gmnotes": "", + "defaulttoken": "{\"left\":1085,\"top\":735,\"width\":70,\"height\":70,\"imgsrc\":\"https://s3.amazonaws.com/files.d20.io/images/159972492/Iba3gQzYn3P3OJv1OlggTg/max.png?1598313840\",\"page_id\":\"-KwfcNCleGCDAO5Qe9pa\",\"layer\":\"objects\",\"name\":\"Ulthar\",\"represents\":\"-MEzN2W00usZh_JQD_LM\",\"bar1_value\":8,\"bar1_max\":17,\"bar1_link\":\"-MEzSzTXUiLjiz_uZyMF\",\"bar2_value\":15,\"bar2_link\":\"-MEzSzTd8lmYzRxLsfG-\",\"bar3_value\":0,\"bar3_link\":\"-MEzSzTl0jnrfqfKYWC3\",\"showname\":true,\"showplayers_name\":true,\"lastmove\":\"1155,735\"}", + "tags": "[]", + "controlledby": "-MEj17Q5A-dyAtgRE8Jq", + "inplayerjournals": "-MEj17Q5A-dyAtgRE8Jq", + "attribs": [ + { + "name": "l1mancer_status", + "current": "completed", + "max": "", + "id": "-MEzN2WefglXoiP1CpkL" + }, + { + "name": "hitdieroll", + "current": "12", + "max": "", + "id": "-MEzN683C7Xbtc8weq8o" + }, + { + "name": "showleveler", + "current": 0, + "max": "", + "id": "-MEzN68A3dIMKs9Cqmwf" + }, + { + "name": "invalidXP", + "current": 0, + "max": "", + "id": "-MEzN68GEjXmOZGzXCCu" + }, + { + "name": "version", + "current": 4.21, + "max": "", + "id": "-MEzN69R9gBHmAaqMpSC" + }, + { + "name": "appliedUpdates", + "current": "upgrade_to_4_2_1,fix_spell_attacks,fix_pc_skill_and_saving_rolls,fix_pc_saving_rolls,fix_pc_skill_and_saving_rolls_with_expertise,fix_pc_skill_and_saving_rolls_with_reliable_talent,enable_powerful_build_on_existing_characters,fix_pc_global_critical_damage_rolls,fix_pc_global_critical_stacked_damage_rolls,fix_pc_skill_rolls_tooltips,fix_pc_global_statical_critical_damage,fix_spell_school_ouput,fix_pc_global_multiple_statical_critical_damage", + "max": "", + "id": "-MEzN69rV5mdxLBKM6Rq" + }, + { + "name": "strength_save_roll", + "current": "@{wtype}&{template:simple} {{rname=^{strength-save-u}}} {{mod=@{strength_save_bonus}}} {{r1=[[@{d20}+@{strength_save_bonus}@{pbd_safe}]]}} {{always=1}} {{r2=[[@{d20}+@{strength_save_bonus}@{pbd_safe}]]}} {{global=@{global_save_mod}}} @{charname_output}", + "max": "", + "id": "-MEzN6JYcA_98wRRLhXf" + }, + { + "name": "dexterity_save_roll", + "current": "@{wtype}&{template:simple} {{rname=^{dexterity-save-u}}} {{mod=@{dexterity_save_bonus}}} {{r1=[[@{d20}+@{dexterity_save_bonus}@{pbd_safe}]]}} {{always=1}} {{r2=[[@{d20}+@{dexterity_save_bonus}@{pbd_safe}]]}} {{global=@{global_save_mod}}} @{charname_output}", + "max": "", + "id": "-MEzN6JdEb9ip87j6_yx" + }, + { + "name": "constitution_save_roll", + "current": "@{wtype}&{template:simple} {{rname=^{constitution-save-u}}} {{mod=@{constitution_save_bonus}}} {{r1=[[@{d20}+@{constitution_save_bonus}@{pbd_safe}]]}} {{always=1}} {{r2=[[@{d20}+@{constitution_save_bonus}@{pbd_safe}]]}} {{global=@{global_save_mod}}} @{charname_output}", + "max": "", + "id": "-MEzN6JhmU4Zj7VBuSKd" + }, + { + "name": "intelligence_save_roll", + "current": "@{wtype}&{template:simple} {{rname=^{intelligence-save-u}}} {{mod=@{intelligence_save_bonus}}} {{r1=[[@{d20}+@{intelligence_save_bonus}@{pbd_safe}]]}} {{always=1}} {{r2=[[@{d20}+@{intelligence_save_bonus}@{pbd_safe}]]}} {{global=@{global_save_mod}}} @{charname_output}", + "max": "", + "id": "-MEzN6JmZJj45HcpJE31" + }, + { + "name": "wisdom_save_roll", + "current": "@{wtype}&{template:simple} {{rname=^{wisdom-save-u}}} {{mod=@{wisdom_save_bonus}}} {{r1=[[@{d20}+@{wisdom_save_bonus}@{pbd_safe}]]}} {{always=1}} {{r2=[[@{d20}+@{wisdom_save_bonus}@{pbd_safe}]]}} {{global=@{global_save_mod}}} @{charname_output}", + "max": "", + "id": "-MEzN6Juer7uJCZnwgSo" + }, + { + "name": "charisma_save_roll", + "current": "@{wtype}&{template:simple} {{rname=^{charisma-save-u}}} {{mod=@{charisma_save_bonus}}} {{r1=[[@{d20}+@{charisma_save_bonus}@{pbd_safe}]]}} {{always=1}} {{r2=[[@{d20}+@{charisma_save_bonus}@{pbd_safe}]]}} {{global=@{global_save_mod}}} @{charname_output}", + "max": "", + "id": "-MEzN6JyT92GdYN4r1tF" + }, + { + "name": "honor_save_roll", + "current": "@{wtype}&{template:simple} {{rname=^{honor-save-u}}} {{mod=@{honor_save_bonus}}} {{r1=[[@{d20}+@{honor_save_bonus}@{pbd_safe}]]}} {{always=1}} {{r2=[[@{d20}+@{honor_save_bonus}@{pbd_safe}]]}} {{global=@{global_save_mod}}} @{charname_output}", + "max": "", + "id": "-MEzN6K1VnCdCiSfWS3z" + }, + { + "name": "sanity_save_roll", + "current": "@{wtype}&{template:simple} {{rname=^{sanity-save-u}}} {{mod=@{sanity_save_bonus}}} {{r1=[[@{d20}+@{sanity_save_bonus}@{pbd_safe}]]}} {{always=1}} {{r2=[[@{d20}+@{sanity_save_bonus}@{pbd_safe}]]}} {{global=@{global_save_mod}}} @{charname_output}", + "max": "", + "id": "-MEzN6K4MrwdBvmXYX0O" + }, + { + "name": "athletics_roll", + "current": "@{wtype}&{template:simple} {{rname=^{athletics-u}}} {{mod=@{athletics_bonus}}} {{r1=[[@{d20}+2[Proficiency]+1[strength]@{pbd_safe}]]}} {{always=1}} {{r2=[[@{d20}+2[Proficiency]+1[strength]@{pbd_safe}]]}} {{global=@{global_skill_mod}}} @{charname_output}", + "max": "", + "id": "-MEzN6KVTpWAOKZS0FHk" + }, + { + "name": "acrobatics_roll", + "current": "@{wtype}&{template:simple} {{rname=^{acrobatics-u}}} {{mod=@{acrobatics_bonus}}} {{r1=[[@{d20}+1[dexterity]@{pbd_safe}]]}} {{always=1}} {{r2=[[@{d20}+1[dexterity]@{pbd_safe}]]}} {{global=@{global_skill_mod}}} @{charname_output}", + "max": "", + "id": "-MEzN6KZQe7cYuw4kT_L" + }, + { + "name": "sleight_of_hand_roll", + "current": "@{wtype}&{template:simple} {{rname=^{sleight_of_hand-u}}} {{mod=@{sleight_of_hand_bonus}}} {{r1=[[@{d20}+1[dexterity]@{pbd_safe}]]}} {{always=1}} {{r2=[[@{d20}+1[dexterity]@{pbd_safe}]]}} {{global=@{global_skill_mod}}} @{charname_output}", + "max": "", + "id": "-MEzN6KauvYLjU8SYFgM" + }, + { + "name": "stealth_roll", + "current": "@{wtype}&{template:simple} {{rname=^{stealth-u}}} {{mod=@{stealth_bonus}}} {{r1=[[@{d20}+1[dexterity]@{pbd_safe}]]}} {{always=1}} {{r2=[[@{d20}+1[dexterity]@{pbd_safe}]]}} {{global=@{global_skill_mod}}} @{charname_output}", + "max": "", + "id": "-MEzN6KdhmK5_yIKLZv3" + }, + { + "name": "arcana_roll", + "current": "@{wtype}&{template:simple} {{rname=^{arcana-u}}} {{mod=@{arcana_bonus}}} {{r1=[[@{d20}+-1[intelligence]@{pbd_safe}]]}} {{always=1}} {{r2=[[@{d20}+-1[intelligence]@{pbd_safe}]]}} {{global=@{global_skill_mod}}} @{charname_output}", + "max": "", + "id": "-MEzN6Khv-kwv2wHOaSb" + }, + { + "name": "history_roll", + "current": "@{wtype}&{template:simple} {{rname=^{history-u}}} {{mod=@{history_bonus}}} {{r1=[[@{d20}+-1[intelligence]@{pbd_safe}]]}} {{always=1}} {{r2=[[@{d20}+-1[intelligence]@{pbd_safe}]]}} {{global=@{global_skill_mod}}} @{charname_output}", + "max": "", + "id": "-MEzN6Kl9BPdnbOYTbVP" + }, + { + "name": "investigation_roll", + "current": "@{wtype}&{template:simple} {{rname=^{investigation-u}}} {{mod=@{investigation_bonus}}} {{r1=[[@{d20}+-1[intelligence]@{pbd_safe}]]}} {{always=1}} {{r2=[[@{d20}+-1[intelligence]@{pbd_safe}]]}} {{global=@{global_skill_mod}}} @{charname_output}", + "max": "", + "id": "-MEzN6Ko-Idu-wh6oJmc" + }, + { + "name": "nature_roll", + "current": "@{wtype}&{template:simple} {{rname=^{nature-u}}} {{mod=@{nature_bonus}}} {{r1=[[@{d20}+-1[intelligence]@{pbd_safe}]]}} {{always=1}} {{r2=[[@{d20}+-1[intelligence]@{pbd_safe}]]}} {{global=@{global_skill_mod}}} @{charname_output}", + "max": "", + "id": "-MEzN6KsvOjN8kTmB238" + }, + { + "name": "religion_roll", + "current": "@{wtype}&{template:simple} {{rname=^{religion-u}}} {{mod=@{religion_bonus}}} {{r1=[[@{d20}+-1[intelligence]@{pbd_safe}]]}} {{always=1}} {{r2=[[@{d20}+-1[intelligence]@{pbd_safe}]]}} {{global=@{global_skill_mod}}} @{charname_output}", + "max": "", + "id": "-MEzN6KvktUiHLvzZ_SA" + }, + { + "name": "animal_handling_roll", + "current": "@{wtype}&{template:simple} {{rname=^{animal_handling-u}}} {{mod=@{animal_handling_bonus}}} {{r1=[[@{d20}+1[wisdom]@{pbd_safe}]]}} {{always=1}} {{r2=[[@{d20}+1[wisdom]@{pbd_safe}]]}} {{global=@{global_skill_mod}}} @{charname_output}", + "max": "", + "id": "-MEzN6KytAp5kBfDlAPW" + }, + { + "name": "insight_roll", + "current": "@{wtype}&{template:simple} {{rname=^{insight-u}}} {{mod=@{insight_bonus}}} {{r1=[[@{d20}+1[wisdom]@{pbd_safe}]]}} {{always=1}} {{r2=[[@{d20}+1[wisdom]@{pbd_safe}]]}} {{global=@{global_skill_mod}}} @{charname_output}", + "max": "", + "id": "-MEzN6L0JqUjbSpoMhzW" + }, + { + "name": "medicine_roll", + "current": "@{wtype}&{template:simple} {{rname=^{medicine-u}}} {{mod=@{medicine_bonus}}} {{r1=[[@{d20}+1[wisdom]@{pbd_safe}]]}} {{always=1}} {{r2=[[@{d20}+1[wisdom]@{pbd_safe}]]}} {{global=@{global_skill_mod}}} @{charname_output}", + "max": "", + "id": "-MEzN6L3x-Y7MoUIFrTz" + }, + { + "name": "perception_roll", + "current": "@{wtype}&{template:simple} {{rname=^{perception-u}}} {{mod=@{perception_bonus}}} {{r1=[[@{d20}+1[wisdom]@{pbd_safe}]]}} {{always=1}} {{r2=[[@{d20}+1[wisdom]@{pbd_safe}]]}} {{global=@{global_skill_mod}}} @{charname_output}", + "max": "", + "id": "-MEzN6L5UL3GaYdyKuGr" + }, + { + "name": "survival_roll", + "current": "@{wtype}&{template:simple} {{rname=^{survival-u}}} {{mod=@{survival_bonus}}} {{r1=[[@{d20}+2[Proficiency]+1[wisdom]@{pbd_safe}]]}} {{always=1}} {{r2=[[@{d20}+2[Proficiency]+1[wisdom]@{pbd_safe}]]}} {{global=@{global_skill_mod}}} @{charname_output}", + "max": "", + "id": "-MEzN6L8yMtTR0NdXTQj" + }, + { + "name": "deception_roll", + "current": "@{wtype}&{template:simple} {{rname=^{deception-u}}} {{mod=@{deception_bonus}}} {{r1=[[@{d20}+-1[charisma]@{pbd_safe}]]}} {{always=1}} {{r2=[[@{d20}+-1[charisma]@{pbd_safe}]]}} {{global=@{global_skill_mod}}} @{charname_output}", + "max": "", + "id": "-MEzN6LBbjZua2UmTTEo" + }, + { + "name": "intimidation_roll", + "current": "@{wtype}&{template:simple} {{rname=^{intimidation-u}}} {{mod=@{intimidation_bonus}}} {{r1=[[@{d20}+-1[charisma]@{pbd_safe}]]}} {{always=1}} {{r2=[[@{d20}+-1[charisma]@{pbd_safe}]]}} {{global=@{global_skill_mod}}} @{charname_output}", + "max": "", + "id": "-MEzN6LEiS-BIP7EIvuk" + }, + { + "name": "performance_roll", + "current": "@{wtype}&{template:simple} {{rname=^{performance-u}}} {{mod=@{performance_bonus}}} {{r1=[[@{d20}+-1[charisma]@{pbd_safe}]]}} {{always=1}} {{r2=[[@{d20}+-1[charisma]@{pbd_safe}]]}} {{global=@{global_skill_mod}}} @{charname_output}", + "max": "", + "id": "-MEzN6LH--sEwj3xexZu" + }, + { + "name": "persuasion_roll", + "current": "@{wtype}&{template:simple} {{rname=^{persuasion-u}}} {{mod=@{persuasion_bonus}}} {{r1=[[@{d20}+-1[charisma]@{pbd_safe}]]}} {{always=1}} {{r2=[[@{d20}+-1[charisma]@{pbd_safe}]]}} {{global=@{global_skill_mod}}} @{charname_output}", + "max": "", + "id": "-MEzN6LJbZSp3x6rvsWi" + }, + { + "name": "mancer_confirm_flag", + "current": "", + "max": "", + "id": "-MEzN6POz3ZD1WBZA_nN" + }, + { + "name": "mancer_confirm", + "current": "on", + "max": "", + "id": "-MEzNBMcHb7DD_Xzj_SX" + }, + { + "name": "charactermancer_step", + "current": "lp-welcome", + "max": "", + "id": "-MEzNBOMK6Y-zoHhU3pG" + }, + { + "name": "class_resource_name", + "current": "Rage", + "max": "", + "id": "-MEzSzTCGDozkoKc--dw" + }, + { + "name": "class_resource", + "current": "2", + "max": 2, + "id": "-MEzSzTF8TnL14W6vdgq" + }, + { + "name": "other_resource_name", + "current": "", + "max": "", + "id": "-MEzSzTF8TnL14W6vdgr" + }, + { + "name": "other_resource", + "current": "", + "max": "", + "id": "-MEzSzTGAgU65l8LN2Ez" + }, + { + "name": "other_resource_itemid", + "current": "", + "max": "", + "id": "-MEzSzTHq3sPIO_yeiv4" + }, + { + "name": "class", + "current": "Barbarian", + "max": "", + "id": "-MEzSzTIT0Apu7hQZOjj" + }, + { + "name": "class_display", + "current": "Barbarian 2", + "max": "", + "id": "-MEzSzTJNKH7bMP7g1CT" + }, + { + "name": "subclass", + "current": "", + "max": "", + "id": "-MEzSzTJNKH7bMP7g1CU" + }, + { + "name": "hitdietype", + "current": "12", + "max": "", + "id": "-MEzSzTKj53gU3KY2YYl" + }, + { + "name": "hitdie_final", + "current": "@{hitdietype}", + "max": "", + "id": "-MEzSzTML72gr5-ZI92n" + }, + { + "name": "race", + "current": "Dwarf", + "max": "", + "id": "-MEzSzTML72gr5-ZI92o" + }, + { + "name": "subrace", + "current": "Hill Dwarf", + "max": "", + "id": "-MEzSzTNGfedbcpZMIH5" + }, + { + "name": "race_display", + "current": "Hill Dwarf", + "max": "", + "id": "-MEzSzTOvoMnj9q53avL" + }, + { + "name": "custom_class", + "current": "0", + "max": "", + "id": "-MEzSzTOvoMnj9q53avM" + }, + { + "name": "cust_classname", + "current": "", + "max": "", + "id": "-MEzSzTP5Lvk0hBnQDGR" + }, + { + "name": "hp", + "current": "32-6", + "max": 32, + "id": "-MEzSzTXUiLjiz_uZyMF" + }, + { + "name": "size", + "current": "Medium", + "max": "", + "id": "-MEzSzTZO3bXbfjl5QN8" + }, + { + "name": "speed", + "current": 25, + "max": "", + "id": "-MEzSzTZO3bXbfjl5QN9" + }, + { + "name": "gp", + "current": "207", + "max": "", + "id": "-MEzSzT_a98TUkGd88ZL" + }, + { + "name": "alignment", + "current": "Lawful Evil", + "max": "", + "id": "-MEzSzTaN8QISKH5vqCx" + }, + { + "name": "spellcasting_ability", + "current": "0*", + "max": "", + "id": "-MEzSzTaN8QISKH5vqCy" + }, + { + "name": "cust_hitdietype", + "current": "", + "max": "", + "id": "-MEzSzTbWV_OUgH2N8Ws" + }, + { + "name": "cust_spellslots", + "current": "", + "max": "", + "id": "-MEzSzTcOMGt37qNG72t" + }, + { + "name": "cust_spellcasting_ability", + "current": "", + "max": "", + "id": "-MEzSzTd8lmYzRxLsfFz" + }, + { + "name": "ac", + "current": 15, + "max": "", + "id": "-MEzSzTd8lmYzRxLsfG-" + }, + { + "name": "jack_bonus", + "current": "", + "max": "", + "id": "-MEzSzTe10pMnBAwAvNM" + }, + { + "name": "jack_attr", + "current": "", + "max": "", + "id": "-MEzSzTfJhnT_xYdDhWL" + }, + { + "name": "death_save_bonus", + "current": 0, + "max": "", + "id": "-MEzSzTfJhnT_xYdDhWM" + }, + { + "name": "weighttotal", + "current": 85.16, + "max": "", + "id": "-MEzSzTgixWLiHEU4SE_" + }, + { + "name": "initiative_bonus", + "current": 1, + "max": "", + "id": "-MEzSzThqoCFwa31TVs-" + }, + { + "name": "hit_dice", + "current": "0", + "max": 2, + "id": "-MEzSzThqoCFwa31TVs0" + }, + { + "name": "pb", + "current": "2", + "max": "", + "id": "-MEzSzTi7v7ubHWWFOhG" + }, + { + "name": "jack", + "current": 1, + "max": "", + "id": "-MEzSzTjmlXWbXGvikIh" + }, + { + "name": "caster_level", + "current": 0, + "max": "", + "id": "-MEzSzTjmlXWbXGvikIi" + }, + { + "name": "spell_attack_mod", + "current": "", + "max": "", + "id": "-MEzSzTkB-5sYm9LbGLK" + }, + { + "name": "spell_attack_bonus", + "current": "0", + "max": "", + "id": "-MEzSzTkB-5sYm9LbGLL" + }, + { + "name": "spell_save_dc", + "current": "0", + "max": "", + "id": "-MEzSzTl0jnrfqfKYWC3" + }, + { + "name": "passive_wisdom", + "current": 11, + "max": "", + "id": "-MEzSzTm8boAur9PlbDA" + }, + { + "name": "custom_ac_base", + "current": "10", + "max": "", + "id": "-MEzSzTm8boAur9PlbDB" + }, + { + "name": "custom_ac_part1", + "current": "Dexterity", + "max": "", + "id": "-MEzSzTn8772VwfVomJi" + }, + { + "name": "custom_ac_part2", + "current": "Constitution", + "max": "", + "id": "-MEzSzToEjCSm4omhSs9" + }, + { + "name": "custom_ac_shield", + "current": "yes", + "max": "", + "id": "-MEzSzToEjCSm4omhSsA" + }, + { + "name": "background", + "current": "Soldier", + "max": "", + "id": "-MEzSzTp-clJl1q9T1de" + }, + { + "name": "global_damage_mod_flag", + "current": "1", + "max": "", + "id": "-MEzSzTqy5gUjcj9yfUP" + }, + { + "name": "global_ac_mod_flag", + "current": "", + "max": "", + "id": "-MEzSzTrbpahO4qA91XL" + }, + { + "name": "global_attack_mod_flag", + "current": "", + "max": "", + "id": "-MEzSzTrbpahO4qA91XM" + }, + { + "name": "global_save_mod_flag", + "current": "", + "max": "", + "id": "-MEzSzTsknI7_lmw0Yku" + }, + { + "name": "global_skill_mod_flag", + "current": "", + "max": "", + "id": "-MEzSzTtVRiVFJU1GWMf" + }, + { + "name": "halflingluck_flag", + "current": 0, + "max": "", + "id": "-MEzSzTtVRiVFJU1GWMg" + }, + { + "name": "tab", + "current": "core", + "max": "", + "id": "-MEzSzTvmOIbNzF6O7-3" + }, + { + "name": "base_level", + "current": "2", + "max": "", + "id": "-MEzSzTw1ODbTyIjbBzC" + }, + { + "name": "level", + "current": 2, + "max": "", + "id": "-MEzSzTxehvo9JbYnEqH" + }, + { + "name": "armorwarningflag", + "current": "hide", + "max": "", + "id": "-MEzSzTymVWI64n2NWa4" + }, + { + "name": "customacwarningflag", + "current": "hide", + "max": "", + "id": "-MEzSzTz2p1TP9Wuu-2l" + }, + { + "name": "custom_ac_flag", + "current": "1", + "max": "", + "id": "-MEzSzU-c2DtxUDgBXjD" + }, + { + "name": "custom_attack_flag", + "current": "0", + "max": "", + "id": "-MEzSzU0LlwTLhmd1uuQ" + }, + { + "name": "multiclass1_flag", + "current": "0", + "max": "", + "id": "-MEzSzU1eSkh_DuCNM9T" + }, + { + "name": "multiclass1_lvl", + "current": "1", + "max": "", + "id": "-MEzSzU2W_CeOGr9qNBg" + }, + { + "name": "multiclass2_flag", + "current": "0", + "max": "", + "id": "-MEzSzU38vGFNrHzeEEc" + }, + { + "name": "multiclass2_lvl", + "current": "1", + "max": "", + "id": "-MEzSzU4KpOAKlxBoph8" + }, + { + "name": "multiclass3_flag", + "current": "0", + "max": "", + "id": "-MEzSzU5tHiSj8J3bBfS" + }, + { + "name": "multiclass3_lvl", + "current": "1", + "max": "", + "id": "-MEzSzU6MzFzOp3Pmur4" + }, + { + "name": "athletics_prof", + "current": "(@{pb}*@{athletics_type})", + "max": "", + "id": "-MEzSzU7J6wPuOnC32up" + }, + { + "name": "athletics_type", + "current": "", + "max": "", + "id": "-MEzSzU8NOJn3foDjhAA" + }, + { + "name": "athletics_bonus", + "current": 3, + "max": "", + "id": "-MEzSzU91Tva3EctRuxn" + }, + { + "name": "acrobatics_prof", + "current": "", + "max": "", + "id": "-MEzSzU91Tva3EctRuxo" + }, + { + "name": "acrobatics_type", + "current": "", + "max": "", + "id": "-MEzSzUAM6fonHKYBWnc" + }, + { + "name": "acrobatics_bonus", + "current": 1, + "max": "", + "id": "-MEzSzUB36WikJ6rMQl_" + }, + { + "name": "sleight_of_hand_prof", + "current": "", + "max": "", + "id": "-MEzSzUB36WikJ6rMQla" + }, + { + "name": "sleight_of_hand_type", + "current": "", + "max": "", + "id": "-MEzSzUCdzf6u9_SZ6ql" + }, + { + "name": "sleight_of_hand_bonus", + "current": 1, + "max": "", + "id": "-MEzSzUDnixyoWC7QJIH" + }, + { + "name": "stealth_prof", + "current": "", + "max": "", + "id": "-MEzSzUEBBXo220yvbQ8" + }, + { + "name": "stealth_type", + "current": "", + "max": "", + "id": "-MEzSzUFgx5TK6AiOt5s" + }, + { + "name": "stealth_bonus", + "current": 1, + "max": "", + "id": "-MEzSzUGKFm6pACVxmC-" + }, + { + "name": "arcana_prof", + "current": "", + "max": "", + "id": "-MEzSzUGKFm6pACVxmC0" + }, + { + "name": "arcana_type", + "current": "", + "max": "", + "id": "-MEzSzUHtXS6HcfWiDan" + }, + { + "name": "arcana_bonus", + "current": -1, + "max": "", + "id": "-MEzSzUItPumzLxsV91b" + }, + { + "name": "history_prof", + "current": "0", + "max": "", + "id": "-MEzSzUItPumzLxsV91c" + }, + { + "name": "history_type", + "current": "", + "max": "", + "id": "-MEzSzUJ1s3Df37u5u0j" + }, + { + "name": "history_bonus", + "current": -1, + "max": "", + "id": "-MEzSzUKLjVcCgwvKH5t" + }, + { + "name": "investigation_prof", + "current": "", + "max": "", + "id": "-MEzSzUKLjVcCgwvKH5u" + }, + { + "name": "investigation_type", + "current": "", + "max": "", + "id": "-MEzSzULVaD2lWnYNle4" + }, + { + "name": "investigation_bonus", + "current": -1, + "max": "", + "id": "-MEzSzUMLZYhFfu7WSzH" + }, + { + "name": "nature_prof", + "current": "", + "max": "", + "id": "-MEzSzUMLZYhFfu7WSzI" + }, + { + "name": "nature_type", + "current": "", + "max": "", + "id": "-MEzSzUNHGh9Zb_AGpIH" + }, + { + "name": "nature_bonus", + "current": -1, + "max": "", + "id": "-MEzSzUOs2_JRAjKbAWx" + }, + { + "name": "religion_prof", + "current": "", + "max": "", + "id": "-MEzSzUOs2_JRAjKbAWy" + }, + { + "name": "religion_type", + "current": "", + "max": "", + "id": "-MEzSzUPmIPqhzEKwUv7" + }, + { + "name": "religion_bonus", + "current": -1, + "max": "", + "id": "-MEzSzUQpU9qGnn_EfMf" + }, + { + "name": "animal_handling_prof", + "current": "", + "max": "", + "id": "-MEzSzUQpU9qGnn_EfMg" + }, + { + "name": "animal_handling_type", + "current": "", + "max": "", + "id": "-MEzSzURvwJblKs4ursh" + }, + { + "name": "animal_handling_bonus", + "current": 1, + "max": "", + "id": "-MEzSzUSQFBlQomL2gNJ" + }, + { + "name": "insight_prof", + "current": "", + "max": "", + "id": "-MEzSzUSQFBlQomL2gNK" + }, + { + "name": "insight_type", + "current": "", + "max": "", + "id": "-MEzSzUTXHnqBZmUxNTk" + }, + { + "name": "insight_bonus", + "current": 1, + "max": "", + "id": "-MEzSzUUUmITv4ZGGELH" + }, + { + "name": "medicine_prof", + "current": "", + "max": "", + "id": "-MEzSzUUUmITv4ZGGELI" + }, + { + "name": "medicine_type", + "current": "", + "max": "", + "id": "-MEzSzUVP-hpaGmlO4S7" + }, + { + "name": "medicine_bonus", + "current": 1, + "max": "", + "id": "-MEzSzUX00RdEfnAbVQb" + }, + { + "name": "perception_prof", + "current": "", + "max": "", + "id": "-MEzSzUYcxGVfM70R3jl" + }, + { + "name": "perception_type", + "current": "", + "max": "", + "id": "-MEzSzUZ_sJ5bo-kCG8T" + }, + { + "name": "perception_bonus", + "current": 1, + "max": "", + "id": "-MEzSzUZ_sJ5bo-kCG8U" + }, + { + "name": "survival_prof", + "current": "(@{pb}*@{survival_type})", + "max": "", + "id": "-MEzSzU_NXUzAlRqeVux" + }, + { + "name": "survival_type", + "current": "", + "max": "", + "id": "-MEzSzUapQ3vGpyF_OQk" + }, + { + "name": "survival_bonus", + "current": 3, + "max": "", + "id": "-MEzSzUapQ3vGpyF_OQl" + }, + { + "name": "deception_prof", + "current": "", + "max": "", + "id": "-MEzSzUbThrUaxMBy_4S" + }, + { + "name": "deception_type", + "current": "", + "max": "", + "id": "-MEzSzUclNOy-rQqYLDm" + }, + { + "name": "deception_bonus", + "current": -1, + "max": "", + "id": "-MEzSzUd6zCuT3UKUESR" + }, + { + "name": "intimidation_prof", + "current": "", + "max": "", + "id": "-MEzSzUd6zCuT3UKUESS" + }, + { + "name": "intimidation_type", + "current": "", + "max": "", + "id": "-MEzSzUeoYpROG2FloUi" + }, + { + "name": "intimidation_bonus", + "current": -1, + "max": "", + "id": "-MEzSzUfxBypA7rR2szw" + }, + { + "name": "performance_prof", + "current": "", + "max": "", + "id": "-MEzSzUfxBypA7rR2szx" + }, + { + "name": "performance_type", + "current": "", + "max": "", + "id": "-MEzSzUg0AY1T1dgNyXJ" + }, + { + "name": "performance_bonus", + "current": -1, + "max": "", + "id": "-MEzSzUhaEZ8yM7Axjx_" + }, + { + "name": "persuasion_prof", + "current": "", + "max": "", + "id": "-MEzSzUhaEZ8yM7Axjxa" + }, + { + "name": "persuasion_type", + "current": "", + "max": "", + "id": "-MEzSzUjr8QEoHjYbOgT" + }, + { + "name": "persuasion_bonus", + "current": -1, + "max": "", + "id": "-MEzSzUk4VqPSSkXI54U" + }, + { + "name": "strength_save_prof", + "current": "(@{pb})", + "max": "", + "id": "-MEzSzUlJzERLY0JuL9s" + }, + { + "name": "strength_save_bonus", + "current": 3, + "max": "", + "id": "-MEzSzUm6NU_OR8MlnBC" + }, + { + "name": "strength_bonus", + "current": "0", + "max": "", + "id": "-MEzSzUm6NU_OR8MlnBD" + }, + { + "name": "cust_strength_save_prof", + "current": "", + "max": "", + "id": "-MEzSzUndiTSo0DODVtV" + }, + { + "name": "dexterity_save_prof", + "current": 0, + "max": "", + "id": "-MEzSzUoT8czO5LdWXrx" + }, + { + "name": "dexterity_save_bonus", + "current": 1, + "max": "", + "id": "-MEzSzUplOaMBQiHCixK" + }, + { + "name": "dexterity_bonus", + "current": "0", + "max": "", + "id": "-MEzSzUplOaMBQiHCixL" + }, + { + "name": "cust_dexterity_save_prof", + "current": "", + "max": "", + "id": "-MEzSzUskyp2NTybygUx" + }, + { + "name": "constitution_save_prof", + "current": "(@{pb})", + "max": "", + "id": "-MEzSzUskyp2NTybygUy" + }, + { + "name": "constitution_save_bonus", + "current": 6, + "max": "", + "id": "-MEzSzUtglc2lVgDjpQF" + }, + { + "name": "constitution_bonus", + "current": "0", + "max": "", + "id": "-MEzSzUu7Q17tesbUkbZ" + }, + { + "name": "cust_constitution_save_prof", + "current": "", + "max": "", + "id": "-MEzSzUv5JJUenrfI1G_" + }, + { + "name": "intelligence_save_prof", + "current": 0, + "max": "", + "id": "-MEzSzUv5JJUenrfI1Ga" + }, + { + "name": "intelligence_save_bonus", + "current": -1, + "max": "", + "id": "-MEzSzUwOoSBVBlkqoaW" + }, + { + "name": "intelligence_bonus", + "current": "0", + "max": "", + "id": "-MEzSzUxEop7HImD2ZPn" + }, + { + "name": "cust_intelligence_save_prof", + "current": "", + "max": "", + "id": "-MEzSzUyO4Fc9qSjKi73" + }, + { + "name": "wisdom_save_prof", + "current": 0, + "max": "", + "id": "-MEzSzUzqAxaYgjMpNzy" + }, + { + "name": "wisdom_save_bonus", + "current": 1, + "max": "", + "id": "-MEzSzUzqAxaYgjMpNzz" + }, + { + "name": "wisdom_bonus", + "current": "0", + "max": "", + "id": "-MEzSzV-Q0hQAPs-I-qT" + }, + { + "name": "cust_wisdom_save_prof", + "current": "", + "max": "", + "id": "-MEzSzV0xTOzfdFjujms" + }, + { + "name": "charisma_save_prof", + "current": 0, + "max": "", + "id": "-MEzSzV12Tx3dYlU_jCF" + }, + { + "name": "charisma_save_bonus", + "current": -1, + "max": "", + "id": "-MEzSzV12Tx3dYlU_jCG" + }, + { + "name": "charisma_bonus", + "current": "0", + "max": "", + "id": "-MEzSzV2I64jkYZeel82" + }, + { + "name": "cust_charisma_save_prof", + "current": "", + "max": "", + "id": "-MEzSzV3TjxCDg3q9dlP" + }, + { + "name": "personality_traits", + "current": "Can easily dismember a body\n\nKnow fight battle tactics", + "max": "", + "id": "-MEzSzV4DzNxqLIa5wTv" + }, + { + "name": "ideals", + "current": "Vengence", + "max": "", + "id": "-MEzSzV5odzlE71QlpOh" + }, + { + "name": "bonds", + "current": "friends and adventurers. ", + "max": "", + "id": "-MEzSzV5odzlE71QlpOi" + }, + { + "name": "flaws", + "current": "Bloodthirsty and wants to solve every problem by murder", + "max": "", + "id": "-MEzSzV6m4mrcHVPUCke" + }, + { + "name": "constitution_base", + "current": 19, + "max": "", + "id": "-MEzSzV7zvlW2cOCsm2Z" + }, + { + "name": "wisdom_base", + "current": 13, + "max": "", + "id": "-MEzSzV84yuV68-Y01r8" + }, + { + "name": "strength_base", + "current": 13, + "max": "", + "id": "-MEzSzV9kKOTzfKp2AJp" + }, + { + "name": "dexterity_base", + "current": 12, + "max": "", + "id": "-MEzSzVA_4_nYQe9nM6G" + }, + { + "name": "intelligence_base", + "current": 8, + "max": "", + "id": "-MEzSzVB_NzF7kSizrfF" + }, + { + "name": "charisma_base", + "current": 8, + "max": "", + "id": "-MEzSzVCj72-4MGKTWib" + }, + { + "name": "d20", + "current": "1d20", + "max": "", + "id": "-MEzSzXU2EbGLkNOdw9l" + }, + { + "name": "encumberance", + "current": " ", + "max": "", + "id": "-MEzSzXa9S2iYviGr_oG" + }, + { + "name": "strength_flag", + "current": 0, + "max": "", + "id": "-MEzSzXcBJCy86x4GpHZ" + }, + { + "name": "strength", + "current": 13, + "max": "", + "id": "-MEzSzXda0Fc8dS8pCVQ" + }, + { + "name": "dexterity_flag", + "current": 0, + "max": "", + "id": "-MEzSzXfbF_pyxfcHrq6" + }, + { + "name": "dexterity", + "current": 12, + "max": "", + "id": "-MEzSzXglDys58EWg7OM" + }, + { + "name": "constitution_flag", + "current": 0, + "max": "", + "id": "-MEzSzXhpJN7xGuX6xGL" + }, + { + "name": "constitution", + "current": 19, + "max": "", + "id": "-MEzSzXioWcDPci9s1G6" + }, + { + "name": "intelligence_flag", + "current": 0, + "max": "", + "id": "-MEzSzXjl-VTGnCoqClz" + }, + { + "name": "intelligence", + "current": 8, + "max": "", + "id": "-MEzSzXkS3fhPk0T35Bx" + }, + { + "name": "wisdom_flag", + "current": 0, + "max": "", + "id": "-MEzSzXlKtLtHoJP-2uP" + }, + { + "name": "wisdom", + "current": 13, + "max": "", + "id": "-MEzSzXmfBjs9wf4Qoxt" + }, + { + "name": "charisma_flag", + "current": 0, + "max": "", + "id": "-MEzSzXoAStRzstnSjhH" + }, + { + "name": "charisma", + "current": 8, + "max": "", + "id": "-MEzSzXp2nw-i-D6IAPC" + }, + { + "name": "strength_mod", + "current": 1, + "max": "", + "id": "-MEzSzZfApS1zaqadEsX" + }, + { + "name": "npc_str_negative", + "current": 0, + "max": "", + "id": "-MEzSzZha0C82QE6S5cE" + }, + { + "name": "dexterity_mod", + "current": 1, + "max": "", + "id": "-MEzSzZiIrC3-3WFWW7J" + }, + { + "name": "npc_dex_negative", + "current": 0, + "max": "", + "id": "-MEzSzZjOomK-0d9mJce" + }, + { + "name": "constitution_mod", + "current": 4, + "max": "", + "id": "-MEzSzZkAHgYSOCele_h" + }, + { + "name": "npc_con_negative", + "current": 0, + "max": "", + "id": "-MEzSzZmGzP-IckHgMX7" + }, + { + "name": "intelligence_mod", + "current": -1, + "max": "", + "id": "-MEzSzZnM_8Tx1oh5n1Q" + }, + { + "name": "npc_int_negative", + "current": 1, + "max": "", + "id": "-MEzSzZom-5ICGCiJGdh" + }, + { + "name": "wisdom_mod", + "current": 1, + "max": "", + "id": "-MEzSzZpUsA-SAqDV9oN" + }, + { + "name": "npc_wis_negative", + "current": 0, + "max": "", + "id": "-MEzSzZqUA-WTp32ecWF" + }, + { + "name": "charisma_mod", + "current": -1, + "max": "", + "id": "-MEzSzZrGq33zFoHkmtH" + }, + { + "name": "npc_cha_negative", + "current": 1, + "max": "", + "id": "-MEzSzZsxUlGmQDyZdBb" + }, + { + "name": "drop_category", + "current": "", + "max": "", + "id": "-MEzSzda1p-jsz0W7gB2" + }, + { + "name": "drop_name", + "current": "", + "max": "", + "id": "-MEzSzdb7V7OTMAVLqvk" + }, + { + "name": "drop_data", + "current": "", + "max": "", + "id": "-MEzSzdcN8nEQ5V5DQKr" + }, + { + "name": "drop_content", + "current": "", + "max": "", + "id": "-MEzSzddmaT9PgerBRRl" + }, + { + "name": "options-class-selection", + "current": "0", + "max": "", + "id": "-MEzSzhPVtCCbcUcb66w" + }, + { + "name": "pbd_safe", + "current": "", + "max": "", + "id": "-MEzSzlYXomX5SIRMhgu" + }, + { + "name": "honor_save_bonus", + "current": 0, + "max": "", + "id": "-MEzSznOPDEzb-Ja7fEk" + }, + { + "name": "sanity_save_bonus", + "current": 0, + "max": "", + "id": "-MEzSznREJwQj8HXnRwG" + }, + { + "name": "death_save_roll", + "current": "@{wtype}&{template:simple} {{rname=^{death-save-u}}} {{mod=@{death_save_bonus}}} {{r1=[[@{d20}+@{death_save_bonus}@{pbd_safe}]]}} {{always=1}} {{r2=[[@{d20}+@{death_save_bonus}@{pbd_safe}]]}} {{global=@{global_save_mod}}} @{charname_output}", + "max": "", + "id": "-MEzSznzxw1KwWHnbf-7" + }, + { + "name": "global_damage_mod_roll", + "current": "", + "max": "", + "id": "-MEzSzutcgA-qh0-Xqqy" + }, + { + "name": "global_damage_mod_crit", + "current": "", + "max": "", + "id": "-MEzSzuv3ENhUQfDTt6K" + }, + { + "name": "global_damage_mod_type", + "current": "", + "max": "", + "id": "-MEzSzuwwCNmUL_HZnzG" + }, + { + "name": "lpmancer_status", + "current": "", + "max": "", + "id": "-MEzZeta2geotJWljP0u" + }, + { + "name": "repeating_traits_-MEzZRvKyT2PtlLYNSCc_name", + "current": "Rage", + "max": "", + "id": "-MEz_RvbYzONFBOIJUqi" + }, + { + "name": "repeating_traits_-MEzZRvKyT2PtlLYNSCc_description", + "current": "In battle, you fight with primal ferocity. On your turn, you can enter a rage as a bonus action.\nWhile raging, you gain the following benefits if you aren’t wearing heavy armor:\n-You have advantage on Strength checks and Strength saving throws.\n-When you make a melee weapon attack using Strength, you gain a bonus to the damage roll that increases as you gain levels as a barbarian, as shown in the Rage Damage column of the Barbarian table.\n-You have resistance to bludgeoning, piercing, and slashing damage.\nIf you are able to cast spells, you can’t cast them or concentrate on them while raging.\nYour rage lasts for 1 minute. It ends early if you are knocked unconscious or if your turn ends and you haven’t attacked a hostile creature since your last turn or taken damage since then. You can also end your rage on your turn as a bonus action.\nOnce you have raged the number of times shown for your barbarian level in the Rages column of the Barbarian table, you must finish a long rest before you can rage again.", + "max": "", + "id": "-MEz_RvcbWzqMlsc0Pdj" + }, + { + "name": "repeating_traits_-MEzZRvKyT2PtlLYNSCc_source_type", + "current": "Barbarian", + "max": "", + "id": "-MEz_RvdgBURhEoID0En" + }, + { + "name": "repeating_traits_-MEzZRvKyT2PtlLYNSCc_source", + "current": "Class", + "max": "", + "id": "-MEz_RveGn7O2t_vKND8" + }, + { + "name": "repeating_traits_-MEzZRvKyT2PtlLYNSCc_options-flag", + "current": "0", + "max": "", + "id": "-MEz_Rvg0-6AAjyW4yqi" + }, + { + "name": "repeating_traits_-MEzZRvKyT2PtlLYNSCc_display_flag", + "current": "on", + "max": "", + "id": "-MEz_RvhcZvCdvq-bsdI" + }, + { + "name": "repeating_damagemod_-MEzZRvLNrnl5JjZi7Lx_global_damage_name", + "current": "Rage Damage", + "max": "", + "id": "-MEz_RvicanBKQCme69G" + }, + { + "name": "repeating_damagemod_-MEzZRvLNrnl5JjZi7Lx_global_damage_damage", + "current": "2", + "max": "", + "id": "-MEz_RvjM6agovRYtaOI" + }, + { + "name": "repeating_damagemod_-MEzZRvLNrnl5JjZi7Lx_global_damage_type", + "current": "Rage", + "max": "", + "id": "-MEz_RvlmzXLvdYIB4bJ" + }, + { + "name": "repeating_damagemod_-MEzZRvLNrnl5JjZi7Lx_global_damage_active_flag", + "current": "0", + "max": "", + "id": "-MEz_RvneCtF5SPcD9kG" + }, + { + "name": "repeating_damagemod_-MEzZRvLNrnl5JjZi7Lx_options-flag", + "current": 0, + "max": "", + "id": "-MEz_Rvo-5k8qo3-XAqH" + }, + { + "name": "repeating_traits_-MEzZRvLNrnl5JjZi7Ly_name", + "current": "Unarmored Defense", + "max": "", + "id": "-MEz_RvrXxTs2kq0wby3" + }, + { + "name": "repeating_traits_-MEzZRvLNrnl5JjZi7Ly_description", + "current": "While you are not wearing any armor, your Armor⁠ Class equals 10 + your Dexterity modifier + your Constitution modifier. You can use a shield and still gain this benefit.", + "max": "", + "id": "-MEz_RvsRvPr0rfWIekR" + }, + { + "name": "repeating_traits_-MEzZRvLNrnl5JjZi7Ly_source_type", + "current": "Barbarian", + "max": "", + "id": "-MEz_RvtiwCX2q2D0Hvt" + }, + { + "name": "repeating_traits_-MEzZRvLNrnl5JjZi7Ly_source", + "current": "Class", + "max": "", + "id": "-MEz_RvuBN8FuO2be4rk" + }, + { + "name": "repeating_traits_-MEzZRvLNrnl5JjZi7Ly_options-flag", + "current": "0", + "max": "", + "id": "-MEz_Rvv6F2XSr10F7yF" + }, + { + "name": "repeating_traits_-MEzZRvLNrnl5JjZi7Ly_display_flag", + "current": "0", + "max": "", + "id": "-MEz_RvwM-2wYcIWCBbq" + }, + { + "name": "repeating_proficiencies_-MEzZRvLNrnl5JjZi7Lz_name", + "current": "Simple weapons", + "max": "", + "id": "-MEz_Rw06fhufXKBvuWj" + }, + { + "name": "repeating_proficiencies_-MEzZRvLNrnl5JjZi7Lz_prof_type", + "current": "WEAPON", + "max": "", + "id": "-MEz_Rw2UAQVImhr2esy" + }, + { + "name": "repeating_proficiencies_-MEzZRvLNrnl5JjZi7Lz_options-flag", + "current": 0, + "max": "", + "id": "-MEz_Rw371g_kMu14Nm8" + }, + { + "name": "repeating_proficiencies_-MEzZRvLNrnl5JjZi7M-_name", + "current": "Martial weapons", + "max": "", + "id": "-MEz_Rw4qOPvPKYuwhkr" + }, + { + "name": "repeating_proficiencies_-MEzZRvLNrnl5JjZi7M-_prof_type", + "current": "WEAPON", + "max": "", + "id": "-MEz_Rw5VGydjbTMfLy-" + }, + { + "name": "repeating_proficiencies_-MEzZRvLNrnl5JjZi7M-_options-flag", + "current": 0, + "max": "", + "id": "-MEz_Rw6Yr8kpPL1AhHT" + }, + { + "name": "repeating_proficiencies_-MEzZRvLNrnl5JjZi7M0_name", + "current": "Light Armor", + "max": "", + "id": "-MEz_Rw7Eg5FNU8OoUFs" + }, + { + "name": "repeating_proficiencies_-MEzZRvLNrnl5JjZi7M0_prof_type", + "current": "ARMOR", + "max": "", + "id": "-MEz_Rw89U07LEEsHsKJ" + }, + { + "name": "repeating_proficiencies_-MEzZRvLNrnl5JjZi7M0_options-flag", + "current": 0, + "max": "", + "id": "-MEz_Rw9WNzIpA-UgSvm" + }, + { + "name": "repeating_proficiencies_-MEzZRvLNrnl5JjZi7M1_name", + "current": "Medium Armor", + "max": "", + "id": "-MEz_RwAVPWlGW3e_MZB" + }, + { + "name": "repeating_proficiencies_-MEzZRvLNrnl5JjZi7M1_prof_type", + "current": "ARMOR", + "max": "", + "id": "-MEz_RwBtc_p7P_hKERR" + }, + { + "name": "repeating_proficiencies_-MEzZRvLNrnl5JjZi7M1_options-flag", + "current": 0, + "max": "", + "id": "-MEz_RwC6DFuDahNn2--" + }, + { + "name": "repeating_proficiencies_-MEzZRvLNrnl5JjZi7M2_name", + "current": "Shields", + "max": "", + "id": "-MEz_RwGn7gHenDE7Zp0" + }, + { + "name": "repeating_proficiencies_-MEzZRvLNrnl5JjZi7M2_prof_type", + "current": "ARMOR", + "max": "", + "id": "-MEz_RwH_4prqGdnxQg0" + }, + { + "name": "repeating_proficiencies_-MEzZRvLNrnl5JjZi7M2_options-flag", + "current": 0, + "max": "", + "id": "-MEz_RwIpThhDM79V_kX" + }, + { + "name": "repeating_traits_-MEzZRvLNrnl5JjZi7M3_name", + "current": "Speed", + "max": "", + "id": "-MEz_RwMRbB41XtgyT4N" + }, + { + "name": "repeating_traits_-MEzZRvLNrnl5JjZi7M3_description", + "current": "Your speed is not reduced by wearing heavy armor.", + "max": "", + "id": "-MEz_RwPuIlu0ymIedrN" + }, + { + "name": "repeating_traits_-MEzZRvLNrnl5JjZi7M3_source_type", + "current": "Dwarf", + "max": "", + "id": "-MEz_RwQXNSpm27l-pqy" + }, + { + "name": "repeating_traits_-MEzZRvLNrnl5JjZi7M3_source", + "current": "Racial", + "max": "", + "id": "-MEz_RwRnO1jVmXEpDv9" + }, + { + "name": "repeating_traits_-MEzZRvLNrnl5JjZi7M3_options-flag", + "current": "0", + "max": "", + "id": "-MEz_RwSfZxHS7dCY2qX" + }, + { + "name": "repeating_traits_-MEzZRvLNrnl5JjZi7M3_display_flag", + "current": "on", + "max": "", + "id": "-MEz_RwT46Sfsyd273l6" + }, + { + "name": "repeating_traits_-MEzZRvLNrnl5JjZi7M4_name", + "current": "Stonecunning", + "max": "", + "id": "-MEz_RwUmIXe_53feUu0" + }, + { + "name": "repeating_traits_-MEzZRvLNrnl5JjZi7M4_description", + "current": "Whenever you make an Intelligence (History) check related to the origin of stonework, you are considered proficient in the History skill and add double your proficiency bonus to the check, instead of your normal proficiency bonus.", + "max": "", + "id": "-MEz_RwWUuv4PXgmL67L" + }, + { + "name": "repeating_traits_-MEzZRvLNrnl5JjZi7M4_source_type", + "current": "Dwarf", + "max": "", + "id": "-MEz_RwX5-7fJRstWq10" + }, + { + "name": "repeating_traits_-MEzZRvLNrnl5JjZi7M4_source", + "current": "Racial", + "max": "", + "id": "-MEz_RwZ_BGmP6gV4lcf" + }, + { + "name": "repeating_traits_-MEzZRvLNrnl5JjZi7M4_options-flag", + "current": "0", + "max": "", + "id": "-MEz_Rw_sKqA4a5XOLHS" + }, + { + "name": "repeating_traits_-MEzZRvLNrnl5JjZi7M4_display_flag", + "current": "on", + "max": "", + "id": "-MEz_RwaFTvUcYLfJSSy" + }, + { + "name": "repeating_traits_-MEzZRvMAIkUNqhTq7BD_name", + "current": "Dwarven Resilience", + "max": "", + "id": "-MEz_RwbzSwwVlMvT-AD" + }, + { + "name": "repeating_traits_-MEzZRvMAIkUNqhTq7BD_description", + "current": "You have advantage on saving throws against poison, and you have resistance against poison damage", + "max": "", + "id": "-MEz_RwclYwYOOOEievM" + }, + { + "name": "repeating_traits_-MEzZRvMAIkUNqhTq7BD_source_type", + "current": "Dwarf", + "max": "", + "id": "-MEz_Rwd6ZYy7iKyw9hY" + }, + { + "name": "repeating_traits_-MEzZRvMAIkUNqhTq7BD_source", + "current": "Racial", + "max": "", + "id": "-MEz_RwfI5BDP0-JOUv9" + }, + { + "name": "repeating_traits_-MEzZRvMAIkUNqhTq7BD_options-flag", + "current": "0", + "max": "", + "id": "-MEz_RwgaYAZ0ddnpmd-" + }, + { + "name": "repeating_traits_-MEzZRvMAIkUNqhTq7BD_display_flag", + "current": "on", + "max": "", + "id": "-MEz_RwhuOT921-QZE_z" + }, + { + "name": "repeating_traits_-MEzZRvMAIkUNqhTq7BE_name", + "current": "Darkvision", + "max": "", + "id": "-MEz_RwiwhnzBgrihR49" + }, + { + "name": "repeating_traits_-MEzZRvMAIkUNqhTq7BE_description", + "current": "Accustomed to life underground, you have superior vision in dark and dim conditions. You can see in dim light within 60 feet of you as if it were bright light, and in darkness as if it were dim light. You can’t discern color in darkness, only shades of gray.", + "max": "", + "id": "-MEz_RwjuEsqa3Sb7phV" + }, + { + "name": "repeating_traits_-MEzZRvMAIkUNqhTq7BE_source_type", + "current": "Dwarf", + "max": "", + "id": "-MEz_Rwk3sIq1VPZFzSA" + }, + { + "name": "repeating_traits_-MEzZRvMAIkUNqhTq7BE_source", + "current": "Racial", + "max": "", + "id": "-MEz_Rwls1kIQ7X4SLZY" + }, + { + "name": "repeating_traits_-MEzZRvMAIkUNqhTq7BE_options-flag", + "current": "0", + "max": "", + "id": "-MEz_Rwm9_5IByX41L89" + }, + { + "name": "repeating_traits_-MEzZRvMAIkUNqhTq7BE_display_flag", + "current": "0", + "max": "", + "id": "-MEz_RwnN8BCVTVrQY0D" + }, + { + "name": "repeating_proficiencies_-MEzZRvMAIkUNqhTq7BF_name", + "current": "Battleaxe", + "max": "", + "id": "-MEz_RwplGAGBA1Wkza0" + }, + { + "name": "repeating_proficiencies_-MEzZRvMAIkUNqhTq7BF_prof_type", + "current": "WEAPON", + "max": "", + "id": "-MEz_Rwq5WemfkcErE53" + }, + { + "name": "repeating_proficiencies_-MEzZRvMAIkUNqhTq7BF_options-flag", + "current": 0, + "max": "", + "id": "-MEz_RwrOOwrcqyI0-gW" + }, + { + "name": "repeating_proficiencies_-MEzZRvMAIkUNqhTq7BG_name", + "current": "Handaxe", + "max": "", + "id": "-MEz_Rwsvps9vf_gQRt7" + }, + { + "name": "repeating_proficiencies_-MEzZRvMAIkUNqhTq7BG_prof_type", + "current": "WEAPON", + "max": "", + "id": "-MEz_Rwtu2bFqp-juuF0" + }, + { + "name": "repeating_proficiencies_-MEzZRvMAIkUNqhTq7BG_options-flag", + "current": 0, + "max": "", + "id": "-MEz_RwutfxGfnu5Dilp" + }, + { + "name": "repeating_proficiencies_-MEzZRvMAIkUNqhTq7BH_name", + "current": "Light Hammer", + "max": "", + "id": "-MEz_RwvcdfrhjlBixbl" + }, + { + "name": "repeating_proficiencies_-MEzZRvMAIkUNqhTq7BH_prof_type", + "current": "WEAPON", + "max": "", + "id": "-MEz_RwwBEyO4IVMwouB" + }, + { + "name": "repeating_proficiencies_-MEzZRvMAIkUNqhTq7BH_options-flag", + "current": 0, + "max": "", + "id": "-MEz_RwxSS7CvRMDQS4Q" + }, + { + "name": "repeating_proficiencies_-MEzZRvMAIkUNqhTq7BI_name", + "current": "Warhammer", + "max": "", + "id": "-MEz_RwyVZZwU-_5Ms6z" + }, + { + "name": "repeating_proficiencies_-MEzZRvMAIkUNqhTq7BI_prof_type", + "current": "WEAPON", + "max": "", + "id": "-MEz_Rwzl_3p5VWLli1k" + }, + { + "name": "repeating_proficiencies_-MEzZRvMAIkUNqhTq7BI_options-flag", + "current": 0, + "max": "", + "id": "-MEz_Rx-xtNbhFLH_Utq" + }, + { + "name": "repeating_proficiencies_-MEzZRvMAIkUNqhTq7BJ_name", + "current": "Common", + "max": "", + "id": "-MEz_Rx0Bm0uhQqqs6DK" + }, + { + "name": "repeating_proficiencies_-MEzZRvMAIkUNqhTq7BJ_prof_type", + "current": "LANGUAGE", + "max": "", + "id": "-MEz_Rx1tdAegVg-WH36" + }, + { + "name": "repeating_proficiencies_-MEzZRvMAIkUNqhTq7BJ_options-flag", + "current": 0, + "max": "", + "id": "-MEz_Rx3UQ4tRt7ZrOUC" + }, + { + "name": "repeating_proficiencies_-MEzZRvMAIkUNqhTq7BK_name", + "current": "Dwarvish", + "max": "", + "id": "-MEz_Rx4717kAns43t_w" + }, + { + "name": "repeating_proficiencies_-MEzZRvMAIkUNqhTq7BK_prof_type", + "current": "LANGUAGE", + "max": "", + "id": "-MEz_Rx5jmdok6fTnqvp" + }, + { + "name": "repeating_proficiencies_-MEzZRvMAIkUNqhTq7BK_options-flag", + "current": 0, + "max": "", + "id": "-MEz_Rx68yqnVy-Wger5" + }, + { + "name": "repeating_hpmod_-MEzZRvMAIkUNqhTq7BL_mod", + "current": "1", + "max": "", + "id": "-MEz_Rx8yv5YDrx83Xjn" + }, + { + "name": "repeating_hpmod_-MEzZRvMAIkUNqhTq7BL_source", + "current": "Dwarven Toughness", + "max": "", + "id": "-MEz_Rx9y7WdKfonKm95" + }, + { + "name": "repeating_hpmod_-MEzZRvMAIkUNqhTq7BL_levels", + "current": "total", + "max": "", + "id": "-MEz_RxAWL_r8TiNd42s" + }, + { + "name": "repeating_proficiencies_-MEzZRvMAIkUNqhTq7BM_name", + "current": "Heavy Armor", + "max": "", + "id": "-MEz_RxCBUFYmKS6MQ6_" + }, + { + "name": "repeating_proficiencies_-MEzZRvMAIkUNqhTq7BM_prof_type", + "current": "ARMOR", + "max": "", + "id": "-MEz_RxD6-_Zpv1Ej1JR" + }, + { + "name": "repeating_proficiencies_-MEzZRvMAIkUNqhTq7BM_options-flag", + "current": 0, + "max": "", + "id": "-MEz_RxEHwF3j1VMy-ab" + }, + { + "name": "repeating_tool_-MEzZRvMAIkUNqhTq7BN_toolname", + "current": "Brewer's Supplies", + "max": "", + "id": "-MEz_RxFOTwmOP9fHQYx" + }, + { + "name": "repeating_tool_-MEzZRvMAIkUNqhTq7BN_toolbonus_base", + "current": "(@{pb})", + "max": "", + "id": "-MEz_RxGkB3kt6mEP6-g" + }, + { + "name": "repeating_tool_-MEzZRvMAIkUNqhTq7BN_toolattr_base", + "current": "?{Attribute?|Strength,@{strength_mod}|Dexterity,@{dexterity_mod}|Constitution,@{constitution_mod}|Intelligence,@{intelligence_mod}|Wisdom,@{wisdom_mod}|Charisma,@{charisma_mod}}", + "max": "", + "id": "-MEz_RxHa318A9E_3N13" + }, + { + "name": "repeating_tool_-MEzZRvMAIkUNqhTq7BN_options-flag", + "current": 0, + "max": "", + "id": "-MEz_RxJMQQX2X1tydL-" + }, + { + "name": "repeating_proficiencies_-MEzZRvN5RR9QzbeCg8n_name", + "current": "Unarmed Strike", + "max": "", + "id": "-MEz_RxLBc2UZ9Ql_aey" + }, + { + "name": "repeating_proficiencies_-MEzZRvN5RR9QzbeCg8n_prof_type", + "current": "WEAPON", + "max": "", + "id": "-MEz_RxO5FzqMAb8Gqzu" + }, + { + "name": "repeating_proficiencies_-MEzZRvN5RR9QzbeCg8n_options-flag", + "current": 0, + "max": "", + "id": "-MEz_RxQPt7gml-XnQBf" + }, + { + "name": "repeating_inventory_-MEzZRvN5RR9QzbeCg8o_itemname", + "current": "Warhammer", + "max": "", + "id": "-MEz_RxRq_KTGM_zqHt8" + }, + { + "name": "repeating_inventory_-MEzZRvN5RR9QzbeCg8o_itemcount", + "current": 1, + "max": "", + "id": "-MEz_RxSMn0inqe-DdxY" + }, + { + "name": "repeating_inventory_-MEzZRvN5RR9QzbeCg8o_itemproperties", + "current": "Versatile", + "max": "", + "id": "-MEz_RxUXSeKxX98-JbN" + }, + { + "name": "repeating_inventory_-MEzZRvN5RR9QzbeCg8o_itemweight", + "current": "2", + "max": "", + "id": "-MEz_RxVg9UT5yGAhm5Z" + }, + { + "name": "repeating_inventory_-MEzZRvN5RR9QzbeCg8o_itemcontent", + "current": "", + "max": "", + "id": "-MEz_RxWxWoA1Kagd8K-" + }, + { + "name": "repeating_inventory_-MEzZRvN5RR9QzbeCg8o_itemmodifiers", + "current": "Item Type: Melee Weapon, Damage: 1d8, Damage Type: Bludgeoning, Alternate Damage: 1d10, Alternate Damage Type: Bludgeoning", + "max": "", + "id": "-MEz_RxX0f7XVTvE2b00" + }, + { + "name": "repeating_inventory_-MEzZRvN5RR9QzbeCg8o_hasattack", + "current": 0, + "max": "", + "id": "-MEz_RxYEWDvbBW8x6F0" + }, + { + "name": "repeating_inventory_-MEzZRvN5RR9QzbeCg8o_useasresource", + "current": 0, + "max": "", + "id": "-MEz_Rx_L9zbieyHRzpE" + }, + { + "name": "repeating_inventory_-MEzZRvN5RR9QzbeCg8p_itemname", + "current": "Handaxe", + "max": "", + "id": "-MEz_RxaLVE44cjXs30C" + }, + { + "name": "repeating_inventory_-MEzZRvN5RR9QzbeCg8p_itemcount", + "current": 1, + "max": "", + "id": "-MEz_RxbbRIo9sNgXE7y" + }, + { + "name": "repeating_inventory_-MEzZRvN5RR9QzbeCg8p_itemproperties", + "current": "Light, Range, Thrown", + "max": "", + "id": "-MEz_Rxc7x7vqiawLvX0" + }, + { + "name": "repeating_inventory_-MEzZRvN5RR9QzbeCg8p_itemweight", + "current": "2", + "max": "", + "id": "-MEz_Rxe49FFw7FQbigH" + }, + { + "name": "repeating_inventory_-MEzZRvN5RR9QzbeCg8p_itemcontent", + "current": "", + "max": "", + "id": "-MEz_RxgyJSI-kMOVkSd" + }, + { + "name": "repeating_inventory_-MEzZRvN5RR9QzbeCg8p_itemmodifiers", + "current": "Item Type: Melee Weapon, Damage: 1d6, Damage Type: Slashing, Range: 20/60,Critical Range: 20,Critical Range: 20,Critical Range: 20,Critical Range: 20,Critical Range: 20,Critical Range: 20,Critical Range: 20,Critical Range: 20,Critical Range: 20,Critical Range: 20,Critical Range: 20", + "max": "", + "id": "-MEz_RxgyJSI-kMOVkSe" + }, + { + "name": "repeating_inventory_-MEzZRvN5RR9QzbeCg8p_hasattack", + "current": 1, + "max": "", + "id": "-MEz_Rxio1Yf4Kc7XtYH" + }, + { + "name": "repeating_inventory_-MEzZRvN5RR9QzbeCg8p_useasresource", + "current": 0, + "max": "", + "id": "-MEz_RxjU3vBJSTx-r5y" + }, + { + "name": "repeating_inventory_-MEzZRvN5RR9QzbeCg8q_itemname", + "current": "Explorer's Pack", + "max": "", + "id": "-MEz_RxkITz70k9AHVk6" + }, + { + "name": "repeating_inventory_-MEzZRvN5RR9QzbeCg8q_itemcount", + "current": 1, + "max": "", + "id": "-MEz_Rxlj_nfC36kDSLh" + }, + { + "name": "repeating_inventory_-MEzZRvN5RR9QzbeCg8q_itemproperties", + "current": "", + "max": "", + "id": "-MEz_Rxm9NZ7ED7Nbvyz" + }, + { + "name": "repeating_inventory_-MEzZRvN5RR9QzbeCg8q_itemweight", + "current": 0, + "max": "", + "id": "-MEz_RxntFDDmIFkcHHn" + }, + { + "name": "repeating_inventory_-MEzZRvN5RR9QzbeCg8q_itemcontent", + "current": "Includes:\n\n• a backpack\n\n• a bedroll\n\n• a mess kit\n\n• a tinderbox\n\n• 10 torches\n\n• 10 days of rations\n\n• a waterskin\n\n• 50 feet of hempen rope\n\n", + "max": "", + "id": "-MEz_RxoVsQjqwa-ZWw3" + }, + { + "name": "repeating_inventory_-MEzZRvN5RR9QzbeCg8q_itemmodifiers", + "current": "Item Type: Items", + "max": "", + "id": "-MEz_RxqKbEIZQ8oOPF-" + }, + { + "name": "repeating_inventory_-MEzZRvN5RR9QzbeCg8q_hasattack", + "current": 0, + "max": "", + "id": "-MEz_RxrFETxf8zOd0uB" + }, + { + "name": "repeating_inventory_-MEzZRvN5RR9QzbeCg8q_useasresource", + "current": 0, + "max": "", + "id": "-MEz_Rxs2DULHDnZrKt4" + }, + { + "name": "repeating_inventory_-MEzZRvN5RR9QzbeCg8r_itemname", + "current": "Javelin", + "max": "", + "id": "-MEz_Rxtfqjisto-31Ic" + }, + { + "name": "repeating_inventory_-MEzZRvN5RR9QzbeCg8r_itemcount", + "current": 4, + "max": "", + "id": "-MEz_RxuFFwmEKbUO7Go" + }, + { + "name": "repeating_inventory_-MEzZRvN5RR9QzbeCg8r_itemproperties", + "current": "Range, Thrown", + "max": "", + "id": "-MEz_RxvkhWaXjNchYhx" + }, + { + "name": "repeating_inventory_-MEzZRvN5RR9QzbeCg8r_itemweight", + "current": "2", + "max": "", + "id": "-MEz_RxwUU81snaVh49K" + }, + { + "name": "repeating_inventory_-MEzZRvN5RR9QzbeCg8r_itemcontent", + "current": "", + "max": "", + "id": "-MEz_RxxmB3HGYGJ4rBZ" + }, + { + "name": "repeating_inventory_-MEzZRvN5RR9QzbeCg8r_itemmodifiers", + "current": "Item Type: Melee Weapon, Damage: 1d6, Damage Type: Piercing, Range: 30/120,Critical Range: 20,Critical Range: 20,Critical Range: 20,Critical Range: 20,Critical Range: 20,Critical Range: 20,Critical Range: 20,Critical Range: 20,Critical Range: 20,Critical Range: 20,Critical Range: 20", + "max": "", + "id": "-MEz_RxyJfExy0kv-B5g" + }, + { + "name": "repeating_inventory_-MEzZRvN5RR9QzbeCg8r_hasattack", + "current": 1, + "max": "", + "id": "-MEz_Ry-MZGVm4Lig30J" + }, + { + "name": "repeating_inventory_-MEzZRvN5RR9QzbeCg8r_useasresource", + "current": 0, + "max": "", + "id": "-MEz_Ry0bbkeF8D-n9y3" + }, + { + "name": "repeating_inventory_-MEzZRvN5RR9QzbeCg8s_itemname", + "current": "Backpack", + "max": "", + "id": "-MEz_Ry1rWiIDn4kNt5G" + }, + { + "name": "repeating_inventory_-MEzZRvN5RR9QzbeCg8s_itemcount", + "current": 1, + "max": "", + "id": "-MEz_Ry2GmC1NsO2kiql" + }, + { + "name": "repeating_inventory_-MEzZRvN5RR9QzbeCg8s_itemproperties", + "current": "", + "max": "", + "id": "-MEz_Ry34JNbNYZG0AG-" + }, + { + "name": "repeating_inventory_-MEzZRvN5RR9QzbeCg8s_itemweight", + "current": "5", + "max": "", + "id": "-MEz_Ry4Jk0e8J-6AeG0" + }, + { + "name": "repeating_inventory_-MEzZRvN5RR9QzbeCg8s_itemcontent", + "current": "A backpack can hold one cubic foot or 30 pounds of gear. You can also strap items, such as a bedroll or a coil of rope, to the outside of a backpack.\n\n", + "max": "", + "id": "-MEz_Ry5pYo1Ymd6lcA8" + }, + { + "name": "repeating_inventory_-MEzZRvN5RR9QzbeCg8s_itemmodifiers", + "current": "Item Type: Adventuring Gear", + "max": "", + "id": "-MEz_Ry7Tn7ihgOSddEg" + }, + { + "name": "repeating_inventory_-MEzZRvN5RR9QzbeCg8s_hasattack", + "current": 0, + "max": "", + "id": "-MEz_Ry8M1n52KPxkDgw" + }, + { + "name": "repeating_inventory_-MEzZRvN5RR9QzbeCg8s_useasresource", + "current": 0, + "max": "", + "id": "-MEz_Ry9zO0B9JxnyGLv" + }, + { + "name": "repeating_inventory_-MEzZRvN5RR9QzbeCg8t_itemname", + "current": "Bedroll", + "max": "", + "id": "-MEz_RyA3LjyCgBVCsia" + }, + { + "name": "repeating_inventory_-MEzZRvN5RR9QzbeCg8t_itemcount", + "current": 1, + "max": "", + "id": "-MEz_RyB8wntkhqgOinO" + }, + { + "name": "repeating_inventory_-MEzZRvN5RR9QzbeCg8t_itemproperties", + "current": "", + "max": "", + "id": "-MEz_RyCmt2yOOo4R-d6" + }, + { + "name": "repeating_inventory_-MEzZRvN5RR9QzbeCg8t_itemweight", + "current": "7", + "max": "", + "id": "-MEz_RyDmnczZrHow_QA" + }, + { + "name": "repeating_inventory_-MEzZRvN5RR9QzbeCg8t_itemcontent", + "current": "", + "max": "", + "id": "-MEz_RyE3d1O9zZMXB-3" + }, + { + "name": "repeating_inventory_-MEzZRvN5RR9QzbeCg8t_itemmodifiers", + "current": "Item Type: Adventuring Gear", + "max": "", + "id": "-MEz_RyFEXc5oceI4-yx" + }, + { + "name": "repeating_inventory_-MEzZRvN5RR9QzbeCg8t_hasattack", + "current": 0, + "max": "", + "id": "-MEz_RyGSSr7j3vd1-rf" + }, + { + "name": "repeating_inventory_-MEzZRvN5RR9QzbeCg8t_useasresource", + "current": 0, + "max": "", + "id": "-MEz_RyHhCzWtpO5dYIp" + }, + { + "name": "repeating_inventory_-MEzZRvN5RR9QzbeCg8u_itemname", + "current": "Mess kit", + "max": "", + "id": "-MEz_RyIqylS2hnDF0q5" + }, + { + "name": "repeating_inventory_-MEzZRvN5RR9QzbeCg8u_itemcount", + "current": 1, + "max": "", + "id": "-MEz_RyJMBBtJSH4Hfbs" + }, + { + "name": "repeating_inventory_-MEzZRvN5RR9QzbeCg8u_itemproperties", + "current": "", + "max": "", + "id": "-MEz_RyK6AZ7dex1jFD3" + }, + { + "name": "repeating_inventory_-MEzZRvN5RR9QzbeCg8u_itemweight", + "current": "1", + "max": "", + "id": "-MEz_RyLrRXE2aGJKJ1F" + }, + { + "name": "repeating_inventory_-MEzZRvN5RR9QzbeCg8u_itemcontent", + "current": "This tin box contains a cup and simple cutlery. The box clamps together, and one side can be used as a cooking pan and the other as a plate or shallow bowl.", + "max": "", + "id": "-MEz_RyMeZwTExLyWpDZ" + }, + { + "name": "repeating_inventory_-MEzZRvN5RR9QzbeCg8u_itemmodifiers", + "current": "Item Type: Adventuring Gear", + "max": "", + "id": "-MEz_RyPddCBtlYaksTg" + }, + { + "name": "repeating_inventory_-MEzZRvN5RR9QzbeCg8u_hasattack", + "current": 0, + "max": "", + "id": "-MEz_RyQQD_H3Sv2Qrg5" + }, + { + "name": "repeating_inventory_-MEzZRvN5RR9QzbeCg8u_useasresource", + "current": 0, + "max": "", + "id": "-MEz_RySKnCJE4GDv_DS" + }, + { + "name": "repeating_inventory_-MEzZRvN5RR9QzbeCg8v_itemname", + "current": "Tinderbox", + "max": "", + "id": "-MEz_RyTF_wPL_k1bzei" + }, + { + "name": "repeating_inventory_-MEzZRvN5RR9QzbeCg8v_itemcount", + "current": 1, + "max": "", + "id": "-MEz_RyUR6S-VJgXG9Fv" + }, + { + "name": "repeating_inventory_-MEzZRvN5RR9QzbeCg8v_itemproperties", + "current": "", + "max": "", + "id": "-MEz_RyVdJiHYXel3HQB" + }, + { + "name": "repeating_inventory_-MEzZRvN5RR9QzbeCg8v_itemweight", + "current": "1", + "max": "", + "id": "-MEz_RyWjreGjiDe8vZK" + }, + { + "name": "repeating_inventory_-MEzZRvN5RR9QzbeCg8v_itemcontent", + "current": "This small container holds flint, fire steel, and tinder (usually dry cloth soaked in light oil) used to kindle a fire. Using it to light a torch - or anything else with abundant, exposed fuel - takes an action. Lighting any other fire takes 1 minute.\n\n", + "max": "", + "id": "-MEz_RyX4t021076Fq1P" + }, + { + "name": "repeating_inventory_-MEzZRvN5RR9QzbeCg8v_itemmodifiers", + "current": "Item Type: Adventuring Gear", + "max": "", + "id": "-MEz_RyYHH-DD9LCrIZo" + }, + { + "name": "repeating_inventory_-MEzZRvN5RR9QzbeCg8v_hasattack", + "current": 0, + "max": "", + "id": "-MEz_RyZpnzy3E_zTv0N" + }, + { + "name": "repeating_inventory_-MEzZRvN5RR9QzbeCg8v_useasresource", + "current": 0, + "max": "", + "id": "-MEz_Ry_E97_Zc357rV1" + }, + { + "name": "repeating_inventory_-MEzZRvN5RR9QzbeCg8w_itemname", + "current": "Torch", + "max": "", + "id": "-MEz_RyaiohJSx4Hnpwn" + }, + { + "name": "repeating_inventory_-MEzZRvN5RR9QzbeCg8w_itemcount", + "current": 10, + "max": "", + "id": "-MEz_RycWfaFjt9wdcrk" + }, + { + "name": "repeating_inventory_-MEzZRvN5RR9QzbeCg8w_itemproperties", + "current": "", + "max": "", + "id": "-MEz_RydCYKbycBK0gXw" + }, + { + "name": "repeating_inventory_-MEzZRvN5RR9QzbeCg8w_itemweight", + "current": "1", + "max": "", + "id": "-MEz_RyeW7P_xjTHcygH" + }, + { + "name": "repeating_inventory_-MEzZRvN5RR9QzbeCg8w_itemcontent", + "current": "A torch burns for 1 hour, providing bright light in a 20-foot radius and dim light for an additional 20 feet. If you make a melee attack with a burning torch and hit, it deals 1 fire damage.\n\n", + "max": "", + "id": "-MEz_Ryf4y16ndGYSQpg" + }, + { + "name": "repeating_inventory_-MEzZRvN5RR9QzbeCg8w_itemmodifiers", + "current": "Item Type: Adventuring Gear, Damage: 1, Damage Type: Fire, Range: 20/40", + "max": "", + "id": "-MEz_RygPrXRryiPFWX1" + }, + { + "name": "repeating_inventory_-MEzZRvN5RR9QzbeCg8w_hasattack", + "current": 0, + "max": "", + "id": "-MEz_RyitTN6Z8CGsd-t" + }, + { + "name": "repeating_inventory_-MEzZRvN5RR9QzbeCg8w_useasresource", + "current": 0, + "max": "", + "id": "-MEz_RyjkQOShwUNJNcN" + }, + { + "name": "repeating_inventory_-MEzZRvN5RR9QzbeCg8x_itemname", + "current": "Rations", + "max": "", + "id": "-MEz_RykChqVk9Ih7cag" + }, + { + "name": "repeating_inventory_-MEzZRvN5RR9QzbeCg8x_itemcount", + "current": "10", + "max": "", + "id": "-MEz_Rylyt_FGk5ZO5Ej" + }, + { + "name": "repeating_inventory_-MEzZRvN5RR9QzbeCg8x_itemproperties", + "current": "", + "max": "", + "id": "-MEz_RymXienQWE-NEa7" + }, + { + "name": "repeating_inventory_-MEzZRvN5RR9QzbeCg8x_itemweight", + "current": "2", + "max": "", + "id": "-MEz_RynJLFs0Y2KKptG" + }, + { + "name": "repeating_inventory_-MEzZRvN5RR9QzbeCg8x_itemcontent", + "current": "Rations consist of dry foods suitable for extended travel, including jerky, dried fruit, hardtack, and nuts.", + "max": "", + "id": "-MEz_RyoCTqgIggkMbfT" + }, + { + "name": "repeating_inventory_-MEzZRvN5RR9QzbeCg8x_itemmodifiers", + "current": "Item Type: Adventuring Gear", + "max": "", + "id": "-MEz_RypN7yqnjqL91TK" + }, + { + "name": "repeating_inventory_-MEzZRvN5RR9QzbeCg8x_hasattack", + "current": 0, + "max": "", + "id": "-MEz_RyqTKoCXCaB6cG6" + }, + { + "name": "repeating_inventory_-MEzZRvN5RR9QzbeCg8x_useasresource", + "current": 0, + "max": "", + "id": "-MEz_RyuFMomgSMpFeok" + }, + { + "name": "repeating_inventory_-MEzZRvN5RR9QzbeCg8y_itemname", + "current": "Waterskin", + "max": "", + "id": "-MEz_RyvYUcLJvSXbIIq" + }, + { + "name": "repeating_inventory_-MEzZRvN5RR9QzbeCg8y_itemcount", + "current": 1, + "max": "", + "id": "-MEz_RyxWEMqf7x_n-mo" + }, + { + "name": "repeating_inventory_-MEzZRvN5RR9QzbeCg8y_itemproperties", + "current": "", + "max": "", + "id": "-MEz_Ryyc7ECTA_n12Ww" + }, + { + "name": "repeating_inventory_-MEzZRvN5RR9QzbeCg8y_itemweight", + "current": "5", + "max": "", + "id": "-MEz_RyzAtbSq-m1i2bt" + }, + { + "name": "repeating_inventory_-MEzZRvN5RR9QzbeCg8y_itemcontent", + "current": "A waterskin can hold up to 4 pints of liquid.\n\n", + "max": "", + "id": "-MEz_Rz-XhmRfJ8PtJ47" + }, + { + "name": "repeating_inventory_-MEzZRvN5RR9QzbeCg8y_itemmodifiers", + "current": "Item Type: Adventuring Gear", + "max": "", + "id": "-MEz_Rz0Y3X450MkTrfS" + }, + { + "name": "repeating_inventory_-MEzZRvN5RR9QzbeCg8y_hasattack", + "current": 0, + "max": "", + "id": "-MEz_Rz1fXCC7Zw4rYMj" + }, + { + "name": "repeating_inventory_-MEzZRvN5RR9QzbeCg8y_useasresource", + "current": 0, + "max": "", + "id": "-MEz_Rz3oceKsv3dXLzL" + }, + { + "name": "repeating_inventory_-MEzZRvOGpQKYMk8zQ8D_itemname", + "current": "Hempen rope", + "max": "", + "id": "-MEz_Rz4cRZe3wW1w5iK" + }, + { + "name": "repeating_inventory_-MEzZRvOGpQKYMk8zQ8D_itemcount", + "current": 1, + "max": "", + "id": "-MEz_Rz5GQpCoRjScU9f" + }, + { + "name": "repeating_inventory_-MEzZRvOGpQKYMk8zQ8D_itemproperties", + "current": "", + "max": "", + "id": "-MEz_Rz60sagCwQNVOhF" + }, + { + "name": "repeating_inventory_-MEzZRvOGpQKYMk8zQ8D_itemweight", + "current": "10", + "max": "", + "id": "-MEz_Rz7o87y_d4IXf54" + }, + { + "name": "repeating_inventory_-MEzZRvOGpQKYMk8zQ8D_itemcontent", + "current": "Rope, whether made of hemp or silk, has 2 hit points and can be burst with a DC 17 Strength check.\n", + "max": "", + "id": "-MEz_Rz8y7w7cG0gwfyC" + }, + { + "name": "repeating_inventory_-MEzZRvOGpQKYMk8zQ8D_itemmodifiers", + "current": "Item Type: Adventuring Gear", + "max": "", + "id": "-MEz_RzA_75SKTl0DnEX" + }, + { + "name": "repeating_inventory_-MEzZRvOGpQKYMk8zQ8D_hasattack", + "current": 0, + "max": "", + "id": "-MEz_RzB3UqdZ80LwsY9" + }, + { + "name": "repeating_inventory_-MEzZRvOGpQKYMk8zQ8D_useasresource", + "current": 0, + "max": "", + "id": "-MEz_RzC075e4Ml6TchD" + }, + { + "name": "repeating_inventory_-MEzZRvN5RR9QzbeCg8o_itemattackid", + "current": "", + "max": "", + "id": "-MEz_RzHeZhzcA49Rgh-" + }, + { + "name": "repeating_inventory_-MEzZRvN5RR9QzbeCg8p_itemattackid", + "current": "-MEzZRzEn658BC-ZOQ79", + "max": "", + "id": "-MEz_RzJOMOAsiDARV5_" + }, + { + "name": "repeating_inventory_-MEzZRvN5RR9QzbeCg8r_itemattackid", + "current": "-MEzZRzEn658BC-ZOQ7A", + "max": "", + "id": "-MEz_RzK4B64reAxmuAR" + }, + { + "name": "age", + "current": "100", + "max": "", + "id": "-MEz_S-NvadYKopkyJcJ" + }, + { + "name": "height", + "current": "4'", + "max": "", + "id": "-MEz_S-S8C1b4_LpwhJR" + }, + { + "name": "weight", + "current": "126", + "max": "", + "id": "-MEz_S-XCDZsF05Zt1qZ" + }, + { + "name": "eyes", + "current": "blue", + "max": "", + "id": "-MEz_S-bysRKvLwym3SJ" + }, + { + "name": "hair", + "current": "brown", + "max": "", + "id": "-MEz_S-f5E_4w2iwKytE" + }, + { + "name": "skin", + "current": "light", + "max": "", + "id": "-MEz_S-iB4R9_CAjz0iu" + }, + { + "name": "options-flag-personality", + "current": 0, + "max": "", + "id": "-MEz_S-vFE96T3uGlZgy" + }, + { + "name": "options-flag-ideals", + "current": 0, + "max": "", + "id": "-MEz_S01Y5GK9s9M6POX" + }, + { + "name": "options-flag-bonds", + "current": 0, + "max": "", + "id": "-MEz_S084fRzpVp4AW1d" + }, + { + "name": "options-flag-flaws", + "current": 0, + "max": "", + "id": "-MEz_S0HpOauoSgF2uWK" + }, + { + "name": "repeating_tool_-MEzZRvMAIkUNqhTq7BN_toolattr", + "current": "QUERY", + "max": "", + "id": "-MEz_S2eUNsajsI5Y3ed" + }, + { + "name": "repeating_tool_-MEzZRvMAIkUNqhTq7BN_toolbonus", + "current": "?{Attribute?|Strength,@{strength_mod}|Dexterity,@{dexterity_mod}|Constitution,@{constitution_mod}|Intelligence,@{intelligence_mod}|Wisdom,@{wisdom_mod}|Charisma,@{charisma_mod}}+0+2", + "max": "", + "id": "-MEz_S2fpElDB-6pdnsk" + }, + { + "name": "repeating_tool_-MEzZRvMAIkUNqhTq7BN_toolbonus_display", + "current": "?", + "max": "", + "id": "-MEz_S2h2DwCZ6HWeWGR" + }, + { + "name": "repeating_attack_-MEzZRzEn658BC-ZOQ79_options-flag", + "current": "0", + "max": "", + "id": "-MEz_S2juigqDin7mMJ1" + }, + { + "name": "repeating_attack_-MEzZRzEn658BC-ZOQ79_itemid", + "current": "-MEzZRvN5RR9QzbeCg8p", + "max": "", + "id": "-MEz_S2l-M5BmYyez1Cx" + }, + { + "name": "repeating_attack_-MEzZRzEn658BC-ZOQ79_atkname", + "current": "Handaxe", + "max": "", + "id": "-MEz_S2nr1AdDfzREqpm" + }, + { + "name": "repeating_attack_-MEzZRzEn658BC-ZOQ79_dmgbase", + "current": "1d6", + "max": "", + "id": "-MEz_S2p0smHeNWpM6dF" + }, + { + "name": "repeating_attack_-MEzZRzEn658BC-ZOQ79_dmgtype", + "current": "Slashing", + "max": "", + "id": "-MEz_S2qSm1k4hyyg7wL" + }, + { + "name": "repeating_attack_-MEzZRzEn658BC-ZOQ79_atkrange", + "current": "20/60", + "max": "", + "id": "-MEz_S2tr0NrrbR4-_gE" + }, + { + "name": "repeating_attack_-MEzZRzEn658BC-ZOQ79_atkattr_base", + "current": "@{strength_mod}", + "max": "", + "id": "-MEz_S2vidbrgJX283Nu" + }, + { + "name": "repeating_attack_-MEzZRzEn658BC-ZOQ79_dmgattr", + "current": "@{strength_mod}", + "max": "", + "id": "-MEz_S2w-rth7C0b4_Bx" + }, + { + "name": "repeating_attack_-MEzZRzEn658BC-ZOQ79_atkmagic", + "current": "", + "max": "", + "id": "-MEz_S2xQ6wXVhQ1l3xf" + }, + { + "name": "repeating_attack_-MEzZRzEn658BC-ZOQ7A_options-flag", + "current": "0", + "max": "", + "id": "-MEz_S3-J-Od1nT9bNX_" + }, + { + "name": "repeating_attack_-MEzZRzEn658BC-ZOQ7A_itemid", + "current": "-MEzZRvN5RR9QzbeCg8r", + "max": "", + "id": "-MEz_S31Z58TqJ3Rfdms" + }, + { + "name": "repeating_attack_-MEzZRzEn658BC-ZOQ7A_atkname", + "current": "Javelin", + "max": "", + "id": "-MEz_S33zzzdF2I6s6cJ" + }, + { + "name": "repeating_attack_-MEzZRzEn658BC-ZOQ7A_dmgbase", + "current": "1d6", + "max": "", + "id": "-MEz_S34VNrV-ls9DhkI" + }, + { + "name": "repeating_attack_-MEzZRzEn658BC-ZOQ7A_dmgtype", + "current": "Piercing", + "max": "", + "id": "-MEz_S36xgEDVMdIm1jO" + }, + { + "name": "repeating_attack_-MEzZRzEn658BC-ZOQ7A_atkrange", + "current": "30/120", + "max": "", + "id": "-MEz_S37L0zaDrlHXHWL" + }, + { + "name": "repeating_attack_-MEzZRzEn658BC-ZOQ7A_atkattr_base", + "current": "@{strength_mod}", + "max": "", + "id": "-MEz_S38nTzaJ3B819Nv" + }, + { + "name": "repeating_attack_-MEzZRzEn658BC-ZOQ7A_dmgattr", + "current": "@{strength_mod}", + "max": "", + "id": "-MEz_S3AeRW2AZ6Btren" + }, + { + "name": "repeating_attack_-MEzZRzEn658BC-ZOQ7A_atkmagic", + "current": "", + "max": "", + "id": "-MEz_S3BbspPNWhBnDu6" + }, + { + "name": "repeating_attack_-MEzZRzEn658BC-ZOQ77_options-flag", + "current": "0", + "max": "", + "id": "-MEz_S5TzQXTOJnNwS95" + }, + { + "name": "repeating_attack_-MEzZRzEn658BC-ZOQ77_itemid", + "current": "-MEzZRvN5RR9QzbeCg8o", + "max": "", + "id": "-MEz_S5VgQ_rwn-EiBHU" + }, + { + "name": "repeating_attack_-MEzZRzEn658BC-ZOQ77_atkname", + "current": "Warhammer (One-Handed)", + "max": "", + "id": "-MEz_S5WgC0mIWB-VKkc" + }, + { + "name": "repeating_attack_-MEzZRzEn658BC-ZOQ77_dmgbase", + "current": "1d8", + "max": "", + "id": "-MEz_S5YoaoQ074Se-bC" + }, + { + "name": "repeating_attack_-MEzZRzEn658BC-ZOQ77_dmgtype", + "current": "Bludgeoning", + "max": "", + "id": "-MEz_S5Z_4hEJBOTGwpd" + }, + { + "name": "repeating_attack_-MEzZRzEn658BC-ZOQ77_atkattr_base", + "current": "@{strength_mod}", + "max": "", + "id": "-MEz_S5_8mADHinUq_1S" + }, + { + "name": "repeating_attack_-MEzZRzEn658BC-ZOQ77_dmgattr", + "current": "@{strength_mod}", + "max": "", + "id": "-MEz_S5aG4Y9AyH-v_X6" + }, + { + "name": "repeating_attack_-MEzZRzEn658BC-ZOQ77_atkmagic", + "current": "", + "max": "", + "id": "-MEz_S5crXpzmkuRxdas" + }, + { + "name": "repeating_tool_-MEzZRvMAIkUNqhTq7BN_toolroll", + "current": "@{wtype}&{template:simple} {{rname=@{toolname}}} {{mod=@{toolbonus}}} {{r1=[[@{d20}+@{toolbonus}[Mods]@{pbd_safe}]]}} {{always=1}} {{r2=[[@{d20}+@{toolbonus}[Mods]@{pbd_safe}]]}} {{global=@{global_skill_mod}}} @{charname_output}", + "max": "", + "id": "-MEz_S6s94XL6Gd3_HPL" + }, + { + "name": "repeating_attack_-MEzZRzEn658BC-ZOQ79_atkdmgtype", + "current": "1d6+1 Slashing ", + "max": "", + "id": "-MEz_S6xMOEUu7bl6biQ" + }, + { + "name": "repeating_attack_-MEzZRzEn658BC-ZOQ79_rollbase_dmg", + "current": "@{wtype}&{template:dmg} {{rname=@{atkname}}} @{atkflag} {{range=@{atkrange}}} @{dmgflag} {{dmg1=[[1d6 + 1[STR]]]}} {{dmg1type=Slashing}} @{dmg2flag} {{dmg2=[[0]]}} {{dmg2type=}} @{saveflag} {{desc=@{atk_desc}}} @{hldmg} {{spelllevel=@{spelllevel}}} {{innate=@{spell_innate}}} {{globaldamage=[[0]]}} {{globaldamagetype=@{global_damage_mod_type}}} @{charname_output}", + "max": "", + "id": "-MEz_S6zrtMDBuWTShtK" + }, + { + "name": "repeating_attack_-MEzZRzEn658BC-ZOQ79_rollbase_crit", + "current": "@{wtype}&{template:dmg} {{crit=1}} {{rname=@{atkname}}} @{atkflag} {{range=@{atkrange}}} @{dmgflag} {{dmg1=[[1d6 + 1[STR]]]}} {{dmg1type=Slashing}} @{dmg2flag} {{dmg2=[[0]]}} {{dmg2type=}} {{crit1=[[1d6]]}} {{crit2=[[0]]}} @{saveflag} {{desc=@{atk_desc}}} @{hldmg} {{spelllevel=@{spelllevel}}} {{innate=@{spell_innate}}} {{globaldamage=[[0]]}} {{globaldamagecrit=[[0]]}} {{globaldamagetype=@{global_damage_mod_type}}} @{charname_output}", + "max": "", + "id": "-MEz_S70JeDQhth915F1" + }, + { + "name": "repeating_attack_-MEzZRzEn658BC-ZOQ79_atkbonus", + "current": "+3", + "max": "", + "id": "-MEz_S71E_isKhoSrPLu" + }, + { + "name": "repeating_attack_-MEzZRzEn658BC-ZOQ79_rollbase", + "current": "@{wtype}&{template:atk} {{mod=@{atkbonus}}} {{rname=[@{atkname}](~repeating_attack_attack_dmg)}} {{rnamec=[@{atkname}](~repeating_attack_attack_crit)}} {{r1=[[@{d20}cs>@{atkcritrange} + 1[STR] + 2[PROF]]]}} @{rtype}cs>@{atkcritrange} + 1[STR] + 2[PROF]]]}} {{range=@{atkrange}}} {{desc=@{atk_desc}}} {{spelllevel=@{spelllevel}}} {{innate=@{spell_innate}}} {{globalattack=@{global_attack_mod}}} ammo=@{ammo} @{charname_output}", + "max": "", + "id": "-MEz_S72nQZrN3c3Zdik" + }, + { + "name": "repeating_attack_-MEzZRzEn658BC-ZOQ7A_atkdmgtype", + "current": "1d6+1 Piercing ", + "max": "", + "id": "-MEz_S736xc0LgI0GyYs" + }, + { + "name": "repeating_attack_-MEzZRzEn658BC-ZOQ7A_rollbase_dmg", + "current": "@{wtype}&{template:dmg} {{rname=@{atkname}}} @{atkflag} {{range=@{atkrange}}} @{dmgflag} {{dmg1=[[1d6 + 1[STR]]]}} {{dmg1type=Piercing}} @{dmg2flag} {{dmg2=[[0]]}} {{dmg2type=}} @{saveflag} {{desc=@{atk_desc}}} @{hldmg} {{spelllevel=@{spelllevel}}} {{innate=@{spell_innate}}} {{globaldamage=[[0]]}} {{globaldamagetype=@{global_damage_mod_type}}} @{charname_output}", + "max": "", + "id": "-MEz_S7445cgPsmeJmHJ" + }, + { + "name": "repeating_attack_-MEzZRzEn658BC-ZOQ7A_rollbase_crit", + "current": "@{wtype}&{template:dmg} {{crit=1}} {{rname=@{atkname}}} @{atkflag} {{range=@{atkrange}}} @{dmgflag} {{dmg1=[[1d6 + 1[STR]]]}} {{dmg1type=Piercing}} @{dmg2flag} {{dmg2=[[0]]}} {{dmg2type=}} {{crit1=[[1d6]]}} {{crit2=[[0]]}} @{saveflag} {{desc=@{atk_desc}}} @{hldmg} {{spelllevel=@{spelllevel}}} {{innate=@{spell_innate}}} {{globaldamage=[[0]]}} {{globaldamagecrit=[[0]]}} {{globaldamagetype=@{global_damage_mod_type}}} @{charname_output}", + "max": "", + "id": "-MEz_S77sALmf4thJIwU" + }, + { + "name": "repeating_attack_-MEzZRzEn658BC-ZOQ7A_atkbonus", + "current": "+3", + "max": "", + "id": "-MEz_S78xaPW61nOtbIf" + }, + { + "name": "repeating_attack_-MEzZRzEn658BC-ZOQ7A_rollbase", + "current": "@{wtype}&{template:atk} {{mod=@{atkbonus}}} {{rname=[@{atkname}](~repeating_attack_attack_dmg)}} {{rnamec=[@{atkname}](~repeating_attack_attack_crit)}} {{r1=[[@{d20}cs>@{atkcritrange} + 1[STR] + 2[PROF]]]}} @{rtype}cs>@{atkcritrange} + 1[STR] + 2[PROF]]]}} {{range=@{atkrange}}} {{desc=@{atk_desc}}} {{spelllevel=@{spelllevel}}} {{innate=@{spell_innate}}} {{globalattack=@{global_attack_mod}}} ammo=@{ammo} @{charname_output}", + "max": "", + "id": "-MEz_S798tO4BbdqLNux" + }, + { + "name": "_reporder_repeating_proficiencies", + "current": "-MEzZRvMAIkUNqhTq7BM,-MEzZRvLNrnl5JjZi7M0,-MEzZRvLNrnl5JjZi7M1,-MEzZRvLNrnl5JjZi7M2,-MEzZRvMAIkUNqhTq7BJ,-MEzZRvMAIkUNqhTq7BK,-MEzZRvMAIkUNqhTq7BF,-MEzZRvMAIkUNqhTq7BG,-MEzZRvMAIkUNqhTq7BH,-MEzZRvLNrnl5JjZi7M-,-MEzZRvLNrnl5JjZi7Lz,-MEzZRvN5RR9QzbeCg8n,-MEzZRvMAIkUNqhTq7BI", + "max": "", + "id": "-MEz_S7NKg6NYhallsAJ" + }, + { + "name": "repeating_attack_-MEzZRzEn658BC-ZOQ77_atkdmgtype", + "current": "1d8+1 Bludgeoning ", + "max": "", + "id": "-MEz_S7rYFEJEvOYO51S" + }, + { + "name": "repeating_attack_-MEzZRzEn658BC-ZOQ77_rollbase_dmg", + "current": "@{wtype}&{template:dmg} {{rname=@{atkname}}} @{atkflag} {{range=@{atkrange}}} @{dmgflag} {{dmg1=[[1d8 + 1[STR]]]}} {{dmg1type=Bludgeoning}} @{dmg2flag} {{dmg2=[[0]]}} {{dmg2type=}} @{saveflag} {{desc=@{atk_desc}}} @{hldmg} {{spelllevel=@{spelllevel}}} {{innate=@{spell_innate}}} {{globaldamage=[[0]]}} {{globaldamagetype=@{global_damage_mod_type}}} @{charname_output}", + "max": "", + "id": "-MEz_S7sHqmrWtRy-hjx" + }, + { + "name": "repeating_attack_-MEzZRzEn658BC-ZOQ77_rollbase_crit", + "current": "@{wtype}&{template:dmg} {{crit=1}} {{rname=@{atkname}}} @{atkflag} {{range=@{atkrange}}} @{dmgflag} {{dmg1=[[1d8 + 1[STR]]]}} {{dmg1type=Bludgeoning}} @{dmg2flag} {{dmg2=[[0]]}} {{dmg2type=}} {{crit1=[[1d8]]}} {{crit2=[[0]]}} @{saveflag} {{desc=@{atk_desc}}} @{hldmg} {{spelllevel=@{spelllevel}}} {{innate=@{spell_innate}}} {{globaldamage=[[0]]}} {{globaldamagecrit=[[0]]}} {{globaldamagetype=@{global_damage_mod_type}}} @{charname_output}", + "max": "", + "id": "-MEz_S7uOQ8UVCTJIxDk" + }, + { + "name": "repeating_attack_-MEzZRzEn658BC-ZOQ77_atkbonus", + "current": "+3", + "max": "", + "id": "-MEz_S7vIJGiVmju8xak" + }, + { + "name": "repeating_attack_-MEzZRzEn658BC-ZOQ77_rollbase", + "current": "@{wtype}&{template:atk} {{mod=@{atkbonus}}} {{rname=[@{atkname}](~repeating_attack_attack_dmg)}} {{rnamec=[@{atkname}](~repeating_attack_attack_crit)}} {{r1=[[@{d20}cs>@{atkcritrange} + 1[STR] + 2[PROF]]]}} @{rtype}cs>@{atkcritrange} + 1[STR] + 2[PROF]]]}} {{range=@{atkrange}}} {{desc=@{atk_desc}}} {{spelllevel=@{spelllevel}}} {{innate=@{spell_innate}}} {{globalattack=@{global_attack_mod}}} ammo=@{ammo} @{charname_output}", + "max": "", + "id": "-MEz_S7wydvXp3f6lXaG" + }, + { + "name": "ep", + "current": "", + "max": "", + "id": "-MFY6STclWdg-pcP8rHJ" + }, + { + "name": "sp", + "current": "55", + "max": "", + "id": "-MFYizOmftuuXWb2YzLn" + }, + { + "name": "cp", + "current": "26", + "max": "", + "id": "-MFYj9Hl4r2dqk70eR9z" + }, + { + "name": "deathsave_fail1", + "current": "0", + "max": "", + "id": "-MGkkoFpvf9bSLKf2MLZ" + }, + { + "name": "strength_maximum", + "current": 20, + "max": "", + "id": "-MHEeku2utRQIYg87hjK" + }, + { + "name": "dexterity_maximum", + "current": 20, + "max": "", + "id": "-MHEeku431F7_mxYGLGN" + }, + { + "name": "constitution_maximum", + "current": 20, + "max": "", + "id": "-MHEeku7vZQiilFWg_DX" + }, + { + "name": "intelligence_maximum", + "current": 20, + "max": "", + "id": "-MHEeku8P8MLKFz69NlL" + }, + { + "name": "wisdom_maximum", + "current": 20, + "max": "", + "id": "-MHEeku9DayUmZckIRAk" + }, + { + "name": "charisma_maximum", + "current": 20, + "max": "", + "id": "-MHEekuBRTNBIXIUktzx" + }, + { + "name": "repeating_traits_-MHEel-NCJUnf6Q5KNNZ_name", + "current": "Reckless Attack", + "max": "", + "id": "-MHEel-jGrwh82rR_p1H" + }, + { + "name": "repeating_traits_-MHEel-NCJUnf6Q5KNNZ_description", + "current": "Starting at 2nd level, you can throw aside all concern for defense to attack with fierce desperation. When you make your first attack on your turn, you can decide to a⁠ttack recklessly. Doing so gives you advantage on melee weapon a⁠ttack rolls using Strength during this turn, but atta⁠ck rolls against you have advantage until your next turn.", + "max": "", + "id": "-MHEel-kKMOgXPj8-ifE" + }, + { + "name": "repeating_traits_-MHEel-NCJUnf6Q5KNNZ_source_type", + "current": "Barbarian", + "max": "", + "id": "-MHEel-lJYAHTP_eAfjo" + }, + { + "name": "repeating_traits_-MHEel-NCJUnf6Q5KNNZ_source", + "current": "Class", + "max": "", + "id": "-MHEel-niey-ciVHXTLO" + }, + { + "name": "repeating_traits_-MHEel-NCJUnf6Q5KNNZ_options-flag", + "current": "0", + "max": "", + "id": "-MHEel-o-Y5PgYbnnHa2" + }, + { + "name": "repeating_traits_-MHEel-NCJUnf6Q5KNNZ_display_flag", + "current": "on", + "max": "", + "id": "-MHEel-pvI4JayFSWxXk" + }, + { + "name": "repeating_traits_-MHEel-NCJUnf6Q5KNNa_name", + "current": "Danger Sense", + "max": "", + "id": "-MHEel-qpKmPMwX4NV8S" + }, + { + "name": "repeating_traits_-MHEel-NCJUnf6Q5KNNa_description", + "current": "At 2nd level, you gain an uncanny sense of when things nearby aren’t as they should be, giving you an edge when you dodge away from danger.\nYou have advantage on Dexterity saving throws against effects that you can see, such as traps and spells. To gain this benefit, you can’t be blinded, deafened, or incapacitated.", + "max": "", + "id": "-MHEel-sfXQzZCaaVt91" + }, + { + "name": "repeating_traits_-MHEel-NCJUnf6Q5KNNa_source_type", + "current": "Barbarian", + "max": "", + "id": "-MHEel-tdA841jVMGQb0" + }, + { + "name": "repeating_traits_-MHEel-NCJUnf6Q5KNNa_source", + "current": "Class", + "max": "", + "id": "-MHEel-uIE3AAK86smzH" + }, + { + "name": "repeating_traits_-MHEel-NCJUnf6Q5KNNa_options-flag", + "current": "0", + "max": "", + "id": "-MHEel-wH6ijTte856zm" + }, + { + "name": "repeating_traits_-MHEel-NCJUnf6Q5KNNa_display_flag", + "current": "on", + "max": "", + "id": "-MHEel-x7RQ2HouLldEH" + }, + { + "name": "lp-mancer_status", + "current": "", + "max": "", + "id": "-MHEel093WS_7zU5KVEh" + }, + { + "name": "experience", + "current": "557", + "max": "", + "id": "-MKhRYXbzCt9n9dyG0Gb" + } + ], + "abilities": [] +} diff --git a/tests/test_character.py b/tests/test_character.py index 249de23..8c08393 100755 --- a/tests/test_character.py +++ b/tests/test_character.py @@ -1,10 +1,11 @@ #!/usr/bin/env python from unittest import TestCase +from pathlib import Path import warnings from dungeonsheets import race, monsters, exceptions, spells -from dungeonsheets.character import Character, Wizard, Druid +from dungeonsheets.character import Character, Wizard, Druid, read_character_file from dungeonsheets.weapons import Weapon, Shortsword from dungeonsheets.armor import Armor, LeatherArmor, Shield diff --git a/tests/test_make_sheets.py b/tests/test_make_sheets.py index 0dae932..0a05d6b 100644 --- a/tests/test_make_sheets.py +++ b/tests/test_make_sheets.py @@ -1,5 +1,7 @@ import unittest import os +from pathlib import Path +import subprocess from dungeonsheets import make_sheets, character @@ -7,6 +9,10 @@ EG_DIR = os.path.abspath(os.path.join(os.path.split(__file__)[0], '../examples/' CHARFILE = os.path.join(EG_DIR, 'rogue1.py') class CharacterFileTestCase(unittest.TestCase): + example_dir = Path(__file__).parent.parent / "examples" + # def test_(self): + # print(self.example_dir) + # subprocess.run(['makesheets', self.example_dir]) def test_load_character_file(self): charfile = CHARFILE result = make_sheets.load_character_file(charfile) @@ -110,3 +116,5 @@ class MarkdownTestCase(unittest.TestCase): tex = make_sheets.rst_to_latex(md_list) print(tex) self.assertIn("\\begin{itemize}", tex) + + diff --git a/tests/test_readers.py b/tests/test_readers.py new file mode 100644 index 0000000..6338e25 --- /dev/null +++ b/tests/test_readers.py @@ -0,0 +1,87 @@ +import warnings +from pathlib import Path +import unittest +import types + +from dungeonsheets.readers import read_character_file + +EG_DIR = (Path(__file__).parent.parent / "examples").resolve() +CHAR_PYTHON_FILE = EG_DIR / 'rogue1.py' +CHAR_JSON_FILE = EG_DIR / 'barbarian3.json' +SPELLCASTER_JSON_FILE = EG_DIR / 'artificer2.json' + +class PythonReaderTests(unittest.TestCase): + def test_load_python_file(self): + charfile = CHAR_PYTHON_FILE + result = read_character_file(charfile) + self.assertEqual(result['strength'], 10) + + +class JSONReaderTests(unittest.TestCase): + def test_load_json_file(self): + charfile = CHAR_JSON_FILE + with warnings.catch_warnings(record=True) as w: + result = read_character_file(charfile) + expected_data = dict( + name="Ulthar Jenkins", + classes=["Barbarian"], + level=2, + background="Soldier", + alignment="Lawful Evil", + race="Hill Dwarf", + xp=557, + strength=13, + dexterity=12, + constitution=19, + intelligence=8, + hp_max=32, + skill_proficiencies=["athletics", "survival",], + weapon_proficiencies=["simple weapons", "martial weapons", "battleaxe", "handaxe", "light hammer", "warhammer", "unarmed strike",], + _proficiencies_text=["Brewer's Supplies",], + languages="common, dwarvish", + cp=26, + sp=55, + ep=0, + gp=207, + pp=0, + weapons=["handaxe", "javelin", "warhammer"], + magic_items=(), + armor="", + shield="", + personality_traits="Can easily dismember a body\n\nKnow fight battle tactics", + ideals="Vengence", + bonds="friends and adventurers.", + flaws="Bloodthirsty and wants to solve every problem by murder", + equipment=("warhammer, handaxe, explorer's pack, javelin (4), backpack, " + "bedroll, mess kit, tinderbox, torch (10), rations (10), " + "waterskin, hempen rope"), + attacks_and_spellcasting="", + spells_prepared=[], + spells=[], + ) + for key, val in expected_data.items(): + this_result = result[key] + # Force evaluation of generators + if isinstance(this_result, types.GeneratorType): + this_result = list(this_result) + self.assertEqual(this_result, val, key) + + def test_load_json_spells(self): + charfile = SPELLCASTER_JSON_FILE + with warnings.catch_warnings(record=True) as w: + result = read_character_file(charfile) + expected_data = dict( + spells_prepared=["cure wounds",], + spells=["spare the dying", "fire bolt", "absorb elements", + "alarm", "catapult", "cure wounds", "detect magic", + "disguise self", "expeditious retreat", "faerie fire", + "false life", "feather fall", "grease", "identify", + "jump", "longstrider", "purify food and drink", + "sanctuary", "snare",], + ) + for key, val in expected_data.items(): + this_result = result[key] + # Force evaluation of generators + if isinstance(this_result, types.GeneratorType): + this_result = list(this_result) + self.assertEqual(this_result, val, key)