{"ok":true,"site":{"host":"wfsim.app","url":"https://wfsim.app/","type":"live","desc":"A Warframe calculator that simulates the fight instead of estimating it — builder, simulator, optimizer. Every formula cites its source, and the golden tests are calibrated against real in-game runs.","tools":[{"name":"enemies_targets_list","kind":"answer","impl":"imperative","description":"List the custom targets the reader has made, with the id a fight names each one by (simulator.scenario.set with patch {enemy: id}).","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{},"required":[]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/weapons","/support","/download","/operator","/utility/fissures"]},{"name":"enemies_target_new","kind":"act","impl":"imperative","description":"Make a blank custom target — a plain humanoid, every number meant to be replaced — and open it.","annotations":{"readOnlyHint":false},"inputSchema":{"type":"object","properties":{},"required":[]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/weapons","/support","/download","/operator","/utility/fissures"]},{"name":"enemies_target_copy","kind":"act","impl":"imperative","description":"Duplicate the open custom target and open the copy.","annotations":{"readOnlyHint":false},"inputSchema":{"type":"object","properties":{},"required":[]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/weapons","/support","/download","/operator","/utility/fissures"]},{"name":"enemies_target_open","kind":"act","impl":"imperative","description":"Open a custom target for editing, by the id enemies.targets.list gives it or by its name.","annotations":{"readOnlyHint":false},"inputSchema":{"type":"object","properties":{"name":{"type":"string","description":"the target's id, or its name"}},"required":["name"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/weapons","/support","/download","/operator","/utility/fissures"]},{"name":"enemies_target_set","kind":"act","impl":"imperative","description":"Write fields of the open custom target: faction, scaling_faction, can_be_eximus, stats {base_level, health, shield, armor, overguard, affinity}, damage_modifiers (a column of multipliers by damage type, \"faction\" to start one from the faction's, or null for the faction's own), status_immunities (the types whose procs cannot land), body_parts [{name, multiplier, is_head, crit_bonus}].","annotations":{"readOnlyHint":false},"inputSchema":{"type":"object","properties":{"faction":{"type":"string","description":"faction id or unknown"},"scaling_faction":{"type":"string","description":"how its level scales"},"can_be_eximus":{"type":"boolean","description":"an Eximus variant exists"},"stats":{"type":"object","description":"the numbers to change"},"damage_modifiers":{"description":"an object of multipliers by damage type, \"faction\", or null"},"status_immunities":{"type":"array","description":"damage type ids","items":{"type":"object"}},"body_parts":{"type":"array","description":"every part, replacing the list; at least one","items":{"type":"object"}}},"required":[]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/weapons","/support","/download","/operator","/utility/fissures"]},{"name":"builder_forma_read","kind":"act","impl":"imperative","description":"Read the Forma planner: its rules (catalyst, reach max rank, grant slot first, Omni and Umbra Forma use, a Forma limit), which saved builds are planned together with this one, and the board-reach analysis if it has been run.","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{},"required":[]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/weapons","/support","/download","/operator","/utility/fissures"]},{"name":"builder_forma_rules","kind":"act","impl":"imperative","description":"Change the Forma planner's rules — this browser's, for every build — which the Forma plan and the reach both obey. forma_limit is a whole number or null.","annotations":{"readOnlyHint":false},"inputSchema":{"type":"object","properties":{"catalyst":{"type":"boolean","description":"an Orokin Catalyst is installed"},"reach_max_rank":{"type":"boolean","description":"every mod reaches its max rank"},"grant_slot_first":{"type":"boolean","description":"fill the slot that grants capacity first"},"fixed_order":{"type":"boolean","description":"no mod is moved: each slot's polarity serves what every build keeps there"},"omni_forma":{"type":"string","description":"when Omni Forma may be used"},"umbra_forma":{"type":"string","description":"when Umbra Forma may be used"},"forma_limit":{"type":["number","null"],"description":"most Forma, or null for none"}},"required":[]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/weapons","/support","/download","/operator","/utility/fissures"]},{"name":"builder_forma_partner","kind":"act","impl":"imperative","description":"Plan another saved build of this weapon together with the open one (on=true) or stop — the Forma plan then fits both on one set of polarities.","annotations":{"readOnlyHint":false},"inputSchema":{"type":"object","properties":{"build":{"type":"string","description":"saved build id"},"on":{"type":"boolean","description":"planned together"}},"required":["build","on"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/weapons","/support","/download","/operator","/utility/fissures"]},{"name":"builder_reach_run","kind":"act","impl":"imperative","description":"Work out what one polarity layout reaches across this weapon's board rulers, and what each extra Forma buys; optionally set the scope first. Returns the curve and, at the first point that meets the line, each ruler's best build that fits.","annotations":{"readOnlyHint":false},"inputSchema":{"type":"object","properties":{"rulers":{"type":"array","description":"ruler ids to cover; omit for every ruler with rows","items":{"type":"object"}},"riven":{"type":"boolean","description":"count riven builds"},"planned_builds_must_fit":{"type":"boolean","description":"the builds planned together must fit the layout too"},"line":{"type":"number","description":"the share of each ruler's leader to reach, e.g. 0.8"}},"required":[]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/weapons","/support","/download","/operator","/utility/fissures"]},{"name":"builder_reach_mark","kind":"act","impl":"imperative","description":"Mark a point of the worked-out reach curve by its index, to read and apply that layout.","annotations":{"readOnlyHint":false},"inputSchema":{"type":"object","properties":{"point":{"type":"number","description":"point index"}},"required":["point"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/weapons","/support","/download","/operator","/utility/fissures"]},{"name":"builder_reach_apply","kind":"act","impl":"imperative","description":"Put the open build's slots on the marked point's polarities, as the planner's apply button does.","annotations":{"readOnlyHint":false},"inputSchema":{"type":"object","properties":{},"required":[]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/weapons","/support","/download","/operator","/utility/fissures"]},{"name":"builder_reach_save","kind":"act","impl":"imperative","description":"Save a ruler's best-fitting build at the marked point as a build of its own, on that point's polarities.","annotations":{"readOnlyHint":false},"inputSchema":{"type":"object","properties":{"ruler_index":{"type":"number","description":"the ruler's index in the reach read"}},"required":["ruler_index"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/weapons","/support","/download","/operator","/utility/fissures"]},{"name":"simulator_arena_read","kind":"answer","impl":"imperative","description":"Read the arena: where the player stands, the target (e1, the body the fight is scored against), every other body in the formation, where the player aims, and the gap to the target in metres. Coordinates are metres on the plane.","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{},"required":[]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/weapons","/support","/download","/operator","/utility/fissures"]},{"name":"simulator_arena_distance","kind":"act","impl":"imperative","description":"Put the target this many metres from the player (the gap between them; 0 is contact, where both boards are scored).","annotations":{"readOnlyHint":false},"inputSchema":{"type":"object","properties":{"meters":{"type":"number","description":"gap in metres"}},"required":["meters"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/weapons","/support","/download","/operator","/utility/fissures"]},{"name":"simulator_arena_add","kind":"act","impl":"imperative","description":"Add bodies around the target, each of the fight's current enemy, in the first free places — the +1/+8 quick sets.","annotations":{"readOnlyHint":false},"inputSchema":{"type":"object","properties":{"count":{"type":"number","description":"bodies to add"}},"required":["count"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/weapons","/support","/download","/operator","/utility/fissures"]},{"name":"simulator_arena_place","kind":"act","impl":"imperative","description":"Place one body of the fight's current enemy at a point (metres). Refused where it would overlap another body or the player, or when the floor is full.","annotations":{"readOnlyHint":false},"inputSchema":{"type":"object","properties":{"x":{"type":"number","description":"metres"},"y":{"type":"number","description":"metres"}},"required":["x","y"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/weapons","/support","/download","/operator","/utility/fissures"]},{"name":"simulator_arena_remove","kind":"act","impl":"imperative","description":"Remove one body from the formation by its id. The target (e1) cannot be removed.","annotations":{"readOnlyHint":false},"inputSchema":{"type":"object","properties":{"body":{"type":"string","description":"body id"}},"required":["body"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/weapons","/support","/download","/operator","/utility/fissures"]},{"name":"simulator_arena_reset","kind":"act","impl":"imperative","description":"Back to one body, aimed at the target — the fight the boards are measured under.","annotations":{"readOnlyHint":false},"inputSchema":{"type":"object","properties":{},"required":[]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/weapons","/support","/download","/operator","/utility/fissures"]},{"name":"simulator_arena_aim","kind":"act","impl":"imperative","description":"Aim at a point (metres) — aiming is a direction, and the shot hits the first body it crosses — or omit x and y to aim at the target.","annotations":{"readOnlyHint":false},"inputSchema":{"type":"object","properties":{"x":{"type":"number","description":"metres"},"y":{"type":"number","description":"metres"}},"required":[]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/weapons","/support","/download","/operator","/utility/fissures"]},{"name":"simulator_auras_list","kind":"act","impl":"imperative","description":"List the squad auras, which of them pay this weapon anything, which stack across the squad, and how many run each in this fight.","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{},"required":[]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/weapons","/support","/download","/operator","/utility/fissures"]},{"name":"simulator_aura_set","kind":"act","impl":"imperative","description":"Set how many of the squad run an aura (1 to 4 for one that stacks, else 1); 0 removes it. An aura is the fight's, never the build's.","annotations":{"readOnlyHint":false},"inputSchema":{"type":"object","properties":{"aura":{"type":"string","description":"aura id"},"count":{"type":"number","description":"players running it; 0 removes"}},"required":["aura","count"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/weapons","/support","/download","/operator","/utility/fissures"]},{"name":"simulator_abilities_list","kind":"answer","impl":"imperative","description":"List the Warframe abilities that can run in the fight as buffs, with each one's value at the fight's ability strength, its element choices, whether it is on, and whether a stronger one of its kind supersedes it.","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{},"required":[]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/weapons","/support","/download","/operator","/utility/fissures"]},{"name":"simulator_ability_set","kind":"act","impl":"imperative","description":"Run a Warframe ability as a buff for the whole fight (on=true) or stop it; where it offers one, choose its element.","annotations":{"readOnlyHint":false},"inputSchema":{"type":"object","properties":{"ability":{"type":"string","description":"ability id"},"on":{"type":"boolean","description":"running or not"},"element":{"type":"string","description":"one of the ability's elements"}},"required":["ability","on"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/weapons","/support","/download","/operator","/utility/fissures"]},{"name":"simulator_strength_set","kind":"act","impl":"imperative","description":"Override the Warframe's Ability Strength for the fight, in percent as the arsenal shows it; every ability buff scales with it. Without an override the fight reads the linked Warframe build's.","annotations":{"readOnlyHint":false},"inputSchema":{"type":"object","properties":{"percent":{"type":"number","description":"e.g. 250"}},"required":["percent"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/weapons","/support","/download","/operator","/utility/fissures"]},{"name":"simulator_nodes_list","kind":"answer","impl":"imperative","description":"List the linked Operator's conditional Focus nodes — each one's id, what it does, its state (off, on = assumed up by the Operator build, sim = the fight's action list performs it) and whether the fight can simulate it.","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{},"required":[]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/weapons","/support","/download","/operator","/utility/fissures"]},{"name":"simulator_node_simulate","kind":"act","impl":"imperative","description":"Have the fight's action list perform an Operator node's action (simulated=true), or stop (false) — the node is then earned in the fight rather than assumed. Only a node simulator.nodes.list marks simulatable. Whether a node is assumed up is the reader's Operator build and not on the door.","annotations":{"readOnlyHint":false},"inputSchema":{"type":"object","properties":{"node":{"type":"string","description":"the node's id"},"simulated":{"type":"boolean","description":"true = the fight performs it"}},"required":["node","simulated"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/weapons","/support","/download","/operator","/utility/fissures"]},{"name":"simulator_triggers_list","kind":"act","impl":"imperative","description":"List the buff triggers the fight can switch off (a buff whose trigger is off never fires, though the run still does the action), by group, with which are off.","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{},"required":[]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/weapons","/support","/download","/operator","/utility/fissures"]},{"name":"simulator_trigger_set","kind":"act","impl":"imperative","description":"Switch a buff trigger off (off=true) or back on, or a whole group of them by the group's id.","annotations":{"readOnlyHint":false},"inputSchema":{"type":"object","properties":{"id":{"type":"string","description":"trigger id or group id"},"off":{"type":"boolean","description":"true = buffs from it do not fire"}},"required":["id","off"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/weapons","/support","/download","/operator","/utility/fissures"]},{"name":"simulator_extra_set","kind":"act","impl":"imperative","description":"Set one of the fight's own stat bonuses — what the weapon is handed by something outside its build (a squad buff, another weapon's arcane). A percentage stat takes `percent` (into the same bucket a mod of that stat feeds); final_crit_damage (a multiplier, e.g. 1.6) and the two flat base damages (a number) take `value`. 0 or null clears it.","annotations":{"readOnlyHint":false},"inputSchema":{"type":"object","properties":{"stat":{"type":"string","description":"which stat"},"percent":{"type":["number","null"],"description":"for a percentage stat: e.g. 30 for +30%"},"value":{"type":["number","null"],"description":"for final_crit_damage (a multiplier, e.g. 1.6) or a flat base damage (a number)"}},"required":["stat"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/weapons","/support","/download","/operator","/utility/fissures"]},{"name":"simulator_rules_list","kind":"answer","impl":"imperative","description":"List the per-class rules a fight may make — what the simulator simplifies for a whole weapon class — with each one's default and this fight's value.","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{},"required":[]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/weapons","/support","/download","/operator","/utility/fissures"]},{"name":"simulator_rule_set","kind":"act","impl":"imperative","description":"Set a per-class rule for this fight, or null to fall back to the default. Only the pairs simulator.rules.list gives exist.","annotations":{"readOnlyHint":false},"inputSchema":{"type":"object","properties":{"class":{"type":"string","description":"weapon class"},"rule":{"type":"string","description":"the axis"},"value":{"type":["boolean","number","null"],"description":"true/false or a number; null clears"}},"required":["class","rule","value"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/weapons","/support","/download","/operator","/utility/fissures"]},{"name":"optimizer_plan_read","kind":"answer","impl":"imperative","description":"Read the build search: its starts (each a build, with the positions fixed in its answer), its limits (what it may not use per axis — `card@rank` is one rank of a card — and how full it fills) how many builds it answers with and how many fights each candidate gets. Everything the limits leave is a candidate.","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{},"required":[]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/weapons","/support","/download","/operator","/utility/fissures"]},{"name":"optimizer_plan_limit","kind":"act","impl":"imperative","description":"Exclude an option from the search, or take it back: a mod as the builder lists it (`card@rank` for one rank of an every-rank card), an arcane, an evolution, a mode or a valence element. Nothing is excluded by default; the last mode or element cannot be.","annotations":{"readOnlyHint":false},"inputSchema":{"type":"object","properties":{"axis":{"type":"string","description":"which axis"},"id":{"type":"string","description":"the option's id"},"excluded":{"type":"boolean","description":"true excludes it, false takes it back"}},"required":["axis","id","excluded"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/weapons","/support","/download","/operator","/utility/fissures"]},{"name":"optimizer_plan_fill","kind":"act","impl":"imperative","description":"Set how full the search fills: at most `mods` cards (0-8), whether the exilus is filled, and whether arcane seat `seat` (0-based) is filled.","annotations":{"readOnlyHint":false},"inputSchema":{"type":"object","properties":{"mods":{"type":"number","description":"the most cards a build holds"},"exilus":{"type":"boolean","description":"fill the exilus"},"seat":{"type":"number","description":"an arcane seat, with `filled`"},"filled":{"type":"boolean","description":"fill that arcane seat"}},"required":[]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/weapons","/support","/download","/operator","/utility/fissures"]},{"name":"optimizer_plan_set","kind":"act","impl":"imperative","description":"Set how many builds the search answers with (the best N it scored, 1-100) and how many fights each candidate gets while the search compares them (1 or 10).","annotations":{"readOnlyHint":false},"inputSchema":{"type":"object","properties":{"finalists":{"type":"number","description":"how many builds the search answers with"},"candidate_runs":{"type":"number","description":"1 or 10 fights a candidate"}},"required":[]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/weapons","/support","/download","/operator","/utility/fissures"]},{"name":"rivens_cards_list","kind":"act","impl":"imperative","description":"List the rivens saved for this weapon's family, with the id builder.mod.set seats each one by.","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{},"required":[]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/weapons","/support","/download","/operator","/utility/fissures"]},{"name":"rivens_stats_list","kind":"answer","impl":"imperative","description":"List the stats a riven for this weapon can roll, which can be the malus, which are modelled, and which are spliced (at most one a card).","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{},"required":[]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/weapons","/support","/download","/operator","/utility/fissures"]},{"name":"rivens_card_new","kind":"act","impl":"imperative","description":"Make a blank riven for this weapon's family and open it for editing.","annotations":{"readOnlyHint":false},"inputSchema":{"type":"object","properties":{},"required":[]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/weapons","/support","/download","/operator","/utility/fissures"]},{"name":"rivens_card_copy","kind":"act","impl":"imperative","description":"Duplicate the open riven and open the copy.","annotations":{"readOnlyHint":false},"inputSchema":{"type":"object","properties":{},"required":[]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/weapons","/support","/download","/operator","/utility/fissures"]},{"name":"rivens_card_open","kind":"act","impl":"imperative","description":"Open a saved riven for editing, by the id rivens.cards.list gives.","annotations":{"readOnlyHint":false},"inputSchema":{"type":"object","properties":{"riven":{"type":"string","description":"riven id"}},"required":["riven"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/weapons","/support","/download","/operator","/utility/fissures"]},{"name":"rivens_card_set","kind":"act","impl":"imperative","description":"Write the open riven whole: its shape, each bonus and the malus by stat id with either the value printed on the card or a roll (0.9 to 1.1), its rank and polarity. Returns what the engine made of it — printed values, generated name, anything illegal.","annotations":{"readOnlyHint":false},"inputSchema":{"type":"object","properties":{"shape":{"type":"string","description":"e.g. \"3+1\" (three bonuses and a malus) or \"2+0\""},"bonuses":{"type":"array","description":"[{stat, value} or {stat, roll}], one per bonus","items":{"type":"object"}},"malus":{"type":["object","null"],"description":"{stat, value} or {stat, roll}; omit or null when the shape has none"},"rank":{"type":"number","description":"defaults to the maximum"},"polarity":{"type":"string","description":"madurai, vazarin or naramon"}},"required":["shape","bonuses"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/weapons","/support","/download","/operator","/utility/fissures"]},{"name":"builder_wielders_list","kind":"act","impl":"imperative","description":"List who can hold this weapon: the Warframes allowed, each with the builds saved for it, and whether the unmodded Prototype (the board's floor) is allowed.","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{},"required":[]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/weapons","/support","/download","/operator","/utility/fissures"]},{"name":"builder_wielder_set","kind":"act","impl":"imperative","description":"Choose who holds the weapon: a Warframe unmodded, a Warframe with one of its saved builds, or frame=null for the Prototype. The wielder's abilities and stats change the weapon's numbers.","annotations":{"readOnlyHint":false},"inputSchema":{"type":"object","properties":{"frame":{"type":["string","null"],"description":"Warframe id, or null for the Prototype"},"build":{"type":"string","description":"one of that frame's saved build ids"}},"required":["frame"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/weapons","/support","/download","/operator","/utility/fissures"]},{"name":"builder_parts_list","kind":"act","impl":"imperative","description":"List a Kitgun's grips and loaders, with the pair installed now; read their numbers with builder.stats.read after installing.","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{},"required":[]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/weapons","/support","/download","/operator","/utility/fissures"]},{"name":"builder_part_set","kind":"act","impl":"imperative","description":"Swap a Kitgun's grip or loader. The chamber is the weapon itself; the other slot's version of the same chamber is another weapon id (builder.weapon.set).","annotations":{"readOnlyHint":false},"inputSchema":{"type":"object","properties":{"part":{"type":"string","description":"grip or loader"},"id":{"type":"string","description":"the part's id"}},"required":["part","id"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/weapons","/support","/download","/operator","/utility/fissures"]},{"name":"optimizer_search_start","kind":"act","impl":"imperative","description":"Start a build search with the optimizer's current scope against the current fight. Returns at once; a search takes minutes — read its progress with optimizer.search.read.","annotations":{"readOnlyHint":false},"inputSchema":{"type":"object","properties":{},"required":[]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/weapons","/support","/download","/operator","/utility/fissures"]},{"name":"optimizer_search_read","kind":"answer","impl":"imperative","description":"Read the build search: while it runs, how far along it is; once done, the ranked builds — each with the starts that settled on it (`from_starts`), or the answer it is nearest to and what differs (`near`).","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{"limit":{"type":"number","description":"ranked builds to return, default 5"}},"required":[]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/weapons","/support","/download","/operator","/utility/fissures"]},{"name":"optimizer_search_stop","kind":"act","impl":"imperative","description":"Stop the running build search. What it has ranked so far is kept.","annotations":{"readOnlyHint":false},"inputSchema":{"type":"object","properties":{},"required":[]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/weapons","/support","/download","/operator","/utility/fissures"]},{"name":"optimizer_result_save","kind":"act","impl":"imperative","description":"Save a ranked build from the last search as a new build preset (named opt N). Open it with shell.preset.open to measure it in the simulator.","annotations":{"readOnlyHint":false},"inputSchema":{"type":"object","properties":{"rank":{"type":"number","description":"the row's rank"}},"required":["rank"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/weapons","/support","/download","/operator","/utility/fissures"]},{"name":"shell_presets_list","kind":"act","impl":"imperative","description":"List the saved builds or fight scenarios for this weapon, which one is open, and which are read-only (benchmarks).","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{"bar":{"type":"string","description":"which bar"}},"required":["bar"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/weapons","/support","/download","/operator","/utility/fissures"]},{"name":"shell_preset_open","kind":"act","impl":"imperative","description":"Open a saved build or scenario by the id presets.list gives.","annotations":{"readOnlyHint":false},"inputSchema":{"type":"object","properties":{"bar":{"type":"string","description":"which bar"},"preset":{"type":"string","description":"preset id"}},"required":["bar","preset"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/weapons","/support","/download","/operator","/utility/fissures"]},{"name":"shell_preset_new","kind":"act","impl":"imperative","description":"Start a new blank build or scenario and open it; the one open before is kept as it was.","annotations":{"readOnlyHint":false},"inputSchema":{"type":"object","properties":{"bar":{"type":"string","description":"which bar"}},"required":["bar"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/weapons","/support","/download","/operator","/utility/fissures"]},{"name":"shell_preset_read","kind":"act","impl":"imperative","description":"Read what a saved build holds — its mods, arcanes, evolutions and mode — by the id presets.list gives; the open one is read as it is on screen.","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{"bar":{"type":"string","description":"which bar"},"preset":{"type":"string","description":"preset id"}},"required":["bar","preset"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/weapons","/support","/download","/operator","/utility/fissures"]},{"name":"shell_preset_undo","kind":"act","impl":"imperative","description":"Undo the last change to a bar's documents — the build, the scenario, the search or the riven — or redo it with redo=true.","annotations":{"readOnlyHint":false},"inputSchema":{"type":"object","properties":{"bar":{"type":"string","description":"which history"},"redo":{"type":"boolean","description":"redo instead of undo"}},"required":["bar"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/weapons","/support","/download","/operator","/utility/fissures"]},{"name":"shell_preset_copy","kind":"act","impl":"imperative","description":"Duplicate the open build or scenario and open the copy — the way to try changes without touching the reader's own.","annotations":{"readOnlyHint":false},"inputSchema":{"type":"object","properties":{"bar":{"type":"string","description":"which bar"}},"required":["bar"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/weapons","/support","/download","/operator","/utility/fissures"]},{"name":"simulator_result_send","kind":"act","impl":"imperative","description":"Add the build the shown simulated fight measured — as it was when that run was sent, not as its preset stands now — to the optimizer's starts, and open the optimizer.","annotations":{"readOnlyHint":false},"inputSchema":{"type":"object","properties":{},"required":[]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/weapons","/support","/download","/operator","/utility/fissures"]},{"name":"simulator_result_read","kind":"act","impl":"imperative","description":"Read the last simulated fight for this build: the headline and whether it is still this build's, kills, time to kill, crit and headshot rates, and which damage sources dealt what share.","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{},"required":[]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/weapons","/support","/download","/operator","/utility/fissures"]},{"name":"builder_mods_find","kind":"act","impl":"imperative","description":"Find mods this weapon can seat, by name or effect; with a slot, only the ones that slot takes.","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{"query":{"type":"string","description":"name or effect words, in any language the page speaks"},"limit":{"type":"number","description":"rows to return, default 12"},"slot":{"type":["string","integer"],"description":"0-7, or \"exilus\" / \"stance\""}},"required":[]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/weapons","/support","/download","/operator","/utility/fissures"]},{"name":"builder_arcanes_find","kind":"act","impl":"imperative","description":"Find the arcanes a seat of this weapon takes.","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{"query":{"type":"string","description":"name or effect words, in any language the page speaks"},"limit":{"type":"number","description":"rows to return, default 12"},"seat":{"type":"number","description":"arcane seat, default 0"}},"required":[]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/weapons","/support","/download","/operator","/utility/fissures"]},{"name":"builder_evolutions_list","kind":"act","impl":"imperative","description":"List this weapon's Incarnon evolution tiers, their options, and which one each tier holds.","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{},"required":[]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/weapons","/support","/download","/operator","/utility/fissures"]},{"name":"builder_modes_list","kind":"act","impl":"imperative","description":"List how this weapon can be played, and why a mode is unavailable where it is.","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{},"required":[]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/weapons","/support","/download","/operator","/utility/fissures"]},{"name":"simulator_enemies_find","kind":"act","impl":"imperative","description":"Find targets for the fight by name, in any language the page speaks.","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{"query":{"type":"string","description":"name or effect words, in any language the page speaks"},"limit":{"type":"number","description":"rows to return, default 12"}},"required":["query"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/weapons","/support","/download","/operator","/utility/fissures"]},{"name":"shell_module_open","kind":"act","impl":"imperative","description":"Open a module of the page, optionally on another weapon.","annotations":{"readOnlyHint":false},"inputSchema":{"type":"object","properties":{"module":{"type":"string","description":"which module"},"weapon":{"type":"string","description":"weapon id; defaults to the one already open"}},"required":["module"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/weapons","/support","/download","/operator","/utility/fissures"]},{"name":"builder_weapon_set","kind":"act","impl":"imperative","description":"Switch the builder to another weapon. Its own presets and fight come with it.","annotations":{"readOnlyHint":false},"inputSchema":{"type":"object","properties":{"weapon":{"type":"string","description":"weapon id"}},"required":["weapon"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/weapons","/support","/download","/operator","/utility/fissures"]},{"name":"builder_mod_set","kind":"act","impl":"imperative","description":"Seat a mod in a slot, or empty the slot with mod=null. A mod already seated elsewhere is exchanged with this slot, as it is when a reader picks it.","annotations":{"readOnlyHint":false},"inputSchema":{"type":"object","properties":{"slot":{"type":["string","integer"],"description":"0-7, or \"exilus\" / \"stance\""},"mod":{"type":["string","null"],"description":"mod id, or null to empty the slot"},"rank":{"type":"number","description":"defaults to the mod's maximum"}},"required":["slot","mod"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/weapons","/support","/download","/operator","/utility/fissures"]},{"name":"builder_mods_clear","kind":"act","impl":"imperative","description":"Empty every mod slot, leaving the weapon bare.","annotations":{"readOnlyHint":false},"inputSchema":{"type":"object","properties":{},"required":[]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/weapons","/support","/download","/operator","/utility/fissures"]},{"name":"builder_polarity_set","kind":"act","impl":"imperative","description":"Set a slot's polarity, or remove it with polarity=null. The mod in the slot stays.","annotations":{"readOnlyHint":false},"inputSchema":{"type":"object","properties":{"slot":{"type":["string","integer"],"description":"0-7, or \"exilus\" / \"stance\""},"polarity":{"type":["string","null"],"description":"polarity, or null"}},"required":["slot","polarity"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/weapons","/support","/download","/operator","/utility/fissures"]},{"name":"builder_forma_plan","kind":"act","impl":"imperative","description":"Re-polarize the slots for the fewest Forma that fit the seated mods, as the auto button does.","annotations":{"readOnlyHint":false},"inputSchema":{"type":"object","properties":{},"required":[]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/weapons","/support","/download","/operator","/utility/fissures"]},{"name":"builder_arcane_set","kind":"act","impl":"imperative","description":"Seat an arcane, or empty the seat with arcane=null. Only arcanes this weapon's seat takes are accepted.","annotations":{"readOnlyHint":false},"inputSchema":{"type":"object","properties":{"seat":{"type":"number","description":"arcane seat, 0 unless the weapon has two"},"arcane":{"type":["string","null"],"description":"arcane id, or null"},"rank":{"type":"number","description":"defaults to the arcane's maximum"}},"required":["seat","arcane"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/weapons","/support","/download","/operator","/utility/fissures"]},{"name":"builder_evolution_set","kind":"act","impl":"imperative","description":"Install an Incarnon evolution in a tier. Every tier always holds one, so this swaps it.","annotations":{"readOnlyHint":false},"inputSchema":{"type":"object","properties":{"tier":{"type":"number","description":"evolution tier"},"evolution":{"type":"string","description":"evolution id"}},"required":["tier","evolution"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/weapons","/support","/download","/operator","/utility/fissures"]},{"name":"builder_mode_set","kind":"act","impl":"imperative","description":"Choose how the build is played — the weapon's firing mode or form.","annotations":{"readOnlyHint":false},"inputSchema":{"type":"object","properties":{"mode":{"type":"string","description":"mode id"}},"required":["mode"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/weapons","/support","/download","/operator","/utility/fissures"]},{"name":"builder_valence_set","kind":"act","impl":"imperative","description":"An adversary weapon's valence: its element and its bonus as a fraction of base damage (clamped to what a Lich can roll).","annotations":{"readOnlyHint":false},"inputSchema":{"type":"object","properties":{"element":{"type":"string","description":"element"},"bonus":{"type":"number","description":"e.g. 0.6 for 60%"}},"required":[]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/weapons","/support","/download","/operator","/utility/fissures"]},{"name":"simulator_scenario_set","kind":"act","impl":"imperative","description":"Change fields of the fight — the enemy, its level, the duration, the metric. Fields that are not a single value (the formation, the buffs) have their own editors and are refused here.","annotations":{"readOnlyHint":false},"inputSchema":{"type":"object","properties":{"patch":{"type":"object","description":"fight fields to set"}},"required":["patch"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/weapons","/support","/download","/operator","/utility/fissures"]},{"name":"simulator_runs_set","kind":"act","impl":"imperative","description":"How many times the simulator replays the fight. A preference of this browser, not part of the fight.","annotations":{"readOnlyHint":false},"inputSchema":{"type":"object","properties":{"runs":{"type":"number","description":"replays per measurement"}},"required":["runs"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/weapons","/support","/download","/operator","/utility/fissures"]},{"name":"simulator_run_start","kind":"act","impl":"imperative","description":"Run the fight and return the headline number. Takes as long as the reader's own run takes.","annotations":{"readOnlyHint":false},"inputSchema":{"type":"object","properties":{},"required":[]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/weapons","/support","/download","/operator","/utility/fissures"]},{"name":"simulator_shapley_parts","kind":"answer","impl":"imperative","description":"List the parts of the open build a Shapley analysis can switch off, with the key each is chosen by and whether it is chosen now.","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{},"required":[]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/weapons","/support","/download","/operator","/utility/fissures"]},{"name":"simulator_shapley_run","kind":"act","impl":"imperative","description":"Run the Shapley analysis on the current fight: every subset of the chosen parts is simulated, and each part's equivalent multiplier, its take-it-out and alone effects, and every pair's interaction come back in log space. 2^k fights, so it can take minutes.","annotations":{"readOnlyHint":false},"inputSchema":{"type":"object","properties":{"parts":{"type":"string","description":"comma-separated keys from simulator.shapley.parts; omitted keeps the current choice"},"runs":{"type":"number","description":"runs per subset; omitted keeps the reader's"}},"required":[]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/weapons","/support","/download","/operator","/utility/fissures"]},{"name":"simulator_roster_read","kind":"answer","impl":"imperative","description":"Read who is firing: the open build as seat 1, and every other seat the fight holds as a weapon and the preset of it that is acting.","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{},"required":[]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/weapons","/support","/download","/operator","/utility/fissures"]},{"name":"simulator_roster_add","kind":"act","impl":"imperative","description":"Put another gun in the fight — a squadmate, a companion or a summon. It acts on its own clock with its own build, and the result reports each seat separately. Omit preset for the weapon unmodded.","annotations":{"readOnlyHint":false},"inputSchema":{"type":"object","properties":{"weapon":{"type":"string","description":"weapon id"},"preset":{"type":"string","description":"a saved build of that weapon, by name"}},"required":["weapon"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/weapons","/support","/download","/operator","/utility/fissures"]},{"name":"simulator_roster_remove","kind":"act","impl":"imperative","description":"Take one seat out of the fight, by its number. Seat 1 is the open build and cannot be removed.","annotations":{"readOnlyHint":false},"inputSchema":{"type":"object","properties":{"seat":{"type":"number","description":"seat number, as roster.read reports it"}},"required":["seat"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/weapons","/support","/download","/operator","/utility/fissures"]},{"name":"builder_weapons_find","kind":"act","impl":"imperative","description":"Find weapons by name, in any language WFSim speaks.","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{"query":{"type":"string","description":"name words, in any language WFSim speaks"},"limit":{"type":"number","description":"rows to return, default 12"}},"required":["query"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/weapons","/support","/download","/operator","/utility/fissures"]},{"name":"builder_board_read","kind":"act","impl":"imperative","description":"Read a weapon's leaderboard: the measured best builds per ruler (the benchmark fight), mode, and with or without a riven, ranked. Each row carries the link that opens it, and a riven-free row its `build`, which the stats read takes. A row's key opens it with shell.preset.open (bar \"build\").","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{"weapon":{"type":"string","description":"weapon id; on the page, the one open when omitted"},"riven":{"type":"string","description":"\"without\" (default), \"with\" or \"any\""},"mode":{"type":"string","description":"only this mode id"},"limit":{"type":"number","description":"rows per group, default 3"},"distinct":{"type":"boolean","description":"one row per place, its preferred build; `limit` counts places"},"pooled":{"type":"boolean","description":"rank a ruler's modes together"}},"required":[]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/weapons","/support","/download","/operator","/utility/fissures"]},{"name":"builder_stats_read","kind":"answer","impl":"imperative","description":"Read the stats panel for a build: every stat per form and part, base and final, with the mod each change came from, and what the weapon's model does not cover.","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{"build":{"type":"object","description":"the build: {weapon, mods: [mod ids], arcane: [arcane ids], evolutions: [ids], mode} — a board row's `build` is one; on the page, the one on screen when omitted"}},"required":[]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/weapons","/support","/download","/operator","/utility/fissures"]},{"name":"builder_rivens_read","kind":"act","impl":"imperative","description":"The Riven Analyst: each riven the board measured for a weapon, its best score against the #1 riven-free build of the same ruler and mode — what the riven is worth. Only submitted rivens appear.","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{"weapon":{"type":"string","description":"weapon id; on the page, the one open when omitted"},"ruler":{"type":"string","description":"only this benchmark id"},"mode":{"type":"string","description":"only this mode id"},"bonuses":{"type":"array","description":"stat ids each riven has as bonuses","items":{"type":"object"}},"malus":{"type":"string","description":"the malus: a stat id, \"any\" or \"none\""},"pooled":{"type":"boolean","description":"a ruler's modes as one ranking"}},"required":[]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/weapons","/support","/download","/operator","/utility/fissures"]},{"name":"shell_method_read","kind":"answer","impl":"imperative","description":"How WFSim judges a build: each rule, why it holds, how to apply it, and the readings behind it. Read it before comparing builds or explaining why one is better.","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{"concept":{"type":"string","description":"one rule's id; every rule when omitted"}},"required":[]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/weapons","/support","/download","/operator","/utility/fissures"]},{"name":"enemies_target_set","kind":"act","impl":"imperative","description":"Write fields of the open custom target: faction, scaling_faction, can_be_eximus, stats {base_level, health, shield, armor, overguard, affinity}, damage_modifiers (a column of multipliers by damage type, \"faction\" to start one from the faction's, or null for the faction's own), status_immunities (the types whose procs cannot land), body_parts [{name, multiplier, is_head, crit_bonus}].","annotations":{"readOnlyHint":false},"inputSchema":{"type":"object","properties":{"faction":{"type":"string","description":"faction id or unknown"},"scaling_faction":{"type":"string","description":"how its level scales","enum":["grineer","corpus","infested","corrupted","unaffiliated"]},"can_be_eximus":{"type":"boolean","description":"an Eximus variant exists"},"stats":{"type":"object","description":"the numbers to change"},"damage_modifiers":{"description":"an object of multipliers by damage type, \"faction\", or null"},"status_immunities":{"type":"array","description":"damage type ids","items":{"type":"object"}},"body_parts":{"type":"array","description":"every part, replacing the list; at least one","items":{"type":"object"}}},"required":[]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/weapons","/support","/download","/operator","/utility/fissures"]},{"name":"builder_forma_rules","kind":"act","impl":"imperative","description":"Change the Forma planner's rules — this browser's, for every build — which the Forma plan and the reach both obey. forma_limit is a whole number or null.","annotations":{"readOnlyHint":false},"inputSchema":{"type":"object","properties":{"catalyst":{"type":"boolean","description":"an Orokin Catalyst is installed"},"reach_max_rank":{"type":"boolean","description":"every mod reaches its max rank"},"grant_slot_first":{"type":"boolean","description":"fill the slot that grants capacity first"},"fixed_order":{"type":"boolean","description":"no mod is moved: each slot's polarity serves what every build keeps there"},"omni_forma":{"type":"string","description":"when Omni Forma may be used","enum":["never","allowed","preferred"]},"umbra_forma":{"type":"string","description":"when Umbra Forma may be used","enum":["never","when_needed","allowed"]},"forma_limit":{"type":["number","null"],"description":"most Forma, or null for none"}},"required":[]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/weapons","/support","/download","/operator","/utility/fissures"]},{"name":"simulator_extra_set","kind":"act","impl":"imperative","description":"Set one of the fight's own stat bonuses — what the weapon is handed by something outside its build (a squad buff, another weapon's arcane). A percentage stat takes `percent` (into the same bucket a mod of that stat feeds); final_crit_damage (a multiplier, e.g. 1.6) and the two flat base damages (a number) take `value`. 0 or null clears it.","annotations":{"readOnlyHint":false},"inputSchema":{"type":"object","properties":{"stat":{"type":"string","description":"which stat","enum":["base_damage","multishot","crit_chance","crit_damage","status_chance","status_damage","fire_rate","reload_speed","magazine","ammo_efficiency","status_duration","flat_crit_chance","final_crit_damage","flat_base_damage_co","flat_base_damage"]},"percent":{"type":["number","null"],"description":"for a percentage stat: e.g. 30 for +30%"},"value":{"type":["number","null"],"description":"for final_crit_damage (a multiplier, e.g. 1.6) or a flat base damage (a number)"}},"required":["stat"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/weapons","/support","/download","/operator","/utility/fissures"]},{"name":"optimizer_plan_limit","kind":"act","impl":"imperative","description":"Exclude an option from the search, or take it back: a mod as the builder lists it (`card@rank` for one rank of an every-rank card), an arcane, an evolution, a mode or a valence element. Nothing is excluded by default; the last mode or element cannot be.","annotations":{"readOnlyHint":false},"inputSchema":{"type":"object","properties":{"axis":{"type":"string","description":"which axis","enum":["mods","arcanes","evolutions","modes","valence"]},"id":{"type":"string","description":"the option's id"},"excluded":{"type":"boolean","description":"true excludes it, false takes it back"}},"required":["axis","id","excluded"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/weapons","/support","/download","/operator","/utility/fissures"]},{"name":"rivens_card_set","kind":"act","impl":"imperative","description":"Write the open riven whole: its shape, each bonus and the malus by stat id with either the value printed on the card or a roll (0.9 to 1.1), its rank and polarity. Returns what the engine made of it — printed values, generated name, anything illegal.","annotations":{"readOnlyHint":false},"inputSchema":{"type":"object","properties":{"shape":{"type":"string","description":"e.g. \"3+1\" (three bonuses and a malus) or \"2+0\"","enum":["3+1","3","2+1","2"]},"bonuses":{"type":"array","description":"[{stat, value} or {stat, roll}], one per bonus","items":{"type":"object"}},"malus":{"type":["object","null"],"description":"{stat, value} or {stat, roll}; omit or null when the shape has none"},"rank":{"type":"number","description":"defaults to the maximum"},"polarity":{"type":"string","description":"madurai, vazarin or naramon"}},"required":["shape","bonuses"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/weapons","/support","/download","/operator","/utility/fissures"]},{"name":"builder_part_set","kind":"act","impl":"imperative","description":"Swap a Kitgun's grip or loader. The chamber is the weapon itself; the other slot's version of the same chamber is another weapon id (builder.weapon.set).","annotations":{"readOnlyHint":false},"inputSchema":{"type":"object","properties":{"part":{"type":"string","description":"grip or loader","enum":["grip","loader"]},"id":{"type":"string","description":"the part's id"}},"required":["part","id"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/weapons","/support","/download","/operator","/utility/fissures"]},{"name":"shell_presets_list","kind":"act","impl":"imperative","description":"List the saved builds or fight scenarios for this weapon, which one is open, and which are read-only (benchmarks).","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{"bar":{"type":"string","description":"which bar","enum":["build","scenario","search"]}},"required":["bar"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/weapons","/support","/download","/operator","/utility/fissures"]},{"name":"shell_preset_open","kind":"act","impl":"imperative","description":"Open a saved build or scenario by the id presets.list gives.","annotations":{"readOnlyHint":false},"inputSchema":{"type":"object","properties":{"bar":{"type":"string","description":"which bar","enum":["build","scenario","search"]},"preset":{"type":"string","description":"preset id"}},"required":["bar","preset"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/weapons","/support","/download","/operator","/utility/fissures"]},{"name":"shell_preset_new","kind":"act","impl":"imperative","description":"Start a new blank build or scenario and open it; the one open before is kept as it was.","annotations":{"readOnlyHint":false},"inputSchema":{"type":"object","properties":{"bar":{"type":"string","description":"which bar","enum":["build","scenario","search"]}},"required":["bar"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/weapons","/support","/download","/operator","/utility/fissures"]},{"name":"shell_preset_read","kind":"act","impl":"imperative","description":"Read what a saved build holds — its mods, arcanes, evolutions and mode — by the id presets.list gives; the open one is read as it is on screen.","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{"bar":{"type":"string","description":"which bar","enum":["build"]},"preset":{"type":"string","description":"preset id"}},"required":["bar","preset"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/weapons","/support","/download","/operator","/utility/fissures"]},{"name":"shell_preset_undo","kind":"act","impl":"imperative","description":"Undo the last change to a bar's documents — the build, the scenario, the search or the riven — or redo it with redo=true.","annotations":{"readOnlyHint":false},"inputSchema":{"type":"object","properties":{"bar":{"type":"string","description":"which history","enum":["build","scenario","search","riven"]},"redo":{"type":"boolean","description":"redo instead of undo"}},"required":["bar"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/weapons","/support","/download","/operator","/utility/fissures"]},{"name":"shell_preset_copy","kind":"act","impl":"imperative","description":"Duplicate the open build or scenario and open the copy — the way to try changes without touching the reader's own.","annotations":{"readOnlyHint":false},"inputSchema":{"type":"object","properties":{"bar":{"type":"string","description":"which bar","enum":["build","scenario","search"]}},"required":["bar"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/weapons","/support","/download","/operator","/utility/fissures"]},{"name":"shell_module_open","kind":"act","impl":"imperative","description":"Open a module of the page, optionally on another weapon.","annotations":{"readOnlyHint":false},"inputSchema":{"type":"object","properties":{"module":{"type":"string","description":"which module","enum":["builder","simulator","optimizer","rivens","enemies","home"]},"weapon":{"type":"string","description":"weapon id; defaults to the one already open","enum":["arbucep","cortege","corvas","corvas_prime","cyngas","dual_decurion","fluctus","grattler","imperator","imperator_vandal","kuva_ayanga","kuva_grattler","larkspur","larkspur_prime","mandonel","mausolon","morgha","phaedra","prisma_dual_decurions","velocitus","garuda_prime_talons","garuda_talons","shattered_lash","valkyr_talons","ack_and_brunt","amanata","amphis","anku","ankyros","ankyros_prime","arca_titron","argo_and_vel","arum_spinosa","atterax","azothane","bo","bo_prime","boltace","broken_scepter","broken_war","cadus","cassowar","caustacyst","ceramic_dagger","cerata","ceti_lacera","cobra_and_crane","cobra_and_crane_prime","coda_caustacyst","coda_hirudo","coda_mire","coda_motovore","coda_pathocyst","corufell","corufell_prime","cronus","dakra_prime","dark_dagger","dark_split_sword","dark_sword","destreza","destreza_prime","dex_dakra","dex_nikana","dorrclave","dragon_nikana","dual_cleavers","dual_ether","dual_heat_swords","dual_ichor","dual_kamas","dual_kamas_prime","dual_keres","dual_keres_prime","dual_raza","dual_skana","dual_viciss","dual_zoren","dual_zoren_prime","edun","ekhein","endura","ether_daggers","ether_reaper","ether_sword","falcor","fang","fang_prime","fragor","fragor_prime","furax","furax_wraith","galariak_prime","galatine","galatine_prime","galvacord","gazal_machete","ghoulsaw","glaive","glaive_prime","gram","gram_prime","guandao","guandao_prime","gunsen","gunsen_prime","halikar","halikar_wraith","harmony","hate","heat_dagger","heat_sword","heliocor","hespar","hirudo","innodem","jat_kittag","jat_kusar","jaw_sword","kama","karyst","karyst_prime","keratinos","kesheg","kestrel","kestrel_prime","kogake","kogake_prime","korrudo","korumm","kreska","krohkur","kronen","kronen_prime","kuva_ghoulsaw","kuva_shildeg","lacera","lecta","lesion","machete","machete_wraith","magistar","masseter","masseter_prime","mios","mire","mk1_bo","mk1_furax","nami_skyla","nami_skyla_prime","nami_solo","nepheri","nikana","nikana_prime","ninkondi","ninkondi_prime","obex","ohma","okina","okina_prime","orthos","orthos_prime","orvius","pangolin_prime","pangolin_sword","paracesis","pathocyst","pennant","plasma_sword","praedos","pride","prisma_dual_cleavers","prisma_machete","prisma_obex","prisma_ohma","prisma_skana","prova","prova_vandal","pulmonars","pupacyst","quassus","quassus_prime","rakta_dark_dagger","reaper_prime","redeemer","redeemer_prime","ripkas","rumblejack","ruvox","sampotes","sancti_magistar","sarofang","sarofang_prime","sarpa","scindo","scindo_prime","scoliac","secura_lecta","serro","shaku","sheev","sibear","sigma_and_octantis","silva_and_aegis","silva_and_aegis_prime","skana","skana_prime","skiajati","slaytra","spinnerex","stropha","sun_and_moon","syam","sydon","synoid_heliocor","tak_and_lug","tatsu","tatsu_prime","tekko","tekko_prime","telos_boltace","tenet_agendus","tenet_exec","tenet_grigori","tenet_livia","thalys","tipedo","tipedo_prime","tonbo","tonkkatt","twin_basolk","twin_krohkur","vastilok","vaykor_sydon","venato","venato_prime","venka","venka_prime","verdilac","vericres","vitrica","volnus","volnus_prime","war","war_prime","wolf_sledge","wrath","xoris","zenistar","acceltra","acceltra_prime","aeolak","afentis","afentis_prime","alternox","alternox_prime","ambassador","amprex","arca_plasmor","argonak","astilla","astilla_prime","attica","ax_52","basmu","battacor","baza","baza_prime","boar","boar_prime","boltor","boltor_prime","braton","braton_prime","braton_vandal","bubonico","burston","burston_prime","buzlok","carmine_penta","catchmoon_primary","cedo","cedo_prime","cernos","cernos_prime","cinta","coda_bassocyst","coda_bubonico","coda_hema","coda_sporothrix","coda_synapse","convectrix","corinth","corinth_prime","daikyu","daikyu_prime","dera","dera_vandal","dex_sybaris","drakgoon","dread","efv_5_jupiter","enkaus","evensong","exergis","felarx","ferrox","flux_rifle","fulmin","fulmin_prime","gaze_primary","glaxion","glaxion_vandal","gorgon","gorgon_wraith","gotva_prime","grakata","grinlok","haalvu","harpak","hek","hema","higasa","hind","ignis","ignis_wraith","javlok","karak","karak_wraith","kohm","komorex","kuva_bramma","kuva_chakkhurr","kuva_drakgoon","kuva_hek","kuva_hind","kuva_karak","kuva_kohm","kuva_ogris","kuva_quartakk","kuva_sobek","kuva_tonkor","kuva_zarr","lanka","latron","latron_prime","latron_wraith","lenz","miter","mk1_braton","mk1_paris","mk1_strun","mutalist_cernos","mutalist_quanta","nagantaka","nagantaka_prime","nataruk_perfect","nunchasa","ogris","opticor","opticor_vandal","panthera","panthera_prime","paracyst","paris","paris_prime","penta","perigale","perigale_prime","phage","phantasma","phantasma_prime","phenmor","prisma_gorgon","prisma_grakata","prisma_grinlok","prisma_lenz","prisma_tetra","proboscis_cernos","purgator_1","quanta","quanta_vandal","quartakk","quellor","rakta_cernos","rattleguts_primary","rauta","reconifex","rubico","rubico_prime","sancti_tigris","scourge","scourge_prime","secura_penta","shedu","simulor","snipetron","snipetron_vandal","sobek","soma","soma_prime","sporelacer_primary","sporothrix","stahlta","steflos","stradavar","stradavar_prime","strun","strun_prime","strun_wraith","supra","supra_vandal","sybaris","sybaris_prime","synapse","synoid_simulor","telos_boltor","tenet_arca_plasmor","tenet_envoy","tenet_ferrox","tenet_flux_rifle","tenet_glaxion","tenet_quanta","tenet_tetra","tenora","tenora_prime","tetra","thornbak","tiberon","tiberon_prime","tigris","tigris_prime","tombfinger_primary","tonkor","torid","trumna","trumna_prime","vadarya_prime","vaykor_hek","vectis","vectis_prime","veldt","vermisplicer_primary","vinquibus","vulkar","vulkar_wraith","zarr","zenith","zhuge","zhuge_prime","acrid","aegrit","afuris","afuris_prime","akarius","akarius_prime","akbolto","akbolto_prime","akbronco","akbronco_prime","akjagara","akjagara_prime","aklato","aklex","aklex_prime","akmagnus","akmagnus_prime","aksomati","aksomati_prime","aksondol","akstiletto","akstiletto_prime","akvasto","akvasto_prime","akzani","angstrum","arca_scisco","athodai","athodai_prime","atomos","azima","ballistica","ballistica_prime","bolto","brakk","bronco","bronco_prime","cantare","castanas","catabolyst","catchmoon_secondary","cestra","coda_catabolyst","coda_pox","coda_tysis","cyanex","cycron","despair","detron","dex_furis","dual_cestra","dual_coda_torxica","dual_toxocyst","efv_8_mars","embolist","epitaph","epitaph_prime","euphona_prime","furis","fusilai","gammacor","gaze_secondary","grimoire","hikou","hikou_prime","hystrix","hystrix_prime","knell","knell_prime","kohmak","kompressa","kompressa_prime","kraken","kulstar","kunai","kuva_brakk","kuva_kraken","kuva_nukor","kuva_seer","kuva_twin_stubbas","laetum","lato","lato_prime","lato_vandal","lex","lex_prime","magnus","magnus_prime","mara_detron","marelok","mk1_furis","mk1_kunai","nukor","ocucor","onos","pandero","pandero_prime","plinx","pox","prisma_angstrum","prisma_twin_gremlins","pyrana","pyrana_prime","quatz","rakta_ballistica","rattleguts_secondary","riot_848","sagek_prime","sancti_castanas","scyotid","secura_dual_cestra","seer","sepulcrum","sicarus","sicarus_prime","sonicor","spectra","spectra_vandal","spira","spira_prime","sporelacer_secondary","staticor","stubba","stug","synoid_gammacor","talons","telos_akbolto","tenet_cycron","tenet_detron","tenet_diplos","tenet_plinx","tenet_spirex","tombfinger_secondary","twin_grakatas","twin_gremlins","twin_kohmak","twin_rogga","twin_vipers","twin_vipers_wraith","tysis","vasto","vasto_prime","vaykor_marelok","velox","velox_prime","vermisplicer_secondary","vesper_77","viper","viper_wraith","zakti","zakti_prime","zylok","zylok_prime","zymos","artax","burst_laser","burst_laser_prime","cryotra","deconstructor","deconstructor_prime","deth_machine_rifle","deth_machine_rifle_prime","helstrum","laser_rifle","multron","prime_laser_rifle","prisma_burst_laser","stinger","sweeper","sweeper_prime","tazicor","verglas","verglas_prime","vulcax","vulklok"]}},"required":["module"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/weapons","/support","/download","/operator","/utility/fissures"]},{"name":"builder_weapon_set","kind":"act","impl":"imperative","description":"Switch the builder to another weapon. Its own presets and fight come with it.","annotations":{"readOnlyHint":false},"inputSchema":{"type":"object","properties":{"weapon":{"type":"string","description":"weapon id","enum":["arbucep","cortege","corvas","corvas_prime","cyngas","dual_decurion","fluctus","grattler","imperator","imperator_vandal","kuva_ayanga","kuva_grattler","larkspur","larkspur_prime","mandonel","mausolon","morgha","phaedra","prisma_dual_decurions","velocitus","garuda_prime_talons","garuda_talons","shattered_lash","valkyr_talons","ack_and_brunt","amanata","amphis","anku","ankyros","ankyros_prime","arca_titron","argo_and_vel","arum_spinosa","atterax","azothane","bo","bo_prime","boltace","broken_scepter","broken_war","cadus","cassowar","caustacyst","ceramic_dagger","cerata","ceti_lacera","cobra_and_crane","cobra_and_crane_prime","coda_caustacyst","coda_hirudo","coda_mire","coda_motovore","coda_pathocyst","corufell","corufell_prime","cronus","dakra_prime","dark_dagger","dark_split_sword","dark_sword","destreza","destreza_prime","dex_dakra","dex_nikana","dorrclave","dragon_nikana","dual_cleavers","dual_ether","dual_heat_swords","dual_ichor","dual_kamas","dual_kamas_prime","dual_keres","dual_keres_prime","dual_raza","dual_skana","dual_viciss","dual_zoren","dual_zoren_prime","edun","ekhein","endura","ether_daggers","ether_reaper","ether_sword","falcor","fang","fang_prime","fragor","fragor_prime","furax","furax_wraith","galariak_prime","galatine","galatine_prime","galvacord","gazal_machete","ghoulsaw","glaive","glaive_prime","gram","gram_prime","guandao","guandao_prime","gunsen","gunsen_prime","halikar","halikar_wraith","harmony","hate","heat_dagger","heat_sword","heliocor","hespar","hirudo","innodem","jat_kittag","jat_kusar","jaw_sword","kama","karyst","karyst_prime","keratinos","kesheg","kestrel","kestrel_prime","kogake","kogake_prime","korrudo","korumm","kreska","krohkur","kronen","kronen_prime","kuva_ghoulsaw","kuva_shildeg","lacera","lecta","lesion","machete","machete_wraith","magistar","masseter","masseter_prime","mios","mire","mk1_bo","mk1_furax","nami_skyla","nami_skyla_prime","nami_solo","nepheri","nikana","nikana_prime","ninkondi","ninkondi_prime","obex","ohma","okina","okina_prime","orthos","orthos_prime","orvius","pangolin_prime","pangolin_sword","paracesis","pathocyst","pennant","plasma_sword","praedos","pride","prisma_dual_cleavers","prisma_machete","prisma_obex","prisma_ohma","prisma_skana","prova","prova_vandal","pulmonars","pupacyst","quassus","quassus_prime","rakta_dark_dagger","reaper_prime","redeemer","redeemer_prime","ripkas","rumblejack","ruvox","sampotes","sancti_magistar","sarofang","sarofang_prime","sarpa","scindo","scindo_prime","scoliac","secura_lecta","serro","shaku","sheev","sibear","sigma_and_octantis","silva_and_aegis","silva_and_aegis_prime","skana","skana_prime","skiajati","slaytra","spinnerex","stropha","sun_and_moon","syam","sydon","synoid_heliocor","tak_and_lug","tatsu","tatsu_prime","tekko","tekko_prime","telos_boltace","tenet_agendus","tenet_exec","tenet_grigori","tenet_livia","thalys","tipedo","tipedo_prime","tonbo","tonkkatt","twin_basolk","twin_krohkur","vastilok","vaykor_sydon","venato","venato_prime","venka","venka_prime","verdilac","vericres","vitrica","volnus","volnus_prime","war","war_prime","wolf_sledge","wrath","xoris","zenistar","acceltra","acceltra_prime","aeolak","afentis","afentis_prime","alternox","alternox_prime","ambassador","amprex","arca_plasmor","argonak","astilla","astilla_prime","attica","ax_52","basmu","battacor","baza","baza_prime","boar","boar_prime","boltor","boltor_prime","braton","braton_prime","braton_vandal","bubonico","burston","burston_prime","buzlok","carmine_penta","catchmoon_primary","cedo","cedo_prime","cernos","cernos_prime","cinta","coda_bassocyst","coda_bubonico","coda_hema","coda_sporothrix","coda_synapse","convectrix","corinth","corinth_prime","daikyu","daikyu_prime","dera","dera_vandal","dex_sybaris","drakgoon","dread","efv_5_jupiter","enkaus","evensong","exergis","felarx","ferrox","flux_rifle","fulmin","fulmin_prime","gaze_primary","glaxion","glaxion_vandal","gorgon","gorgon_wraith","gotva_prime","grakata","grinlok","haalvu","harpak","hek","hema","higasa","hind","ignis","ignis_wraith","javlok","karak","karak_wraith","kohm","komorex","kuva_bramma","kuva_chakkhurr","kuva_drakgoon","kuva_hek","kuva_hind","kuva_karak","kuva_kohm","kuva_ogris","kuva_quartakk","kuva_sobek","kuva_tonkor","kuva_zarr","lanka","latron","latron_prime","latron_wraith","lenz","miter","mk1_braton","mk1_paris","mk1_strun","mutalist_cernos","mutalist_quanta","nagantaka","nagantaka_prime","nataruk_perfect","nunchasa","ogris","opticor","opticor_vandal","panthera","panthera_prime","paracyst","paris","paris_prime","penta","perigale","perigale_prime","phage","phantasma","phantasma_prime","phenmor","prisma_gorgon","prisma_grakata","prisma_grinlok","prisma_lenz","prisma_tetra","proboscis_cernos","purgator_1","quanta","quanta_vandal","quartakk","quellor","rakta_cernos","rattleguts_primary","rauta","reconifex","rubico","rubico_prime","sancti_tigris","scourge","scourge_prime","secura_penta","shedu","simulor","snipetron","snipetron_vandal","sobek","soma","soma_prime","sporelacer_primary","sporothrix","stahlta","steflos","stradavar","stradavar_prime","strun","strun_prime","strun_wraith","supra","supra_vandal","sybaris","sybaris_prime","synapse","synoid_simulor","telos_boltor","tenet_arca_plasmor","tenet_envoy","tenet_ferrox","tenet_flux_rifle","tenet_glaxion","tenet_quanta","tenet_tetra","tenora","tenora_prime","tetra","thornbak","tiberon","tiberon_prime","tigris","tigris_prime","tombfinger_primary","tonkor","torid","trumna","trumna_prime","vadarya_prime","vaykor_hek","vectis","vectis_prime","veldt","vermisplicer_primary","vinquibus","vulkar","vulkar_wraith","zarr","zenith","zhuge","zhuge_prime","acrid","aegrit","afuris","afuris_prime","akarius","akarius_prime","akbolto","akbolto_prime","akbronco","akbronco_prime","akjagara","akjagara_prime","aklato","aklex","aklex_prime","akmagnus","akmagnus_prime","aksomati","aksomati_prime","aksondol","akstiletto","akstiletto_prime","akvasto","akvasto_prime","akzani","angstrum","arca_scisco","athodai","athodai_prime","atomos","azima","ballistica","ballistica_prime","bolto","brakk","bronco","bronco_prime","cantare","castanas","catabolyst","catchmoon_secondary","cestra","coda_catabolyst","coda_pox","coda_tysis","cyanex","cycron","despair","detron","dex_furis","dual_cestra","dual_coda_torxica","dual_toxocyst","efv_8_mars","embolist","epitaph","epitaph_prime","euphona_prime","furis","fusilai","gammacor","gaze_secondary","grimoire","hikou","hikou_prime","hystrix","hystrix_prime","knell","knell_prime","kohmak","kompressa","kompressa_prime","kraken","kulstar","kunai","kuva_brakk","kuva_kraken","kuva_nukor","kuva_seer","kuva_twin_stubbas","laetum","lato","lato_prime","lato_vandal","lex","lex_prime","magnus","magnus_prime","mara_detron","marelok","mk1_furis","mk1_kunai","nukor","ocucor","onos","pandero","pandero_prime","plinx","pox","prisma_angstrum","prisma_twin_gremlins","pyrana","pyrana_prime","quatz","rakta_ballistica","rattleguts_secondary","riot_848","sagek_prime","sancti_castanas","scyotid","secura_dual_cestra","seer","sepulcrum","sicarus","sicarus_prime","sonicor","spectra","spectra_vandal","spira","spira_prime","sporelacer_secondary","staticor","stubba","stug","synoid_gammacor","talons","telos_akbolto","tenet_cycron","tenet_detron","tenet_diplos","tenet_plinx","tenet_spirex","tombfinger_secondary","twin_grakatas","twin_gremlins","twin_kohmak","twin_rogga","twin_vipers","twin_vipers_wraith","tysis","vasto","vasto_prime","vaykor_marelok","velox","velox_prime","vermisplicer_secondary","vesper_77","viper","viper_wraith","zakti","zakti_prime","zylok","zylok_prime","zymos","artax","burst_laser","burst_laser_prime","cryotra","deconstructor","deconstructor_prime","deth_machine_rifle","deth_machine_rifle_prime","helstrum","laser_rifle","multron","prime_laser_rifle","prisma_burst_laser","stinger","sweeper","sweeper_prime","tazicor","verglas","verglas_prime","vulcax","vulklok"]}},"required":["weapon"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/weapons","/support","/download","/operator","/utility/fissures"]},{"name":"builder_polarity_set","kind":"act","impl":"imperative","description":"Set a slot's polarity, or remove it with polarity=null. The mod in the slot stays.","annotations":{"readOnlyHint":false},"inputSchema":{"type":"object","properties":{"slot":{"type":["string","integer"],"description":"0-7, or \"exilus\" / \"stance\""},"polarity":{"type":["string","null"],"description":"polarity, or null","enum":["Madurai","Naramon","Vazarin","Umbra","Omni"]}},"required":["slot","polarity"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/weapons","/support","/download","/operator","/utility/fissures"]},{"name":"builder_board_read","kind":"act","impl":"imperative","description":"Read a weapon's leaderboard: the measured best builds per ruler (the benchmark fight), mode, and with or without a riven, ranked. Each row carries the link that opens it, and a riven-free row its `build`, which the stats read takes. A row's key opens it with shell.preset.open (bar \"build\").","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{"weapon":{"type":"string","description":"weapon id; on the page, the one open when omitted"},"riven":{"type":"string","description":"\"without\" (default), \"with\" or \"any\"","enum":["without","with","any"]},"mode":{"type":"string","description":"only this mode id"},"limit":{"type":"number","description":"rows per group, default 3"},"distinct":{"type":"boolean","description":"one row per place, its preferred build; `limit` counts places"},"pooled":{"type":"boolean","description":"rank a ruler's modes together"}},"required":[]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/weapons","/support","/download","/operator","/utility/fissures"]}],"category":"Media & Personal","favicon":"/favicons/wfsim.app.png","apiSurface":"spec","toolCount":101}}