Files
DiceCloud/app/private/docs/defaultDocs.json
2024-05-28 13:05:19 +02:00

746 lines
118 KiB
JSON

[
{
"_id": "ioei4uvDdGTAFqZrB",
"name": "Properties",
"left": 1,
"right": 1,
"urlName": "property",
"root": {
"id": "DDDDDDDDDDDDDDDDD",
"collection": "docs"
},
"href": "/docs/property",
"published": true,
"description": "Properties are all the things you can add to a character, like ability scores, actions, spells, and items.",
"icon": {
"name": "skills",
"shape": "M119.1 25v.1c-25 3.2-47.1 32-47.1 68.8 0 20.4 7.1 38.4 17.5 50.9L99.7 157 84 159.9c-13.7 2.6-23.8 9.9-32.2 21.5-8.5 11.5-14.9 27.5-19.4 45.8-8.2 33.6-9.9 74.7-10.1 110.5h44l11.9 158.4h96.3L185 337.7h41.9c0-36.2-.3-77.8-7.8-111.7-4-18.5-10.2-34.4-18.7-45.9-8.6-11.4-19.2-18.7-34.5-21l-16-2.5L160 144c10-12.5 16.7-30.2 16.7-50.1 0-39.2-24.8-68.8-52.4-68.8-2.9 0-4.7-.1-5.2-.1zM440 33c-17.2 0-31 13.77-31 31s13.8 31 31 31 31-13.77 31-31-13.8-31-31-31zM311 55v48H208v18h103v158h-55v18h55v110H208v18h103v32h80.8c-.5-2.9-.8-5.9-.8-9 0-3.1.3-6.1.8-9H329V297h62.8c-.5-2.9-.8-5.9-.8-9 0-3.1.3-6.1.8-9H329V73h62.8c-.5-2.92-.8-5.93-.8-9 0-3.07.3-6.08.8-9H311zm129 202c-17.2 0-31 13.8-31 31s13.8 31 31 31 31-13.8 31-31-13.8-31-31-31zm0 160c-17.2 0-31 13.8-31 31s13.8 31 31 31 31-13.8 31-31-13.8-31-31-31z"
}
},
{
"_id": "Lt5ccP99yjDsh4oMJ",
"name": "Actions",
"parentId": "ioei4uvDdGTAFqZrB",
"root": {
"id": "DDDDDDDDDDDDDDDDD",
"collection": "docs"
},
"left": 2,
"right": 2,
"urlName": "action",
"description": "Actions are things your character can do. When an action is taken, all the properties under it are applied.\n\nAdd actions to your character sheet, then add children under the action to determine what happenes when the action is applied.\n\nWhen an action is applied it will create an entry in the character's log detailing all the properties that were applied and what their results were.\n\nSee [Static and Activated Properties](https://dicecloud.com/docs/concepts/static-and-activated-properties) for more information on what properties can be applied by actions.\n\n---\n\n### Name\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">name</code>\n\nThe name of the action.\n\n### Action type\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">actionType</code>\n\nHow long the action takes to perform.\n\nAllows [inline calculations](/docs/concepts/inline-calculations).\n\n### Variable name\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">variableName</code>\n\nFor Event-type actions, the variable name to use when referencing this event.\n\n### Attack roll\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">attackRoll</code>\n\nA [computed field](/docs/concepts/computed-fields) which calculates the attack roll modifier. If this field is empty, no attack roll will be made. Use 0 to make an attack roll without a modifier.\n\nThe following variables may be added to the action scope when attack rolls are made:\n\n - `~attackDiceRoll` The value of the d20 roll before any modifiers were applied.\n - `~attackRoll` The total attack roll after modifiers.\n - `~criticalHit` Set to `true` if the attack roll's d20 is a natural 20. If `~criticalHitTarget` is set, the attack roll's d20 must instead be equal to or greater than `~criticalHitTarget` for this to be set to `true`.\n - `~criticalMiss` Set to `true` if the attack roll was not a critical hit and rolled a natural 1 on the d20 roll.\n - `~attackHit` If the attack roll is higher than or equal to the target's AC or a critical hit this is set to `true`. Remains unset if there is no target for the attack unless the attack is a critical hit.\n - `~attackMiss` If the attack roll is lower than the target's AC or a critical miss, this is set to `true`. Remains unset if there is no target for the attack unless the attack is a critical miss.\n - `~attackAdvantage` If the attack roll is made with Advantage, this is set to `1`. If the attack roll is made with Disadvantage, this is set to `-1`. Remains unset if the attack was made normally.\n\n### Summary\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">summary</code>\n\nA brief overview of what the action does. This will appear in the action card, and shows in the log when the action is applied.\n\nAllows [inline calculations](/docs/concepts/inline-calculations).\n\n### Description\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">description</code>\n\nA more detailed description of the action. The description does not show in the action card or the log when the action is applied.\n\nAllows [inline calculations](/docs/concepts/inline-calculations).\n\n### Resource\n\nA resource can be any attribute that has a variable name. If the resource attribute is less than the amount required, the action can't be applied.\n\nIf you want to reduce an attribute when taking the action, but want the action to be applied regardless of the value of that attribute, consider using an [Attribute Damage](/docs/property/attribute-damage) property as a child of the action instead. Also use Attribute Damage when the amount to reduce the attribute is determined by a dice roll rather than a stable computed number.\n\n#### Resource attribute\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">resources.attributesConsumed.0.variableName</code>\n\nThe variable name of the attribute that will be consumed when taking this action.\n\n#### Resource quantity\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">resources.attributesConsumed.0.quantity</code>\n\nA [computed field](/docs/concepts/computed-fields) which determines how much of the attribute is required to apply this action. This amount will be deducted from the attribute every time the action is taken.\n\n### Ammo\n\nAmmo represents items that are required to take the action. If an item is not selected, or there is insufficient quantity of the selected item, the action can't be applied.\n\n#### Ammo item\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">resources.itemsConsumed.0.tag</code>\n\nSpecify what tag an item must have to be considered valid ammo for this action. Any item with this tag can be selected as ammo for this action.\n\n#### Ammo quantity\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">resources.itemsConsumed.0.quantity</code>\n\nA [computed field](/docs/concepts/computed-fields) which determines how many of the selected items are required to take this action. The quantity is deducted from the total quantity of the item when this action is applied.\n\n### Target\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">target</code>\n\nWho this action should apply to. The properties under the action will be applied to the Targets.\n\n- **Self** The action will apply its properties to the creature taking the action\n- **Single Target** The action will apply its properties without a target (for now)\n- **Multiple Targets** The action will apply its properties without a target (for now)\n\n### Uses\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">uses</code>\n\nA [computed field](/docs/concepts/computed-fields) which determines how many times this action can be used before it needs to be reset.\n\n### Uses used\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">usesUsed</code>\n\nHow many of this action's uses have already been used. Should ideally be between 0 and the total uses available. This number is set to 0 when the action has uses and its uses are reset.\n\n### Reset\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">reset</code>\n\nIf set, the uses used field is set to 0 at the appropriate time.\n\n- **Long rest** Reset when the long rest button is pushed\n- **Short rest** Reset when either the long or short rest button is pushed",
"published": true,
"href": "/docs/property/action"
},
{
"_id": "FwpkjToybWQKCDhSr",
"name": "Attribute Damage",
"parentId": "ioei4uvDdGTAFqZrB",
"root": {
"id": "DDDDDDDDDDDDDDDDD",
"collection": "docs"
},
"left": 3,
"right": 3,
"urlName": "attribute-damage",
"description": "When applied, attribute damage reduces the value of the [Attribute](/docs/property/attribute) by some amount or set the value of an attribute to some amount. Attribute damage can by applied by actions or triggers.\n\nUsing a negative value to damage an attribute will heal the attribute instead.\n\n---\n\n### Attribute\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">stat</code>\n\nThe variable name of the attribute to target.\n\n### Amount\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">amount</code>\n\nA [computed field](/docs/concepts/computed-fields) which determined the amount to damage the attribute or set the attribute's value to.\n\n### Operation\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">operation</code>\n\n- **Damage** Reduce the value of the attribute by the amount, negative values heal the attribute instead\n- **Set** Set the value of the attribute to the amount\n\n### Target\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">target</code>\n\n- **Target** Apply the attribute damage to the same target as the action applying this property\n- **Self** Apply the attribute damage to the creature taking the action\n\n---\n<br>\n\n*Note: To refer to an Attribute Damage property by [ancestor reference](/docs/concepts/computed-fields#ancestor-references), use `#adjustment` instead of `#attributeDamage`.*",
"href": "/docs/property/attribute-damage",
"published": true
},
{
"_id": "qdqo83AqkzQhtC2Em",
"name": "Attributes",
"parentId": "ioei4uvDdGTAFqZrB",
"root": {
"id": "DDDDDDDDDDDDDDDDD",
"collection": "docs"
},
"left": 4,
"right": 4,
"urlName": "attribute",
"description": "Attributes represent the basic numerical values of the creature, including everything from stats to health bars and more. The are the most common targets for [effects](/docs/property/effect), which affect them with a static bonus.\n\nAttributes have the following fields that can be accessed in calculations with `variableName.field`:\n\n- `total` - The default value of the attribute before being damaged.\n- `value` - The current value of the attribute including damage. `variableName` and `variableName.value` are equivalent.\n- `damage` - The amount of damage the attribute has taken.\n- `modifier` - If the attribute's type is Ability Score, its corresponding modifier in D&D 5th Edition rules.\n\n---\n\n### Name\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">name</code>\n\nThe human-readable name of the attribute.\n\n### Variable name\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">variableName</code>\n\nThe name used to refer to the attribute in calculations and by effects. Must start with a letter and be made up of only letters and numbers without spaces, symbols, or punctuation.\n\nIf multiple attributes share a variable name, only the last attribute on the [character tree](/docs/concepts/tree) will count as the defining attribute and appear on the sheet, while other attributes with that variable name will be used as base value [effects](/docs/property/effect).\n\n### Base value\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">baseValue</code>\n\nA [computed field](/docs/concepts/computed-fields) that determines the starting value of the attribute before it is modified by effects and other properties. Multiple properties can set the base value for a given variable name, when this happens the highest base value is chosen, and then all other effects are applied.\n\n### Attribute type\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">attributeType</code>\n\n- **Ability** - Ability scores like Strength, Dexterity, etc. Ability scores get a modifier which can be accessed in calculations as `variableName.modifier`.\n- **Stat** - Any simple numerical value that appears on the sheet, e.g. speed, armor class.\n- **Modifier** - Any numerical value that appears on the sheet with a `+` or `-` sign, e.g. proficiency bonus.\n- **Hit Dice** - Hit dice let you select the appropriate hit dice size. Creatures regain half their total hit dice on long rest by default.\n- **Health Bar** - Health bars can be made to take or ignore damage in a specified order.\n- **Resource** - Rages, sorcery points, things that are spent to use actions.\n- **Spell Slot** - Spell slots have a specific level and are used to cast spells.\n- **Utility** - Utility attributes don't show up anywhere on the sheet, but can still be used for calculations.\n\n### Description\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">description</code>\n\nA detailed description of the attribute. Allows [inline calculations](/docs/concepts/inline-calculations).\n\n### Health bar settings\n\nHealth bars can take or ignore damage and healing from applied damage properties targeting a creature. A lower ordered health bar will take damage before a higher ordered one.\n\nHealth bars can also change color depending on their value. At 50%+ full they are their property color, between 50% and 0% they fade from their half-full color to their empty color.\n\n##### Health Bar Fields\n- `healthBarColorMid` The color when below half health.\n- `healthBarColorLow` The color when empty.\n- `healthBarNoDamage` If true, this health bar will ignore damage.\n- `healthBarNoHealing` If true, this health bar will ignore healing.\n- `healthBarNoDamageOverflow` If true, this health bar will not allow excess damage to overflow past it.\n- `healthBarNoHealingOverflow` If true, this health bar will not allow excess healing to overflow past it.\n- `healthBarDamageOrder` The numeric priority with which damage will apply to this health bar.\n- `healthBarHealingOrder` The numeric priority with which healing will apply to this health bar.\n\n### Hit dice size\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">hitDiceSize</code>\n\nHit dice can come in various sizes, from d4 to d20.\n\n### Spell slot level\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">spellSlotLevel</code>\n\nSpell slots require a level, to determine what levels of spells they can be used to cast.\n\n### Damage\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">damage</code>\n\nThe amount of damage this attribute has currently taken. Subtracted from `.total` to calculate `.value`.\n\n### Reset\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">reset</code>\n\nIf set, the damage on this attribute is reset to 0 at the appropriate time.\n\n- **Long rest** - Reset when the long rest button is pushed\n- **Short rest** - Reset when either the long or short rest button is pushed\n\n### Allow decimal values\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">decimal</code>\n\nIf this is set, the attribute will not round-down when its value has a decimal.\n\n### Can be damaged into negative values\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">ignoreLowerBound</code>\n\nIf this is set the attribute can be damaged past zero into negative values.\n\n### Can be incremented above total\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">ignoreUpperBound</code>\n\nIf this is set the attribute can have negative damage such that the value exceeds the total. This can be useful if you are using the attribute to count, it can start at zero and be healed upwards to keep count.\n\n### Hide when total is zero\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">hideWhenTotalZero</code>\n\nIf this is set, the attribute will not be displayed on the sheet when its value before damage is 0.\n\n### Hide when value is zero\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">hideWhenValueZero</code>\n\nIf this is set, the attribute will not be displayed on the sheet when its value after damage is 0.",
"published": true,
"href": "/docs/property/attribute"
},
{
"_id": "X5NKw8m6ruy9Srynd",
"name": "Branches",
"parentId": "ioei4uvDdGTAFqZrB",
"root": {
"id": "DDDDDDDDDDDDDDDDD",
"collection": "docs"
},
"left": 5,
"right": 5,
"urlName": "branch",
"published": true,
"description": "Branches are applied by actions (or triggers), when they are applied they can control which of their immediate children are applied.\n\n---\n\n### Branch type\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">type</code>\n\n- **If condition is true** Apply children if the condition (a [computed field](/docs/concepts/computed-fields)) resolves to `true` or a non-zero number\n- **Attack hit** Apply children if the attack roll hit the target.\n- **Attack miss** Apply children if the attack roll missed the target.\n- **Save failed** Apply children if target failed its saving throw.\n- **Save succeeded** Apply children if target made its saving throw.\n- **Apply to each target** Apply children separately to each target.\n- **Random** Apply one of the immediate children at random.\n- **Calculated Index** Use the index (a [computed field](/docs/concepts/computed-fields)) to choose which child to apply, starting at 1 for the first child.\n\n### Condition / Index\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">condition</code>\n\nA calculation the branch should use to determine whether to activate its children, or which children to activate. Used as a boolean in \"If condition is true\" mode, and a numerical index in \"Calculated Index\" mode.",
"href": "/docs/property/branch"
},
{
"_id": "hraKfb96M3LKEfYdp",
"name": "Buffs",
"parentId": "ioei4uvDdGTAFqZrB",
"root": {
"id": "DDDDDDDDDDDDDDDDD",
"collection": "docs"
},
"left": 8,
"right": 8,
"urlName": "buff",
"href": "/docs/property/buff",
"description": "Buffs are temporary changes to a character sheet that can be applied by actions. When a buff is applied, it is copied to the target character along with all of its children properties. \n\nBuffs can either be manually removed from the stats page, or be removed by an action applying a [buff remover](/docs/property/remove-buff/) property.\n\n### Variable freezing\n\nWhen a buff is applied, all the calculations in the child properties have their variables frozen to their values at the time the buff is applied. You can prevent this behavior for the whole buff by using the \"Don't freeze variables\" option, or on an individual variable reference by prefixing the variable with the keyword `~target.`.\n\nFor example, if a character has 10 strength and 16 dexterity, and applies a buff with some child property containing the calculation `~target.strength + dexterity`, the property's calculation will become `strength + 16` when it is copied to the target character.\n\n---\n\n### Name\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">name</code>\n\nThe name of the buff.\n\n### Description\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">description</code>\n\nDescription of the applied buff.\n\nAllows [inline calculations](/docs/concepts/inline-calculations).\n\n### Target\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">target</code>\n\n- **Target** Apply the buff to the target of the action\n- **Self** Apply the buff to the creature taking the action\n\n### Hide remove button\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">hideRemoveButton</code>\n\nIf this is set, the remove button next to the buff on the stats page will be hidden. Use this when you expect the buff to be removed automatically by another action.\n\n### Don't freeze variables\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">skipCrystalization</code>\n\nPrevent the buff from freezing variables in child property calculations to their value at the time the buff was applied.",
"published": true
},
{
"_id": "E2DFwsCoiKy2Rc9Mz",
"name": "Concepts",
"left": 10,
"right": 10,
"urlName": "concepts",
"href": "/docs/concepts",
"root": {
"id": "DDDDDDDDDDDDDDDDD",
"collection": "docs"
},
"published": true,
"description": "The inner workings of DiceCloud's character engine",
"icon": {
"name": "light-bulb",
"shape": "M247 18.656c-80.965 0-146.875 65.02-146.875 145.625 0 45.63 15.758 67 33.313 94.845 11.706 18.57 23.767 39.91 30.53 70.563h165.095c6.728-31.387 18.91-53.12 30.718-71.875 17.58-27.92 33.314-48.912 33.314-93.532 0-80.66-65.127-145.624-146.094-145.624zm-99.78 127.906L170.437 167 210 201.813l31.188-34.125 6.78-7.438 6.907 7.344 30.75 32.72 39.97-33.47 22.686-19-7.655 28.594L304.75 310.28l-18.063-4.842 28.22-105.25-24.032 20.125-6.78 5.656-6.033-6.44-29.906-31.78-30.562 33.438-6.188 6.78-6.875-6.062-23.25-20.437 27.94 104.218-18.064 4.812-35.937-134.063-8-29.875zm22.593 201.813V389.5L315 348.375H169.812zm153.593 17.063l-153.594 43.53v29.438l153.594-43.5v-29.47zm0 48.875L203.97 448.156h119.436v-33.844zm-132.562 52.53v20.533h113.282v-20.53h-113.28z"
}
},
{
"_id": "5Fwk543djf4hfqxCc",
"name": "Class levels",
"parentId": "ioei4uvDdGTAFqZrB",
"root": {
"id": "DDDDDDDDDDDDDDDDD",
"collection": "docs"
},
"left": 11,
"right": 11,
"urlName": "class-level",
"href": "/docs/property/class-level",
"description": "A class level is a property that represents a single level in a class. It is generally used as a child of a [Class property](/docs/property/class).\n\nFeatures and bonuses that are given by a class level get added as children of the class level.\n\n---\n\n### Level\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">level</code>\n\nWhich level this property represents.\n\n### Name\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">name</code>\n\nThe name of the class or subclass this level is part of\n\n### Variable name\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">variableName</code>\n\nThe same variable name of the class this level belongs to.\n\n### Description\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">description</code>\n\nA description of the benefits gained with this level. Allows [inline calculations](/docs/concepts/inline-calculations).",
"published": true
},
{
"_id": "yX4ZuoHQwtGv3QJXX",
"name": "Classes",
"parentId": "ioei4uvDdGTAFqZrB",
"root": {
"id": "DDDDDDDDDDDDDDDDD",
"collection": "docs"
},
"left": 12,
"right": 12,
"urlName": "class",
"href": "/docs/property/class",
"published": true,
"description": "A class is a property that expects [class levels](/docs/property/class-level) as its immediate children.\n\nLeveling up a class means choosing, or manually adding, class level properties to it. Class levels with the same variable name as the class, and that match all the required tags are found in libraries and added to the class.\n\nThe total level of the class can be accessed in calculations using `classVariableName.level`.\n\n---\n\n### Name\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">name</code>\n\nThe name of the class\n\n### Variable name\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">variableName</code>\n\nThe name used to refer to the class in calculations. Must start with a letter and be made up of only letters and numbers without spaces, symbols, or punctuation.\n\n### Description\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">description</code>\n\nA description of the class.\n\n### Tags required\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">slotTags.0</code>\n\nOnly class levels with the same variable name as the class, and with tags that match the tags required will be returned from libraries when leveling up this class. \n\nAdditional tag lists can be created using either OR mode (a property with either all of the tags in the main list *or* all of the tags in an OR list will be selectable) or NOT mode (a property with any tag in a NOT list cannot be selected).\n\n##### Additional Tag List Fields\n- `extraTags.0.operation` Whether this additional tag list is an OR list or a NOT list.\n- `extraTags.0.tags.0` The tags in this additional tag list.\n\n### Condition\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">slotCondition</code>\n\nA [computed field](/docs/concepts/computed-fields) to determine if the class is allowed to level up. If this field results in `true` or a number that is not 0, the class can be leveled, otherwise leveling is disabled."
},
{
"_id": "giHu6Ej7qvsZr4zrJ",
"name": "Constants",
"parentId": "ioei4uvDdGTAFqZrB",
"root": {
"id": "DDDDDDDDDDDDDDDDD",
"collection": "docs"
},
"left": 13,
"right": 13,
"urlName": "constant",
"href": "/docs/property/constant",
"description": "Constants are properties that store some primitive value in a variable name for use in other calculations.\n\nUnlike attributes, constants can store more than just numbers:\n\n- Arrays: `[1,2,3,4]`\n- Text strings: `'I am a cat'`\n- Numbers: `3.14`\n- Boolean values: `true`, `false`\n- Dice rolls: `1d20 + 2`\n\nHowever, constants can't use other variables in their calculations.\n\n### Overriding constants\n\nIf multiple constants have the same variable name, only the last active constant in the [character tree](/docs/concepts/tree) will be used as the definition for that variable name.\n\nThis can be used to re-write the value of some constant by ensuring there is a new active constant later in the sheet.\n\n---\n\n### Name\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">name</code>\n\nThe name of the constants\n\n### Variable Name\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">variableName</code>\n\nThe name used to refer to the constant in calculations. Must start with a letter and be made up of only letters and numbers without spaces, symbols, or punctuation.\n\n### Value\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">value</code>\n\nA [calculation](/docs/concepts/computed-fields) of the final value of the constant.",
"published": true
},
{
"_id": "ghEJ3rh6YHCfuBirJ",
"name": "Containers",
"parentId": "ioei4uvDdGTAFqZrB",
"root": {
"id": "DDDDDDDDDDDDDDDDD",
"collection": "docs"
},
"left": 14,
"right": 14,
"urlName": "container",
"href": "/docs/property/container",
"description": "Containers are things that [items](/docs/property/item) can be put inside of.\n\n---\n\n### Name\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">name</code>\n\nThe name of the container\n\n### Carried\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">carried</code>\n\nIf this is set the weight of the container and its contents will be added to the character's weight carried.\n\n### Value\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">value</code>\n\nThe value of the container in gold pieces. Silver pieces are worth 0.1 gp and copper pieces are worth 0.01 gp. So a container that is worth 2 gp 4 sp 7 cp will have a value of 2.47 gp.\n\n### Weight\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">weight</code>\n\nThe weight of the container in lb.\n\n### Description\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">description</code>\n\nA description of the container. Allows [inline calculations](/docs/concepts/inline-calculations).\n\n### Contents' Weight\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">contentsWeight</code>\n\nWeight of all the contents.\n\n### Carried Weight\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">carriedWeight</code>\n\n Weight of all the carried contents (some sub-containers might not be carried). Zero if `contentsWeightless` is true.\n\n### Contents' Value\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">contentsValue</code>\n\nValue of all the contents.\n\n### Carried Value\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">carriedValue</code>\n\n Value of all the carried contents (some sub-containers might not be carried). Zero if `contentsWeightless` is true.\n\n### Contents are weightless\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">contentsWeightless</code>\n\nIf this is set and the container is carried, only the container's own weight will be added to the weight carried by the creature.",
"published": true
},
{
"_id": "B7xb4iC33np9JurzR",
"name": "Damage multipliers",
"parentId": "ioei4uvDdGTAFqZrB",
"root": {
"id": "DDDDDDDDDDDDDDDDD",
"collection": "docs"
},
"left": 15,
"right": 15,
"urlName": "damage-multiplier",
"href": "/docs/property/damage-multiplier",
"description": "Damage multipliers are used to define vulnerability, resistance, and immunity to damage types.\n\nA single multiplier can apply to multiple damage types, and choose whether or not to apply to an incoming source of damage based on the tags present on that damage.\n\n---\n\n### Name\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">name</code>\n\nThe name of the feature that gives this damage multiplier\n\n### Value\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">value</code>\n\n- **Immunity** The creature takes no damage from matching damage sources\n- **Resistance** Damage from matching sources is halved.\n- **Vulnerability** Damage from matching sources is doubled.\n\n### Damage types\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">damageTypes.0</code>\n\nA list of damage types that this property applies to. Custom types can be used.\n\n### Damage tags required\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">includeTags.0</code>\n\nThis damage multiplier will only be applied if the incoming damage has all of these tags present.\n\n### Damage tags excluded\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">excludeTags.0</code>\n\nThis damage multiplier will only apply if the incoming damage has none of these tags present.",
"published": true
},
{
"_id": "oiQLbNiip7JHyGBG4",
"name": "Damage",
"parentId": "ioei4uvDdGTAFqZrB",
"root": {
"id": "DDDDDDDDDDDDDDDDD",
"collection": "docs"
},
"left": 16,
"right": 16,
"urlName": "damage",
"href": "/docs/property/damage",
"published": true,
"description": "Damage can be applied by an action to damage a target creature's [health bars](/docs/property/attribute). The damage will be modified by [damage multipliers](/docs/property/damage-multiplier), which apply vulnerability, resistance, and immunity before the damage is applied.\n\n---\n\n### Damage\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">amount</code>\n\nA [computed field](/docs/concepts/computed-fields) that determines how much damage to do to the target creature.\n\n### Damage type\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">damageType</code>\n\nDamage type determines how the damage is treated by [damage multipliers](/docs/property/damage-multiplier). A custom type can be used, or one of the existing types can be selected.\n\nThere are two special damage types:\n\n- **Extra** - Damage with the `extra` type will take on the damage type of whatever damage was applied before it by an action, e.g. an action deals 12 piercing damage and 3 extra damage, it will instead deal 15 piercing damage.\n - The last damage dealt is stored as `~lastDamageType`, which can be accessed or set using a [Roll](/docs/property/roll) to change the damage type of the following \"extra\" damage properties.\n- **Healing** - Damage with the `healing` type will heal a creature instead of damaging them.\n\n### Target\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">target</code>\n\n- **Target** - Apply the damage to the target of the action\n- **Self** - Apply the damage to the creature taking the action"
},
{
"_id": "FHdAjYY2er9xfYsJs",
"name": "Effects",
"parentId": "ioei4uvDdGTAFqZrB",
"root": {
"id": "DDDDDDDDDDDDDDDDD",
"collection": "docs"
},
"left": 17,
"right": 17,
"urlName": "effect",
"href": "/docs/property/effect",
"description": "Effects are the core of the DiceCloud engine. Effect change the values of attributes, skills, and calculations in a way that is transparent and auditable, keeping character sheets organized and understandable, even when using intricate homebrew rules on high level characters.\n\n---\n\n### Name\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">name</code>\n\nThe name of the feature that causes this effect.\n\n### Operation\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">operation</code>\n\nThe operation determines what the effect will do to the affected property or calculation.\n\n- **Base Value** - Set the base value of the affected property. If a property has multiple base values, the highest is used\n- **Add** - Add the value to the affected property or calculation\n- **Multiply** - Multiply the affected property by the value\n- **Minimum** - Prevent the affected property from having a value less than the effect value\n- **Maximum** - Prevent the affected property from having a value greater than the effect value\n- **Set** - Set the value affected property to the effect value\n- **Advantage** - Give advantage to checks made using the affected property\n- **Disadvantage** - Give disadvantage to checks made using the affected property\n- **Passive bonus** - Add the effect value to the passive scores based on the affected property\n- **Fail** - Checks made using the affected property automatically fail\n- **Conditional benefit** - Add some text to the affected property describing the benefit received.\n\n### Value\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">amount</code>\n\nA [computed field](/docs/concepts/computed-fields) that determines the value of the effect.\n\n### Text\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">text</code>\n\nIf the operation is a conditional benefit, the note text that will show on affected properties.\n\n### Target stats by variable name\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">targetByTags = false</code>\n\nIf selected the effect will apply to all properties that have the given variable names.\n\n### Variable names\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">stats.0</code>\n\nA list of variable names of properties to target with this effect.\n\n### Target properties by tags\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">targetByTags = true</code>\n\nWhen targeting properties by tag, any property can be targeted with an effect. If the property is one that can usually be targeted by variable name, the effect will apply as usual, however if the effect targets another property, it will apply to a [computed field](/docs/concepts/computed-fields) on the property instead.\n\nThese effects can be used for adding a bonus to a specific attack or damage roll, or manipulating any computed field on the creature.\n\n### Tags required\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">targetTags.0</code>\n\nOnly properties that match the required tags will be targeted by the effect.\n\nAdditional tag lists can be created using either OR mode (a property with either all of the tags in the main list *or* all of the tags in an OR list will be targeted) or NOT mode (a property with any tag in a NOT list will not be targeted).\n\n##### Additional Tag List Fields\n- `extraTags.0.operation` Whether this additional tag list is an OR list or a NOT list.\n- `extraTags.0.tags.0` The tags in this additional tag list.\n\n### Target field\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">targetField</code>\n\nIf a property has multiple computed fields, which field should be targeted by this effect.",
"published": true
},
{
"_id": "GAEPgagGYv3a2QWnE",
"name": "Features",
"parentId": "ioei4uvDdGTAFqZrB",
"root": {
"id": "DDDDDDDDDDDDDDDDD",
"collection": "docs"
},
"left": 18,
"right": 18,
"urlName": "feature",
"href": "/docs/property/feature",
"description": "Features appear on the features tab. Classes, backgrounds, and race can all give a creature features.\n\n---\n\n### Name\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">name</code>\n\nThe name of the feature.\n\n### Summary\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">summary</code>\n\nA summary of the feature. This will appear on the feature card. Allows [inline calculations](/docs/concepts/inline-calculations).\n\n### Description\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">description</code>\n\nA detailed description of the feature. Allows [inline calculations](/docs/concepts/inline-calculations).",
"published": true
},
{
"_id": "7o6sWuQeoBtiQRLdL",
"name": "Folders",
"parentId": "ioei4uvDdGTAFqZrB",
"root": {
"id": "DDDDDDDDDDDDDDDDD",
"collection": "docs"
},
"left": 19,
"right": 19,
"urlName": "folder",
"href": "/docs/property/folder",
"published": true,
"description": "Folders allow the [character tree](/docs/concepts/tree) to be organized.\n\n### Folders in actions\n\nWhen a folder is the child of an action, it and its children will not show on the action card, but will still appear in the detail view of the action and be applied when the action is taken.\n\n### Grouping children\n\nWhen the folder is set to group stats on a card, the immediate children of the folder will be shown in a single card in a location on the sheet you can specify. For now, the following properties are supported:\n\n- Actions, including event actions\n- Attributes\n- Buffs\n- Containers\n- Features\n- Items\n- Notes\n- Skills\n- Toggles (with _Show on character sheet_ enabled)\n\n---\n\n### Name\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">name</code>\n\nThe name of the folder.\n\n### Description\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">description</code>\n\nA description for the folder. Only shown when selecting it from a library, e.g. via slot.\n\n### Group children on a card\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">groupStats</code>\n\nIf set, immediate children will be grouped on a card in the sheet.\n\n### Hide children from their default locations\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">hideStatsGroup</code>\n\nIf set, the children of this folder will only show on the grouped card, and be hidden from elsewhere on the sheet.\n\n### Tab\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">tab</code>\n\nDetermines which tab the card will show up on.\n\n### Location\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">location</code>\n\nWhere on the tab the card will be positioned."
},
{
"_id": "5MsdJBbpALgMnYBwk",
"name": "Items",
"parentId": "ioei4uvDdGTAFqZrB",
"root": {
"id": "DDDDDDDDDDDDDDDDD",
"collection": "docs"
},
"left": 20,
"right": 20,
"urlName": "item",
"href": "/docs/property/item",
"published": true,
"description": "Items are shown on the Inventory tab. Items can be carried, put in containers, or equipped on a creature. The children of an item are not active unless the item is equipped.\n\n---\n\n### Icon\n\nAn icon representing the item.\n\n### Equipped\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">equipped</code>\n\nIf set, the item appears in the equipment list on the inventory tab and its children become active on the creature.\n\n### Name\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">name</code>\n\nThe name of the item.\n\n### Plural name\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">plural</code>\n\nThe name to use if the quantity of the item is higher than 1.\n\n### Value\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">value</code>\n\nThe value of a single item in gold pieces. Silver pieces are worth 0.1 gp and copper pieces are worth 0.01 gp. So an item that is worth 2 gp 4 sp 7 cp will have a value of 2.47 gp.\n\n### Weight\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">weight</code>\n\nThe weight of a single item in lb.\n\n### Quantity\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">quantity</code>\n\nNumber of items. The value and quantity will be multiplied by the quantity to get the total value and weight of this stack of items.\n\n### Description\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">description</code>\n\nA description of the item. Allows [inline calculations](/docs/concepts/inline-calculations).\n\n### Show increment button\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">showIncrement</code>\n\nIf this is set, the item will show an increment button in the detail view and on the inventory tab. This button can be used to quickly adjust the quantity of the item.\n\n### Requires attunement\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">requiresAttunement</code>\n\nIf set, the item requires attunement to use.\n\n### Attuned\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">attuned</code>\n\nIf set, the item is attuned and counts towards the total number of attuned items for the creature.\n\nIf a child property needs to determine if its parent item is attuned it can use `#item.attuned` in calculations, see *Ancestor references* in [computed fields](/docs/concepts/computed-fields)."
},
{
"_id": "74utQna6D4ayYyrLp",
"name": "Notes",
"parentId": "ioei4uvDdGTAFqZrB",
"root": {
"id": "DDDDDDDDDDDDDDDDD",
"collection": "docs"
},
"left": 21,
"right": 21,
"urlName": "note",
"href": "/docs/property/note",
"published": true,
"description": "Notes are used to store text on the creature that does not have a direct mechanical impact. Notes appear on the journal tab when active on the character, or are shown in the log when applied by an [action](/docs/property/action).\n\n---\n\n### Name\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">name</code>\n\nName of the note.\n\n### Summary\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">summary</code>\n\nA summary of the note. This will appear on the note card and in the log when applied by an [action](/docs/property/action). Allows [inline calculations](/docs/concepts/inline-calculations).\n\n### Description\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">description</code>\n\nA detailed description of the feature. Allows [inline calculations](/docs/concepts/inline-calculations)."
},
{
"_id": "cuhusZb8xYW8dj743",
"name": "Point buy",
"parentId": "ioei4uvDdGTAFqZrB",
"root": {
"id": "DDDDDDDDDDDDDDDDD",
"collection": "docs"
},
"left": 22,
"right": 22,
"urlName": "point-buy",
"href": "/docs/property/point-buy",
"published": true,
"description": "A point buy is a set of rows that lets the user choose a set of stats based on a cost per stat.\n\n---\n\n### Table name\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">name</code>\n\nThe name of the point buy table.\n\n### Min\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">min</code>\n\nThe lowest value available for each row\n\n### Max\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">max</code>\n\nThe highest value available for each row\n\n### Cost\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">cost</code>\n\nA function that uses `value` as the value of a row and determines the cost of that value. For standard D&D 5e point buy, this function is :\n```js\n[0, 1, 2, 3, 4, 5, 7, 9][value - 7]\n```\n\n### Total available points\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">total</code>\n\nA [computed field](/docs/concepts/computed-fields) that determines how many points are available to spend in total\n\n## Rows\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">values.0</code>\n\nUp to 32 rows can be added to a point buy table\n\n### Row name\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">values.0.name</code>\n\nThe name of the row that will appear in the table\n\n### Row variable name\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">values.0.variableName</code>\n\nThe variable name of the row that can be used in calculations. Must start with a letter and be made up of only letters and numbers without spaces, symbols, or punctuation.\n\nIf the variable name matches an attribute with the same variable name, the row's value will be used as a base value for that attribute.\n\n### Row default value\n\nThe default value for the row. Only visible in libraries."
},
{
"_id": "Jh92aYezHsEbSkriy",
"name": "Proficiencies",
"parentId": "ioei4uvDdGTAFqZrB",
"root": {
"id": "DDDDDDDDDDDDDDDDD",
"collection": "docs"
},
"left": 23,
"right": 23,
"urlName": "proficiency",
"href": "/docs/property/proficiency",
"description": "Proficiencies add proficiency to an existing skill on the creature. If you need to add a tool or language proficiency to a creature, use a [Skill](/docs/property/skill) instead.\n\n---\n\n### Name\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">name</code>\n\nName of the feature that is adding this proficiency\n\n### Skills\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">stats.0</code>\n\nA list of variable names of the skills to add proficiency to.\n\n### Proficiency\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">value</code>\n\nHow much proficiency to add to the skill. If a skill has multiple proficiencies added to it, the highest one will be used.",
"published": true
},
{
"_id": "Nik9WERFxgjnp4cpE",
"name": "Remove Buff",
"parentId": "ioei4uvDdGTAFqZrB",
"root": {
"id": "DDDDDDDDDDDDDDDDD",
"collection": "docs"
},
"left": 24,
"right": 24,
"urlName": "remove-buff",
"href": "/docs/property/remove-buff",
"published": true,
"description": "This property can remove a specific buff from a targeted creature.\n\n### Name\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">name</code>\n\nThe name of the property. This shows in the log when the property is applied.\n\n### Remove parent buff\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">targetParentBuff</code>\n\nWhen this is set and the property is applied, the property will remove the nearest parent buff. If this property is not the child of any buffs, it will log an error.\n\n### Remove all\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">removeAll</code>\n\nWhen this is set, all buffs that match the target tags will be removed from the targeted creature. If not set, only the first buff found with the matching tags will be removed.\n\n### Target\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">target</code>\n\n- **Target** - Matching buffs will be removed from the targeted creature\n- **Self** - Matching buffs will be removed from the creature that applied the action\n\n### Tags required\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">targetTags.0</code>\n\nAny buff that has all of the required tags will be removed when the property is applied.\n\nAdditional tag lists can be created using either OR mode (a property with either all of the tags in the main list *or* all of the tags in an OR list will be removed) or NOT mode (a property with any tag in a NOT list will not be removed).\n\n##### Additional Tag List Fields\n- `extraTags.0.operation` Whether this additional tag list is an OR list or a NOT list.\n- `extraTags.0.tags.0` The tags in this additional tag list.\n\n---\n<br>\n\n*Note: To refer to a Remove Buff property by [ancestor reference](/docs/concepts/computed-fields#ancestor-references), use `#buffRemover` instead of `#removeBuff`.*"
},
{
"_id": "8e67Pmq7RvggHp4pX",
"name": "Rolls",
"parentId": "ioei4uvDdGTAFqZrB",
"root": {
"id": "DDDDDDDDDDDDDDDDD",
"collection": "docs"
},
"left": 25,
"right": 25,
"urlName": "roll",
"href": "/docs/property/roll",
"published": true,
"description": "Rolls are properties that store the result of a calculation to a variable name when applied by an [action](/docs/property/action). The variable name only exists for the duration of that particalar action.\n\nRolls can be useful if you need to deal the same damage to multiple targets, or if damage needs to be rolled then halved by succeeding on a saving throw.\n\n---\n\n### Name\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">name</code>\n\nName of the roll. This will be shown in the log when the roll is applied.\n\n### Variable name\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">variableName</code>\n\nThe variable name to store the result of the roll for the duration of the action. Must start with a letter and be made up of only letters and numbers without spaces, symbols, or punctiation.\n\n### Roll\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">roll</code>\n\nA [computed field](/docs/concepts/computed-fields) that is computed when the roll is applied by an action."
},
{
"_id": "Ecc7oWEtoJgXaYLtS",
"name": "Saving throws",
"parentId": "ioei4uvDdGTAFqZrB",
"root": {
"id": "DDDDDDDDDDDDDDDDD",
"collection": "docs"
},
"left": 26,
"right": 26,
"urlName": "saving-throw",
"href": "/docs/property/saving-throw",
"description": "Saving throws are properties that cause the target to make a saving throw when applied. If you want to add a type of saving throw like Strength Save to a creature, use a [skill](/docs/property/skill) instead.\n\nWhen a saving throw is applied, the following variables are added to the scope of that action:\n\n- `~saveFailed` - Set to `true` if the target failed its saving throw or there are no targets for the saving throw\n- `~saveSucceeded` - Set to `true` if the target made its saving throw or there are no targets for the saving throw\n- `~saveDiceRoll` - The unmodified d20 roll the target made to save\n- `~saveRoll` - The final value of the saving throw roll after modifiers\n\n### Name\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">name</code>\n\nThe name of the saving throw. Usually the ability saving throw targeted: \"Strength Save\".\n\n### DC\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">dc</code>\n\nThe DC of the saving throw that the target needs to meet\n\n### Save\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">stat</code>\n\nThe variable name of the skill that will be used to make the saving throw.\n\n### Target\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">target</code>\n\n- **Target** - Apply the saving throw to the targets of the action. Each target will make the saving throw in turn. Child properties will be applied to each target separately with the results of their individual saving throw. If a value like damage needs to be shared between targets, it should be calculated in a [Roll](/docs/property/roll) before the saving throw.\n- **Self** - Apply the saving throw to the creature taking the action. The creature taking the action will become the target for all child properties.",
"published": true
},
{
"_id": "BKW9roawHgYcP2act",
"name": "Skills",
"parentId": "ioei4uvDdGTAFqZrB",
"root": {
"id": "DDDDDDDDDDDDDDDDD",
"collection": "docs"
},
"left": 27,
"right": 27,
"urlName": "skill",
"href": "/docs/property/skill",
"description": "Skills represent things the creature can be proficient in. Skills can have their values or behavior modifier by [effects](/docs/property/effect), and their proficiencies modified by [proficiencies](/docs/property/proficiency).\n\n---\n\n### Name\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">name</code>\n\nThe name of the skill.\n\n### Variable name\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">variableName</code>\n\nThe name used to refer to the skill in calculations and by effects. Must start with a letter and be made up of only letters and numbers without spaces, symbols, or punctiation.\n\n### Ability\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">ability</code>\n\nThe ability score that is the basis for checks made with this skill\n\n### Type\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">skillType</code>\n\n- **Skill** - Regular skills like *Athletics*, *Sleight* of Hand\n- **Save** - Saving throws like *Strength*, *Charisma*\n- **Check** - Checks that aren't skill like *Initiative*\n- **Tool** - Tool proficiencies\n- **Weapon** - Weapon proficiencies\n- **Armor** - Armor proficiencies\n- **Language** - Language proficiencies\n- **Utility** - Skills that don't show on the charcater sheet but can be used in calculations\n\n### Description\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">description</code>\n\nA detailed description of the skill. Allows [inline calculations](/docs/concepts/inline-calculations).\n\n### Base value\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">baseValue</code>\n\nA [computed field](/docs/concepts/computed-fields) that determines the starting value of the skill before it is modified by effects and other properties. Multiple properties can set the base value for a given variable name, when this happens the highest base value is chosen, and then all other effects are applied.\n\n### Base proficiency\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">baseProficiency</code>\n\nThe starting proficiency of the skill.\n\n### Proficiency\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">proficiency</code>\n\n- `0` if the skill has no proficiency\n- `1` if the skill has proficiency\n- `0.5` if the skill has half proficiency\n- `0.49` if the skill has half proficiency rounded down\n- `2` if the skill has double proficiency.",
"published": true
},
{
"_id": "bj5Bh5gsmjkLpYqA4",
"name": "Slots",
"parentId": "ioei4uvDdGTAFqZrB",
"root": {
"id": "DDDDDDDDDDDDDDDDD",
"collection": "docs"
},
"left": 29,
"right": 29,
"urlName": "slot",
"href": "/docs/property/slot",
"description": "Slots are the main way creatures interact with libraries. A slot can be filled by choosing a property from a library that fits that particular slot. Slots show up on the build tab, and are highlighted when they have space that can be filled.\n\nIn a complete library, a creature can be built entirely by choosing which properties to fill each slot with. If you are building a creature without a library, you should either ignore slots entirely, or fill them with your own custom properties.\n\n---\n\n### Name\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">name</code>\n\nThe name of the slot.\n\n### Type \n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">slotType</code>\n\nWhat kind of property this slot expects to fill it.\n\n### Tags required\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">slotTags.0</code>\n\nProperties in a library must have the required tags to fill the slot.\n\nAdditional tag lists can be created using either OR mode (a property with either all of the tags in the main list *or* all of the tags in an OR list will be selectable) or NOT mode (a property with any tag in a NOT list cannot be selected).\n\n##### Additional Tag List Fields\n- `extraTags.0.operation` Whether this additional tag list is an OR list or a NOT list.\n- `extraTags.0.tags.0` The tags in this additional tag list.\n\n### Quantity\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">quantityExpected</code>\n\nHow many properties are expected to fill this slot. Use 0 for allowing an unlimited number of properties.\n\n### Condition\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">slotCondition</code>\n\nA [computed field](/docs/concepts/computed-fields) that determines whether this slot can accept new properties.\n\n### Unique\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">unique</code>\n\nThe slot can control how it deals with the uniqueness of properties that fill it.\n\n### Description\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">description</code>\n\nA detailed description of the slot. Allows [inline calculations](/docs/concepts/inline-calculations).\n\n### Hide when full\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">hideWhenFull</code>\n\nWhen set the slot will hide itself when it is filled.\n\n### Ignored\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">ignored</code>\n\nWhen set the slot will not show a prompt card on the build tab.\n\n---\n<br>\n\n*Note: To refer to a Slot property by [ancestor reference](/docs/concepts/computed-fields#ancestor-references), use `#propertySlot` instead of `#slot`.*",
"published": true
},
{
"_id": "h9Jw5bfSLq3D2jmeD",
"name": "Spell lists",
"parentId": "ioei4uvDdGTAFqZrB",
"root": {
"id": "DDDDDDDDDDDDDDDDD",
"collection": "docs"
},
"left": 30,
"right": 30,
"urlName": "spell-list",
"href": "/docs/property/spell-list",
"published": true,
"description": "Spell lists are collections of [spells](/docs/property/spell).\n\n---\n\n### Name\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">name</code>\n\nThe name of the spell list.\n\n### Description\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">description</code>\n\nA detailed description of the spell list.\n\nAllows [inline calculations](/docs/concepts/inline-calculations).\n\n### Maximum prepared spells\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">maxPrepared</code>\n\nA [computed field](/docs/concepts/computed-fields) that determines how many spells can be considered ready to cast in this spell list.\n\n### Spell casting ability\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">ability</code>\n\nThe spellcasting ability for this spell list. The variable name of the ability can be accessed using `#spellList.ability` and the ability modifier with `#spellList.abilityMod`. Setting this field will automatically update Spell save DC and Attack roll bonus if they aren't set manually.\n\n### Spell save DC\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">dc</code>\n\nA [computed field](/docs/concepts/computed-fields) that determines the DC of saving throws in this spell list. Spells can access the DC of their spell list using `#spellList.dc`\n\n### Attack roll bonus\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">attackRollBonus</code>\n\nA [computed field](/docs/concepts/computed-fields) that determines the bonus to add to a d20 when making a spell attack with a spell in this spell list. Spells can access the attack roll bonus of their spell list using `#spellList.attackRollBonus`"
},
{
"_id": "Mji9Cnp2TcFHmQebt",
"name": "Spells",
"parentId": "ioei4uvDdGTAFqZrB",
"root": {
"id": "DDDDDDDDDDDDDDDDD",
"collection": "docs"
},
"left": 31,
"right": 31,
"urlName": "spell",
"href": "/docs/property/spell",
"description": "Spells work similarly to [actions](/docs/property/action). They appear on the spells tab and can be cast with or without using up spell slots.\n\n---\n\n### Always prepared\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">alwaysPrepared</code>\n\nA spell that is always prepared does not count towards the spell list's maximum prepared spells and is always active and ready to cast.\n\n### Prepared\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">prepared</code>\n\nA prepared spell is ready to cast and counts against a spell list's maximum prepared spells.\n\n### Cast without spell slots\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">castWithoutSpellSlots</code>\n\nWhen set, this spell can be cast without consuming spell slots. It will however consume its own uses and resources.\n\n### Name\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">name</code>\n\nThe name of the spell.\n\n### Level\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">level</code>\n\nThe minimum level at which the spell can be cast. Will also be its level when cast as a ritual or without spell slots.\n\n### School\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">school</code>\n\nWhat school the spell belongs to.\n\n### Casting time\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">castingTime</code>\n\nHow long the spell takes to Cast\n\n### Range\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">range</code>\n\nThe range of the spell\n\n### Duration\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">duration</code>\n\nHow long the spell lasts\n\n### Components\n\nWhether the spell requires verbal, somatic, or material components and whether the spell is a ritual or requires concentration.\n\n##### Component Fields\n- `verbal` - Whether the spell has a verbal component.\n- `somatic` - Whether the spell has a verbal component.\n- `material` - The spell's material component, if it has one.\n- `concentration` - Whether the spell requires concentration.\n- `ritual` - Whether the spell can be cast as a ritual.\n\n### Target\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">target</code>\n\nWho this spell should apply to. The properties under the spell will be applied to the targets.\n\n- **Self** - The spell will apply its properties to the creature casting the spell\n- **Single Target** - The spell will apply its properties without a target (for now)\n- **Multiple Targets** - The spell will apply its properties without a target (for now)\n\n### Attack roll\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">attackRoll</code>\n\nA [computed field](/docs/concepts/computed-fields) which calculates the spell attack roll modifier. If this field is empty, no attack roll will be made. Use 0 to make an attack roll without a modifier. To use the spell list's attack roll bonus use `#spellList.attackRollBonus`.\n\nThe following variables may be added to the action scope when attack rolls are made:\n\n - `~attackDiceRoll` The value of the d20 roll before any modifiers were applied.\n - `~attackRoll` The total attack roll after modifiers.\n - `~criticalHit` Set to `true` if the attack roll's d20 is a natural 20. If `~criticalHitTarget` is set, the attack roll's d20 must instead be equal to or greater than `~criticalHitTarget` for this to be set to `true`.\n - `~criticalMiss` Set to `true` if the attack roll was not a critical hit and rolled a natural 1 on the d20 roll.\n - `~attackHit` If the attack roll is higher than or equal to the target's AC or a critical hit this is set to `true`. Remains unset if there is no target for the attack unless the attack is a critical hit.\n - `~attackMiss` If the attack roll is lower than the target's AC or a critical miss, this is set to `true`. Remains unset if there is no target for the attack unless the attack is a critical miss.\n\n### Summary\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">summary</code>\n\nA brief overview of what the spell does. This will show in the log when the spell is cast. Allows [inline calculations](/docs/concepts/inline-calculations).\n\n### Description\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">description</code>\n\nA more detailed description of the spell. The description does not show in the log when the spell is cast. Allows [inline calculations](/docs/concepts/inline-calculations).\n\n### Resource\n\nA resource can be any attribute that has a variable name. If the resource attribute is less than the amount required, the spell can't be cast.\n\nIf you want to reduce an attribute when casting the spell, but want the spell to be applied regardless of the value of that attribute, consider using an [Attribute Damage](/docs/property/attribute-damage) property as a child of the spell instead. Also use Attribute Damage when the amount to reduce the attribute is determined by a dice roll rather than a stable computed number.\n\n#### Resource attribute\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">resources.attributesConsumed.0.variableName</code>\n\nThe variable name of the attribute that will be consumed when casting this spell.\n\n#### Resource quantity\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">resources.attributesConsumed.0.quantity</code>\n\nA [computed field](/docs/concepts/computed-fields) which determines how much of the attribute is required to apply this spell. This amount will be deducted from the attribute every time the spell is cast\n\n### Ammo\n\nAmmo represents items that are requied to cast the spell. If an item is not selected, or there is insufficient quantity of the selected item, the spell can't be appled.\n\n#### Ammo item\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">resources.itemsConsumed.0.tag</code>\n\nSpecify what tag an item must have to be considered valid ammo for this spell. Any item with this tag can be selected as ammo for this spell.\n\n#### Ammo quantity\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">resources.itemsConsumed.0.quantity</code>\n\nA [computed field](/docs/concepts/computed-fields) which determines how many of the selected items are required to cast this spell. The quantity is deducted from the total quantity of the item when this spell is applied.\n\n### Uses\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">uses</code>\n\nA [computed field](/docs/concepts/computed-fields) which determines how many times this spell can be used before it needs to be reset.\n\n### Uses used\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">usesUsed</code>\n\nHow many of this spell's uses have already been used. Should ideally be between 0 and the total uses available. This number is set to 0 when the spell has uses and its uses are reset.\n\n### Reset\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">reset</code>\n\nIf set, the uses used field is set to 0 at the appropriate time.\n\n- **Long rest** - Reset when the long rest button is pushed\n- **Short rest** - Reset when either the long or short rest button is pushed",
"published": true
},
{
"_id": "AXBHkYpg8ABbyk6qz",
"name": "Toggles",
"parentId": "ioei4uvDdGTAFqZrB",
"root": {
"id": "DDDDDDDDDDDDDDDDD",
"collection": "docs"
},
"left": 32,
"right": 32,
"urlName": "toggle",
"href": "/docs/property/toggle",
"published": true,
"description": "Toggles are a way to turn on and off parts of a creature. When a toggle is off, none of its children will be active.\n\nCalculated toggles should be avoided if possible, because while they offer a lot of power and flexibility to the creature engine, they often create [dependency loops](/docs/concepts/dependency-loops) that can be difficult to troubleshoot, causing parts of a creature to calculate incorrectly.\n\nCalculated toggles can be applied by [actions](/docs/property/action) and will apply their children if the condition is true, but they should be avoided in favor of [conditional branches](/docs/property/branch) which can do the same, but are more efficient.\n\n---\n\n### Name\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">name</code>\n\nThe name of the toggle.\n\n### Variable name\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">variableName</code>\n\nThe name used to refer to the value of the toggle in calculations. Must start with a letter and be made up of only letters and numbers without spaces, symbols, or punctiation.\n\n### Show on character sheet\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">showUI</code>\n\nIf set, the toggle with show a checkbox on the character sheet. A calculated toggle will show a disabled checkbox, filled in if the toggle's calculation returned `true` or a value that isn't 0.\n\n### State\n\n- **Enabled** - The toggle and its children are active (`enabled = true`)\n- **Disabled** - The toggle and its children are inactive (`disabled = true`)\n- **Calculated** - The active status of the toggle depends on the result of the condition. Use with caution. (`enabled = false && disabled = false`)\n\n### Condition\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">condition</code>\n\nA [computed field](/docs/concepts/computed-fields) that determines if the toggle is active. Use with caution."
},
{
"_id": "v7eRZRdMoDPah7ZtE",
"name": "Triggers",
"parentId": "ioei4uvDdGTAFqZrB",
"root": {
"id": "DDDDDDDDDDDDDDDDD",
"collection": "docs"
},
"left": 33,
"right": 33,
"urlName": "trigger",
"href": "/docs/property/trigger",
"description": "Triggers apply their children whenever their condition is met. They work like [actions](/docs/property/action) that are taken automatically.\n\nWhen activated, triggers are treated as children of the property that triggered them. This means you have access to things like `#spellList.dc` when triggering from a spell, no matter where the trigger is on your sheet; however, you will not be able to access a trigger's actual ancestors in this way as normal.\n\n---\n\n### Name\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">name</code>\n\nThe name of the trigger.\n\n### Timing\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">timing</code>\n\n- **Before** - The trigger is applied before the triggering event takes place\n- **After** - The trigger is fired after the triggering event\n\n### Event\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">event</code>\n\n- **Do action** - While the creature is doing an action, the action property specified in *Event type* is applied\n- **Roll check** - The creature makes a check\n- **Attribute damaged or healed** - One of the creature's attributes changed value through attribute damage or manual adjustment\n- **Short or long rest**\n- **Short rest**\n- **Long Rest**\n\n### Event type\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">actionPropertyType</code>\n\nThe trigger will apply when this property type is applied by the action\n\n### Tags required\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">targetTags.0</code>\n\nIf this trigger is fired by a property, the property must match these tags for the trigger to fire.\n\nAdditional tag lists can be created using either OR mode (a property with either all of the tags in the main list *or* all of the tags in an OR list will fire the trigger) or NOT mode (a property with any tag in a NOT list will not fire the trigger).\n\n##### Additional Tag List Fields\n- `extraTags.0.operation` - Whether this additional tag list is an OR list or a NOT list.\n- `extraTags.0.tags.0` - The tags in this additional tag list.\n\n### Condition\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">condition</code>\n\nA [computed field](/docs/concepts/computed-fields) to determine if the trigger should fire. The trigger will fire if the condition field is empty or if it returns `true` or a value that isn't 0.\n\n### Description\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">description</code>\n\nA detailed description of the trigger. Allows [inline calculations](/docs/concepts/inline-calculations).",
"published": true
},
{
"_id": "bTLn3sMpzxr7SAfD7",
"name": "Computed fields",
"parentId": "E2DFwsCoiKy2Rc9Mz",
"root": {
"id": "DDDDDDDDDDDDDDDDD",
"collection": "docs"
},
"left": 34,
"right": 34,
"urlName": "computed-fields",
"href": "/docs/concepts/computed-fields",
"published": true,
"description": "Some fields in DiceCloud creature properties expect calculations. These fields are then computed by the DiceCloud engine.\n\nSome fields, like the value of an attribute, resolve down to a single number, while others, like the damage to deal in an attack, only simplify their calculation as far as they can, and then resolve down to a number when applied. Avoid adding dice rolls to calculations that expect to resolve down to a number, because they will re-roll every time the creature is recalculated, causing instability in the creature's stats.\n\n## Parser\n\nThe DiceCloud parser can understand the following syntax:\n\n| | |\n| :- | :- |\n| **Numbers** | `13`, `3.14` |\n| **Dice rolls** | `3d6`, `(1 + 2)d4`|\n| **Strings of text** | `'Some text'`, `\"some other text\"` |\n| **Boolean values** | `true` or `false`. When DiceCloud expects a boolean, `0`, an empty string `''` and `false` are all considered false by DiceCloud's engine, every other value is considered true. |\n| **Variable names** | `variableName` |\n| **Addition and subtraction** | `1 + 2 + 3`, `12 - 6` |\n| **Multiplication** | `6 * 4`, `12 * 2` = `24` |\n| **Division** | `6 / 2`, `12 / 4` = `3` |\n| **Exponents** | `3 ^ 2` Raise 3 to the power of 2 |\n| **Modulo** | Returns the remainder of a division operation `15 % 6` = `3` |\n| **AND** | `&` or `&&`: Returns the value of the right hand side if the left side is true `true & 'cat'` = `'cat'` |\n| **OR** | <code>&vert;</code> or <code>&vert;&vert;</code>: Returns the left hand side if it is true, otherwise returns the right hand side <code>'dog' &vert;&vert; 'cat'</code> = `'dog'` |\n| **NOT** | `!` returns false if the value after it is true, otherwise returns false |\n| **Comparisons** | greater than: `>`, less than: `<`, greater than or equal to: `>=`, less than or equal to: `<=`, equal: `=` or `==` or `===`, not equal: `!=` or `!==` |\n| **If-else** | `condition ? resultIfTrue : resultIfFalse`, `level > 10 ? 'high tier' : 'low tier'` |\n| **Arrays** | lists of values `[3, 6, 9, 12]`. |\n| **Array Indexes** | A value can be chosen from an array using another set of square brackets: `[3, 6, 9, 12][2]` = `[6]` because `[2]` fetches the 2nd value in the array. Arrays start at 1 in DiceCloud so that level tables can have 20 entries and be accessed by `array[level]`. |\n| **Function calls** | `functionName(argument1, argument1)` See [Functions](/docs/concepts/functions) for a full list of available functions. |\n\n## Special variables\n\n### Built-in variables\n\nThese variables are added to the creature automatically when relevant. They can be overridden if needed by creating a property with the same variable name. They can also be targeted by effects.\n\n- `xp` - A total of all the experiences with xp added to the character sheet\n- `milestoneLevels` - A total of all the experiences with milestone levels added to the character sheet\n- `itemsAttuned` - Number of items the creature is attuned to\n- `weightEquipment` - Total weight of all equipment on the creature\n- `valueEquipment` - Total value of all equipment on the creature\n- `weightTotal` - Total weight of the creature's entire inventory\n- `valueTotal` - Total value of the creature's entire inventory\n- `weightCarried` - Total weight of all carried items and containers\n- `valueCarried` - Total value of all carried items and containers\n- `level` - The current level of the creature, including all class levels\n- `~criticalHitTarget` - Defaults to 20, the natural roll needed to consider an attack roll as a critical hit\n\n### Pseudo built-in variables\n\nThese variables are not created automatically, but are assumed to exist by various parts of the system. Your sheet won't break if they don't exist, but some things may not work as expected out of the box.\n\n- `proficiencyBonus` - The level-based bonus to add to your attacks, checks, and saves when proficiency is applicable.\n - Skills use `proficiencyBonus` to define their modifier by default, by multiplying it with their `proficiency` field.\n - Setting a spellcasting ability on a Spell List will autofill the Attack Roll Bonus and DC fields with a formula including `proficiencyBonus`.\n\n### Action variables\n\nThese variables are available during an action after the relevant property has been applied. For Advanced users, a [Roll](/docs/property/roll) can set these variables, overriding the default behavior.\n\n#### [Actions](/docs/property/action)\n\n- `~attackDiceRoll` - The value of the d20 roll before any modifiers were applied.\n- `~attackRoll` - The total attack roll after modifiers.\n- `~criticalHit` - Set to `true` if the attack roll's d20 is a natural 20. If `~criticalHitTarget` is set, the attack roll's d20 must instead be equal to or greater than `~criticalHitTarget` for this to be set to `true`.\n- `~criticalMiss` - Set to `true` if the attack roll was not a critical hit and rolled a natural 1 on the d20 roll.\n- `~attackHit` - If the attack roll is higher than or equal to the target's AC or a critical hit this is set to `true`. Remains unset if there is no target for the attack unless the attack is a critical hit.\n- `~attackMiss` - If the attack roll is lower than the target's AC or a critical miss, this is set to `true`. Remains unset if there is no target for the attack unless the attack is a critical miss.\n\n#### [Spells](/docs/property/spell)\n\n- `slotLevel` - The level at which the spell was cast, from 0 to 9.\n\nSpells can also use any of the variables from Actions if they're set to have an attack roll.\n\n#### [Skills](/docs/property/skill)\n\n- `~checkDiceRoll` - The value of the d20 roll before any modifiers were applied.\n- `~checkRoll` - The total check result after modifiers.\n\nNote that since Skills don't directly activate their children, these variables are only accessible by using a [Trigger](/docs/property/trigger) with the Roll Check event.\n\n#### [Damage](/docs/property/damage)\n\n- `~lastDamageType` - The type of damage dealt last, any damage that has the `extra` type will use this damage type instead\n\n#### [Saving throws](/docs/property/saving-throw)\n\n- `~saveFailed` - Set to `true` if the target failed its saving throw or there are no targets for the saving throw\n- `~saveSucceeded` - Set to `true` if the target made its saving throw or there are no targets for the saving throw\n- `~saveDiceRoll` - The unmodified d20 roll the target made to save\n- `~saveRoll` - The final value of the saving throw roll after modifiers\n\n## Ancestor references\n\nThe ancestors of a property can be accessed directly using the `#ancestorType` syntax. For example, a spell might need to know the save DC of the spell list that it is inside of, which can be accessed with `#spellList.dc`.\n\nTriggers and their children work differently: They don't have access to their own ancestors, but rather inherit the ancestors of the property that caused them to fire. For example, a trigger at the root of the creature's tree might be fired by a spell being cast, you can still use references to ancestors like `#spellList.attackRollBonus` inside that trigger as if it were under the spell itself."
},
{
"_id": "o8u2Z5gZW54ZXNeZB",
"name": "Dependency loops",
"parentId": "E2DFwsCoiKy2Rc9Mz",
"root": {
"id": "DDDDDDDDDDDDDDDDD",
"collection": "docs"
},
"left": 35,
"right": 35,
"urlName": "dependency-loops",
"href": "/docs/concepts/dependency-loops",
"published": true,
"description": "When a variable is referenced in a calculation, that calculation can be said to depend on that variable. In order for the calculation to compute, the value of the variable needs to be known.\n\nBut consider the following property values that could be added to a creature\n\n- The creature's Strength base value is set to `dexterity + 1` so that it will always have 1 more strength than dexterity\n- The creature's Dexterity base value is set to `constitution + 1` so that it will always have 1 more dexterity than constitution\n- The creature's Constitution base value is set to `strength` so that its constitution is always equal to its strength\n\nIt is not possible to resolve these calculations, not just because no values exist which satisfy the constraints, but because strength depends on dexterity which depends on constitution which depends on strength. None can be computed before the others have finalized their values. This is a dependency loop.\n\nMost dependency loops that appear in actual DiceCloud creatures are less trivial than this example, but they cause the same result: a sheet that can't be accurately computed. In these cases, DiceCloud does its best, chooses an order to resolve the calculations arbitrarily, and continues calculating. An error will show on the Build tab to let you know that something went wrong.\n\n![dependency loop example](/images/docs/dependency-loop.png)\n\n## Toggles\n\nCalculated [Toggles](/docs/property/toggle) are the main source of dependency loops on creatures, because they create a dependency that isn't as obvious as a calculation might be. When a toggle is in calculated mode, its children do not know whether they are active or not until the calculation is resolved. Because of this, every calculation under the toggle depends on the toggle's calculation, making the chance for a loop to be formed more likely the more children are under a toggle.\n\nConsider this example\n\n- A calculated toggle that is active if `strength < 10`\n- An effect under that toggle that adds 2 to `strength`\n\nThe effect can't compute, because it does not know if it is active yet, so the toggle must compute its calculation first. The toggle needs to know if `strength` is greater than 10. Strength depends on all of the effects targeting it, it must know if the +2 effect is active or not. This creates a dependency loop, because there is no valid order in which everything can be calculated.\n\n## Troubleshooting a dependency loop\n\n- First, identify all the properties that make up the dependency loop. These are linked in the dependency loop error message. The field names in square brackets after the property name indicates which calculations on the property are directly involved.\n- Move any properties in the loop out from being children of calculated Toggles\n- Use static values in place of variables where they are not strictly needed\n- Ask for [help](/feedback)"
},
{
"_id": "KFkmXFLQrdPQNpJ7X",
"name": "Inline Calculations",
"parentId": "E2DFwsCoiKy2Rc9Mz",
"root": {
"id": "DDDDDDDDDDDDDDDDD",
"collection": "docs"
},
"left": 36,
"right": 36,
"urlName": "inline-calculations",
"href": "/docs/concepts/inline-calculations",
"description": "Most long-format fields allow inline [calculations](/docs/concepts/computed-fields) to be included. Calculations inside of curly braces will be computed down to numbers using the characters stats.\n\nFor example a creature's strength attribute may have the following in its description: `Your carrying capacity is {strength * 15} lbs.`\n\nWhen the creature is calculated, if it has 8 strength, the action description will become: \"Your carrying capacity is 120 lbs.\"\n\nIf a description includes a dice roll, only the part that can be calculated to a single number should be included in the calculation braces: `The attack does an extra {paladin.level}d8 damage`, which becomes `The attack does an extra 4d8 damage`.\n\nDo not include the dice roll in the calculation: `The attack does an extra {(paladin.level)d8} damage`, because it will become `The attack does an extra 16 damage` but the number 16 will change every time the creature recalculates.",
"published": true
},
{
"_id": "QFtqb7y5kLPDJoWXG",
"name": "Tags",
"parentId": "E2DFwsCoiKy2Rc9Mz",
"root": {
"id": "DDDDDDDDDDDDDDDDD",
"collection": "docs"
},
"left": 37,
"right": 37,
"urlName": "tags",
"href": "/docs/concepts/tags",
"description": "Tags are used to reference multiple similar properties at once. A slot can require only properties from your library that has matching tags, effects and some other properties can also target properties to apply to by tags.\n\n## Built in tags\n\nProperties have specific tags automatically for use with tag-targeting. These aren't relevant for slots and finding properties in a library with specific tags.\n\n- `#type` Actions will have the `#action` tag, etc. Damage will either have the tag `#damage` or the tag `#healing` if the damage type is healing\n- `variableName` if a property has a variable name it will be included as a tag\n- The action type of an [action](/docs/property/action): `action`, `bonus`, `attack`, `reaction`, `free`, `long`, `event`\n- The type of damage done by a [damage](/docs/property/damage) property: `bludgeoning`, `slashing`, `...` \n- The skill type of a [skill](/docs/property/skill) property: `skill`, `save`, `check`, `tool`, `weapon`, `armor`, `language`, `utility`\n- The attribute type of an [attribute](/docs/property/attribute) property: `ability`, `stat`, `modifier`, `hitDice`, `healthBar`, `resource`, `spellSlot`, `utility`\n- When the property resets: `longRest`, `shortRest`",
"published": true
},
{
"_id": "3dkEFEnwH4ShSY2BS",
"name": "Functions",
"parentId": "E2DFwsCoiKy2Rc9Mz",
"root": {
"id": "DDDDDDDDDDDDDDDDD",
"collection": "docs"
},
"left": 38,
"right": 38,
"urlName": "functions",
"href": "/docs/concepts/functions",
"description": "## max\nReturns the largest of the given numbers\n`max(12, 6, 3, 168)` = `168`\n\n## min\nReturns the smallest of the given numbers\n`min(12, 6, 3, 168)` = `3`\n\n## round\nReturns the value of a number rounded to the nearest integer\n`round(5.95)` = `6`\n`round(5.5)` = `6`\n`round(5.05)` = `5`\n\n## floor\nRounds a number down to the next smallest integer\n`floor(5.95)` = `5`\n`floor(5.05)` = `5`\n`floor(5)` = `5`\n`floor(-5.5)` = `-6`\n\n## ceil\nRounds a number up to the next largest integer\n`ceil(5.95)` = `6`\n`ceil(5.05)` = `6`\n`ceil(5)` = `5`\n`ceil(-5.5)` = `-5`\n\n## trunc\nReturns the integer part of a number by removing any fractional digits\n`trunc(5.95)` = `5`\n`trunc(5.05)` = `5`\n`trunc(5)` = `5`\n`trunc(-5.5)` = `-5`\n\n## abs\nReturns the absolute value of the given number\n`abs(7)` = `7`\n`abs(-7)` = `7`\n\n## sign\nReturns either a positive or negative 1, indicating the sign of a number, or zero\n`sign(-3)` = `-1`\n`sign(3)` = `1`\n`sign(0)` = `0`\n\n## tableLookup\nReturns the index of the last value in the array that is less than the specified amount\n`tableLookup([100, 300, 900], 457)` = `2`\n`tableLookup([100, 300, 900], 23)` = `0`\n`tableLookup([100, 300, 900, 1200], 900)` = `3`\n`tableLookup([100, 300], 594)` = `2`\n\n## resolve\nForces the given calcultion to resolve into a number, even in calculations where it would usually keep the unknown values as is\n`resolve(someUndefinedVariable + 3 + 4)` = `7`\n`resolve(1d6)` = `4`\n\n## dropLowest\nDrops the lowest N dice results from a roll.\n`dropLowest(4d6, 1)` = `[3, 5, `~~`1`~~`, 2] = 10`\n`dropLowest(4d6, 2)` = `[3, 5, `~~`1`~~`, `~~`2`~~`] = 8`\n\n## dropHighest\nDrops the highest N dice results from a roll.\n`dropHighest(4d6, 1)` = `[3, `~~`5`~~`, 1, 2] = 6`\n`dropHighest(4d6, 2)` = `[`~~`3`~~`, `~~`5`~~`, 1, 2] = 3`\n\n## reroll\nRerolls any dice with a result below a certain threshold and replaces their results. If the third parameter is `true`, forces only a single reroll instead of rerolling until the threshold is met.\n`reroll(1d20, 5)` = `[3] -> [1] -> [15] = 15`\n`reroll(1d20, 5, true)` = `[3] -> [1] = 1`\n\n## explode\nRerolls any dice with a result above a certain threshold and adds their results to the total, repeating the process up to a maximum depth.\n`explode(4d6, 3, 6)` = `[3, 6, 1, 6] -> [3, 6, 1, 6, 6, 4] -> [3, 6, 1, 6, 6, 4, 6], -> [3, 6, 1, 6, 6, 4, 6, 6] = 38`\n`explode(4d6, 1, 6)` = `[3, 6, 1, 6] -> [3, 6, 1, 6, 6, 4] = 26`",
"published": true
},
{
"_id": "AQGjqq6grmKXZN6dB",
"name": "Character Tree",
"parentId": "E2DFwsCoiKy2Rc9Mz",
"root": {
"id": "DDDDDDDDDDDDDDDDD",
"collection": "docs"
},
"left": 39,
"right": 39,
"urlName": "tree",
"href": "/docs/concepts/tree",
"published": false,
"description": "TODO"
},
{
"_id": "KTwfr2DJ5aubsEbLt",
"name": "Getting Started",
"left": 43,
"right": 43,
"urlName": "getting-started",
"href": "/docs/getting-started",
"root": {
"id": "DDDDDDDDDDDDDDDDD",
"collection": "docs"
},
"description": "Get acquainted with the basics of how to use DiceCloud.",
"published": true,
"icon": {
"name": "open-book",
"shape": "M149.688 85.625c-1.234.005-2.465.033-3.72.063-33.913.806-75.48 10.704-127.25 33.718V362.78c60.77-28.82 106.718-37.067 144.22-33.092 33.502 3.55 59.685 16.66 83.562 31.187v-242.97c-23.217-17.744-50.195-30.04-85.97-32-3.52-.192-7.142-.296-10.843-.28zm211.968 0c-3.7-.016-7.322.088-10.844.28-35.773 1.96-62.75 14.256-85.968 32v242.97c23.876-14.527 50.06-27.637 83.562-31.188 37.502-3.974 83.45 4.272 144.22 33.094V119.407c-51.77-23.014-93.337-32.912-127.25-33.72-1.255-.028-2.486-.056-3.72-.06zm5.72 261.78c-1.038-.002-2.074.017-3.095.033-4.808.075-9.43.37-13.905.843-33.932 3.597-59.603 17.976-85.53 34.44v.28c-6.554-1.99-13.02-2.37-19.408-.97-25.566-16.177-51.003-30.202-84.468-33.75-5.595-.592-11.44-.883-17.564-.842-32.04.213-71.833 9.778-124.687 35.937v42.53c60.77-28.823 106.714-37.067 144.218-33.092 18.545 1.965 34.837 6.845 49.75 13.28-4.682 6.064-9.308 13.268-13.875 21.688h117.156c-5.93-8.22-11.798-15.414-17.626-21.56 14.996-6.503 31.39-11.43 50.062-13.408 37.503-3.974 83.448 4.27 144.22 33.094v-42.53c-53.16-26.31-93.115-35.863-125.25-35.97z"
}
},
{
"_id": "fHH4zMWAGr2v6dJzq",
"name": "Creating a Character",
"parentId": "KTwfr2DJ5aubsEbLt",
"root": {
"id": "DDDDDDDDDDDDDDDDD",
"collection": "docs"
},
"left": 44,
"right": 44,
"urlName": "creating-a-character",
"href": "/docs/getting-started/creating-a-character",
"description": "The first thing you'll most likely want to do upon joining DiceCloud is to create a character. To do so, you'll need to head to your character list to create one - use the ☰ button at the top left to open the menu, then click on Characters.\n\nAny time you see a circular red (+) button like below, you can click it to add something new, be it a character, a game statistic, or a note about your adventures. For now, start by clicking on the one on your character list to create a new character.\n\n<img src=\"https://i.imgur.com/DozXzBY.png\" style=\"display:block;margin:8px auto\">\n\nOnce you've clicked that button, you should see a dialog that looks like below. Fill out your basic character details like name, alignment, and gender (you can always change these later), then click either Next or Create. \n\nIf you click Next, you'll be given an option to select which libraries you want your character to pull from; you should automatically be subscribed to a library for the freely available SRD materials from D&D 5th Edition, so we'll ignore this step for now. See [Using Libraries](/docs/getting-started/using-libraries) for details on how to get access to materials outside of the 5e SRD.\n\n<img src=\"https://i.imgur.com/arnjWvN.png\" style=\"display:block;margin:8px auto;width:500px\">\n\nNow that your character is created, you can select them from your character list, and you'll be taken to a page that looks like below. This is the Build tab, and is where you'll make most decisions regarding things like your character's ability scores, race, class, and background. By clicking on the cards outlined in red along the top, you can select from the freely available SRD materials to build your character as you see fit; new cards will appear as choices you make require additional detail, such as your class proficiencies or subclass.\n\n<img src=\"https://i.imgur.com/3nSL9rJ.png\" style=\"display:block;margin:8px auto;width:500px\">\n\nOnce you've selected your class, you should see a Level Up button appear on the card labeled \"Level\". You can click this button to level your character up when the time comes.\n\n<img src=\"https://i.imgur.com/MhuSedn.png\" style=\"display:block;margin:8px auto;\">\n\n---\n<br>\n\nNow that you've filled out your basic character choices, you can start exploring the rest of your character sheet. The tabs along the top each represent a different page, on which you'll find various different pieces of your character's information.\n\n- The Stats tab contains things like your hit points, ability scores, skills, and other similar information. Clicking on most stats or skills will allow you to roll for them, the results of which will show up in the log to the right (if you don't see it, click the button that looks like speech bubbles at the top right of your sheet).\n- The Actions tab contains clickable buttons to activate various abilities your character can use.\n- The Spells tab contains information about your character's spellcasting abilities, if applicable. You can hide it from your sheet if you don't want it by going to the Journal tab, clicking on your character's details, and opening Advanced.\n- The Inventory tab contains information about your character's items and money.\n- The Features tab contains information about what your character can do that's special and unique to them.\n- The Journal tab features your basic character information, and you can also add notes to track various things like your backstory or campaign notes.\n- The Tree tab is hidden by default, and allows advanced users to easily dig into the guts of how their sheet functions. You can enable it from the same place as hiding the Spells tab.\n\nIf you're ever in doubt about how something works, click on it! Most things on your sheet will either do something when clicked, or open up to show more details. Also keep the red (+) buttons in mind; most tabs have one, and clicking on them will allow you to add new things to your sheet depending on which tab you use it from. The best way to learn is by exploring.\n\n---\n<br>\n\n<p style=\"float:right\"><a href=\"/docs/getting-started/using-libraries\">Next: Using Libraries &gt;</a></p>",
"icon": {
"name": "skills",
"shape": "M119.1 25v.1c-25 3.2-47.1 32-47.1 68.8 0 20.4 7.1 38.4 17.5 50.9L99.7 157 84 159.9c-13.7 2.6-23.8 9.9-32.2 21.5-8.5 11.5-14.9 27.5-19.4 45.8-8.2 33.6-9.9 74.7-10.1 110.5h44l11.9 158.4h96.3L185 337.7h41.9c0-36.2-.3-77.8-7.8-111.7-4-18.5-10.2-34.4-18.7-45.9-8.6-11.4-19.2-18.7-34.5-21l-16-2.5L160 144c10-12.5 16.7-30.2 16.7-50.1 0-39.2-24.8-68.8-52.4-68.8-2.9 0-4.7-.1-5.2-.1zM440 33c-17.2 0-31 13.77-31 31s13.8 31 31 31 31-13.77 31-31-13.8-31-31-31zM311 55v48H208v18h103v158h-55v18h55v110H208v18h103v32h80.8c-.5-2.9-.8-5.9-.8-9 0-3.1.3-6.1.8-9H329V297h62.8c-.5-2.9-.8-5.9-.8-9 0-3.1.3-6.1.8-9H329V73h62.8c-.5-2.92-.8-5.93-.8-9 0-3.07.3-6.08.8-9H311zm129 202c-17.2 0-31 13.8-31 31s13.8 31 31 31 31-13.8 31-31-13.8-31-31-31zm0 160c-17.2 0-31 13.8-31 31s13.8 31 31 31 31-13.8 31-31-13.8-31-31-31z"
},
"published": true
},
{
"_id": "pEKPMFngRH3LjKZxs",
"name": "Using Libraries",
"parentId": "KTwfr2DJ5aubsEbLt",
"root": {
"id": "DDDDDDDDDDDDDDDDD",
"collection": "docs"
},
"left": 45,
"right": 45,
"urlName": "using-libraries",
"href": "/docs/getting-started/using-libraries",
"description": "Libraries are DiceCloud's way of both sharing and reusing user-created materials. \n\nWhen you first create your account, you should be automatically subscribed to a library for the materials freely available in D&D 5th Edition's \"System Reference Document\" (SRD). That library contains a Ruleset which will automatically be installed on new characters, which defines the structure of a character designed for use with that Ruleset - everything from hit points to skills and more. User-created libraries can define alternate Rulesets for 5e or other systems, as well as contain additional materials such as items or classes which can be used with a specific Ruleset.\n\nTo subscribe to a library, click on the link shared with you, then click the “Subscribe” button at the top right of the page. You can also find a directory of publicly shared, user-created libraries in the [community libraries browser](/community-libraries) or on DiceCloud's [Discord server](https://discord.gg/mv93t6QdEN).\n\n<img src=\"https://i.imgur.com/F4EZJDU.png\" style=\"display:block;margin: 8px auto;width:500px\">\n\nIn order to create a library, you'll need to be a [Patron](https://www.patreon.com/dicecloud) in at least the Adventurer ($5) tier, or be invited by someone of the Hero ($10) tier or higher. You can always use libraries others have created, even without any subscription.\n\n---\n<br>\n\n<p style=\"float:left\"><a href=\"/docs/getting-started/creating-a-character\">&lt; Previous: Creating a Character</a></p>\n<p style=\"float:right\"><a href=\"/docs/getting-started/markdown-basics\">Next: Markdown Basics &gt;</a></p>",
"icon": {
"name": "bookshelf",
"shape": "M169 57v430h78V57h-78zM25 105v190h46V105H25zm158 23h18v320h-18V128zm128.725 7.69l-45.276 8.124 61.825 344.497 45.276-8.124-61.825-344.497zM89 153v270h62V153H89zm281.502 28.68l-27.594 11.773 5.494 12.877 27.594-11.773-5.494-12.877zm12.56 29.433l-27.597 11.772 5.494 12.877 27.593-11.772-5.492-12.877zm12.555 29.434l-27.594 11.77 99.674 233.628 27.594-11.773-99.673-233.625zM25 313v30h46v-30H25zm190 7h18v128h-18V320zM25 361v126h46V361H25zm64 80v46h62v-46H89z"
},
"published": true
},
{
"_id": "AcqxstmYQB9K4Zfao",
"name": "Archiving Characters",
"parentId": "KTwfr2DJ5aubsEbLt",
"root": {
"id": "DDDDDDDDDDDDDDDDD",
"collection": "docs"
},
"left": 46,
"right": 46,
"urlName": "archiving-characters",
"href": "/docs/getting-started/archiving-characters",
"description": "WIP\n\n---\n<br>\n\n<p style=\"float:left\"><a href=\"/docs/getting-started/using-libraries\">&lt; Previous: Using Libraries</a></p>\n<p style=\"float:right\"><a href=\"/docs/getting-started/markdown-basics\">Next: Markdown Basics &gt;</a></p>",
"icon": {
"name": "cloud-download",
"shape": "M200.1 31.2A130.1 132.4 0 0 0 70.03 163.6a130.1 132.4 0 0 0 .55 11.3 80.98 73.47 0 0 0-52.21 68.6A80.98 73.47 0 0 0 99.35 317a80.98 73.47 0 0 0 37.25-8.3 189.3 80.97 0 0 0 78.4 16.5v-49.9h82v50.1a189.3 80.97 0 0 0 39.5-5.7 91.09 67.8 0 0 0 66 21.1 91.09 67.8 0 0 0 91.1-67.8 91.09 67.8 0 0 0-58-63.1 70.1 81.72 20.61 0 0 2.6-6.2 70.1 81.72 20.61 0 0-36.8-101.2 70.1 81.72 20.61 0 0-76.9 22.8 130.1 132.4 0 0 0-124.4-94.1zM233 293.3v112h-51.3l74.3 74.3 74.3-74.3H279v-112h-46z"
}
},
{
"_id": "PmJC5TohrNQhMPYfb",
"name": "Markdown Basics",
"parentId": "KTwfr2DJ5aubsEbLt",
"root": {
"id": "DDDDDDDDDDDDDDDDD",
"collection": "docs"
},
"left": 47,
"right": 47,
"urlName": "markdown-basics",
"href": "/docs/getting-started/markdown-basics",
"description": "DiceCloud uses Github-flavored Markdown for most of its text fields, such as descriptions and summaries. This page gives a quick overview of what you can do with it.\n\n## Inline Calculations\nThe primary feature unique to DiceCloud's version of Markdown is the ability to embed variables and calculations into your text using `{curly braces}`, for example `{8 + proficiencyBonus + charisma.modifier}`. See [Inline Calculations](/docs/concepts/inline-calculations) for more details.\n\n## Inline Text Formatting\n\nSyntax | Result\n:-- | :--\n`*italic*` | *italic*\n`**bold**` | **bold**\n`***bold italic***` | ***bold italic***\n`~~strikethrough~~` | ~~strikethrough~~\n<code>&grave;code&grave;</code> | `code`\n`[Links](https://youtu.be/dQw4w9WgXcQ)` | [Links](https://youtu.be/dQw4w9WgXcQ)\n\n## Headings\nStarting a line with `#` will create a heading. Adding additional `#`s will reduce the size of the heading in steps, for example `###`.\n\n## Lists\n```\n- Unordered\n- List\n- Items\n\n1. Ordered\n2. List\n3. Items\n```\n\n## Tables\nCreating a table like this, with the arrangement of `:-:` in the second row defining the alignment:\n```\nColumn 1 | Column 2 | Column 3\n:-- | :-: | --:\nLeft-aligned | Centered | Right-aligned\n```\n<br>\nWill result in a table like this:\n\nColumn 1 | Column 2 | Column 3\n:-- | :-: | --:\nLeft-aligned | Centered | Right-aligned\n\n## Images\n```\n![Dicecloud's logo](https://dicecloud.com/favicon-96x96.png)\n```\n![Dicecloud's logo](https://dicecloud.com/favicon-96x96.png)\n\n## Code Blocks\n<pre><code>```\nfunction someCode() {\n // Useful for displaying blocks of code!\n}\n```</code></pre>\n\n## Inline HTML\nDiceCloud also allows you to use HTML in any text field that allows Markdown. This is an advanced feature, and not all features of HTML are allowed; you should really only use this if you know what you're doing.\n\n---\n<br>\n\n<p style=\"float:left\"><a href=\"/docs/getting-started/using-libraries\">&lt; Previous: Using Libraries</a></p>",
"icon": {
"name": "scroll-quill",
"shape": "M311.9 47.95c-17.6 0-34.6.7-50.7 2.43L244.6 93.5l-4.9-40.04c-2.5.46-5 .94-7.5 1.47-9.1 1.94-15.1 7.22-20.3 14.87-5.2 7.65-8.9 17.5-12.1 26.6C191 121.5 184 148 178.4 175c6 5.1 12 10.3 17.9 15.4l30.7-17.6 33.8 26.1 51.9-19.7 61 24.5-6.8 16.7-54.4-21.8-54.7 20.7-32.2-24.9-14.9 8.5c19.6 17.3 38.6 34.4 56.5 51.2l14-6.4 33.9 16.1 31.2-13.1 24.2 23.3-12.4 13-15.8-15.1-27.6 11.7-33-15.8c6.9 6.7 13.6 13.2 20.1 19.7l1.7 1.8 19.5 76.3-7.8-5.7-53 .4-38.1-17.8-42.4 14.6-5.8-17 49.2-17 41.1 19.2 24.7-.2-70.7-51.7c-19.7 4.6-39.4 2.8-58.1-3.7-4.2 44.4-5.9 85.7-7 118.7-.4 10.7 2.7 23 7.5 32.5 4.9 9.5 11.7 15.4 15 16.1 5.2 1.2 19 3.2 37.7 5.1l12.4-39 19.1 41.7c16.7 1.2 35 2 53.5 2.2 28.2.3 57.1-.9 82-4.7 15.8-2.3 29.6-6 40.7-10.4-11.8-5.1-21.6-10.6-29.1-16.6-11.1-8.9-18.2-19.3-17.3-30.9v.2c5.4-96.4 10.8-188.8 30.3-286l.1-.4.1-.4c5.3-17.9 17.9-39.86 36.1-55.83-13.9-2.06-28.6-4-43.7-5.66l-22.3 25.3-2.2-27.7c-19-1.64-38.4-2.71-57.4-2.92h-5.7zm148.5 20.44c-4.7 3.69-9.2 8.03-13.3 12.73 12.1 8.18 21.4 23.38 21.8 36.98.3 7.8-1.9 14.9-7.7 21.4-5.8 6.4-15.6 12.4-31.6 15.8l3.8 17.6c18.6-4 32.3-11.5 41.2-21.4 9-9.9 12.7-22.2 12.3-34-.6-19.3-11.1-37.59-26.5-49.11zM25.44 71.91c-.24 1.61-.38 3.43-.38 5.62.1 7.69 2.03 18.17 5.83 30.17 3.41 10.7 8.27 22.5 14.35 34.8 10.63-5.3 20.59-11 28.41-18.1-4.42 12.5-10.15 24.7-18.6 36.5 4.14 7.2 8.63 14.4 13.45 21.5 10.64-5.3 20.72-13 29.52-26.1-3.3 16-8.47 30.6-18.27 41.8 6.53 8.5 13.5 16.8 20.75 24.5 8.7-9.3 15.6-21 20.7-34.9 3.8 18.5 2.6 35.3-5.7 49.4 8 7.2 16.3 13.7 24.8 19.1 6.1-14 8.9-30.6 8.5-49.7 9.2 23.7 11.3 42.9 9.6 59.5 20.2 9.2 40.8 12 61.3 6.1l4.2-1.3 69.3 50.6-5.9-22.8c-73-72.8-175.4-156.7-261.86-226.69zM312.8 123.9l33.2 13.8 31.3-9.9 5.4 17.2-37.5 11.9-33.6-14-28.8 8.1-4.8-17.4zm107.3 236.2c-.7 0-1.3.1-2 .1-3.5.1-7.2.5-11.1 1.3l3.4 17.6c12.2-2.3 20-.4 24.5 2.5 4.4 2.9 6.3 6.8 6.4 12.5.1 9.3-7 23-23.3 32.5 5.4 2.9 11.9 5.9 19.3 8.7 14.4-11.6 22.1-26.8 22-41.4-.1-10.7-5.2-21.2-14.6-27.4-6.7-4.3-15-6.5-24.6-6.4z"
},
"published": true
},
{
"_id": "DHWmM4xsYRcMCHjGJ",
"name": "Universal Fields",
"parentId": "ioei4uvDdGTAFqZrB",
"root": {
"id": "DDDDDDDDDDDDDDDDD",
"collection": "docs"
},
"left": 48,
"right": 48,
"urlName": "universal-fields",
"href": "/docs/property/universal-fields",
"description": "Many fields are shared by multiple property types, as their functionality is linked more closely to Dicecloud's core than to the functionality of any specific property.\n\n---\n\n## All Properties\nThese fields exist on all properties, regardless of type.\n\n### Icon\nA custom icon from [Game-Icons.net](https://game-icons.net). The property type's default icon is used instead if unset.\n\n### Color\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">color</code>\n\nThe visual color of the property. Unlike in V1, this has no effect on sorting and is purely visual.\n\n### Tags\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">tags.0</code>\n\nSmall pieces of text that can be used to identify groups of similarly-tagged properties. See [Tags](/docs/concepts/tags) for more details.\n\n---\n\n## All Action / Activated Properties\nThese fields exist on all properties which either act as actions (Actions, Spells, Triggers), or are activated by a parent action. See [Static and Activated Properties](https://dicecloud.com/docs/concepts/static-and-activated-properties) for more details.\n\n### Don't show in log\n<code style=\"position:relative;float:right;top:-3em;font-size:12px\">silent</code>\n\nWhen this is set, the attribute damage is applied, but does not show in the log.\n\n---\n\n## Library-Only Fields\nThese fields exist on all properties, but are only accessible when editing them in a library, and are hidden when the properties are added to a character sheet.\n\n### Can fill slots\nIf checked, the property can be found by slots with conditions that match it.\n\n### Searchable from character sheet\nIf checked, the property can be found when adding a property of its type via the (+) button.\n\n### Slot fill type\nOverrides the property's apparent type when filling slots that specify a property type.\n\n### Slot quantity filled\nHow much of a slot's quantity this property should consume when chosen. Treated as 1 if unset.\n\n### Condition\nA true/false condition formula that must return `true` for the property to fill a slot. Ignored if unset.\n\n### Condition error text\nText to be displayed as a reason when the property's Condition returns `false`. The formula in Condition is shown instead if unset.\n\n### Library Tags\n[Tags](/docs/concepts/tags) that can be used to find and distinguish the property while in a library. These are used instead of the Tags field when filling slots or searching with the (+) button.",
"published": true
},
{
"_id": "FK8dPsce7KeH9pFL5",
"name": "API",
"left": 49,
"right": 49,
"urlName": "api",
"href": "/docs/api",
"root": {
"id": "DDDDDDDDDDDDDDDDD",
"collection": "docs"
},
"icon": {
"name": "cloud-download",
"shape": "M200.1 31.2A130.1 132.4 0 0 0 70.03 163.6a130.1 132.4 0 0 0 .55 11.3 80.98 73.47 0 0 0-52.21 68.6A80.98 73.47 0 0 0 99.35 317a80.98 73.47 0 0 0 37.25-8.3 189.3 80.97 0 0 0 78.4 16.5v-49.9h82v50.1a189.3 80.97 0 0 0 39.5-5.7 91.09 67.8 0 0 0 66 21.1 91.09 67.8 0 0 0 91.1-67.8 91.09 67.8 0 0 0-58-63.1 70.1 81.72 20.61 0 0 2.6-6.2 70.1 81.72 20.61 0 0-36.8-101.2 70.1 81.72 20.61 0 0-76.9 22.8 130.1 132.4 0 0 0-124.4-94.1zM233 293.3v112h-51.3l74.3 74.3 74.3-74.3H279v-112h-46z"
},
"description": "DiceCloud implements a REST API.",
"published": true
},
{
"_id": "BTigqz2SdpxHW5MJi",
"name": "Site Health Check",
"parentId": "FK8dPsce7KeH9pFL5",
"root": {
"id": "DDDDDDDDDDDDDDDDD",
"collection": "docs"
},
"left": 51,
"right": 51,
"urlName": "status",
"href": "/docs/api/status",
"icon": {
"name": "heart-beats",
"shape": "M366.688 30.027c-1.01-.01-2.022-.01-3.034.004h.002c-41.495.563-83.634 22.155-110.844 69.282-41.912-117.77-236.49-76.29-232 64.5.64 20.068 5.132 38.987 12.454 56.917h76.45l21.22-74.126 26.375 90.134 18.46-64.312 17.238 48.303H328.1l21.222-74.126 26.375 90.13 18.46-64.308 17.238 48.303h72.517c7.097-18.183 10.927-37.136 10.307-56.917-2.61-83.04-63.874-133.082-127.533-133.786zM131.125 211.34l-7.842 27.39h-81.58c54.51 103.006 197.737 172.59 216.172 241.395 16.782-62.62 165.07-139.482 217.855-241.396h-77.023l-2.69-7.542-20.154 70.208-26.353-90.054-7.84 27.387H180.32l-2.69-7.54-20.15 70.206-26.355-90.056z"
},
"description": "Checks if DiceCloud is running and has a connection to the database.\n\n### Request\n\n`GET https://dicecloud.com/api/status`\n\n### Expected Response\n\n```\n{ status: ok }\n```",
"published": true
},
{
"_id": "va9XDZgM9PQX674zu",
"name": "Creature",
"parentId": "FK8dPsce7KeH9pFL5",
"root": {
"id": "DDDDDDDDDDDDDDDDD",
"collection": "docs"
},
"left": 52,
"right": 52,
"urlName": "creature",
"href": "/docs/api/creature",
"icon": {
"name": "person",
"shape": "M250.882 22.802c-23.366 3.035-44.553 30.444-44.553 65.935 0 19.558 6.771 36.856 16.695 48.815l11.84 14.263-18.217 3.424c-12.9 2.425-22.358 9.24-30.443 20.336-8.085 11.097-14.266 26.558-18.598 44.375-7.843 32.28-9.568 71.693-9.842 106.436h42.868l11.771 157.836c29.894 6.748 61.811 6.51 90.602.025l10.414-157.86h40.816c-.027-35.169-.477-75.126-7.584-107.65-3.918-17.934-9.858-33.372-18.04-44.343-8.185-10.97-18.08-17.745-32.563-19.989l-18.592-2.88 11.736-14.704c9.495-11.897 15.932-28.997 15.932-48.082 0-37.838-23.655-65.844-49.399-65.844z"
},
"description": "Gets a creature's data.\n\n## Request\n\n```\nGET https://dicecloud.com/api/creature/:id\n```\n\nWhere `:id` is the character id found in the URL of the creature.\n\n#### Headers\n\n```\nAuthorization: Bearer <token>\n```\n\nWhere your token was obtained by [logging in](/docs/api/login)\n\n## Example\n\nIf the URL of the creature is `https://dicecloud.com/character/vzZniXrGpaxNAWPPu/Character-Name`, the id would be `vzZniXrGpaxNAWPPu`.\n\nThe token received from logging in was `QL3NZHFeQIL5qXw9tvYy5M69iS35zTPfydr-wcwZqM3`\n\n#### Request Body\n\n```\nGET https://dicecloud.com/api/creature/vzZniXrGpaxNAWPPu\n```\n\n#### Request Header\n\n```\nAuthorization: Bearer QL3NZHFeQIL5qXw9tvYy5M69iS35zTPfydr-wcwZqM3\n```\n\n## Expected Response\n\nThe API will return an object with keys whose values are arrays of database documents of the specified type. The `creatures` and `creatureVariables` each contain a single document, while `creatureProperties` will be an array of all of the properties of a creature.\n\n```\n{ \n \"creatures\": [ {\n \"_id\": \"vzZniXrGpaxNAWPPu\",\n ...\n } ],\n \"creatureProperties\": [ ... all the properties of the creature ],\n \"creatureVariables\": [ {\n \"variableName\": { ... },\n ...\n } ]\n}\n```",
"published": true
},
{
"_id": "oLcjN6nQMymjMqMkg",
"name": "Login to api",
"parentId": "FK8dPsce7KeH9pFL5",
"root": {
"id": "DDDDDDDDDDDDDDDDD",
"collection": "docs"
},
"left": 50,
"right": 50,
"urlName": "login",
"href": "/docs/api/login",
"description": "### Request\n\n `POST https://dicecloud.com/api/login`\n\n #### Body:\n```\n{\n \"username\": \"<your username>\",\n \"password\": \"<your password>\"\n}\n```\n\n #### Alternative Body:\n```\n{\n \"email\": \"<your email>\",\n \"password\": \"<your password>\"\n}\n```\n\n#### Successful response:\n```\n{\n \"id\": \"<your userId>\",\n \"token\": \"<your user token, save this>\",\n \"tokenExpires\": \"<date string of token expiry date>\"\n}\n```\n\nYour token may expire before the given date, since each user has a limited pool of login tokens. If you get a permission error, you may need to login again to refresh your token.\n\nOnce you have your token, you can use it as a standard bearer token header\nin other API endpoints:\n\n`GET https://dicecloud.com/api/some/endpoint`\nheaders: `{ Authorization: \"Bearer <token>\" }`",
"icon": {
"name": "key",
"shape": "M356.5 16.375l-174.906 255.22 1.53 1.06 31.97 22.314 175.062-255.5L356.5 16.374zm90.063 62.22c-20.16 29.418-44.122 23.1-68.25 8.905l-48.688 72.875c21.278 16.55 36.46 35.645 18.594 61.72l42.967 29.468 28.907-42.157-14.72-9.156c-3.167 1.844-6.85 2.906-10.78 2.906-11.85 0-21.47-9.62-21.47-21.47 0-11.847 9.62-21.436 21.47-21.436s21.437 9.59 21.437 21.438c0 .195-.025.4-.03.593l15.906 9.907 17.938-26.218-37.688-23.5 11.03-17.72 14.94 9.313 10.093-16.188 24.25 15.094 17.092-24.94-43-29.436zM141.22 268.624c-.31.01-.628.023-.94.063-.827.104-1.652.284-2.53.562-3.51 1.11-7.4 4.066-10.125 7.938-2.724 3.87-4.16 8.487-4 12.125.16 3.637 1.257 6.338 5.25 9.125l76.594 53.468c3.283 2.293 5.727 2.35 9.124 1.156 3.396-1.192 7.323-4.26 10.125-8.218 2.8-3.96 4.352-8.66 4.31-12.188-.04-3.53-.89-5.787-4.374-8.22L148.03 270.97c-2.546-1.78-4.657-2.42-6.81-2.345zM84.28 312.78c-24.354.41-45.504 9.52-57.655 27.25-16.95 24.737-11.868 59.753 9.625 90.283-1.838 4.72-2.875 9.84-2.875 15.187 0 23.243 19.07 42.313 42.313 42.313 8.635 0 16.692-2.625 23.406-7.125 43.208 18.488 88.07 12.714 108.28-16.782 18.695-27.28 10.884-66.912-16.374-99.312l-63.094-44.03c-14.016-5.107-28.07-7.7-41.25-7.783-.792-.004-1.59-.012-2.375 0zm-8.593 109.126c13.143 0 23.594 10.45 23.594 23.594 0 13.143-10.45 23.625-23.593 23.625-13.142 0-23.624-10.482-23.624-23.625s10.482-23.594 23.624-23.594z"
},
"published": true
},
{
"_id": "BgQSmFqSLWQQ5T6u8",
"name": "Static and Activated Properties",
"parentId": "E2DFwsCoiKy2Rc9Mz",
"root": {
"id": "DDDDDDDDDDDDDDDDD",
"collection": "docs"
},
"left": 54,
"right": 54,
"urlName": "static-and-activated-properties",
"href": "/docs/concepts/static-and-activated-properties",
"description": "Most properties on DiceCloud fall into one of two categories: static or activated. Static properties are those which stay active on the sheet and have a continuous effect, whereas activated properties only affect the sheet when they're a child of an activated Action, Spell, or Trigger.\n\n---\n\n## Action Properties\nAction properties are a special type of static property that, given some type of input, can trigger activated properties. They form the core of DiceCloud's action system, and activated properties have no effect on the sheet without being triggered by an action property.\n\n**Types of Action Properties**\n- [Actions](/docs/property/action) - activated by clicking the respective button on the Actions tab\n- [Spells](/docs/property/spell) - activated by casting the spell from the Spells tab\n- [Triggers](/docs/property/trigger) - activated automatically upon customizable conditions\n\n---\n\n## Static Properties\nStatic properties make up the bulk of a DiceCloud sheet. They form all of the content of a sheet which is \"always accessible\" or \"always active\", as well as anything that changes without an Action, Spell, or Trigger being activated.\n\n**Types of Static Properties**\n- [Attributes](/docs/property/attribute)\n- [Classes](/docs/property/class)\n- [Class levels](/docs/property/class-level)\n- [Constants](/docs/property/constant)\n- [Containers](/docs/property/container)\n- [Damage multipliers](/docs/property/damage-multiplier)\n- [Effects](/docs/property/effect)\n- [Features](/docs/property/feature)\n- [Folders](/docs/property/folder)\n- [Items](/docs/property/item)\n- [Notes](/docs/property/note)\n- [Point buys](/docs/property/point-buy)\n- [Proficiencies](/docs/property/proficiency)\n- [Skills](/docs/property/skill)\n- [Slots](/docs/property/slot)\n- [Spell lists](/docs/property/spell-list)\n- [Toggles](/docs/property/toggle)\n\n---\n\n## Activated Properties\nActivated properties are used by DiceCloud's action system to implement behavior for Actions, Spells, and Triggers. They only affect your sheet when their parent action is activated.\n\n**Types of Activated Properties**\n- [Attribute damage](/docs/property/attribute-damage)\n- [Branches](/docs/property/branch)\n- [Damage](/docs/property/damage)\n- [Remove buffs](/docs/property/remove-buff)\n- [Rolls](/docs/property/roll)\n- [Saving throws](/docs/property/saving-throw)\n\n---\n\n## Buffs\nIn many cases, it's desirable for an action to temporarily cause some static behavior. This is where the [Buff](/docs/property/buff) property comes in - it bridges the gap between activated and static properties. When activated, a Buff will create a copy of itself outside of its parent action, and any of its static children will become active. For example, an action that grants 10 temporary hit points would most likely use a Buff containing an Effect.\n\nOnce activated, a Buff will remain active until manually removed or targeted by a Remove Buff property.\n\n---\n\n## Activated Behavior of Static Properties\nAs a general rule, properties are either static or activated, and do nothing in the other context. However, there are some properties that, though normally static, do have special behavior when activated.\n\n- Nested Actions and Spells will activate as if manually clicked.\n- Notes will add their title, summary, and description to the action's log output.\n- Toggles will behave like Branches set to \"If condition is true\" mode. <span style=\"opacity:0.5\">[Deprecated]</span>",
"published": true
},
{
"_id": "YwZJywH95Q953BK7j",
"name": "References",
"parentId": "ioei4uvDdGTAFqZrB",
"root": {
"id": "DDDDDDDDDDDDDDDDD",
"collection": "docs"
},
"left": 55,
"right": 55,
"urlName": "reference",
"href": "/docs/property/reference",
"description": "References are a special property type that only exists in libraries, and serve as a \"shortcut\" to make a copy of another library property when added to a sheet. By using references, you can avoid duplicating created library properties that need to be commonly reused, and thus also avoid having to edit them in multiple places to make changes.\n\nWhen a reference is added to a sheet, whether via slot or the (+) button, it will be replaced by a copy of the property it links to. Any children of the reference will become children of the copied property as well, which allows for a level of abstraction by creating multiple references with different children.\n\nReferences cannot be created on a character sheet and will be automatically replaced when added from a library. ~~The only way a reference can exist on a sheet is if its linked property no longer exists; in this case, the reference property will continue to exist and serve as an error message.~~ (This behavior is currently bugged; broken references will not be added to the sheet and their child properties will be added to the referenced property's intended parent's children instead.)\n\n---\n\n### Linked Property\nThe property to be copied by the reference when inserted.",
"published": true
}
]