diff --git a/docs/research/vtank-kb/README.md b/docs/research/vtank-kb/README.md new file mode 100644 index 00000000..bc3cd997 --- /dev/null +++ b/docs/research/vtank-kb/README.md @@ -0,0 +1,36 @@ +# VTank knowledge base (Campaign VT, VT1) + +Written 2026-09-06 from the decompiled oracle under `refs/` (gitignored; see +`docs/plans/2026-09-06-campaign-vt-vtank-oracle.md` for what is there and how +to regenerate it). Every behavioral claim cites `file:line` into +`refs/vtank/decompiled/` (VTank), `refs/vtank-classiclooter/decompiled/` +(Classic Looter) or `refs/vvs/decompiled/` (VirindiViewService). Decompiled +code is never pasted; behavior is re-implemented from these docs. When the +older wiki-derived research (`docs/research/2026-07-29-vtank-plugin-automation-requirements.md`, +`docs/research/2026-08-26-mosstank-vtank-utilitybelt-research.md`) disagrees +with a doc here, the doc here wins. + +Each doc ends with a **MossTank gap** section (ranked by player impact) and a +**Could not determine** list. VT2 consolidates the gap sections into the +implementation order. + +| # | Doc | What it pins | Oracle files most cited | +|---|---|---|---| +| 01 | [settings and profiles](01-settings-and-profiles.md) | All 137 settings (type, default, tab control, consumer), the self-describing `.usd` table grammar, profile naming/selection, `/vt opt` | `f3.cs` (typed accessors), `gy/cw/bd/y.cs` (table reader), `defaultsettings.usd` | +| 02 | [scheduler and actions](02-scheduler-and-actions.md) | The single-winner priority list (24 rule classes, 45 instantiations, sentinels), 293 ms heartbeat + event poke, force-combat-mode `ga.a` and stuck-state recovery, IdlePeace in full | `uTank2/cLogic.cs`, `ga.cs`, `f9.cs`, `cm.cs`, `fz.cs` | +| 03 | [combat](03-combat.md) | Target acquisition/selection (3 methods, ghost/blacklist), monster rules, weapon/damage/ammo choice, attack execution, the hardcoded 12-debuff order, pets | `dz.cs`, `hi.cs`, `b4.cs` | +| 04 | [buffs and vitals](04-buffs-and-vitals.md) | Buff plan and per-tick re-evaluation, item enchantments (`-1` "no buffs"), helper buffs, the nine recharge thresholds, kits/potions/food, dispel, worn-item mana | `eq.cs`, `fz.cs`, `ba.cs`, `ai.cs`, `dy.cs`, `a5.cs`, `MySpell.cs` | +| 05 | [looting and .utl](05-looting-and-utl.md) | The `.utl` format and all requirement types, `EarlyMatch` identify-avoidance, `ComputedItemInfo`, VTank's corpse selection/approach/open/loot rules, ownership-denial regexes | VTClassic `cLootRules`, `UTLBlock_*`; VTank `fo.cs`, `d0.cs`, `el.cs`, `hv.cs` | +| 06 | [navigation and .nav](06-navigation-and-nav.md) | `uTank2 NAV 1.2` byte-for-byte (10 waypoint types), route types, steering/creep band, jump, door/lockpick, recall, priority interactions, 240 m/unit | `x.cs`, `ca.cs`, `fd.cs`, `bi.cs`, `b7.cs`, `g8.cs` | +| 07 | [meta and expressions](07-meta-and-expressions.md) | `.met` format, FSM semantics, the expression language and built-in table, views created by metas | `ExpressionEvaluator.cs`, `ch.cs`, `a7.cs`, `cLogic.cs:191-196` | +| 08 | [UI views](08-ui-views.md) | Every control of the nine tabs and three secondary views (type, geometry, binding), VVS control semantics our markup must offer, the markup extension needed (multi-column lists) | `uTank2.ViewXML.*.xml`, VVS `HudList/HudCombo/HudTabView`, `Decal3XMLParser.cs` | +| 09 | [commands and interop](09-commands-and-interop.md) | The `/vt` verb table (~48 documented + 15 parser-only), chat sinks and dedup, the three-tier export API, Classic Looter SPI, MosswartMassacre's real usage | `uTank2/PluginCore.cs`, `d5.cs`, `ah.cs`, `eExternalsPermissionLevel.cs` | + +Local companion note (not committed): `refs/vtank/notes/2026-09-06-idlepeace-fcm-trace.md` +— the line-level trace of the combat-mode choke point, the eight +drop-to-peace sites and the wield sequencing. + +Corrections folded in by the lead during spot-checks are marked in place +("lead verification 2026-09-06"). Files written by agents into the main +checkout by mistake were moved here; check `git status` in the main checkout +after any catalog session.