Skip to main content
Glama
Txpple

fvtt-mcp-molten5e

by Txpple

update-actor

Edit an existing D&D 5e actor's stat-block fields—abilities, HP, AC, skills, defenses, spellcasting, and more—by supplying only the groups you need to change.

Instructions

[D&D 5e only] Edit an EXISTING actor's own stat-block fields. Supply only the groups you want to change: • identity + prototype token — name, tokenName (prototype nameplate ≠ actor name), img, disposition (friend/foe), tokenAutoRotate (face movement / lockRotation), tokenRing (dynamic ring), tokenScale (art size), tokenRotation (facing), tokenDisplayName / tokenDisplayBars (nameplate / HP-bar visibility) — the PROTOTYPE-token editor. (elevation / hidden / x / y are placement-only: edit those on a dropped token with update-token) • details — size, cr*, creatureType*, creatureSubtype*, swarmSize*, alignment, biography, source • abilities — abilities.{str..cha}, savingThrows (replace), skills (merge; proficiency none/proficient/expert) • weaponMasteries [PC] — {mode: replace|add|remove, values: ["greatsword", ...]} — 2024 Weapon Mastery weapon KINDS (base weapon ids, not mastery names) • vitals — hp, ac, initiative • movement, senses • defenses — damageImmunities / damageResistances / damageVulnerabilities / conditionImmunities / languages (each {mode: replace|add|remove, values, custom?}), telepathy • resources* — legendaryActions, legendaryResistances, lair • spellcasting* — {level, ability}: caster level (the sheet's "Spellcasting Level", which DERIVES the slot pools) + casting ability (which drives save DC / attack bonus) • 2024* — habitat, treasure • currency — coins {mode: set|add, pp, gp, ep, sp, cp} (carried money)

Fields marked * are NPC-only (skipped with a warning on player characters). This authors the stat block; it does NOT edit embedded items (use update-actor-item / add-feature / manage-activity) or run combat. Use list-actors or get-actor to find the actorIdentifier.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
acNoArmor class (dnd5e 6.0 model): override = fixed AC; natural = natural armor; calcs / formulas = what the sheet may calculate from.
crNo[NPC] Challenge rating (0.125 / 0.25 / 0.5 allowed).
hpNoHit points (value / max / temp / tempmax / formula).
imgNoPortrait image path or URL.
lairNo[NPC] Lair actions — sets the lair initiative count (marks the creature as having a lair).
nameNoRename the actor.
sizeNoCreature size (long name or short code).
sensesNoSenses ranges (feet) plus special-sense free text.
skillsNoSet skill proficiencies — merge: only the listed skills change.
sourceNo[NPC] Source metadata (book / page / rules edition) — system.source.
habitatNo[NPC, 2024] Habitats (replace the whole list), e.g. [{type:"forest"},{type:"planar",subtype:"nine hells"}].
currencyNoCarried coins (pp/gp/ep/sp/cp). Only the coins you list change.
movementNoMovement speeds (in the given units, default feet). Stored under movement.speeds.*.
treasureNo
abilitiesNoAbility scores to set — only the abilities you list change.
alignmentNoAlignment free text (e.g. "Lawful Evil").
biographyNoBiography / description (HTML).
languagesNo
swarmSizeNo[NPC] Swarm member size, or "" if the creature is not a swarm.
telepathyNoTelepathy range (0 = none).
tokenNameNoPrototype-token nameplate, decoupled from the actor name — e.g. actor "Morgash the Gravemaker" whose dropped tokens read just "Morgash". A plain `name` rename keeps the two in lockstep; pass tokenName (alone or alongside name) to make them differ. Placed tokens keep their own name — retitle those with update-token.
tokenRingNoPrototype-token dynamic ring: false = plain token (the house default; new creations already get it), true = re-enable the ring (its colors/subject config is preserved).
initiativeNoInitiative bonus and/or ability override.
tokenScaleNoPrototype-token art scale — the "Scale (Ratio)" slider on the token Appearance tab (sets texture.scaleX and scaleY together). 1 = normal, 1.5 = 50% larger, 2 = double. Scales only the art within the token's grid footprint; it does NOT change the token's size (grid spaces).
dispositionNoPrototype-token disposition (friend vs foe). Set 'friendly' to mark an NPC an ally (e.g. a freed captive), 'hostile' for an enemy, 'neutral' for a bystander.
creatureTypeNo[NPC] Creature type: aberration, beast, celestial, construct, dragon, elemental, fey, fiend, giant, humanoid, monstrosity, ooze, plant, undead.
savingThrowsNoReplace the proficient saving throws: the listed abilities become proficient, all others non-proficient.
spellcastingNo[NPC] Spellcasting configuration — caster level and/or casting ability. PCs derive both from their class advancement, so this group is skipped with a warning on a player character.
tokenRotationNoPrototype-token facing in degrees (0–359) — the default angle a dropped token faces. Same behavior as update-token for placed tokens: a lock-rotation prototype (tokenAutoRotate false) HIDES the angle, so setting a rotation without also setting tokenAutoRotate AUTO-UNLOCKS rotation (and warns) so the facing shows. (elevation / hidden / x / y are PLACEMENT-only — a prototype has no such fields; set those on a dropped token with update-token.)
actorIdentifierYesName or id of the actor to edit (partial name match supported). Also accepts a placed TOKEN id (from list-tokens): the edit then lands on that token INSTANCE's own actor (its delta), not the base actor — the way to edit ONE placed copy of an unlinked NPC, since base-actor edits never reach tokens already on a scene.
creatureSubtypeNo[NPC] Creature subtype free text (e.g. "Devil").
tokenAutoRotateNoPrototype-token auto-rotation: true = the token turns to face its movement (lockRotation off — the house default; new creations already get it), false = fixed facing.
weaponMasteriesNo[PC] 2024 Weapon Mastery selections — the kinds of weapons whose mastery property the character can use (system.traits.weaponProf.mastery). Swappable on a Long Rest per the class feature; the count allowed is the class's business (fighter 3, paladin/ranger 2 at low levels) — the tool does not enforce it.
damageImmunitiesNo
legendaryActionsNo[NPC] Legendary action points per round (resources.legact.max).
tokenDisplayBarsNoPrototype-token RESOURCE-BAR (HP) visibility — the default for dropped tokens, same modes as tokenDisplayName. Set "none" to hide the health bar on background / window-dressing NPCs.
tokenDisplayNameNoPrototype-token NAMEPLATE visibility — the default for tokens dragged from this actor: none (never) · control (only when selected) · owner-hover · hover (anyone hovering) · owner (always, to owners) · always (always, to everyone). Same modes as update-token for placed tokens; set "none" for window-dressing NPCs that should show no name.
damageResistancesNo
conditionImmunitiesNo
legendaryResistancesNo[NPC] Legendary resistance uses per day (resources.legres.max).
damageVulnerabilitiesNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed16 schema fields changedv2.1.3
    • changedInput schema / properties / ac / description
      Previous value: -"Armor class."New value: +"Armor class (dnd5e 6.0 model): override = fixed AC; natural = natural armor; calcs / formulas = what the sheet may calculate from."
    • changedInput schema / properties / ac / properties / calc / description
      Previous value: -"AC calculation: flat, natural, default, mage, draconic, unarmoredMonk, ..."New value: +"DEPRECATED dnd5e 5.x alias, still translated: \"flat\" (+flat → override), \"natural\" (+flat), \"default\" (reset calcs), \"custom\" (+formula), or a calcs key. Prefer the fields above."
    • addedInput schema / properties / ac / properties / calcs
      Added value: +{
      +  "description": "Base calculations the actor QUALIFIES for — the sheet uses the best: unarmored (10 + DEX), armored (worn armor), mage, draconic, unarmoredMonk, unarmoredBarb, unarmoredBard, natural. Replaces the list; default is [\"unarmored\",\"armored\"].",
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • changedInput schema / properties / ac / properties / flat / description
      Previous value: -"Flat AC value (used by calc \"flat\" / \"natural\")."New value: +"DEPRECATED 5.x alias — see calc."
    • addedInput schema / properties / ac / properties / formula / description
      Added value: +"DEPRECATED 5.x alias — see calc."
    • addedInput schema / properties / ac / properties / formulas
      Added value: +{
      +  "description": "Custom AC formulas, e.g. [{formula:\"13 + @abilities.dex.mod\", label:\"Mage Armor\"}]; armored/shielded = only qualifies when (not) wearing armor / a shield. Replaces the list.",
      +  "items": {
      +    "properties": {
      +      "armored": {
      +        "type": [
      +          "boolean",
      +          "null"
      +        ]
      +      },
      +      "formula": {
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "label": {
      +        "type": "string"
      +      },
      +      "shielded": {
      +        "type": [
      +          "boolean",
      +          "null"
      +        ]
      +      }
      +    },
      +    "required": [
      +      "formula"
      +    ],
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
    • addedInput schema / properties / ac / properties / natural
      Added value: +{
      +  "description": "Natural armor: AC = this value (+ shield, bonuses, cover). Sets calcs to [\"natural\"] and clears any override.",
      +  "minimum": 0,
      +  "type": "integer"
      +}
    • addedInput schema / properties / ac / properties / override
      Added value: +{
      +  "anyOf": [
      +    {
      +      "minimum": 0,
      +      "type": "integer"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "description": "FIXED AC that replaces every calculation (a stat block \"AC 17\"; armor/shield no longer matter). null clears it so the calculations apply again."
      +}
    • changedInput schema / properties / movement / description
      Previous value: -"Movement speeds (in the given units, default feet)."New value: +"Movement speeds (in the given units, default feet). Stored under movement.speeds.*."
    • addedInput schema / properties / movement / properties / jump
      Added value: +{
      +  "minimum": 0,
      +  "type": "number"
      +}
    • changedInput schema / properties / source / description
      Previous value: -"Source metadata (book / page / rules edition)."New value: +"[NPC] Source metadata (book / page / rules edition) — system.source."
    • addedInput schema / properties / spellcasting
      Added value: +{
      +  "description": "[NPC] Spellcasting configuration — caster level and/or casting ability. PCs derive both from their class advancement, so this group is skipped with a warning on a player character.",
      +  "properties": {
      +    "ability": {
      +      "anyOf": [
      +        {
      +          "enum": [
      +            "str",
      +            "dex",
      +            "con",
      +            "int",
      +            "wis",
      +            "cha"
      +          ],
      +          "type": "string"
      +        },
      +        {
      +          "const": "",
      +          "type": "string"
      +        }
      +      ],
      +      "description": "Casting ability (system.attributes.spellcasting) — drives spell save DC (8 + prof + mod) and spell attack bonus. \"\" clears it. A caster left unset computes off a +0 modifier, so an INT 16 mage reads DC 10 instead of DC 13 until this is set."
      +    },
      +    "level": {
      +      "description": "Caster level — the NPC sheet's \"Spellcasting Level\" (system.attributes.spell.level). This is what DERIVES the spell-slot pools: leave it 0 and the sheet shows slots as \"4/0\" and a long rest restores them to nothing. 0 = not a slot caster (the 2024-MM default, where monsters use 1/Day free casts instead of slots — see add-free-cast).",
      +      "maximum": 20,
      +      "minimum": 0,
      +      "type": "integer"
      +    }
      +  },
      +  "type": "object"
      +}
    • addedInput schema / properties / tokenDisplayBars
      Added value: +{
      +  "description": "Prototype-token RESOURCE-BAR (HP) visibility — the default for dropped tokens, same modes as tokenDisplayName. Set \"none\" to hide the health bar on background / window-dressing NPCs.",
      +  "enum": [
      +    "none",
      +    "control",
      +    "owner-hover",
      +    "hover",
      +    "owner",
      +    "always"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / tokenDisplayName
      Added value: +{
      +  "description": "Prototype-token NAMEPLATE visibility — the default for tokens dragged from this actor: none (never) · control (only when selected) · owner-hover · hover (anyone hovering) · owner (always, to owners) · always (always, to everyone). Same modes as update-token for placed tokens; set \"none\" for window-dressing NPCs that should show no name.",
      +  "enum": [
      +    "none",
      +    "control",
      +    "owner-hover",
      +    "hover",
      +    "owner",
      +    "always"
      +  ],
      +  "type": "string"
      +}
    • removedInput schema / properties / treasure / properties / custom
      Removed value: -{
      -  "description": "Free-text custom entry stored alongside the set (replaces the existing custom string).",
      -  "type": "string"
      -}
    • addedInput schema / properties / weaponMasteries
      Added value: +{
      +  "description": "[PC] 2024 Weapon Mastery selections — the kinds of weapons whose mastery property the character can use (system.traits.weaponProf.mastery). Swappable on a Long Rest per the class feature; the count allowed is the class's business (fighter 3, paladin/ranger 2 at low levels) — the tool does not enforce it.",
      +  "properties": {
      +    "mode": {
      +      "default": "replace",
      +      "description": "replace (default) overwrites the whole list; add/remove merge with the current list.",
      +      "enum": [
      +        "replace",
      +        "add",
      +        "remove"
      +      ],
      +      "type": "string"
      +    },
      +    "values": {
      +      "default": [],
      +      "description": "Base weapon KINDS (\"greatsword\", \"longbow\", \"handcrossbow\", ...) — NOT mastery names: each weapon carries its own mastery property (vex/topple/graze/...), the actor just unlocks it per kind.",
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    }
      +  },
      +  "type": "object"
      +}
  2. Changed7 schema fields changedv1.3.0
    • changedInput schema / properties / actorIdentifier / description
      Previous value: -"Name or id of the actor to edit (partial name match supported)."New value: +"Name or id of the actor to edit (partial name match supported). Also accepts a placed TOKEN id (from list-tokens): the edit then lands on that token INSTANCE's own actor (its delta), not the base actor — the way to edit ONE placed copy of an unlinked NPC, since base-actor edits never reach tokens already on a scene."
    • addedInput schema / properties / disposition
      Added value: +{
      +  "description": "Prototype-token disposition (friend vs foe). Set 'friendly' to mark an NPC an ally (e.g. a freed captive), 'hostile' for an enemy, 'neutral' for a bystander.",
      +  "enum": [
      +    "hostile",
      +    "neutral",
      +    "friendly",
      +    "secret"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / tokenAutoRotate
      Added value: +{
      +  "description": "Prototype-token auto-rotation: true = the token turns to face its movement (lockRotation off — the house default; new creations already get it), false = fixed facing.",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / tokenName
      Added value: +{
      +  "description": "Prototype-token nameplate, decoupled from the actor name — e.g. actor \"Morgash the Gravemaker\" whose dropped tokens read just \"Morgash\". A plain `name` rename keeps the two in lockstep; pass tokenName (alone or alongside name) to make them differ. Placed tokens keep their own name — retitle those with update-token.",
      +  "minLength": 1,
      +  "type": "string"
      +}
    • addedInput schema / properties / tokenRing
      Added value: +{
      +  "description": "Prototype-token dynamic ring: false = plain token (the house default; new creations already get it), true = re-enable the ring (its colors/subject config is preserved).",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / tokenRotation
      Added value: +{
      +  "description": "Prototype-token facing in degrees (0–359) — the default angle a dropped token faces. Same behavior as update-token for placed tokens: a lock-rotation prototype (tokenAutoRotate false) HIDES the angle, so setting a rotation without also setting tokenAutoRotate AUTO-UNLOCKS rotation (and warns) so the facing shows. (elevation / hidden / x / y are PLACEMENT-only — a prototype has no such fields; set those on a dropped token with update-token.)",
      +  "type": "number"
      +}
    • addedInput schema / properties / tokenScale
      Added value: +{
      +  "description": "Prototype-token art scale — the \"Scale (Ratio)\" slider on the token Appearance tab (sets texture.scaleX and scaleY together). 1 = normal, 1.5 = 50% larger, 2 = double. Scales only the art within the token's grid footprint; it does NOT change the token's size (grid spaces).",
      +  "exclusiveMinimum": 0,
      +  "type": "number"
      +}
  3. First observedv1.2.2

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden. It clearly indicates this is a mutation ('Edit'), explains that NPC-only fields are skipped with a warning on player characters, clarifies that it edits the actor's own stat block and not placed tokens, and documents side effects (e.g., tokenRotation auto-unlocks rotation if not combined with tokenAutoRotate, weaponMasteries count not enforced). These details go well beyond a simple 'update' and inform the agent of consequences.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is long but well-structured with bullet points and clear grouping. It front-loads the purpose and then systematically lists each field group. While it is verbose, the complexity of a 41-parameter tool justifies the length; every sentence adds value, and the structure aids skimming. A small deduction for verbosity that could be trimmed without losing essential information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (41 parameters, nested objects, many overlapping concepts), the description is remarkably complete. It covers which fields are prototype-token vs placement-only, which are NPC-only or PC-only, how to find the target (actorIdentifier), and explicitly names sibling tools for out-of-scope operations. It also explains key derivations (spellcasting level, AC calculations). No output schema exists, but for a mutation this is acceptable; the description fully equips an agent to call it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds substantial meaning beyond the schema: it groups parameters by function (identity+prototype token, details, abilities, etc.), explains merge vs replace semantics, flags NPC-only vs PC-only fields, and clarifies subtle interactions (e.g., tokenName decoupling from name, spellcasting level deriving slot pools, tokenScale scaling only art). Even though schema coverage is high (85%), the description enriches understanding of every group and many individual parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Edit') and resource ('an EXISTING actor's own stat-block fields'), then enumerates the editable groups. It explicitly distinguishes from siblings like update-token (placement-only), update-actor-item / add-feature / manage-activity (embedded items), and notes it does not run combat. This makes the tool's scope unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description tells the agent when to use this tool: to author an actor's stat block, and explicitly points to alternatives for other operations ('use update-token' for placement fields, 'use update-actor-item / add-feature / manage-activity' for embedded items, 'Use list-actors or get-actor to find the actorIdentifier'). It also states what is NOT done, so an agent can route correctly.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Deploy Server

Other Tools